Ir para conteúdo
  • Cadastre-se

Catch.lua com erro ao capturar pokémon


Posts Recomendados

Olá, pessoal do TK.

Estou com um problema bem chato que estou a dias atrás para resolver mas não consigo, nesses últimos dias adc um sistema de gender no meu otp.

Funciona tudo corretamente, porém na distro acusa esse erro:

[17/12/2023 22:31:40] [Error - Action Interface] 
[17/12/2023 22:31:40] In a timer event called from: 
[17/12/2023 22:31:40] data/actions/scripts/catch.lua:onUse
[17/12/2023 22:31:40] Description: 
[17/12/2023 22:31:40] data/actions/scripts/catch.lua:599: attempt to index local 'status' (a nil value)
[17/12/2023 22:31:40] stack traceback:
[17/12/2023 22:31:40]     data/actions/scripts/catch.lua:599: in function <data/actions/scripts/catch.lua:582>

 

Meu catch: 

Spoiler

failmsgs = {
    "Sorry, you didn't catch that pokemon.",
    "Sorry, your pokeball broke.",
    "Sorry, the pokemon escaped.",
}

function doBrokesCount(cid, str, ball) --alterado v1.9 \/
    if not isCreature(cid) then return false end
    local tb = {
        {b = "poke", v = 0},
        {b = "great", v = 0},
        {b = "super", v = 0},
        {b = "ultra", v = 0},
        {b = "vball", v = 0},
        {b = "saffari", v = 0},
        {b = "dark", v = 0},
        {b = "magu", v = 0},
        {b = "sora", v = 0},
        {b = "yume", v = 0},
        {b = "dusk", v = 0},
        {b = "tale", v = 0},
        {b = "moon", v = 0},
        {b = "net", v = 0},
        {b = "premier", v = 0},
        {b = "tinker", v = 0},
        {b = "fast", v = 0},
        {b = "heavy", v = 0},
    }
    for _, e in ipairs(tb) do
        if e.b == ball then
            e.v = 1
            break
        end
    end
    local strings = getPlayerStorageValue(cid, str)
    
    local t = "normal = (.-), great = (.-), super = (.-), ultra = (.-), vball = (.-), saffari = (.-), dark = (.-), magu = (.-), sora = (.-), yume = (.-), dusk = (.-), tale = (.-), moon = (.-), net = (.-), premier = (.-), tinker = (.-), fast = (.-), heavy = (.-);"
    local t2 = ""
    for n, g, s, u, v, s2, d, magu, sora, yume, dusk, tale, moon, net, premier, tinker, fast, heavy in strings:gmatch(t) do
        t2 = "normal = "..(n+tb[1].v)..", great = "..(g+tb[2].v)..", super = "..(s+tb[3].v)..", ultra = "..(u+tb[4].v)..", vball = "..(v+tb[5].v)..", saffari = "..(s2+tb[6].v)..", dark = "..(d+tb[7].v)..", magu = "..(magu+tb[8].v)..", sora = "..(sora+tb[9].v)..", yume = "..(yume+tb[10].v)..", dusk = "..(dusk+tb[11].v)..", tale = "..(tale+tb[12].v)..", moon = "..(moon+tb[13].v)..", net = "..(net+tb[14].v)..", premier = "..(premier+tb[15].v)..", tinker = "..(tinker+tb[16].v)..", fast = "..(fast+tb[17].v)..", heavy = "..(heavy+tb[18].v)..";" 
    end
    
    setPlayerStorageValue(cid, str, strings:gsub(t, t2))
end

