Hum a coisa nao ta facil mais pera ai Em Revives.lua substutua tudo por isso aqui
local storage = 121212 --storage da quest
function onUse(cid, item, frompos, item2, topos)
if getPlayerStorageValue(cid, storage) == 0 then
doPlayerSendCancel(cid, "You already have used the limit of revives for this quest.")
return true
elseif getPlayerStorageValue(cid, 990) >= 1 then
doPlayerSendCancel(cid, "You can't use revive during gym battles.")
return true
elseif getPlayerStorageValue(cid, 52481) >= 1 then
doPlayerSendCancel(cid, "You can't do that while a duel.")
return true
elseif isPlayer(item2.uid) then
doPlayerSendCancel(cid, "Please, use revive only on pokeballs.")
return true
end
for a, b in pairs (pokeballs) do
if not item2.itemid == b.on or not item2.itemid == b.off then
doPlayerSendCancel(cid, "Please, use revive only on pokeballs.")
return true
end
end
local pokeball = getPlayerSlotItem(cid, 8)
for a, b in pairs (pokeballs) do
if item2.itemid == b.on or item2.itemid == b.off then
doTransformItem(item2.uid, b.on)
doSetItemAttribute(item2.uid, "hp", 1)
for c = 1, 15 do
local str = "move"..c
setCD(item2.uid, str, 0)
end
setCD(item2.uid, "control", 0)
setCD(item2.uid, "blink", 0) --alterado v1.6
doSendMagicEffect(getThingPos(cid), 13)
doRemoveItem(item.uid, 1)
doCureBallStatus(getPlayerSlotItem(cid, 8).uid, "all")
doCureStatus(cid, "all", true)
cleanBuffs2(item2.uid) --alterado v1.5
if getPlayerStorageValue(cid, storage) > 0 then
setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage)-1)
end
return true
end
end
return true
end
agora em caught.lua nao tenho muita certeza mais vai parar de crashar pode ter certeza
local ballcatch = { --id normal, id da ball shiy
[2394] = {cr = 5, on = 193, off = 192, ball = {11826, 11737}, send = 47, typeee = "normal", boost = "0"},
[2391] = {cr = 10, on = 198, off = 197, ball = {11832, 11740}, send = 48, typeee = "great", boost = "0"},
[2393] = {cr = 15, on = 202, off = 201, ball = {11835, 11743}, send = 46, typeee = "super", boost = "0"},
[2392] = {cr = 20, on = 200, off = 199, ball = {11829, 11746}, send = 49, typeee = "ultra", boost = "0"},
[12617] = {cr = 10, on = 204, off = 203, ball = {10975, 12621}, send = 35, typeee = "saffari", boost = "0"},
[12832] = {cr = 100000, on = 23, off = 24, ball = {12826, 12829}, send = 181, typeee = "dark", boost = "50"}, -- revise isto
[15129] = {cr = 100000, on = 23, off = 24, ball = {12826, 12829}, send = 181, typeee = "flash", boost = "50"}, --revise isto
}
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!")
end
local name = string.lower(getItemNameById(item2.itemid))
name = string.gsub(name, "fainted ", "")
name = string.gsub(name, "defeated ", "")
name = doCorrectPokemonName(name)
local x = pokecatches[name]
if not x then return true end
local shinys = {"Shiny Mr. mime", "Shiny Altaria", "Shiny Weezing", "Shiny Flygon", "Shiny Rhyperior", "Shiny Blaziken", "Shiny Tangela", "Shiny Wailord", "Shiny Aggron", "Shiny Absol", "Shiny Lucario", "Shiny Metagross", "Shiny Yanmega", "Shiny Wobbuffet", "Shiny Scizor", "Shiny Slowking", "Shiny Alakazam", "Shiny Scyther", "Shiny Electivire", "Shiny Magmortar", "Shiny Salamence", "Shiny Magmar", "Shiny Mantine", "Shiny Gyarados", "Shiny Snorlax", "Shiny Onix", "Shiny Electabuzz", "Shiny Pidgeot", "Aerodactyl", "Ditto", "Shiny Gengar"}
if item.itemid == 12832 and isInArray(shinys, name) then
doPlayerSendCancel(cid, "Você não pode catar esse pokemon com a master ball!")
return true
end
local storage = newpokedex[name].stoCatch
if getPlayerStorageValue(cid, storage) == -1 or not string.find(getPlayerStorageValue(cid, storage), ";") then
setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, dark = 0;")
end
local owner = getItemAttribute(item2.uid, "corpseowner")
if owner and isCreature(owner) and isPlayer(owner) and cid ~= owner then
doPlayerSendCancel(cid, "You are not allowed to catch this pokemon.")
return true
end
local newidd = isShinyName(name) and ballcatch[item.itemid].ball[2] or ballcatch[item.itemid].ball[1]
local typeee = ballcatch[item.itemid].typeee
local boost = ballcatch[item.itemid].boost
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)
if getPlayerStorageValue(cid, 98796) >= 1 and getPlayerItemCount(cid, 12617) <= 0 then
setPlayerStorageValue(cid, 98796, -1)
setPlayerStorageValue(cid, 98797, -1)
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)
addEvent(doSendMagicEffect, (d * 70 + 100 - (d * 14)) - 100, topos, 3)
return true
end