CA
action

Error goback

Por Caktchup, 27 de nov. de 2015 em Scripts

goback
6
2k
CaktchupC
27 de novembro de 2015 às 22:59

Bom meu servidor da dando uns erros uns não kkk uns 1000 kk zuera.

 

dessa vez o erro e no

 

[27/11/2015 16:47:56] [Error - Action Interface]
[27/11/2015 16:47:56] data/actions/scripts/goback.lua:onUse
[27/11/2015 16:47:56] Description:
[27/11/2015 16:47:56] data/actions/scripts/goback.lua:260: attempt to compare number with nil
[27/11/2015 16:47:56] stack traceback:
[27/11/2015 16:47:56] data/actions/scripts/goback.lua:260: in function <data/actions/scripts/goback.lua:11>
Meu data/actions/scripts/goback.lua

local EFFECTS = {
--[OutfitID] = {Effect}
["Magmar"] = 35,
["Magmortar"] = 35,
["Magby"] = 35,
["Smoochum"] = 17,
["Jynx"] = 17,
["Shiny Jynx"] = 17,
}
function onUse(cid, item, frompos, item2, topos)
if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true end
--alterado v1.6 sistema de firstpoke retirado
if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 then
return true
end
-------------------------------------------------------
ballName = getItemAttribute(item.uid, "poke")
btype = getPokeballType(item.itemid)
usando = pokeballs[btype].use
local effect = pokeballs[btype].effect
if not effect then
effect = 21
end
----------------------------------------------------------
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
if isLegendaryPokemon(pokemon) and not isInArray({5, 6}, getPlayerGroupId(cid)) then
doPlayerSendTextMessage(cid, 27, "You can't use a legendary pokemon.")
doRemoveItem(item.uid)
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 bp = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK)
local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"}
local low = {}
local lw = 1
for e, f in pairs(pokeballs) do
for times = 1, 3 do
local items = getItemsInContainerById(bp.uid, pokeballs[e].all[times])
if #items >= 1 then --alterado v1.6
for _, uid in pairs(items) do
local nome1 = getItemAttribute(uid, "poke")
if pokes[pokemon].level > 10 and nome1 == pokemon then
return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!")
elseif pokes[pokemon].level <= 10 then
if nome1 == pokemon then
table.insert(low, lw, nome1)
lw = lw +1
end
end
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
--------------------------------------------------------------------------------------
shinysClan = {
["Shiny Flareon"] = {1, "Volcanic"},
["Shiny Vaporeon"] = {2, "Seavel"},
["Shiny Golem"] = {3, "Orebound"},
["Shiny Fearow"] = {4, "Wingeon"},
["Shiny Nidoking"] = {5, "Malefic"},
["Shiny Hitmontop"] = {6, "Gardestrike"}, --alterado v1.4
["Shiny Hypno"] = {7, "Psycraft"},
["Shiny Vileplume"] = {8, "Naturia"},
["Shiny Jolteon"] = {9, "Raibolt"},
}
if shinysClan[pokemon] and (getPlayerGroupId(cid) < 3 or getPlayerGroupId(cid) > 6) then
if getPlayerStorageValue(cid, 86228) ~= shinysClan[pokemon][1] then
doPlayerSendCancel(cid, "You need be a member of the clan "..shinysClan[pokemon][2].." to use this pokemon!")
return true
elseif getPlayerStorageValue(cid, 862281) ~= 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
local nameHIT = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke")
local hands = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "hands")
if nameHIT == "Shiny Hitmonchan" or nameHIT == "Hitmonchan" then
if getItemAttribute(getPlayerSlotItem(cid, 8).uid, "hands") then
doSetCreatureOutfit(pk, {lookType = hitmonchans[nameHIT][hands].out}, -1)
else
doPlayerSendTextMessage(cid, 27, "Contact a GameMaster! Error in passive system! Attribute \"hands\" missing")
doSetItemAttribute(getPlayerSlotItem(cid, 8).uid, "hands", 0)
end
end
end
-------------------------------------------------------------------------
---------movement magmar, jynx-------------
if EFFECTS[getCreatureName(pk)] then --edited efeito magmar/jynx
markPosEff(pk, getThingPos(pk))
sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk)) --alterado v1.5
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
if name == "Smeargle" then
doPlayerSendCancel(cid, "Your ditto can't copy a smeargle.")
return true
end
if isLegendaryPokemon(name) or name == "Smeargle" or isInArray(dittoShinyCopy, name) then
deTransform(pk, getItemAttribute(item.uid, "transTurn"))
markPos(pk, {x = 1, y = 1, z = 1})
doPlayerSay(cid, ""..getPokeName(pk)..", stop transformation!", 1)
return true
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)
local pokename = getPokeName(pk) --alterado v1.7
local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename)
doCreatureSay(cid, mgo, TALKTYPE_MONSTER)
doSendMagicEffect(getCreaturePosition(pk), effect)
if haveFirstTM(item) then
if tmChange[getFirstTMName(item)] then
doItemSetAttribute(item.uid, "tm1", tmChange[getFirstTMName(item)].new)
end
end
if haveSecondTM(item) then
if tmChange[getSecondTMName(item)] then
doItemSetAttribute(item.uid, "tm2", tmChange[getSecondTMName(item)].new)
end
end
if haveThirdTM(item) then
if tmChange[getThirdTMName(item)] then
doItemSetAttribute(item.uid, "tm3", tmChange[getThirdTMName(item)].new)
end
end
if useOTClient then
doPlayerSendCancel(cid, '12//,show') --alterado v1.7
end
local pk = getCreatureSummons(cid)[1]
local pb = getPlayerSlotItem(cid, 8).uid
local look = getItemAttribute(pb,"addon")
if not look then
doSetItemAttribute(pb,"addon",0)
end
if look > 0 then
doSetCreatureOutfit(pk, {lookType = look}, -1)
end
else
doPlayerSendCancel(cid, "This pokemon is fainted.")
end
if useKpdoDlls then
doUpdateMoves(cid)
end
return true
end

MatheusGladM
28 de novembro de 2015 às 13:50
Melhor resposta
local EFFECTS = {
--[OutfitID] = {Effect}
["Magmar"] = 35,   
["Magmortar"] = 35,
["Magby"] = 35,   
["Smoochum"] = 17,
["Jynx"] = 17,
["Shiny Jynx"] = 17,    
}
 
function onUse(cid, item, frompos, item2, topos)
 
if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true end
 
--alterado v1.6 sistema de firstpoke retirado
 
if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 then
return true
end
-------------------------------------------------------
ballName = getItemAttribute(item.uid, "poke")
                                               
   btype = getPokeballType(item.itemid)
   usando = pokeballs[btype].use
 
local effect = pokeballs[btype].effect
if not effect then
effect = 21
end
----------------------------------------------------------
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
if isLegendaryPokemon(pokemon) and not isInArray({5, 6}, getPlayerGroupId(cid)) then
doPlayerSendTextMessage(cid, 27, "You can't use a legendary pokemon.")
doRemoveItem(item.uid)
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 bp = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK)
local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"}
local low = {}
local lw = 1
for e, f in pairs(pokeballs) do
    for times = 1, 3 do
        local items = getItemsInContainerById(bp.uid, pokeballs[e].all[times])
        if #items >= 1 then                                                                 --alterado v1.6
           for _, uid in pairs(items) do
               local nome1 = getItemAttribute(uid, "poke")
               if pokes[pokemon].level > 10 and nome1 == pokemon then
                  return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!")
               elseif pokes[pokemon].level <= 10 then
                  if nome1 == pokemon then
                     table.insert(low, lw, nome1)
                     lw = lw +1
                  end
               end
           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
 
--------------------------------------------------------------------------------------
shinysClan = {
["Shiny Flareon"] = {1, "Volcanic"},
["Shiny Vaporeon"] = {2, "Seavel"},          
["Shiny Golem"] = {3, "Orebound"},
["Shiny Fearow"] = {4, "Wingeon"},
["Shiny Nidoking"] = {5, "Malefic"},
["Shiny Hitmontop"] = {6, "Gardestrike"},   --alterado v1.4
["Shiny Hypno"] = {7, "Psycraft"},  
["Shiny Vileplume"] = {8, "Naturia"},
["Shiny Jolteon"] = {9, "Raibolt"},
}
 
