Ir para conteúdo

Meuoserv

Campones
  • Total de itens

    29
  • Registro em

  • Última visita

Posts postados por Meuoserv

  1.  

    tenta

    <?xml version="1.0" encoding="UTF-8"?>  
    <mod name="Defend The Generator" version="1.0" author="LuckOake" contact="none" enabled="yes">
    -----------------------------------------------------------------------
    <config name="generator"><![CDATA[
    teams = {
            ["Defenders"] = {
                    pos = {x = 314, y = 127, z = 7},
                    storage = 43110,
            },
            ["Invaders"] = {
                    pos = {x = 317, y = 127, z = 7},
                    storage = 43111,
            }
    }
     
    defpos,defstor = teams["Defenders"].pos,teams["Defenders"].storage
    invpos,invstor = teams["Invaders"].pos,teams["Invaders"].storage
    stor = 43112
    tstor = 43113
    sstor = 43114
    gstor = 43115
     
    area1 = {x = 311, y = 126, z = 7} -- Ponta de cima na esquerda da área
    area2 = {x = 320, y = 131, z = 7} -- Ponta de baixo na direita da área
    tp_pos = {x = 316, y = 132, z = 7, stackpos = 1} -- Posição do teleport (Não altere o stackpos)
    sparkpos = {x = 316, y = 127, z = 7} -- Posição dos sparks do Gerador
    maxplayers = 20 -- Máximo de players (De preferência, coloque um número par)
    gtime = 10 -- Quantos segundos o gerador deverá ficar desligado para que os Invaders vençam
    wall = { -- Positions das paredes de bloqueio (Não altere o stackpos)
            [1] = {x = 316, y = 126, z = 7, stackpos = 1},
            [2] = {x = 316, y = 127, z = 7, stackpos = 1},
            }
    wallid = 1111 -- Id das walls
    prizes = {
    [1] = {id = 2149, count = 13},
    [2] = {id = 2149, count = 12},
    [3] = {id = 2149, count = 11}
    }
    prand = math.random(1, #prizes)
     
    function isMale(cid)
            return getPlayerSex(cid) == 1 and true or false
    end
     
    function isFemale(cid)
            return getPlayerSex(cid) == 0 and true or false
    end
     
    function getNumberType(n)
            return n % 2 == 0 and "par" or "impar"
    end
     
    function selectPlayerTeam(cid)
            if getNumberType(getGlobalStorageValue(stor)) == "par" then
                    doTeleportThing(cid, defpos)
                    setPlayerStorageValue(cid, tstor, 1)
                    registerCreatureEvent(cid, "GeneratorCast")
                    setGlobalStorageValue(defstor, getGlobalStorageValue(defstor)+1)
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "You must DEFEND the Generator. Kill the invaders!")
            if isMale(cid) then
                    doSetCreatureOutfit(cid, {lookType = math.random(128,134), lookHead = 88, lookBody = 88, lookLegs = 88, lookFeet = 88}, -1)
            elseif isFemale(cid) then
                    doSetCreatureOutfit(cid, {lookType = math.random(136,142), lookHead = 88, lookBody = 88, lookLegs = 88, lookFeet = 88}, -1)
            end
            elseif getNumberType(getGlobalStorageValue(stor)) == "impar" then
                    doTeleportThing(cid, invpos)
                    setPlayerStorageValue(cid, tstor, 2)
                    setGlobalStorageValue(invstor, getGlobalStorageValue(invstor)+1)
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "You must DISABLE the Generator. Crush the defenders!")
            if isMale(cid) then
                    doSetCreatureOutfit(cid, {lookType = math.random(128,134), lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94}, -1)
            elseif isFemale(cid) then
                    doSetCreatureOutfit(cid, {lookType = math.random(136,142), lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94}, -1)
            end
            end
                    setGlobalStorageValue(stor, getGlobalStorageValue(stor)+1)
                    registerCreatureEvent(cid, "GeneratorLogout")
                    registerCreatureEvent(cid, "GeneratorDeath")
    end
     
    function removeWalls()
            for _, walls in ipairs(wall) do
                    doRemoveItem(getThingFromPos(walls).uid, 1)
            end
    end
     
    function createWalls()
            for _, walls in ipairs(wall) do
                    doCreateItem(wallid, 1, walls)
            end
    end
     
    function isGeneratorActived()
    return getGlobalStorageValue(gstor) == 1 and true or false
    end
     
    function generateSparks()
            if isGeneratorActived() then   
                    doSendMagicEffect(sparkpos, 11)
                    addEvent(generateSparks, 1000)
            end
    end
     
    function startEvent()
            setGlobalStorageValue(gstor, 1)
            generateSparks()
            doRemoveItem(getThingFromPos(tp_pos).uid, 1)
            doSendMagicEffect(tp_pos, 2)
            broadcastMessage("Defend The Generator Event started.")
            removeWalls()
    end
     
    function resetEvent()
            for _, pid in ipairs(getPlayersOnline()) do
                    if isDefender(pid) or isInvader(pid) then
                            setPlayerStorageValue(pid, tstor, -1)
                            doRemoveCondition(pid, CONDITION_OUTFIT)
                            doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
                            addEvent(doRemoveCreature, 3000, pid)
                    end
            end
                            setGlobalStorageValue(stor, -1)
                            setGlobalStorageValue(sstor, -1)
                            setGlobalStorageValue(defstor, -1)
                            setGlobalStorageValue(invstor, -1)
                            setGlobalStorageValue(gstor, -1)
                            createWalls()
    end
     
    function destroyGenerator()
            if getGlobalStorageValue(stor) == -1 then return true end
            for _, tid in ipairs(getPlayersOnline()) do
                    if isInvader(tid) then
                            if not doPlayerAddItem(tid, prizes[prand].id, prizes[prand].count) then
                            local parcel = doCreateItemEx(ITEM_PARCEL)
                                    doAddContainerItem(parcel, prizes[prand].id, prizes[prand].count)
                                    doPlayerSendMailByName(getCreatureName(tid), parcel, getPlayerTown(tid))
                                    doPlayerSendTextMessage(tid, MESSAGE_STATUS_CONSOLE_BLUE, "Not enough cap. Your prize was sent to the depot.")
                            end
                                    doPlayerSendTextMessage(tid, MESSAGE_STATUS_CONSOLE_BLUE, "You win "..prizes[prand].count.."x "..getItemNameById(prizes[prand].id)..".")
                    end
            end
            broadcastMessage("The generator is destroyed! The Invaders Team won!")
            resetEvent()
    end
     
    function isDefender(cid)
    return getPlayerStorageValue(cid, tstor) == 1 and true or false
    end
     
    function isInvader(cid)
    return getPlayerStorageValue(cid, tstor) == 2 and true or false
    end
     
    function openTeleport()
            local tp = 1387
            local tele = doCreateItem(tp, 1, tp_pos)
                    setGlobalStorageValue(defstor, 0)
                    setGlobalStorageValue(invstor, 0)
                    doItemSetAttribute(tele, "aid", 23590)
                    doSendMagicEffect(tp_pos, 10)
                    setGlobalStorageValue(stor, 0)
                    broadcastMessage("Defend The Generator Event is now open!")
    end
    ]]></config>
    ------------------------------------------------------------------------------------
    <talkaction words="/generator" access="5" event="buffer"><![CDATA[
    domodlib('generator')
            if not param then
                    doPlayerSendCancel(cid, 'Incorrect params. Choose if the event will "open", "force" or "reset".') return true
            elseif param == "open" then
                    if getGlobalStorageValue(stor) ~= -1 or getGlobalStorageValue(stor) > 0 then
                            doPlayerSendCancel(cid, "You can't start the event now.") return true
                    end
                            openTeleport()
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You've opened the Defend The Generator event.") return true
            elseif param == "force" then
                    if getGlobalStorageValue(stor) == -1 or getGlobalStorageValue(sstor) >= 1 then
                            doPlayerSendCancel(cid, "You can't force the event now.") return true
                    end
                            setGlobalStorageValue(sstor, 1)
                            startEvent()
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You've closed the Defend The Generator event.") return true
            elseif param == "reset" then
                    if getGlobalStorageValue(stor) == -1 or getGlobalStorageValue(sstor) == -1 then
                            doPlayerSendCancel(cid, "You can't end the event now.") return true
                    end
                            resetEvent()
                            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You've reseted the Defend The Generator event.") return true
            end
    return true
    ]]></talkaction>
    ------------------------------------------------------------------------------------
    <action actionid="25177" event="script"><![CDATA[
    domodlib('generator')
            if isDefender(cid) and isGeneratorActived() then
                    doPlayerSendCancel(cid, "You cannot deactivate the generator. You are defending it!") return true
            elseif isInvader(cid) and isGeneratorActived() then
                    setGlobalStorageValue(gstor, -1)
                    broadcastMessage(""..getCreatureName(cid).." [INVADER] turned OFF the generator! Defenders Team now have "..gtime.." seconds to turn on it again or they will lose!")
                    y = addEvent(destroyGenerator, gtime*1000)
            elseif isDefender(cid) and not isGeneratorActived() then
                    setGlobalStorageValue(gstor, 1)
                    generateSparks()
                    broadcastMessage(""..getCreatureName(cid).." [DEFENDER] turned ON the generator!")
                    stopEvent(y)
            elseif isInvader(cid) and not isGeneratorActived() then
                    doPlayerSendCancel(cid, "The generator is already off!") return true
            end
                    doSendAnimatedText(getThingPos(item.uid), getGlobalStorageValue(gstor) == -1 and "Off!" or "On!", math.random(1, 255))
    return true
    ]]></action>
    ------------------------------------------------------------------------------------
    <movevent type="StepIn" actionid="23590" event="script"><![CDATA[
    domodlib('generator')
    function onStepIn(cid, position, fromPosition)
            if getGlobalStorageValue(stor) == (maxplayers-1) then
                    setGlobalStorageValue(sstor, 1)
                    startEvent()
            else
                    broadcastMessage(""..getCreatureName(cid).." entered in the Defend The Generator Event. There is "..(maxplayers-(getGlobalStorageValue(stor)+1)).." slots remaining.")
            end
                    selectPlayerTeam(cid)
    return true
    end
    ]]></movevent>
    ------------------------------------------------------------------------------------
    <event type="logout" name="GeneratorLogout" event="script"><![CDATA[  
    domodlib('generator')
    function onLogout(cid)
            if getPlayerStorageValue(cid, tstor) >= 1 then
                    doPlayerSendCancel(cid, "You can't logout when you are in this event!") return false
            end
    return true
    end
    ]]></event>
    ------------------------------------------------------------------------------------
    <event type="preparedeath" name="GeneratorDeath" event="script"><![CDATA[  
    domodlib('generator')
    function onPrepareDeath(cid)
            if isInvader(cid) and getGlobalStorageValue(invstor) > 1 then
                    setGlobalStorageValue(invstor, getGlobalStorageValue(invstor)-1)
                    broadcastMessage(""..getCreatureName(cid).." [INVADER] died. "..getGlobalStorageValue(defstor).." Defenders and "..getGlobalStorageValue(invstor).." Invaders left.")
            elseif isInvader(cid) and getGlobalStorageValue(invstor) == 1 then
                    for _, wid in ipairs(getPlayersOnline()) do
                            if isDefender(wid) then
                                    if not doPlayerAddItem(wid, prizes[prand].id, prizes[prand].count) then
                                    local parcel = doCreateItemEx(ITEM_PARCEL)
                                            doAddContainerItem(parcel, prizes[prand].id, prizes[prand].count)
                                            doPlayerSendMailByName(getCreatureName(wid), parcel, getPlayerTown(wid))
                                            doPlayerSendTextMessage(wid, MESSAGE_STATUS_CONSOLE_BLUE, "Not enough cap. Your prize was sent to the depot.")
                                    end
                                            doPlayerSendTextMessage(wid, MESSAGE_STATUS_CONSOLE_BLUE, "You win "..prizes[prand].count.."x "..getItemNameById(prizes[prand].id)..".")
                            end
                    end
                    broadcastMessage("All the Invaders are dead. Defenders won the Defend The Generator Event!")
                    resetEvent()
            elseif isDefender(cid) then
                    setGlobalStorageValue(defstor, getGlobalStorageValue(defstor)-1)
                    broadcastMessage(""..getCreatureName(cid).." [DEFENDER] died. "..getGlobalStorageValue(defstor).." Defenders and "..getGlobalStorageValue(invstor).." Invaders left.")
            end
                    setPlayerStorageValue(cid, tstor, -1)
                    doCreatureSetDropLoot(cid, false)
                    doPlayerSetLossSkill(cid, 0)
                    doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 0)
    return true
    end
    ]]></event>
    <event type="login" name="GeneratorLogin" event="script"><![CDATA[  
    domodlib('generator')
    function onLogin(cid)
    registerCreatureEvent(cid, "GeneratorCast")
    return true  
    end  
    ]]></event>
    <event type="combat" name="GeneratorCast" event="script"><![CDATA[  
    domodlib('generator')
    function onCombat(cid, target)
            if isPlayer(cid) and isPlayer(target) then
                    if isDefender(cid) and isDefender(target) or isInvader(cid) and isInvader(target) then
                            doPlayerSendCancel(cid, "You may not attack your team mates.") return false
                    end
            end
    return true
    end
    ]]></event>
    </mod>

     

    POOO VEI VLW AE AGORA FUNCIONO ASUDHSAUDH O QUE VC FEZ?? ;D VLW MSM ;)

  2.  

    tennta troca
           if isPlayer(cid) and isPlayer(target) then
                    if isDefender(cid) and isDefender(target) or isInvader(cid) and isInvader(target) then
                            doPlayerSendCancel(cid, "You may not attack your team mates.") return false
                    end
            end
    por
            if isPlayer(cid) and isPlayer(target) then
                if isDefender(cid) and isDefender(target) then
                   doPlayerSendCancel(cid, "You may not attack your team mates.") return false
                    elseif isInvader(cid) and isInvader(target) then
                            doPlayerSendCancel(cid, "You may not attack your team mates.") return false
                    end
            end

     

    Não funciono vei :( que coisa não sei o que que tem só o time INVADER pode c atacar entre CI e o time defender não se ataca aff que bosta queria que ficava time x time.

  3. Olá gostaria de ver um error no meu server o time VERMELHO esta se atacando essa função não ta funcionando para eles pros AZUL funciona

     

    if isInvader(cid) and isInvader(target) or isDefender(cid) and isDefender(target) then
    doPlayerSendCancel(cid, "You may not attack your team mates.") return false
    end

     

    alguem poderia me ajudar?? obrigado desde já

  4. if getTilePzInfo(getThingPos(getCreatureSummons(cid)[1])) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você nao pode usar magias dentro de area de proteção.")
    return true
    end

     

    só isso ai já é suficiente

     

     

    o seu nao funciono não :S mas vlw por tentar ajudar.

     

     

     

    EDIT.

     

    DESCULPA É QUE EU NAO DI RELOAD NO TALK FUNCIONO SIM VLW AE =D REP+ ;D

  5. gente me desculpe se aqui é area errada e se for me movam plx

     

    gente estou com meu sv de poke mas os players podem sltar magias dentro do pz com o char do lado de fora eu qria q tipo o script qndo o char tentase soltar ele verificase se o summon esta em area pz e retornase disendo que nao podia eu tava tentando faser e nao deu certo o meu script ta asim.

     

    if getTilePzInfo(getPlayerPosition(cid)) and  getTilePzInfo(getCreaturePosition(getCreatureSummons(cid))) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você nao pode usar magias dentro de area de proteção.")
    return true
    end

     

     

    and getTilePzInfo(getCreaturePosition(getCreatureSummons(cid)))

     

     

    a parte em que ta em vermelho foi a que eu adicionei que nao esta funcionando porfavor me ajudem agradeço mt :) e dou rep+++ ;)

  6. Gente estou com um problema players novos quando criam char esta tudo bem mas qndo vao abrir dp para guardar os items da o seguinte eror

     

    Failure: Creating a new depot with id: 1, for player: Lorst Xd

     

    /\ da esse error ali alguem pode me ajudar para eu arumar isso ?

    REP +

  7. Para arrumar o crash do Servidor troque o seu exp.lua por esse abaixo :

    Para quem não sabe o exp.lua se encontra na pasta data\creaturescripts\scripts.

     

     

    local expcond = createConditionObject(CONDITION_INFIGHT)
    setConditionParam(expcond, CONDITION_PARAM_TICKS, 4500)
    
    local efeitos = {
    [COMBAT_PHYSICALDAMAGE] = 3,
    [ELECTRICDAMAGE] = 3,
    [WATERDAMAGE] = 3,
    [FIREDAMAGE] = 3,
    [GRASSDAMAGE] = 3,
    [iCEDAMAGE] = 3,
    [ROCKDAMAGE] = 3,
    [FLYDAMAGE] = 3,
    [FIGHTDAMAGE] = 3,
    [POISONDAMAGE] = 3,
    [DRAGONDAMAGE] = 3,
    [bUGDAMAGE] = 3,
    [NORMALDAMAGE] = 3,
    [GHOSTDAMAGE] = 3,
    [GROUNDDAMAGE] = 3,
    [PSYCHICDAMAGE] = 3,
    }
    
    
    function onStatsChange(cid, attacker, enps, combatee, value)
    if combatee == PSYCHICDAMAGE then
    cor = COLOR_PSYCHIC
    elseif combatee == GRASSDAMAGE then
    cor = COLOR_GRASS
    elseif combatee == FIREDAMAGE then
    cor = COLOR_FIRE2
    elseif combatee == WATERDAMAGE then
    cor = COLOR_WATER
    elseif combatee == ICEDAMAGE then
    cor = COLOR_ICE
    elseif combatee == NORMALDAMAGE then
    cor = COLOR_NORMAL
    elseif combatee == FLYDAMAGE then
    cor = COLOR_FLYING
    elseif combatee == GHOSTDAMAGE then
    cor = COLOR_GHOST
    elseif combatee == GROUNDDAMAGE then
    cor = COLOR_GROUND
    elseif combatee == ELECTRICDAMAGE then
    cor = COLOR_ELECTRIC
    elseif combatee == ROCKDAMAGE then
    cor = COLOR_ROCK
    elseif combatee == BUGDAMAGE then
    cor = COLOR_BUG
    elseif combatee == FIGHTDAMAGE then
    cor = COLOR_FIGHTING
    elseif combatee == DRAGONDAMAGE then
    cor = COLOR_DRAGON
    elseif combatee == POISONDAMAGE then
    cor = COLOR_POISON
    elseif getCreatureName(cid) == "Kakuna" or getCreatureName(cid) == "Metapod" then
    cor = COLOR_BUG
    elseif getCreatureName(cid) == "Golem" or getCreatureName(cid) == "Graveler" or getCreatureName(cid) == "Geodude" then
    cor = COLOR_ROCK
    else
    cor = NONE
    end
    local cores = cor
    if getPlayerStorageValue(cid, 33) >= 1 then -- funcionamento do self destruction
    if isCreature(attacker) then
    return false
    end
    return true
    end
    if getPlayerStorageValue(cid, 34) >= 1 then -- REFLECT
    if combatee ~= COMBAT_PHYSICALDAMAGE then
    if isCreature(attacker) then
    doSendMagicEffect(getThingPos(cid), 135)
    doSendMagicEffect(getThingPos(attacker), 3)
    doSendAnimatedText(getThingPos(cid), "REFLECT", 215)
    doCreatureAddHealth(attacker, -value, 3, 191) -- 3 = efeito do reflect
    setPlayerStorageValue(cid, 34, 0)
    return false
    end
    end
    end
    if getPlayerStorageValue(cid, 35) >= 1 then -- MAGIAS DE MISS, STRING SHOT, MUD SHOT ETC
    if combatee ~= COMBAT_PHYSICALDAMAGE then
    if isCreature(attacker) then
    doSendAnimatedText(getThingPos(cid), "MISS", 215)
    setPlayerStorageValue(cid, 35, 0)
    return false
    end
    end
    end
    if not isCreature(attacker) then
    return true
    end
    if isPlayer(attacker) then
    return true
    end
    if enps == STATSCHANGE_HEALTHGAIN then
    return true
    end
    if enps == STATSCHANGE_HEALTHLOSS then
    if getCreatureHealth(cid) <= value then
    if isPlayer(cid) then
    if #getCreatureSummons(cid) == 0 then
    doCreatureAddHealth(cid, -getCreatureHealth(cid), 3, 180) -- 3 é o efeito que aparece no player quando ele é atacado e vai morrer
    return false
    end
    return false
    end
    if isPlayer(getCreatureMaster(attacker)) then
    doTargetCombatHealth(getCreatureMaster(attacker), cid, combatee, -(getCreatureHealth(cid)), -(getCreatureHealth(cid)), efeitos[combatee])
    if isInArray({GROUNDDAMAGE, ELECTRICDAMAGE, ROCKDAMAGE, FLYDAMAGE, BUGDAMAGE, FIGHTINGDAMAGE, DRAGONDAMAGE, POISONDAMAGE}, combatee) then
    doSendAnimatedText(getThingPos(cid), value, cores)
    end
    return false
    end
    return true
    end
    if isPlayer(cid) then
    if #getCreatureSummons(cid) >= 1 then
    return false
    end
    doCreatureAddHealth(cid, -value, 3, 180) -- 3 é o efeito que aparece no player quando é atacado
    return false
    end
    
    if isPlayer(getCreatureMaster(cid)) then
    doAddCondition(getCreatureMaster(cid), expcond)
    end
    
    
    if combatee == ELECTRICDAMAGE then
    if isInArray(electric2, getCreatureName(cid)) then
    x = 2
    elseif isInArray(electric1, getCreatureName(cid)) then
    x = 0.5
    elseif isInArray(electric0, getCreatureName(cid)) then
    x = 0
    else
    x = 1
    end
    elseif combatee == WATERDAMAGE then
    if isInArray(water2, getCreatureName(cid)) then
    x = 2
    elseif isInArray(water1, getCreatureName(cid)) then
    x = 0.5
    elseif isInArray(water0, getCreatureName(cid)) then
    x = 0
    else
    x = 1
    end
    elseif combatee == GRASSDAMAGE then
    if isInArray(grass2, getCreatureName(cid)) then
    x = 2
    elseif isInArray(grass1, getCreatureName(cid)) then
    x = 0.5
    elseif isInArray(grass0, getCreatureName(cid)) then
    x = 0
    else
    x = 1
    end
    elseif combatee == FLYDAMAGE then
    if isInArray(flying2, getCreatureName(cid)) then
    x = 2
    elseif isInArray(flying1, getCreatureName(cid)) then
    x = 0.5
    elseif isInArray(flying0, getCreatureName(cid)) then
    x = 0
    else
    x = 1
    end
    elseif combatee == FIREDAMAGE then
    if isInArray(fire2, getCreatureName(cid)) then
    x = 2
    elseif isInArray(fire1, getCreatureName(cid)) then
    x = 0.5
    elseif isInArray(fire0, getCreatureName(cid)) then
    x = 0
    else
    x = 1
    end
    elseif combatee == ROCKDAMAGE then
    if isInArray(rock2, getCreatureName(cid)) then
    x = 2
    elseif isInArray(rock1, getCreatureName(cid)) then
    x = 0.5
    elseif isInArray(rock0, getCreatureName(cid)) then
    x = 0
    else
    x = 1
    end
    elseif combatee == GROUNDDAMAGE then
    if isInArray(ground2, getCreatureName(cid)) then
    x = 2
    elseif isInArray(ground1, getCreatureName(cid)) then
    x = 0.5
    elseif isInArray(ground0, getCreatureName(cid)) then
    x = 0
    else
    x = 1
    end
    elseif combatee == GHOSTDAMAGE then
    if isInArray(ghost2, getCreatureName(cid)) then
    x = 2
    elseif isInArray(ghost1, getCreatureName(cid)) then
    x = 0.5
    elseif isInArray(ghost0, getCreatureName(cid)) then
    x = 0
    else
    x = 1
    end
    elseif combatee == BUGDAMAGE then
    if isInArray(bug2, getCreatureName(cid)) then
    x = 2
    elseif isInArray(bug1, getCreatureName(cid)) then
    x = 0.5
    elseif isInArray(bug0, getCreatureName(cid)) then
    x = 0
    else
    x = 1
    end
    elseif combatee == NORMALDAMAGE then
    if isInArray(normal2, getCreatureName(cid)) then
    x = 2
    elseif isInArray(normal1, getCreatureName(cid)) then
    x = 0.5
    elseif isInArray(normal0, getCreatureName(cid)) then
    x = 0
    else
    x = 1
    end
    elseif combatee == FIGHTDAMAGE then
    if isInArray(fighting2, getCreatureName(cid)) then
    x = 2
    elseif isInArray(fighting1, getCreatureName(cid)) then
    x = 0.5
    elseif isInArray(fighting0, getCreatureName(cid)) then
    x = 0
    else
    x = 1
    end
    elseif combatee == POISONDAMAGE then
    if isInArray(poison2, getCreatureName(cid)) then
    x = 2
    elseif isInArray(poison1, getCreatureName(cid)) then
    x = 0.5
    elseif isInArray(poison0, getCreatureName(cid)) then
    x = 0
    else
    x = 1
    end
    elseif combatee == PSYCHICDAMAGE then
    if isInArray(psychic2, getCreatureName(cid)) then
    x = 2
    elseif isInArray(psychic1, getCreatureName(cid)) then
    x = 0.5
    elseif isInArray(psychic0, getCreatureName(cid)) then
    x = 0
    else
    x = 1
    end
    elseif combatee == ICEDAMAGE then
    if isInArray(ice2, getCreatureName(cid)) then
    x = 2
    elseif isInArray(ice1, getCreatureName(cid)) then
    x = 0.5
    elseif isInArray(ice0, getCreatureName(cid)) then
    x = 0
    else
    x = 1
    end
    elseif combatee == DRAGONDAMAGE then
    if isInArray(dragon2, getCreatureName(cid)) then
    x = 2
    elseif isInArray(dragon1, getCreatureName(cid)) then
    x = 0.5
    elseif isInArray(dragon0, getCreatureName(cid)) then
    x = 0
    else
    x = 1
    end
    else
    x = 1
    end
    
    local xx = x
    
    if not isSummon(attacker) then
    if not isPlayer(cid) and not isPlayer(getCreatureMaster(cid)) then
    return false
    end
    if isSummon(cid) and getCreatureHealth(cid) <= (getCreatureMaxHealth(cid)*0.15) and not exhaustion.get(getCreatureMaster(cid), 88726) then
    exhaustion.set(getCreatureMaster(cid), 88726, 6)
    doSendMagicEffect(getThingPos(cid), 178)
    end
    if getPlayerStorageValue(cid, 4) >= 1 then
    local damage = value
    doCreatureAddHealth(cid, -((math.ceil(damage/2))*xx), 2, cores) -- 2 é o efeito que aparece no pokemon quando tem harden e é atacado
    else
    local damage = value
    if cor == NONE then
    return true
    end
    doCreatureAddHealth(cid, -((math.ceil(damage/1))*xx), efeitos[combatee], cores)
    return false
    end
    return false
    end
    if isSummon(attacker) then
    if isSummon(cid) then
    if isInParty(getCreatureMaster(cid)) and isInParty(getCreatureMaster(attacker)) and getPlayerParty(getCreatureMaster(cid)) == getPlayerParty(getCreatureMaster(attacker)) then
    else
    return false
    end
    end
    local combatx = combatee
    local valor = value
    if getPlayerStorageValue(cid, 4) >= 1 then
    doTargetCombatHealth(getCreatureMaster(attacker), cid, combatx, -((valor / 2)*x), -(((valor / 2)+10)*x), 255)
    else
    doTargetCombatHealth(getCreatureMaster(attacker), cid, combatx, -((valor)*x), -((valor+10)*x), 255)
    end
    if isInArray({GROUNDDAMAGE, ELECTRICDAMAGE, ROCKDAMAGE, FLYDAMAGE, BUGDAMAGE, FIGHTINGDAMAGE, DRAGONDAMAGE, POISONDAMAGE}, combatee) then
    doSendAnimatedText(getThingPos(cid), value*xx, cores)
    end
    end
    end
    end

     

     

    Agora troque o seu 000-constant.lua por esse :

    Para quem não sabe 000-constant.lua se encotra na pasta data\lib.

     

     

    NORTH = 0
    EAST = 1
    SOUTH = 2
    WEST = 3
    SOUTHWEST = 4
    SOUTHEAST = 5
    NORTHWEST = 6
    NORTHEAST = 7
    
    COMBAT_FORMULA_UNDEFINED = 0
    COMBAT_FORMULA_LEVELMAGIC = 1
    COMBAT_FORMULA_SKILL = 2
    COMBAT_FORMULA_DAMAGE = 3
    
    CONDITION_PARAM_OWNER = 1
    CONDITION_PARAM_TICKS = 2
    CONDITION_PARAM_OUTFIT = 3
    CONDITION_PARAM_HEALTHGAIN = 4
    CONDITION_PARAM_HEALTHTICKS = 5
    CONDITION_PARAM_MANAGAIN = 6
    CONDITION_PARAM_MANATICKS = 7
    CONDITION_PARAM_DELAYED = 8
    CONDITION_PARAM_SPEED = 9
    CONDITION_PARAM_LIGHT_LEVEL = 10
    CONDITION_PARAM_LIGHT_COLOR = 11
    CONDITION_PARAM_SOULGAIN = 12
    CONDITION_PARAM_SOULTICKS = 13
    CONDITION_PARAM_MINVALUE = 14
    CONDITION_PARAM_MAXVALUE = 15
    CONDITION_PARAM_STARTVALUE = 16
    CONDITION_PARAM_TICKINTERVAL = 17
    CONDITION_PARAM_FORCEUPDATE = 18
    CONDITION_PARAM_SKILL_MELEE = 19
    CONDITION_PARAM_SKILL_FIST = 20
    CONDITION_PARAM_SKILL_CLUB = 21
    CONDITION_PARAM_SKILL_SWORD = 22
    CONDITION_PARAM_SKILL_AXE = 23
    CONDITION_PARAM_SKILL_DISTANCE = 24
    CONDITION_PARAM_SKILL_SHIELD = 25
    CONDITION_PARAM_SKILL_FISHING = 26
    CONDITION_PARAM_STAT_MAXHEALTH = 27
    CONDITION_PARAM_STAT_MAXMANA = 28
    CONDITION_PARAM_STAT_SOUL = 29
    CONDITION_PARAM_STAT_MAGICLEVEL = 30
    CONDITION_PARAM_STAT_MAXHEALTHPERCENT = 31
    CONDITION_PARAM_STAT_MAXMANAPERCENT = 32
    CONDITION_PARAM_STAT_SOULPERCENT = 33
    CONDITION_PARAM_STAT_MAGICLEVELPERCENT = 34
    CONDITION_PARAM_SKILL_MELEEPERCENT = 35
    CONDITION_PARAM_SKILL_FISTPERCENT = 36
    CONDITION_PARAM_SKILL_CLUBPERCENT = 37
    CONDITION_PARAM_SKILL_SWORDPERCENT = 38
    CONDITION_PARAM_SKILL_AXEPERCENT = 39
    CONDITION_PARAM_SKILL_DISTANCEPERCENT = 40
    CONDITION_PARAM_SKILL_SHIELDPERCENT = 41
    CONDITION_PARAM_SKILL_FISHINGPERCENT = 42
    CONDITION_PARAM_PERIODICDAMAGE = 43
    CONDITION_PARAM_BUFF = 44
    CONDITION_PARAM_SUBID = 45
    
    COMBAT_PARAM_TYPE = 1
    COMBAT_PARAM_EFFECT = 2
    COMBAT_PARAM_DISTANCEEFFECT = 3
    COMBAT_PARAM_BLOCKSHIELD = 4
    COMBAT_PARAM_BLOCKARMOR = 5
    COMBAT_PARAM_TARGETCASTERORTOPMOST = 6
    COMBAT_PARAM_CREATEITEM = 7
    COMBAT_PARAM_AGGRESSIVE = 8
    COMBAT_PARAM_DISPEL = 9
    COMBAT_PARAM_USECHARGES = 10
    COMBAT_PARAM_TARGETPLAYERSORSUMMONS = 11
    COMBAT_PARAM_DIFFERENTAREADAMAGE = 12
    COMBAT_PARAM_HITEFFECT = 13
    COMBAT_PARAM_HITCOLOR = 14
    
    CALLBACK_PARAM_LEVELMAGICVALUE = 1
    CALLBACK_PARAM_SKILLVALUE = 2
    CALLBACK_PARAM_TARGETTILE = 3
    CALLBACK_PARAM_TARGETCREATURE = 4
    
    COMBAT_NONE = 0
    COMBAT_PHYSICALDAMAGE = 1
    PSYCHICDAMAGE = 2
    PSYDAMAGE = PSYCHICDAMAGE
    GRASSDAMAGE = 4
    FIREDAMAGE = 8
    COMBAT_UNDEFINEDDAMAGE = 16
    COMBAT_LIFEDRAIN = 32
    COMBAT_MANADRAIN = 64
    COMBAT_HEALING = 128
    WATERDAMAGE = 256
    ICEDAMAGE = 512
    NORMALDAMAGE = 1024
    GHOSTDAMAGE = 2048
    GROUNDDAMAGE = 3000
    ELECTRICDAMAGE = 3001
    ROCKDAMAGE = 3002
    FLYDAMAGE = 3003
    FLYINGDAMAGE = FLYDAMAGE
    BUGDAMAGE = 3004
    FIGHTINGDAMAGE = 3005
    FIGHTDAMAGE = FIGHTINGDAMAGE
    DRAGONDAMAGE = 3006
    POISONDAMAGE = 3007
    VENOMDAMAGE = POISONDAMAGE
    
    CONDITION_NONE = 0
    CONDITION_POISON = 1
    CONDITION_FIRE = 2
    CONDITION_ENERGY = 4
    CONDITION_PHYSICAL = 8
    CONDITION_HASTE = 16
    CONDITION_PARALYZE = 32
    CONDITION_OUTFIT = 64
    CONDITION_INVISIBLE = 128
    CONDITION_LIGHT = 256
    CONDITION_MANASHIELD = 512
    CONDITION_INFIGHT = 1024
    CONDITION_DRUNK = 2048
    CONDITION_EXHAUST = 4096
    CONDITION_FOOD = 8192
    CONDITION_REGENERATION = 8192
    CONDITION_SOUL = 16384
    CONDITION_DROWN = 32768
    CONDITION_MUTED = 65536
    CONDITION_ATTRIBUTES = 131072
    CONDITION_FREEZING = 262144
    CONDITION_DAZZLED = 524288
    CONDITION_CURSED = 1048576
    CONDITION_PACIFIED = 2097152
    CONDITION_GAMEMASTER = 4194304
    CONDITION_HUNTING = 8388608
    CONDITION_TEST = 16777216
    CONDITION_ELECTRIC = 33554432
    CONDITION_ROCK = 67108864
    CONDITION_FLY = 134217728
    CONDITION_FLYING = CONDITION_FLY
    CONDITION_FIGHT = 268435456
    CONDITION_FIGHTING = CONDITION_FIGHT
    CONDITION_DRAGON = 536870912
    CONDITION_VENOM = 1073741824
    CONDITION_BUG = 2147483648
    
    EXHAUST_OTHER = 0
    EXHAUST_COMBAT = 1
    EXHAUST_HEALING = 2
    EXHAUST_WEAPON = 3
    
    MUTED_BUFFER = 0
    MUTED_YELL = 1
    MUTED_TRADE = 2
    MUTED_TRADE_ROOK = 3
    
    GAMEMASTER_INVISIBLE = 0
    GAMEMASTER_IGNORE = 1
    GAMEMASTER_TELEPORT = 2
    
    CONST_SLOT_FIRST = 1
    CONST_SLOT_HEAD = CONST_SLOT_FIRST
    CONST_SLOT_NECKLACE = 2
    CONST_SLOT_BACKPACK = 3
    CONST_SLOT_ARMOR = 4
    CONST_SLOT_RIGHT = 5
    CONST_SLOT_LEFT = 6
    CONST_SLOT_LEGS = 7
    CONST_SLOT_FEET = 8
    CONST_SLOT_RING = 9
    CONST_SLOT_AMMO = 10
    CONST_SLOT_LAST = CONST_SLOT_AMMO
    
    CONST_ME_DRAWBLOOD = 0
    CONST_ME_LOSEENERGY = 1
    CONST_ME_POFF = 2
    CONST_ME_BLOCKHIT = 3
    CONST_ME_EXPLOSIONAREA = 4
    CONST_ME_EXPLOSIONHIT = 5
    CONST_ME_FIREAREA = 6
    CONST_ME_YELLOW_RINGS = 7
    CONST_ME_GREEN_RINGS = 8
    CONST_ME_HITAREA = 9
    CONST_ME_TELEPORT = 21
    CONST_ME_ENERGYHIT = 11
    CONST_ME_MAGIC_BLUE = 12
    CONST_ME_MAGIC_RED = 13
    CONST_ME_MAGIC_GREEN = 14
    CONST_ME_HITBYFIRE = 15
    CONST_ME_HITBYPOISON = 16
    CONST_ME_MORTAREA = 17
    CONST_ME_SOUND_GREEN = 18
    CONST_ME_SOUND_RED = 19
    CONST_ME_POISONAREA = 20
    CONST_ME_SOUND_YELLOW = 10
    CONST_ME_SOUND_PURPLE = 22
    CONST_ME_SOUND_BLUE = 23
    CONST_ME_SOUND_WHITE = 24
    CONST_ME_BUBBLES = 25
    CONST_ME_CRAPS = 26
    CONST_ME_GIFT_WRAPS = 27
    CONST_ME_FIREWORK_YELLOW = 28
    CONST_ME_FIREWORK_RED = 29
    CONST_ME_FIREWORK_BLUE = 30
    CONST_ME_STUN = 31
    CONST_ME_SLEEP = 32
    CONST_ME_WATERCREATURE = 33
    CONST_ME_GROUNDSHAKER = 34
    CONST_ME_HEARTS = 35
    CONST_ME_FIREATTACK = 36
    CONST_ME_ENERGYAREA = 37
    CONST_ME_SMALLCLOUDS = 38
    CONST_ME_HOLYDAMAGE = 39
    CONST_ME_BIGCLOUDS = 40
    CONST_ME_ICEAREA = 41
    CONST_ME_ICETORNADO = 42
    CONST_ME_ICEATTACK = 43
    CONST_ME_STONES = 44
    CONST_ME_SMALLPLANTS = 45
    CONST_ME_CARNIPHILA = 46
    CONST_ME_PURPLEENERGY = 47
    CONST_ME_YELLOWENERGY = 48
    CONST_ME_HOLYAREA = 49
    CONST_ME_BIGPLANTS = 50
    CONST_ME_CAKE = 51
    CONST_ME_GIANTICE = 52
    CONST_ME_WATERSPLASH = 53
    CONST_ME_PLANTATTACK = 54
    CONST_ME_TUTORIALARROW = 55
    CONST_ME_TUTORIALSQUARE = 56
    CONST_ME_MIRRORHORIZONTAL = 57
    CONST_ME_MIRRORVERTICAL = 58
    CONST_ME_SKULLHORIZONTAL = 59
    CONST_ME_SKULLVERTICAL = 60
    CONST_ME_ASSASSIN = 61
    CONST_ME_STEPSHORIZONTAL = 62
    CONST_ME_BLOODYSTEPS = 63
    CONST_ME_STEPSVERTICAL = 64
    CONST_ME_YALAHARIGHOST = 65
    CONST_ME_BATS = 66
    CONST_ME_SMOKE = 67
    CONST_ME_INSECTS = 68
    CONST_ME_INSECTS2a = 69
    CONST_ME_INSECTS3a = 70
    CONST_ME_INSECTS4a = 71
    CONST_ME_INSECTS4b = 72
    CONST_ME_INSECTS4c = 73
    CONST_ME_INSECTS4 = 74
    CONST_ME_INSECTS4d = 75
    CONST_ME_INSECTS4e = 76
    CONST_ME_INSECTS4f = 77
    CONST_ME_INSECTS4g = 78
    CONST_ME_INSECTS4h = 79
    CONST_ME_INSECTS4i = 80
    CONST_ME_INSECTS4j = 81
    CONST_ME_INSECTS4k = 82
    CONST_ME_INSECTS4l = 83
    CONST_ME_INSECTS4m = 84
    CONST_ME_INSECTS4n = 85
    CONST_ME_INSECTS4o = 86
    CONST_ME_INSECTS4p = 87
    CONST_ME_INSECTS4q = 88
    CONST_ME_INSECTS4r = 89
    CONST_ME_INSECTS4s = 90
    CONST_ME_INSECTS4t = 91
    CONST_ME_INSECTS4u = 92
    CONST_ME_INSECTS4v = 93
    CONST_ME_INSECTS4x = 94
    CONST_ME_INSECTS4w = 95
    CONST_ME_INSECTS4y = 96
    CONST_ME_INSECTS4z = 97
    CONST_ME_INSECTS41 = 98
    CONST_ME_INSECTS42 = 99
    CONST_ME_INSECTS43 = 100
    CONST_ME_INSECTS44 = 101
    CONST_ME_INSECTS45 = 102
    CONST_ME_INSECTS46 = 103
    CONST_ME_INSECTS47 = 104
    CONST_ME_INSECTS48 = 105
    CONST_ME_INSECTS49 = 106
    CONST_ME_INSECTS4a1 = 107
    CONST_ME_INSECTS4a2 = 108
    CONST_ME_INSECTS4a3 = 109
    CONST_ME_INSECTS4a4 = 110
    CONST_ME_INSECTS4a5 = 111
    CONST_ME_INSECTS4a6 = 112
    CONST_ME_INSECTS4a7 = 113
    CONST_ME_INSECTS4a8 = 114
    CONST_ME_INSECTS4a9 = 115
    CONST_ME_INSECTS4ab = 116
    CONST_ME_INSECTS4ac = 117
    CONST_ME_INSECTS4ad = 118
    CONST_ME_INSECTS4ae = 119
    CONST_ME_INSECTS4af = 120
    CONST_ME_INSECTS4ag = 121
    CONST_ME_INSECTS4ah = 122
    CONST_ME_INSECTS4ai = 123
    CONST_ME_INSECTS4aj = 124
    CONST_ME_INSECTS4ak = 125
    CONST_ME_INSECTS4al = 126
    CONST_ME_INSECTS4am = 127
    CONST_ME_INSECTS4an = 128
    CONST_ME_INSECTS4ao = 129
    CONST_ME_INSECTS4ap = 130
    CONST_ME_INSECTS4aq = 131
    CONST_ME_INSECTS4ar = 132
    CONST_ME_INSECTS4as = 133
    CONST_ME_INSECTS4at = 134
    CONST_ME_INSECTS4au = 135
    CONST_ME_INSECTS4av = 136
    CONST_ME_INSECTS4ax = 137
    CONST_ME_INSECTS4aw = 138
    CONST_ME_INSECTS4ay = 139
    CONST_ME_INSECTS4az = 140
    CONST_ME_INSECTS4ba = 141
    CONST_ME_INSECTS4bb = 142
    CONST_ME_INSECTS4bc = 143
    CONST_ME_INSECTS4bd = 144
    CONST_ME_INSECTS4be = 145
    CONST_ME_INSECTS4bf = 146
    CONST_ME_INSECTS4bg = 147
    CONST_ME_INSECTS4bh = 148
    CONST_ME_INSECTS4bi = 149
    CONST_ME_INSECTS4bj = 150
    CONST_ME_INSECTS4bk = 151
    CONST_ME_INSECTS4bl = 152
    CONST_ME_INSECTS4bm = 153
    CONST_ME_INSECTS4bn = 154
    CONST_ME_INSECTS4bo = 155
    CONST_ME_INSECTS4bp = 156
    CONST_ME_INSECTS4bq = 157
    CONST_ME_INSECTS4br = 158
    CONST_ME_INSECTS4bs = 159
    CONST_ME_INSECTS4bt = 160
    CONST_ME_INSECTS4bu = 161
    CONST_ME_INSECTS4bv = 162
    CONST_ME_INSECTS4bx = 163
    CONST_ME_INSECTS4bw = 164
    CONST_ME_INSECTS4by = 165
    CONST_ME_INSECTS4bz = 166
    CONST_ME_INSECTS4cac = 167
    CONST_ME_INSECTS4ca = 168
    CONST_ME_INSECTS4cb = 169
    CONST_ME_INSECTS4cc = 170
    CONST_ME_INSECTS4cd = 171
    CONST_ME_INSECTS4ce = 172
    CONST_ME_INSECTS4cf = 173
    CONST_ME_INSECTS4cg = 174
    CONST_ME_INSECTS4ch = 175
    CONST_ME_INSECTS4ci = 176
    CONST_ME_INSECTS4cj = 177
    CONST_ME_INSECTS4ck = 178
    CONST_ME_INSECTS4cl = 179
    CONST_ME_INSECTS4cm = 180
    CONST_ME_INSECTS4cn = 181
    CONST_ME_INSECTS4co = 182
    CONST_ME_INSECTS4cp = 183
    CONST_ME_INSECTS4cq = 184
    CONST_ME_INSECTS4cr = 185
    CONST_ME_INSECTS4cs = 186
    CONST_ME_INSECTS4ct = 187
    CONST_ME_INSECTS4cu = 188
    CONST_ME_INSECTS4cv = 189
    CONST_ME_INSECTSc4x = 190
    CONST_ME_INSECTSc4w = 191
    CONST_ME_INSECTSc4y = 192
    CONST_ME_INSECTS4cz = 193
    CONST_ME_INSECTS4da = 194
    CONST_ME_INSECTS4db = 195
    CONST_ME_INSECTS4dc = 196
    CONST_ME_INSECTS4dd = 197
    CONST_ME_INSECTS4de = 198
    CONST_ME_INSECTS4df = 199
    CONST_ME_INSECTS4dg = 201
    CONST_ME_INSECTS4dh = 202
    CONST_ME_INSECTS4di = 203
    CONST_ME_INSECTS4dj = 204
    CONST_ME_INSECTS4dk = 205
    CONST_ME_INSECTS4dl = 206
    CONST_ME_INSECTS4dm = 207
    CONST_ME_INSECTS4dn = 208
    CONST_ME_INSECTS4do = 209
    CONST_ME_INSECTS4dp = 210
    CONST_ME_INSECTS4dq = 211
    CONST_ME_INSECTS4dr = 212
    CONST_ME_INSECTS4ds = 213
    CONST_ME_INSECTS4dt = 214
    CONST_ME_INSECTS4du = 215
    CONST_ME_INSECTS4dv = 216
    CONST_ME_INSECTS4dx = 217
    CONST_ME_INSECTS4dw = 218
    CONST_ME_INSECTS4dy = 219
    CONST_ME_INSECTS4dz = 220
    CONST_ME_NONE = 255
    CONST_ME_LAST = CONST_ME_INSECTS4dz
    
    CONST_ANI_SPEAR = 0
    CONST_ANI_BOLT = 1
    CONST_ANI_ARROW = 2
    CONST_ANI_FIRE = 3
    CONST_ANI_ENERGY = 4
    CONST_ANI_POISONARROW = 5
    CONST_ANI_BURSTARROW = 6
    CONST_ANI_THROWINGSTAR = 7
    CONST_ANI_THROWINGKNIFE = 8
    CONST_ANI_SMALLSTONE = 9
    CONST_ANI_DEATH = 10
    CONST_ANI_LARGEROCK = 11
    CONST_ANI_SNOWBALL = 12
    CONST_ANI_POWERBOLT = 13
    CONST_ANI_POISON = 14
    CONST_ANI_INFERNALBOLT = 15
    CONST_ANI_HUNTINGSPEAR = 16
    CONST_ANI_ENCHANTEDSPEAR = 17
    CONST_ANI_REDSTAR = 18
    CONST_ANI_GREENSTAR = 19
    CONST_ANI_ROYALSPEAR = 20
    CONST_ANI_SNIPERARROW = 21
    CONST_ANI_ONYXARROW = 22
    CONST_ANI_PIERCINGBOLT = 23
    CONST_ANI_WHIRLWINDSWORD = 24
    CONST_ANI_WHIRLWINDAXE = 25
    CONST_ANI_WHIRLWINDCLUB = 26
    CONST_ANI_ETHEREALSPEAR = 27
    CONST_ANI_ICE = 28
    CONST_ANI_EARTH = 29
    CONST_ANI_HOLY = 30
    CONST_ANI_SUDDENDEATH = 31
    CONST_ANI_FLASHARROW = 32
    CONST_ANI_FLAMMINGARROW = 33
    CONST_ANI_SHIVERARROW = 34
    CONST_ANI_ENERGYBALL = 35
    CONST_ANI_SMALLICE = 36
    CONST_ANI_SMALLHOLY = 37
    CONST_ANI_SMALLEARTH = 38
    CONST_ANI_EARTHARROW = 39
    CONST_ANI_EXPLOSION = 40
    CONST_ANI_CAKE = 41
    CONST_ANI_WEAPONTYPE = 254
    CONST_ANI_NONE = 255
    CONST_ANI_LAST = CONST_ANI_CAKE
    
    TALKTYPE_FIRST = 1
    TALKTYPE_SAY = TALKTYPE_FIRST
    TALKTYPE_WHISPER = 2
    TALKTYPE_YELL = 3
    TALKTYPE_PRIVATE_PN = 4
    TALKTYPE_PRIVATE_NP = 5
    TALKTYPE_PRIVATE = 6
    TALKTYPE_CHANNEL_Y = 7
    TALKTYPE_CHANNEL_W = 8
    TALKTYPE_RVR_CHANNEL = 9
    TALKTYPE_RVR_ANSWER = 10
    TALKTYPE_RVR_CONTINUE = 11
    TALKTYPE_BROADCAST = 12
    TALKTYPE_CHANNEL_RN = 13
    TALKTYPE_PRIVATE_RED = 14
    TALKTYPE_CHANNEL_O = 15
    TALKTYPE_CHANNEL_RA = 17
    TALKTYPE_MONSTER = 19
    TALKTYPE_MONSTER_YELL = 20
    TALKTYPE_LAST = TALKTYPE_MONSTER_YELL
    
    TALKTYPE_TYPES = {
      ["say"] = TALKTYPE_SAY,
      ["whisper"] = TALKTYPE_WHISPER,
      ["yell"] = TALKTYPE_YELL,
      ["private-playernpc"] = TALKTYPE_PRIVATE_PN,
      ["private-npcplayer"] = TALKTYPE_PRIVATE_NP,
      ["private"] = TALKTYPE_PRIVATE,
      ["channel-yellow"] = TALKTYPE_CHANNEL_Y,
      ["channel-white"] = TALKTYPE_CHANNEL_W,
      ["rvr-channel"] = TALKTYPE_RVR_CHANNEL,
      ["rvr-answer"] = TALKTYPE_RVR_ANSWER,
      ["rvr-continue"] = TALKTYPE_RVR_CONTINUE,
      ["broadcast"] = TALKTYPE_BROADCAST,
      ["channel-red"] = TALKTYPE_CHANNEL_RN,
      ["channel-orange"] = TALKTYPE_CHANNEL_O,
      ["channel-redanonymous"] = TALKTYPE_CHANNEL_RA,
      ["monster"] = TALKTYPE_MONSTER,
      ["monster-yell"] = TALKTYPE_MONSTER_YELL
    }
    
    MESSAGE_FIRST = 18
    MESSAGE_STATUS_CONSOLE_RED = MESSAGE_FIRST
    MESSAGE_EVENT_ORANGE = 19
    MESSAGE_STATUS_CONSOLE_ORANGE = 20
    MESSAGE_STATUS_WARNING = 21
    MESSAGE_EVENT_ADVANCE = 22
    MESSAGE_EVENT_DEFAULT = 23
    MESSAGE_STATUS_DEFAULT = 24
    MESSAGE_INFO_DESCR = 25
    MESSAGE_STATUS_SMALL = 26
    MESSAGE_STATUS_CONSOLE_BLUE = 27
    MESSAGE_LAST = MESSAGE_STATUS_CONSOLE_BLUE
    
    MESSAGE_TYPES = {
      ["advance"] = MESSAGE_EVENT_ADVANCE,
      ["event"] = MESSAGE_EVENT_DEFAULT,
      ["white"] = MESSAGE_EVENT_DEFAULT,
      ["orange"] = MESSAGE_STATUS_CONSOLE_ORANGE,
      ["info"] = MESSAGE_INFO_DESCR,
      ["green"] = MESSAGE_INFO_DESCR,
      ["small"] = MESSAGE_STATUS_SMALL,
      ["blue"] = MESSAGE_STATUS_CONSOLE_BLUE,
      ["red"] = MESSAGE_STATUS_CONSOLE_RED,
      ["warning"] = MESSAGE_STATUS_WARNING,
      ["status"] = MESSAGE_STATUS_DEFAULT
    }
    
    COLOR_BLACK = 0
    COLOR_BLUE = 5
    COLOR_GREEN = 18
    COLOR_TEAL = 35
    COLOR_LIGHTGREEN = 66
    COLOR_DARKBROWN = 78
    COLOR_LIGHTBLUE = 89
    COLOR_DARKPURPLE = 112
    COLOR_BROWN = 120
    COLOR_GREY = 129
    COLOR_DARKRED = 144
    COLOR_DARKPINK = 152
    COLOR_PURPLE = 154
    COLOR_DARKORANGE = 156
    COLOR_RED = 180
    COLOR_PINK = 190
    COLOR_ORANGE = 192
    COLOR_DARKYELLOW = 205
    COLOR_YELLOW = 210
    COLOR_WHITE = 215
    COLOR_WATER = 227
    COLOR_NORMAL = 128
    COLOR_FIRE2 = 192
    COLOR_FIGHTING = 156
    COLOR_FLYING = 173
    COLOR_GRASS = 25
    COLOR_POISON = 147
    COLOR_ELECTRIC = 210
    COLOR_GROUND = 78
    COLOR_PSYCHIC = 197
    COLOR_ROCK = 120
    COLOR_ICE = 35
    COLOR_BUG = 18
    COLOR_DRAGON = 220
    COLOR_GHOST = 215
    COLOR_NONE = 255
    
    
    MAPMARK_TICK = 0
    MAPMARK_QUESTION = 1
    MAPMARK_EXCLAMATION = 2
    MAPMARK_STAR = 3
    MAPMARK_CROSS = 4
    MAPMARK_TEMPLE = 5
    MAPMARK_KISS = 6
    MAPMARK_SHOVEL = 7
    MAPMARK_SWORD = 8
    MAPMARK_FLAG = 9
    MAPMARK_LOCK = 10
    MAPMARK_BAG = 11
    MAPMARK_SKULL = 12
    MAPMARK_DOLLAR = 13
    MAPMARK_REDNORTH = 14
    MAPMARK_REDSOUTH = 15
    MAPMARK_REDEAST = 16
    MAPMARK_REDWEST = 17
    MAPMARK_GREENNORTH = 18
    MAPMARK_GREENSOUTH = 19
    
    ITEM_TYPE_DEPOT = 1
    ITEM_TYPE_MAILBOX = 2
    ITEM_TYPE_TRASHHOLDER = 3
    ITEM_TYPE_CONTAINER = 4
    ITEM_TYPE_DOOR = 5
    ITEM_TYPE_MAGICFIELD = 6
    ITEM_TYPE_TELEPORT = 7
    ITEM_TYPE_BED = 8
    ITEM_TYPE_LEVELDOOR = 9
    
    CONST_PROP_BLOCKSOLID = 0
    CONST_PROP_HASHEIGHT = 1
    CONST_PROP_BLOCKPROJECTILE = 2
    CONST_PROP_BLOCKPATHFIND = 3
    CONST_PROP_ISVERTICAL = 4
    CONST_PROP_ISHORIZONTAL = 5
    CONST_PROP_MOVEABLE = 6
    CONST_PROP_BLOCKINGANDNOTMOVEABLE = 7
    CONST_PROP_SUPPORTHANGABLE = 8
    
    MANAGER_NONE = 0
    MANAGER_NEW = 1
    MANAGER_ACCOUNT = 2
    MANAGER_NAMELOCK = 3
    
    PLAYERSEX_FEMALE = 0
    PLAYERSEX_MALE = 1
    PLAYERSEX_GAMEMASTER = 2
    
    PLAYERLOSS_EXPERIENCE = 0
    PLAYERLOSS_MANA = 1
    PLAYERLOSS_SKILLS = 2
    PLAYERLOSS_CONTAINERS = 3
    PLAYERLOSS_ITEMS = 4
    
    STATSCHANGE_HEALTHGAIN = 0
    STATSCHANGE_HEALTHLOSS = 1
    STATSCHANGE_MANAGAIN = 2
    STATSCHANGE_MANALOSS = 3
    
    SKILL_FIST = 0
    SKILL_CLUB = 1
    SKILL_SWORD = 2
    SKILL_AXE = 3
    SKILL_DISTANCE = 4
    SKILL_SHIELD = 5
    SKILL_FISHING = 6
    SKILL__MAGLEVEL = 7
    SKILL__LEVEL = 8
    
    SKILL_NAMES = {
      [sKILL_FIST] = "fist fighting",
      [sKILL_CLUB] = "club fighting",
      [sKILL_SWORD] = "sword fighting",
      [sKILL_AXE] = "axe fighting",
      [sKILL_DISTANCE] = "distance fighting",
      [sKILL_SHIELD] = "shielding",
      [sKILL_FISHING] = "fishing",
      [sKILL__LEVEL] = "level",
      [sKILL__MAGLEVEL] = "magic level"
    }
    
    SKILL_IDS = {
      ["fist"] = SKILL_FIST,
      ["club"] = SKILL_CLUB,
      ["sword"] = SKILL_SWORD,
      ["axe"] = SKILL_AXE,
      ["distance"] = SKILL_DISTANCE,
      ["dist"] = SKILL_DISTANCE,
      ["shielding"] = SKILL_SHIELD,
      ["shield"] = SKILL_SHIELD,
      ["fishing"] = SKILL_FISHING,
      ["fish"] = SKILL_FISHING,
      ["level"] = SKILL__LEVEL,
      ["magic"] = SKILL__MAGLEVEL
    }
    
    GUILDLEVEL_MEMBER = 1
    GUILDLEVEL_VICE = 2
    GUILDLEVEL_LEADER = 3
    
    SKULL_NONE = 0
    SKULL_YELLOW = 1
    SKULL_GREEN = 2
    SKULL_WHITE = 3
    SKULL_RED = 4
    SKULL_BLACK = 5
    SKULL_LAST = SKULL_BLACK
    
    SHIELD_NONE = 0
    SHIELD_WHITEYELLOW = 1
    SHIELD_WHITEBLUE = 2
    SHIELD_BLUE = 3
    SHIELD_YELLOW = 4
    SHIELD_BLUE_SHAREDEXP = 5
    SHIELD_YELLOW_SHAREDEXP = 6
    SHIELD_BLUE_NOSHAREDEXP_BLINK = 7
    SHIELD_YELLOW_NOSHAREDEXP_BLINK = 8
    SHIELD_BLUE_NOSHAREDEXP = 9
    SHIELD_YELLOW_NOSHAREDEXP = 10
    SHIELD_LAST = SHIELD_YELLOW_NOSHAREDEXP
    
    WORLDTYPE_NO_PVP = 1
    WORLDTYPE_PVP = 2
    WORLDTYPE_PVP_ENFORCED = 3
    
    DATABASE_ENGINE_NONE = 0
    DATABASE_ENGINE_MYSQL = 1
    DATABASE_ENGINE_SQLITE = 2
    DATABASE_ENGINE_POSTGRESQL = 3
    DATABASE_ENGINE_ODBC = 4
    
    GAMESTATE_STARTUP = 1
    GAMESTATE_INIT = 2
    GAMESTATE_NORMAL = 3
    GAMESTATE_MAINTAIN = 4
    GAMESTATE_CLOSED = 5
    GAMESTATE_CLOSING = 6
    GAMESTATE_SHUTDOWN = 7
    
    RELOAD_ACTIONS = 1
    RELOAD_CHAT = 2
    RELOAD_CONFIG = 3
    RELOAD_CREATUREEVENTS = 4
    RELOAD_GAMESERVERS = 5
    RELOAD_GLOBALEVENTS = 6
    RELOAD_GROUPS = 7
    RELOAD_HIGHSCORES = 8
    RELOAD_HOUSEPRICES = 9
    RELOAD_ITEMS = 10
    RELOAD_MONSTERS = 11
    RELOAD_MOVEEVENTS = 12
    RELOAD_NPCS = 13
    RELOAD_OUTFITS = 14
    RELOAD_QUESTS = 15
    RELOAD_RAIDS = 16
    RELOAD_SPELLS = 17
    RELOAD_STAGES = 18
    RELOAD_TALKACTIONS = 19
    RELOAD_VOCATIONS = 20
    RELOAD_WEAPONS = 21
    RELOAD_MODS = 22
    RELOAD_ALL = 23
    
    BAN_NONE = 0
    BAN_IP = 1
    BAN_PLAYER = 2
    BAN_ACCOUNT = 3
    BAN_NOTATION = 4
    BAN_STATEMENT = 5
    
    PLAYERBAN_NONE = 0
    PLAYERBAN_REPORT = 1
    PLAYERBAN_LOCK = 2
    PLAYERBAN_BANISHMENT = 3
    
    CHANNEL_GUILD = 0
    CHANNEL_PARTY = 1
    CHANNEL_RVR = 3
    CHANNEL_HELP = 9
    CHANNEL_DEFAULT = 0xFFFE
    CHANNEL_PRIVATE = 0xFFFF
    
    STACKPOS_GROUND = 0
    STACKPOS_TOP_CREATURE = 253
    STACKPOS_TOP_FIELD = 254
    STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE = 255
    
    WEAPON_NONE = 0
    WEAPON_SWORD = 1
    WEAPON_CLUB = 2
    WEAPON_AXE = 3
    WEAPON_SHIELD = 4
    WEAPON_DIST = 5
    WEAPON_WAND = 6
    WEAPON_AMMO = 7
    WEAPON_FIST = 8
    
    ACTION_NOTATION = 0
    ACTION_NAMEREPORT = 1
    ACTION_BANISHMENT = 2
    ACTION_BANREPORT = 3
    ACTION_BANFINAL = 4
    ACTION_BANREPORTFINAL = 5
    ACTION_STATEMENT = 6
    ACTION_DELETION = 7
    ACTION_NAMELOCK = 8
    ACTION_BANLOCK = 9
    ACTION_BANLOCKFINAL = 10
    ACTION_PLACEHOLDER = 11
    
    ITEM_GOLD_COIN = 2148
    ITEM_PLATINUM_COIN = 2152
    ITEM_CRYSTAL_COIN = 2160
    ITEM_FISH = 2667
    ITEM_WORM = 3976
    ITEM_MECHANICAL_FISH = 10224
    ITEM_NAIL = 8309
    ITEM_MECHANICAL_FISHING_ROD = 10223
    ITEM_GREEN_PERCH = 7159
    ITEM_RAINBOW_TROUT = 7158
    ITEM_NORTHERN_PIKE = 2669
    ITEM_PARCEL = 2595
    ITEM_LABEL = 2599
    ITEM_GLOWING_SWITCH = 11060
    
    RETURNVALUE_DONTSHOWMESSAGE = 0
    RETURNVALUE_NOERROR = 1
    RETURNVALUE_NOTPOSSIBLE = 2
    RETURNVALUE_NOTENOUGHROOM = 3
    RETURNVALUE_PLAYERISPZLOCKED = 4
    RETURNVALUE_PLAYERISNOTINVITED = 5
    RETURNVALUE_CANNOTTHROW = 6
    RETURNVALUE_THEREISNOWAY = 7
    RETURNVALUE_DESTINATIONOUTOFREACH = 8
    RETURNVALUE_CREATUREBLOCK = 9
    RETURNVALUE_NOTMOVEABLE = 10
    RETURNVALUE_DROPTWOHANDEDITEM = 11
    RETURNVALUE_BOTHHANDSNEEDTOBEFREE = 12
    RETURNVALUE_CANONLYUSEONEWEAPON = 13
    RETURNVALUE_NEEDEXCHANGE = 14
    RETURNVALUE_CANNOTBEDRESSED = 15
    RETURNVALUE_PUTTHISOBJECTINYOURHAND = 16
    RETURNVALUE_PUTTHISOBJECTINBOTHHANDS = 17
    RETURNVALUE_TOOFARAWAY = 18
    RETURNVALUE_FIRSTGODOWNSTAIRS = 19
    RETURNVALUE_FIRSTGOUPSTAIRS = 20
    RETURNVALUE_CONTAINERNOTENOUGHROOM = 21
    RETURNVALUE_NOTENOUGHCAPACITY = 22
    RETURNVALUE_CANNOTPICKUP = 23
    RETURNVALUE_THISISIMPOSSIBLE = 24
    RETURNVALUE_DEPOTISFULL = 25
    RETURNVALUE_CREATUREDOESNOTEXIST = 26
    RETURNVALUE_CANNOTUSETHISOBJECT = 27
    RETURNVALUE_PLAYERWITHTHISNAMEISNOTONLINE = 28
    RETURNVALUE_NOTREQUIREDLEVELTOUSERUNE = 29
    RETURNVALUE_YOUAREALREADYTRADING = 30
    RETURNVALUE_THISPLAYERISALREADYTRADING = 31
    RETURNVALUE_YOUMAYNOTLOGOUTDURINGAFIGHT = 32
    RETURNVALUE_DIRECTPLAYERSHOOT = 33
    RETURNVALUE_NOTENOUGHLEVEL = 34
    RETURNVALUE_NOTENOUGHMAGICLEVEL = 35
    RETURNVALUE_NOTENOUGHMANA = 36
    RETURNVALUE_NOTENOUGHSOUL = 37
    RETURNVALUE_YOUAREEXHAUSTED = 38
    RETURNVALUE_PLAYERISNOTREACHABLE = 39
    RETURNVALUE_CANONLYUSETHISRUNEONCREATURES = 40
    RETURNVALUE_ACTIONNOTPERMITTEDINPROTECTIONZONE = 41
    RETURNVALUE_YOUMAYNOTATTACKTHISPLAYER = 42
    RETURNVALUE_YOUMAYNOTATTACKAPERSONINPROTECTIONZONE = 43
    RETURNVALUE_YOUMAYNOTATTACKAPERSONWHILEINPROTECTIONZONE = 44
    RETURNVALUE_YOUMAYNOTATTACKTHISCREATURE = 45
    RETURNVALUE_YOUCANONLYUSEITONCREATURES = 46
    RETURNVALUE_CREATUREISNOTREACHABLE = 47
    RETURNVALUE_TURNSECUREMODETOATTACKUNMARKEDPLAYERS = 48
    RETURNVALUE_YOUNEEDPREMIUMACCOUNT = 49
    RETURNVALUE_YOUNEEDTOLEARNTHISSPELL = 50
    RETURNVALUE_YOURVOCATIONCANNOTUSETHISSPELL = 51
    RETURNVALUE_YOUNEEDAWEAPONTOUSETHISSPELL = 52
    RETURNVALUE_PLAYERISPZLOCKEDLEAVEPVPZONE = 53
    RETURNVALUE_PLAYERISPZLOCKEDENTERPVPZONE = 54
    RETURNVALUE_ACTIONNOTPERMITTEDINANOPVPZONE = 55
    RETURNVALUE_YOUCANNOTLOGOUTHERE = 56
    RETURNVALUE_YOUNEEDAMAGICITEMTOCASTSPELL = 57
    RETURNVALUE_CANNOTCONJUREITEMHERE = 58
    RETURNVALUE_YOUNEEDTOSPLITYOURSPEARS = 59
    RETURNVALUE_NAMEISTOOAMBIGUOUS = 60
    RETURNVALUE_CANONLYUSEONESHIELD = 61
    RETURNVALUE_YOUARENOTTHEOWNER = 62
    RETURNVALUE_YOUMAYNOTCASTAREAONBLACKSKULL = 63
    RETURNVALUE_TILEISFULL = 64
    
    CONTAINER_POSITION = 0xFFFF
    EMPTY_STORAGE = -1
    EMPTY_RESULT = -1
    ITEMCOUNT_MAX = 100
    
    AUTOID_PLAYERS = 0x10000000
    AUTOID_MONSTERS = 0x40000000
    AUTOID_NPCS = 0x80000000
    
    PLAYERFLAG_CANNOTUSECOMBAT = 0
    PLAYERFLAG_CANNOTATTACKPLAYER = 1
    PLAYERFLAG_CANNOTATTACKMONSTER = 2
    PLAYERFLAG_CANNOTBEATTACKED = 3
    PLAYERFLAG_CANCONVINCEALL = 4
    PLAYERFLAG_CANSUMMONALL = 5
    PLAYERFLAG_CANILLUSIONALL = 6
    PLAYERFLAG_CANSENSEINVISIBILITY = 7
    PLAYERFLAG_IGNOREDBYMONSTERS = 8
    PLAYERFLAG_NOTGAININFIGHT = 9
    PLAYERFLAG_HASINFINITEMANA = 10
    PLAYERFLAG_HASINFINITESOUL = 11
    PLAYERFLAG_HASNOEXHAUSTION = 12
    PLAYERFLAG_CANNOTUSESPELLS = 13
    PLAYERFLAG_CANNOTPICKUPITEM = 14
    PLAYERFLAG_CANALWAYSLOGIN = 15
    PLAYERFLAG_CANBROADCAST = 16
    PLAYERFLAG_CANEDITHOUSES = 17
    PLAYERFLAG_CANNOTBEBANNED = 18
    PLAYERFLAG_CANNOTBEPUSHED = 19
    PLAYERFLAG_HASINFINITECAPACITY = 20
    PLAYERFLAG_CANPUSHALLCREATURES = 21
    PLAYERFLAG_CANTALKREDPRIVATE = 22
    PLAYERFLAG_CANTALKREDCHANNEL = 23
    PLAYERFLAG_TALKORANGEHELPCHANNEL = 24
    PLAYERFLAG_NOTGAINEXPERIENCE = 25
    PLAYERFLAG_NOTGAINMANA = 26
    PLAYERFLAG_NOTGAINHEALTH = 27
    PLAYERFLAG_NOTGAINSKILL = 28
    PLAYERFLAG_SETMAXSPEED = 29
    PLAYERFLAG_SPECIALVIP = 30
    PLAYERFLAG_NOTGENERATELOOT = 31
    PLAYERFLAG_CANTALKREDCHANNELANONYMOUS = 32
    PLAYERFLAG_IGNOREPROTECTIONZONE = 33
    PLAYERFLAG_IGNORESPELLCHECK = 34
    PLAYERFLAG_IGNOREWEAPONCHECK = 35
    PLAYERFLAG_CANNOTBEMUTED = 36
    PLAYERFLAG_ISALWAYSPREMIUM = 37
    PLAYERFLAG_CANANSWERRULEVIOLATIONS = 38
    PLAYERFLAG_39 = 39 -- ignore
    PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION = 40
    PLAYERFLAG_HASINFINITESTAMINA = 41
    PLAYERFLAG_CANNOTMOVEITEMS = 42
    PLAYERFLAG_CANNOTMOVECREATURES = 43
    PLAYERFLAG_CANREPORTBUGS = 44
    PLAYERFLAG_45 = 45 -- ignore
    PLAYERFLAG_CANNOTBESEEN = 46
    
    PLAYERCUSTOMFLAG_ALLOWIDLE = 0
    PLAYERCUSTOMFLAG_CANSEEPOSITION   = 1
    PLAYERCUSTOMFLAG_CANSEEITEMDETAILS = 2
    PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS = 3
    PLAYERCUSTOMFLAG_NOTSEARCHABLE = 4
    PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES = 5
    PLAYERCUSTOMFLAG_CANTHROWANYWHERE = 6
    PLAYERCUSTOMFLAG_CANPUSHALLITEMS = 7
    PLAYERCUSTOMFLAG_CANMOVEANYWHERE = 8
    PLAYERCUSTOMFLAG_CANMOVEFROMFAR = 9
    PLAYERCUSTOMFLAG_CANLOGINMULTIPLECHARACTERS = 10
    PLAYERCUSTOMFLAG_HASFULLLIGHT = 11
    PLAYERCUSTOMFLAG_CANLOGOUTANYTIME = 12
    PLAYERCUSTOMFLAG_HIDELEVEL = 13
    PLAYERCUSTOMFLAG_ISPROTECTED = 14
    PLAYERCUSTOMFLAG_ISIMMUNE = 15
    PLAYERCUSTOMFLAG_NOTGAINSKULL = 16
    PLAYERCUSTOMFLAG_NOTGAINUNJUSTIFIED = 17
    PLAYERCUSTOMFLAG_HIDELEVEL = 18
    PLAYERCUSTOMFLAG_IGNOREPACIFICATION = 19
    PLAYERCUSTOMFLAG_CANSTAIRHOP = 20
    PLAYERCUSTOMFLAG_CANTURNHOP = 21
    PLAYERCUSTOMFLAG_IGNOREHOUSERENT = 22
    PLAYERCUSTOMFLAG_CANWEARALLADDONS = 23
    
    maleOutfits = {159, 129, 130, 131, 132, 133, 134, 143, 144, 145, 146, 151, 152, 153, 154, 251, 268, 273, 278, 289, 325, 328, 335}
    femaleOutfits = {160, 137, 138, 139, 140, 141, 142, 147, 148, 149, 150, 155, 156, 157, 158, 252, 269, 270, 279, 288, 324, 329, 336}
    
    doors = {[1209] = 1211, [1210] = 1211, [1212] = 1214, [1213] = 1214, [1219] = 1220, [1221] = 1222, [1231] = 1233, [1232] = 1233, [1234] = 1236, [1235] = 1236, [1237] = 1238, [1239] = 1240, [1249] = 1251, [1250] = 1251, [1252] = 1254, [1253] = 1254, [1539] = 1540, [1541] = 1542, [3535] = 3537, [3536] = 3537, [3538] = 3539, [3544] = 3546, [3545] = 3546, [3547] = 3548, [4913] = 4915, [4914] = 4915, [4916] = 4918, [4917] = 4918, [5082] = 5083, [5084] = 5085, [5098] = 5100, [5099] = 5100, [5101] = 5102, [5107] = 5109, [5108] = 5109, [5110] = 5111, [5116] = 5118, [5117] = 5118, [5119] = 5120, [5125] = 5127, [5126] = 5127, [5128] = 5129, [5134] = 5136, [5135] = 5136, [5137] = 5139, [5138] = 5139, [5140] = 5142, [5141] = 5142, [5143] = 5145, [5144] = 5145, [5278] = 5280, [5279] = 5280, [5281] = 5283, [5282] = 5283, [5284] = 5285, [5286] = 5287, [5515] = 5516, [5517] = 5518, [5732] = 5734, [5733] = 5734, [5735] = 5737, [5736] = 5737, [6192] = 6194, [6193] = 6194, [6195] = 6197, [6196] = 6197, [6198] = 6199, [6200] = 6201, [6249] = 6251, [6250] = 6251, [6252] = 6254, [6253] = 6254, [6255] = 6256, [6257] = 6258, [6795] = 6796, [6797] = 6798, [6799] = 6800, [6801] = 6802, [6891] = 6893, [6892] = 6893, [6894] = 6895, [6900] = 6902, [6901] = 6902, [6903] = 6904, [7033] = 7035, [7034] = 7035, [7036] = 7037, [7042] = 7044, [7043] = 7044, [7045] = 7046, [7054] = 7055, [7056] = 7057, [8541] = 8543, [8542] = 8543, [8544] = 8546, [8545] = 8546, [8547] = 8548, [8549] = 8550, [9165] = 9167, [9166] = 9167, [9168] = 9170, [9169] = 9170, [9171] = 9172, [9173] = 9174, [9267] = 9269, [9268] = 9269, [9270] = 9272, [9271] = 9272, [9273] = 9274, [9275] = 9276, [10276] = 10277, [10274] = 10275, [10268] = 10270, [10269] = 10270, [10271] = 10273, [10272] = 10273, [10471] = 10472, [10480] = 10481, [10477] = 10479, [10478] = 10479, [10468] = 10470, [10469] = 10470, [10774] = 10776, [10775] = 10776, [10779] = 10780, [10781] = 10782, [10783] = 10785, [10784] = 10785, [10788] = 10789, [10790] = 10791}
    closingDoors = {1224, 1226, 1228, 1230, 1242, 1244, 1246, 1248, 1256, 1258, 1260, 1262, 3541, 3543, 3550, 3552, 5104, 5106, 5113, 5115, 5122, 5124, 5131, 5133, 5289, 5291, 5293, 5295, 6203, 6205, 6207, 6209, 6260, 6262, 6264, 6266, 6897, 6899, 6906, 6908, 7039, 7041, 7048, 7050, 8552, 8554, 8556, 8558, 9176, 9178, 9180, 9182, 9278, 9280, 9282, 9284, 10279, 10281, 10283, 10285, 10474, 10476, 10483, 10485, 10780, 10782, 10789, 10791}
    verticalOpenDoors = {1211, 1220, 1224, 1228, 1233, 1238, 1242, 1246, 1251, 1256, 1260, 1540, 3546, 3548, 3550, 3552, 4915, 5083, 5109, 5111, 5113, 5115, 5127, 5129, 5131, 5133, 5142, 5145, 5283, 5285, 5289, 5293, 5516, 5737, 5749, 6194, 6199, 6203, 6207, 6251, 6256, 6260, 6264, 6798, 6802, 6902, 6904, 6906, 6908, 7044, 7046, 7048, 7050, 7055, 8543, 8548, 8552, 8556, 9167, 9172, 9269, 9274, 9278, 9282, 10270, 10275, 10279, 10283, 10479, 10481, 10483, 10485, 10789, 10791}
    horizontalOpenDoors = {1214, 1222, 1226, 1230, 1236, 1240, 1244, 1248, 1254, 1258, 1262, 1542, 3537, 3539, 3541, 3543, 4918, 5085, 5100, 5102, 5104, 5106, 5118, 5120, 5122, 5124, 5136, 5139, 5280, 5287, 5291, 5295, 5518, 5734, 5746, 6197, 6201, 6205, 6209, 6254, 6258, 6262, 6266, 6796, 6800, 6893, 6895, 6897, 6899, 7035, 7037, 7039, 7041, 7057, 8546, 8550, 8554, 8558, 9170, 9174, 9272, 9276, 9280, 9284, 10273, 10277, 10281, 10285, 10470, 10472, 10474, 10476, 10780, 10782}
    specialDoors = {1223, 1225, 1241, 1243, 1255, 1257, 3542, 3551, 5105, 5114, 5123, 5132, 5288, 5290, 5745, 5748, 6202, 6204, 6259, 6261, 6898, 6907, 7040, 7049, 8551, 8553, 9175, 9177, 9277, 9279, 10278, 10280, 10475, 10484, 10781, 10790}
    keys = {2086, 2087, 2088, 2089, 2090, 2091, 2092, 10032, 10091}
    
    enchantableGems = {2147, 2146, 2149, 2150}
    enchantableItems = {2383, 7383, 7384, 7406, 7402, 2429, 2430, 7389, 7380, 2454, 2423, 2445, 7415, 7392, 2391, 2544, 8905}
    enchantingAltars = {
      {7504, 7505, 7506, 7507},
      {7508, 7509, 7510, 7511},
      {7516, 7517, 7518, 7519},
      {7512, 7513, 7514, 7515}
    }
    enchantedGems = {7760, 7759, 7761, 7762}
    enchantedItems = {
      [2383] = {7744, 7763, 7854, 7869},
      [7383] = {7745, 7764, 7855, 7870},
      [7384] = {7746, 7765, 7856, 7871},
      [7406] = {7747, 7766, 7857, 7872},
      [7402] = {7748, 7767, 7858, 7873},
      [2429] = {7749, 7768, 7859, 7874},
      [2430] = {7750, 7769, 7860, 7875},
      [7389] = {7751, 7770, 7861, 7876},
      [7380] = {7752, 7771, 7862, 7877},
      [2454] = {7753, 7772, 7863, 7878},
      [2423] = {7754, 7773, 7864, 7879},
      [2445] = {7755, 7774, 7865, 7880},
      [7415] = {7756, 7775, 7866, 7881},
      [7392] = {7757, 7776, 7867, 7882},
      [2391] = {7758, 7777, 7868, 7883},
      [2544] = {7840, 7839, 7850, 7838},
      [8905] = {8906, 8907, 8909, 8908}
    }

     

    USE ISSO PARA PARAR O CRASH, AKI PAROU

     

     

     

    vei se tem msn? me passa qro conversa com tigo ???

  8. Gente me desculpem ae mas eu estou de saco cheio com isso eu ja fis tudo o que podia e mais um pouco pro meu server fica online e ese crash maldito filho da puta nao quer sair ja fis o mapa inteiro respawm por respawm trokei o mapa pra 1 q eu fis arumei os lib q tem ake no site pra por gente me ajudem porfavor eu nao sei mais o que faser. rep+ pra quem me ajudar.

  9. bom gente queria saber aqui no xtibia ja pesquisei mas nao encontrei mt coisa não, queria saber se ganhar dinheiro com otserv é contra lei, algo do tipo que poderia levar a cadeia... etc.. e como eu poderia registrar meu server para ser "legal" diante a lei, pq eu tava pensando aqui eu poso por online mas vem 1 criança jogar meu serv compra algo e o pai descobre o cara me poe na justica.... e dai como fica. queria saber ai se tem algum mode de registrar meu server algo do tipo dexa ele legal em vez de ilegal. nao sei se vao conseguir entender o que estou pedindo mas porfavor me ajudem ai.

  10. gente jaj pesquisei mt mas olha meu error e o seguinte eu tenho 2 pc aqui em casa 1 e o q eu tenho o server e o otro e pra eu joga coloquei o 2º pc ontem e hj fui tentar entrar pelo pc que eu jogo, nao da pra entra ele dis error 200002 e tmb eu li um topico que pra entra em um server da msm rede e presiso ter um tal de local host o ip olha vou mostrar

     

    ese server tem o local ip address (ese server é 8.0)

     

    :: Running on host CLEYTON

    :: Local IP address(es): 10.1.1.**

    :: Global IP address: 192.168.222.***

     

     

     

    mas o meu nao tem olhem (ese server pe 8.54)

     

    [21/01/2011 13:26:09] >> Initializing game state modules and registering services...

    [21/01/2011 13:26:09] > Global address: 192.168.222.***

    [21/01/2011 13:26:09] > Local ports: 7171 7172

     

     

    bem queria pedir ajuda se algum pudece me ajudar pq queria poder jogar no meu server pelo otro pc pq eu so consigo jogar com o pc que ta o server.

     

     

     

     

    mt obrigado e rep+ para quem ajudar :)

  11. Ou pessoal olha o que ta disendo no meu ot quando eu coloquei o fly

     

    Quando o player loga aparece isto:

    [21/10/2010  11:53:35] Lua Script Error: [CreatureScript Interface] 
    [21/10/2010  11:53:35] data/creaturescripts/scripts/login.lua:onLogin
    
    [21/10/2010  11:53:35] data/creaturescripts/scripts/login.lua:3: attempt to index global 'fly' (a nil value)
    
    [21/10/2010  11:53:35] Lua Script Error: [CreatureScript Interface] 
    [21/10/2010  11:53:35] data/creaturescripts/scripts/login.lua:onLogin
    
    [21/10/2010  11:53:35] data/creaturescripts/scripts/login.lua:3: attempt to index global 'fly' (a nil value)

     

    quando falo "UP"

    [21/10/2010  11:54:21] Lua Script Error: [TalkAction Interface] 
    [21/10/2010  11:54:21] data/talkactions/scripts/fly/flyup.lua:onSay
    
    [21/10/2010  11:54:21] data/talkactions/scripts/fly/flyup.lua:7: attempt to index global 'fly' (a nil value)

     

    Quando falo "DOWN"

     

    [21/10/2010  11:54:48] Lua Script Error: [TalkAction Interface] 
    [21/10/2010  11:54:48] data/talkactions/scripts/fly/flydown.lua:onSay
    
    [21/10/2010  11:54:48] data/talkactions/scripts/fly/flydown.lua:7: attempt to index global 'fly' (a nil value)

     

     

    quando eu falo !fly ele nao fas anda se alguem puder me ajudar eu agradeço estou usando um otserv 8.1

     

    agradeço desde já !!!!

     

    REP+ pra quem puder me ajudar :)

  12. Tipo do script: não sei :S

    Protocolo: World of Dragon Ball Online 2.5 (8.0)

    Servidor utilizado: WODBZ

    Nível de experiência: Medio

    Adicionais/Informações: Gente eu tenho um dbz que ele ta dando error na arena tipo vai 2 pleyers para se matar não pega pk essas coisas mas quando um perde ele more em vez de ser teleportado para fora da arena eu queria ajuda para arruma isso ja pesquisei achei alguns mas nenhum deu certo por favor alguem me ajuda :)

     

     

    desde já agradeço

     

     

    se tá no lugar errado me avisa que eu movo o tópico :)

  13. Gente não sei se aqui e o lugar certo se não for me avisem que eu movo o tópico

     

     

    Gente eu joguei o p.o online eles tem só o .exe

    o dbz br tmb só tem o .exe

     

    dai decidi criar um também mas só que não sei como privatizar o meu tibia.spr tibia.dat etc..

    queria privatizar porque é um ot de dbz e eu coloquei umas sprites que não tem pra baixar

     

     

    Obs: ja vi um topico que dis como fazer isso mas não deu certo comigo plx me ajudem

     

     

    se alguem puder me ajudar eu agradeço muito

  14. olha gente fui testa ese script no mue ot e nao funfou tipow ele tem q diser !fly e o nome do char mas quando eu flao iso ele fala q é pra fal up ou down mas quando flao up ele da eror e nao sai do lugar alguam pode me ajuda????????? olha os eror no up e no down

     

     

     

    up:

     

     [Error - TalkAction Interface] 
    data/talkactions/scripts/fly/flyup.lua:onSay
    Description: 
    data/talkactions/scripts/fly/flyup.lua:12: attempt to call global 'hasSqm' (a nil value)
    stack traceback:
    data/talkactions/scripts/fly/flyup.lua:12: in function <data/talkactions/scripts/fly/flyup.lua:1>

     

    down:

     

     [Error - TalkAction Interface] 
    data/talkactions/scripts/fly/flydown.lua:onSay
    Description: 
    data/lib/flylib.lua:205: attempt to call global 'hasSqm' (a nil value)
    stack traceback:
    data/lib/flylib.lua:205: in function 'getSqmId'
    data/talkactions/scripts/fly/flydown.lua:15: in function <data/talkactions/scripts/fly/flydown.lua:1>

     

    gente quando eu logo ele da isto

     

     

    [Error - CreatureScript Interface] 
    data/creaturescripts/scripts/login.lua:onLogin
    Description: 
    data/lib/flylib.lua:214: attempt to call global 'hasSqm' (a nil value)
    stack traceback:
    	data/lib/flylib.lua:214: in function 'doItem'
    	data/lib/flylib.lua:227: in function 'gerarEmVolta'
    	data/lib/flylib.lua:76: in function 'login'
    	data/creaturescripts/scripts/login.lua:17: in function <data/creaturescripts/scripts/login.lua:6>
    

     

     

     

     

     

    AJUDEM PLEASEEE

  15. Tipo do script: Script Balance Systeam War

    Protocolo (versão do Tibia): 8.6

    Servidor utilizado:rookwar

    Nível de experiência: sei faser alguns script , sou mapper , , nivel medio :)

    Adicionais/Informações:

     

    Olá gente nao sei se este e o local certo mas se nao for me avisem, gente queria um script de balance system tipo tem 2 team no meu war quando entra 1 player pro team green tem q entrar otro pro team red para liberar o tp dnv eu acho que ese script e silmples pq ja vi em mts war ese tipo de script

     

    bom entao valeu se conseguirem me ajudar eu agradeço muito

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...