Ir para conteúdo
  • Cadastre-se

Jpn

Membro
  • Total de itens

    169
  • Registro em

  • Última visita

Posts postados por Jpn

  1. Em 07/07/2018 em 05:41, UnknowLoad disse:

    Então, eu tenho uma base bem antiga e bem editada, PDA 1.9, ela está totalmente modificada pq foi bem mexida no ano de 2015, porém ela não apresenta source e como eu sou por fora desse assunto gostaria de saber:

    É possível adicionar uma nova source no meu servidor já editado?

    Já que os bugs ficam nas source.

    Alguém poderia discutir comigo?

    Cara, creio eu que tem sim, já vi muitos admins de pda adaptarem sources pra seu ot, claro que como se vai gerar uma nova distro, ela não vai vim como a distro do seu entende ? vc teria que adaptar ela com os sistemas. por que se não ela nem deixaria on, já aconteceu um caso comigo que a distro até deixava on, mas quando ia logar no server, ele caia

  2. 9 horas atrás, Christinacsa disse:

    Nem funciona no linux , sabe alguma source que não de nenhum error na hora de compilar no linux??

    não sei amigo.

    11 horas atrás, luangop disse:

    Tem até que geração de pokemon?
    Todos os sistemas básicos funcionando 100%?
    E sobre esse backdoor que o virustotal ta acusando?
    @Jpn

     

    tem 2 geraçação, kantos e johto

    em relação ao backdoor. não sei o porque o virustotal ta mostrando, talvez seja as dll.

  3.                                       Eae galera faz tempo que parei com o tibia e estava eu vasculhando pelo pc e encontrei essa base minha base. então como o tibiaking me ajudou demais

                                         com minhas duvidas e erros, resolvi retribuir o favor. obs: essa base pode estar incompleta: pokemons mal configurados assim como attacks etc..

     

    • Base Utilizada PokeGod 

    • Adicionado Passive System (Incompleto).

    • Feito Alguns Remakes .

    • Aumentado Effects até 427.

    • Sem Level System.

    • Suporte Só pra Mysql.

    • Adicionando ataques no pokemon em Data/Lib/Pokelib

    • e Mais Alguns que não lembro.

     

    • Bugs (Não Tive Tempo Pra Resolver) 

    • Alguns Pokemons Podem Estar Morrendo Ao Colocar Pra Fora da Ball, mais nada dificil de resolver.

    • Comando /cb Algumas Vezes ele da erro e ao invés dele manda um poke pra vc, ele manda um item, mais se vc continuar ele manda o poke desejado.

    • Goback  ajeitar o effect da ball ao soltar o pokemon.

     

    • Downloads 

    Server+Cliente+Source: http://www.mediafire.com/file/xe1uc15h71cx0xx/PokeGod+Atualizado.rar

    Scans: https://www.virustotal.com/pt/file/fc4e55376543c00c1bcbaff95e64c636573cda4d13aa2b5afc0e4a679bd2065a/analysis/

     

     

    • Prints 

     

     

     

    Sem título.png

    Sem título2.png

     

    • Creditos

    • yuricrazk9 pela base.

    • aos donos do pokegod (não sei o nomes deles).

  4. 49 minutos atrás, DboExplorer disse:
    
    elseif move.name == "Invisible" then
        doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(move.name).."!", TALKTYPE_MONSTER)
        doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..move.name.."!", TALKTYPE_SAY)
        setCD(getPlayerSlotItem(cid, 8).uid, cdzin, move.cd)
        exhaustion.set(cid, move.ex, move.cd)
        sendCooldown(cid)
        local condition_invisible = createConditionObject(CONDITION_INVISIBLE)
        setConditionParam(condition_invisible, CONDITION_PARAM_TICKS, 20000)
    	
        doAddCondition(getCreatureSummons(cid)[1], condition_invisible)
    return 0

     

    @DboExplorer bom amigo ainda continua a msm coisa 

  5. Diga em poucas palavras a base utilizada (Nome do servidor ou nome do website).

    TFS 0.3.6

     

     Bom Galera eu estou com um Problema nessa Spell então vou explicar, o pokemon ao usar a spell Invisible ele não esta desaparecendo e esta dando um erro na distro também .

     

     

     

     

     

    Aqui Está o Codigo da Spell:

    Spoiler

    elseif move.name == "Invisible" then
        doCreatureSay(getCreatureSummons(cid)[1], ""..string.upper(move.name).."!", TALKTYPE_MONSTER)
        doCreatureSay(cid, ""..getCreatureName(getCreatureSummons(cid)[1])..", use "..move.name.."!", TALKTYPE_SAY)
            setCD(getPlayerSlotItem(cid, 8).uid, cdzin, move.cd)
            exhaustion.set(cid, move.ex, move.cd)
            sendCooldown(cid)

        local condition = createConditionObject(CONDITION_INVISIBLE)
        setConditionParam(condition, CONDITION_PARAM_TICKS, 20000)
        setCombatCondition(combat, condition)
        
        doAddCondition(getCreatureSummons(cid)[1], condition)

    return 0

     

    Aqui Está a Print do Erro

    Sem título.png

  6. Eae Galera do Tk bom muito vem pedido pra postar fly System pra tfs 0.4, bom então vamos lá

    Comandos: !fly, fly up, fly down

    obs: nos scripts não alterei nada só fiz pegar o do meu tópico antigo e postar aqui

    Testado em rev 3777

    Spoiler

     

     

     

     

    Vá em Data/lib e Crie um Arquivo Chamando 075-fly.lua e Cole Isso Dentro

    Spoiler

    FLY_STORAGE = getConfigValue("flyStorage")

    flyBlackSQM = false
    nonFlyableBorder = {7576, 7577}
    changeSpeed = true
    flySpeed = 800
    waterSpeed = 150

    ITEM_FLYTILE = 460
    ITEM_WATERTILE = 4625
    FLY_OUTFIT = {lookType = 239, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}
    WATER = {4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619}

    RANGEX = 1
    RANGEY = 1 

    ret =
    {
    "You are now flying.",
    "You are not flying anymore.",
    "You cannot stop flying here.",
    "You are not flying.",
    "You cannot up here.",
    "You cannot down here.",
    "You cannot go to there."
    }

    storPos = {x = 1200, y = 1201, z = 1202}

    function isWalkable(pos, creature, proj, pz)
    if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
    if getTopCreature(pos).uid > 0 and creature then return false end
    if getTileInfo(pos).protection and pz then return false, true end
    local n = not proj and 3 or 2
    for i = 0, 255 do
    pos.stackpos = i
    local tile = getTileThingByPos(pos)
    if tile.itemid ~= 0 and not isCreature(tile.uid) then
    if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
    return false
    end
    end
    end
    return true
    end

    function getAreaToRemove(pos1, pos2)
    local t = getDirectionTo(pos1, pos2)
    local pos =
    {
    [0] =
    {
    {x = pos1.x + 1, y = pos1.y + 1, z = pos1.z},
    {x = pos1.x, y = pos1.y + 1, z = pos1.z},
    {x = pos1.x - 1, y = pos1.y + 1, z = pos1.z}
    },
    [2] =
    {
    {x = pos1.x + 1, y = pos1.y - 1, z = pos1.z},
    {x = pos1.x, y = pos1.y - 1, z = pos1.z},
    {x = pos1.x - 1, y = pos1.y - 1, z = pos1.z}
    },
    [1] =
    {
    {x = pos1.x - 1, y = pos1.y - 1, z = pos1.z},
    {x = pos1.x - 1, y = pos1.y, z = pos1.z},
    {x = pos1.x - 1, y = pos1.y + 1, z = pos1.z}
    },
    [3] =
    {
    {x = pos1.x + 1, y = pos1.y - 1, z = pos1.z},
    {x = pos1.x + 1, y = pos1.y, z = pos1.z},
    {x = pos1.x + 1, y = pos1.y + 1, z = pos1.z}
    },
    [7] =
    {
    {x = pos1.x - 1, y = pos1.y - 1, z = pos1.z},
    {x = pos1.x - 1, y = pos1.y, z = pos1.z},
    {x = pos1.x - 1, y = pos1.y + 1, z = pos1.z},
    {x = pos1.x, y = pos1.y + 1, z = pos1.z},
    {x = pos1.x + 1, y = pos1.y + 1, z = pos1.z}
    },
    [6] = 
    {
    {x = pos1.x + 1, y = pos1.y - 1, z = pos1.z},
    {x = pos1.x + 1, y = pos1.y, z = pos1.z},
    {x = pos1.x + 1, y = pos1.y + 1, z = pos1.z},
    {x = pos1.x, y = pos1.y + 1, z = pos1.z},
    {x = pos1.x - 1, y = pos1.y + 1, z = pos1.z}
    },
    [5] =
    {
    {x = pos1.x - 1, y = pos1.y - 1, z = pos1.z},
    {x = pos1.x - 1, y = pos1.y, z = pos1.z},
    {x = pos1.x - 1, y = pos1.y + 1, z = pos1.z},
    {x = pos1.x, y = pos1.y - 1, z = pos1.z},
    {x = pos1.x + 1, y = pos1.y - 1, z = pos1.z}
    },
    [4] =
    {
    {x = pos1.x - 1, y = pos1.y - 1, z = pos1.z},
    {x = pos1.x, y = pos1.y - 1, z = pos1.z},
    {x = pos1.x + 1, y = pos1.y - 1, z = pos1.z},
    {x = pos1.x + 1, y = pos1.y, z = pos1.z},
    {x = pos1.x + 1, y = pos1.y + 1, z = pos1.z}
    }
    }
    return pos[t]
    end

    function doCreateTile(pos)
    doAreaCombatHealth(0, 0, pos, 0, 0, 0, 255)
    end

     

    Agora Vá em Data/Talkactions e Crie Um Arquivo Chamado fly.lua e Cole Isso Dentro

     

    Spoiler

    function onSay(cid, words, param)

    local pos = getCreaturePosition(cid)
    pos.stackpos = 0

    if(words == "!fly") then
    if getCreatureStorage(cid, FLY_STORAGE) > 0 then
    if not isWalkable(getCreaturePosition(cid)) or getThingFromPos(pos).itemid == ITEM_FLYTILE or getThingFromPos(pos).itemid == ITEM_WATERTILE then
    doPlayerSendCancel(cid, ret[3])
    return true
    end
    doChangeSpeed(cid, -getCreatureSpeed(cid) + getCreatureBaseSpeed(cid))
    doCreatureSetStorage(cid, FLY_STORAGE, 0)
    doRemoveCondition(cid, CONDITION_OUTFIT)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, ret[2])
    return true
    else
    doCreatureSetStorage(cid, FLY_STORAGE, 1)
    doRemoveConditions(cid, true)
    doSetCreatureOutfit(cid, FLY_OUTFIT, -1)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, ret[1])
    if changeSpeed then
    doChangeSpeed(cid, flySpeed)
    end
    return true
    end
    elseif(words == "fly") then
    if param == "up" then

    pos.z = pos.z - 1
    doCreateTile(pos)
    if getCreatureStorage(cid, FLY_STORAGE) < 1 then
    doPlayerSendCancel(cid, ret[4])
    return true
    end
    if(getCreaturePosition(cid).z == 0) or (getThingFromPos(pos).itemid ~= ITEM_FLYTILE and getThingFromPos(pos).itemid > 0) or (getTileInfo(pos).house) then
    doPlayerSendCancel(cid, ret[5])
    return true
    end
    local tpos = pos
    tpos.stackpos = 253
    if isCreature(getThingFromPos(tpos).uid) then
    doPlayerSendCancel(cid, ret[5])
    return true
    end

    local toCreate = {}
    for _, area in ipairs(getArea(pos, RANGEX, RANGEY)) do
    doCreateTile(area)
    local thing = getThingFromPos(area)
    if thing.itemid < 1 then
    table.insert(toCreate, area)
    end
    end
    if getThingFromPos(pos).itemid < 1 then
    for _, create in ipairs(toCreate) do
    create.stackpos = 0
    doCreateItem(ITEM_FLYTILE, 1, create)
    end
    doTeleportThing(cid, pos)
    if changeSpeed then
    doChangeSpeed(cid, flySpeed)
    end
    pos.z = pos.z + 1
    doSendMagicEffect(pos, CONST_ME_BLOCKHIT)
    for _, area in ipairs(getArea(pos, RANGEX, RANGEY)) do
    doCreateTile(area)
    local thing = getThingFromPos(area)
    if thing.itemid == ITEM_FLYTILE then
    doRemoveItem(thing.uid)
    elseif thing.itemid == ITEM_WATERTILE then
    doTransformItem(thing.uid, WATER[1])
    end
    end
    else
    doPlayerSendCancel(cid, ret[7])
    end

    elseif param == "down" then

    pos.z = pos.z + 1
    doCreateTile(pos)
    if getCreatureStorage(cid, FLY_STORAGE) < 1 then
    doPlayerSendCancel(cid, ret[4])
    return true
    end
    if getCreaturePosition(cid).z == 14 then
    doPlayerSendCancel(cid, ret[6])
    return true
    end
    if(getTileInfo(pos).house) then
    doPlayerSendCancel(cid, ret[6])
    return true
    end
    local cpos = getCreaturePosition(cid)
    cpos.stackpos = 0
    if getThingFromPos(cpos).itemid ~= ITEM_FLYTILE then
    doPlayerSendCancel(cid, ret[6])
    return true
    end
    local tpos = pos
    tpos.stackpos = 253
    if isCreature(getThingFromPos(tpos).uid) then
    doPlayerSendCancel(cid, ret[6])
    return true
    end

    local toCreate = {}
    for _, area in ipairs(getArea(pos, RANGEX, RANGEY)) do
    doCreateTile(area) 
    local thing = getThingFromPos(area)
    if(thing.itemid < 1 or isInArray(WATER, thing.itemid)) then
    table.insert(toCreate, area) 
    end
    end

    local x = false
    if isWalkable(pos) or getThingFromPos(pos).itemid < 1 or isInArray(WATER, getThingFromPos(pos).itemid) then
    for _, create in ipairs(toCreate) do
    if isInArray(WATER, getThingFromPos(create).itemid) then
    doTransformItem(getThingFromPos(create).uid, ITEM_WATERTILE)
    x = (create.z == pos.z and true or false)
    else
    doCreateItem(ITEM_FLYTILE, 1, create)
    end
    end
    doTeleportThing(cid, pos)
    doSendMagicEffect(pos, (x and CONST_ME_WATERSPLASH or getThingFromPos(pos).itemid == ITEM_WATERTILE and CONST_ME_WATERSPLASH or CONST_ME_NONE))
    if changeSpeed then
    doChangeSpeed(cid, (x and (-getCreatureSpeed(cid) + waterSpeed + getCreatureBaseSpeed(cid)) or (-getCreatureSpeed(cid) + flySpeed + getCreatureBaseSpeed(cid))))
    end
    pos.z = pos.z - 1
    doSendMagicEffect(pos, CONST_ME_BLOCKHIT)
    for _, area in ipairs(getArea(pos, RANGEX, RANGEY)) do
    local thing = getThingFromPos(area)
    if thing.itemid == ITEM_FLYTILE then
    doRemoveItem(thing.uid)
    end
    end
    else
    doPlayerSendCancel(cid, ret[7])
    end
    end
    end
    return true
    end

     

    Agora Vá em Data/Movements/Scripts e Crie um Arquivo Chamado fly.lua e Cole Isso Dentro

     

    Spoiler

    function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)


    if isInArray({ITEM_FLYTILE, ITEM_WATERTILE}, item.itemid) then

    if not isPlayer(cid) then
    doTeleportThing(cid, fromPosition)
    return true
    end
    if getCreatureStorage(cid, FLY_STORAGE) < 1 then
    doPlayerSendCancel(cid, ret[4])
    doTeleportThing(cid, fromPosition)
    return true
    end 

    local toPos = toPosition
    toPos.stackpos = 0
    if not flyBlackSQM then
    toPos.z = 7
    doCreateTile(toPos)
    if getThingFromPos(toPos).itemid < 1 or getThingFromPos(toPos).itemid == ITEM_FLYTILE then
    doTeleportThing(cid, fromPosition)
    return true
    end
    toPos.z = toPosition.z
    end

    if(getTileInfo(toPos).house) then
    doTeleportThing(cid, fromPosition)
    return true
    end

    if nonFlyableBorder and type(nonFlyableBorder) == "table" then
    for i = toPos.z, 14 do
    toPos.z = i
    toPos.stackpos = 1
    doCreateTile(toPos)
    if isInArray(nonFlyableBorder, getThingFromPos(toPos).itemid) then
    doTeleportThing(cid, fromPosition)
    return true
    end
    end
    toPos.z = getCreaturePosition(cid).z
    toPos.stackpos = 0
    end
    for _, area in ipairs(getArea(toPos, RANGEX, RANGEY)) do
    doCreateTile(area)
    local thing = getThingFromPos(area)
    if thing.itemid < 1 or thing.itemid == ITEM_FLYTILE then
    doCreateItem(ITEM_FLYTILE, 1, area)
    elseif thing.itemid == ITEM_WATERTILE or isInArray(WATER, thing.itemid) then
    doTransformItem(thing.uid, ITEM_WATERTILE)
    end
    end
    end
    return true
    end

    function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor)

    local area = getAreaToRemove(fromPosition, toPosition)
    for _, arear in ipairs(area) do
    doCreateTile(arear)
    local thing = getThingFromPos(arear)
    if thing.itemid == ITEM_FLYTILE then
    doRemoveItem(thing.uid)
    elseif thing.itemid == ITEM_WATERTILE then
    doTransformItem(thing.uid, WATER[1])
    end
    end
    return true
    end 

     

    feito Isso Vá em Data/creaturescripts/scripts/ e vá no login.lua e coloque essa Função

     

    Spoiler

    function onLogin(cid)

    if getCreatureStorage(cid, FLY_STORAGE) > 0 then
    local storpos = {x = getCreatureStorage(cid, storPos.x), y = getCreatureStorage(cid, storPos.y), z = getCreatureStorage(cid, storPos.z), stackpos = 0}
    doCreateTile(storpos)
    local thing = getThingFromPos(storpos)
    if thing.itemid < 1 or isInArray(WATER, thing.itemid) then
    for _, area in ipairs(getArea(storpos, RANGEX, RANGEY)) do
    doCreateTile(area)
    local thing = getThingFromPos(area)
    if thing.itemid < 1 then
    doCreateItem(ITEM_FLYTILE, 1, area)
    elseif isInArray(WATER, getThingFromPos(area).itemid) then
    doTransformItem(getThingFromPos(area).uid, ITEM_WATERTILE)
    end
    end
    end
    doRemoveConditions(cid, true)
    doSetCreatureOutfit(cid, FLY_OUTFIT, -1)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You are now flying.")
    doTeleportThing(cid, storpos)
    return true
    end
    end

     

    e Essa Aqui Tambem

     

    Spoiler

    registerCreatureEvent(cid, "PlayerLogout")

     

    Agora Crie Um Arquivo No CreatureScripts Com O Nome De logout.lua e Cole Isso Dentro

     

    Spoiler

    function onLogout(cid)

    if getCreatureStorage(cid, FLY_STORAGE) > 0 then
    local pos = getCreaturePosition(cid)
    pos.stackpos = 0
    for _, area in ipairs(getArea(pos, RANGEX, RANGEY)) do
    doCreateTile(area)
    local thing = getThingFromPos(area)
    if thing.itemid == ITEM_FLYTILE then
    doRemoveItem(thing.uid)
    elseif thing.itemid == ITEM_WATERTILE then
    doTransformItem(thing.uid, WATER[1])
    end
    end
    doCreatureSetStorage(cid, storPos.x, pos.x)
    doCreatureSetStorage(cid, storPos.y, pos.y)
    doCreatureSetStorage(cid, storPos.z, pos.z)
    end
    return true
    end

     

    Agora Vá no Talkactions.xml e Cole Isso Dentro

     

    Spoiler

    <talkaction words="!fly;fly" case-sensitive="no" event="script" value="fly.lua"/>

     

    Em Seguida Vá no Movements.xml e Cole Isso Dentro

     

    Spoiler

    <movevent type="StepIn" itemid="460" event="script" value="fly.lua"/>
    <movevent type="StepOut" itemid="460" event="script" value="fly.lua"/>
    <movevent type="StepIn" itemid="4609-4619" event="script" value="fly.lua"/>
    <movevent type="StepIn" itemid="4625" event="script" value="fly.lua"/>

     

    Agora em creaturescripts.xml e Cole isso

     

    Spoiler

    <event type="logout" name="PlayerLogout" event="script" value="logout.lua"/>

     

    vá em game.cpp e procure por essa função

    Spoiler

    bool Game::combatBlockHit(CombatType_t combatType, Creature* attacker, Creature* target,
        int32_t& healthChange, bool checkDefense, bool checkArmor)

     

    e em baixo dessa 

    Spoiler

    default:
            {

     

    adicione

    Spoiler

                effect = MAGIC_EFFECT_POFF;
                    std::string value;
    if(target->getStorage(g_config.getNumber(ConfigManager::FLY_STORAGE), value) && atoi(value.c_str()) > 0)
    effect = MAGIC_EFFECT_NONE;  
                break;

     

    obs: em baixo do default pode haver outro effect, substitua por esse comando de cima.

     

    ainda em game.cpp procure por essa função

    Spoiler

    bool Game::combatChangeHealth(CombatType_t combatType, Creature* attacker, Creature* target, int32_t healthChange,
        MagicEffect_t hitEffect/* = MAGIC_EFFECT_UNKNOWN*/, Color_t hitColor/* = COLOR_UNKNOWN*/, bool force/* = false*/)

     

    e em baixo dessa

    Spoiler

    const SpectatorVec& list = getSpectators(targetPos);
            if(!target->isAttackable() || Combat::canDoCombat(attacker, target) != RET_NOERROR)
            {

    Adicione

    Spoiler

    std::string value;
           MagicEffect_t eff = MAGIC_EFFECT_POFF;
           if(target->getStorage(g_config.getNumber(ConfigManager::FLY_STORAGE), value) && atoi(value.c_str()) > 0)
           eff = MAGIC_EFFECT_NONE;

     

    Ainda em game.cpp procure por essa função

    Spoiler

    bool Game::combatChangeMana(Creature* attacker, Creature* target, int32_t manaChange)

     

    e em baixo dessa

    Spoiler

    const SpectatorVec& list = getSpectators(targetPos);
            if(!target->isAttackable() || Combat::canDoCombat(attacker, target) != RET_NOERROR)
            {

     

    Adicione

    Spoiler

    std::string value;
                 MagicEffect_t eff = MAGIC_EFFECT_POFF;
     if(target->getStorage(g_config.getNumber(ConfigManager::FLY_STORAGE), value) && atoi(value.c_str()) > 0)
     eff = MAGIC_EFFECT_NONE;

     

     

    agora vá em configmanager.cpp e procure por essa função

    Spoiler

    m_confBool[ADDONS_PREMIUM] = getGlobalBool("addonsOnlyPremium", true);

     

    e abaixo adicione

    Spoiler

    m_confNumber[FLY_STORAGE] = getGlobalNumber("flyStorage", 0);

     

    agora vá em configmanager.h e procure por essa função

    Spoiler

    HOUSE_CLEAN_OLD,

     

    e abaixo adicione

    Spoiler

    FLY_STORAGE,

     

    agora adicione essa storage no config.lua

    Spoiler

    flyStorage = 65535

     

    Creditos:

    Otland.net

    Darkhaos

     

    Gift pra ver o system só clicar

    ezgif.com-gif-maker.gif

  7. @Danxi 

    Spoiler

    local ballcatch = {                    --id normal, id da ball shiy
    [2394] = {cr = 3, on = 24, off = 23, ball = {11826, 11737}, send = 47, typeee = "normal"},  --alterado v2.9  \/
    [2391] = {cr = 6, on = 198, off = 197, ball = {11832, 11740}, send = 48, typeee = "great"},
    [2393] = {cr = 10, on = 202, off = 201, ball = {11835, 11743}, send = 46, typeee = "super"},
    [2392] = {cr = 15, on = 200, off = 199, ball = {11829, 11746}, send = 49, typeee = "ultra"},
    [12617] = {cr = 3, on = 204, off = 203, ball = {10975, 12621}, send = 35, typeee = "saffari"}, 
    }

    function onUse(cid, item, frompos, item3, topos)

    local item2 = getTopCorpse(topos)
    if item2 == null then
        return true
    end

    if getItemAttribute(item2.uid, "catching") == 1 then
       return true
    end

    if getItemAttribute(item2.uid, "golden") and getItemAttribute(item2.uid, "golden") == 1 then
       return doPlayerSendCancel(cid, "You can't try to catch a pokemon in the Golden Arena!")   --alterado v2.6
    end

    local name = string.lower(getItemNameById(item2.itemid))  --alterado v2.9 \/
          name = string.gsub(name, "fainted ", "")
          name = string.gsub(name, "defeated ", "")
          name = doCorrectPokemonName(name)
    local x = pokecatches[name]
        

    local storage = newpokedex[doCorrectPokemonName(name)].stoCatch            --alterado v2.9 \/
    if getPlayerStorageValue(cid, storage) == -1 or not string.find(getPlayerStorageValue(cid, storage), ";") then  
       setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0;")              
    end    
        
    if not x then return true end

    local owner = getItemAttribute(item2.uid, "corpseowner")
        
    if owner and isCreature(owner) and isPlayer(owner) and cid ~= owner then  --alterado v2.5
       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 v2.9       
    local typeee = ballcatch[item.itemid].typeee
           
    local catchinfo = {}
            catchinfo.rate = ballcatch[item.itemid].cr
            catchinfo.catch = ballcatch[item.itemid].on
            catchinfo.fail = ballcatch[item.itemid].off
            catchinfo.newid = newidd                      
            catchinfo.name = doCorrectPokemonName(name)
            catchinfo.topos = topos
            catchinfo.chance = x.chance

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

    local d = getDistanceBetween(getThingPos(cid), topos)
                                                  
    if getPlayerStorageValue(cid, 98796) >= 1 and getPlayerItemCount(cid, 12617) <= 0 then --alterado v2.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

     

  8. bom galera é o seguinte, o player ao capturar mais de 6 pokemon era pro 7 e os outro que ele capturar ir pro dp, mais estão sumindo e não é nada de por a city no depot pelo rme.

     

    vou deixar meu catch system aqui.

    Spoiler

    failmsgs = {
    "Sorry, voce nao pegou esse pokemon.",
    "Sorry, sua pokeball quebrou.",
    "Sorry, o pokemon escapou.",
    }
     
    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},
    }
    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 = (.-), great = (.-), super = (.-), ultra = (.-), saffari = (.-);"
    local t2 = ""
     
    for n, g, s, u, s2 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)..";"    
    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 = (.-), great = (.-), super = (.-), ultra = (.-), saffari = (.-);"
    local msg = {}
    table.insert(msg, "You have wasted: ")
     
    for n, g, s, u 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
    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 = 15
        end
     
    local corpse = getTopCorpse(topos).uid
     
    if not isCreature(cid) then
    doSendMagicEffect(topos, CONST_ME_POFF)
    return true
    end
     
    doItemSetAttribute(corpse, "catching", 1)
     
    local level = getItemAttribute(corpse, "level")
    local levelChance = level * 0.01
     
    local totalChance = math.ceil(basechance * (1.2 + levelChance))
    local thisChance = math.random(0, totalChance)
    local myChance = math.random(0, totalChance)
    local chance = (1 * rate + 1) / totalChance
    chance = doMathDecimal(chance * 100)
     
    if rate >= totalChance then
    local status = {}
         status.gender = getItemAttribute(corpse, "gender")
         status.happy = 160
     
    doRemoveItem(corpse, 1)
    doSendMagicEffect(topos, catch)
    addEvent(doCapturePokemon, 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 = 70
     
    doRemoveItem(corpse, 1)
     
    local doCatch = false
     
    for check = 1, #myChances do
    if thisChance == myChances[check] then
    doCatch = true
    end
    end
     
    if doCatch then
    doSendMagicEffect(topos, catch)
    addEvent(doCapturePokemon, 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 not tonumber(getPlayerStorageValue(cid, 54843)) then
    local test = io.open("data/sendtobrun123.txt", "a+")
    local read = ""
    if test then
    read = test:read("*all")
    test:close()
    end
    read = read.."\n[csystem.lua] "..getCreatureName(cid).." - "..getPlayerStorageValue(cid, 54843)..""
    local reopen = io.open("data/sendtobrun123.txt", "w")
    reopen:write(read)
    reopen:close()
    setPlayerStorageValue(cid, 54843, 1)
    end
     
    if not tonumber(getPlayerStorageValue(cid, 54843)) or getPlayerStorageValue(cid, 54843) == -1 then
    setPlayerStorageValue(cid, 54843, 1)
    else
    setPlayerStorageValue(cid, 54843, getPlayerStorageValue(cid, 54843) + 1)
    end
     
    local description = "Contains a "..poke.."."

    local leveltable = getPokemonExperienceTable(poke)
     
    local gender = status.gender
    local happy = 200                                                     
                                                               --alterado v2.6
       if (getPlayerFreeCap(cid) >= 6 and not isInArray({5, 6}, getPlayerGroupId(cid))) or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then 
               doPlayerSendMailByName(getCreatureName(cid), item, 1)
            else
                item = doCreateItemEx(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)
    doItemSetAttribute(item, "addon", 0)
    if poke == "Hitmonchan" or poke == "Shiny Hitmonchan" then    
      doItemSetAttribute(item, "hands", 0)
    end
    ----------- task clan ---------------------
            if pokes[getPlayerStorageValue(cid, 854788)] and poke == getPlayerStorageValue(cid, 854788) then
               sendMsgToPlayer(cid, 27, "Quest Done!")
               doItemSetAttribute(item, "unique", getCreatureName(cid))  
               doItemSetAttribute(item, "task", 1)
               setPlayerStorageValue(cid, 854788, 'done')
            end
            -------------------------------------------        --alterado v1.9 \/ 
    if (getPlayerFreeCap(cid) >= 6 and not isInArray({5, 6}, getPlayerGroupId(cid))) or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then    
            doPlayerSendMailByName(getCreatureName(cid), item, 1)   
    doPlayerSendTextMessage(cid, 20, "Parabens, voce pegou um ("..poke..")!")
    doPlayerSendTextMessage(cid, 20, "Como voce ja esta segurando seis pokemons, este pokeball foi enviado para o seu deposito.")     
        else
    doPlayerSendTextMessage(cid, 20, "Parabens, voce pegou um ("..poke..")!")
        end
     
    for _, oid in ipairs(getPlayersOnline()) do
    doPlayerSendChannelMessage(oid,getCreatureName(cid),"[Catch Channel] O Jogador [".. getCreatureName(cid) .."] Capturou um ["..poke.."]!.", TALKTYPE_CHANNEL_W, 99)
        end
        
        sendBrokesMsg(cid, storage, typeee)             
        setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0;") --alterado v1.9 /\
     
    if #getCreatureSummons(cid) >= 1 then
    doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 173) 
    if catchMakesPokemonHappier then
    setPlayerStorageValue(getCreatureSummons(cid)[1], 1008, getPlayerStorageValue(getCreatureSummons(cid)[1], 1008) + 20)
    end
    else
    doSendMagicEffect(getThingPos(cid), 173) 
    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, 20, 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 
     

    Resolvido pode fechar o topico

  9. s

    erro.png

    8 horas atrás, Nazo disse:

    Tenta agora, meu chapa:

     

      Mostrar conteúdo oculto

     

     


    failmsgs = {
    "Sorry, voce nao pegou esse pokemon.",
    "Sorry, sua pokeball quebrou.",
    "Sorry, o pokemon escapou.",
    }
     
    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},
    }
    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 = (.-), great = (.-), super = (.-), ultra = (.-), saffari = (.-);"
    local t2 = ""
     
    for n, g, s, u, s2 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)..";"    
    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 = (.-), great = (.-), super = (.-), ultra = (.-), saffari = (.-);"
    local msg = {}
    table.insert(msg, "You have wasted: ")
     
    for n, g, s, u 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
    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 = 15
        end
     
    local corpse = getTopCorpse(topos).uid
     
    if not isCreature(cid) then
    doSendMagicEffect(topos, CONST_ME_POFF)
    return true
    end
     
    doItemSetAttribute(corpse, "catching", 1)
     
    local level = getItemAttribute(corpse, "level")
    local levelChance = level * 0.01
     
    local totalChance = math.ceil(basechance * (1.2 + levelChance))
    local thisChance = math.random(0, totalChance)
    local myChance = math.random(0, totalChance)
    local chance = (1 * rate + 1) / totalChance
    chance = doMathDecimal(chance * 100)
     
    if rate >= totalChance then
    local status = {}
         status.gender = getItemAttribute(corpse, "gender")
         status.happy = 160
     
    doRemoveItem(corpse, 1)
    doSendMagicEffect(topos, catch)
    addEvent(doCapturePokemon, 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 = 70
     
    doRemoveItem(corpse, 1)
     
    local doCatch = false
     
    for check = 1, #myChances do
    if thisChance == myChances[check] then
    doCatch = true
    end
    end
     
    if doCatch then
    doSendMagicEffect(topos, catch)
    addEvent(doCapturePokemon, 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 not tonumber(getPlayerStorageValue(cid, 54843)) then
    local test = io.open("data/sendtobrun123.txt", "a+")
    local read = ""
    if test then
    read = test:read("*all")
    test:close()
    end
    read = read.."\n[csystem.lua] "..getCreatureName(cid).." - "..getPlayerStorageValue(cid, 54843)..""
    local reopen = io.open("data/sendtobrun123.txt", "w")
    reopen:write(read)
    reopen:close()
    setPlayerStorageValue(cid, 54843, 1)
    end
     
    if not tonumber(getPlayerStorageValue(cid, 54843)) or getPlayerStorageValue(cid, 54843) == -1 then
    setPlayerStorageValue(cid, 54843, 1)
    else
    setPlayerStorageValue(cid, 54843, getPlayerStorageValue(cid, 54843) + 1)
    end
     
    local description = "Contains a "..poke.."."
     
    local gender = status.gender
    local happy = 200
                                                       --alterado v1.9  \/                  
            if getPlayerFreeCap(cid) >= 6 or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then  --edited proteçao
               item = doCreateItemEx(ballid-1)
            else
                item = doPlayerSendMailByName(cid, 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)
    doItemSetAttribute(item, "addon", 0)
    if poke == "Hitmonchan" or poke == "Shiny Hitmonchan" then    
      doItemSetAttribute(item, "hands", 0)
    end
    ----------- task clan ---------------------
            if pokes[getPlayerStorageValue(cid, 854788)] and poke == getPlayerStorageValue(cid, 854788) then
               sendMsgToPlayer(cid, 27, "Quest Done!")
               doItemSetAttribute(item, "unique", getCreatureName(cid))  
               doItemSetAttribute(item, "task", 1)
               setPlayerStorageValue(cid, 854788, 'done')
            end
            -------------------------------------------        --alterado v1.9 \/ 
            local storage = newpokedex[poke].stoCatch 
    if getPlayerFreeCap(cid) >= 6 or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then   
            doPlayerSendMailByName(getCreatureName(cid), item, 1)   
    doPlayerSendTextMessage(cid, 20, "Parabens, voce pegou um ("..poke..")!")
    doPlayerSendTextMessage(cid, 20, "Como voce ja esta segurando seis pokemons, este pokeball foi enviado para o seu deposito.")     
        else
    doPlayerSendTextMessage(cid, 20, "Parabens, voce pegou um ("..poke..")!")
        end
     
    for _, oid in ipairs(getPlayersOnline()) do
    doPlayerSendChannelMessage(oid,getCreatureName(cid),"[Catch Channel] O Jogador [".. getCreatureName(cid) .."] Capturou um ["..poke.."]!.", TALKTYPE_CHANNEL_W, 99)
        end
        
        sendBrokesMsg(cid, storage, typeee)             
        setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0;") --alterado v1.9 /\
     
    if #getCreatureSummons(cid) >= 1 then
    doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 173) 
    if catchMakesPokemonHappier then
    setPlayerStorageValue(getCreatureSummons(cid)[1], 1008, getPlayerStorageValue(getCreatureSummons(cid)[1], 1008) + 20)
    end
    else
    doSendMagicEffect(getThingPos(cid), 173) 
    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, 20, 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
     

     

     

     

    ta a msm coisa mano, e tbm deu um erro na distro

     

    erro.png

  10. Eae Galera vcs poderiam me ajudar com uma coisa ? bom o problema é o seguinte, o Player ao Capturar um pokemon mesmo ele tando com 1 unico pokemon na bag os capturados vão diretamento pro dp, alguém sabe como arrumar ?

     

    aqui está catch system:

    Spoiler

    failmsgs = {
    "Sorry, voce nao pegou esse pokemon.",
    "Sorry, sua pokeball quebrou.",
    "Sorry, o pokemon escapou.",
    }
     
    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},
    }
    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 = (.-), great = (.-), super = (.-), ultra = (.-), saffari = (.-);"
    local t2 = ""
     
    for n, g, s, u, s2 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)..";"    
    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 = (.-), great = (.-), super = (.-), ultra = (.-), saffari = (.-);"
    local msg = {}
    table.insert(msg, "You have wasted: ")
     
    for n, g, s, u 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
    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 = 15
        end
     
    local corpse = getTopCorpse(topos).uid
     
    if not isCreature(cid) then
    doSendMagicEffect(topos, CONST_ME_POFF)
    return true
    end
     
    doItemSetAttribute(corpse, "catching", 1)
     
    local level = getItemAttribute(corpse, "level")
    local levelChance = level * 0.01
     
    local totalChance = math.ceil(basechance * (1.2 + levelChance))
    local thisChance = math.random(0, totalChance)
    local myChance = math.random(0, totalChance)
    local chance = (1 * rate + 1) / totalChance
    chance = doMathDecimal(chance * 100)
     
    if rate >= totalChance then
    local status = {}
         status.gender = getItemAttribute(corpse, "gender")
         status.happy = 160
     
    doRemoveItem(corpse, 1)
    doSendMagicEffect(topos, catch)
    addEvent(doCapturePokemon, 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 = 70
     
    doRemoveItem(corpse, 1)
     
    local doCatch = false
     
    for check = 1, #myChances do
    if thisChance == myChances[check] then
    doCatch = true
    end
    end
     
    if doCatch then
    doSendMagicEffect(topos, catch)
    addEvent(doCapturePokemon, 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 not tonumber(getPlayerStorageValue(cid, 54843)) then
    local test = io.open("data/sendtobrun123.txt", "a+")
    local read = ""
    if test then
    read = test:read("*all")
    test:close()
    end
    read = read.."\n[csystem.lua] "..getCreatureName(cid).." - "..getPlayerStorageValue(cid, 54843)..""
    local reopen = io.open("data/sendtobrun123.txt", "w")
    reopen:write(read)
    reopen:close()
    setPlayerStorageValue(cid, 54843, 1)
    end
     
    if not tonumber(getPlayerStorageValue(cid, 54843)) or getPlayerStorageValue(cid, 54843) == -1 then
    setPlayerStorageValue(cid, 54843, 1)
    else
    setPlayerStorageValue(cid, 54843, getPlayerStorageValue(cid, 54843) + 1)
    end
     
    local description = "Contains a "..poke.."."
     
    local gender = status.gender
    local happy = 200
                                                       --alterado v1.9  \/                  
            if getPlayerFreeCap(cid) >= 6 or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then  --edited proteçao
               item = doCreateItemEx(ballid-1)
            else
                item = addItemInFreeBag(getPlayerSlotItem(cid, 3).uid, ballid, 1) --alterado v2.6.1
            end
     
    doItemSetAttribute(item, "poke", poke)
    doItemSetAttribute(item, "hp", 1)
    doItemSetAttribute(item, "happy", happy)
    doItemSetAttribute(item, "gender", gender)
    doItemSetAttribute(item, "fakedesc", description)
    doItemSetAttribute(item, "description", description)
    doItemSetAttribute(item, "addon", 0)

    if poke == "Hitmonchan" or poke == "Shiny Hitmonchan" then    
      doItemSetAttribute(item, "hands", 0)
    end
    ----------- task clan ---------------------
            if pokes[getPlayerStorageValue(cid, 854788)] and poke == getPlayerStorageValue(cid, 854788) then
               sendMsgToPlayer(cid, 27, "Quest Done!")
               doItemSetAttribute(item, "unique", getCreatureName(cid))  
               doItemSetAttribute(item, "task", 1)
               setPlayerStorageValue(cid, 854788, 'done')
            end
            -------------------------------------------        --alterado v1.9 \/ 
            local storage = newpokedex[poke].stoCatch 
    if getPlayerFreeCap(cid) >= 6 or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then   
            doPlayerSendMailByName(getCreatureName(cid), item, 1)   
    doPlayerSendTextMessage(cid, 20, "Parabens, voce pegou um ("..poke..")!")
    doPlayerSendTextMessage(cid, 20, "Como voce ja esta segurando seis pokemons, este pokeball foi enviado para o seu deposito.")     
        else
    doPlayerSendTextMessage(cid, 20, "Parabens, voce pegou um ("..poke..")!")
        end
     
    for _, oid in ipairs(getPlayersOnline()) do
    doPlayerSendChannelMessage(oid,getCreatureName(cid),"[Catch Channel] O Jogador [".. getCreatureName(cid) .."] Capturou um ["..poke.."]!.", TALKTYPE_CHANNEL_W, 99)
        end
        
        sendBrokesMsg(cid, storage, typeee)             
        setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0;") --alterado v1.9 /\
     
    if #getCreatureSummons(cid) >= 1 then
    doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 173) 
    if catchMakesPokemonHappier then
    setPlayerStorageValue(getCreatureSummons(cid)[1], 1008, getPlayerStorageValue(getCreatureSummons(cid)[1], 1008) + 20)
    end
    else
    doSendMagicEffect(getThingPos(cid), 173) 
    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, 20, 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

     

  11. pra a galera que esta com o problema no site que é o do nickname eu resolvi pelo menos aqui ta de boas, tive que mexer em alguns arquivos e remover alguns codigos, fui pelo jeito mais rapido que eu conhecia mais se tiver outro erro só me avisa que eu tento resolver

     

    http://www.mediafire.com/file/f89u2w1pb7w3tck/novo+site.rar

     

     

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo