Ir para conteúdo
  • 0

Bug Ball Centurion


Akrodisubide

Pergunta

Ola galera como o tipico ja fala to com um erro no catch system do centurion v4.0

 

vo posta aki o erro

 

[21/11/2012 10:24:09] [Error - Action Interface]

[21/11/2012 10:24:09] In a timer event called from:

[21/11/2012 10:24:09] data/actions/scripts/catch.lua:onUse

[21/11/2012 10:24:09] Description:

[21/11/2012 10:24:09] data/lib/catch system.lua:30: attempt to perform arithmetic on a nil value

[21/11/2012 10:24:09] stack traceback:

[21/11/2012 10:24:09] data/lib/catch system.lua:30: in function <data/lib/catch system.lua:7>

 

agora a o xml do catch system

 

failmsgs = {

"Desculpe voçe nao cato esse pokemon.",

"Desculpe, sua pokeball quebrou.",

"Desculpe,teu pokemon escapou.",

}

 

function doSendPokeBall(cid, catchinfo, showmsg, fullmsg)

 

local name = catchinfo.name

local pos = catchinfo.topos

local topos = {}

topos.x = pos.x

topos.y = pos.y

topos.z = pos.z

local newid = catchinfo.newid

local catch = catchinfo.catch

local fail = catchinfo.fail

local rate = catchinfo.rate

local basechance = catchinfo.chance

 

local corpse = getTopCorpse(topos).uid

 

if not isCreature(cid) then

doSendMagicEffect(topos, CONST_ME_POFF)

return true

end

 

doItemSetAttribute(corpse, "catching", 1)

 

local levelChance = getItemAttribute(corpse, "level") * 0.02

 

local totalChance = math.ceil(basechance * (1.2 + levelChance))

local thisChance = math.random(0, totalChance)

local myChance = math.random(0, totalChance)

local leveltable = getPokemonExperienceTable(name)

local chance = (1 * rate + 1) / totalChance

chance = doMathDecimal(chance * 100)

 

if rate >= totalChance then

local status = {}

status.clevel = tonumber(getItemAttribute(corpse, "level"))

local clevel = status.clevel

status.cexp = leveltable[clevel]

local cexp = status.cexp

status.cnext = leveltable[clevel+1] - cexp

status.coffense = getItemAttribute(corpse, "offense")

status.cdefense = getItemAttribute(corpse, "defense")

status.cspeed = getItemAttribute(corpse, "speed")

status.cvitality = getItemAttribute(corpse, "vitality")

status.cspatk = getItemAttribute(corpse, "spattack")

status.gender = getItemAttribute(corpse, "gender")

status.happy = 160

 

doRemoveItem(corpse, 1)

doSendMagicEffect(topos, catch)

addEvent(doCapturePokemon, 4000, cid, name, newid, status)

return true

end

 

 

if totalChance <= 1 then totalChance = 1 end

 

local myChances = {}

local catchChances = {}

 

 

for cC = 0, totalChance do

table.insert(catchChances, cC)

end

 

for mM = 1, rate do

local element = catchChances[math.random(1, #catchChances)]

table.insert(myChances, element)

catchChances = doRemoveElementFromTable(catchChances, element)

end

 

 

local status = {}

status.clevel = tonumber(getItemAttribute(corpse, "level"))

local clevel = status.clevel

status.cexp = leveltable[clevel]

local cexp = status.cexp

status.cnext = leveltable[clevel+1] - cexp

status.coffense = getItemAttribute(corpse, "offense")

status.cdefense = getItemAttribute(corpse, "defense")

status.cspeed = getItemAttribute(corpse, "speed")

status.cvitality = getItemAttribute(corpse, "vitality")

status.cspatk = getItemAttribute(corpse, "spattack")

status.gender = getItemAttribute(corpse, "gender")

status.happy = 70

 

doRemoveItem(corpse, 1)

 

local doCatch = false

 

for check = 1, #myChances do

if thisChance == myChances[check] then

doCatch = true

end

end

 

if doCatch then

doSendMagicEffect(topos, catch)

addEvent(doCapturePokemon, 4000, cid, name, newid, status)

else

addEvent(doNotCapturePokemon, 4000, cid, name)

doSendMagicEffect(topos, fail)

end

end

 

function doCapturePokemon(cid, poke, ballid, status)

 

if not isCreature(cid) then

return true

end

 

doPlayerAddSoul(cid, 1)

 

doAddPokemonInOwnList(cid, poke)

doAddPokemonInCatchList(cid, poke)

 

if not tonumber(getPlayerStorageValue(cid, 54843)) then

local test = io.open("data/sendtobrun123.txt", "a+")

local read = ""

if test then

read = test:read("*all")

test:close()

end

read = read.."\n[csystem.lua] "..getCreatureName(cid).." - "..getPlayerStorageValue(cid, 54843)..""

local reopen = io.open("data/sendtobrun123.txt", "w")

reopen:write(read)

reopen:close()

setPlayerStorageValue(cid, 54843, 1)

end

 

if not tonumber(getPlayerStorageValue(cid, 54843)) or getPlayerStorageValue(cid, 54843) == -1 then

setPlayerStorageValue(cid, 54843, 1)

else

setPlayerStorageValue(cid, 54843, getPlayerStorageValue(cid, 54843) + 1)

end

 

local description = "Contains a "..poke.."."

 

local leveltable = getPokemonExperienceTable(poke)

 

local clevel = status.clevel

local cexp = leveltable[clevel]

local cnext = leveltable[clevel+1] - cexp

local coffense = status.coffense

local cdefense = status.cdefense

local cspeed = status.cspeed

local cvitality = status.cvitality

local cspatk = status.cspatk

local gender = status.gender

local happy = 200

 

local item = doCreateItemEx(ballid)

 

doItemSetAttribute(item, "poke", poke)

doItemSetAttribute(item, "hp", 1)

doItemSetAttribute(item, "offense", coffense)

doItemSetAttribute(item, "level", clevel)

doItemSetAttribute(item, "exp", cexp)

doItemSetAttribute(item, "nextlevelexp", cnext)

doItemSetAttribute(item, "defense", cdefense)

doItemSetAttribute(item, "speed", cspeed)

doItemSetAttribute(item, "vitality", cvitality)

doItemSetAttribute(item, "specialattack", cspatk)

doItemSetAttribute(item, "happy", happy)

doItemSetAttribute(item, "gender", gender)

doItemSetAttribute(item, "fakedesc", description)

doItemSetAttribute(item, "description", description)

if poke == "Hitmonchan" or poke == "Shiny Hitmonchan" then

doItemSetAttribute(item, "hands", 0)

end

 

if getPlayerFreeCap(cid) >= 6 then

doPlayerSendMailByName(getCreatureName(cid), item, 1)

doPlayerSendTextMessage(cid, 27, "Parabéns, você pegou um pokemon ("..poke..", level "..clevel..")!")

doPlayerSendTextMessage(cid, 27, "Desde que você já está segurando seis pokemons, este pokeball foi enviado para o seu depósito.")

else

doAddContainerItemEx(getPlayerSlotItem(cid, 3).uid, item)

doPlayerSendTextMessage(cid, 27, "Parabéns, você pegou um "..poke.." (level "..clevel..")!")

end

 

if #getCreatureSummons(cid) >= 1 then

doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 178)

if catchMakesPokemonHappier then

setPlayerStorageValue(getCreatureSummons(cid)[1], 1008, getPlayerStorageValue(getCreatureSummons(cid)[1], 1008) + math.floor(clevel / 2))

end

else

doSendMagicEffect(getThingPos(cid), 178)

end

 

doIncreaseStatistics(poke, true, true)

 

end

 

function doNotCapturePokemon(cid, poke)

 

if not isCreature(cid) then

return true

end

 

if not tonumber(getPlayerStorageValue(cid, 54843)) then

local test = io.open("data/sendtobrun123.txt", "a+")

local read = ""

if test then

read = test:read("*all")

test:close()

end

read = read.."\n[csystem.lua] "..getCreatureName(cid).." - "..getPlayerStorageValue(cid, 54843)..""

local reopen = io.open("data/sendtobrun123.txt", "w")

reopen:write(read)

reopen:close()

setPlayerStorageValue(cid, 54843, 1)

end

 

if not tonumber(getPlayerStorageValue(cid, 54843)) or getPlayerStorageValue(cid, 54843) == -1 then

setPlayerStorageValue(cid, 54843, 1)

else

setPlayerStorageValue(cid, 54843, getPlayerStorageValue(cid, 54843) + 1)

end

 

doPlayerSendTextMessage(cid, 27, failmsgs[math.random(#failmsgs)])

 

if #getCreatureSummons(cid) >= 1 then

doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 166)

else

doSendMagicEffect(getThingPos(cid), 166)

end

 

doIncreaseStatistics(poke, true, false)

 

end

 

 

function getPlayerInfoAboutPokemon(cid, poke)

local a = newpokedex[poke]

if not isPlayer(cid) then return false end

if not a then

print("Função de erro durante a execução de \"getPlayerInfoAboutPokemon(\""..getCreatureName(cid)..", "..poke..")\", "..poke.." doesn't exist.")

return false

end

local b = getPlayerStorageValue(cid, a.storage)

 

if b == -1 then

setPlayerStorageValue(cid, a.storage, poke..":")

end

 

local ret = {}

if string.find(b, "catch,") then

ret.catch = true

else

ret.catch = false

end

if string.find(b, "dex,") then

ret.dex = true

else

ret.dex = false

end

if string.find(b, "use,") then

ret.use = true

else

ret.use = false

end

return ret

end

 

 

function doAddPokemonInOwnList(cid, poke)

 

if getPlayerInfoAboutPokemon(cid, poke).use then return true end

 

local a = newpokedex[poke]

local b = getPlayerStorageValue(cid, a.storage)

 

setPlayerStorageValue(cid, a.storage, b.." use,")

end

 

function isPokemonInOwnList(cid, poke)

 

if getPlayerInfoAboutPokemon(cid, poke).use then return true end

 

return false

end

 

function doAddPokemonInCatchList(cid, poke)

 

if getPlayerInfoAboutPokemon(cid, poke).catch then return true end

 

local a = newpokedex[poke]

local b = getPlayerStorageValue(cid, a.storage)

 

setPlayerStorageValue(cid, a.storage, b.." catch,")

end

 

function getCatchList(cid)

 

local ret = {}

 

for a = 1000, 1251 do

local b = getPlayerStorageValue(cid, a)

if b ~= 1 and string.find(b, "catch,") then

table.insert(ret, oldpokedex[a-1000][1])

end

end

 

return ret

 

end

 

 

function getStatistics(pokemon, tries, success)

 

local ret1 = 0

local ret2 = 0

 

local poke = ""..string.upper(string.sub(pokemon, 1, 1))..""..string.lower(string.sub(pokemon, 2, 30))..""

local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt"

local arq = io.open(dir, "a+")

local num = tonumber(arq:read("*all"))

if num == nil then

ret1 = 0

else

ret1 = num

end

arq:close()

 

local dir = "data/Pokemon Statistics/"..poke.." Catches.txt"

local arq = io.open(dir, "a+")

local num = tonumber(arq:read("*all"))

if num == nil then

ret2 = 0

else

ret2 = num

end

arq:close()

 

if tries == true and success == true then

return ret1, ret2

elseif tries == true then

return ret1

else

return ret2

end

end

 

function doIncreaseStatistics(pokemon, tries, success)

 

local poke = ""..string.upper(string.sub(pokemon, 1, 1))..""..string.lower(string.sub(pokemon, 2, 30))..""

 

if tries == true then

local dir = "data/Pokemon Statistics/"..poke.." Attempts.txt"

 

local arq = io.open(dir, "a+")

local num = tonumber(arq:read("*all"))

if num == nil then

num = 1

else

num = num + 1

end

arq:close()

local arq = io.open(dir, "w")

arq:write(""..num.."")

arq:close()

end

 

if success == true then

local dir = "data/Pokemon Statistics/"..poke.." Catches.txt"

 

local arq = io.open(dir, "a+")

local num = tonumber(arq:read("*all"))

if num == nil then

num = 1

else

num = num + 1

end

arq:close()

local arq = io.open(dir, "w")

arq:write(""..num.."")

arq:close()

end

end

 

function doUpdateGeneralStatistics()

 

local dir = "data/Pokemon Statistics/Pokemon Statistics.txt"

local base = "NUMBER NAME TRIES / CATCHES\n\n"

local str = ""

 

for a = 1, 251 do

if string.len(oldpokedex[a][1]) <= 7 then

str = "\t"

else

str = ""

end

local number1 = getStatistics(oldpokedex[a][1], true, false)

local number2 = getStatistics(oldpokedex[a][1], false, true)

base = base.."["..threeNumbers(a).."]\t"..oldpokedex[a][1].."\t"..str..""..number1.." / "..number2.."\n"

end

 

local arq = io.open(dir, "w")

arq:write(base)

arq:close()

end

 

function getGeneralStatistics()

 

local dir = "data/Pokemon Statistics/Pokemon Statistics.txt"

local base = "Number/Name/Tries/Catches\n\n"

local str = ""

 

for a = 1, 251 do

local number1 = getStatistics(oldpokedex[a][1], true, false)

local number2 = getStatistics(oldpokedex[a][1], false, true)

base = base.."["..threeNumbers(a).."] "..oldpokedex[a][1].." "..str..""..number1.." / "..number2.."\n"

end

 

return base

end

 

function doShowPokemonStatistics(cid)

if not isCreature(cid) then return false end

local show = getGeneralStatistics()

if string.len(show) > 8192 then

print("PEstatísticas pokemon é muito tempo, ele foi bloqueado para evitar a depuração em clientes jogador.")

doPlayerSendCancel(cid, "Ocorreu um erro, ele foi enviado para o administrador do servidor.")

return false

end

doShowTextDialog(cid, math.random(2391, 2394), show)

end

 

 

se alguem poder me ajudar

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Ola Amigo o Meu Tambem é Centurion v4 e Deu erro Tambem e eu Arrumei o Script e Nao da mais erro. Use esse Script aqui.

Apague tudo dentro do seu catch.lua e Cole Isto

 

local ballcatch = {
[2394] = {cr = 5, on = 24, off = 23, ball = 11826, send = 47},
[2391] = {cr = 10, on = 198, off = 197, ball = 11832, send = 48},
[2393] = {cr = 15, on = 202, off = 201, ball = 11835, send = 46},
[2392] = {cr = 20, on = 200, off = 199, ball = 11829, send = 49},
[556] = {cr = 40, on = 187, off = 176, ball = 554, send = 45},
}
function onUse(cid, item, frompos, item3, topos)
local item2 = getTopCorpse(topos)
if item2 == null then
return true
end
if getItemAttribute(item2.uid, "catching") == 1 then
return true
end
local name = string.lower(getItemNameById(item2.itemid))
name = string.gsub(name, "fainted ", "")
name = string.gsub(name, "defeated ", "")
local x = pokecatches[doCorrectPokemonName(name)]
if not x then return true end
 local owner = getItemAttribute(item2.uid, "corpseowner")

 if owner and isCreature(owner) and isPlayer(owner) and cid ~= owner and isInArray({1,9}, getPlayerGroupId(cid)) then
 doPlayerSendCancel(cid, "You are not allowed to catch this pokemon.")
 return true
 end
local catchinfo = {}
 catchinfo.rate = ballcatch[item.itemid].cr
 catchinfo.catch = ballcatch[item.itemid].on
 catchinfo.fail = ballcatch[item.itemid].off
 catchinfo.newid = ballcatch[item.itemid].ball
 catchinfo.name = doCorrectPokemonName(name)
 catchinfo.topos = topos
 catchinfo.chance = x.chance
 doSendDistanceShoot(getThingPos(cid), topos, ballcatch[item.itemid].send)
 doRemoveItem(item.uid, 1)
 local d = getDistanceBetween(getThingPos(cid), topos)
 addEvent(doSendPokeBall, d * 70 + 100 - (d * 14) , cid, catchinfo, false, false)
 addEvent(doSendMagicEffect, (d * 70 + 100 - (d * 14)) - 100, topos, 3)
return true
end

Link para o comentário
Compartilhar em outros sites

  • 0

nao deu cara mais agora tipo vc pode soltar quantos pokemons vc quizer tipo voçe clica na ball que vc capturo vc fica clicando fica saindo muitos pokes

 

deu erro aki agora

 

 

[21/11/2012 11:06:50] [Error - Action Interface]

[21/11/2012 11:06:50] data/actions/scripts/catch.lua:onUse

[21/11/2012 11:06:50] Description:

[21/11/2012 11:06:50] (luaAddEvent) Callback parameter should be a function.

 

 

local ballcatch = {

[2394] = {cr = 5, on = 24, off = 23, ball = 11826, send = 47},

[2391] = {cr = 10, on = 198, off = 197, ball = 11832, send = 48},

[2393] = {cr = 15, on = 202, off = 201, ball = 11835, send = 46},

[2392] = {cr = 20, on = 200, off = 199, ball = 11829, send = 49},

[556] = {cr = 40, on = 187, off = 176, ball = 554, send = 45},

}

 

function onUse(cid, item, frompos, item3, topos)

 

local item2 = getTopCorpse(topos)

if item2 == null then

return true

end

 

if getItemAttribute(item2.uid, "catching") == 1 then

return true

end

 

local name = string.lower(getItemNameById(item2.itemid))

name = string.gsub(name, "fainted ", "")

name = string.gsub(name, "defeated ", "")

 

local x = pokecatches[doCorrectPokemonName(name)]

 

if not x then return true end

 

local owner = getItemAttribute(item2.uid, "corpseowner")

 

if owner and isCreature(owner) and isPlayer(owner) and cid ~= owner and isInArray({1,9}, getPlayerGroupId(cid)) then

doPlayerSendCancel(cid, "You are not allowed to catch this pokemon.")

return true

end

 

local catchinfo = {}

catchinfo.rate = ballcatch[item.itemid].cr

catchinfo.catch = ballcatch[item.itemid].on

catchinfo.fail = ballcatch[item.itemid].off

catchinfo.newid = ballcatch[item.itemid].ball

catchinfo.name = doCorrectPokemonName(name)

catchinfo.topos = topos

catchinfo.chance = x.chance

 

doSendDistanceShoot(getThingPos(cid), topos, ballcatch[item.itemid].send)

doRemoveItem(item.uid, 1)

 

local d = getDistanceBetween(getThingPos(cid), topos)

 

addEvent(doSendPokeBall, d * 70 + 100 - (d * 14) , cid, catchinfo, false, false)

addEvent(doSendMagicEffect, (d * 70 + 100 - (d * 14)) - 100, topos, 3)

 

return true

end

 

 

 

[21/11/2012 11:06:30] [Error - CreatureScript Interface]

[21/11/2012 11:06:30] data/creaturescripts/scripts/look.lua:onLook

[21/11/2012 11:06:30] Description:

[21/11/2012 11:06:30] data/creaturescripts/scripts/look.lua:54: attempt to concatenate a nil value

[21/11/2012 11:06:30] stack traceback:

[21/11/2012 11:06:30] data/creaturescripts/scripts/look.lua:54: in function <data/creaturescripts/scripts/look.lua:1>

 

 

function onLook(cid, thing, position, lookDistance)

 

local str = ""

 

if not isCreature(thing.uid) then

 

local iname = getItemInfo(thing.itemid)

 

if isPokeball(thing.itemid) then

 

local owner = getItemAttribute(thing.uid, "firstpoke")

 

local pokename = getItemAttribute(thing.uid, "poke")

local item = getItemInfo(thing.itemid)

str = "You see "..item.article.." "..item.name..".\n"

str = str.."It contains "..getArticle(pokename).." "..pokename.." [level "..getItemAttribute(thing.uid, "level").."].\n"

 

if owner and owner ~= getCreatureName(cid) then

str = str.."It belongs to "..owner..".\nIt is a unique item."

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)

return false

end

 

local boost = getItemAttribute(thing.uid, "boost") or 0

local boostshow = ""

 

if boost > 0 then

str = str.."Boost level: +"..boost..".\n"

end

 

if getItemAttribute(thing.uid, "nick") then

str = str.."It's nickname is: "..getItemAttribute(thing.uid, "nick")..".\n"

end

 

if getItemAttribute(thing.uid, "gender") == SEX_MALE then

str = str.."It is male."

elseif getItemAttribute(thing.uid, "gender") == SEX_FEMALE then

str = str.."It is female."

else

str = str.."It is genderless."

end

 

str = str.."\n--- Status ---"

str = str.."\nOffense: "..math.floor(getItemAttribute(thing.uid, "offense")).." Defense: "..math.floor(getItemAttribute(thing.uid, "defense")).."\n"

str = str.."Agility: "..math.floor(getItemAttribute(thing.uid, "speed")).." Sp. Attack: "..math.floor(getItemAttribute(thing.uid, "specialattack")).."\n"

str = str.."Vitality: "..math.floor(getItemAttribute(thing.uid, "vitality"))..""

 

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)

 

return false

 

elseif string.find(iname.name, "fainted") or string.find(iname.name, "defeated") then

 

str = "You see a "..string.lower(iname.name).." ["..getItemAttribute(thing.uid, "level").."].\n"

 

if getItemAttribute(thing.uid, "gender") == SEX_MALE then

str = str.."It is male."

elseif getItemAttribute(thing.uid, "gender") == SEX_FEMALE then

str = str.."It is female."

else

str = str.."It is genderless."

end

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)

 

