Ir para conteúdo

[Encerrado] Ajuda Master Ball Nao Catch


KaboFlow29

Posts Recomendados

scripts / catch

 

_____________________________________

 

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"},

[12924] = {cr = 10, on = 200, off = 199, ball = 12923, send = 49, typeee = "master"},

}

 

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

 

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

 

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

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

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

 

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, master = 0 ")

end

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

 

if not x then return true end

 

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

 

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

doRemoveItem(item.uid, 1)

 

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

 

------------------------ --id da saffari

if getPlayerStorageValue(cid, 98796) >= 1 and getPlayerItemCount(cid, 2391) <= 0 then

setPlayerStorageValue(cid, 98796, -1)

setPlayerStorageValue(cid, 98797, -1) --alterado v1.8

doTeleportThing(cid, SafariOut, false)

doSendMagicEffect(getThingPos(cid), 21)

doPlayerSendTextMessage(cid, 27, "You spend all your 'saffari balls', good luck in the next time...")

end

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

 

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)

 

return true

end

 

______________________________________________________________________________________

 

lib / configuration

 

 

 

pokeballs = {

 

["normal"] = {effect = 188, on = 11826, use = 11827, off = 11828, all = {11826, 11827, 11828}},

["ultra"] = {effect = 191, on = 11829, use = 11830, off = 11831, all = {11829, 11830, 11831}},

["super"] = {effect = 190, on = 11835, use = 11836, off = 11837, all = {11835, 11836, 11837}},

["great"] = {effect = 189, on = 11832, use = 11833, off = 11834, all = {11832, 11833, 11834}},

["master"] = {effect = 196, on = 12923, use = 12925, off = 12922, all = {12923, 12925, 12922}},

["shinynormal"] = {effect = 188, on = 11737, use = 11738, off = 11739, all = {11737, 11738, 11739}},

["shinygreat"] = {effect = 189, on = 11740, use = 11741, off = 11742, all = {11740, 11741, 11742}},

["shinysuper"] = {effect = 190, on = 11743, use = 11744, off = 11745, all = {11743, 11744, 11745}},

["shinyultra"] = {effect = 191, on = 11746, use = 11747, off = 11748, all = {11746, 11747, 11748}},

["shinymaster"] = {effect = 196, on = 12923, use = 12925, off = 12922, all = {12923, 12925, 12922}},

}

Link para o comentário
Compartilhar em outros sites

ty mano

 

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"},

[12924] = {cr = 10, on = 200, off = 199, ball = 12923, send = 49, typeee = "master"},

}

 

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

 

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

 

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

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

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

 

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, master = 0 ")

end

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

 

if not x then return true end

 

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

 

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

doRemoveItem(item.uid, 1)

 

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

 

------------------------ --id da saffari

if getPlayerStorageValue(cid, 98796) >= 1 and getPlayerItemCount(cid, 2391) <= 0 then

setPlayerStorageValue(cid, 98796, -1)

setPlayerStorageValue(cid, 98797, -1) --alterado v1.8

doTeleportThing(cid, SafariOut, false)

doSendMagicEffect(getThingPos(cid), 21)

doPlayerSendTextMessage(cid, 27, "You spend all your 'saffari balls', good luck in the next time...")

end

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

 

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)

 

return true

end

 

 

 

pokeballs = {

 

["normal"] = {effect = 188, on = 11826, use = 11827, off = 11828, all = {11826, 11827, 11828}},

["ultra"] = {effect = 191, on = 11829, use = 11830, off = 11831, all = {11829, 11830, 11831}},

["super"] = {effect = 190, on = 11835, use = 11836, off = 11837, all = {11835, 11836, 11837}},

["great"] = {effect = 189, on = 11832, use = 11833, off = 11834, all = {11832, 11833, 11834}},

["master"] = {effect = 196, on = 12923, use = 12925, off = 12922, all = {12923, 12925, 12922}},

["shinynormal"] = {effect = 188, on = 11737, use = 11738, off = 11739, all = {11737, 11738, 11739}},

["shinygreat"] = {effect = 189, on = 11740, use = 11741, off = 11742, all = {11740, 11741, 11742}},

["shinysuper"] = {effect = 190, on = 11743, use = 11744, off = 11745, all = {11743, 11744, 11745}},

["shinyultra"] = {effect = 191, on = 11746, use = 11747, off = 11748, all = {11746, 11747, 11748}},

["shinymaster"] = {effect = 196, on = 12923, use = 12925, off = 12922, all = {12923, 12925, 12922}},

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

Vá Em Data/lib/cath system

 

ai vai ter algo assim la

 

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},

}

 

