Ir para conteúdo

sailorv

Campones
  • Total de itens

    14
  • Registro em

  • Última visita

Sobre sailorv

Informações

  • Char no Tibia
    Rei vegeta
  • Forma que conheci o xTibia
    Sites de Busca
  • Sou
    Scripter

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

sailorv's Achievements

  1. doCreatureSetNoMove(cid, cannotMove) getCreatureNoMove(cid) mayNotMove = doCreatureSetNoMove doPlayerSetNoMove = doCreatureSetNoMove getPlayerNoMove = getCreatureNoMove how to use ( como usar ) doCreatureSetNoMove(cid, true) addEvent(doCreatureSetNoMove, 4000, cid, false)
  2. @ pra que fica verificando todo segundo :] -- ta bem parei addEvent(updatePatente, 1000, player) aqui estao os meus preferidos :] font : http://desciclopedia...da_a_Gambiarras muito obrigado ^^
  3. E isso mesmo isso nao e para todos os ots. E um systema novo de jogar tibia onde level nao vale mais nada. aqui quem domina sao os veterano ( quanto mais tempo voce joga mais forte voce fica ) !!! o scrit em si fonciona mais recomendo configura as classes para ficar mais divertido. vamos comecar !setrank -- para mudar a classes do jogador !setrank Sailorv , Novato or days like 365 for last rank !myinfo -- verificar as info do jogagor !myinfo spd hp sp group rank etc ... SS ou video vo ajuntar depois. @EDIT 16/05/2013 changed acess to access="5 added tag spoiler
  4. Eu fiz em para o Luiiz1 mais achei util postar para todo mundo :] ve o video e um anel que quando usado almenta o LIFE, MANA e a spd do player por exemplo ele tem 100 de hp ai usando o anel ele passa a ter 1100 ( configuravel ) <?xml version="1.0" encoding="UTF-8"?> <mod name="Life ring System" version="1.0" author="Willian Batista Cima" contact="none" enabled="yes"> ----------------------------------------------------------------------- <config name="lifeRingSystem"><![CDATA[ lifeRingSystem = { storageBase = 9000101 , ringOn = 2127 , ringOff = 2127 , vocHp = { 5 , 5, 10, 15, 5 , 5, 10, 15 } , -- vocation 1 to 8 hp gain if lv up using the ring ! vocSp = { 30, 30 ,15, 5, 30, 30 ,15, 5 } , -- vocation 1 to 8 sp gain if lv up using the ring ! RemoveCreatureConditions = false , -- -- MLVGAIN = 200 , -- not sopported yet ! HEALTHGAIN = 1000 , -- hp gain HEALTHLOSS = 50 , -- hp loss if hitted by effect MANAGAIN = 1000 , -- mana gain MANALOSS = 50 , -- mana loss if hitted by effect SPEEDGAIN = 1000 , EFFECTChance = 90 , -- mean 50% of chance to happens ( 0 mean never do ) ( 100 alws do ) EFFECTRange = 2 , -- 2X2 square range 0 means player position EFFECTPlayer ={ [1] = { [sTATSCHANGE_HEALTHGAIN]= CONST_ME_YELLOW_RINGS, [sTATSCHANGE_HEALTHLOSS] = CONST_ME_YELLOW_RINGS , -- [sTATSCHANGE_MANAGAIN] = CONST_ME_HOLYAREA , [sTATSCHANGE_MANALOSS] = CONST_ME_HOLYAREA , ringinuse = CONST_ME_FIREWORK_YELLOW, disshot = CONST_ANI_SMALLHOLY , } , [0] = { [sTATSCHANGE_HEALTHGAIN]= CONST_ME_FIREWORK_RED, [sTATSCHANGE_HEALTHLOSS] = CONST_ME_EXPLOSIONAREA, [sTATSCHANGE_MANAGAIN] = CONST_ME_MAGIC_RED , [sTATSCHANGE_MANALOSS] = CONST_ME_FIREAREA , ringinuse = CONST_ME_FIREWORK_RED, disshot = CONST_ANI_FIRE , } } } -- lifeRingSystem.EFFECTPlayer.[2] = lifeRingSystem.EFFECTPlayer.[0] -- GM gets GIRLS effects lifeRingSystem.storageLv = lifeRingSystem.storageBase+1 lifeRingSystem.storageHp = lifeRingSystem.storageBase+2 lifeRingSystem.storageSp = lifeRingSystem.storageBase+3 -- lifeRingSystem.storageSped = lifeRingSystem.storageBase+4 -- better remove all storage but base ]]></config> ----------------------------------------------------------------------- <event type="login" name="lifeRingSystem_login" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid,"lifeRingSystem_gain_effect") registerCreatureEvent(cid,"lifeRingSystem_think") return true end ]]></event> ----------------------------------------------------------------------- <event type="think" name="lifeRingSystem_think" event="script"><![CDATA[ domodlib('lifeRingSystem') local cfg = lifeRingSystem function onThink(cid, interval) if lifeRingSystem_last_interval == nil then lifeRingSystem_last_interval= os.clock() end if (os.clock() - lifeRingSystem_last_interval) > 2 then -- execute every 2 sec if isPlayer(cid) then if getPlayerStorageValue(cid, cfg.storageBase ) == 1 then local pos = getPlayerPosition(cid) local r = cfg.EFFECTRange local toPositions = { x = pos.x + math.random( -r , r ), y = pos.y + math.random(-r,r), z = pos.z} doSendMagicEffect( toPositions , cfg.EFFECTPlayer[getPlayerSex(cid)].ringinuse ) end lifeRingSystem_last_interval= os.clock() end return true end return false end ]]></event> ----------------------------------------------------------------------- <event type="statschange" name="lifeRingSystem_gain_effect" event="script"><![CDATA[ domodlib('lifeRingSystem') local cfg = lifeRingSystem function onStatsChange(cid, attacker, type, combat, value) if getPlayerStorageValue(cid, cfg.storageBase ) == 1 then if math.random(1,100) < cfg.EFFECTChance and isInArray( {1,2,3,4} , type ) then local pos = getPlayerPosition(cid) local r = cfg.EFFECTRange local toPositions = { x = pos.x + math.random( -r , r ), y = pos.y + math.random(-r,r), z = pos.z} doSendDistanceShoot( {x = pos.x - math.random(-7,7), y = pos.y + math.random(-6,6), z = pos.z}, toPositions, cfg.EFFECTPlayer[getPlayerSex(cid)].disshot ) doSendMagicEffect( toPositions , cfg.EFFECTPlayer[getPlayerSex(cid)][ type ] ) local thing = getThingfromPos(toPositions) if isPlayer(thing) then if cfg.RemoveCreatureConditions then doRemoveConditions(thing) end doCreatureAddHealth(thing, HEALTHLOSS ) doCreatureAddMana(thing, getCreatureMaxMana(thing)-getCreatureMana(thing)) end end end return true end ]]></event> ----------------------------------------------------------------------- <movevent type="Equip" itemid="2127" slot="ring" event="script"><![CDATA[ domodlib('lifeRingSystem') local cfg = lifeRingSystem function onEquip(cid, item, slot) if(item.itemid == cfg.ringOn) then if getPlayerAccess(cid) > 1 then return false end if getPlayerStorageValue(cid, cfg.storageBase ) ~= 1 then setPlayerStorageValue(cid, cfg.storageLv , getPlayerLevel(cid) ) setPlayerStorageValue(cid, cfg.storageHp , getCreatureMaxHealth(cid) ) setPlayerStorageValue(cid, cfg.storageSp , getPlayerMaxMana(cid) ) -- setPlayerStorageValue(cid, cfg.storageSped , getCreatureSpeed(cid) ) setPlayerStorageValue(cid, cfg.storageBase , 1 ) setCreatureMaxHealth(cid, (getPlayerStorageValue(cid, cfg.storageHp )+cfg.HEALTHGAIN) ) setCreatureMaxMana(cid, (getPlayerStorageValue(cid, cfg.storageSp )+cfg.MANAGAIN) ) doChangeSpeed(cid, ( getCreatureSpeed(cid)+cfg.SPEEDGAIN) ) -- getPlayerStorageValue(cid, cfg.storageSped ) end return true end return false end ]]></movevent> ----------------------------------------------------------------------- <movevent type="DeEquip" itemid="2127" slot="ring" event="script"><![CDATA[ domodlib('lifeRingSystem') local cfg = lifeRingSystem function onDeEquip(cid, item, slot) if(item.itemid == cfg.ringOff) then setPlayerStorageValue(cid, cfg.storageBase , 2 ) if getPlayerAccess(cid) > 1 then return false end if getPlayerStorageValue(cid, cfg.storageLv ) < getPlayerLevel(cid) and getPlayerAccess(cid) < 2 and getPlayerVocation(cid) > 0 then setPlayerStorageValue(cid, cfg.storageHp , ( (getPlayerLevel(cid)-getPlayerStorageValue(cid, cfg.storageLv )) *cfg.vocHp[getPlayerVocation(cid)]) +getCreatureMaxHealth(cid) ) setPlayerStorageValue(cid, cfg.storageSp , ( (getPlayerLevel(cid)-getPlayerStorageValue(cid, cfg.storageLv )) *cfg.vocSp[getPlayerVocation(cid)]) +getPlayerMaxMana(cid) ) end setCreatureMaxHealth(cid, getPlayerStorageValue(cid, cfg.storageHp ) ) setCreatureMaxMana(cid, getPlayerStorageValue(cid, cfg.storageSp ) ) doCreatureAddHealth(cid, getCreatureHealth(cid)+1 ) -- getCreatureMaxHealth(cid) doCreatureAddMana(cid, getCreatureMana(cid)+1 ) -- getCreatureMaxMana(cid) -- speed base level 218 + ( 2*level) http://www.tibiabr.com/calc_de_velocidade doChangeSpeed(cid, ( -getCreatureSpeed(cid)+ 218+(2*getPlayerLevel(cid) ) ) ) return true end return false end ]]></movevent> <talkaction words="!ringstatus" event="script"><![CDATA[ domodlib('lifeRingSystem') local cfg = lifeRingSystem function onSay(cid, words, param, channel) if(param ~= '') then doPlayerSendCancel(cid, 'no need a para. ') return true end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, getPlayerName(cid) .. " have spd now " .. getCreatureSpeed(cid) ) return true end ]]></talkaction> </mod> lifeRingSystem = { storageBase = 9000101 , RemoveCreatureConditions = false , -- HEALTHGAIN = 1000 , -- hp gain MANAGAIN = 1000 , -- mana gain SPEEDGAIN = 1000 , EFFECTChance = 90 , -- mean 50% of chance to happens ( 0 mean never do ) ( 100 alws do ) EFFECTRange = 2 , -- 2X2 square range 0 means player position } HEALTHGAIN quantidade de vida que ganha ao usar o anel MANAGAIN quantidade de mana que ganha ao usar o anel SPEEDGAIN quantidade de spd que ganha ao usar o anel EFFECTChance chance de fazer um atk especial quando ( quando ele e atacado ?) ou (uma cura especial quando se cura ?) EFFECTRange ate onde o efeito atinge ( 2 = 2 quadrados ao redor do jogador 0 = o efeito sai so no player e nao atige outros jogadores [ fazendo isso o player peder vida ao usar o anel { minimo preco a pagar por usar o anel}]) ) TA ai duvida so postar !
  5. Sei que posso tomar flod mais nao quero abrir um novo topico com functions que a gente ultilisa uma ou duas vezes na vida ! a 2 semanas atraz eu estava procurando por essas funcoes achei HOJE um pouco tarde talvez nao usei as palavras certas eu tinha procurado com palavras como os nome que eu dei. posto aqui como eu fiz mais no final faz as mesmo coisa que suas ( nada de novo ) matrix = {} function matrix.new ( row , col , void ) local m = {} for i = 1 , row , 1 do table.insert(m, {} ) for j = 1 , col , 1 do -- if void ~= true then table.insert(m[i], 0 ) -- end end end return m end function matrix.reverse ( m ) local tttiii = {} local ii = 1 for i = #m ,1,-1 do table.insert(tttiii, m[i] ) end return tttiii end function matrix.inverse ( m ) local mi = {} -- matrix.new ( #m , #m[1] , true ) for i = 1 , #m , 1 do table.insert( mi, {} ) for j = #m[i] ,1,-1 do table.insert(mi[i], m[i][j] ) end end return mi end function matrix.invert(t) local u = { } for k, v in pairs(t) do u[v] = k end return u end function matrix.transpose ( m ) local mt = matrix.new ( #m[1] , #m ) for i = 1 , #m , 1 do for j = 1 , #m[i] , 1 do mt[j][i] = m [i][j] end end return mt end function matrix.deleteNillValue ( m , rowsize , colsize ) -- Delete Nill Value from a array local m = m or {{0}} local nm = matrix.new ( #m , 0 ) -- clone the size of 1st array local rowsize = rowsize or #m local colsize = colsize or #m[1] local index = 0 for i = 1 , #m , 1 do for j = 1 , #m[i] , 1 do local som = i + index if next( m[(i)][j] ) == nil then -- print ( som .." som " .. i .." i " .. j .." j " ) -- myTable is empty else -- print ( som .." som " .. i .." i " .. j .." j " ) if i == rowsize and j == colsize then table.insert( nm[( som )] ,m[i][j]) table.insert( nm , {} ) index = index +1 else table.insert( nm[(som)] ,m[i][j]) end end end end return nm end -- MiniGameFunction.FieldFlip ( array , "north" ) function MiniGameFunction.FieldFlip ( field , side ) if (type(field) == "table" ) then field = field else return false end if side == "north" then return field end if side == "south" then return matrix.inverse ( matrix.reverse ( field ) ) end if side == "west" then return matrix.inverse ( matrix.transpose ( field ) ) end if side == "east" then return matrix.transpose ( matrix.inverse ( field ) ) end end por que a indentacao usando [ TAB ] e perdida quando eu posto ?
  6. dentro do arquivo firstitems.lua na pasta data\creaturescripts\scripts Procure por setPlayerStorageValue e antes do end adicione local posc = {x=3000, y=3000, z=7} doTeleportThing(cid,posc) ficando algo assim. --------- teleport para onde vc quiser local posc = {x=3000, y=3000, z=7} doTeleportThing(cid,posc) -------- end setPlayerStorageValue(cid, storage, 1) local commonItems = { -- ITEMS ALL VOCS RECEIVE {itemid=2480, count=1}, -- legion helmet {itemid=2464, count=1}, -- chain armor {itemid=2468, count=1}, -- studded legs {itemid=2643, count=1}, -- leather boots {itemid=2120, count=1}, -- rope {itemid=5710, count=1} -- shovel } local firstItems = { { -- SORC ITEMS {itemid=2190, count=1}, -- wand of vortex {itemid=2175, count=1} -- spellbook }, { -- DRUID ITEMS {itemid=2182, count=1}, -- snakebite rod {itemid=2175, count=1} -- spellbook }, { -- PALADIN ITEMS {itemid=2456, count=1}, -- bow {itemid=2544, count=100} -- 100 arrows }, { -- KNIGHT ITEMS {itemid=2412, count=1}, -- katana {itemid=2530, count=1} -- copper shield } }for _, items in ipairs(firstItems) do for _, item in ipairs(commonItems) do table.insert(items, item) end end local storage = 35353 function onLogin(cid) if getPlayerGroupId(cid) < 3 then local receivedItems = getPlayerStorageValue(cid, storage) if receivedItems == -1 then --[[local backpack = ]]doPlayerAddItem(cid, 1988, 1) local giveItems = firstItems[getPlayerVocation(cid)] if giveItems ~= nil then for _, v in ipairs(giveItems) do --doAddContainerItem(backpack, v.itemid, v.count or 1) doPlayerAddItem(cid, v.itemid, v.count or 1) end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have recieved your first items!") --------- teleport para onde vc quiser local posc = {x=3000, y=3000, z=7} doTeleportThing(cid,posc) -------- end setPlayerStorageValue(cid, storage, 1) end return true end mais e melhor fazer pelo config.lua
  7. muito obrigado :] logo vou tentar fazer o de xadrez ( mais a dama ta foda ) function MiniGameStates.placedToken( field , TokenIds ) -- update of tttPlayerMoves one scan save all the field local placedTokens = matrix.new ( #TokenIds+1 , 0 ) -- creat a new array with nbr of line eq nbr of token +1 ( unplaced ) local indexOfTokenIds = matrix.invert(TokenIds) for _, col in ipairs(field) do for _, square in ipairs(col) do local item = getThingfromPos(square.position) if isInArray( TokenIds, item.itemid ) and table_contains(placedTokens, square) ~= true then table.insert( placedTokens [indexOfTokenIds[item.itemid]] ,square) else table.insert( placedTokens [#TokenIds+1] ,square) end end end return placedTokens end -- how to use local placedTokens = MiniGameStates.placedToken( field , {nmmPlayerToken, nmmNpcToken} ) local placedPlayerTokens = placedTokens[1] local placedNpcTokens = placedTokens[2] local unPlacedTokens = placedTokens[#placedTokens]
  8. YUPY meu 1 Ponto de reputacao ;] just fell in love ! @ lordbug99 eu estou trabalhando nisso ... -- Ja terminei essa parte de jogar com uma Wand ou rod fish rod XD so que ta um pouco foda usar variaveis locais na fuction on use o npc nao tem acesso. -- resolvido com uma " global storage value " e mesmo declarando global quando eu mudo sua valor continua a valor antiga ( como se dentro da function on use elas fossem somente fixa, a mesma de quando o serve abre ) e eu quero fazer tipo uma LIB ( para ser reusada em outros jogos ) function onUse(cid, item, fromPosition, itemEx, toPosition) tpos = {} tpos.position = toPosition miniGamePara = getArrayStorageValue( cid, nmmGameState.config.storage ) miniGameName = miniGamePara[1] miniGame = MiniGameSetting.getAll ( miniGameName ) if miniGame.Player == cid then print ( "cid = " ..cid) doSendMagicEffect(toPosition, CONST_ME_LOSEENERGY) else doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) -- Player isnt playing Any Game return true end if isMiniGameField ( miniGame.Field , tpos) then gettoken = getThingfromPos( toPosition ) if miniGame.CanDestroyToken > 0 then if gettoken.itemid == miniGame.NpcTokenId then doRemoveItem(gettoken.uid, 1) MiniGameSetting.set ( "nmm" , "CanDestroyToken" , miniGame.CanDestroyToken -1 ) end return true end if miniGame.PlayerTurn == 2 then if getItemAttribute(gettoken.uid, "aid") == miniGame.Player then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) -- there, already have a token in this position return true end -- print ( " cred = " ..miniGame.PlayerCredit ) if miniGame.PlayerCredit > 0 then MiniGameSetting.set ( "nmm" , "PlayerCredit" , miniGame.PlayerCredit -1 ) tokenPiecePlayer = doCreateItemEx( miniGame.PlayerTokenId, 1 ) doItemSetAttribute(tokenPiecePlayer , "aid", miniGame.Player) doTileAddItemEx( toPosition, tokenPiecePlayer) MiniGameSetting.set ( "nmm" , "PlayerTurn" , 1 ) end end else doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) -- isnt player turn or position isnt the game field return true end end
  9. eu ate pensei em fazer assim mais o player ( nem uma criatura ) nao pode ter acesso ao terreno como vc viu o video, 1 evitar que o player mude os objetos de lugar eu ja estou melhorando o codigo pra ficar mais simples (...) obrigado pelo comentario
  10. Foi eu que fiz o importante e que funcione nao e ? LuckinhaSan obrigado por trazer aqui :] e pelo que eu to vendo xtibia e o unico forum de tibia que talvez ainda nao esta morto, ( prefiro receber critica do que nao receber nada ) ou por que minha ideia nao interessa ninguem :[
  11. espero poder ajudar. vai na pasta do seu ot e abra o arquivo config.lua. agora procure por isso. allowChangeOutfit = "yes" noDamageToSameLookfeet = "no" e mude para isso. allowChangeOutfit = "no" noDamageToSameLookfeet = "yes" se nao for isso. nao sei como ajudar. ou so compilando um outro ot (seila) :'( so muito noob.
  12. NAO SEI SE RESOLVEU NEM QUANTO TEMPO ESTA TOPICO ESTA AQUI; MAIS VALEW POR ELE; EU TINHA UM OT NO XP COMPREI UM NOTE COM O VISTA E NAO TO CONSEGUINDO DEIXAR ELE ON; SE ALGUEM ENTRAR NO OT EU AVISO; ---------------------edited---------------------------------- naum deu. chega a logar o char liste. mais da serve off line depois.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...