--Design
pokedexWindow = nil
--functions
Painel = {
pokedex = {
['pnlDescricao'] = "",
['pnlAtaques'] = "",
['pnlHabilidades'] = "",
}
}
openedDex = {}
dexMax = 0
function init()
connect(g_game, { onEditText = showPokemonDescription, onGameEnd = hide } )
end
function showPokedex()
if pokedexWindow then
pokedexWindow:destroy()
end
pokedexWindow = g_ui.displayUI('game_pokedex')
end
function terminate()
disconnect(g_game, { onEditText = showPokemonDescription, onGameEnd = hide } )
end
function hide()
pokedexWindow:destroy()
end
function Painel.show(childName)
pokedexWindow:getChildById('pnlDescricao'):getChildById('lblConteudo'):setText(Painel.pokedex['pnlDescricao'])
pokedexWindow:getChildById('pnlAtaques'):getChildById('lblConteudo'):setText(Painel.pokedex['pnlAtaques'])
pokedexWindow:getChildById('pnlHabilidades'):getChildById('lblConteudo'):setText(Painel.pokedex['pnlHabilidades'])
pokedexWindow:getChildById('pnlDescricao'):setVisible(false)
pokedexWindow:getChildById('scrDescricao'):setVisible(false)
pokedexWindow:getChildById('pnlAtaques'):setVisible(false)
pokedexWindow:getChildById('scrAtaques'):setVisible(false)
pokedexWindow:getChildById('pnlHabilidades'):setVisible(false)
pokedexWindow:getChildById('scrHabilidades'):setVisible(false)
pokedexWindow:getChildById(childName):setVisible(true)
pokedexWindow:getChildById('scr'..childName:sub(4,#childName)):setVisible(true)
end
function showPokemonDescription(id, itemId, maxLength, texto, writter, time)
if not g_game.isOnline() then return end --Se nao estiver online
local name = texto:match('Name: (.-)\n')
local type = texto:match('Type: (.-)\n')
--Se for chamada de pokedex
if name and type then
showPokedex()
--Required Level
local requieredLevel = texto:match('Required level: (.-)\n')
--Evolution Description
local evoDesc = texto:match('\nEvolutions:\n(.-)\n')
--MOVES
local moves = texto:match('\nMoves:\n(.-)\nAbility:')
--Ability
local ability = texto:sub(texto:find('Ability:\n')+9,#texto)
pokedexWindow:getChildById('lblPokeName'):setText(name)
-- STONE
local stoneId = texto:match('Evolve Stone: (.-)\n')
if name:find("Shiny") then
name = name:sub(7,#name)
pokedexWindow:getChildById('lblPokeName'):setColor("red")
end
local f = io.open("modules/game_pokedex/imagens/pokemons/"..name..".png","r");
if not f then
print("Not found poke image called "..name)
else
f:close()
pokedexWindow:getChildById('imgPokemon'):setImage("/game_pokedex/imagens/pokemons/"..name..".png")
end
Painel.pokedex["pnlDescricao"] = "Tipo: "..type.."\nNivel Requerido: "..requieredLevel.."\n\nEvolucoes:\n"..evoDesc.."\nEvolve Stone: "..stoneId
Painel.pokedex["pnlAtaques"] = moves
Painel.pokedex["pnlHabilidades"] = ability
Painel.show('pnlDescricao')
end
end
Pokedex system servidor
local skills = specialabilities --alterado v1.9 \/ peguem tudo!
function doAddPokemonInDexList(cid, poke)
if getPlayerInfoAboutPokemon(cid, poke).dex then return true end
local a = newpokedex[poke]
local b = getPlayerStorageValue(cid, a.storage)
setPlayerStorageValue(cid, a.storage, b.." dex,")
end
function getPokemonEvolutionDescription(name, next)
local kev = poevo[name]
local stt = {}
if isInArray(specialevo, name) then
if name == "Poliwhirl" then
if next then
return "\nPoliwrath or Politoed, requires level 65."
end
table.insert(stt, "Evolve Stone: Water Stone and Punch Stone or Water Stone and King's Rock\n\n")
table.insert(stt, "Evolutions:\nPoliwrath, requires level 65.\nPolitoed, requires level 65.")
elseif name == "Gloom" then
if next then
return "\nVileplume or Bellossom, requires level 50."
end
table.insert(stt, "Evolve Stone: Leaf Stone and Venom Stone or Leaf Stone and Sun Stone\n\n")
table.insert(stt, "Evolutions:\nVileplume, requires level 50.\nBellossom, requires level 50.")
elseif name == "Slowpoke" then
if next then
return "\nSlowbro, requires level 45.\nSlowking, requires level 100."
end
table.insert(stt, "Evolve Stone: Enigma Stone or King's Rock\n\n")
table.insert(stt, "Evolutions:\nSlowbro, requires level 45.\nSlowking, requires level 100.")
elseif name == "Eevee" then
if next then
return "\nVaporeon, requires level 55.\nJolteon, requires level 55.\nFlareon, requires level 55.\nUmbreon, requires level 55.\nEspeon, requires level 55."
end
table.insert(stt, "Evolve Stone: Water Stone or Thunder Stone or Fire Stone or Darkness Stone or Enigma Stone\n\n")
table.insert(stt, "Evolutions:\nVaporeon, requires level 55.\nJolteon, requires level 55.\nFlareon, requires level 55.\nUmbreon, requires level 55.\nEspeon, requires level 55.")
elseif name == "Tyrogue" then
if next then
return "\nHitmonlee, requires level 60.\nHitmonchan, requires level 60.\nHitmontop, requires level 60."
end
table.insert(stt, "Evolve Stone: Punch Stone\n\n")
table.insert(stt, "Evolutions:\nHitmonlee, requires level 60.\nHitmonchan, requires level 60.\nHitmontop, requires level 60.")
end
elseif kev then
if next then
table.insert(stt, "\n"..kev.evolution..", requires level "..kev.level..".")
return table.concat(stt)
end
local id = tonumber(kev.stoneid)
local id2 = tonumber(kev.stoneid2)
local stone = ""
if tonumber(kev.count) == 2 then
stone = doConvertStoneIdToString(id).." (2x)"
else
stone = id2 == 0 and doConvertStoneIdToString(id) or doConvertStoneIdToString(id).." and "..doConvertStoneIdToString(id2)
end
table.insert(stt, "Evolve Stone: "..stone.."\n")
table.insert(stt, "Evolutions:\n"..kev.evolution..", requer nível "..kev.level..".")
table.insert(stt, getPokemonEvolutionDescription(kev.evolution, true))
else
if not next then
table.insert(stt, "Evolutions:\nNão tem evoluções.\n")
end
end
return table.concat(stt)
end
local function getMoveDexDescr(cid, name, number)
local x = movestable[name]
if not x then return "" end
local z = "\n"
local tables = {x.move1, x.move2, x.move3, x.move4, x.move5, x.move6, x.move7, x.move8, x.move9, x.move10, x.move11, x.move12}
local y = tables[number]
if not y then return "" end
if getTableMove(cid, y.name) == "" then
print(""..y.name.." faltando")
return "unknown error"
end
local txt = ""..z.."\nMove "..number.."\nNome: "..y.name.."\nNível: "..y.level.." \nTipo: "..(y.t) .. "\nCoolDown: "..(y.cd)..""
return txt
end
--alterado v1.8
local skillcheck = {"fly", "ride", "surf", "teleport", "rock smash", "cut", "dig", "light", "blink", "control mind", "transform", "levitate_fly"}
local passivas = {
["Electricity"] = {"Electabuzz", "Shiny Electabuzz", "Elekid", tpw = "electric"},
["Lava Counter"] = {"Magmar", "Magby", tpw = "fire"},
["Counter Helix"] = {"Scyther", "Shiny Scyther", tpw = "bug"},
["Giroball"] = {"Pineco", "Forretress", tpw = "steel"},
["Counter Claw"] = {"Scizor", tpw = "bug"},
["Counter Spin"] = {"Hitmontop", "Shiny Hitmontop", tpw = "fighting"},
["Demon Kicker"] = {"Hitmonlee", "Shiny Hitmonlee", tpw = "fighting"},
["Demon Puncher"] = {"Hitmonchan", "Shiny Hitmonchan", tpw = "unknow"}, --alterado v1.6
["Stunning Confusion"] = {"Psyduck", "Golduck", "Wobbuffet", tpw = "psychic"},
["Groundshock"] = {"Kangaskhan", tpw = "normal"},
["Electric Charge"] = {"Pikachu", "Raichu", "Shiny Raichu", tpw = "electric"},
["Melody"] = {"Wigglytuff", tpw = "normal"},
["Dragon Fury"] = {"Dratini", "Dragonair", "Dragonite", "Shiny Dratini", "Shiny Dragonair", "Shiny Dragonite", tpw = "dragon"},
["Fury"] = {"Persian", "Raticate", "Shiny Raticate", tpw = "normal"},
["Mega Drain"] = {"Oddish", "Gloom", "Vileplume", "Kabuto", "Kabutops", "Parasect", "Tangela", "Shiny Vileplume", "Shiny Tangela", tpw = "grass"},
["Spores Reaction"] = {"Oddish", "Gloom", "Vileplume", "Shiny Vileplume", tpw = "grass"},
["Amnesia"] = {"Wooper", "Quagsire", "Swinub", "Piloswine", tpw = "psychic"},
["Zen Mind"] = {"Slowking", tpw = "psychic"},
["Mirror Coat"] = {"Wobbuffet", tpw = "psychic"},
["Lifesteal"] = {"Crobat", tpw = "normal"},
["Evasion"] = {"Scyther", "Scizor", "Hitmonlee", "Hitmonchan", "Hitmontop", "Tyrogue", "Shiny Scyther", "Shiny Hitmonchan", "Shiny Hitmonlee", "Shiny Hitmontop", "Ledian", "Ledyba", "Sneasel", tpw = "normal"},
["Foresight"] = {"Machamp", "Shiny Hitmonchan", "Shiny Hitmonlee", "Shiny Hitmontop", "Hitmontop", "Hitmonlee", "Hitmonchan", tpw = "fighting"},
["Levitate"] = {"Gengar", "Haunter", "Gastly", "Misdreavus", "Weezing", "Koffing", "Unown", "Shiny Gengar", tpw = "ghost"},
}
function doShowPokedexRegistration(cid, pokemon, ball)
local item2 = pokemon
local virtual = false
if type(pokemon) == "string" then
virtual = true
end
local myball = ball
local name = virtual and pokemon or getCreatureName(item2.uid)
local v = fotos[name]
local stt = {}
table.insert(stt, "Name: "..name.."\n")
if pokes[name].type2 and pokes[name].type2 ~= "no type" then
table.insert(stt, "Type: "..pokes[name].type.."/"..pokes[name].type2)
else
table.insert(stt, "Type: "..pokes[name].type)
end
if virtual then
table.insert(stt, "\nRequired level: "..pokes[name].level.."\n")
else
table.insert(stt, "\nRequired level: ".. getPokemonLevel(item2.uid, true) .."\n") --alterado v1.9
end
table.insert(stt, "\n"..getPokemonEvolutionDescription(name).."\n")
table.insert(stt, "\nMoves:")
if name == "Ditto" then
if virtual then
table.insert(stt, "\n\nNão pode usar ataque enquanto\nestá destransformado.")
elseif getPlayerStorageValue(item2.uid, 1010) == "Ditto" or getPlayerStorageValue(item2.uid, 1010) == -1 then
table.insert(stt, "\n\nNão pode usar ataque enquanto\nestá destransformado.")
else
for a = 1, 15 do
table.insert(stt, getMoveDexDescr(item2.uid, getPlayerStorageValue(item2.uid, 1010), a))
end
end
else
for a = 1, 15 do
table.insert(stt, getMoveDexDescr(item2.uid, name, a))
end
end
for e, f in pairs(passivas) do
if isInArray(passivas[e], name) then
local tpw = passivas[e].tpw
if name == "Pineco" and passivas[e] == "Giroball" then
tpw = "bug"
end
table.insert(stt, "\n"..e.." - passive - "..tpw)
end
end
table.insert(stt, "\n\nAbility:\n")
local abilityNONE = true --alterado v1.8 \/
for b, c in pairs(skills) do
if isInArray(skillcheck, b) then
if isInArray(c, name) then
table.insert(stt, (b == "levitate_fly" and "Levitate" or doCorrectString(b)).."\n")
abilityNONE = false
end
end
end
if abilityNONE then
table.insert(stt, "None")
end
if string.len(table.concat(stt)) > 8192 then
print("Error while making pokedex info with pokemon named "..name..".\n Pokedex registration has more than 8192 letters (it has "..string.len(stt).." letters), it has been blocked to prevent fatal error.")
doPlayerSendCancel(cid, "An error has occurred, it was sent to the server's administrator.")
return true
end
doShowTextDialog(cid, v, table.concat(stt))
end
Alguem poderia me ajuda nesse erro
Pokes que nao tem mais evoluções
Erro