HA
poketibia

[Encerrado] Go/Back Poketibia 9.60

Por hamud, 12 de dez. de 2013 em Tópicos Sem Resposta

resolvido
tibia
script
otserv
11
1.3k
hamudH
12 de dezembro de 2013 às 16:14

Ola, não é minha primeira duvida, a duvida agora é sobre o Go/Back que está dando erro o erro é o seguinte.


[Error- Action interface]
data/actions/script/goback.lua:OnUse
Description:
data/actions/script/goback.lua:Attempt to index global 'balls types' (a nil value)
stack traceback:
data/actions/script/goback.lua:16: in function (data/actions/script/goback.lua:12)

 

 

 

O Go/Back que estou testando...

 

 

 

local EFFECTS = {
--[OutfitID] = {Effect}
["Magmar"] = 35,
["Jynx"] = 17, --alterado v1.5
["Shiny Jynx"] = 17,
["Piloswine"] = 205, --alterado v1.8
["Swinub"] = 205,
["Shiny Magmar"] = 35,
["Shiny Onix"] = 175,
}
function onUse(cid, item, frompos, item2, topos)
--sendAllPokemonsBarPoke(cid)
if item.itemid >= 2520 then
if not getItemAttribute(item.uid, "ball") or not isInArray({"normal", "great", "super", "ultra", "shinynormal", "shinygreat", "shinysuper", "shinyultra"}, getItemAttribute(item.uid, "ball")) then
doItemSetAttribute(item.uid, "ball", ballsTypes[math.random(1, 4)])
end
typeUse = icons[getItemAttribute(item.uid, "poke")].use
typeOn = icons[getItemAttribute(item.uid, "poke")].on
typeOff = icons[getItemAttribute(item.uid, "poke")].off
typeAll = {typeOn, typeUse, typeOff}
distanceEffect = pokeballs[getItemAttribute(item.uid, "ball")].disteffect
effect = pokeballs[getItemAttribute(item.uid, "ball")].effect
else
typeUse = pokeballs[getPokeballType(item.itemid)].use
typeOn = pokeballs[getPokeballType(item.itemid)].on
typeOff = pokeballs[getPokeballType(item.itemid)].off
typeAll = pokeballs[getPokeballType(item.itemid)].all
distanceEffect = pokeballs[getPokeballType(item.itemid)].disteffect
effect = pokeballs[getPokeballType(item.itemid)].effect
end
if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true end
if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1
or getPlayerStorageValue(cid, 75846) >= 1 or getPlayerStorageValue(cid, 5700) >= 1 then --alterado v1.9 <<
return true
end
local ballName = getItemAttribute(item.uid, "poke")
local btype = getPokeballType(item.itemid)
local usando = pokeballs[btype].use
local usando = pokeballs[btype].use
if not usando then
usando = 11827
end
local effect = pokeballs[btype].effect
if not effect then
effect = 21
end
unLock(item.uid) --alterado v1.8
if item.itemid == usando then
if getPlayerStorageValue(cid, 990) == 1 then -- GYM
doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.")
return true
end
if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then --alterado v1.6
if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then
BackTeam(cid)
end
end
if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 then
doPlayerSendCancel(cid, "You can't do that while is controling a mind")
return true --alterado v1.5
end
if #getCreatureSummons(cid) <= 0 then
if isInArray(pokeballs[btype].all, item.itemid) then
doTransformItem(item.uid, pokeballs[btype].off)
doItemSetAttribute(item.uid, "hp", 0)
doPlayerSendCancel(cid, "This pokemon is fainted.")
return true
end
end
local cd = getCD(item.uid, "blink", 30)
if cd > 0 then
setCD(item.uid, "blink", 0)
end
local z = getCreatureSummons(cid)[1]
if getCreatureCondition(z, CONDITION_INVISIBLE) and not isGhostPokemon(z) then
return true
end
doReturnPokemon(cid, z, item, effect)
elseif item.itemid == pokeballs[btype].on then
if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
doPlayerSendCancel(cid, "You must put your pokeball in the correct place!")
return TRUE
end
local thishp = getItemAttribute(item.uid, "hp")
if thishp <= 0 then
if isInArray(pokeballs[btype].all, item.itemid) then
doTransformItem(item.uid, pokeballs[btype].off)
doItemSetAttribute(item.uid, "hp", 0)
doPlayerSendCancel(cid, "This pokemon is fainted.")
return true
end
end
local pokemon = getItemAttribute(item.uid, "poke")
if not pokes[pokemon] then
return true
end
----------------------- Sistema de nao poder carregar mais que 3 pokes lvl baixo e + q 1 poke de lvl medio/alto ---------------------------------
if not isInArray({5, 6}, getPlayerGroupId(cid)) then
local balls = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid)
local low = {}
local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"}
if #balls >= 1 then
for _, uid in ipairs(balls) do
local nome = getItemAttribute(uid, "poke")
if not isInArray(lowPokes, pokemon) and nome == pokemon then
return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!")
else
if nome == pokemon then
table.insert(low, nome)
end
end
end
end
if #low >= 3 then
return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than three pokemons equals of low level!")
end
end
---------------------------------------------------------------------------------------------------------------------------------------------------
local x = pokes[pokemon]
local boost = getItemAttribute(item.uid, "boost") or 0
if getPlayerLevel(cid) < (x.level+boost) then
doPlayerSendCancel(cid, "You need level "..(x.level+boost).." to use this pokemon.")
return true
end
---------------------------- Sistema pokes de clan --------------------------------------
local shinysClan = {
["Shiny Fearow"] = {4, "Wingeon"},
["Shiny Flareon"] = {1, "Volcanic"},
["Shiny Vaporeon"] = {2, "Seavel"},
["Shiny Jolteon"] = {9, "Raibolt"},
["Shiny Hypno"] = {7, "Psycraft"},
["Shiny Golem"] = {3, "Orebound"},
["Shiny Vileplume"] = {8, "Naturia"},
["Shiny Nidoking"] = {5, "Malefic"},
["Shiny Hitmontop"] = {6, "Gardestrike"}, --alterado v1.4
}
if shinysClan[pokemon] and (getPlayerGroupId(cid) < 4 or getPlayerGroupId(cid) > 6) then --alterado v1.9 \/
if getPlayerClanNum(cid) ~= shinysClan[pokemon][1] then
doPlayerSendCancel(cid, "You need be a member of the clan "..shinysClan[pokemon][2].." to use this pokemon!")
return true
elseif getPlayerClanRank(cid) ~= 5 then
doPlayerSendCancel(cid, "You need be atleast rank 5 to use this pokemon!")
return true
end
end
--------------------------------------------------------------------------------------
doSummonMonster(cid, pokemon)
local pk = getCreatureSummons(cid)[1]
if not isCreature(pk) then return true end
------------------------passiva hitmonchan------------------------------
if isSummon(pk) then --alterado v1.8 \/
if pokemon == "Shiny Hitmonchan" or pokemon == "Hitmonchan" then
if not getItemAttribute(item.uid, "hands") then
doSetItemAttribute(item.uid, "hands", 0)
end
local hands = getItemAttribute(item.uid, "hands")
doSetCreatureOutfit(pk, {lookType = hitmonchans[pokemon][hands].out}, -1)
end
end
-------------------------------------------------------------------------
---------movement magmar, jynx-------------
if EFFECTS[getCreatureName(pk)] then
markPosEff(pk, getThingPos(pk))
sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk))
end
--------------------------------------------------------------------------
if getCreatureName(pk) == "Ditto" or getCreatureName(pk) == "Shiny Ditto" then --edited
local left = getItemAttribute(item.uid, "transLeft")
local name = getItemAttribute(item.uid, "transName")
if left and left > 0 then
setPlayerStorageValue(pk, 1010, name)
doSetCreatureOutfit(pk, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1)
addEvent(deTransform, left * 1000, pk, getItemAttribute(item.uid, "transTurn"))
doItemSetAttribute(item.uid, "transBegin", os.clock())
else
setPlayerStorageValue(pk, 1010, getCreatureName(pk) == "Ditto" and "Ditto" or "Shiny Ditto") --edited
end
end
if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false) end
doCreatureSetLookDir(pk, 2)
adjustStatus(pk, item.uid, true, true, true)
doAddPokemonInOwnList(cid, pokemon)
doTransformItem(item.uid, item.itemid+1)
if icons[pokemon] then
doTransformItem(item.uid, icons[pokemon].use)
end
local pokename = getPokeName(pk) --alterado v1.7
local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename)
doCreatureSay(cid, mgo, TALKTYPE_SAY)
doSendMagicEffect(getCreaturePosition(pk), effect)
if useOTClient then
doPlayerSendCancel(cid, '12//,show') --alterado v1.7
end
else
doPlayerSendCancel(cid, "This pokemon is fainted.")
end
if useKpdoDlls then
doUpdateMoves(cid)
end
return true
end

 