function sendBrokesMsg(cid, str, ball, poke, catched)
    if not isCreature(cid) then return true end
    local strings = getPlayerStorageValue(cid, str)
    if type(strings) == "number" or type(strings) ~= "string" or not string.find(strings, "magu") then --alterado v1.9 
        setPlayerStorageValue(cid, str, "normal = 0, great = 0, super = 0, ultra = 0, vball = 0, saffari = 0, dark = 0;") 
        strings = getPlayerStorageValue(cid, str) --alterado v1.9 
    end 
    local t = "normal = (.-), great = (.-), super = (.-), ultra = (.-), vball = (.-), saffari = (.-), dark = (.-), magu = (.-), sora = (.-), yume = (.-), dusk = (.-), tale = (.-), moon = (.-), net = (.-), premier = (.-), tinker = (.-), fast = (.-), heavy = (.-);"
    local msg = {}
    local countN, countG, countS, countU, countV, countS2 = 0, 0, 0, 0, 0, 0
    local maguCount, soraCount, yumeCount, duskCount, taleCount, moonCount, netCount, premierCount, tinkerCount, fastCount, heavyCount = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
    table.insert(msg, "Você"..(catched == false and " já" or "").." gastou: ")
    
    for n, g, s, u, v, s2, d, magu, sora, yume, dusk, tale, moon, net, premier, tinker, fast, heavy in strings:gmatch(t) do
        if tonumber(n) and tonumber(n) > 0 then 
            table.insert(msg, tostring(n).." Poke ball".. (tonumber(n) > 1 and "s" or "")) 
            countN = tonumber(n)
        end
        if tonumber(g) and tonumber(g) > 0 then 
            table.insert(msg, (#msg > 1 and ", " or "").. tostring(g).." Great ball".. (tonumber(g) > 1 and "s" or "")) 
            countG = tonumber(g)
        end
        if tonumber(s) and tonumber(s) > 0 then 
            table.insert(msg, (#msg > 1 and ", " or "").. tostring(s).." Super ball".. (tonumber(s) > 1 and "s" or "")) 
            countS = tonumber(s)
        end
        if tonumber(u) and tonumber(u) > 0 then 
            table.insert(msg, (#msg > 1 and ", " or "").. tostring(u).." Ultra ball".. (tonumber(u) > 1 and "s" or "")) 
            countU = tonumber(u)
        end
        if tonumber(v) and tonumber(v) > 0 then 
            table.insert(msg, (#msg > 1 and ", " or "").. tostring(v).." Vball".. (tonumber(v) > 1 and "s" or "")) 
            countV = tonumber(v)
        end
        if tonumber(s2) and tonumber(s2) > 0 then 
            table.insert(msg, (#msg > 1 and ", " or "").. tostring(s2).." Saffari ball".. (tonumber(s2) > 1 and "s" or "")) 
            countS2 = tonumber(s2)
        end
        
        if tonumber(magu) and tonumber(magu) > 0 then 
            table.insert(msg, (#msg > 1 and ", " or "").. tostring(magu).." Magu ball".. (tonumber(magu) > 1 and "s" or "")) 
            maguCount = tonumber(magu)
        end
        
        if tonumber(sora) and tonumber(sora) > 0 then 
            table.insert(msg, (#msg > 1 and ", " or "").. tostring(sora).." Sora ball".. (tonumber(sora) > 1 and "s" or "")) 
            soraCount = tonumber(sora)
        end
        
        if tonumber(yume) and tonumber(yume) > 0 then 
            table.insert(msg, (#msg > 1 and ", " or "").. tostring(yume).." Yume ball".. (tonumber(yume) > 1 and "s" or "")) 
            yumeCount = tonumber(yume)
        end
        
        if tonumber(dusk) and tonumber(dusk) > 0 then 
            table.insert(msg, (#msg > 1 and ", " or "").. tostring(dusk).." Dusk ball".. (tonumber(dusk) > 1 and "s" or "")) 
            duskCount = tonumber(dusk)
        end
        
        if tonumber(tale) and tonumber(tale) > 0 then 
            table.insert(msg, (#msg > 1 and ", " or "").. tostring(tale).." Tale ball".. (tonumber(tale) > 1 and "s" or "")) 
            taleCount = tonumber(tale)
        end
        
        if tonumber(moon) and tonumber(moon) > 0 then 
            table.insert(msg, (#msg > 1 and ", " or "").. tostring(moon).." Moon ball".. (tonumber(moon) > 1 and "s" or "")) 
            moonCount = tonumber(moon)
        end
        
        if tonumber(net) and tonumber(net) > 0 then 
            table.insert(msg, (#msg > 1 and ", " or "").. tostring(net).." Net ball".. (tonumber(net) > 1 and "s" or "")) 
            netCount = tonumber(net)
        end
        
        if tonumber(premier) and tonumber(premier) > 0 then 
            table.insert(msg, (#msg > 1 and ", " or "").. tostring(premier).." Premier ball".. (tonumber(premier) > 1 and "s" or "")) 
            premierCount = tonumber(premier)
        end
        
        if tonumber(tinker) and tonumber(tinker) > 0 then 
            table.insert(msg, (#msg > 1 and ", " or "").. tostring(tinker).." Tinker ball".. (tonumber(tinker) > 1 and "s" or "")) 
            tinkerCount = tonumber(tinker)
        end
        
        if tonumber(fast) and tonumber(fast) > 0 then 
            table.insert(msg, (#msg > 1 and ", " or "").. tostring(fast).." Fast ball".. (tonumber(fast) > 1 and "s" or "")) 
            fastCount = tonumber(fast)
        end
        
        if tonumber(heavy) and tonumber(heavy) > 0 then 
            table.insert(msg, (#msg > 1 and ", " or "").. tostring(heavy).." Heavy ball".. (tonumber(heavy) > 1 and "s" or "")) 
            heavyCount = tonumber(heavy)
        end
    end
    if #msg == 1 then
        return true
    end
    if string.sub(msg[#msg], 1, 1) == "," then
        msg[#msg] = " e".. string.sub(msg[#msg], 2, #msg[#msg])
    end
    table.insert(msg, " para"..(catched == false and " tentar" or "").." captura-lo.")

    addEvent(sendMsgToPlayer, 3000, cid, 27, table.concat(msg))

    if catched then
        local ballsCatchedString = countN .. "-" .. countG .. "-" .. countS .. "-" .. countU .. "-" .. countS2 .. "-" .. maguCount .. "-" .. soraCount .. "-" .. yumeCount .. "-" .. duskCount .. "-" .. taleCount .. "-" .. moonCount .. "-" .. netCount .. "-" .. premierCount .. "-" .. tinkerCount .. "-" ..fastCount .. "-" .. heavyCount
        local list = getCatchList(cid)
        if not jaCapturou(cid, poke) then 
            local expssss = 100
            if newpokedexCatchXpMasterx[doCorrectString(poke)].expCatch then
                expssss = newpokedexCatchXpMasterx[doCorrectString(poke)].expCatch
            end    
            addEvent(doSendPlayerExtendedOpcode, 2900, cid, 105, getItemInfo(fotos[poke]).clientId .. "-" .. expssss .. "-" .. poke .. "-" .. ballsCatchedString)
            addEvent(doPlayerAddExp, 2900, cid, (expssss/100))
            addEvent(doSendAnimatedText, 2900, getThingPos(cid), (expssss/100) , 215)
            addEvent(doPlayerAddInKantoCatchs, 2900, cid, 1)
            addEvent(colocarNaListaDeCapturados, 2900, cid, poke)
        end
    end
end
--------------------------------------------------------------------------------
function colocarNaListaDeCapturados(cid, poke)
    setPlayerStorageValue(cid, fotos[poke], 1)
end

function jaCapturou(cid, poke)
    local storage = getPlayerStorageValue(cid, fotos[poke])
    if storage ~= -1 then
        return true
    end
    return false
end

function getWastedBall(cid, str)
    local storage = getPlayerStorageValue(cid, str)
    local pokeballsCount = {normal = 0, great = 0, super = 0, ultra = 0, vball = 0, saffari = 0, dark = 0, magu = 0, sora = 0, yume = 0, dusk = 0, tale = 0, moon = 0, net = 0, premier = 0, tinker = 0, fast = 0, heavy = 0}
    if storage == -1 then
        return pokeballsCount
    end
    local t = "normal = (.-), great = (.-), super = (.-), ultra = (.-), vball = (.-), saffari = (.-), dark = (.-), magu = (.-), sora = (.-), yume = (.-), dusk = (.-), tale = (.-), moon = (.-), net = (.-), premier = (.-), tinker = (.-), fast = (.-), heavy = (.-);"
    for n, g, s, u, v, s2, d, maguu, sora, yume, dusk, tale, moon, net, premier, tinker, fast, heavy in storage:gmatch(t) do
        if tonumber(n) and tonumber(n) > 0 then 
            pokeballsCount.normal = tonumber(n)
        end
        
        if tonumber(g) and tonumber(g) > 0 then 
            pokeballsCount.great = tonumber(g)
        end
        if tonumber(s) and tonumber(s) > 0 then 
            pokeballsCount.super = tonumber(s)
        end
        if tonumber(u) and tonumber(u) > 0 then 
            pokeballsCount.ultra = tonumber(u)
        end
        if tonumber(v) and tonumber(v) > 0 then 
            pokeballsCount.vball = tonumber(v)
        end        
        if tonumber(s2) and tonumber(s2) > 0 then 
            pokeballsCount.saffari = tonumber(s2)
        end
        
        if tonumber(maguu) and tonumber(maguu) > 0 then 
            pokeballsCount.magu = tonumber(maguu)
        end
        
        if tonumber(sora) and tonumber(sora) > 0 then 
            pokeballsCount.sora = tonumber(sora)
        end
        
        if tonumber(yume) and tonumber(yume) > 0 then 
            pokeballsCount.yume = tonumber(yume)
        end
        
        if tonumber(dusk) and tonumber(dusk) > 0 then 
            pokeballsCount.dusk = tonumber(dusk)
        end
        
        if tonumber(tale) and tonumber(tale) > 0 then 
            pokeballsCount.tale = tonumber(tale)
        end
        
        if tonumber(moon) and tonumber(moon) > 0 then 
            pokeballsCount.moon = tonumber(moon)
        end
        
        if tonumber(net) and tonumber(net) > 0 then 
            pokeballsCount.net = tonumber(net)
        end
        
        if tonumber(premier) and tonumber(premier) > 0 then 
            pokeballsCount.premier = tonumber(premier)
        end
        
        if tonumber(tinker) and tonumber(tinker) > 0 then 
            pokeballsCount.tinker = tonumber(tinker)
        end
        
        if tonumber(fast) and tonumber(fast) > 0 then 
            pokeballsCount.fast = tonumber(fast)
        end
        
        if tonumber(heavy) and tonumber(heavy) > 0 then 
            pokeballsCount.heavy = tonumber(heavy)
        end
    end
    return pokeballsCount
end

function doSendPokeBall(cid, catchinfo, showmsg, fullmsg, typeee) --Edited brokes count system
    
    local name = doCorrectString(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 clevel = catchinfo.clevel
    -- local basechance = catchinfo.chance
    
    if not getTopCorpse(topos) then
        return true
    end
    
    local corpse = getTopCorpse(topos).uid
    if not isCreature(cid) then
        doSendMagicEffect(topos, CONST_ME_POFF)
        return true
    end
    
    doItemSetAttribute(corpse, "catching", 1)
    
    local str = newpokedexCatchXpMasterx[name].stoCatch
    local Wast = getWastedBall(cid, str)
    local doCatch = false
    
    local playerPoints = 0
    
    if Wast.normal > 0 then
        playerPoints = playerPoints + (ballsTypesCatch["pokeball"] * Wast.normal)
    end
    
    if Wast.great > 0 then
        playerPoints = playerPoints + (ballsTypesCatch["greatball"] * Wast.great)
    end
    
    if Wast.super > 0 then
        playerPoints = playerPoints + (ballsTypesCatch["superball"] * Wast.super)
    end
    
    if Wast.ultra > 0 then
        playerPoints = playerPoints + (ballsTypesCatch["ultraball"] * Wast.ultra)
    end

    if Wast.vball > 0 then
        if string.find(name, "Shiny") then 
            playerPoints = playerPoints + ((ballsTypesCatch["vballShiny"]) * Wast.vball)
        else
            playerPoints = playerPoints + (ballsTypesCatch["vball"] * Wast.vball)
        end
    end
    
    if Wast.saffari > 0 then
        playerPoints = playerPoints + (ballsTypesCatch["saffariball"] * Wast.saffari)
    end
    
    if Wast.premier > 0 then
        playerPoints = playerPoints + (ballsTypesCatch["premierball"] * Wast.premier)
    end
    
    if Wast.magu > 0 then
        playerPoints = playerPoints + (ballsTypesCatch["maguball"] * Wast.magu)
    end
    
    if Wast.sora > 0 then
        playerPoints = playerPoints + (ballsTypesCatch["soraball"] * Wast.sora)
    end
    
    if Wast.yume > 0 then
        playerPoints = playerPoints + (ballsTypesCatch["yumeball"] * Wast.yume)
    end
    
    if Wast.dusk > 0 then
        playerPoints = playerPoints + (ballsTypesCatch["duskball"] * Wast.dusk)
    end
    
    if Wast.tale > 0 then
        playerPoints = playerPoints + (ballsTypesCatch["taleball"] * Wast.tale)
    end
    
    if Wast.moon > 0 then
        playerPoints = playerPoints + (ballsTypesCatch["moonball"] * Wast.moon)
    end
    
    if Wast.net > 0 then
        playerPoints = playerPoints + (ballsTypesCatch["netball"] * Wast.net)
    end
    
    if Wast.tinker > 0 then
        playerPoints = playerPoints + (ballsTypesCatch["tinkerball"] * Wast.tinker)
    end
    
    if Wast.fast > 0 then
        playerPoints = playerPoints + (ballsTypesCatch["fastball"] * Wast.fast)
    end
    
    if Wast.heavy > 0 then
        playerPoints = playerPoints + (ballsTypesCatch["heavyball"] * Wast.heavy)
    end
    
    pokeTab = pokeChance[name]

    if pokeTab then

        pokeTabMedia = pokeTab.media
        if string.find(name, "Shiny") then
            pokeTabMedia = pokeTab.media * 3
        end

        local pokeChance = pokeTabMedia * ballsTypesCatch[pokeTab.balltype]
        
        local tableMinBall = { --
            ["pokeball"] = "Poke Ball", -- Se eu joguei pokeball, ganhará 1 point por cada
            ["greatball"] = "Great Ball", -- Se eu joguei great ball, ganhará 2 points por cada
            ["superball"] = "Super Ball", -- Se eu joguei superball, ganhará 3 points por cada
            ["ultraball"] = "Ultra Ball", -- Se eu joguei ultraball, ganhará 4 points por cada          
            ["vball"] = "V Ball", -- Se eu joguei ultraball, ganhará 4 points por cada          
            ["saffariball"] = "Saffari Ball", -- Se eu joguei ultraball, ganhará 4 points por cada          
        }
        
        local tablert = { -- typeee para type normal
            ["poke"] = 1,
            ["great"] = 2,
            ["super"] = 3,
            ["ultra"] = 5,
            ["vball"] = 3,
            ["premier"] = 6,
            ["magu"] = 6,
            ["sora"] = 6,
            ["yume"] = 6,
            ["dust"] = 6,
            ["tale"] = 6,
            ["moon"] = 6,
            ["net"] = 6,
            ["tinker"] = 6,
            ["fast"] = 6,
            ["heavy"] = 6,
            ["saffari"] = 6,
        }
        
        if tablert[typeee] < ballsTypesCatch[pokeTab.minBallType] then
            doPlayerSendTextMessage(cid, 20, "Você só pode capturar ".. name .." com ".. tableMinBall[pokeTab.minBallType] .." ou superior.")
            addEvent(doNotCapturePokemon, 3000, cid, name, typeee) 
            doSendMagicEffect(topos, fail)
            doRemoveItem(corpse, 1)
            return true
        end
        
        if playerPoints > pokeChance and not isShinyName(name) then
            
            local extraChance = (pokeChance - playerPoints) * -1
            
            if extraChance < 10 and pokeChance > 160 then
                --doPlayerSendTextMessage(cid, 20, "Sistema de persistência no catch ativado! Para mais informações, diga !persistencia")
            end
            
            local Eachpercent = math.ceil(extraChance * 0.6) -- 0.7 velocidade em q aumenta rate por ball
            
            playerPoints = playerPoints + (Eachpercent)     
            
        end
        
        local media = pokeTabMedia
        local finalRand = 0
        
        if media < 26 then
            local rand1 = math.random(1, pokeChance)
            local rand2 = math.random(1, pokeChance)
            local rand3 = math.random(1, pokeChance)
            finalRand = math.floor((rand1 + rand2 + rand3)* 1.1)
            
        elseif media >= 26 and media < 60 then
            
            local rand1 = math.random(1, pokeChance)
            local rand2 = math.random(1, pokeChance)
            local rand3 = math.random(1, pokeChance)
            finalRand = math.ceil((rand1 + rand2 + rand3)* 1.2)
            
        elseif media >= 60 and media <= 100 then
            
            local rand1 = math.random(1, pokeChance)
            local rand2 = math.random(1, pokeChance)
            local rand3 = math.random(1, pokeChance)
            local rand4 = math.random(1, pokeChance)
            finalRand = math.floor((rand1 + rand2 + rand3 + rand4)/1.35)
            
        elseif media > 100 and media <= 180 then
            
            local rand1 = math.random(1, pokeChance)
            local rand2 = math.random(1, pokeChance)
            local rand3 = math.random(1, pokeChance)
            local rand4 = math.random(1, pokeChance)
            local rand5 = math.random(1, pokeChance)
            finalRand = math.floor((rand1 + rand2 + rand3 + rand4 + rand5)/1.55)    
            
        elseif media > 180 and media <= 250 then
            
            local rand1 = math.random(1, pokeChance)
            local rand2 = math.random(1, pokeChance)
            local rand3 = math.random(1, pokeChance)
            local rand4 = math.random(1, pokeChance)
            local rand5 = math.random(1, pokeChance)
            local rand6 = math.random(1, pokeChance)
            finalRand = math.floor((rand1 + rand2 + rand3 + rand4 + rand5 + rand6)/1.65)
            
        elseif media > 250 and media <= 300 then
            
            local rand1 = math.random(1, pokeChance)
            local rand2 = math.random(1, pokeChance)
            local rand3 = math.random(1, pokeChance)
            local rand4 = math.random(1, pokeChance)
            local rand5 = math.random(1, pokeChance)
            local rand6 = math.random(1, pokeChance)
            finalRand = math.floor((rand1 + rand2 + rand3 + rand4 + rand5 + rand6)/1.70)
            
        elseif media > 300 and media <= 350 then
            
            local rand1 = math.random(1, pokeChance)
            local rand2 = math.random(1, pokeChance)
            local rand3 = math.random(1, pokeChance)
            local rand4 = math.random(1, pokeChance)
            local rand5 = math.random(1, pokeChance)
            local rand6 = math.random(1, pokeChance)
            finalRand = math.floor((rand1 + rand2 + rand3 + rand4 + rand5 + rand6)/1.75)
            
        elseif media > 350 and media <= 400 then
            
            local rand1 = math.random(1, pokeChance)
            local rand2 = math.random(1, pokeChance)
            local rand3 = math.random(1, pokeChance)
            local rand4 = math.random(1, pokeChance)
            local rand5 = math.random(1, pokeChance)
            local rand6 = math.random(1, pokeChance)
            finalRand = math.floor((rand1 + rand2 + rand3 + rand4 + rand5 + rand6)/1.78) -- 1.80
            
        elseif media > 400 and media <= 450 then
            
            local rand1 = math.random(1, pokeChance)
            local rand2 = math.random(1, pokeChance)
            local rand3 = math.random(1, pokeChance)
            local rand4 = math.random(1, pokeChance)
            local rand5 = math.random(1, pokeChance)
            local rand6 = math.random(1, pokeChance)
            finalRand = math.floor((rand1 + rand2 + rand3 + rand4 + rand5 + rand6)/1.82) -- 1.85
            
        else
            
            local rand1 = math.random(1, pokeChance)
            local rand2 = math.random(1, pokeChance)
            local rand3 = math.random(1, pokeChance)
            local rand4 = math.random(1, pokeChance)
            local rand5 = math.random(1, pokeChance)
            local rand6 = math.random(1, pokeChance)
            finalRand = math.floor((rand1 + rand2 + rand3 + rand4 + rand5 + rand6)/1.84) -- 1.9     
            
        end
        
        if getPlayerStorageValue(cid, 394672) >= 1 then
            doSendMagicEffect(topos, catch)
            addEvent(doCapturePokemon, 3000, cid, name, newid, nil, typeee, clevel)

            sendBrokesMsg(cid, newpokedexCatchXpMasterx[name].stoCatch , typeee, name, true) 
            setPlayerStorageValue(cid, newpokedexCatchXpMasterx[name].stoCatch, "normal = 0, great = 0, super = 0, ultra = 0, vball = 0, saffari = 0, dark = 0, magu = 0, sora = 0, yume = 0, dusk = 0, tale = 0, moon = 0, net = 0, premier = 0, tinker = 0, fast = 0, heavy = 0;")
            doIncreaseStatistics(name, true, true)

            doRemoveItem(corpse, 1)         
            return true     
        elseif typeee == "premier" then  -- premier ball
            local premierMedia = pokeTabMedia  
            local premierBase = 2        
            
            if name == "Magikarp" then
                premierMedia = 2
                premierBase = 1      
            elseif premierMedia <= 3 or isInArray({"Rattata", "Caterpie", "Weedle", "Pidgey", "Oddish", "Bellsprout"}, name) then
                premierMedia = 5 -- 2/5 de chance, melhor que 1/3 e menor que 1/2
                premierBase = 2
            elseif premierMedia >= 4 and premierMedia <= 6 then
                premierMedia = 6
                premierBase = 1
            elseif premierMedia >= 7 and premierMedia <= 10 then
                premierMedia = 10
                premierBase = 1
            end      
            
            local premierChance = math.random(1, premierMedia) 
            
            if premierChance <= premierBase then        
                doSendMagicEffect(topos, catch)
                addEvent(doCapturePokemon, 3000, cid, name, newid, nil, typeee, clevel)

                sendBrokesMsg(cid, newpokedexCatchXpMasterx[name].stoCatch , typeee, name, true) 
                setPlayerStorageValue(cid, newpokedexCatchXpMasterx[name].stoCatch, "normal = 0, great = 0, super = 0, ultra = 0, vball = 0, saffari = 0, dark = 0, magu = 0, sora = 0, yume = 0, dusk = 0, tale = 0, moon = 0, net = 0, premier = 0, tinker = 0, fast = 0, heavy = 0;")
                doIncreaseStatistics(name, true, true)

                doRemoveItem(corpse, 1)
                return true     
            end
        else
            -- doPlayerSendTextMessage(cid, 27, "playerPoints: "..playerPoints)
            -- doPlayerSendTextMessage(cid, 27, "finalRand: "..finalRand)
            if playerPoints > finalRand then
                doSendMagicEffect(topos, catch)
                addEvent(doCapturePokemon, 3000, cid, name, newid, nil, typeee, clevel) 

                sendBrokesMsg(cid, newpokedexCatchXpMasterx[name].stoCatch , typeee, name, true) 
                setPlayerStorageValue(cid, newpokedexCatchXpMasterx[name].stoCatch, "normal = 0, great = 0, super = 0, ultra = 0, vball = 0, saffari = 0, dark = 0, magu = 0, sora = 0, yume = 0, dusk = 0, tale = 0, moon = 0, net = 0, premier = 0, tinker = 0, fast = 0, heavy = 0;")
                doIncreaseStatistics(name, true, true)

        local status = {}
        status.gender = getItemAttribute(corpse, "gender")
        status.happy = 160

        doRemoveItem(corpse, 1)
        doSendMagicEffect(topos, catch)
        addEvent(doCapturePokemon, 3000, cid, name, newid, status, typeee)  
            return true
         end
      end
   end
end
    

function doCapturePokemon(cid, poke, ballid, status, typeee, clevel) 
    
    if not isCreature(cid) then
        return true
    end


    local depot = false        
    if getPlayerFreeCap(cid) >= 6 or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then 
        depot = true
    end

    item = doCreateItemEx(ballid) 

    local natureList = {"Hardy", "Lonely", "Brave", "Adamant", "Bold", "Docile", "Relaxad", "Impish", "Modest", "Mild", "Quiet", "Bashful", "Quirky", "Timid", "Hasty", "Serius", "Jolly"}
    local nature = natureList[math.random(#natureList)]
    local description = "Contains a "..poke.."."
    local gender = status.gender
    local happy = 200
    if not clevel or (clevel <= 1) then
        clevel = 1
    end

    doItemSetAttribute(item, "poke", poke)
    doItemSetAttribute(item, "nome", poke)  
    doItemSetAttribute(item, "gender", gender)
    doItemSetAttribute(item, "happy", happy)
    doItemSetAttribute(item, "color1", 0)
    doItemSetAttribute(item, "color2", 0)
    doItemSetAttribute(item, "color3", 0)
    doItemSetAttribute(item, "color4", 0)
    doItemSetAttribute(item, "addonNow", getOutfitPoke(poke))
    doItemSetAttribute(item, "hp", 1)
    doItemSetAttribute(item, "nature", nature)
    doItemSetAttribute(item, "iv", math.random(31)) 
    doItemSetAttribute(item, "ev", 0) 
    doItemSetAttribute(item, "exp", 0)
    doItemSetAttribute(item, "level", 1)
    doItemSetAttribute(item, "level", clevel)
    doItemSetAttribute(item, "fakedesc", description)
    doItemSetAttribute(item, "description", description)    
    doItemSetAttribute(item, "tadport", fotos[poke])
    doItemSetAttribute(item, "ballorder", getPlayerFreeCap(cid)+1)
    
    if poke == "Hitmonchan" or poke == "Shiny Hitmonchan" then 
        doItemSetAttribute(item, "hands", 0)
    end

    doItemSetAttribute(item, "morta", "no")   
    doItemSetAttribute(item, "boost", 0) 
    
    for _, oid in ipairs(getPlayersOnline()) do
        doPlayerSendChannelMessage(oid, "Catch System", "O jogador [".. getCreatureName(cid) .."] capturou um ["..poke.."] usando "..typeee.." ball.", TALKTYPE_CHANNEL_W, 10)
    end
    
    if pokeballs[poke:lower()] then
        doTransformItem(item, pokeballs[poke:lower()].on)   
    end 
    
    doPlayerSendTextMessage(cid, 27, "Parabéns, você pegou um ("..poke..")!")
    
    if #getCreatureSummons(cid) >= 1 then
        doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 173) 
    else
        doSendMagicEffect(getThingPos(cid), 173) 
    end
    
    -- if typeee == "master" then
        -- doItemSetAttribute(item, "unique", true) 
    -- elseif typeee == "premier" then
    --     doItemSetAttribute(item, "aura", "red")
    --     doPlayerSendTextMessage(cid, 27, "Utilize o comando !aura para trocar de aura")     
    -- end
    
    if depot then 
        local cidade = 1
        doPlayerSendPokeCPName(getCreatureName(cid), item, 1)
        doPlayerSendTextMessage(cid, 27, "Você já está segurando 6 pokemons ou não tem espaço na bag, por isso, esta pokebola foi enviada para o seu depósito.")
        if string.find(poke, "Shiny") then 
            db.executeQuery("UPDATE player_catchs SET pokemon_id = '".. poke .."', player_name = '".. getCreatureName(cid) .."' WHERE id = '1';")
        end
    else
        addPokeInFreeBag(getPlayerSlotItem(cid, 3).uid, item) 
        if string.find(poke, "Shiny") then 
            db.executeQuery("UPDATE player_catchs SET pokemon_id = '".. poke .."', player_name = '".. getCreatureName(cid) .."' WHERE id = '1';")
        end
    end
    doUpdatePokemonsBar(cid)
    
    if poke == tostring(getPlayerStorageValue(cid, catchModes.storage2)) and not hasCatched(cid) then
        setDailyCatched(cid, true)
        doPlayerSendTextMessage(cid, 27, "Daily Catch: Você terminou a missão! Volte para pegar sua recompensa!")
    end
    
--    local storage = newpokedex[poke].stoCatch 
--    sendBrokesMsg(cid, storage, typeee, poke, true) 
--    setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, dark = 0, magu = 0, sora = 0, yume = 0, dusk = 0, tale = 0, moon = 0, net = 0, premier = 0, tinker = 0, fast = 0, heavy = 0;")
--    doIncreaseStatistics(poke, true, true)
end

function doNotCapturePokemon(cid, poke, typeee) 
    
    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 = newpokedexCatchXpMasterx[poke].stoCatch

    if not string.find(getPlayerStorageValue(cid, storage), "vball") then
        setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, vball = 0, saffari = 0, dark = 0, magu = 0, sora = 0, yume = 0, dusk = 0, tale = 0, moon = 0, net = 0, premier = 0, tinker = 0, fast = 0, heavy = 0;")
    end
    doIncreaseStatistics(poke, true, false)
    -- sendBrokesMsg(cid, storage, ball, poke, false)
end

function getPlayerInfoAboutPokemon(cid, poke)
    poke = doCorrectString(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

local ballcatch = { --id normal, id da ball shiy
    [2394] = {cr = 1, on = 193, off = 192, ball = {11826, 11737}, send = 47, typeee = "poke", boost = "0"}, --alterado v1.9 \/
    [2391] = {cr = 3, on = 198, off = 197, ball = {11832, 11740}, send = 48, typeee = "great", boost = "0"},
    [2393] = {cr = 6, on = 202, off = 201, ball = {11835, 11743}, send = 46, typeee = "super", boost = "0"},
    [2392] = {cr = 8, on = 200, off = 199, ball = {11829, 11746}, send = 49, typeee = "ultra", boost = "0"},
    [19610] = {cr = 6, on = 1038, off = 1039, ball = {19613, 19613}, send = 105, typeee = "vball", boost = "0"},
    [12617] = {cr = 5, 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 = "master", boost = "50"},
    
    [15677] = {cr = 10, on = 313, off = 314, ball = {16181, 16204}, send = 72, typeee = "magu", boost = "0", type = {"fire", "ground"}},
    [15676] = {cr = 10, on = 316, off = 317, ball = {16182, 16205}, send = 73, typeee = "sora", boost = "0", type = {"ice", "flying"}},
    [15678] = {cr = 10, on = 320, off = 321, ball = {16183, 16206}, send = 74, typeee = "yume", boost = "0", type = {"normal", "psychic"}},
    [15680] = {cr = 10, on = 322, off = 323, ball = {16184, 16207}, send = 75, typeee = "dusk", boost = "0", type = {"rock", "fighting"}},
    [15673] = {cr = 10, on = 331, off = 332, ball = {16187, 16210}, send = 78, typeee = "tale", boost = "0", type = {"dragon", "fairy"}},
    [15674] = {cr = 10, on = 334, off = 335, ball = {16188, 16211}, send = 79, typeee = "moon", boost = "0", type = {"dark", "ghost"}},
    [15675] = {cr = 10, on = 337, off = 338, ball = {16189, 16212}, send = 80, typeee = "net", boost = "0", type = {"bug", "water"}},
    [15681] = {cr = 10, on = 346, off = 347, ball = {16192, 16215}, send = 83, typeee = "tinker", boost = "0", type = {"electric", "steel"}},
    
    [15679] = {cr = 3, on = 343, off = 344, ball = {16191, 16214}, send = 82, typeee = "premier", boost = "0"},
    
    [15682] = {cr = 10, on = 325, off = 326, ball = {16185, 16208}, send = 76, typeee = "fast", boost = "0", pokes = {"Shiny Dodrio", "Dodrio", "Shiny Arcanine", "Arcanine", "Pikachu", "Raichu", "Shiny Raichu", "Beedrill", "Shiny Beedrill"}},
    [15672] = {cr = 10, on = 328, off = 329, ball = {16186, 16209}, send = 77, typeee = "heavy", boost = "0", pokes = {"Snorlax", "Venusaur", "Blastoise", "Rhydon", "Shiny Snorlax", "Shiny Venusaur", "Shiny Blastoise", "Shiny Rhydon", "Graveler", "Golem", "Shiny Golem", "Lapras"}},
}

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 isInDuel(cid) then
    --     doPlayerSendCancel(cid, "Você não pode capturar nenhum pokémon enquanto está em duel.")
    --     return true
    -- end
    
    local name = string.lower(getItemAttribute(item2.uid, "poke"))
    name = string.gsub(name, "fainted ", "")
    name = string.gsub(name, "defeated ", "")
    name = doCorrectPokemonName(name)
    
    local smeargleID = 5
    if name:find("Smeargle") then
        smeargleID = string.sub(name, 9, 10)
        name = "Smeargle"
    end
    -- local x = pokecatchesMasterx[name]
    
    -- if not x then return true end
    
    local storage = newpokedexCatchXpMasterx[name].stoCatch 
    
    if type(getPlayerStorageValue(cid, storage)) ~= "string" or not string.find(getPlayerStorageValue(cid, storage), "magu") then --alterado v1.9 
        setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, vball = 0, saffari = 0, dark = 0, magu = 0, sora = 0, yume = 0, dusk = 0, tale = 0, moon = 0, net = 0, premier = 0, tinker = 0, fast = 0, heavy = 0;") --alterado v1.9 
    end 
    
    local owner = getItemAttribute(item2.uid, "corpseowner")
    local pOwner = getPlayerByName(owner)
    local isInParyWithPlayer = false
    if isInParty(cid) and isInParty(pOwner) then
        isInParyWithPlayer = isPartyEquals(pOwner, cid)
    end

    -- doSendMsg(cid, owner)

    if owner and isCreature(pOwner) and isPlayer(pOwner) and cid ~= pOwner and not isInParyWithPlayer then 
        doPlayerSendCancel(cid, "Desculpa. Isso não é possivel.")
        return true
    end
    
    local newidd = isShinyName(name) and ballcatch[item.itemid].ball[2] or ballcatch[item.itemid].ball[1] --alterado v1.9 
    local typeee = ballcatch[item.itemid].typeee
    local boost = ballcatch[item.itemid].boost  
    
    local catchBlocks = {"Moltres", "Articuno", "Zapdos", "Aerodactyl", "Kabutops", "Kabuto", "Hitmonlee", "Hitmonchan", "Hitmontop", "Omastar", "Omanyte"}
    if isInArray(catchBlocks, name) then
        doSendMsg(cid, "Você não pode capturar este pokemon.")
        return true
    end
    
    if typeee == "master" and isShinyName(name) then
        doSendMsg(cid, "Você não pode capturar pokemon shiny com a master ball.")
        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 = newidd 
    catchinfo.name = doCorrectPokemonName(name)
    catchinfo.topos = topos
    catchinfo.clevel = tonumber(getItemAttribute(item2.uid, "level"))
    -- catchinfo.chance = 2500
    -- catchinfo.chance = x.chance
    
    doBrokesCount(cid, newpokedexCatchXpMasterx[doCorrectPokemonName(name)].stoCatch , typeee)
    
    doSendDistanceShoot(getThingPos(cid), topos, ballcatch[item.itemid].send)
    doRemoveItem(item.uid, 1)
    
    local d = getDistanceBetween(getThingPos(cid), topos)


    if not getTopCorpse(topos) then
        return true
    end
    doItemSetAttribute(getTopCorpse(topos).uid, "catching", 1)
    
    
    setPlayerStorageValue(cid, 423512, 1)
    addEvent(function() if isCreature(cid) then setPlayerStorageValue(cid, 423512, -1) end end, 1500)
    addEvent(doSendPokeBall, d * 70 + 100 - (d * 14) , cid, catchinfo, false, false, typeee, smeargleID) 
    addEvent(doSendMagicEffect, (d * 70 + 100 - (d * 14)) - 100, topos, 3)
    return true
end
 


 

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Ghaz
      Fala pessoal tudo bem?
       
      Estou com dificuldades em um script e preciso da ajuda dos magos do LUA rs.
       
      Tenho um script que quando o player morre (onDeath), ele faz algumas coisas e depois ele chama uma função que deveria retornar uma table (array) para eu fazer o for com o ipairs certinho. Segue abaixo o código:
       
       
      Segue abaixo a função getPlayersInArea:
       
       
      Acontece que no código de cima (do primeiro spoiler) eu dou um print no retorno da função getPlayersInArea, porém ela não tá me retornando a table, tá me retornando só: 2
       
       
       
      Alguém consegue me ajudar em, como raios eu faço a função retornar a lista de players ao invés da quantidade? Acredito que ta retornando o count da table, e não os itens do array.
       
       
      Agradeço desde já, valeu tchurma!
    • Por yurirzu
      Olá tenho uma duvida, eu peguei um base de pokemon e estou desenvolvendo um servidor de digimon, entao peguei um pokemon para criar um digimon, ja fiz alteraçoes e esta tudo ok, porem quando eu dou catch no digimon ele volta a ser pokemon exemplo:
       
      Criançao na base de um Caterpie e agora é Botamon
      Capiturei um Botamon porem dps quando invoco ele vira um Caterpie dnv
    • Por Arthasz Walker
      Olá à todos da comunidade, primeiramente quero pedir desculpas caso eu tenha criado o tópico na sessão errada, eu ainda não sei bem como funciona as sessões (rs).

      Então, eu estou aqui para pedir ajuda com um script que eu retirei daqui do fórum para implementar no meu servidor e eu queria que ele ficasse de uma forma mais legal e competitiva, segue o script:
      Catch System por Skill

      O que eu venho pedir é o seguinte, atualmente no sistema ele não verifica se você já capturou o pokémon, possibilitando assim que uma pessoa possa capturar vários pokémons do mesmo e ainda sim subir a skill.
      (Exemplo: Caso um player capture 10 rattatas ele irá continuar upando, pois não tem verificação se o player já capturou aquele pokemon).

      O que eu queria é que somente no primeiro caught de cada pokémon ele recebesse uma porcentagem para upar o skill, e também se possível queria que as rates de cada pokémon fosse diferente, pois, creio que ficaria meio injusto um rattata dando 20% de skill de caught e um shiny também dando o mesmo 20%.

      Quem puder me ajudar ficarei bastante agradecido.
    • Por Lucas Barreto
      Meu servidor de poketibia esta acusando esse erro, constantemente:
       
      E esse tambem: (quando coloco com ip na VPS da isso, quando uso no meu PC com 127.0.0.1 fica sem esse erro)
      Se puderem me ajudar, fico grato.
      Segue os arquivos citados nos erros
      Goback.lua
      Catch System.lua
       
    • Por MagmaRoox
      Fala galera do TK, venho aqui mais uma vez pedir a ajuda de algum camarada legal rs
      Então, quando eu vou compilar as sources de um servidor, dá o seguinte erro no final.
      Alguém saberia como resolver? ajudem-me, minha VPS chega amanhã e o servidor não compila  
       

       
      REP+  !!

      Nem sei se poder dar UP agora... mas eu preciso muuuito de ajuda tenham piedaaade
      @UPPPPP !!!

      UPPP!!!!!!
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo