Ir para conteúdo
  • 0

Ajuda nessa linha do script?


wevertonvrb

Pergunta

gente é o seguinte tem essa linha no script

Deixando Assim >> catchinfo.catch = ballcatch[item.itemid].on      100%Funcional executa apenas o on

Deixando Assim >> catchinfo.catch = ballcatch[item.itemid].on2      100%Funcional executa apenas o on2
OBS: SE EU DEIXAR AS DUAS LINHAS IRA EXECUTAR APENAS 1 DAS 2 LINHAS
esclarecendo tambem que o
on é um efeito e o on2 outro efeito quero que seja executado 1 efeito e depois outro após o termino do primeiro

Quero alterar o final da linha e não estou conseguindo
quero que após executar o on execute em seguida o on2 talvez tenha que colocar um timer

já tentei das seguintes formas mas nem uma deu certo
catchinfo.catch = ballcatch[item.itemid].on,on2

catchinfo.catch = ballcatch[item.itemid].(on,on2)
catchinfo.catch = ballcatch[item.itemid].on.on2
catchinfo.catch = ballcatch[item.itemid].[on.on2]

catchinfo.catch = ballcatch[item.itemid].on+on2

catchinfo.catch = ballcatch[item.itemid].on and on2




esse é o local do script
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
     
e essa é a parte que executa o local
addEvent(doSendPokeBall, d * 70 + 100 - (d * 14) , cid, catchinfo, false, false, typeee)

e essa é a parte que o local chama

local ballcatch = {                   
[2394] = {cr = 2, on = 193, on2 = 10, off = 192, ball = {11826, 11737}, send = 47, typeee = "normal", boost = "0"},


 

 

 

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

Nunca vai funcionar isso, tu ta atribuindo diferentes valores a uma mesma variavel seguidamente, afinal o que tu quer fazer, é soltar um effect extra quando capturar?

Link para o comentário
Compartilhar em outros sites

  • 0
19 horas atrás, dalvorsn disse:

Nunca vai funcionar isso, tu ta atribuindo diferentes valores a uma mesma variavel seguidamente, afinal o que tu quer fazer, é soltar um effect extra quando capturar?

sim é soltar um efeito extra

 

9 horas atrás, Poccnn disse:

Em primeiro ato: 

.!.

 

Segundo ato:

Posta o script completo. 

rsrsrs poh man sei q vc tb me ama, aquela parada la do timer eu consegui arrumar nem sei como mas consegui, aqui esta o script enteiro

 

Spoiler

 

local ballcatch = {                    --id normal, id da ball shiy

[2394] = {cr = 2, on = 193, on2 = 10, off = 192, ball = {11826, 11737}, send = 47, typeee = "normal", boost = "0"},  --alterado v1.9  \/

[2391] = {cr = 6, on = 198, on2 = 10, off = 197, ball = {11832, 11740}, send = 48, typeee = "great", boost = "0"},

[2393] = {cr = 10, on = 202, on2 = 10, off = 201, ball = {11835, 11743}, send = 46, typeee = "super", boost = "0"},

[2392] = {cr = 15, on = 200, on2 = 10, off = 199, ball = {11829, 11746}, send = 49, typeee = "ultra", boost = "0"},

[12617] = {cr = 6, on = 204, on2 = 10, off = 203, ball = {10975, 12621}, send = 35, typeee = "saffari", boost = "0"},

[12832] = {cr = 100000, on = 23, on2 = 10, off = 24, ball = {12826, 12829}, send = 181, typeee = "dark", boost = "50"},

[15129] = {cr = 100000, on = 23, on2 = 10, off = 24, ball = {12826, 12829}, send = 181, typeee = "flash", boost = "50"},

}

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 Swampert", "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  --alterado v1.9

   setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, dark = 0;, dark = 0;, flash = 0;")             --alterado v1.9

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] --alterado v1.9       

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  --alterado v1.9

   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

 

Link para o comentário
Compartilhar em outros sites

  • 0
23 horas atrás, Poccnn disse:

Gazela, preciso verificar essa função doSendPokeBall

 

AQUI ESTA O SYSTEMA

 

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 = "normal", v = 0},

{b = "great", v = 0},

{b = "super", v = 0},

{b = "ultra", v = 0},

{b = "saffari", v = 0},

{b = "master", v = 0},

{b = "vip", v = 0},

{b = "flash", v = 0},

}

for _, e in ipairs(tb) do

    if e.b == ball then

       e.v = 1

       break

    end

end

local string = getPlayerStorageValue(cid, str)

local t = "normal = (.-), vip = (.-), flash = (.-), great = (.-), super = (.-), ultra = (.-), saffari = (.-), master = (.-);"

local t2 = ""

for n, g, s, u, s2, d, vp, fl in string:gmatch(t) do

    t2 = "normal = "..(n+tb[1].v)..", great = "..(g+tb[2].v)..", super = "..(s+tb[3].v)..", ultra = "..(u+tb[4].v)..", saffari = "..(s2+tb[5].v)..", master = "..(d+tb[6].v)..", vip = "..(vp+tb[7].v)..", flash = "..(fl+tb[8].v)..";"    

end

return setPlayerStorageValue(cid, str, string:gsub(t, t2))

end

function sendBrokesMsg(cid, str, ball)

if not isCreature(cid) then return false end

local string = getPlayerStorageValue(cid, str)

local t = "normal = (.-), vip = (.-), flash = (.-), great = (.-), super = (.-), ultra = (.-), saffari = (.-), master = (.-);"

local msg = {}

table.insert(msg, "You have wasted: ")

for n, g, s, u, s2, d, vp, fl in string:gmatch(t) do

    if tonumber(n) and tonumber(n) > 0 then

       table.insert(msg, tostring(n).." Poke ball".. (tonumber(n) > 1 and "s" or ""))

    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 ""))

    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 ""))

    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 ""))

    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 ""))

    end

    if tonumber(d) and tonumber(d) > 0 then

       table.insert(msg, (#msg > 1 and ", " or "").. tostring(d).." Master ball".. (tonumber(d) > 1 and "s" or ""))

    end

    if tonumber(vp) and tonumber(vp) > 0 then

       table.insert(msg, (#msg > 1 and ", " or "").. tostring(vp).." Vip ball".. (tonumber(vp) > 1 and "s" or ""))

    end

    if tonumber(fl) and tonumber(fl) > 0 then

       table.insert(msg, (#msg > 1 and ", " or "").. tostring(fl).." Flash ball".. (tonumber(fl) > 1 and "s" or ""))

    end

end

if #msg == 1 then

   return true

end

if string.sub(msg[#msg], 1, 1) == "," then

   msg[#msg] = " and".. string.sub(msg[#msg], 2, #msg[#msg])

end

table.insert(msg, " trying to catch it.")

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

end                                                             --alterado v1.9 /\

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

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

       rate = 85

    end

    local corpse = getTopCorpse(topos).uid

    if not isCreature(cid) then

        doSendMagicEffect(topos, CONST_ME_POFF)

    return true

    end

    doItemSetAttribute(corpse, "catching", 1)

local level = getItemAttribute(corpse, "level") or 0

local levelChance = 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 = 500

        doRemoveItem(corpse, 1)

        doSendMagicEffect(topos, catch)

        addEvent(doCapturePokemon, 3000, cid, name, newid, status, typeee)  

    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 = 500

    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, 3000, cid, name, newid, status, typeee)

    else

        addEvent(doNotCapturePokemon, 3000, cid, name, typeee)

        doSendMagicEffect(topos, fail)

    end

end

function doCapturePokemon(cid, poke, ballid, status, typeee)  

    if not isCreature(cid) then

    return true

    end

    

local list = getCatchList(cid)

    if not isInArray(list, poke) and not isShinyName(poke) then    

       doPlayerAddSoul(cid, 1)

    end

    doAddPokemonInOwnList(cid, poke)

    doAddPokemonInCatchList(cid, poke)

if pokes[poke] then

 local test = io.open("data/catch.txt", "a+")

 local read = ""

 if test then

  read = test:read("*all")

  test:close()

 end

 if string.find(poke, "Shiny") then

  read = read.."\n\n\nName: "..getCreatureName(cid).." - Pokémon: "..poke..""

 else

  read = read.."\nName: "..getCreatureName(cid).." - Pokémon: "..poke..""

 end

 if newpokedex[poke].stoCatch ~= -1 then

 local t = "normal = (.-), great = (.-), super = (.-), ultra = (.-), saffari = (.-), vip = (.-), flash = (.-), master = (.-);"

 local msg = {}

 storage = getPlayerStorageValue(cid, newpokedex[poke].stoCatch)

for n, g, s, u, s2, d, vp, fl in storage:gmatch(t) do

     if tonumber(n) and tonumber(n) > 0 then

        table.insert(msg, tostring(n).." Poke ball".. (tonumber(n) > 1 and "s" or ""))

     end

     if tonumber(g) and tonumber(g) > 0 then

        table.insert(msg, (#msg > 1 and ", " or "").. tostring(g).." Vip ball".. (tonumber(g) > 1 and "s" or ""))

     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 ""))

     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 ""))

     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 ""))

     end

     if tonumber(d) and tonumber(d) > 0 then

        table.insert(msg, (#msg > 1 and ", " or "").. tostring(d).." Master ball".. (tonumber(d) > 1 and "s" or ""))

     end

     if tonumber(vp) and tonumber(vp) > 0 then

        table.insert(msg, (#msg > 1 and ", " or "").. tostring(vp).." Vip ball".. (tonumber(vp) > 1 and "s" or ""))

     end

      if tonumber(fl) and tonumber(fl) > 0 then

        table.insert(msg, (#msg > 1 and ", " or "").. tostring(fl).." Flash ball".. (tonumber(fl) > 1 and "s" or ""))

     end

 end

 read = read.." - "..table.concat(msg)..""

 end

 local reopen = io.open("data/catch.txt", "w")

 reopen:write(read)

 reopen:close()

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

    if icons[poke] then

       ballid = icons[poke].on

    end    

    

local description = "Contains a "..poke.."."

local gender = status.gender

local happy = 200

                                                   --alterado v1.9  \/                  

        if (getPlayerFreeCap(cid) >= 6 and not isInArray({5, 6}, getPlayerGroupId(cid))) or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then

           item = doCreateItemEx(ballid)

        else

            item = addItemInFreeBag(getPlayerSlotItem(cid, 3).uid, ballid, 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    

           doItemSetAttribute(item, "hands", 0)

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

 doItemSetAttribute(item, "Icone", "yes")

 doItemSetAttribute(item, "ball", "Icone")    

 --doTransformItem(item, icons[getItemAttribute(item, "poke")].on)

        end

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

 doItemSetAttribute(item, "Icone", "yes")

 doItemSetAttribute(item, "ball", "Icone")    

 --doTransformItem(item, icons[getItemAttribute(item, "poke")].on)

        ----------- task clan ---------------------

        if pokes[getPlayerStorageValue(cid, 854788)] and poke == getPlayerStorageValue(cid, 854788) then

           sendMsgToPlayer(cid, 27, "Quest Done!")

           doItemSetAttribute(item, "unique", getCreatureName(cid))  

           doItemSetAttribute(item, "task", 1)

           setPlayerStorageValue(cid, 854788, 'done')

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

 doItemSetAttribute(item, "Icone", "yes")

 doItemSetAttribute(item, "ball", "Icone")    

 --doTransformItem(item, icons[getItemAttribute(item, "poke")].on)

        end        

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

 doItemSetAttribute(item, "Icone", "yes")

 doItemSetAttribute(item, "ball", "Icone")    

 --doTransformItem(item, icons[getItemAttribute(item, "poke")].on)

        -------------------------------------------                                  --alterado v1.9 \/

    if getPlayerFreeCap(cid) >= 6 then   

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

 doItemSetAttribute(item, "Icone", "yes")

 doItemSetAttribute(item, "ball", "Icone")    

 --doTransformItem(item, icons[getItemAttribute(item, "poke")].on)

        doPlayerSendMailByName(getCreatureName(cid), item, 1)    

 --doTransformItem(item, icons[getItemAttribute(item, "poke")].on)

        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.")  

        doPlayerSendTextMessage(cid, 27, "Digite !save para evitar perdas!")  

    end

    

     for _, oid in ipairs(getPlayersOnline()) do

doPlayerSendChannelMessage(oid,getCreatureName(cid),"[Catch Channel] O Jogador [".. getCreatureName(cid) .."] Capturou um ["..poke.."]!.", TALKTYPE_CHANNEL_W, 7)

end

    

    local storage = newpokedex[poke].stoCatch

    sendBrokesMsg(cid, storage, typeee)             

    setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, master = 0, vip = 0, flash = 0;") --alterado v1.9 /\

    if #getCreatureSummons(cid) >= 1 then

        doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 6) -- efeito spóas pegar o pokemon só mudar

            if catchMakesPokemonHappier then

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

                   if useOTClient then

                doCreatureExecuteTalkAction(cid, "!save")

    end

            end

    else

        doSendMagicEffect(getThingPos(cid), 6) -- efeito spóas pegar o pokemon só mudar

    end

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 = newpokedex[poke].stoCatch

doBrokesCount(cid, storage, typeee)   

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

 

 

 

 

 

E AQUI ESTA O SCRIPT QUE QUERO QUE ALTERE

 

Spoiler

 

local ballcatch = {                    --id normal, id da ball shiy

[2394] = {cr = 2, on = 193, on2 = 10, off = 192, ball = {11826, 11737}, send = 47, typeee = "normal", boost = "0"},  --alterado v1.9  \/

[2391] = {cr = 6, on = 198, on2 = 10, off = 197, ball = {11832, 11740}, send = 48, typeee = "great", boost = "0"},

[2393] = {cr = 10, on = 202, on2 = 10, off = 201, ball = {11835, 11743}, send = 46, typeee = "super", boost = "0"},

[2392] = {cr = 15, on = 200, on2 = 10, off = 199, ball = {11829, 11746}, send = 49, typeee = "ultra", boost = "0"},

[12617] = {cr = 6, on = 204, on2 = 10, off = 203, ball = {10975, 12621}, send = 35, typeee = "saffari", boost = "0"},

[12832] = {cr = 100000, on = 23, on2 = 10, off = 24, ball = {12826, 12829}, send = 181, typeee = "dark", boost = "50"},

[15129] = {cr = 100000, on = 23, on2 = 10, off = 24, ball = {12826, 12829}, send = 181, typeee = "flash", boost = "50"},

}

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 Swampert", "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  --alterado v1.9

   setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, dark = 0;, dark = 0;, flash = 0;")             --alterado v1.9

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] --alterado v1.9       

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  --alterado v1.9

   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

 

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

  • 0

Em baixo dessa linha:

Citar

catchinfo.catch = ballcatch[item.itemid].on

 

Adiciona isso:

Citar

catchinfo.catch = ballcatch[item.itemid].on2

 

Testa.

Link para o comentário
Compartilhar em outros sites

  • 0
Em 10/05/2016 at 12:13, Poccnn disse:

Em baixo dessa linha:

 

Adiciona isso:

 

Testa.

sem erro porem esta executando apenas o on2

ou seja a segunda linha

 

tera que criar uma função que execute o on2 apos 1 segundo do on ser execudato (configuravel)

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

  • 0

Foi mal, erro meu, era para adicionar isso:

Citar

catchinfo.catch2 = ballcatch[item.itemid].on2

 

Agora no script de system, embaixo disso:

Citar

local catch = catchinfo.catch

 

Adiciona isso:

Citar

local catch2 = catchinfo.catch

 

Dentro desse escopo:

Citar

  if doCatch then
        doSendMagicEffect(topos, catch)
       

 

Adiciona isso:

Citar

addEvent(doSendMagicEffect, 1000, topos, catch2)

 

Se não der certo, vai na pasta do ot server, seleciona ela e clica em shift+delete

Problema resolvido.

Link para o comentário
Compartilhar em outros sites

  • 0

Não estou conseguindo editar o post.

Usa essa variável aqui ao invés da que eu declarei acima.

Citar

local catch2 = catchinfo.catch2

 

Link para o comentário
Compartilhar em outros sites

  • 0
3 horas atrás, Poccnn disse:

Foi mal, erro meu, era para adicionar isso:

 

Agora no script de system, embaixo disso:

 

Adiciona isso:

 

Dentro desse escopo:

 

Adiciona isso:

 

Se não der certo, vai na pasta do ot server, seleciona ela e clica em shift+delete

Problema resolvido.

 

não deu erro mas tambem não mudou nada, continua da mesma forma executando apenas o On e ignorando o On2

 

 

 

deixei os scripts assim

action

 

Spoiler

 

local ballcatch = {                    --id normal, id da ball shiy

[2394] = {cr = 2, on = 193, on2 = 10, off = 192, ball = {11826, 11737}, send = 47, typeee = "normal", boost = "0"},  --alterado v1.9  \/

[2391] = {cr = 6, on = 198, on2 = 10, off = 197, ball = {11832, 11740}, send = 48, typeee = "great", boost = "0"},

[2393] = {cr = 10, on = 202, on2 = 10, off = 201, ball = {11835, 11743}, send = 46, typeee = "super", boost = "0"},

[2392] = {cr = 15, on = 200, on2 = 10, off = 199, ball = {11829, 11746}, send = 49, typeee = "ultra", boost = "0"},

[12617] = {cr = 6, on = 204, on2 = 10, off = 203, ball = {10975, 12621}, send = 35, typeee = "saffari", boost = "0"},

[12832] = {cr = 100000, on = 23, on2 = 10, off = 24, ball = {12826, 12829}, send = 181, typeee = "dark", boost = "50"},

[15129] = {cr = 100000, on = 23, on2 = 10, off = 24, ball = {12826, 12829}, send = 181, typeee = "flash", boost = "50"},

}

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 Swampert", "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  --alterado v1.9

   setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, dark = 0;, dark = 0;, flash = 0;")             --alterado v1.9

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] --alterado v1.9       

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.catch2 = ballcatch[item.itemid].on2

      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  --alterado v1.9

   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

 

 

 

 

system

 

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 = "normal", v = 0},

{b = "great", v = 0},

{b = "super", v = 0},

{b = "ultra", v = 0},

{b = "saffari", v = 0},

{b = "master", v = 0},

{b = "vip", v = 0},

{b = "flash", v = 0},

}

for _, e in ipairs(tb) do

    if e.b == ball then

       e.v = 1

       break

    end

end

local string = getPlayerStorageValue(cid, str)

local t = "normal = (.-), vip = (.-), flash = (.-), great = (.-), super = (.-), ultra = (.-), saffari = (.-), master = (.-);"

local t2 = ""

for n, g, s, u, s2, d, vp, fl in string:gmatch(t) do

    t2 = "normal = "..(n+tb[1].v)..", great = "..(g+tb[2].v)..", super = "..(s+tb[3].v)..", ultra = "..(u+tb[4].v)..", saffari = "..(s2+tb[5].v)..", master = "..(d+tb[6].v)..", vip = "..(vp+tb[7].v)..", flash = "..(fl+tb[8].v)..";"    

end

return setPlayerStorageValue(cid, str, string:gsub(t, t2))

end

function sendBrokesMsg(cid, str, ball)

if not isCreature(cid) then return false end

local string = getPlayerStorageValue(cid, str)

local t = "normal = (.-), vip = (.-), flash = (.-), great = (.-), super = (.-), ultra = (.-), saffari = (.-), master = (.-);"

local msg = {}

table.insert(msg, "You have wasted: ")

for n, g, s, u, s2, d, vp, fl in string:gmatch(t) do

    if tonumber(n) and tonumber(n) > 0 then

       table.insert(msg, tostring(n).." Poke ball".. (tonumber(n) > 1 and "s" or ""))

    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 ""))

    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 ""))

    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 ""))

    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 ""))

    end

    if tonumber(d) and tonumber(d) > 0 then

       table.insert(msg, (#msg > 1 and ", " or "").. tostring(d).." Master ball".. (tonumber(d) > 1 and "s" or ""))

    end

    if tonumber(vp) and tonumber(vp) > 0 then

       table.insert(msg, (#msg > 1 and ", " or "").. tostring(vp).." Vip ball".. (tonumber(vp) > 1 and "s" or ""))

    end

    if tonumber(fl) and tonumber(fl) > 0 then

       table.insert(msg, (#msg > 1 and ", " or "").. tostring(fl).." Flash ball".. (tonumber(fl) > 1 and "s" or ""))

    end

end

if #msg == 1 then

   return true

end

if string.sub(msg[#msg], 1, 1) == "," then

   msg[#msg] = " and".. string.sub(msg[#msg], 2, #msg[#msg])

end

table.insert(msg, " trying to catch it.")

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

end                                                             --alterado v1.9 /\

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

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 catch2 = catchinfo.catch2

    local fail = catchinfo.fail

    

    local rate = catchinfo.rate

    local basechance = catchinfo.chance

    

    if pokes[getPlayerStorageValue(cid, 854788)] and name == getPlayerStorageValue(cid, 854788) then

       rate = 85

    end

    local corpse = getTopCorpse(topos).uid

    if not isCreature(cid) then

        doSendMagicEffect(topos, CONST_ME_POFF)

    return true

    end

    doItemSetAttribute(corpse, "catching", 1)

local level = getItemAttribute(corpse, "level") or 0

local levelChance = 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 = 500

        doRemoveItem(corpse, 1)

        doSendMagicEffect(topos, catch)

        addEvent(doCapturePokemon, 3000, cid, name, newid, status, typeee)  

    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 = 500

    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(doSendMagicEffect, 1000, topos, catch2)

        addEvent(doCapturePokemon, 3000, cid, name, newid, status, typeee)

        

    else

        addEvent(doNotCapturePokemon, 3000, cid, name, typeee)

        doSendMagicEffect(topos, fail)

    end

end

function doCapturePokemon(cid, poke, ballid, status, typeee)  

    if not isCreature(cid) then

    return true

    end

    

local list = getCatchList(cid)

    if not isInArray(list, poke) and not isShinyName(poke) then    

       doPlayerAddSoul(cid, 1)

    end

    doAddPokemonInOwnList(cid, poke)

    doAddPokemonInCatchList(cid, poke)

if pokes[poke] then

 local test = io.open("data/catch.txt", "a+")

 local read = ""

 if test then

  read = test:read("*all")

  test:close()

 end

 if string.find(poke, "Shiny") then

  read = read.."\n\n\nName: "..getCreatureName(cid).." - Pokémon: "..poke..""

 else

  read = read.."\nName: "..getCreatureName(cid).." - Pokémon: "..poke..""

 end

 if newpokedex[poke].stoCatch ~= -1 then

 local t = "normal = (.-), great = (.-), super = (.-), ultra = (.-), saffari = (.-), vip = (.-), flash = (.-), master = (.-);"

 local msg = {}

 storage = getPlayerStorageValue(cid, newpokedex[poke].stoCatch)

for n, g, s, u, s2, d, vp, fl in storage:gmatch(t) do

     if tonumber(n) and tonumber(n) > 0 then

        table.insert(msg, tostring(n).." Poke ball".. (tonumber(n) > 1 and "s" or ""))

     end

     if tonumber(g) and tonumber(g) > 0 then

        table.insert(msg, (#msg > 1 and ", " or "").. tostring(g).." Vip ball".. (tonumber(g) > 1 and "s" or ""))

     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 ""))

     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 ""))

     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 ""))

     end

     if tonumber(d) and tonumber(d) > 0 then

        table.insert(msg, (#msg > 1 and ", " or "").. tostring(d).." Master ball".. (tonumber(d) > 1 and "s" or ""))

     end

     if tonumber(vp) and tonumber(vp) > 0 then

        table.insert(msg, (#msg > 1 and ", " or "").. tostring(vp).." Vip ball".. (tonumber(vp) > 1 and "s" or ""))

     end

      if tonumber(fl) and tonumber(fl) > 0 then

        table.insert(msg, (#msg > 1 and ", " or "").. tostring(fl).." Flash ball".. (tonumber(fl) > 1 and "s" or ""))

     end

 end

 read = read.." - "..table.concat(msg)..""

 end

 local reopen = io.open("data/catch.txt", "w")

 reopen:write(read)

 reopen:close()

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

    if icons[poke] then

       ballid = icons[poke].on

    end    

    

local description = "Contains a "..poke.."."

local gender = status.gender

local happy = 200

                                                   --alterado v1.9  \/                  

        if (getPlayerFreeCap(cid) >= 6 and not isInArray({5, 6}, getPlayerGroupId(cid))) or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then

           item = doCreateItemEx(ballid)

        else

            item = addItemInFreeBag(getPlayerSlotItem(cid, 3).uid, ballid, 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    

           doItemSetAttribute(item, "hands", 0)

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

 doItemSetAttribute(item, "Icone", "yes")

 doItemSetAttribute(item, "ball", "Icone")    

 --doTransformItem(item, icons[getItemAttribute(item, "poke")].on)

        end

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

 doItemSetAttribute(item, "Icone", "yes")

 doItemSetAttribute(item, "ball", "Icone")    

 --doTransformItem(item, icons[getItemAttribute(item, "poke")].on)

        ----------- task clan ---------------------

        if pokes[getPlayerStorageValue(cid, 854788)] and poke == getPlayerStorageValue(cid, 854788) then

           sendMsgToPlayer(cid, 27, "Quest Done!")

           doItemSetAttribute(item, "unique", getCreatureName(cid))  

           doItemSetAttribute(item, "task", 1)

           setPlayerStorageValue(cid, 854788, 'done')

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

 doItemSetAttribute(item, "Icone", "yes")

 doItemSetAttribute(item, "ball", "Icone")    

 --doTransformItem(item, icons[getItemAttribute(item, "poke")].on)

        end        

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

 doItemSetAttribute(item, "Icone", "yes")

 doItemSetAttribute(item, "ball", "Icone")    

 --doTransformItem(item, icons[getItemAttribute(item, "poke")].on)

        -------------------------------------------                                  --alterado v1.9 \/

    if getPlayerFreeCap(cid) >= 6 then   

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

 doItemSetAttribute(item, "Icone", "yes")

 doItemSetAttribute(item, "ball", "Icone")    

 --doTransformItem(item, icons[getItemAttribute(item, "poke")].on)

        doPlayerSendMailByName(getCreatureName(cid), item, 1)    

 --doTransformItem(item, icons[getItemAttribute(item, "poke")].on)

        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.")  

        doPlayerSendTextMessage(cid, 27, "Digite !save para evitar perdas!")  

    end

    

     for _, oid in ipairs(getPlayersOnline()) do

doPlayerSendChannelMessage(oid,getCreatureName(cid),"[Catch Channel] O Jogador [".. getCreatureName(cid) .."] Capturou um ["..poke.."]!.", TALKTYPE_CHANNEL_W, 7)

end

    

    local storage = newpokedex[poke].stoCatch

    sendBrokesMsg(cid, storage, typeee)             

    setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, master = 0, vip = 0, flash = 0;") --alterado v1.9 /\

    if #getCreatureSummons(cid) >= 1 then

        doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 6) -- efeito spóas pegar o pokemon só mudar

            if catchMakesPokemonHappier then

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

                   if useOTClient then

                doCreatureExecuteTalkAction(cid, "!save")

    end

            end

    else

        doSendMagicEffect(getThingPos(cid), 6) -- efeito spóas pegar o pokemon só mudar

    end

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 = newpokedex[poke].stoCatch

doBrokesCount(cid, storage, typeee)   

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 wevertonvrb
Link para o comentário
Compartilhar em outros sites

  • 0

Põe isso:

Citar

addEvent(doSendMagicEffect, 1000, topos, catch2)

 

Dentro desse escopo:

Citar

if rate >= totalChance then
        local status = {}
              status.gender = getItemAttribute(corpse, "gender")
              status.happy = 500

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

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...