Se alguém puder me ajudar, principalmente você Zipter HUEHEU me aguentando muito :D, vlw ae.

zipter98Z
12 de dezembro de 2013 às 21:17

Cara, no momento estou MUITO tonto (demorei 10min pra ler seu tópico, e não estou conseguindo digitar). Porém, tenta assim:

 

 

 

local EFFECTS = {
--[OutfitID] = {Effect}
["Magmar"] = 35,   
["Jynx"] = 17,          --alterado v1.5
["Shiny Jynx"] = 17, 
    ["Piloswine"] = 205,  --alterado v1.8
    ["Swinub"] = 205,   
["Shiny Magmar"] = 35,
["Shiny Onix"] = 175,
}
 
function onUse(cid, item, frompos, item2, topos)
--sendAllPokemonsBarPoke(cid)
if item.itemid >= 2520 then
if not getItemAttribute(item.uid, "ball") or not isInArray({"normal", "great", "super", "ultra", "shinynormal", "shinygreat", "shinysuper", "shinyultra"}, getItemAttribute(item.uid, "ball")) then
doItemSetAttribute(item.uid, "ball", "normal")
end
typeUse = icons[getItemAttribute(item.uid, "poke")].use
typeOn = icons[getItemAttribute(item.uid, "poke")].on
typeOff = icons[getItemAttribute(item.uid, "poke")].off
typeAll = {typeOn, typeUse, typeOff}
distanceEffect = pokeballs[getItemAttribute(item.uid, "ball")].disteffect
effect = pokeballs[getItemAttribute(item.uid, "ball")].effect
else
typeUse = pokeballs[getPokeballType(item.itemid)].use
typeOn = pokeballs[getPokeballType(item.itemid)].on
typeOff = pokeballs[getPokeballType(item.itemid)].off
typeAll = pokeballs[getPokeballType(item.itemid)].all
distanceEffect = pokeballs[getPokeballType(item.itemid)].disteffect
effect = pokeballs[getPokeballType(item.itemid)].effect
end
 
