local skills = specialabilities
function doAddPokemonInDexList(cid, poke)
if getPlayerInfoAboutPokemon(cid, poke).dex then return true end
local a = newpokedex[poke] --alterado v2.6 totalmente alterada... peguem o script todo!
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
stt = stt.."Evolve Stone: Water Stone and Punch Stone or Water Stone and King's Rock\n\n"
stt = 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
stt = stt.."Evolve Stone: Leaf Stone and Venom Stone or Leaf Stone and Sun Stone\n\n"
stt = 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
stt = stt.."Evolve Stone: Enigma Stone or King's Rock\n\n"
stt = 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
stt = stt.."Evolve Stone: Water Stone or Thunder Stone or Fire Stone or Darkness Stone or Enigma Stone\n\n"
stt = 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
stt = stt.."Evolve Stone: Punch Stone\n\n"
stt = stt.."Evolutions:\nHitmonlee, requires level 60.\nHitmonchan, requires level 60.\nHitmontop, requires level 60."
end
elseif kev then
if next then
stt = stt.."\n"..kev.evolution..", requires level "..kev.level.."."
return 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
stt = stt.."Evolve Stone: "..stone.."\n\n"
stt = stt.."Evolutions:\n"..kev.evolution..", requeris level "..kev.level.."."
stt = stt..getPokemonEvolutionDescription(kev.evolution, true)
else
if not next then
stt = stt.."Evolutions:\nIt doen't evolve."
end
end
return stt
end
local function getMoveDexDescr(cid, name, number)
local x = movestable[name]
local y = {}
local z = "\n"
if not x then return "" end
if number == 1 and x.move1 then
y = x.move1
elseif number == 2 and x.move2 then
y = x.move2
elseif number == 3 and x.move3 then
y = x.move3
elseif number == 4 and x.move4 then
y = x.move4
elseif number == 5 and x.move5 then
y = x.move5
elseif number == 6 and x.move6 then
y = x.move6
elseif number == 7 and x.move7 then
y = x.move7
elseif number == 8 and x.move8 then
y = x.move8
elseif number == 9 and x.move9 then
y = x.move9
elseif number == 10 and x.move10 then
y = x.move10
elseif number == 11 and x.move11 then
y = x.move11
elseif number == 12 and x.move12 then
y = x.move12
elseif number == 13 and x.move13 then
y = x.move13
elseif number == 14 and x.move14 then
y = x.move14
elseif number == 15 and x.move15 then
y = x.move15
else
return ""
end
if type(cid) ~= "string" and getTableMove(cid, y.name) == "" then
print(""..y.name.." faltando")
return "unknown error"
end
local txt = ""..z..""..y.name.." - m"..number.." - level "..y.level.." - "..y.t
return txt
end
local skillcheck = {"fly", "ride", "surf", "teleport", "rock smash", "cut", "dig", "light", "blink", "control mind", "transform"}
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 v2.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 = ""
stt = "Name: "..name.."\n"
if pokes[name].type2 and pokes[name].type2 ~= "no type" then
stt = stt.."Type: "..pokes[name].type.."/"..pokes[name].type2..""
else
stt = stt.."Type: "..pokes[name].type..""
end
if virtual then
stt = stt.."\nLevel Base: "..pokes[name].level.."\n"
else
stt = stt.."\nRequired level: "..getPokemonLevel(item2.uid).."\n"
end
stt = stt.."\n"..getPokemonEvolutionDescription(name).."\n"
stt = stt.."\nMoves:"
if name == "Ditto" then
if virtual then
stt = stt.."\nIt doesn't use any moves until transformed."
elseif getPlayerStorageValue(item2.uid, 1010) == "Ditto" or getPlayerStorageValue(item2.uid, 1010) == -1 then
stt = stt.."\nIt doesn't use any moves until transformed."
else
for a = 1, 15 do
stt = stt..""..getMoveDexDescr(item2.uid, getPlayerStorageValue(item2.uid, 1010), a)..""
end
end
else
for a = 1, 15 do
stt = 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
stt = stt.."\n"..e.." - passive - "..tpw..""
end
end
stt = stt.."\n\nAbility:\n"
for b, c in pairs(skills) do
if isInArray(skillcheck, b) then
if isInArray(c, name) then
stt = stt..""..doCorrectString(b).."\n"
end
end
end
if string.len(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, stt)
end