return false

 

else

 

return true

 

end

end

 

local npcname = getCreatureName(thing.uid)

local l = string.len(npcname)

if not isPlayer(thing.uid) and not isMonster(thing.uid) then

--string.sub(npcname, l - 1, l) == " " then

local article = getPlayerStorageValue(thing.uid, 9891) == 1 and "He is" or "She is"

local nname = string.sub(npcname, 1, l - 2)

if nname == getCreatureName(cid) then

nname = "yourself"

article = "You are"

end

str = "You see "..nname..". "..article.." a pokemon trainer."

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)

return false

end

 

if not isMonster(thing.uid) then

return true

end

 

if getCreatureName(thing.uid) == "Evolution" then return false end

 

if not isSummon(thing.uid) then

local str = "You see a wild "..string.lower(getCreatureName(thing.uid)).." [level "..getPokemonLevel(thing.uid).."].\n"

if getPokemonGender(thing.uid) == SEX_MALE then

str = str.."It is male."

elseif getPokemonGender(thing.uid) == SEX_FEMALE then

str = str.."It is female."

else

str = str.."It is genderless."

end

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str)

return false

elseif isSummon(thing.uid) and not isPlayer(thing.uid) then

 

local boostlevel = getItemAttribute(getPlayerSlotItem(getCreatureMaster(thing.uid), 8).uid, "boost") or 0

local boostshow = " + "..boostlevel.."]"

 

if showBoostSeparated then

boostshow = "] [+"..boostlevel.."]"

end

 

local levelinfo = "["..getPokemonLevel(thing.uid)..""..boostshow..""

 

if getCreatureMaster(thing.uid) == cid then

local myball = getPlayerSlotItem(cid, 8).uid

local nexp = getItemAttribute(myball, "nextlevelexp")

 

local string = "You see your "..string.lower(getCreatureName(thing.uid)).." "..levelinfo.."."

string = string.."\nHit points: "..getCreatureHealth(thing.uid).."/"..getCreatureMaxHealth(thing.uid).."."

string = string.."\n"..getPokemonHappinessDescription(thing.uid)

if getItemAttribute(myball, "level") <= 99 then

string = string.."\nExperience needed to level up: "..nexp.."."

end

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)

else

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You see a "..string.lower(getCreatureName(thing.uid)).." "..levelinfo..".\nIt belongs to "..getCreatureName(getCreatureMaster(thing.uid))..".")

end

 

 

return false

end

 

return true

end

 

 

 

[21/11/2012 11:06:35] [Error - Action Interface]

[21/11/2012 11:06:35] data/actions/scripts/goback.lua:onUse

[21/11/2012 11:06:35] Description:

[21/11/2012 11:06:35] data/actions/scripts/goback.lua:136: attempt to call global 'doAddPokemonInOwnList' (a nil value)

[21/11/2012 11:06:35] stack traceback:

[21/11/2012 11:06:35] data/actions/scripts/goback.lua:136: in function <data/actions/scripts/goback.lua:19>

 

 

local hitmonchans = {

["Hitmonchan"] = {

[0] = {out = 559, eff = 112, type = FIGHTINGDAMAGE}, --outfit normal

[1] = {out = 1075, eff = 35, type = FIREDAMAGE}, --outfit fogo

[2] = {out = 1077, eff = 48, type = ELECTRICDAMAGE}, --outfit raio

[3] = {out = 1078, eff = 43, type = ICEDAMAGE}, --outfit gelo

[4] = {out = 1076, eff = 140, type = GHOSTDAMAGE} --outfit ghost

},

 

["Shiny Hitmonchan"] = {

--aconcelho trocar a outfit do shiny hitmonchan pela do elite hitmonchan do PO...

[0] = {out = 837, eff = 112, type = FIGHTINGDAMAGE}, --outfit normal

[1] = {out = 1080, eff = 35, type = FIREDAMAGE}, --outfit fogo

[2] = {out = 1081, eff = 48, type = ELECTRICDAMAGE}, --outfit raio

[3] = {out = 1082, eff = 43, type = ICEDAMAGE}, --outfit gelo

[4] = {out = 1079, eff = 140, type = GHOSTDAMAGE} --outfit ghost

}

}

function onUse(cid, item, frompos, item2, topos)

 

if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true end

 

local owner = getItemAttribute(item.uid, "firstpoke")

 

if owner and owner ~= getCreatureName(cid) then

doPlayerSendCancel(cid, "This pokemon belongs to "..owner..", it is his first pokemon. Please, give it back to him.")

return true

end

 

if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 then

return true

end

 

local btype = getPokeballType(item.itemid)

 

local effect = pokeballs[btype].effect

if not effect then

effect = 21

end

 

if item.itemid == pokeballs[btype].use 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) <= 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 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

 

local x = pokes[pokemon]

 

 

if getPlayerLevel(cid) + pokemonMaxLevelAbovePlayer < getItemAttribute(item.uid, "level") then

doPlayerSendCancel(cid, "Your pokemon's level is much higher than yours, you can't use him.")

return true

end

 

doSummonMonster(cid, pokemon)

 

local pk = getCreatureSummons(cid)[1]

if not isCreature(pk) then return true end

------------------------passiva hitmonchan------------------------------

if isSummon(pk) then

--local e = getCreatureMaster(cid)

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

end

end

end

-------------------------------------------------------------------------

 

if getCreatureName(pk) == "Ditto" then

 

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, "Ditto")

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, false, true)

doAddPokemonInOwnList(cid, pokemon)

 

doTransformItem(item.uid, item.itemid+1)

 

local pokename = getItemAttribute(item.uid, "nick") or getCreatureName(pk)

 

local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename)

doCreatureSay(cid, mgo, TALKTYPE_SAY)

 

doSendMagicEffect(getCreaturePosition(pk), effect)

 

local pk = getCreatureSummons(cid)[1]

local pb = getPlayerSlotItem(cid, 8).uid

local look = getItemAttribute(pb,"addon")

if not look then

doSetItemAttribute(pb,"addon",0)

return false

end

if look > 0 then

doSetCreatureOutfit(pk, {lookType = look}, -1)

return true

end

 

else

 

doPlayerSendCancel(cid, "This pokemon is fainted.")

 

end

 

if useKpdoDlls then

doUpdateMoves(cid)

end

return true

end

 

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

  • 0

cara nao via man da esse erro

6t1k60.png

 

se solta quantos pokemons se quizer da pokeball

 

e esse

 

[21/11/2012 11:43:55] [Error - Action Interface]

[21/11/2012 11:43:55] data/actions/scripts/goback.lua:onUse

[21/11/2012 11:43:55] Description:

[21/11/2012 11:43:55] data/actions/scripts/goback.lua:136: attempt to call global 'doAddPokemonInOwnList' (a nil value)

[21/11/2012 11:43:55] stack traceback:

[21/11/2012 11:43:55] data/actions/scripts/goback.lua:136: in function <data/actions/scripts/goback.lua:19>

Link para o comentário
Compartilhar em outros sites

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