Sv que esta usando ?
- Fórum
- OTServ
- Suporte
- Tópicos Sem Resposta
- [Encerrado] (Bug) Cath System !
[Encerrado] (Bug) Cath System !
Por BrunooMaciell, 17 de nov. de 2012 em Tópicos Sem Resposta
info
Grupo: Artesão
Registrado: 08/06/12
Posts: 106
Reputação: +5
Char no Tibia: Sera que eu tenho ? ê_ê

info
Grupo: Infante
Registrado: 27/08/11
Posts: 1.9k
Reputação: +85
Gênero: Masculino
Char no Tibia: Bruno Maciel

Do slicer sem lvl
pq ??
info
Grupo: Lorde
Registrado: 05/06/12
Posts: 2.2k
Reputação: +215
Gênero: Masculino

Tenta ae:
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), ball) then
local d, e = s:find(""..pballs.ball.." = (.-)")
local st2 = string.sub(s, d + pballs.num, e +5)
local num = tonumber(st2)+1
if num == 0 and ball == pballs.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
else
msg = msg..s..", "
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
if pokes[getPlayerStorageValue(cid, 854788)] and name == getPlayerStorageValue(cid, 854788) then --alterado v1.7 task clan
rate = 15
end
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
----------- task clan ---------------------
if pokes[getPlayerStorageValue(cid, 854788)] and poke == getPlayerStorageValue(cid, 854788) then
sendMsgToPlayer(cid, 27, "Quest Done!")
doItemSetAttribute(item, "unique", getCreatureName(cid)) --alterado v1.7 task clan
doItemSetAttribute(item, "task", 1)
setPlayerStorageValue(cid, 854788, 'done')
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
info
Grupo: Infante
Registrado: 27/08/11
Posts: 1.9k
Reputação: +85
Gênero: Masculino
Char no Tibia: Bruno Maciel

Irei testar aqui se sair este erro voltarei aqui e edito e rep+ pra tu ^^
Edited
Ae tu arrumo o bug da linha 89 ;D
Rep+
Editado Novembro 18 por Brunnoo
info
Grupo: Lorde
Registrado: 05/06/12
Posts: 2.2k
Reputação: +215
Gênero: Masculino

Duvida Resolvida, peça para mover.
Atenc. Yan18.
info
Grupo: Banidos
Registrado: 05/09/11
Posts: 178
Reputação: +55

Duvida sanada , reportado para moverem
Abraços,
Felipe
info
Grupo: Herói
Registrado: 28/11/10
Posts: 3.4k
Reputação: +585
Gênero: Masculino

Duvida Sanada, Topico Movido
info
Grupo: Herói
Registrado: 28/11/10
Posts: 3.4k
Reputação: +585
Gênero: Masculino

+ 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.





info
Grupo: Infante
Registrado: 27/08/11
Posts: 1.9k
Reputação: +85
Gênero: Masculino
Char no Tibia: Bruno Maciel
Estou com outro bug no cath system !!
Agora e na linha 89
Bug
[17/11/2012 22:24:54] [Error - Action Interface]
[17/11/2012 22:24:54] In a timer event called from:
[17/11/2012 22:24:54] data/actions/scripts/catch.lua:onUse
[17/11/2012 22:24:54] Description:
[17/11/2012 22:24:54] data/lib/catch system.lua:107: attempt to index a nil value
[17/11/2012 22:24:55] stack traceback:
[17/11/2012 22:24:55] data/lib/catch system.lua:107: in function <data/lib/catch system.lua:89>
Script
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), ball) then
local d, e = s:find(""..pballs.ball.." = (.-)")
local st2 = string.sub(s, d + pballs.num, e +5)
local num = tonumber(st2)+1
if num == 0 and ball == pballs.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
else
msg = msg..s..", "
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
if pokes[getPlayerStorageValue(cid, 854788)] and name == getPlayerStorageValue(cid, 854788) then --alterado v1.7 task clan
rate = 15
end
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
----------- task clan ---------------------
if pokes[getPlayerStorageValue(cid, 854788)] and poke == getPlayerStorageValue(cid, 854788) then
sendMsgToPlayer(cid, 27, "Quest Done!")
doItemSetAttribute(item, "unique", getCreatureName(cid)) --alterado v1.7 task clan
doItemSetAttribute(item, "task", 1)
setPlayerStorageValue(cid, 854788, 'done')
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
Rep+