Ir para conteúdo
  • 0

[Resolvido] Goback - Poketibia


Deadpool

Pergunta

Boa noite galera.. Estou mexendo em um servidor.. Porem, fui tentar usar um pokémon e deu o seguinte erro na distro:

[08/10/2015 22:03:13] [Error - Action Interface] 
[08/10/2015 22:03:13] data/actions/scripts/goback.lua:onUse
[08/10/2015 22:03:13] Description: 
[08/10/2015 22:03:13] data/lib/newSystemsLib.lua:1267: attempt to index field '?' (a nil value)
[08/10/2015 22:03:13] stack traceback:
[08/10/2015 22:03:13] 	data/lib/newSystemsLib.lua:1267: in function 'doGoPokemon'
[08/10/2015 22:03:13] 	data/actions/scripts/goback.lua:27: in function <data/actions/scripts/goback.lua:1>

Então, eu fui na lib, e encontrei essa parte:

function doGoPokemon(cid)


local item = getPlayerSlotItem(cid, 8)	
--------
   msgunicaback =  backMSG[math.random(#backMSG)]
   msgunicago = goMSG[math.random(#goMSG)]
   btype = getPokeballType(item.itemid)
   usando = pokeballs[btype].use
   online = pokeballs[btype].on
   morto  = pokeballs[btype].off
   if isIconeSystem(cid) then
      effect = getItemAttribute(item.uid, "effect")
    else
      effect =  getItemAttribute(item.uid, "effect")
   end
--------

if isZumbie(cid) or isHuman(cid) then
return doPlayerSendCancel(cid, "Sorry, is not possible.")
end
if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
	doPlayerSendCancel(cid, "You must put your pokeball in the correct place!")
	return TRUE
end


if not canSummon(cid) then
return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHROOM)
end

if getPlayerStorageValue(cid, 63215) >= 1 then
return doPlayerSendCancel(cid, "You can't use pokeball while surfing.")
end

if getPlayerStorageValue(cid, 62314) >= 1 then
return doPlayerSendCancel(cid, "You can't use pokeball while flying.")
end

if #getCreatureSummons(cid) >= 1 then
return doPlayerSendCancel(cid, "You have already summoned a pokemon.")
end

for i,x in pairs(pokes) do
if i == getItemAttribute(item.uid, "poke"):sub(9, findLetter(getItemAttribute(item.uid, "poke"), "'")-1) then

if getPlayerLevel(cid) < x.level+getPokemonBoostt(item.uid) then
doPlayerSendCancel(cid, "You need level "..x.level+getPokemonBoostt(item.uid).." or higher to use this pokemon.")
return true
end
local removed = doCreateItem(1285, 1, getThingPos(cid))
local monster = doSummonCreature(i, farAwayPos, false)


--/////////////////////////////////////// Nick system
   if string.find(tostring(getCreatureName(monster)), "Shiny") then
      local newName = tostring(getCreatureName(monster)):match("Shiny (.*)")   
      setCreatureName(monster, newName, "a "..newName..".") 
   end
   
 if getItemAttribute(item.uid, "nick")  then 
    setCreatureName(monster, getItemAttribute(item.uid, "nick"), "a "..getItemAttribute(item.uid, "nick")..".") 
 end 
 --/////////////////////////////////////// Nick system
 
  local pk = monster
  doConvinceCreature(cid, pk)
  setPlayerStorageValue(pk, storages.pokeName, i)
local pokemonName = getPlayerStorageValue(pk, storages.pokeName)  
  
  
  doTeleportThing(pk, {x = getThingPos(cid).x, y = getThingPos(cid).y+8, z = getThingPos(cid).z})
  doTeleportThing(pk, getClosestFreeTile(pk, getThingPos(cid)), false)
  doRemoveItem(removed, 1)
  doCreatureSetLookDir(pk, 2)
    local maxh = pokes[pokemonName].vida 
    
       if getItemAttribute(item.uid, "ballId") < 0 then
          doItemSetAttribute(item.uid, "boost", 0)
       end
       
    local levellife = ((getPlayerLevel(cid)) * 2 + configBoostSystem[getItemAttribute(item.uid, "boost")].hp)
    if pokeballStatus[getItemAttribute(item.uid, "ballId")] then
    
       tabela = {}  -- Status das novas pokebolas
       tabela.status = pokeballStatus[getItemAttribute(item.uid, "ballId")].status
       tabela.count   = pokeballStatus[getItemAttribute(item.uid, "ballId")].count
       tabela.type = pokeballStatus[getItemAttribute(item.uid, "ballId")].type
       tabela.type2 = pokeballStatus[getItemAttribute(item.uid, "ballId")].type2
       tabela.type3 = pokeballStatus[getItemAttribute(item.uid, "ballId")].type3
       levellife = levellife + doChangeStatusBall(pk, tabela)
       
    end

    local health = tonumber(getItemAttribute(item.uid, "poke"):match("%[(.-)/"))
    doCreatureAddHealth(pk, health-maxh)
    local pct = ((getCreatureHealth(pk)) / (getCreatureMaxHealth(pk)))
    local vidis = (getCreatureHealth(pk))
    setCreatureMaxHealth(pk, ((maxh) + (levellife)))
    doCreatureAddHealth(pk, 2)
    doCreatureAddHealth(pk, -vidis)
    doCreatureAddHealth(pk, ((getCreatureMaxHealth(pk)) * (pct)) - 2)
    doTransformItem(item.uid, item.itemid+1)
    --doPlayerSendTextMessage(cid, 27, getPokemonMin(getCreatureName(pk)))
    
local pokename = pokemonName
local mgo = msgunicago:gsub("doka", getCreatureName(pk))
doCreatureSay(cid, mgo, TALKTYPE_SAY)
if math.random(1,100) <= 35 then
  setPokemonFeed(cid, getPokemonFeed(cid)-5) -- Food system
end
doSendFeedEffect(cid)
if getItemAttribute(item.uid, "nome") ~= "Ditto" then
for i = 1, 12 do
if not getMoveNamee(cid, i) then
addEvent(doGoBackSetCooldown, 200, cid)
end
end
else
for a = 1, 12 do 
  setPokemonCooldown(cid, a, "Don't have this move.")
end
end 
doItemSetAttribute(item.uid, "poke", getItemAttribute(item.uid, "poke"):sub(1, findLetter(getItemAttribute(item.uid, "poke"), ".")))
doItemSetAttribute(item.uid, "pokes", ""..pokename.."")
doSendMagicEffect(getCreaturePosition(pk), effect)
setPlayerStorageValue(cid, 61204, 1)
registerCreatureEvent(pk, "DiePoke")
registerCreatureEvent(pk, "Exp")
doPlayerSendTextMessage(cid, 27, getItemAttribute(item.uid, "task"))
adjustWildPoke(pk, item.uid)
doSendFeedEffect(cid)
--------

	------------------------passiva hitmonchan------------------------------
	if isSummon(pk) then                                                  --alterado v1.8 \/
       if pokemonName == "Elite Hitmonchan" or pokemonName == "Hitmonchan" then
          if not getItemAttribute(item.uid, "hands") then
             doItemSetAttribute(item.uid, "hands", 0)
          end
          local hands = getItemAttribute(item.uid, "hands")
          doSetCreatureOutfit(pk, {lookType = hitmonchans[getCreatureName(pk)][hands].out}, -1)
       end
    end
	-------------------------------------------------------------------------
	    ---------movement magmar, jynx-------------
    if EFFECTS[pokemonName] then           
       markPosEff(pk, getThingPos(pk))
       sendMovementEffect(pk, EFFECTS[pokemonName], getThingPos(pk))  
    end
    if getItemAttribute(item.uid, "boost") >= 20 and getItemAttribute(item.uid, "auras") then
       sendAuraEffect(getCreatureSummons(cid)[1], auras[getItemAttribute(item.uid, "auras")]) 
    end
    --------------------------------------------------------------------------
    ------------- addon system ----------------------
     if getItemAttribute(item.uid, "addonNow") then
       if getItemAttribute(item.uid, "color1") then
        local color1, color2, color3, color4 = getItemAttribute(item.uid, "color1"), getItemAttribute(item.uid, "color2"), getItemAttribute(item.uid, "color3"), getItemAttribute(item.uid, "color4")
        doCreatureChangeOutfit(pk, {lookType = getItemAttribute(item.uid, "addonNow"), lookBody = color1, lookHead = color2, lookLegs = color3, lookFeet = color4})
       else
        doCreatureChangeOutfit(pk, {lookType = getItemAttribute(item.uid, "addonNow")})
       end 
     end
    ------------- addon system ---------------------
              

    if getPlayerStorageValue(cid, 6598754) >= 1 then
       doCreatureSetSkullType(pk, 3) -- Identificador de times, time vermelho
    elseif getPlayerStorageValue(cid, 6598755) >= 1 then
       doCreatureSetSkullType(pk, 4) -- Identificador de times, time azull
    end
    

if getPlayerStorageValue(cid, 991) >= 1 then  --- Ginasios 
   doSendAnimatedText(getThingPos(cid), "POKEIN", COLOR_ICE)
end 
    ------------- ditto system ----------------------     
     if pokemonName == "Ditto" then
       if getItemAttribute(item.uid, "dittoName") then
            doCreatureChangeOutfit(pk, {lookType = getItemAttribute(item.uid, "dittoOut")}) 
            setPlayerStorageValue(pk, storages.pokeName, getItemAttribute(item.uid, "dittoName"))
       end
     elseif pokemonName == "Shiny Ditto" then
      if not getItemAttribute(item.uid, "dittoName") or tonumber(getItemAttribute(item.uid, "dittoName")) and getItemAttribute(item.uid, "dittoName") <= 0 then
            local out, out1 = getCreatureOutfit(pk), getCreatureOutfit(cid)
            doCreatureChangeOutfit(pk, {lookType = out.lookType, lookLegs = out1.lookBody}) 

       else
            doCreatureChangeOutfit(pk, {lookType = getItemAttribute(item.uid, "dittoOut"), lookLegs = getCreatureOutfit(cid).lookBody}) 
            setPlayerStorageValue(pk, storages.pokeName, getItemAttribute(item.uid, "dittoName"))
            
       end
     end
     
      if getItemAttribute(item.uid, "nome") == "Smeargle" then
         setPlayerStorageValue(pk, storages.pokeName, getItemAttribute(item.uid, "smeargleName"))
      end
     ------------- ditto system ---------------------- 
      ------------- uknown system ----------------------  
       if pokemonName == "Uknown" then 
          local roupas = {721, 722, 723, 724}
          doCreatureChangeOutfit(pk, {lookType = roupas[math.random(#roupas)]}) 
          doSendMagicEffect(getThingPos(pk), 211)
       end
       
            

break
end
end
end

 

 

Ai logo vi, que essa linha(que está dando o erro na distro):

    local maxh = pokes[pokemonName].vida 

Que fica na LIB, chamava essa tabela(vou mostrar só o começo):

pokes = {
["Spectral Gengar"] = {level = 120, cons = 43, vida = 16500},

Então.. eu resolvi mudar essa linha:

    local maxh = pokes[pokemonName].vida 

Para essa:

   local maxh = pokes[getItemAttribute(item.uid, "nome")].vida

Porem, continua dando erro.. Alguem poderia me ajudar?

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

 

Talvez o problema esteja na seguinte variável, responsável por armazenar uma posição para onde o pokémon é teleportado ao ser criado.

farAwayPos

tava vendo isso :|, ou então.. no novo mapa não tem a posição criada com PZ, e entao da esse erro.. hm

 

Talvez o problema esteja na seguinte variável, responsável por armazenar uma posição para onde o pokémon é teleportado ao ser criado.

farAwayPos

sabia que era isso zipter, obrigado, consegui resolver ^^, agradeço muito, se não fosse por essa dica rs, sou seu fã cara ^^

Link para o comentário
Compartilhar em outros sites

  • 0
  • Administrador
A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...