Ir para conteúdo

[Encerrado] Catch centurion v6


Sk8Br

Posts Recomendados

ola pessoal !

então to com um problema aqui no servidor centurion v6 é o seguinte

quando uso qualquer ball no poke morto so aparece o efeito e nao captura o pokemon continua la e da esse erro no console

 

[22/05/2013 21:50:36] [Error - Action Interface]

[22/05/2013 21:50:36] In a timer event called from:

[22/05/2013 21:50:36] data/actions/scripts/catch.lua:onUse

[22/05/2013 21:50:36] Description:

[22/05/2013 21:50:36] data/lib/catch system.lua:24: attempt to perform arithmetic on a nil value

[22/05/2013 21:50:36] stack traceback:

[22/05/2013 21:50:36] data/lib/catch system.lua:24: in function <data/lib/catch system.lua:6>

 

 

 

 

aqui essta o arquivo catch system.lua e o catch.lua

 

catch.lua

 

 

local ballcatch = {

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

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

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

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

[556] = {cr = 80, 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, "Você não pode capturar este 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

 

 

catch system.lua

 

failmsgs = {

"Sorry, you didn't catch that pokemon.",

"Sorry, your pokeball broke.",

"Sorry, the pokemon escaped.",

}

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)

doItemSetAttribute(item, "addon", 0)

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, "Congratulations, you caught a pokemon ("..poke..", level "..clevel..")!")

doPlayerSendTextMessage(cid, 27, "Since you are already holding six pokemons, this pokeball has been sent to your depot.")

else

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

