Depois de umas pesquisas, descobri que para mudar o nivel do pokemon é no goback, então vou postar o meu aqui para facilitar:
function onUse(cid, item, fromPosition, itemEx, toPosition)
function getPokemonMaxLife(name)
local file = io.open('data/monster/monsters.xml','r')
local arquivo = file:read(-1):lower():match('<monster name="'..name:lower()..'" file="(.-)"/>')
file:close()
local data = io.open('data/monster/'..(arquivo or ''),'r')
if not data then
return 100
end
local maximo = data:read(-1):match('max%s*=%s*"(%d+)"')
data:close()
return maximo
end
----- Config -----
local MaximoSummon = 1
local nome = getItemName(item.uid)
local poke_name = nome:match('(.-) Pokeball')
local summons = getCreatureSummons(cid)
local action_id = getItemAttribute(item.uid, "aid")
----- Config -----
if getItemAttribute(item.uid, "aid") == -1 then
return doPlayerSendCancel(cid, "Seu pokemon está morto.")
end
if getPlayerStorageValue(cid, 25000) == 5 then
return doPlayerSendCancel(cid, "Você está montando.")
end
if getPlayerStorageValue(cid, 23000) == 5 then
return doPlayerSendCancel(cid, "Você está voando.")
end
local summons = getCreatureSummons(cid)
if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
doPlayerSendCancel(cid, "Para Soltar seus pokemons, coloque-os no slot da pokeball.")
return TRUE
end
if(table.maxn(summons) < MaximoSummon) then -- no summons
creature = doSummonCreature(poke_name, getCreaturePosition(cid))
doConvinceCreature(cid, creature)
registerCreatureEvent(creature, "DiePoke")
registerCreatureEvent(cid, "PlayerPokeDeath")
registerCreatureEvent(cid, "LogoutPoke")
doPlayerSay(cid, "Go,"..poke_name.."!!", TALKTYPE_ORANGE_1)
doSendMagicEffect(getCreaturePosition(creature), 188)
doTransformItem(getPlayerSlotItem(cid,8).uid, 2531, 1)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid,"name", poke_name .." Pokeball")
if action_id ~= 0 then
doCreatureAddHealth(creature, -(tonumber(getPokemonMaxLife(poke_name) - action_id)))
else
doCreatureAddHealth(creature, getPokemonMaxLife(poke_name))
end
else
for _, pid in ipairs(summons) do
if (table.maxn(summons) >= 1) then
doItemSetAttribute(item.uid, "aid", getCreatureHealth(summons[1]))
doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 188)
doPlayerSay(cid, "Back,"..poke_name..".", TALKTYPE_ORANGE_1)
doRemoveCreature(pid)
doTransformItem(getPlayerSlotItem(cid,8).uid, 2532, 1)
doItemSetAttribute(getPlayerSlotItem(cid,8).uid,"name", poke_name .." Pokeball")
end
end
end
return true
end
info
Grupo: Campones
Registrado: 20/01/11
Posts: 2
Reputação: 0
Char no Tibia: Kininhanub
Tipo do script: Poketibia
Protocolo (versão do Tibia): 8.54
Servidor utilizado: Pokemon Flash
Nível de experiência: Razoável
Adicionais/Informações: Quero que exista um level para usar cada pokemon no PokeTibia. Deixe-me explicar melhor:
O jogador começa com um rattata ou algum outro pokemon(no caso do meu ot: charmander, bulbassaur e squirtle)
Aí o jogador captura um ponyta(exemplo)
Sendo assim, ele terá uma pokebola com um ponyta dentro.
Então ele só poderá usar o ponyta no level 20(no caso do meu ot, qualquer level pode usar.).
E pra evoluir a mesma coisa:
ele só conseguirá evoluir para rapidash no level 60, por exemplo.
Vou colocar aqui os script do ponyta e do monsters.xml, já que não sei em qual devo mexer.
monsters.xml
Ponyta.xml:
E outro script que eu quero é o seguinte:
No meu ot, os pokemons mandam ataques sozinho.
Eu gostaria que o dono do pokemon ordenasse o ataque, por exemplo
Player digita m1
player fala: Ponyta, bite!
Ponyta então ataca com o bite
E assim vai, m1, m2, m3, m4, m5, m6...
já consegui essa parte/\
E também tem um bug no meu ot que, quando vc morre montado em um pokemon, vc passará a nascer sempre montado nele, mesmo não tendo ele na pokebola.
É só isso que eu quero mesmo, acho que não é tão difícil.
PS:
Uso o ot e o client baixados aqui:
http://www.xtibia.com/forum/topic/145903-854-pokeserver-pokemon-flash/
EDIT:
Depois de umas pesquisas, descobri que para mudar o nivel do pokemon é no goback, então vou postar o meu aqui para facilitar:
function onUse(cid, item, fromPosition, itemEx, toPosition) function getPokemonMaxLife(name) local file = io.open('data/monster/monsters.xml','r') local arquivo = file:read(-1):lower():match('<monster name="'..name:lower()..'" file="(.-)"/>') file:close() local data = io.open('data/monster/'..(arquivo or ''),'r') if not data then return 100 end local maximo = data:read(-1):match('max%s*=%s*"(%d+)"') data:close() return maximo end ----- Config ----- local MaximoSummon = 1 local nome = getItemName(item.uid) local poke_name = nome:match('(.-) Pokeball') local summons = getCreatureSummons(cid) local action_id = getItemAttribute(item.uid, "aid") ----- Config ----- if getItemAttribute(item.uid, "aid") == -1 then return doPlayerSendCancel(cid, "Seu pokemon está morto.") end if getPlayerStorageValue(cid, 25000) == 5 then return doPlayerSendCancel(cid, "Você está montando.") end if getPlayerStorageValue(cid, 23000) == 5 then return doPlayerSendCancel(cid, "Você está voando.") end local summons = getCreatureSummons(cid) if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then doPlayerSendCancel(cid, "Para Soltar seus pokemons, coloque-os no slot da pokeball.") return TRUE end if(table.maxn(summons) < MaximoSummon) then -- no summons creature = doSummonCreature(poke_name, getCreaturePosition(cid)) doConvinceCreature(cid, creature) registerCreatureEvent(creature, "DiePoke") registerCreatureEvent(cid, "PlayerPokeDeath") registerCreatureEvent(cid, "LogoutPoke") doPlayerSay(cid, "Go,"..poke_name.."!!", TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(creature), 188) doTransformItem(getPlayerSlotItem(cid,8).uid, 2531, 1) doItemSetAttribute(getPlayerSlotItem(cid,8).uid,"name", poke_name .." Pokeball") if action_id ~= 0 then doCreatureAddHealth(creature, -(tonumber(getPokemonMaxLife(poke_name) - action_id))) else doCreatureAddHealth(creature, getPokemonMaxLife(poke_name)) end else for _, pid in ipairs(summons) do if (table.maxn(summons) >= 1) then doItemSetAttribute(item.uid, "aid", getCreatureHealth(summons[1])) doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 188) doPlayerSay(cid, "Back,"..poke_name..".", TALKTYPE_ORANGE_1) doRemoveCreature(pid) doTransformItem(getPlayerSlotItem(cid,8).uid, 2532, 1) doItemSetAttribute(getPlayerSlotItem(cid,8).uid,"name", poke_name .." Pokeball") end end end return true endEditado Fevereiro 22 por cariocaenois