Adicione Sua Ball Ali E Me Diga Se pegou

Link para o comentário
Compartilhar em outros sites

Nao Da Catch Mano

 

 

 

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},

[6] = {msg = "Master Ball", ball = "master", num = 10},

}

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

function doBrokesCount(cid, str, ball) --alterado v1.8 \/

if tonumber(getPlayerStorageValue(cid, str)) or not tostring(getPlayerStorageValue(cid, str)) or not string.find(getPlayerStorageValue(cid, str), ",") then

print("Error ocorred in function 'doBrokesCount'... Player: "..getCreatureName(cid).." Storage "..str.." is wrong!")

print("Storage will be changed to the correct table...")

setPlayerStorageValue(cid, str, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, master = 0")

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) --alterado v1.8 \/

if tonumber(getPlayerStorageValue(cid, str)) or not tostring(getPlayerStorageValue(cid, str)) or not string.find(getPlayerStorageValue(cid, str), ",") then

print("Error ocorred in function 'doBrokesCount'... Player: ".. getCreatureName(cid).." Storage "..str.." is wrong!")

print("Storage will be changed to the correct table...")

setPlayerStorageValue(cid, str, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, master = 0")

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

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

if getPlayerStorageValue(cid, 8955) >= 1 then

local x = icons[getItemAttribute(item, "poke")]

if x then

doTransformItem(item, x.on)

doItemSetAttribute(item, "icone", "yes")

doItemSetAttribute(item, "morta", "no")

doItemSetAttribute(item, "ball", ""..typeee.."")

end

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, master = 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, master = 0")

end

 

if #getCreatureSummons(cid) >= 1 then

doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 173) --alterado v1.8 tava efeito errado o.O

if catchMakesPokemonHappier then

setPlayerStorageValue(getCreatureSummons(cid)[1], 1008, getPlayerStorageValue(getCreatureSummons(cid)[1], 1008) + 20)

end

else

doSendMagicEffect(getThingPos(cid), 173) --alterado v1.8 tava efeito errado o.O

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

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

Nao Da Catch Mano

 

 

 

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},

[6] = {msg = "Master Ball", ball = "master", num = 10},

}

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

function doBrokesCount(cid, str, ball) --alterado v1.8 \/

if tonumber(getPlayerStorageValue(cid, str)) or not tostring(getPlayerStorageValue(cid, str)) or not string.find(getPlayerStorageValue(cid, str), ",") then

print("Error ocorred in function 'doBrokesCount'... Player: "..getCreatureName(cid).." Storage "..str.." is wrong!")

print("Storage will be changed to the correct table...")

setPlayerStorageValue(cid, str, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, master = 0")

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) --alterado v1.8 \/

if tonumber(getPlayerStorageValue(cid, str)) or not tostring(getPlayerStorageValue(cid, str)) or not string.find(getPlayerStorageValue(cid, str), ",") then

print("Error ocorred in function 'doBrokesCount'... Player: ".. getCreatureName(cid).." Storage "..str.." is wrong!")

print("Storage will be changed to the correct table...")

setPlayerStorageValue(cid, str, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, master = 0")

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

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

if getPlayerStorageValue(cid, 8955) >= 1 then

local x = icons[getItemAttribute(item, "poke")]

if x then

doTransformItem(item, x.on)

doItemSetAttribute(item, "icone", "yes")

doItemSetAttribute(item, "morta", "no")

doItemSetAttribute(item, "ball", ""..typeee.."")

end

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, master = 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, master = 0")

end

 

if #getCreatureSummons(cid) >= 1 then

doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 173) --alterado v1.8 tava efeito errado o.O

if catchMakesPokemonHappier then

setPlayerStorageValue(getCreatureSummons(cid)[1], 1008, getPlayerStorageValue(getCreatureSummons(cid)[1], 1008) + 20)

end

else

doSendMagicEffect(getThingPos(cid), 173) --alterado v1.8 tava efeito errado o.O

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

 

cara se ja vio se no items.xml esta arrumado corretamente? com os ID etc.?

Link para o comentário
Compartilhar em outros sites

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