if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true end
 
if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 
or getPlayerStorageValue(cid, 75846) >= 1 or getPlayerStorageValue(cid, 5700) >= 1  then    --alterado v1.9 <<
   return true                                                                                                                        
end
 
local ballName = getItemAttribute(item.uid, "poke")
local btype = getPokeballType(item.itemid)
local usando = pokeballs[btype].use
local usando = pokeballs[btype].use
    if not usando then
        usando = 11827
    end
 
local effect = pokeballs[btype].effect
if not effect then
effect = 21
end
 
unLock(item.uid) --alterado v1.8
 
if item.itemid == usando then                           
 
if getPlayerStorageValue(cid, 990) == 1 then -- GYM
doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.")
return true
end
if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then     --alterado v1.6
       if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then  
          BackTeam(cid)       
       end
    end   
    if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 then
       doPlayerSendCancel(cid, "You can't do that while is controling a mind")
       return true     --alterado v1.5
    end
    if #getCreatureSummons(cid) <= 0 then
if isInArray(pokeballs[btype].all, item.itemid) then
doTransformItem(item.uid, pokeballs[btype].off)
doItemSetAttribute(item.uid, "hp", 0)
doPlayerSendCancel(cid, "This pokemon is fainted.")
   return true
end
end
 
    local cd = getCD(item.uid, "blink", 30)
    if cd > 0 then
       setCD(item.uid, "blink", 0)
    end
    
local z = getCreatureSummons(cid)[1]
 
if getCreatureCondition(z, CONDITION_INVISIBLE) and not isGhostPokemon(z) then
  return true
end
doReturnPokemon(cid, z, item, effect)
 
elseif item.itemid == pokeballs[btype].on then
 
if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
doPlayerSendCancel(cid, "You must put your pokeball in the correct place!")
return TRUE
end
 
local thishp = getItemAttribute(item.uid, "hp")
 
if thishp <= 0 then
if isInArray(pokeballs[btype].all, item.itemid) then
doTransformItem(item.uid, pokeballs[btype].off)
doItemSetAttribute(item.uid, "hp", 0)
doPlayerSendCancel(cid, "This pokemon is fainted.")
   return true
end
end
 
local pokemon = getItemAttribute(item.uid, "poke")
 
if not pokes[pokemon] then
return true
end
 
----------------------- Sistema de nao poder carregar mais que 3 pokes lvl baixo e + q 1 poke de lvl medio/alto ---------------------------------
if not isInArray({5, 6}, getPlayerGroupId(cid)) then
   local balls = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid)
   local low = {}
   local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"}
   if #balls >= 1 then
      for _, uid in ipairs(balls) do
          local nome = getItemAttribute(uid, "poke")
          if not isInArray(lowPokes, pokemon) and nome == pokemon then
             return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!")
          else
             if nome == pokemon then
                table.insert(low, nome)
             end
          end
      end
   end
if #low >= 3 then
   return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than three pokemons equals of low level!")
end   
end
---------------------------------------------------------------------------------------------------------------------------------------------------
 
local x = pokes[pokemon]
local boost = getItemAttribute(item.uid, "boost") or 0
 
if getPlayerLevel(cid) < (x.level+boost) then
  doPlayerSendCancel(cid, "You need level "..(x.level+boost).." to use this pokemon.")
  return true
end
 
---------------------------- Sistema pokes de clan --------------------------------------
local shinysClan = {
["Shiny Fearow"] = {4, "Wingeon"},
["Shiny Flareon"] = {1, "Volcanic"},
["Shiny Vaporeon"] = {2, "Seavel"}, 
["Shiny Jolteon"] = {9, "Raibolt"},
["Shiny Hypno"] = {7, "Psycraft"},           
["Shiny Golem"] = {3, "Orebound"},
["Shiny Vileplume"] = {8, "Naturia"},
["Shiny Nidoking"] = {5, "Malefic"},
["Shiny Hitmontop"] = {6, "Gardestrike"},   --alterado v1.4
}
 
if shinysClan[pokemon] and (getPlayerGroupId(cid) < 4 or getPlayerGroupId(cid) > 6) then  --alterado v1.9 \/
  if getPlayerClanNum(cid) ~= shinysClan[pokemon][1] then
     doPlayerSendCancel(cid, "You need be a member of the clan "..shinysClan[pokemon][2].." to use this pokemon!")
     return true   
       elseif getPlayerClanRank(cid) ~= 5 then
          doPlayerSendCancel(cid, "You need be atleast rank 5 to use this pokemon!")
     return true
       end
    end
    --------------------------------------------------------------------------------------
 
doSummonMonster(cid, pokemon)
 
local pk = getCreatureSummons(cid)[1]
if not isCreature(pk) then return true end
 
------------------------passiva hitmonchan------------------------------
if isSummon(pk) then                                                  --alterado v1.8 \/
       if pokemon == "Shiny Hitmonchan" or pokemon == "Hitmonchan" then
          if not getItemAttribute(item.uid, "hands") then
             doSetItemAttribute(item.uid, "hands", 0)
          end
          local hands = getItemAttribute(item.uid, "hands")
          doSetCreatureOutfit(pk, {lookType = hitmonchans[pokemon][hands].out}, -1)
       end
    end
-------------------------------------------------------------------------
    ---------movement magmar, jynx-------------
    if EFFECTS[getCreatureName(pk)] then             
       markPosEff(pk, getThingPos(pk))
       sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk))  
    end
    --------------------------------------------------------------------------      
 
if getCreatureName(pk) == "Ditto" or getCreatureName(pk) == "Shiny Ditto" then --edited
 
local left = getItemAttribute(item.uid, "transLeft")
local name = getItemAttribute(item.uid, "transName")
 
if left and left > 0 then
setPlayerStorageValue(pk, 1010, name)
doSetCreatureOutfit(pk, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1)
addEvent(deTransform, left * 1000, pk, getItemAttribute(item.uid, "transTurn"))
doItemSetAttribute(item.uid, "transBegin", os.clock())
else
setPlayerStorageValue(pk, 1010, getCreatureName(pk) == "Ditto" and "Ditto" or "Shiny Ditto")     --edited
end
end
 
if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false) end
 
doCreatureSetLookDir(pk, 2)
 
adjustStatus(pk, item.uid, true, true, true)
doAddPokemonInOwnList(cid, pokemon)
 
doTransformItem(item.uid, item.itemid+1)
if icons[pokemon] then
doTransformItem(item.uid, icons[pokemon].use)
end
 
local pokename = getPokeName(pk) --alterado v1.7 
 
local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename)
doCreatureSay(cid, mgo, TALKTYPE_SAY)
    
doSendMagicEffect(getCreaturePosition(pk), effect)
 
if useOTClient then
  doPlayerSendCancel(cid, '12//,show') --alterado v1.7
    end
    
else
 
    doPlayerSendCancel(cid, "This pokemon is fainted.")
 
end
 
if useKpdoDlls then
doUpdateMoves(cid)
end
return true
end

 

 

Editado Dezembro 12 por zipter98

hamudH
13 de dezembro de 2013 às 10:40

Assim que eu chegar em casa, mas desde já obrigado Zipter vc tem me dado um otimo apoio com scripts, REP +

//edit

Deu este erro agora...

 


[Error- Action interface]
data/actions/script/goback.lua:OnUse
Description:
data/actions/script/goback.lua:18:Attempt to index global 'icons' (a nil value)
stack traceback:
data/actions/script/goback.lua:18: in function (data/actions/script/goback.lua:12)

 

 

Editado Dezembro 13 por hamud

MaxxSilvaM
13 de dezembro de 2013 às 11:28

Cara se é o PokeB que voce esta mexendo da uma olhada no topico la pq os caras passam uns severs que te ajudam(Pda e Erodino)

AberosA
13 de dezembro de 2013 às 11:50

pda nao ajdua em anda a maioria dos scripts dele prescisa de funçoes que tao na source

MaxxSilvaM
13 de dezembro de 2013 às 12:51

Server poketibia que pode ajudar:

 

Poketibia Ricardo: Server: http://www.4shared.c...by_Ricardo.html Source: http://www.4shared.c..._by_Ricard.html

 

PDA: http://www.4shared.c...forum_v_10.html

 

Erondino: http://tibiapoketibi...ino.weebly.com/

É oq ta la

hamudH
13 de dezembro de 2013 às 14:12

Server poketibia que pode ajudar:

 

Poketibia Ricardo: Server: http://www.4shared.c...by_Ricardo.html Source: http://www.4shared.c..._by_Ricard.html

 

PDA: http://www.4shared.c...forum_v_10.html

 

Erondino: http://tibiapoketibi...ino.weebly.com/

É oq ta la

Amigo é possivel me mandar o site, ou topico desse pokemon ricardo ? vlw :D

zipter98Z
13 de dezembro de 2013 às 22:26

Duas perguntas:

1 - O pokémon que você está tentando usar se encontra na tabela icons?

2 - Você removeu a tabela icons do jogo?

MaxxSilvaM
2 semanas depois...
GabrieltxuG
27 de dezembro de 2013 às 23:51

Tópico movido para a seção de dúvidas e pedidos resolvidos.

4 anos depois...
StigalS
21 de abril de 2018 às 03:16
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.