if shinysClan[pokemon] and (getPlayerGroupId(cid) < 3 or getPlayerGroupId(cid) > 6) then
  if getPlayerStorageValue(cid, 86228) ~= shinysClan[pokemon][1] then
     doPlayerSendCancel(cid, "You need be a member of the clan "..shinysClan[pokemon][2].." to use this pokemon!")
     return true   
       elseif getPlayerStorageValue(cid, 862281) ~= 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
       local nameHIT = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke")
       local hands = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "hands")
       if nameHIT == "Shiny Hitmonchan" or nameHIT == "Hitmonchan" then
          if getItemAttribute(getPlayerSlotItem(cid, 8).uid, "hands") then
             doSetCreatureOutfit(pk, {lookType = hitmonchans[nameHIT][hands].out}, -1)
          else
              doPlayerSendTextMessage(cid, 27, "Contact a GameMaster! Error in passive system! Attribute \"hands\" missing")  
 doSetItemAttribute(getPlayerSlotItem(cid, 8).uid, "hands", 0)
          end
       end
    end
-------------------------------------------------------------------------
 
    ---------movement magmar, jynx-------------
    if EFFECTS[getCreatureName(pk)] then             --edited efeito magmar/jynx
       markPosEff(pk, getThingPos(pk))
       sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk))  --alterado v1.5
    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
 
if name == "Smeargle" then
doPlayerSendCancel(cid, "Your ditto can't copy a smeargle.")
return true
end
if isLegendaryPokemon(name) or name == "Smeargle" or isInArray(dittoShinyCopy, name) then
deTransform(pk, getItemAttribute(item.uid, "transTurn"))
markPos(pk, {x = 1, y = 1, z = 1})
doPlayerSay(cid, ""..getPokeName(pk)..", stop transformation!", 1)
return true
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)
 
local pokename = getPokeName(pk) --alterado v1.7
 
local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename)
doCreatureSay(cid, mgo, TALKTYPE_MONSTER)
    
doSendMagicEffect(getCreaturePosition(pk), effect)
if haveFirstTM(item) then
if tmChange[getFirstTMName(item)] then
doItemSetAttribute(item.uid, "tm1", tmChange[getFirstTMName(item)].new)
end
end
if haveSecondTM(item) then
if tmChange[getSecondTMName(item)] then
doItemSetAttribute(item.uid, "tm2", tmChange[getSecondTMName(item)].new)
end
end
if haveThirdTM(item) then
if tmChange[getThirdTMName(item)] then
doItemSetAttribute(item.uid, "tm3", tmChange[getThirdTMName(item)].new)
end
end
 
if useOTClient then
  doPlayerSendCancel(cid, '12//,show') --alterado v1.7
    end
 
local pk = getCreatureSummons(cid)[1]
local pb = getPlayerSlotItem(cid, 8).uid
local look = getItemAttribute(pb,"addon")
if not look then
    doSetItemAttribute(pb,"addon",0)
elseif look > 0 then
    doSetCreatureOutfit(pk, {lookType = look}, -1)
end
 
else
 
    doPlayerSendCancel(cid, "This pokemon is fainted.")
 
end
 
if useKpdoDlls then
doUpdateMoves(cid)
end
return true
end

Tenta isso.

Editado Novembro 30 por MatheusMkalo

CaktchupC
30 de novembro de 2015 às 00:00

a hora que eu abri o servidor ja deu erro

 

[28/11/2015 14:22:03] [Error - LuaScriptInterface::loadFile] data/actions/scripts/goback.lua:3: '}' expected (to close '{' at line 1) near ']'
[28/11/2015 14:22:03] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/goback.lua)
[28/11/2015 14:22:03] data/actions/scripts/goback.lua:3: '}' expected (to close '{' at line 1) near ']'
e tipo não consigo solta mais os pokes nem nada...

UPP alguem ajuda?

MatheusGladM
30 de novembro de 2015 às 00:03

Copia denovo, tinha um paragrafo onde nao era pra ter devo ter esbarrado no enter ~~

 

CaktchupC
30 de novembro de 2015 às 00:44

Agora deu certo vlw mano obrgiado

1 mês depois...
LumusL
21 de dezembro de 2015 às 11:33

Tópico Movido
Este tópico foi movido de "OTServSuporte OTServSuporte Scripting"
para "OTServSuporte OTServSuporte ScriptingPedidos e dúvidas resolvidos - Scripting".