Ir para conteúdo
  • 0

[Resolvido] [Help] Pokedex System OtClient


TioSlenderman

Pergunta

--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

 

44350345_352248452012173_1209237575353499648_n.png.78d4401f2905b705220bb435d8263291.png

 

Pokes que nao tem mais evoluções

44474990_301704577100397_7565559667561070592_n.png.86daac6868a41286403238a791ad6ba2.png

 

Erro

 

44323397_438307023239951_248417459541901312_n.png.8768122ab8d1d57bcfbd77f70d80a013.png

Editado por TioSlenderman
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

@TioSlenderman

Spoiler

--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
        if evoDesc then
        Painel.pokedex["pnlDescricao"] = "Tipo: "..type.."\nNivel Requerido: "..requieredLevel.."\n\nEvolucoes:\n"..evoDesc.."\nEvolve Stone: "..stoneId
        else
        Painel.pokedex["pnlDescricao"] = "Tipo: "..type.."\nNivel Requerido: "..requieredLevel.."\n\nEvolucoes:\nNão tem"
        end
        Painel.pokedex["pnlAtaques"] = moves
        Painel.pokedex["pnlHabilidades"] = ability
        Painel.show('pnlDescricao')
    end
end

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

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