doPlayerSendTextMessage(cid, 27, "Congratulations, you caught a "..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("Error while executing function \"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("Pokemon Statistics is too long, it has been blocked to prevent debug on player clients.")

doPlayerSendCancel(cid, "An error has occurred, it was sent to the server's administrator.")

return false

end

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

end

 

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

Amigo Tente Esse Aki

 

Catch.lua

 

local ballcatch = {
[2394] = {cr = 3, on = 24, off = 23, ball = 11826, send = 47, typeee = "normal"},
[2391] = {cr = 6, on = 198, off = 197, ball = 11832, send = 48, typeee = "great"},
[2393] = {cr = 10, on = 202, off = 201, ball = 11835, send = 46, typeee = "super"},
[2392] = {cr = 15, on = 200, off = 199, ball = 11829, send = 49, typeee = "ultra"},
}[/font]
[font=comic sans ms,cursive]function onUse(cid, item, frompos, item3, topos)[/font]
[font=comic sans ms,cursive]local item2 = getTopCorpse(topos)
if item2 == null then
return true
end[/font]
[font=comic sans ms,cursive]if getItemAttribute(item2.uid, "catching") == 1 then
return true
end  [/font]
[font=comic sans ms,cursive]if getItemAttribute(item2.uid, "golden") and getItemAttribute(item2.uid, "golden") == 1 then
return doPlayerSendCancel(cid, "You can't try to catch a pokemon in the Golden Arena!")   --alterado v1.6
end[/font]
[font=comic sans ms,cursive]local name = string.lower(getItemNameById(item2.itemid))
name = string.gsub(name, "fainted ", "")
name = string.gsub(name, "defeated ", "")[/font]
[font=comic sans ms,cursive]local x = pokecatches[doCorrectPokemonName(name)]

--------------------------------------------------------------------------------
local storage = newpokedex[doCorrectPokemonName(name)].stoCatch   --edited brokes count system
if getPlayerStorageValue(cid, storage) == -1 then
   setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0")
   end	
   --------------------------------------------------------------------------------

if not x then return true end[/font]
[font=comic sans ms,cursive]  local owner = getItemAttribute(item2.uid, "corpseowner")

 if owner and isCreature(owner) and isPlayer(owner) and cid ~= owner then   --alterado v1.5
 doPlayerSendCancel(cid, "You are not allowed to catch this pokemon.")
 return true
 end
    -----------------------------------------------------
	   newidd = ballcatch[item.itemid].ball	  
	   typeee = ballcatch[item.itemid].typeee
    -----------------------------------------------------
local catchinfo = {}
 catchinfo.rate = ballcatch[item.itemid].cr
 catchinfo.catch = ballcatch[item.itemid].on
 catchinfo.fail = ballcatch[item.itemid].off
 catchinfo.newid = newidd					 
 catchinfo.name = doCorrectPokemonName(name)
 catchinfo.topos = topos
 catchinfo.chance = x.chance[/font]
[font=comic sans ms,cursive]  doSendDistanceShoot(getThingPos(cid), topos, ballcatch[item.itemid].send)
 doRemoveItem(item.uid, 1)[/font]
[font=comic sans ms,cursive]  local d = getDistanceBetween(getThingPos(cid), topos)[/font]
[font=comic sans ms,cursive]  addEvent(doSendPokeBall, d * 70 + 100 - (d * 14) , cid, catchinfo, false, false, typeee) --edited brokes count system
 addEvent(doSendMagicEffect, (d * 70 + 100 - (d * 14)) - 100, topos, 3)[/font]
[font=comic sans ms,cursive]return true
end

 

Catch System

 

failmsgs = {
"Sorry, you didn't catch that pokemon.",
"Sorry, your pokeball broke.",
"Sorry, the pokemon escaped.",
}
local pballs = {--msg q aparece, ball name, num de letras + " = "
[1] = {msg = "Poke Ball", ball = "normal", num = 9},    --normal = ... 9 letras
[2] = {msg = "Great Ball", ball = "great", num = 8},    --great = ... 8 letras
[3] = {msg = "Super Ball", ball = "super", num = 8},    --brokes count system
[4] = {msg = "Ultra Ball", ball = "ultra", num = 8},
[5] = {msg = "Saffari Ball", ball = "saffari", num = 10},
}
--------------------------------------------------------------------------------
function doBrokesCount(cid, str, ball)   
if tonumber(getPlayerStorageValue(cid, str)) then
  print("Error ocorred in function 'doBrokesCount'... storage "..str.." is a number value")
  print("Storage will be changed to the correct table...")
  doPlayerSendTextMessage(cid, 27, "A error ocorred... Warning sent to Game Masters!")
  setPlayerStorageValue(cid, str, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0")
  return true
end					 
local s = string.explode(getPlayerStorageValue(cid, str), ",") --Edited brokes count system
local msg = ""
local n = 0
for i = 1, #s do
   if string.find(tostring(s[i]), ball) then		
   local d, e = s[i]:find(""..pballs[i].ball.." = (.-)")
   local st2 = string.sub(s[i], d + pballs[i].num, e +5)
   local num = tonumber(st2)+1

   if num == 0 and ball == pballs[i].ball then
	  num = 1
   end
   if i == #s then
	  msg = msg..""..ball.." = "..num
	  n = n +1
   else
	  msg = msg..""..ball.." = "..num..", "
	  n = n +1
   end
   else
   if i == #s then
	  msg = msg..s[i]
   else
	  msg = msg..s[i]..", "
   end
   end
end
  setPlayerStorageValue(cid, str, msg)
end

function sendBrokesMsg(cid, str, ball)	  --Edited brokes count system
if tonumber(getPlayerStorageValue(cid, str)) then
  print("Error ocorred in function 'sendBrokesMsg'... storage "..str.." is a number value")
  print("Storage will be changed to the correct table...")
  doPlayerSendTextMessage(cid, 27, "A error ocorred... warning sent to game masters!")
  setPlayerStorageValue(cid, str, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0")
  return true
end  
local t = string.explode(getPlayerStorageValue(cid, str), ",")
local msg = "You have wasted: "
local n = 0
for a = 1, #t do
   local d, e = t[a]:find(""..pballs[a].ball.." = (.-)")
   local st2 = string.sub(t[a], d + pballs[a].num, e +5)
	 if tonumber(st2) == 0 and pballs[a].ball == ball then
	    st2 = 1
	 end
   if tonumber(st2) ~= 0 then
	 if n ~= 0 and a ~= #t then
	    msg = msg..", "
	 end
	 if tonumber(st2) ~= 1 then
	    msg = msg..st2.." "..pballs[a].msg.."s"
	    n = n +1
	 else
	    msg = msg..st2.." "..pballs[a].msg
	    n = n +1
	 end
   end
end
  msg = msg.." to catch it."
  doPlayerSendTextMessage(cid, 27, msg)
end
--------------------------------------------------------------------------------
function doSendPokeBall(cid, catchinfo, showmsg, fullmsg, typeee) --Edited brokes count system
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 chance = (1 * rate + 1) / totalChance
 chance = doMathDecimal(chance * 100)
if rate >= totalChance then
 local status = {}
    status.gender = getItemAttribute(corpse, "gender")
    status.happy = 160
 doRemoveItem(corpse, 1)
 doSendMagicEffect(topos, catch)
 addEvent(doCapturePokemon, 4000, cid, name, newid, status, typeee)  --Edited brokes count system
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.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, typeee) --Edited brokes count system
else
 addEvent(doNotCapturePokemon, 4000, cid, name, typeee) --Edited brokes count system
 doSendMagicEffect(topos, fail)
end
end
function doCapturePokemon(cid, poke, ballid, status, typeee)  --Edited brokes count system
if not isCreature(cid) then
return true
end

local list = getCatchList(cid)
   if not isInArray(list, poke) and not isShinyName(poke) then    --Edited catch system
   doPlayerAddSoul(cid, 1)
   end
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 gender = status.gender
local happy = 200
																 --alterado v1.6
    if getPlayerFreeCap(cid) >= 6 or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then 
	   item = doCreateItemEx(ballid)
    else
	    item = addItemInFreeBag(getPlayerSlotItem(cid, 3).uid, ballid, 1) --alterado v1.6.1
    end
 doItemSetAttribute(item, "poke", poke)
 doItemSetAttribute(item, "hp", 1)
 doItemSetAttribute(item, "happy", happy)
 doItemSetAttribute(item, "gender", gender)
 doItemSetAttribute(item, "fakedesc", description)
 doItemSetAttribute(item, "description", description)
 if poke == "Hitmonchan" or poke == "Shiny Hitmonchan" then    --edited passiva hitmonchan
 doItemSetAttribute(item, "hands", 0)
 end
   local storage = newpokedex[poke].stoCatch	 --Edited brokes count system
if getPlayerFreeCap(cid) >= 6 or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then  --alterado v1.6
    doPlayerSendMailByName(getCreatureName(cid), item, 1)
 doPlayerSendTextMessage(cid, 27, "Congratulations, you caught a pokemon ("..poke..")!")
 doPlayerSendTextMessage(cid, 27, "Since you are already holding six pokemons, this pokeball has been sent to your depot.")
 --------------------------------------------------------------------------------
    sendBrokesMsg(cid, storage, typeee)			 --Edited brokes count system
 setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0")
   else
 doPlayerSendTextMessage(cid, 27, "Congratulations, you caught a ("..poke..")!")
 --------------------------------------------------------------------------------
 sendBrokesMsg(cid, storage, typeee)		    --edited brokes count system
 setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0")
   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) + 20)
  end
else
 doSendMagicEffect(getThingPos(cid), 178)
end
doIncreaseStatistics(poke, true, true)
end
function doNotCapturePokemon(cid, poke, typeee)  --Edited brokes count system
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

local storage = newpokedex[poke].stoCatch
--------------------------------------------------------------------------------
doBrokesCount(cid, storage, typeee)   --edited brokes count system
--------------------------------------------------------------------------------
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("Error while executing function \"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("Pokemon Statistics is too long, it has been blocked to prevent debug on player clients.")
 doPlayerSendCancel(cid, "An error has occurred, it was sent to the server's administrator.")
return false
end
doShowTextDialog(cid, math.random(2391, 2394), show)
end 

 

Link para o comentário
Compartilhar em outros sites

entao cara deu esse erro aki ó

 

 

[23/05/2013 15:55:10] [Error - LuaScriptInterface::loadFile] data/actions/scripts/catch.lua:6: unexpected symbol near '['

[23/05/2013 15:55:10] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/catch.lua)

[23/05/2013 15:55:10] data/actions/scripts/catch.lua:6: unexpected symbol near '['

Link para o comentário
Compartilhar em outros sites

  • 2 months later...
  • 4 years later...
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.
Link para o comentário
Compartilhar em outros sites

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