Ir para conteúdo

Bizzle

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Bizzle recebeu reputação de Xurumela em (Resolvido)Onde aumentar o número de efeitos   
    Respondi à um tópico com a mesma questão que o seu..enfim, vamos lá.

    Primeiramente, você precisará da source do distro usado em seu servidor ou uma source compatível com a versão do seu servidor.
    Tendo elas, abra o arquivo .dev (com o Dev-C++, é claro), ou se apenas possuir arquivos .cpp e .h e você não sabe como criar um projeto para ser compilado, veja um tutorial aqui. Vamos dar continuidade..



    No arquivo const.h, procure por:
    enum MagicEffect_t

     
    Você poderá notar que o código só estará configurado até o último efeito (no caso, 68):
    enum MagicEffect_t { MAGIC_EFFECT_DRAW_BLOOD = 0x00, MAGIC_EFFECT_LOSE_ENERGY = 0x01, MAGIC_EFFECT_POFF = 0x02, MAGIC_EFFECT_BLOCKHIT = 0x03, MAGIC_EFFECT_EXPLOSION_AREA = 0x04, MAGIC_EFFECT_EXPLOSION_DAMAGE = 0x05, MAGIC_EFFECT_FIRE_AREA = 0x06, MAGIC_EFFECT_YELLOW_RINGS = 0x07, MAGIC_EFFECT_POISON_RINGS = 0x08, MAGIC_EFFECT_HIT_AREA = 0x09, MAGIC_EFFECT_TELEPORT = 0x0A, //10 MAGIC_EFFECT_ENERGY_DAMAGE = 0x0B, //11 MAGIC_EFFECT_WRAPS_BLUE = 0x0C, //12 MAGIC_EFFECT_WRAPS_RED = 0x0D, //13 MAGIC_EFFECT_WRAPS_GREEN = 0x0E, //14 MAGIC_EFFECT_HITBY_FIRE = 0x0F, //15 MAGIC_EFFECT_POISON = 0x10, //16 MAGIC_EFFECT_MORT_AREA = 0x11, //17 MAGIC_EFFECT_SOUND_GREEN = 0x12, //18 MAGIC_EFFECT_SOUND_RED = 0x13, //19 MAGIC_EFFECT_POISON_AREA = 0x14, //20 MAGIC_EFFECT_SOUND_YELLOW = 0x15, //21 MAGIC_EFFECT_SOUND_PURPLE = 0x16, //22 MAGIC_EFFECT_SOUND_BLUE = 0x17, //23 MAGIC_EFFECT_SOUND_WHITE = 0x18, //24 MAGIC_EFFECT_BUBBLES = 0x19, //25 MAGIC_EFFECT_CRAPS = 0x1A, //26 MAGIC_EFFECT_GIFT_WRAPS = 0x1B, //27 MAGIC_EFFECT_FIREWORK_YELLOW = 0x1C, //28 MAGIC_EFFECT_FIREWORK_RED = 0x1D, //29 MAGIC_EFFECT_FIREWORK_BLUE = 0x1E, //30 MAGIC_EFFECT_STUN = 0x1F, //31 MAGIC_EFFECT_SLEEP = 0x20, //32 MAGIC_EFFECT_WATERCREATURE = 0x21, //33 MAGIC_EFFECT_GROUNDSHAKER = 0x22, //34 MAGIC_EFFECT_HEARTS = 0x23, //35 MAGIC_EFFECT_FIREATTACK = 0x24, //36 MAGIC_EFFECT_ENERGY_AREA = 0x25, //37 MAGIC_EFFECT_SMALLCLOUDS = 0x26, //38 MAGIC_EFFECT_HOLYDAMAGE = 0x27, //39 MAGIC_EFFECT_BIGCLOUDS = 0x28, //40 MAGIC_EFFECT_ICEAREA = 0x29, //41 MAGIC_EFFECT_ICETORNADO = 0x2A, //42 MAGIC_EFFECT_ICEATTACK = 0x2B, //43 MAGIC_EFFECT_STONES = 0x2C, //44 MAGIC_EFFECT_SMALLPLANTS = 0x2D, //45 MAGIC_EFFECT_CARNIPHILA = 0x2E, //46 MAGIC_EFFECT_PURPLEENERGY = 0x2F, //47 MAGIC_EFFECT_YELLOWENERGY = 0x30, //48 MAGIC_EFFECT_HOLYAREA = 0x31, //49 MAGIC_EFFECT_BIGPLANTS = 0x32, //50 MAGIC_EFFECT_CAKE = 0x33, //51 MAGIC_EFFECT_GIANTICE = 0x34, //52 MAGIC_EFFECT_WATERSPLASH = 0x35, //53 MAGIC_EFFECT_PLANTATTACK = 0x36, //54 MAGIC_EFFECT_TUTORIALARROW = 0x37, //55 MAGIC_EFFECT_TUTORIALSQUARE = 0x38, //56 MAGIC_EFFECT_MIRRORHORIZONTAL = 0x39, //57 MAGIC_EFFECT_MIRRORVERTICAL = 0x3A, //58 MAGIC_EFFECT_SKULLHORIZONTAL = 0x3B, //59 MAGIC_EFFECT_SKULLVERTICAL = 0x3C, //60 MAGIC_EFFECT_ASSASSIN = 0x3D, //61 MAGIC_EFFECT_STEPSHORIZONTAL = 0x3E, //62 MAGIC_EFFECT_BLOODYSTEPS = 0x3F, //63 MAGIC_EFFECT_STEPSVERTICAL = 0x40, //64 MAGIC_EFFECT_YALAHARIGHOST = 0x41, //65 MAGIC_EFFECT_BATS = 0x42, //66 MAGIC_EFFECT_SMOKE = 0x43, //67 MAGIC_EFFECT_INSECTS = 0x44, //68 MAGIC_EFFECT_LAST = MAGIC_EFFECT_INSECTS, //for internal use, dont send to client MAGIC_EFFECT_NONE = 0xFF, MAGIC_EFFECT_UNKNOWN = 0xFFFF };

     
    Agora basta dar continuidade, configurando novos efeitos, como desejar. Por exemplo, aqui está configurado até o efeito 90 (source de NTO):
    enum MagicEffect_t { MAGIC_EFFECT_DRAW_BLOOD = 0x00, MAGIC_EFFECT_LOSE_ENERGY = 0x01, MAGIC_EFFECT_POFF = 0x02, MAGIC_EFFECT_BLOCKHIT = 0x03, MAGIC_EFFECT_EXPLOSION_AREA = 0x04, MAGIC_EFFECT_EXPLOSION_DAMAGE = 0x05, MAGIC_EFFECT_FIRE_AREA = 0x06, MAGIC_EFFECT_YELLOW_RINGS = 0x07, MAGIC_EFFECT_POISON_RINGS = 0x08, MAGIC_EFFECT_HIT_AREA = 0x09, MAGIC_EFFECT_TELEPORT = 0x0A, //10 MAGIC_EFFECT_ENERGY_DAMAGE = 0x0B, //11 MAGIC_EFFECT_WRAPS_BLUE = 0x0C, //12 MAGIC_EFFECT_WRAPS_RED = 0x0D, //13 MAGIC_EFFECT_WRAPS_GREEN = 0x0E, //14 MAGIC_EFFECT_HITBY_FIRE = 0x0F, //15 MAGIC_EFFECT_POISON = 0x10, //16 MAGIC_EFFECT_MORT_AREA = 0x11, //17 MAGIC_EFFECT_SOUND_GREEN = 0x12, //18 MAGIC_EFFECT_SOUND_RED = 0x13, //19 MAGIC_EFFECT_POISON_AREA = 0x14, //20 MAGIC_EFFECT_SOUND_YELLOW = 0x15, //21 MAGIC_EFFECT_SOUND_PURPLE = 0x16, //22 MAGIC_EFFECT_SOUND_BLUE = 0x17, //23 MAGIC_EFFECT_SOUND_WHITE = 0x18, //24 MAGIC_EFFECT_BUBBLES = 0x19, //25 MAGIC_EFFECT_CRAPS = 0x1A, //26 MAGIC_EFFECT_GIFT_WRAPS = 0x1B, //27 MAGIC_EFFECT_FIREWORK_YELLOW = 0x1C, //28 MAGIC_EFFECT_FIREWORK_RED = 0x1D, //29 MAGIC_EFFECT_FIREWORK_BLUE = 0x1E, //30 MAGIC_EFFECT_STUN = 0x1F, //31 MAGIC_EFFECT_SLEEP = 0x20, //32 MAGIC_EFFECT_WATERCREATURE = 0x21, //33 MAGIC_EFFECT_GROUNDSHAKER = 0x22, //34 MAGIC_EFFECT_HEARTS = 0x23, //35 MAGIC_EFFECT_FIREATTACK = 0x24, //36 MAGIC_EFFECT_ENERGY_AREA = 0x25, //37 MAGIC_EFFECT_SMALLCLOUDS = 0x26, //38 MAGIC_EFFECT_HOLYDAMAGE = 0x27, //39 MAGIC_EFFECT_BIGCLOUDS = 0x28, //40 MAGIC_EFFECT_ICEAREA = 0x29, //41 MAGIC_EFFECT_ICETORNADO = 0x2A, //42 MAGIC_EFFECT_ICEATTACK = 0x2B, //43 MAGIC_EFFECT_STONES = 0x2C, //44 MAGIC_EFFECT_SMALLPLANTS = 0x2D, //45 MAGIC_EFFECT_CARNIPHILA = 0x2E, //46 MAGIC_EFFECT_PURPLEENERGY = 0x2F, //47 MAGIC_EFFECT_YELLOWENERGY = 0x30, //48 MAGIC_EFFECT_HOLYAREA = 0x31, //49 MAGIC_EFFECT_BIGPLANTS = 0x32, //50 MAGIC_EFFECT_CAKE = 0x33, //51 MAGIC_EFFECT_GIANTICE = 0x34, //52 MAGIC_EFFECT_WATERSPLASH = 0x35, //53 MAGIC_EFFECT_PLANTATTACK = 0x36, //54 MAGIC_EFFECT_TUTORIALARROW = 0x37, //55 MAGIC_EFFECT_TUTORIALSQUARE = 0x38, //56 MAGIC_EFFECT_MIRRORHORIZONTAL = 0x39, //57 MAGIC_EFFECT_MIRRORVERTICAL = 0x3A, //58 MAGIC_EFFECT_SKULLHORIZONTAL = 0x3B, //59 MAGIC_EFFECT_SKULLVERTICAL = 0x3C, //60 MAGIC_EFFECT_ASSASSIN = 0x3D, //61 MAGIC_EFFECT_STEPSHORIZONTAL = 0x3E, //62 MAGIC_EFFECT_BLOODYSTEPS = 0x3F, //63 MAGIC_EFFECT_STEPSVERTICAL = 0x40, //64 MAGIC_EFFECT_YALAHARIGHOST = 0x41, //65 MAGIC_EFFECT_BATS = 0x42, //66 MAGIC_EFFECT_SMOKE = 0x43, //67 MAGIC_EFFECT_EFEITO69 = 0x44, //69 MAGIC_EFFECT_EFEITO70 = 0x45, //70 MAGIC_EFFECT_EFEITO71 = 0x46, //71 MAGIC_EFFECT_EFEITO72 = 0x47, //72 MAGIC_EFFECT_EFEITO73 = 0x48, //73 MAGIC_EFFECT_EFEITO74 = 0x49, //74 MAGIC_EFFECT_EFEITO75 = 0x50, //75 MAGIC_EFFECT_EFEITO76 = 0x51, //76 MAGIC_EFFECT_EFEITO77 = 0x52, //77 MAGIC_EFFECT_EFEITO78 = 0x53, //78 MAGIC_EFFECT_EFEITO79 = 0x54, //79 MAGIC_EFFECT_EFEITO80 = 0x55, //80 MAGIC_EFFECT_EFEITO81 = 0x56, //81 MAGIC_EFFECT_EFEITO82 = 0x57, //82 MAGIC_EFFECT_EFEITO83 = 0x58, //83 MAGIC_EFFECT_EFEITO84 = 0x59, //84 MAGIC_EFFECT_EFEITO85 = 0x60, //85 MAGIC_EFFECT_EFEITO86 = 0x61, //86 MAGIC_EFFECT_EFEITO87 = 0x62, //87 MAGIC_EFFECT_EFEITO88 = 0x63, //88 MAGIC_EFFECT_EFEITO89 = 0x64, //89 MAGIC_EFFECT_EFEITO90 = 0x65, //90 MAGIC_EFFECT_LAST = MAGIC_EFFECT_EFEITO90, //for internal use, dont send to client MAGIC_EFFECT_NONE = 0xFF, MAGIC_EFFECT_UNKNOWN = 0xFFFF };

     
    Não esqueça de deixar MAGIC_EFFECT_LAST, sempre como sendo o último efeito configurado. Por exemplo, se o meu último efeito configurado é MAGIC_EFFECT_EFEITO71    = 0x46, //71, então, ficará como:
    MAGIC_EFFECT_LAST = MAGIC_EFFECT_EFEITO71,

     
    No arquivo tools.cpp, procure por:
    MagicEffectNames magicEffectNames[] =

     
    Basta configurar os efeitos novamente, assim como no arquivo anterior (const.h). Ficando assim (no caso, também até o 90):
    MagicEffectNames magicEffectNames[] = { {"redspark", MAGIC_EFFECT_DRAW_BLOOD}, {"bluebubble", MAGIC_EFFECT_LOSE_ENERGY}, {"poff", MAGIC_EFFECT_POFF}, {"yellowspark", MAGIC_EFFECT_BLOCKHIT}, {"explosionarea", MAGIC_EFFECT_EXPLOSION_AREA}, {"explosion", MAGIC_EFFECT_EXPLOSION_DAMAGE}, {"firearea", MAGIC_EFFECT_FIRE_AREA}, {"yellowbubble", MAGIC_EFFECT_YELLOW_RINGS}, {"greenbubble", MAGIC_EFFECT_POISON_RINGS}, {"blackspark", MAGIC_EFFECT_HIT_AREA}, {"teleport", MAGIC_EFFECT_TELEPORT}, {"energy", MAGIC_EFFECT_ENERGY_DAMAGE}, {"blueshimmer", MAGIC_EFFECT_WRAPS_BLUE}, {"redshimmer", MAGIC_EFFECT_WRAPS_RED}, {"greenshimmer", MAGIC_EFFECT_WRAPS_GREEN}, {"fire", MAGIC_EFFECT_HITBY_FIRE}, {"greenspark", MAGIC_EFFECT_POISON}, {"mortarea", MAGIC_EFFECT_MORT_AREA}, {"greennote", MAGIC_EFFECT_SOUND_GREEN}, {"rednote", MAGIC_EFFECT_SOUND_RED}, {"poison", MAGIC_EFFECT_POISON_AREA}, {"yellownote", MAGIC_EFFECT_SOUND_YELLOW}, {"purplenote", MAGIC_EFFECT_SOUND_PURPLE}, {"bluenote", MAGIC_EFFECT_SOUND_BLUE}, {"whitenote", MAGIC_EFFECT_SOUND_WHITE}, {"bubbles", MAGIC_EFFECT_BUBBLES}, {"dice", MAGIC_EFFECT_CRAPS}, {"giftwraps", MAGIC_EFFECT_GIFT_WRAPS}, {"yellowfirework", MAGIC_EFFECT_FIREWORK_YELLOW}, {"redfirework", MAGIC_EFFECT_FIREWORK_RED}, {"bluefirework", MAGIC_EFFECT_FIREWORK_BLUE}, {"stun", MAGIC_EFFECT_STUN}, {"sleep", MAGIC_EFFECT_SLEEP}, {"watercreature", MAGIC_EFFECT_WATERCREATURE}, {"groundshaker", MAGIC_EFFECT_GROUNDSHAKER}, {"hearts", MAGIC_EFFECT_HEARTS}, {"fireattack", MAGIC_EFFECT_FIREATTACK}, {"energyarea", MAGIC_EFFECT_ENERGY_AREA}, {"smallclouds", MAGIC_EFFECT_SMALLCLOUDS}, {"holydamage", MAGIC_EFFECT_HOLYDAMAGE}, {"bigclouds", MAGIC_EFFECT_BIGCLOUDS}, {"icearea", MAGIC_EFFECT_ICEAREA}, {"icetornado", MAGIC_EFFECT_ICETORNADO}, {"iceattack", MAGIC_EFFECT_ICEATTACK}, {"stones", MAGIC_EFFECT_STONES}, {"smallplants", MAGIC_EFFECT_SMALLPLANTS}, {"carniphila", MAGIC_EFFECT_CARNIPHILA}, {"purpleenergy", MAGIC_EFFECT_PURPLEENERGY}, {"yellowenergy", MAGIC_EFFECT_YELLOWENERGY}, {"holyarea", MAGIC_EFFECT_HOLYAREA}, {"bigplants", MAGIC_EFFECT_BIGPLANTS}, {"cake", MAGIC_EFFECT_CAKE}, {"giantice", MAGIC_EFFECT_GIANTICE}, {"watersplash", MAGIC_EFFECT_WATERSPLASH}, {"plantattack", MAGIC_EFFECT_PLANTATTACK}, {"tutorialarrow", MAGIC_EFFECT_TUTORIALARROW}, {"tutorialsquare", MAGIC_EFFECT_TUTORIALSQUARE}, {"mirrorhorizontal", MAGIC_EFFECT_MIRRORHORIZONTAL}, {"mirrorvertical", MAGIC_EFFECT_MIRRORVERTICAL}, {"skullhorizontal", MAGIC_EFFECT_SKULLHORIZONTAL}, {"skullvertical", MAGIC_EFFECT_SKULLVERTICAL}, {"assassin", MAGIC_EFFECT_ASSASSIN}, {"stepshorizontal", MAGIC_EFFECT_STEPSHORIZONTAL}, {"bloodysteps", MAGIC_EFFECT_BLOODYSTEPS}, {"stepsvertical", MAGIC_EFFECT_STEPSVERTICAL}, {"yalaharighost", MAGIC_EFFECT_YALAHARIGHOST}, {"bats", MAGIC_EFFECT_BATS}, {"smoke", MAGIC_EFFECT_SMOKE}, {"efeito69", MAGIC_EFFECT_EFEITO69}, {"efeito70", MAGIC_EFFECT_EFEITO70}, {"efeito71", MAGIC_EFFECT_EFEITO71}, {"efeito72", MAGIC_EFFECT_EFEITO72}, {"efeito73", MAGIC_EFFECT_EFEITO73}, {"efeito74", MAGIC_EFFECT_EFEITO74}, {"efeito75", MAGIC_EFFECT_EFEITO75}, {"efeito76", MAGIC_EFFECT_EFEITO76}, {"efeito77", MAGIC_EFFECT_EFEITO77}, {"efeito78", MAGIC_EFFECT_EFEITO78}, {"efeito79", MAGIC_EFFECT_EFEITO79}, {"efeito80", MAGIC_EFFECT_EFEITO80}, {"efeito81", MAGIC_EFFECT_EFEITO81}, {"efeito82", MAGIC_EFFECT_EFEITO82}, {"efeito83", MAGIC_EFFECT_EFEITO83}, {"efeito84", MAGIC_EFFECT_EFEITO84}, {"efeito85", MAGIC_EFFECT_EFEITO85}, {"efeito86", MAGIC_EFFECT_EFEITO86}, {"efeito87", MAGIC_EFFECT_EFEITO87}, {"efeito88", MAGIC_EFFECT_EFEITO88}, {"efeito89", MAGIC_EFFECT_EFEITO89}, {"efeito90", MAGIC_EFFECT_EFEITO90} };
    Não esqueça de configurar exatamente como em const.h. Por exemplo, se no arquivo anterior o efeito 71 está configurado como:
    MAGIC_EFFECT_EFEITO71    = 0x46, //71

     
    Então, você terá que configurar o mesmo efeito com os mesmos caracteres do nome desse efeito em tools.cpp (no código, digo configurar os caracteres exatamente iguais aos do arquivo anterior, após a vírgula >):
    {"efeito71", MAGIC_EFFECT_EFEITO71}, Compile e adicione o executável do distro à seu servidor.





    Vamos a configuração no seu servidor. Vá até o diretório da pasta lib (data/lib) e abra o arquivo 000-constant.lua. Nele, procure por:
    CONST_ME_

     
    E então configure, logo após o último efeito (no caso, 68 seria: CONST_ME_INSECTS = 68), todos os efeitos com os mesmos caracteres dos quais você adicionou na source em const.h e tools.cpp. Se você configurou por exemplo, até o efeito número 80 nos arquivos anteriores, então no script da lib ficaria dessa forma:
    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 = 10 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 = 21 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_EFEITO69 = 69 CONST_ME_EFEITO70 = 70 CONST_ME_EFEITO71 = 71 CONST_ME_EFEITO72 = 72 CONST_ME_EFEITO73 = 73 CONST_ME_EFEITO74 = 74 CONST_ME_EFEITO75 = 75 CONST_ME_EFEITO76 = 76 CONST_ME_EFEITO77 = 77 CONST_ME_EFEITO78 = 78 CONST_ME_EFEITO79 = 79 CONST_ME_EFEITO80 = 80 CONST_ME_EFEITO81 = 81 CONST_ME_EFEITO82 = 82 CONST_ME_EFEITO83 = 83 CONST_ME_EFEITO84 = 84 CONST_ME_EFEITO85 = 85 CONST_ME_EFEITO86 = 86 CONST_ME_EFEITO87 = 87 CONST_ME_EFEITO88 = 88 CONST_ME_EFEITO89 = 89 CONST_ME_EFEITO90 = 90 CONST_ME_NONE = 255 CONST_ME_LAST = CONST_ME_EFEITO90  
     

    Independete de usar o /z ou não para ver os efeitos, você terá que fazer essa configuração na source e na lib para que possa adicionar os parâmetros dos novos efeitos em suas spells também.
  2. Gostei
    Bizzle recebeu reputação de SmokeScreeN em [Comando] Adicionando comando !bug   
  3. Gostei
    [CreatureScript] Level Speed ao Atingir Determinado Level
    Basicamente, esse script se resume a aplicar determinada velocidade ao player quando ele atingir determinado level.

    Vamos dar início a instalação do script em seu servidor.
    Primeiramente, vá até a pasta data/creaturescripts/scripts, crie um arquivo nomeado como levelspeed.lua e adicione o seguinte script a ele:
    local info = { [10] = {speed = 238}, [50] = {speed = 318}, [100] = {speed = 418}, [150] = {speed = 518}, [200] = {speed = 618}, [250] = {speed = 718}, [300] = {speed = 818}, [350] = {speed = 918}, [400] = {speed = 1018}, [450] = {speed = 1118}, [500] = {speed = 1218}, [550] = {speed = 1318}, [600] = {speed = 1418}, [650] = {speed = 1518}, [700] = {speed = 1618}, [750] = {speed = 1718}, [800] = {speed = 1818}, [999] = {speed = 2218} } function onAdvance(cid, skill, oldLevel, newLevel)     for level, x in pairs(info) do         if skill == 8 and newLevel >= level then             doChangeSpeed(cid, -getCreatureSpeed(cid))             doChangeSpeed(cid, info.speed)         end     end return 1 end Na mesma pasta (data/creaturescripts/scripts) abra o arquivo login.lua e adicione a seguinte linha ao script:

    registerCreatureEvent(cid, "LevelSpeed")
    local info = { [10] = {speed = 238}, [50] = {speed = 318}, [100] = {speed = 418}, [150] = {speed = 518}, [200] = {speed = 618}, [250] = {speed = 718}, [300] = {speed = 818}, [350] = {speed = 918}, [400] = {speed = 1018}, [450] = {speed = 1118}, [500] = {speed = 1218}, [550] = {speed = 1318}, [600] = {speed = 1418}, [650] = {speed = 1518}, [700] = {speed = 1618}, [750] = {speed = 1718}, [800] = {speed = 1818}, [999] = {speed = 2218} } Acima, onde está, por exemplo: [150] = {speed = 518}, quando o player atingir o level 150, sua velocidade será 518 (velocidade de um level 150 no Tibia Global, sem itens ou spell ativada).

    Agora, na mesma pasta (data/creaturescripts), abra o arquivo creaturescripts.xml como bloco de notas e adicione a seguinte tag: <event type="advance" name="LevelSpeed" event="script" value="levelspeed.lua"/>

    Mudei a função do script quando reformulei o tópico.
    Acesse essa página para fazer diversos cálculos (como o de Experiência, de Skill, de Velocidade, de Informações do Level e/ou Level mínimo para Exp Party) com mais facilidade, clicando aqui (não tiver nenhuma intenção em divulgar o site onde essa calculadora está hospeada, apenas informar aos membros que há um recurso neste link).
    Se for postar em outro lugar, ao menos coloque os créditos (meus).
    Façam bom proveito.
  4. Gostei
    Bizzle deu reputação a luanluciano93 em (Resolvido)[ACTION] Ajuda com Action[tfs1.0]   
    doPlayerRemoveItem(cid, itemuid, 1)
  5. Gostei
    Bizzle recebeu reputação de GBs em (Resolvido)Transformaçoes   
    Desculpe, já estou ajudando um servidor no momento.



    Okay..mas o que isso tem a ver com o tópico?
  6. Gostei
    Bizzle recebeu reputação de GBs em (Resolvido)Transformaçoes   
    Se você usar um programa como por exemplo o ObjectBuilder (que te possibilita visualizar todas as sprites do tibia.spr, inclusive os outfits, entre outras funções), você mesmo pode configurar tudo como preferir. Usando assim então, a talkaction de saga como citei acima (tem a explicação de como alterar os valores do script no próprio tópico).
  7. Gostei
    Bizzle recebeu reputação de GBs em (Resolvido)Transformaçoes   
    Porquê não opta por uma talkaction (um comando) de saga?
    Creio que seria bem mais simples. Veja o tópico da talkaction, aqui.
  8. Gostei
    Bizzle recebeu reputação de luanluciano93 em [TalkAction] !remover skulls/frags com custos   
    Com essa talkaction (comando), é possível que o player retire suas skulls (white, red, black) e/ou retire seus frags, ou também consulte os valores dos custos de cada remoção. Os valores são configuráveis, basta alterar informei no script (os 4 últimos valores: 50000, 150000, 250000, 100000).




    Arquivo remover.lua (data/talkactions/scripts):
    function onSay(cid, words, param, channel) local gskull, white, red, black, frags = getCreatureSkullType(cid), 50000, 150000, 250000, 100000 -- Basta alterar os 4 últimos valores pelo custo de cada remoção, a sequência de custos é pk(50k)/red(150k)/black(250k)/frags(100k)     if(param == "") then         return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você pode remover suas skulls: !remove skulls ~ ou pode remover seus frags: !remove frags ~ e/ou pode também conferir os custos: !remover custos")     end         if(param == "custos") then             return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Custos ~ PK/WHITE: ".. white .."k, RED: ".. red .."k, BLACK: ".. black .."k, FRAGS: ".. frags .."k.")         end             if(param == "skulls") then                 if(gskull == SKULL_WHITE and doPlayerRemoveMoney(cid, white)) then                     doCreatureSetSkullType(cid, SKULL_NONE)                     doRemoveCondition(cid, CONDITION_INFIGHT)                 elseif(gskull == SKULL_RED and doPlayerRemoveMoney(cid, red)) then                     doCreatureSetSkullType(cid, SKULL_NONE)                 elseif(gskull == SKULL_BLACK and doPlayerRemoveMoney(cid, black)) then                     doCreatureSetSkullType(cid, SKULL_NONE)                 elseif(gskull == SKULL_NONE) then                     doPlayerSendCancel(cid, "Você não está com nenhuma skull.")                 else                     doPlayerSendCancel(cid, "Você não tem dinheiro o suficiente. Digite !remove para conferir os custos.")                 end             end         if(param == "frags") then             if(getPlayerFrags(cid) >= 1 and doPlayerRemoveMoney(cid, frags)) then                 doRemoveCreature(cid)                 db.executeQuery("UPDATE killers SET unjustified = 0 WHERE id IN (SELECT kill_id FROM player_killers WHERE player_id = " .. getPlayerGUID(cid) .. ");")             elseif(getPlayerFrags(cid) == 0) then                 doPlayerSendCancel(cid, "Você não tem nenhum frag.")             else                 doPlayerSendCancel(cid, "Você não tem dinheiro o suficiente. Digite !remove para conferir os custos.")             end         end return 1 end

     

    Adicione a seguinte tag ao arquivo talkactions.xml (data/talkactions):
    <talkaction words="!remover" event="script" value="remover.lua"/>

    Parâmetros:
    !remover skulls
    !remover frags
    !remover custos



    Havia visto vários scripts de remoção de skulls/frags, porém nenhum exatamente desse tipo, em conjunto.
    Créditos: meus.
  9. Gostei
    Bizzle deu reputação a xWhiteWolf em (Resolvido)Transformaçoes   
    @Storm Night, evite fugir do assunto se não terei que te alertar. As pessoas fazem as coisas aqui de boa vontade então você não pode vir com essas idéias de querer passar o cliente e pedir todos os favores, o forum tá aqui pra te ajudar a aprender a fazer as coisas de forma autônoma ou pelo menos tentar. Espero não ver esse tipo de comportamento novamente. 

    @topic, as transformações são feitas por um script e não tem nada a ver com a source.. vc só vai precisar de um client NTO com as sprites. Não vou ficar te explicando oque é cada coisa, o @Bizzle já postou o script e agora cabe a você ir atrás de aprender a caminhar com as próprias pernas. Dito isso estarei colocando o tópico como resolvido e fechando o mesmo, quando tiver outra dúvida crie um tópico novo e não fique mudando de assunto, atenha-se à sua dúvida. Abraços.
  10. Gostei
    Bizzle recebeu reputação de xWhiteWolf em (Resolvido)Transformaçoes   
    Porquê não opta por uma talkaction (um comando) de saga?
    Creio que seria bem mais simples. Veja o tópico da talkaction, aqui.
  11. Gostei
    Bizzle recebeu reputação de Lyu em [TalkAction] !remover skulls/frags com custos   
    Com essa talkaction (comando), é possível que o player retire suas skulls (white, red, black) e/ou retire seus frags, ou também consulte os valores dos custos de cada remoção. Os valores são configuráveis, basta alterar informei no script (os 4 últimos valores: 50000, 150000, 250000, 100000).




    Arquivo remover.lua (data/talkactions/scripts):
    function onSay(cid, words, param, channel) local gskull, white, red, black, frags = getCreatureSkullType(cid), 50000, 150000, 250000, 100000 -- Basta alterar os 4 últimos valores pelo custo de cada remoção, a sequência de custos é pk(50k)/red(150k)/black(250k)/frags(100k)     if(param == "") then         return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você pode remover suas skulls: !remove skulls ~ ou pode remover seus frags: !remove frags ~ e/ou pode também conferir os custos: !remover custos")     end         if(param == "custos") then             return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Custos ~ PK/WHITE: ".. white .."k, RED: ".. red .."k, BLACK: ".. black .."k, FRAGS: ".. frags .."k.")         end             if(param == "skulls") then                 if(gskull == SKULL_WHITE and doPlayerRemoveMoney(cid, white)) then                     doCreatureSetSkullType(cid, SKULL_NONE)                     doRemoveCondition(cid, CONDITION_INFIGHT)                 elseif(gskull == SKULL_RED and doPlayerRemoveMoney(cid, red)) then                     doCreatureSetSkullType(cid, SKULL_NONE)                 elseif(gskull == SKULL_BLACK and doPlayerRemoveMoney(cid, black)) then                     doCreatureSetSkullType(cid, SKULL_NONE)                 elseif(gskull == SKULL_NONE) then                     doPlayerSendCancel(cid, "Você não está com nenhuma skull.")                 else                     doPlayerSendCancel(cid, "Você não tem dinheiro o suficiente. Digite !remove para conferir os custos.")                 end             end         if(param == "frags") then             if(getPlayerFrags(cid) >= 1 and doPlayerRemoveMoney(cid, frags)) then                 doRemoveCreature(cid)                 db.executeQuery("UPDATE killers SET unjustified = 0 WHERE id IN (SELECT kill_id FROM player_killers WHERE player_id = " .. getPlayerGUID(cid) .. ");")             elseif(getPlayerFrags(cid) == 0) then                 doPlayerSendCancel(cid, "Você não tem nenhum frag.")             else                 doPlayerSendCancel(cid, "Você não tem dinheiro o suficiente. Digite !remove para conferir os custos.")             end         end return 1 end

     

    Adicione a seguinte tag ao arquivo talkactions.xml (data/talkactions):
    <talkaction words="!remover" event="script" value="remover.lua"/>

    Parâmetros:
    !remover skulls
    !remover frags
    !remover custos



    Havia visto vários scripts de remoção de skulls/frags, porém nenhum exatamente desse tipo, em conjunto.
    Créditos: meus.
  12. Gostei
    Bizzle recebeu reputação de Danves em (Resolvido)Onde aumentar o número de efeitos   
    Respondi à um tópico com a mesma questão que o seu..enfim, vamos lá.

    Primeiramente, você precisará da source do distro usado em seu servidor ou uma source compatível com a versão do seu servidor.
    Tendo elas, abra o arquivo .dev (com o Dev-C++, é claro), ou se apenas possuir arquivos .cpp e .h e você não sabe como criar um projeto para ser compilado, veja um tutorial aqui. Vamos dar continuidade..



    No arquivo const.h, procure por:
    enum MagicEffect_t

     
    Você poderá notar que o código só estará configurado até o último efeito (no caso, 68):
    enum MagicEffect_t { MAGIC_EFFECT_DRAW_BLOOD = 0x00, MAGIC_EFFECT_LOSE_ENERGY = 0x01, MAGIC_EFFECT_POFF = 0x02, MAGIC_EFFECT_BLOCKHIT = 0x03, MAGIC_EFFECT_EXPLOSION_AREA = 0x04, MAGIC_EFFECT_EXPLOSION_DAMAGE = 0x05, MAGIC_EFFECT_FIRE_AREA = 0x06, MAGIC_EFFECT_YELLOW_RINGS = 0x07, MAGIC_EFFECT_POISON_RINGS = 0x08, MAGIC_EFFECT_HIT_AREA = 0x09, MAGIC_EFFECT_TELEPORT = 0x0A, //10 MAGIC_EFFECT_ENERGY_DAMAGE = 0x0B, //11 MAGIC_EFFECT_WRAPS_BLUE = 0x0C, //12 MAGIC_EFFECT_WRAPS_RED = 0x0D, //13 MAGIC_EFFECT_WRAPS_GREEN = 0x0E, //14 MAGIC_EFFECT_HITBY_FIRE = 0x0F, //15 MAGIC_EFFECT_POISON = 0x10, //16 MAGIC_EFFECT_MORT_AREA = 0x11, //17 MAGIC_EFFECT_SOUND_GREEN = 0x12, //18 MAGIC_EFFECT_SOUND_RED = 0x13, //19 MAGIC_EFFECT_POISON_AREA = 0x14, //20 MAGIC_EFFECT_SOUND_YELLOW = 0x15, //21 MAGIC_EFFECT_SOUND_PURPLE = 0x16, //22 MAGIC_EFFECT_SOUND_BLUE = 0x17, //23 MAGIC_EFFECT_SOUND_WHITE = 0x18, //24 MAGIC_EFFECT_BUBBLES = 0x19, //25 MAGIC_EFFECT_CRAPS = 0x1A, //26 MAGIC_EFFECT_GIFT_WRAPS = 0x1B, //27 MAGIC_EFFECT_FIREWORK_YELLOW = 0x1C, //28 MAGIC_EFFECT_FIREWORK_RED = 0x1D, //29 MAGIC_EFFECT_FIREWORK_BLUE = 0x1E, //30 MAGIC_EFFECT_STUN = 0x1F, //31 MAGIC_EFFECT_SLEEP = 0x20, //32 MAGIC_EFFECT_WATERCREATURE = 0x21, //33 MAGIC_EFFECT_GROUNDSHAKER = 0x22, //34 MAGIC_EFFECT_HEARTS = 0x23, //35 MAGIC_EFFECT_FIREATTACK = 0x24, //36 MAGIC_EFFECT_ENERGY_AREA = 0x25, //37 MAGIC_EFFECT_SMALLCLOUDS = 0x26, //38 MAGIC_EFFECT_HOLYDAMAGE = 0x27, //39 MAGIC_EFFECT_BIGCLOUDS = 0x28, //40 MAGIC_EFFECT_ICEAREA = 0x29, //41 MAGIC_EFFECT_ICETORNADO = 0x2A, //42 MAGIC_EFFECT_ICEATTACK = 0x2B, //43 MAGIC_EFFECT_STONES = 0x2C, //44 MAGIC_EFFECT_SMALLPLANTS = 0x2D, //45 MAGIC_EFFECT_CARNIPHILA = 0x2E, //46 MAGIC_EFFECT_PURPLEENERGY = 0x2F, //47 MAGIC_EFFECT_YELLOWENERGY = 0x30, //48 MAGIC_EFFECT_HOLYAREA = 0x31, //49 MAGIC_EFFECT_BIGPLANTS = 0x32, //50 MAGIC_EFFECT_CAKE = 0x33, //51 MAGIC_EFFECT_GIANTICE = 0x34, //52 MAGIC_EFFECT_WATERSPLASH = 0x35, //53 MAGIC_EFFECT_PLANTATTACK = 0x36, //54 MAGIC_EFFECT_TUTORIALARROW = 0x37, //55 MAGIC_EFFECT_TUTORIALSQUARE = 0x38, //56 MAGIC_EFFECT_MIRRORHORIZONTAL = 0x39, //57 MAGIC_EFFECT_MIRRORVERTICAL = 0x3A, //58 MAGIC_EFFECT_SKULLHORIZONTAL = 0x3B, //59 MAGIC_EFFECT_SKULLVERTICAL = 0x3C, //60 MAGIC_EFFECT_ASSASSIN = 0x3D, //61 MAGIC_EFFECT_STEPSHORIZONTAL = 0x3E, //62 MAGIC_EFFECT_BLOODYSTEPS = 0x3F, //63 MAGIC_EFFECT_STEPSVERTICAL = 0x40, //64 MAGIC_EFFECT_YALAHARIGHOST = 0x41, //65 MAGIC_EFFECT_BATS = 0x42, //66 MAGIC_EFFECT_SMOKE = 0x43, //67 MAGIC_EFFECT_INSECTS = 0x44, //68 MAGIC_EFFECT_LAST = MAGIC_EFFECT_INSECTS, //for internal use, dont send to client MAGIC_EFFECT_NONE = 0xFF, MAGIC_EFFECT_UNKNOWN = 0xFFFF };

     
    Agora basta dar continuidade, configurando novos efeitos, como desejar. Por exemplo, aqui está configurado até o efeito 90 (source de NTO):
    enum MagicEffect_t { MAGIC_EFFECT_DRAW_BLOOD = 0x00, MAGIC_EFFECT_LOSE_ENERGY = 0x01, MAGIC_EFFECT_POFF = 0x02, MAGIC_EFFECT_BLOCKHIT = 0x03, MAGIC_EFFECT_EXPLOSION_AREA = 0x04, MAGIC_EFFECT_EXPLOSION_DAMAGE = 0x05, MAGIC_EFFECT_FIRE_AREA = 0x06, MAGIC_EFFECT_YELLOW_RINGS = 0x07, MAGIC_EFFECT_POISON_RINGS = 0x08, MAGIC_EFFECT_HIT_AREA = 0x09, MAGIC_EFFECT_TELEPORT = 0x0A, //10 MAGIC_EFFECT_ENERGY_DAMAGE = 0x0B, //11 MAGIC_EFFECT_WRAPS_BLUE = 0x0C, //12 MAGIC_EFFECT_WRAPS_RED = 0x0D, //13 MAGIC_EFFECT_WRAPS_GREEN = 0x0E, //14 MAGIC_EFFECT_HITBY_FIRE = 0x0F, //15 MAGIC_EFFECT_POISON = 0x10, //16 MAGIC_EFFECT_MORT_AREA = 0x11, //17 MAGIC_EFFECT_SOUND_GREEN = 0x12, //18 MAGIC_EFFECT_SOUND_RED = 0x13, //19 MAGIC_EFFECT_POISON_AREA = 0x14, //20 MAGIC_EFFECT_SOUND_YELLOW = 0x15, //21 MAGIC_EFFECT_SOUND_PURPLE = 0x16, //22 MAGIC_EFFECT_SOUND_BLUE = 0x17, //23 MAGIC_EFFECT_SOUND_WHITE = 0x18, //24 MAGIC_EFFECT_BUBBLES = 0x19, //25 MAGIC_EFFECT_CRAPS = 0x1A, //26 MAGIC_EFFECT_GIFT_WRAPS = 0x1B, //27 MAGIC_EFFECT_FIREWORK_YELLOW = 0x1C, //28 MAGIC_EFFECT_FIREWORK_RED = 0x1D, //29 MAGIC_EFFECT_FIREWORK_BLUE = 0x1E, //30 MAGIC_EFFECT_STUN = 0x1F, //31 MAGIC_EFFECT_SLEEP = 0x20, //32 MAGIC_EFFECT_WATERCREATURE = 0x21, //33 MAGIC_EFFECT_GROUNDSHAKER = 0x22, //34 MAGIC_EFFECT_HEARTS = 0x23, //35 MAGIC_EFFECT_FIREATTACK = 0x24, //36 MAGIC_EFFECT_ENERGY_AREA = 0x25, //37 MAGIC_EFFECT_SMALLCLOUDS = 0x26, //38 MAGIC_EFFECT_HOLYDAMAGE = 0x27, //39 MAGIC_EFFECT_BIGCLOUDS = 0x28, //40 MAGIC_EFFECT_ICEAREA = 0x29, //41 MAGIC_EFFECT_ICETORNADO = 0x2A, //42 MAGIC_EFFECT_ICEATTACK = 0x2B, //43 MAGIC_EFFECT_STONES = 0x2C, //44 MAGIC_EFFECT_SMALLPLANTS = 0x2D, //45 MAGIC_EFFECT_CARNIPHILA = 0x2E, //46 MAGIC_EFFECT_PURPLEENERGY = 0x2F, //47 MAGIC_EFFECT_YELLOWENERGY = 0x30, //48 MAGIC_EFFECT_HOLYAREA = 0x31, //49 MAGIC_EFFECT_BIGPLANTS = 0x32, //50 MAGIC_EFFECT_CAKE = 0x33, //51 MAGIC_EFFECT_GIANTICE = 0x34, //52 MAGIC_EFFECT_WATERSPLASH = 0x35, //53 MAGIC_EFFECT_PLANTATTACK = 0x36, //54 MAGIC_EFFECT_TUTORIALARROW = 0x37, //55 MAGIC_EFFECT_TUTORIALSQUARE = 0x38, //56 MAGIC_EFFECT_MIRRORHORIZONTAL = 0x39, //57 MAGIC_EFFECT_MIRRORVERTICAL = 0x3A, //58 MAGIC_EFFECT_SKULLHORIZONTAL = 0x3B, //59 MAGIC_EFFECT_SKULLVERTICAL = 0x3C, //60 MAGIC_EFFECT_ASSASSIN = 0x3D, //61 MAGIC_EFFECT_STEPSHORIZONTAL = 0x3E, //62 MAGIC_EFFECT_BLOODYSTEPS = 0x3F, //63 MAGIC_EFFECT_STEPSVERTICAL = 0x40, //64 MAGIC_EFFECT_YALAHARIGHOST = 0x41, //65 MAGIC_EFFECT_BATS = 0x42, //66 MAGIC_EFFECT_SMOKE = 0x43, //67 MAGIC_EFFECT_EFEITO69 = 0x44, //69 MAGIC_EFFECT_EFEITO70 = 0x45, //70 MAGIC_EFFECT_EFEITO71 = 0x46, //71 MAGIC_EFFECT_EFEITO72 = 0x47, //72 MAGIC_EFFECT_EFEITO73 = 0x48, //73 MAGIC_EFFECT_EFEITO74 = 0x49, //74 MAGIC_EFFECT_EFEITO75 = 0x50, //75 MAGIC_EFFECT_EFEITO76 = 0x51, //76 MAGIC_EFFECT_EFEITO77 = 0x52, //77 MAGIC_EFFECT_EFEITO78 = 0x53, //78 MAGIC_EFFECT_EFEITO79 = 0x54, //79 MAGIC_EFFECT_EFEITO80 = 0x55, //80 MAGIC_EFFECT_EFEITO81 = 0x56, //81 MAGIC_EFFECT_EFEITO82 = 0x57, //82 MAGIC_EFFECT_EFEITO83 = 0x58, //83 MAGIC_EFFECT_EFEITO84 = 0x59, //84 MAGIC_EFFECT_EFEITO85 = 0x60, //85 MAGIC_EFFECT_EFEITO86 = 0x61, //86 MAGIC_EFFECT_EFEITO87 = 0x62, //87 MAGIC_EFFECT_EFEITO88 = 0x63, //88 MAGIC_EFFECT_EFEITO89 = 0x64, //89 MAGIC_EFFECT_EFEITO90 = 0x65, //90 MAGIC_EFFECT_LAST = MAGIC_EFFECT_EFEITO90, //for internal use, dont send to client MAGIC_EFFECT_NONE = 0xFF, MAGIC_EFFECT_UNKNOWN = 0xFFFF };

     
    Não esqueça de deixar MAGIC_EFFECT_LAST, sempre como sendo o último efeito configurado. Por exemplo, se o meu último efeito configurado é MAGIC_EFFECT_EFEITO71    = 0x46, //71, então, ficará como:
    MAGIC_EFFECT_LAST = MAGIC_EFFECT_EFEITO71,

     
    No arquivo tools.cpp, procure por:
    MagicEffectNames magicEffectNames[] =

     
    Basta configurar os efeitos novamente, assim como no arquivo anterior (const.h). Ficando assim (no caso, também até o 90):
    MagicEffectNames magicEffectNames[] = { {"redspark", MAGIC_EFFECT_DRAW_BLOOD}, {"bluebubble", MAGIC_EFFECT_LOSE_ENERGY}, {"poff", MAGIC_EFFECT_POFF}, {"yellowspark", MAGIC_EFFECT_BLOCKHIT}, {"explosionarea", MAGIC_EFFECT_EXPLOSION_AREA}, {"explosion", MAGIC_EFFECT_EXPLOSION_DAMAGE}, {"firearea", MAGIC_EFFECT_FIRE_AREA}, {"yellowbubble", MAGIC_EFFECT_YELLOW_RINGS}, {"greenbubble", MAGIC_EFFECT_POISON_RINGS}, {"blackspark", MAGIC_EFFECT_HIT_AREA}, {"teleport", MAGIC_EFFECT_TELEPORT}, {"energy", MAGIC_EFFECT_ENERGY_DAMAGE}, {"blueshimmer", MAGIC_EFFECT_WRAPS_BLUE}, {"redshimmer", MAGIC_EFFECT_WRAPS_RED}, {"greenshimmer", MAGIC_EFFECT_WRAPS_GREEN}, {"fire", MAGIC_EFFECT_HITBY_FIRE}, {"greenspark", MAGIC_EFFECT_POISON}, {"mortarea", MAGIC_EFFECT_MORT_AREA}, {"greennote", MAGIC_EFFECT_SOUND_GREEN}, {"rednote", MAGIC_EFFECT_SOUND_RED}, {"poison", MAGIC_EFFECT_POISON_AREA}, {"yellownote", MAGIC_EFFECT_SOUND_YELLOW}, {"purplenote", MAGIC_EFFECT_SOUND_PURPLE}, {"bluenote", MAGIC_EFFECT_SOUND_BLUE}, {"whitenote", MAGIC_EFFECT_SOUND_WHITE}, {"bubbles", MAGIC_EFFECT_BUBBLES}, {"dice", MAGIC_EFFECT_CRAPS}, {"giftwraps", MAGIC_EFFECT_GIFT_WRAPS}, {"yellowfirework", MAGIC_EFFECT_FIREWORK_YELLOW}, {"redfirework", MAGIC_EFFECT_FIREWORK_RED}, {"bluefirework", MAGIC_EFFECT_FIREWORK_BLUE}, {"stun", MAGIC_EFFECT_STUN}, {"sleep", MAGIC_EFFECT_SLEEP}, {"watercreature", MAGIC_EFFECT_WATERCREATURE}, {"groundshaker", MAGIC_EFFECT_GROUNDSHAKER}, {"hearts", MAGIC_EFFECT_HEARTS}, {"fireattack", MAGIC_EFFECT_FIREATTACK}, {"energyarea", MAGIC_EFFECT_ENERGY_AREA}, {"smallclouds", MAGIC_EFFECT_SMALLCLOUDS}, {"holydamage", MAGIC_EFFECT_HOLYDAMAGE}, {"bigclouds", MAGIC_EFFECT_BIGCLOUDS}, {"icearea", MAGIC_EFFECT_ICEAREA}, {"icetornado", MAGIC_EFFECT_ICETORNADO}, {"iceattack", MAGIC_EFFECT_ICEATTACK}, {"stones", MAGIC_EFFECT_STONES}, {"smallplants", MAGIC_EFFECT_SMALLPLANTS}, {"carniphila", MAGIC_EFFECT_CARNIPHILA}, {"purpleenergy", MAGIC_EFFECT_PURPLEENERGY}, {"yellowenergy", MAGIC_EFFECT_YELLOWENERGY}, {"holyarea", MAGIC_EFFECT_HOLYAREA}, {"bigplants", MAGIC_EFFECT_BIGPLANTS}, {"cake", MAGIC_EFFECT_CAKE}, {"giantice", MAGIC_EFFECT_GIANTICE}, {"watersplash", MAGIC_EFFECT_WATERSPLASH}, {"plantattack", MAGIC_EFFECT_PLANTATTACK}, {"tutorialarrow", MAGIC_EFFECT_TUTORIALARROW}, {"tutorialsquare", MAGIC_EFFECT_TUTORIALSQUARE}, {"mirrorhorizontal", MAGIC_EFFECT_MIRRORHORIZONTAL}, {"mirrorvertical", MAGIC_EFFECT_MIRRORVERTICAL}, {"skullhorizontal", MAGIC_EFFECT_SKULLHORIZONTAL}, {"skullvertical", MAGIC_EFFECT_SKULLVERTICAL}, {"assassin", MAGIC_EFFECT_ASSASSIN}, {"stepshorizontal", MAGIC_EFFECT_STEPSHORIZONTAL}, {"bloodysteps", MAGIC_EFFECT_BLOODYSTEPS}, {"stepsvertical", MAGIC_EFFECT_STEPSVERTICAL}, {"yalaharighost", MAGIC_EFFECT_YALAHARIGHOST}, {"bats", MAGIC_EFFECT_BATS}, {"smoke", MAGIC_EFFECT_SMOKE}, {"efeito69", MAGIC_EFFECT_EFEITO69}, {"efeito70", MAGIC_EFFECT_EFEITO70}, {"efeito71", MAGIC_EFFECT_EFEITO71}, {"efeito72", MAGIC_EFFECT_EFEITO72}, {"efeito73", MAGIC_EFFECT_EFEITO73}, {"efeito74", MAGIC_EFFECT_EFEITO74}, {"efeito75", MAGIC_EFFECT_EFEITO75}, {"efeito76", MAGIC_EFFECT_EFEITO76}, {"efeito77", MAGIC_EFFECT_EFEITO77}, {"efeito78", MAGIC_EFFECT_EFEITO78}, {"efeito79", MAGIC_EFFECT_EFEITO79}, {"efeito80", MAGIC_EFFECT_EFEITO80}, {"efeito81", MAGIC_EFFECT_EFEITO81}, {"efeito82", MAGIC_EFFECT_EFEITO82}, {"efeito83", MAGIC_EFFECT_EFEITO83}, {"efeito84", MAGIC_EFFECT_EFEITO84}, {"efeito85", MAGIC_EFFECT_EFEITO85}, {"efeito86", MAGIC_EFFECT_EFEITO86}, {"efeito87", MAGIC_EFFECT_EFEITO87}, {"efeito88", MAGIC_EFFECT_EFEITO88}, {"efeito89", MAGIC_EFFECT_EFEITO89}, {"efeito90", MAGIC_EFFECT_EFEITO90} };
    Não esqueça de configurar exatamente como em const.h. Por exemplo, se no arquivo anterior o efeito 71 está configurado como:
    MAGIC_EFFECT_EFEITO71    = 0x46, //71

     
    Então, você terá que configurar o mesmo efeito com os mesmos caracteres do nome desse efeito em tools.cpp (no código, digo configurar os caracteres exatamente iguais aos do arquivo anterior, após a vírgula >):
    {"efeito71", MAGIC_EFFECT_EFEITO71}, Compile e adicione o executável do distro à seu servidor.





    Vamos a configuração no seu servidor. Vá até o diretório da pasta lib (data/lib) e abra o arquivo 000-constant.lua. Nele, procure por:
    CONST_ME_

     
    E então configure, logo após o último efeito (no caso, 68 seria: CONST_ME_INSECTS = 68), todos os efeitos com os mesmos caracteres dos quais você adicionou na source em const.h e tools.cpp. Se você configurou por exemplo, até o efeito número 80 nos arquivos anteriores, então no script da lib ficaria dessa forma:
    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 = 10 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 = 21 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_EFEITO69 = 69 CONST_ME_EFEITO70 = 70 CONST_ME_EFEITO71 = 71 CONST_ME_EFEITO72 = 72 CONST_ME_EFEITO73 = 73 CONST_ME_EFEITO74 = 74 CONST_ME_EFEITO75 = 75 CONST_ME_EFEITO76 = 76 CONST_ME_EFEITO77 = 77 CONST_ME_EFEITO78 = 78 CONST_ME_EFEITO79 = 79 CONST_ME_EFEITO80 = 80 CONST_ME_EFEITO81 = 81 CONST_ME_EFEITO82 = 82 CONST_ME_EFEITO83 = 83 CONST_ME_EFEITO84 = 84 CONST_ME_EFEITO85 = 85 CONST_ME_EFEITO86 = 86 CONST_ME_EFEITO87 = 87 CONST_ME_EFEITO88 = 88 CONST_ME_EFEITO89 = 89 CONST_ME_EFEITO90 = 90 CONST_ME_NONE = 255 CONST_ME_LAST = CONST_ME_EFEITO90  
     

    Independete de usar o /z ou não para ver os efeitos, você terá que fazer essa configuração na source e na lib para que possa adicionar os parâmetros dos novos efeitos em suas spells também.
  13. Gostei
    Bizzle recebeu reputação de GBs em Como Almentar os efeitos /z   
    Têm sim, primeiramente você precisará da source do distro usado em seu servidor ou uma source compatível com a versão do seu servidor.
    Tendo elas, abra o arquivo .dev (com o Dev-C++, é claro), ou se apenas possuir arquivos .cpp e .h e você não sabe como criar um projeto para ser compilado, veja um tutorial aqui. Enfim, vamos dar continuidade..


    No arquivo const.h, procure por:
    enum MagicEffect_t
     
    Você poderá notar que o código só estará configurado até o último efeito que funciona na sua talkaction /z (no caso, 68):
    enum MagicEffect_t { MAGIC_EFFECT_DRAW_BLOOD = 0x00, MAGIC_EFFECT_LOSE_ENERGY = 0x01, MAGIC_EFFECT_POFF = 0x02, MAGIC_EFFECT_BLOCKHIT = 0x03, MAGIC_EFFECT_EXPLOSION_AREA = 0x04, MAGIC_EFFECT_EXPLOSION_DAMAGE = 0x05, MAGIC_EFFECT_FIRE_AREA = 0x06, MAGIC_EFFECT_YELLOW_RINGS = 0x07, MAGIC_EFFECT_POISON_RINGS = 0x08, MAGIC_EFFECT_HIT_AREA = 0x09, MAGIC_EFFECT_TELEPORT = 0x0A, //10 MAGIC_EFFECT_ENERGY_DAMAGE = 0x0B, //11 MAGIC_EFFECT_WRAPS_BLUE = 0x0C, //12 MAGIC_EFFECT_WRAPS_RED = 0x0D, //13 MAGIC_EFFECT_WRAPS_GREEN = 0x0E, //14 MAGIC_EFFECT_HITBY_FIRE = 0x0F, //15 MAGIC_EFFECT_POISON = 0x10, //16 MAGIC_EFFECT_MORT_AREA = 0x11, //17 MAGIC_EFFECT_SOUND_GREEN = 0x12, //18 MAGIC_EFFECT_SOUND_RED = 0x13, //19 MAGIC_EFFECT_POISON_AREA = 0x14, //20 MAGIC_EFFECT_SOUND_YELLOW = 0x15, //21 MAGIC_EFFECT_SOUND_PURPLE = 0x16, //22 MAGIC_EFFECT_SOUND_BLUE = 0x17, //23 MAGIC_EFFECT_SOUND_WHITE = 0x18, //24 MAGIC_EFFECT_BUBBLES = 0x19, //25 MAGIC_EFFECT_CRAPS = 0x1A, //26 MAGIC_EFFECT_GIFT_WRAPS = 0x1B, //27 MAGIC_EFFECT_FIREWORK_YELLOW = 0x1C, //28 MAGIC_EFFECT_FIREWORK_RED = 0x1D, //29 MAGIC_EFFECT_FIREWORK_BLUE = 0x1E, //30 MAGIC_EFFECT_STUN = 0x1F, //31 MAGIC_EFFECT_SLEEP = 0x20, //32 MAGIC_EFFECT_WATERCREATURE = 0x21, //33 MAGIC_EFFECT_GROUNDSHAKER = 0x22, //34 MAGIC_EFFECT_HEARTS = 0x23, //35 MAGIC_EFFECT_FIREATTACK = 0x24, //36 MAGIC_EFFECT_ENERGY_AREA = 0x25, //37 MAGIC_EFFECT_SMALLCLOUDS = 0x26, //38 MAGIC_EFFECT_HOLYDAMAGE = 0x27, //39 MAGIC_EFFECT_BIGCLOUDS = 0x28, //40 MAGIC_EFFECT_ICEAREA = 0x29, //41 MAGIC_EFFECT_ICETORNADO = 0x2A, //42 MAGIC_EFFECT_ICEATTACK = 0x2B, //43 MAGIC_EFFECT_STONES = 0x2C, //44 MAGIC_EFFECT_SMALLPLANTS = 0x2D, //45 MAGIC_EFFECT_CARNIPHILA = 0x2E, //46 MAGIC_EFFECT_PURPLEENERGY = 0x2F, //47 MAGIC_EFFECT_YELLOWENERGY = 0x30, //48 MAGIC_EFFECT_HOLYAREA = 0x31, //49 MAGIC_EFFECT_BIGPLANTS = 0x32, //50 MAGIC_EFFECT_CAKE = 0x33, //51 MAGIC_EFFECT_GIANTICE = 0x34, //52 MAGIC_EFFECT_WATERSPLASH = 0x35, //53 MAGIC_EFFECT_PLANTATTACK = 0x36, //54 MAGIC_EFFECT_TUTORIALARROW = 0x37, //55 MAGIC_EFFECT_TUTORIALSQUARE = 0x38, //56 MAGIC_EFFECT_MIRRORHORIZONTAL = 0x39, //57 MAGIC_EFFECT_MIRRORVERTICAL = 0x3A, //58 MAGIC_EFFECT_SKULLHORIZONTAL = 0x3B, //59 MAGIC_EFFECT_SKULLVERTICAL = 0x3C, //60 MAGIC_EFFECT_ASSASSIN = 0x3D, //61 MAGIC_EFFECT_STEPSHORIZONTAL = 0x3E, //62 MAGIC_EFFECT_BLOODYSTEPS = 0x3F, //63 MAGIC_EFFECT_STEPSVERTICAL = 0x40, //64 MAGIC_EFFECT_YALAHARIGHOST = 0x41, //65 MAGIC_EFFECT_BATS = 0x42, //66 MAGIC_EFFECT_SMOKE = 0x43, //67 MAGIC_EFFECT_INSECTS = 0x44, //68 MAGIC_EFFECT_LAST = MAGIC_EFFECT_INSECTS, //for internal use, dont send to client MAGIC_EFFECT_NONE = 0xFF, MAGIC_EFFECT_UNKNOWN = 0xFFFF };

     
    Agora basta dar continuidade, configurando novos efeitos, como desejar. Por exemplo, aqui está configurado até o efeito 255 (source de NTO):
    enum MagicEffect_t { MAGIC_EFFECT_DRAW_BLOOD = 0x00, MAGIC_EFFECT_LOSE_ENERGY = 0x01, MAGIC_EFFECT_POFF = 0x02, MAGIC_EFFECT_BLOCKHIT = 0x03, MAGIC_EFFECT_EXPLOSION_AREA = 0x04, MAGIC_EFFECT_EXPLOSION_DAMAGE = 0x05, MAGIC_EFFECT_FIRE_AREA = 0x06, MAGIC_EFFECT_YELLOW_RINGS = 0x07, MAGIC_EFFECT_POISON_RINGS = 0x08, MAGIC_EFFECT_HIT_AREA = 0x09, MAGIC_EFFECT_TELEPORT = 0x0A, //10 MAGIC_EFFECT_ENERGY_DAMAGE = 0x0B, //11 MAGIC_EFFECT_WRAPS_BLUE = 0x0C, //12 MAGIC_EFFECT_WRAPS_RED = 0x0D, //13 MAGIC_EFFECT_WRAPS_GREEN = 0x0E, //14 MAGIC_EFFECT_HITBY_FIRE = 0x0F, //15 MAGIC_EFFECT_POISON = 0x10, //16 MAGIC_EFFECT_MORT_AREA = 0x11, //17 MAGIC_EFFECT_SOUND_GREEN = 0x12, //18 MAGIC_EFFECT_SOUND_RED = 0x13, //19 MAGIC_EFFECT_POISON_AREA = 0x14, //20 MAGIC_EFFECT_SOUND_YELLOW = 0x15, //21 MAGIC_EFFECT_SOUND_PURPLE = 0x16, //22 MAGIC_EFFECT_SOUND_BLUE = 0x17, //23 MAGIC_EFFECT_SOUND_WHITE = 0x18, //24 MAGIC_EFFECT_BUBBLES = 0x19, //25 MAGIC_EFFECT_CRAPS = 0x1A, //26 MAGIC_EFFECT_GIFT_WRAPS = 0x1B, //27 MAGIC_EFFECT_FIREWORK_YELLOW = 0x1C, //28 MAGIC_EFFECT_FIREWORK_RED = 0x1D, //29 MAGIC_EFFECT_FIREWORK_BLUE = 0x1E, //30 MAGIC_EFFECT_STUN = 0x1F, //31 MAGIC_EFFECT_SLEEP = 0x20, //32 MAGIC_EFFECT_WATERCREATURE = 0x21, //33 MAGIC_EFFECT_GROUNDSHAKER = 0x22, //34 MAGIC_EFFECT_HEARTS = 0x23, //35 MAGIC_EFFECT_FIREATTACK = 0x24, //36 MAGIC_EFFECT_ENERGY_AREA = 0x25, //37 MAGIC_EFFECT_SMALLCLOUDS = 0x26, //38 MAGIC_EFFECT_HOLYDAMAGE = 0x27, //39 MAGIC_EFFECT_BIGCLOUDS = 0x28, //40 MAGIC_EFFECT_ICEAREA = 0x29, //41 MAGIC_EFFECT_ICETORNADO = 0x2A, //42 MAGIC_EFFECT_ICEATTACK = 0x2B, //43 MAGIC_EFFECT_STONES = 0x2C, //44 MAGIC_EFFECT_SMALLPLANTS = 0x2D, //45 MAGIC_EFFECT_CARNIPHILA = 0x2E, //46 MAGIC_EFFECT_PURPLEENERGY = 0x2F, //47 MAGIC_EFFECT_YELLOWENERGY = 0x30, //48 MAGIC_EFFECT_HOLYAREA = 0x31, //49 MAGIC_EFFECT_BIGPLANTS = 0x32, //50 MAGIC_EFFECT_CAKE = 0x33, //51 MAGIC_EFFECT_GIANTICE = 0x34, //52 MAGIC_EFFECT_WATERSPLASH = 0x35, //53 MAGIC_EFFECT_PLANTATTACK = 0x36, //54 MAGIC_EFFECT_TUTORIALARROW = 0x37, //55 MAGIC_EFFECT_TUTORIALSQUARE = 0x38, //56 MAGIC_EFFECT_MIRRORHORIZONTAL = 0x39, //57 MAGIC_EFFECT_MIRRORVERTICAL = 0x3A, //58 MAGIC_EFFECT_SKULLHORIZONTAL = 0x3B, //59 MAGIC_EFFECT_SKULLVERTICAL = 0x3C, //60 MAGIC_EFFECT_ASSASSIN = 0x3D, //61 MAGIC_EFFECT_STEPSHORIZONTAL = 0x3E, //62 MAGIC_EFFECT_BLOODYSTEPS = 0x3F, //63 MAGIC_EFFECT_STEPSVERTICAL = 0x40, //64 MAGIC_EFFECT_YALAHARIGHOST = 0x41, //65 MAGIC_EFFECT_BATS = 0x42, //66 MAGIC_EFFECT_SMOKE = 0x43, //67 MAGIC_EFFECT_EFEITO69 = 0x44, //69 MAGIC_EFFECT_EFEITO70 = 0x45, //70 MAGIC_EFFECT_EFEITO71 = 0x46, //71 MAGIC_EFFECT_EFEITO72 = 0x47, //72 MAGIC_EFFECT_EFEITO73 = 0x48, //73 MAGIC_EFFECT_EFEITO74 = 0x49, //74 MAGIC_EFFECT_EFEITO75 = 0x50, //75 MAGIC_EFFECT_EFEITO76 = 0x51, //76 MAGIC_EFFECT_EFEITO77 = 0x52, //77 MAGIC_EFFECT_EFEITO78 = 0x53, //78 MAGIC_EFFECT_EFEITO79 = 0x54, //79 MAGIC_EFFECT_EFEITO80 = 0x55, //80 MAGIC_EFFECT_EFEITO81 = 0x56, //81 MAGIC_EFFECT_EFEITO82 = 0x57, //82 MAGIC_EFFECT_EFEITO83 = 0x58, //83 MAGIC_EFFECT_EFEITO84 = 0x59, //84 MAGIC_EFFECT_EFEITO85 = 0x60, //85 MAGIC_EFFECT_EFEITO86 = 0x61, //86 MAGIC_EFFECT_EFEITO87 = 0x62, //87 MAGIC_EFFECT_EFEITO88 = 0x63, //88 MAGIC_EFFECT_EFEITO89 = 0x64, //89 MAGIC_EFFECT_EFEITO90 = 0x65, //90 MAGIC_EFFECT_EFEITO91 = 0x66, //91 MAGIC_EFFECT_EFEITO92 = 0x67, //92 MAGIC_EFFECT_EFEITO93 = 0x68, //93 MAGIC_EFFECT_EFEITO94 = 0x69, //94 MAGIC_EFFECT_EFEITO95 = 0x70, //95 MAGIC_EFFECT_EFEITO96 = 0x71, //96 MAGIC_EFFECT_EFEITO97 = 0x72, //97 MAGIC_EFFECT_EFEITO98 = 0x73, //98 MAGIC_EFFECT_EFEITO99 = 0x74, //99 MAGIC_EFFECT_EFEITO100 = 0x75, //100 MAGIC_EFFECT_EFEITO101 = 0x76, //101 MAGIC_EFFECT_EFEITO102 = 0x77, //102 MAGIC_EFFECT_EFEITO103 = 0x78, //103 MAGIC_EFFECT_EFEITO104 = 0x79, //104 MAGIC_EFFECT_EFEITO105 = 0x80, //105 MAGIC_EFFECT_EFEITO106 = 0x81, //106 MAGIC_EFFECT_EFEITO107 = 0x82, //107 MAGIC_EFFECT_EFEITO108 = 0x83, //108 MAGIC_EFFECT_EFEITO109 = 0x84, //109 MAGIC_EFFECT_EFEITO110 = 0x85, //110 MAGIC_EFFECT_EFEITO111 = 0x86, //111 MAGIC_EFFECT_EFEITO112 = 0x87, //112 MAGIC_EFFECT_EFEITO113 = 0x88, //113 MAGIC_EFFECT_EFEITO114 = 0x89, //114 MAGIC_EFFECT_EFEITO115 = 0x90, //115 MAGIC_EFFECT_EFEITO116 = 0x91, //116 MAGIC_EFFECT_EFEITO117 = 0x92, //117 MAGIC_EFFECT_EFEITO118 = 0x93, //118 MAGIC_EFFECT_EFEITO119 = 0x94, //119 MAGIC_EFFECT_EFEITO120 = 0x95, //120 MAGIC_EFFECT_EFEITO121 = 0x96, //121 MAGIC_EFFECT_EFEITO122 = 0x97, //122 MAGIC_EFFECT_EFEITO123 = 0x98, //123 MAGIC_EFFECT_EFEITO124 = 0x99, //124 MAGIC_EFFECT_EFEITO125 = 0x100, //125 MAGIC_EFFECT_EFEITO126 = 0x101, //126 MAGIC_EFFECT_EFEITO127 = 0x102, //127 MAGIC_EFFECT_EFEITO128 = 0x103, //128 MAGIC_EFFECT_EFEITO129 = 0x104, //129 MAGIC_EFFECT_EFEITO130 = 0x105, //130 MAGIC_EFFECT_EFEITO131 = 0x106, //131 MAGIC_EFFECT_EFEITO132 = 0x107, //132 MAGIC_EFFECT_EFEITO133 = 0x108, //133 MAGIC_EFFECT_EFEITO134 = 0x109, //134 MAGIC_EFFECT_EFEITO135 = 0x110, //135 MAGIC_EFFECT_EFEITO136 = 0x111, //136 MAGIC_EFFECT_EFEITO137 = 0x112, //137 MAGIC_EFFECT_EFEITO138 = 0x113, //138 MAGIC_EFFECT_EFEITO139 = 0x114, //139 MAGIC_EFFECT_EFEITO140 = 0x115, //140 MAGIC_EFFECT_EFEITO141 = 0x116, //141 MAGIC_EFFECT_EFEITO142 = 0x117, //142 MAGIC_EFFECT_EFEITO143 = 0x118, //143 MAGIC_EFFECT_EFEITO144 = 0x119, //144 MAGIC_EFFECT_EFEITO145 = 0x120, //145 MAGIC_EFFECT_EFEITO146 = 0x121, //146 MAGIC_EFFECT_EFEITO147 = 0x122, //147 MAGIC_EFFECT_EFEITO148 = 0x123, //148 MAGIC_EFFECT_EFEITO149 = 0x124, //149 MAGIC_EFFECT_EFEITO150 = 0x125, //150 MAGIC_EFFECT_EFEITO151 = 0x126, //151 MAGIC_EFFECT_EFEITO152 = 0x127, //152 MAGIC_EFFECT_EFEITO153 = 0x128, //153 MAGIC_EFFECT_EFEITO154 = 0x129, //154 MAGIC_EFFECT_EFEITO155 = 0x130, //155 MAGIC_EFFECT_EFEITO156 = 0x131, //156 MAGIC_EFFECT_EFEITO157 = 0x132, //157 MAGIC_EFFECT_EFEITO158 = 0x133, //158 MAGIC_EFFECT_EFEITO159 = 0x134, //159 MAGIC_EFFECT_EFEITO160 = 0x135, //160 MAGIC_EFFECT_EFEITO161 = 0x136, //161 MAGIC_EFFECT_EFEITO162 = 0x137, //162 MAGIC_EFFECT_EFEITO163 = 0x138, //163 MAGIC_EFFECT_EFEITO164 = 0x139, //164 MAGIC_EFFECT_EFEITO165 = 0x140, //165 MAGIC_EFFECT_EFEITO166 = 0x141, //166 MAGIC_EFFECT_EFEITO167 = 0x142, //167 MAGIC_EFFECT_EFEITO168 = 0x143, //168 MAGIC_EFFECT_EFEITO169 = 0x144, //169 MAGIC_EFFECT_EFEITO170 = 0x145, //170 MAGIC_EFFECT_EFEITO171 = 0x146, //171 MAGIC_EFFECT_EFEITO172 = 0x147, //172 MAGIC_EFFECT_EFEITO173 = 0x148, //173 MAGIC_EFFECT_EFEITO174 = 0x149, //174 MAGIC_EFFECT_EFEITO175 = 0x150, //175 MAGIC_EFFECT_EFEITO176 = 0x151, //176 MAGIC_EFFECT_EFEITO177 = 0x152, //177 MAGIC_EFFECT_EFEITO178 = 0x153, //178 MAGIC_EFFECT_EFEITO179 = 0x154, //179 MAGIC_EFFECT_EFEITO180 = 0x155, //180 MAGIC_EFFECT_EFEITO181 = 0x156, //181 MAGIC_EFFECT_EFEITO182 = 0x157, //182 MAGIC_EFFECT_EFEITO183 = 0x158, //183 MAGIC_EFFECT_EFEITO184 = 0x159, //184 MAGIC_EFFECT_EFEITO185 = 0x160, //185 MAGIC_EFFECT_EFEITO186 = 0x161, //186 MAGIC_EFFECT_EFEITO187 = 0x162, //187 MAGIC_EFFECT_EFEITO188 = 0x163, //188 MAGIC_EFFECT_EFEITO189 = 0x164, //189 MAGIC_EFFECT_EFEITO190 = 0x165, //190 MAGIC_EFFECT_EFEITO191 = 0x166, //191 MAGIC_EFFECT_EFEITO192 = 0x167, //192 MAGIC_EFFECT_EFEITO193 = 0x168, //193 MAGIC_EFFECT_EFEITO194 = 0x169, //194 MAGIC_EFFECT_EFEITO195 = 0x170, //195 MAGIC_EFFECT_EFEITO196 = 0x171, //196 MAGIC_EFFECT_EFEITO197 = 0x172, //197 MAGIC_EFFECT_EFEITO198 = 0x173, //198 MAGIC_EFFECT_EFEITO199 = 0x174, //199 MAGIC_EFFECT_EFEITO200 = 0x175, //200 MAGIC_EFFECT_EFEITO201 = 0x176, //201 MAGIC_EFFECT_EFEITO202 = 0x177, //202 MAGIC_EFFECT_EFEITO203 = 0x178, //203 MAGIC_EFFECT_EFEITO204 = 0x179, //204 MAGIC_EFFECT_EFEITO205 = 0x180, //205 MAGIC_EFFECT_EFEITO206 = 0x181, //206 MAGIC_EFFECT_EFEITO207 = 0x182, //207 MAGIC_EFFECT_EFEITO208 = 0x183, //208 MAGIC_EFFECT_EFEITO209 = 0x184, //209 MAGIC_EFFECT_EFEITO210 = 0x185, //210 MAGIC_EFFECT_EFEITO211 = 0x186, //211 MAGIC_EFFECT_EFEITO212 = 0x187, //212 MAGIC_EFFECT_EFEITO213 = 0x188, //213 MAGIC_EFFECT_EFEITO214 = 0x189, //214 MAGIC_EFFECT_EFEITO215 = 0x190, //215 MAGIC_EFFECT_EFEITO216 = 0x191, //216 MAGIC_EFFECT_EFEITO217 = 0x192, //217 MAGIC_EFFECT_EFEITO218 = 0x193, //218 MAGIC_EFFECT_EFEITO219 = 0x194, //219 MAGIC_EFFECT_EFEITO220 = 0x195, //220 MAGIC_EFFECT_EFEITO221 = 0x196, //221 MAGIC_EFFECT_EFEITO222 = 0x197, //222 MAGIC_EFFECT_EFEITO223 = 0x198, //223 MAGIC_EFFECT_EFEITO224 = 0x199, //224 MAGIC_EFFECT_EFEITO225 = 0x200, //225 MAGIC_EFFECT_EFEITO226 = 0x201, //226 MAGIC_EFFECT_EFEITO227 = 0x202, //227 MAGIC_EFFECT_EFEITO228 = 0x203, //228 MAGIC_EFFECT_EFEITO229 = 0x204, //229 MAGIC_EFFECT_EFEITO230 = 0x205, //230 MAGIC_EFFECT_EFEITO231 = 0x206, //231 MAGIC_EFFECT_EFEITO232 = 0x207, //232 MAGIC_EFFECT_EFEITO233 = 0x208, //233 MAGIC_EFFECT_EFEITO234 = 0x209, //234 MAGIC_EFFECT_EFEITO235 = 0x210, //235 MAGIC_EFFECT_EFEITO236 = 0x211, //236 MAGIC_EFFECT_EFEITO237 = 0x212, //237 MAGIC_EFFECT_EFEITO238 = 0x213, //238 MAGIC_EFFECT_EFEITO239 = 0x214, //239 MAGIC_EFFECT_EFEITO240 = 0x215, //240 MAGIC_EFFECT_EFEITO241 = 0x216, //241 MAGIC_EFFECT_EFEITO242 = 0x217, //242 MAGIC_EFFECT_EFEITO243 = 0x218, //243 MAGIC_EFFECT_EFEITO244 = 0x219, //244 MAGIC_EFFECT_EFEITO245 = 0x220, //245 MAGIC_EFFECT_EFEITO246 = 0x221, //246 MAGIC_EFFECT_EFEITO247 = 0x222, //247 MAGIC_EFFECT_EFEITO248 = 0x223, //248 MAGIC_EFFECT_EFEITO249 = 0x224, //249 MAGIC_EFFECT_EFEITO250 = 0x225, //250 MAGIC_EFFECT_EFEITO251 = 0x226, //251 MAGIC_EFFECT_EFEITO252 = 0x227, //252 MAGIC_EFFECT_EFEITO253 = 0x228, //253 MAGIC_EFFECT_EFEITO254 = 0x229, //254 MAGIC_EFFECT_EFEITO255 = 0x230, //255 MAGIC_EFFECT_LAST = MAGIC_EFFECT_EFEITO255, //for internal use, dont send to client MAGIC_EFFECT_NONE = 0xFF, MAGIC_EFFECT_UNKNOWN = 0xFFFF };

     
    Não esqueça de deixar MAGIC_EFFECT_LAST, sempre como sendo o último efeito configurado. Por exemplo, se o meu último efeito configurado é MAGIC_EFFECT_EFEITO172 = 0x147, //172, então, ficará como:
    MAGIC_EFFECT_LAST = MAGIC_EFFECT_EFEITO172,

     
    No arquivo tools.cpp, procure por:
    MagicEffectNames magicEffectNames[] =

     
    Basta configurar os efeitos novamente, assim como no arquivo anterior (const.h). Ficando assim (no caso, até o 255 também):
    MagicEffectNames magicEffectNames[] = { {"redspark", MAGIC_EFFECT_DRAW_BLOOD}, {"bluebubble", MAGIC_EFFECT_LOSE_ENERGY}, {"poff", MAGIC_EFFECT_POFF}, {"yellowspark", MAGIC_EFFECT_BLOCKHIT}, {"explosionarea", MAGIC_EFFECT_EXPLOSION_AREA}, {"explosion", MAGIC_EFFECT_EXPLOSION_DAMAGE}, {"firearea", MAGIC_EFFECT_FIRE_AREA}, {"yellowbubble", MAGIC_EFFECT_YELLOW_RINGS}, {"greenbubble", MAGIC_EFFECT_POISON_RINGS}, {"blackspark", MAGIC_EFFECT_HIT_AREA}, {"teleport", MAGIC_EFFECT_TELEPORT}, {"energy", MAGIC_EFFECT_ENERGY_DAMAGE}, {"blueshimmer", MAGIC_EFFECT_WRAPS_BLUE}, {"redshimmer", MAGIC_EFFECT_WRAPS_RED}, {"greenshimmer", MAGIC_EFFECT_WRAPS_GREEN}, {"fire", MAGIC_EFFECT_HITBY_FIRE}, {"greenspark", MAGIC_EFFECT_POISON}, {"mortarea", MAGIC_EFFECT_MORT_AREA}, {"greennote", MAGIC_EFFECT_SOUND_GREEN}, {"rednote", MAGIC_EFFECT_SOUND_RED}, {"poison", MAGIC_EFFECT_POISON_AREA}, {"yellownote", MAGIC_EFFECT_SOUND_YELLOW}, {"purplenote", MAGIC_EFFECT_SOUND_PURPLE}, {"bluenote", MAGIC_EFFECT_SOUND_BLUE}, {"whitenote", MAGIC_EFFECT_SOUND_WHITE}, {"bubbles", MAGIC_EFFECT_BUBBLES}, {"dice", MAGIC_EFFECT_CRAPS}, {"giftwraps", MAGIC_EFFECT_GIFT_WRAPS}, {"yellowfirework", MAGIC_EFFECT_FIREWORK_YELLOW}, {"redfirework", MAGIC_EFFECT_FIREWORK_RED}, {"bluefirework", MAGIC_EFFECT_FIREWORK_BLUE}, {"stun", MAGIC_EFFECT_STUN}, {"sleep", MAGIC_EFFECT_SLEEP}, {"watercreature", MAGIC_EFFECT_WATERCREATURE}, {"groundshaker", MAGIC_EFFECT_GROUNDSHAKER}, {"hearts", MAGIC_EFFECT_HEARTS}, {"fireattack", MAGIC_EFFECT_FIREATTACK}, {"energyarea", MAGIC_EFFECT_ENERGY_AREA}, {"smallclouds", MAGIC_EFFECT_SMALLCLOUDS}, {"holydamage", MAGIC_EFFECT_HOLYDAMAGE}, {"bigclouds", MAGIC_EFFECT_BIGCLOUDS}, {"icearea", MAGIC_EFFECT_ICEAREA}, {"icetornado", MAGIC_EFFECT_ICETORNADO}, {"iceattack", MAGIC_EFFECT_ICEATTACK}, {"stones", MAGIC_EFFECT_STONES}, {"smallplants", MAGIC_EFFECT_SMALLPLANTS}, {"carniphila", MAGIC_EFFECT_CARNIPHILA}, {"purpleenergy", MAGIC_EFFECT_PURPLEENERGY}, {"yellowenergy", MAGIC_EFFECT_YELLOWENERGY}, {"holyarea", MAGIC_EFFECT_HOLYAREA}, {"bigplants", MAGIC_EFFECT_BIGPLANTS}, {"cake", MAGIC_EFFECT_CAKE}, {"giantice", MAGIC_EFFECT_GIANTICE}, {"watersplash", MAGIC_EFFECT_WATERSPLASH}, {"plantattack", MAGIC_EFFECT_PLANTATTACK}, {"tutorialarrow", MAGIC_EFFECT_TUTORIALARROW}, {"tutorialsquare", MAGIC_EFFECT_TUTORIALSQUARE}, {"mirrorhorizontal", MAGIC_EFFECT_MIRRORHORIZONTAL}, {"mirrorvertical", MAGIC_EFFECT_MIRRORVERTICAL}, {"skullhorizontal", MAGIC_EFFECT_SKULLHORIZONTAL}, {"skullvertical", MAGIC_EFFECT_SKULLVERTICAL}, {"assassin", MAGIC_EFFECT_ASSASSIN}, {"stepshorizontal", MAGIC_EFFECT_STEPSHORIZONTAL}, {"bloodysteps", MAGIC_EFFECT_BLOODYSTEPS}, {"stepsvertical", MAGIC_EFFECT_STEPSVERTICAL}, {"yalaharighost", MAGIC_EFFECT_YALAHARIGHOST}, {"bats", MAGIC_EFFECT_BATS}, {"smoke", MAGIC_EFFECT_SMOKE}, {"efeito69", MAGIC_EFFECT_EFEITO69}, {"efeito70", MAGIC_EFFECT_EFEITO70}, {"efeito71", MAGIC_EFFECT_EFEITO71}, {"efeito72", MAGIC_EFFECT_EFEITO72}, {"efeito73", MAGIC_EFFECT_EFEITO73}, {"efeito74", MAGIC_EFFECT_EFEITO74}, {"efeito75", MAGIC_EFFECT_EFEITO75}, {"efeito76", MAGIC_EFFECT_EFEITO76}, {"efeito77", MAGIC_EFFECT_EFEITO77}, {"efeito78", MAGIC_EFFECT_EFEITO78}, {"efeito79", MAGIC_EFFECT_EFEITO79}, {"efeito80", MAGIC_EFFECT_EFEITO80}, {"efeito81", MAGIC_EFFECT_EFEITO81}, {"efeito82", MAGIC_EFFECT_EFEITO82}, {"efeito83", MAGIC_EFFECT_EFEITO83}, {"efeito84", MAGIC_EFFECT_EFEITO84}, {"efeito85", MAGIC_EFFECT_EFEITO85}, {"efeito86", MAGIC_EFFECT_EFEITO86}, {"efeito87", MAGIC_EFFECT_EFEITO87}, {"efeito88", MAGIC_EFFECT_EFEITO88}, {"efeito89", MAGIC_EFFECT_EFEITO89}, {"efeito90", MAGIC_EFFECT_EFEITO90}, {"efeito91", MAGIC_EFFECT_EFEITO91}, {"efeito92", MAGIC_EFFECT_EFEITO92}, {"efeito93", MAGIC_EFFECT_EFEITO93}, {"efeito94", MAGIC_EFFECT_EFEITO94}, {"efeito95", MAGIC_EFFECT_EFEITO95}, {"efeito96", MAGIC_EFFECT_EFEITO96}, {"efeito97", MAGIC_EFFECT_EFEITO97}, {"efeito98", MAGIC_EFFECT_EFEITO98}, {"efeito99", MAGIC_EFFECT_EFEITO99}, {"efeito100", MAGIC_EFFECT_EFEITO100}, {"efeito101", MAGIC_EFFECT_EFEITO101}, {"efeito102", MAGIC_EFFECT_EFEITO102}, {"efeito103", MAGIC_EFFECT_EFEITO103}, {"efeito104", MAGIC_EFFECT_EFEITO104}, {"efeito105", MAGIC_EFFECT_EFEITO105}, {"efeito106", MAGIC_EFFECT_EFEITO106}, {"efeito107", MAGIC_EFFECT_EFEITO107}, {"efeito108", MAGIC_EFFECT_EFEITO108}, {"efeito109", MAGIC_EFFECT_EFEITO109}, {"efeito110", MAGIC_EFFECT_EFEITO110}, {"efeito111", MAGIC_EFFECT_EFEITO111}, {"efeito112", MAGIC_EFFECT_EFEITO112}, {"efeito113", MAGIC_EFFECT_EFEITO113}, {"iefeito114", MAGIC_EFFECT_EFEITO114}, {"efeito115", MAGIC_EFFECT_EFEITO115}, {"efeito116", MAGIC_EFFECT_EFEITO116}, {"efeito117", MAGIC_EFFECT_EFEITO117}, {"efeito118", MAGIC_EFFECT_EFEITO118}, {"efeito119", MAGIC_EFFECT_EFEITO119}, {"efeito120", MAGIC_EFFECT_EFEITO120}, {"efeito121", MAGIC_EFFECT_EFEITO121}, {"efeito122", MAGIC_EFFECT_EFEITO122}, {"efeito123", MAGIC_EFFECT_EFEITO123}, {"efeito124", MAGIC_EFFECT_EFEITO124}, {"efeito125", MAGIC_EFFECT_EFEITO125}, {"efeito126", MAGIC_EFFECT_EFEITO126}, {"efeito127", MAGIC_EFFECT_EFEITO127}, {"efeito128", MAGIC_EFFECT_EFEITO128}, {"efeito129", MAGIC_EFFECT_EFEITO129}, {"efeito130", MAGIC_EFFECT_EFEITO130}, {"efeito131", MAGIC_EFFECT_EFEITO131}, {"efeito132", MAGIC_EFFECT_EFEITO132}, {"efeito133", MAGIC_EFFECT_EFEITO133}, {"efeito134", MAGIC_EFFECT_EFEITO134}, {"efeito135", MAGIC_EFFECT_EFEITO135}, {"efeito136", MAGIC_EFFECT_EFEITO136}, {"efeito137", MAGIC_EFFECT_EFEITO137}, {"efeito38", MAGIC_EFFECT_EFEITO138}, {"efeito139", MAGIC_EFFECT_EFEITO139}, {"efeito140", MAGIC_EFFECT_EFEITO140}, {"efeito141", MAGIC_EFFECT_EFEITO141}, {"efeito142", MAGIC_EFFECT_EFEITO142}, {"efeito143", MAGIC_EFFECT_EFEITO143}, {"efeito144", MAGIC_EFFECT_EFEITO144}, {"efeito145", MAGIC_EFFECT_EFEITO145}, {"efeito146", MAGIC_EFFECT_EFEITO146}, {"efeito147", MAGIC_EFFECT_EFEITO147}, {"efeito148", MAGIC_EFFECT_EFEITO148}, {"efeito149", MAGIC_EFFECT_EFEITO149}, {"efeito150", MAGIC_EFFECT_EFEITO150}, {"efeito151", MAGIC_EFFECT_EFEITO151}, {"efeito152", MAGIC_EFFECT_EFEITO152}, {"efeito153", MAGIC_EFFECT_EFEITO153}, {"efeito154", MAGIC_EFFECT_EFEITO154}, {"efeito155", MAGIC_EFFECT_EFEITO155}, {"efeito156", MAGIC_EFFECT_EFEITO156}, {"efeito157", MAGIC_EFFECT_EFEITO157}, {"efeito158", MAGIC_EFFECT_EFEITO158}, {"efeito159", MAGIC_EFFECT_EFEITO159}, {"efeito160", MAGIC_EFFECT_EFEITO160}, {"efeito161", MAGIC_EFFECT_EFEITO161}, {"efeito162", MAGIC_EFFECT_EFEITO162}, {"efeito163", MAGIC_EFFECT_EFEITO163}, {"efeito164", MAGIC_EFFECT_EFEITO164}, {"efeito165", MAGIC_EFFECT_EFEITO165}, {"efeito166", MAGIC_EFFECT_EFEITO166}, {"efeito167", MAGIC_EFFECT_EFEITO167}, {"efeito168", MAGIC_EFFECT_EFEITO168}, {"efeito169", MAGIC_EFFECT_EFEITO169}, {"efeito170", MAGIC_EFFECT_EFEITO170}, {"efeito171", MAGIC_EFFECT_EFEITO171}, {"efeito172", MAGIC_EFFECT_EFEITO172}, {"efeito173", MAGIC_EFFECT_EFEITO173}, {"efeito174", MAGIC_EFFECT_EFEITO174}, {"efeito175", MAGIC_EFFECT_EFEITO175}, {"efeito176", MAGIC_EFFECT_EFEITO176}, {"efeito177", MAGIC_EFFECT_EFEITO177}, {"efeito178", MAGIC_EFFECT_EFEITO178}, {"efeito179", MAGIC_EFFECT_EFEITO179}, {"efeito180", MAGIC_EFFECT_EFEITO180}, {"efeito181", MAGIC_EFFECT_EFEITO181}, {"efeito182", MAGIC_EFFECT_EFEITO182}, {"efeito183", MAGIC_EFFECT_EFEITO183}, {"efeito184", MAGIC_EFFECT_EFEITO184}, {"efeito185", MAGIC_EFFECT_EFEITO185}, {"efeito186", MAGIC_EFFECT_EFEITO186}, {"efeito187", MAGIC_EFFECT_EFEITO187}, {"efeito188", MAGIC_EFFECT_EFEITO188}, {"efeito189", MAGIC_EFFECT_EFEITO189}, {"efeito190", MAGIC_EFFECT_EFEITO190}, {"efeito191", MAGIC_EFFECT_EFEITO191}, {"efeito192", MAGIC_EFFECT_EFEITO192}, {"efeito193", MAGIC_EFFECT_EFEITO193}, {"efeito194", MAGIC_EFFECT_EFEITO194}, {"efeito195", MAGIC_EFFECT_EFEITO195}, {"efeito196", MAGIC_EFFECT_EFEITO196}, {"efeito197", MAGIC_EFFECT_EFEITO197}, {"efeito198", MAGIC_EFFECT_EFEITO198}, {"efeito199", MAGIC_EFFECT_EFEITO199}, {"efeito200", MAGIC_EFFECT_EFEITO200}, {"efeito201", MAGIC_EFFECT_EFEITO201}, {"efeito202", MAGIC_EFFECT_EFEITO202}, {"efeito203", MAGIC_EFFECT_EFEITO203}, {"efeito204", MAGIC_EFFECT_EFEITO204}, {"efeito205", MAGIC_EFFECT_EFEITO205}, {"efeito206", MAGIC_EFFECT_EFEITO206}, {"efeito207", MAGIC_EFFECT_EFEITO207}, {"efeito208", MAGIC_EFFECT_EFEITO208}, {"efeito209", MAGIC_EFFECT_EFEITO209}, {"efeito210", MAGIC_EFFECT_EFEITO210}, {"efeito211", MAGIC_EFFECT_EFEITO211}, {"efeito212", MAGIC_EFFECT_EFEITO212}, {"efeito213", MAGIC_EFFECT_EFEITO213}, {"efeito214", MAGIC_EFFECT_EFEITO214}, {"efeito215", MAGIC_EFFECT_EFEITO215}, {"efeito216", MAGIC_EFFECT_EFEITO216}, {"efeito217", MAGIC_EFFECT_EFEITO217}, {"efeito218", MAGIC_EFFECT_EFEITO218}, {"efeito219", MAGIC_EFFECT_EFEITO219}, {"efeito220", MAGIC_EFFECT_EFEITO220}, {"efeito221", MAGIC_EFFECT_EFEITO221}, {"efeito22", MAGIC_EFFECT_EFEITO222}, {"efeito223", MAGIC_EFFECT_EFEITO223}, {"efeito224", MAGIC_EFFECT_EFEITO224}, {"efeito225", MAGIC_EFFECT_EFEITO225}, {"efeito226", MAGIC_EFFECT_EFEITO226}, {"efeito227", MAGIC_EFFECT_EFEITO227}, {"efeito228", MAGIC_EFFECT_EFEITO228}, {"efeito229", MAGIC_EFFECT_EFEITO229}, {"efeito230", MAGIC_EFFECT_EFEITO230}, {"efeito231", MAGIC_EFFECT_EFEITO231}, {"efeito232", MAGIC_EFFECT_EFEITO232}, {"efeito233", MAGIC_EFFECT_EFEITO233}, {"efeito234", MAGIC_EFFECT_EFEITO234}, {"efeito235", MAGIC_EFFECT_EFEITO235}, {"efeito236", MAGIC_EFFECT_EFEITO236}, {"efeito237", MAGIC_EFFECT_EFEITO237}, {"efeito238", MAGIC_EFFECT_EFEITO238}, {"efeito239", MAGIC_EFFECT_EFEITO239}, {"efeito240", MAGIC_EFFECT_EFEITO240}, {"efeito241", MAGIC_EFFECT_EFEITO241}, {"efeito242", MAGIC_EFFECT_EFEITO242}, {"efeito243", MAGIC_EFFECT_EFEITO243}, {"efeito244", MAGIC_EFFECT_EFEITO244}, {"efeito245", MAGIC_EFFECT_EFEITO245}, {"efeito246", MAGIC_EFFECT_EFEITO246}, {"efeito247", MAGIC_EFFECT_EFEITO247}, {"efeito248", MAGIC_EFFECT_EFEITO248}, {"efeito249", MAGIC_EFFECT_EFEITO249}, {"efeito250", MAGIC_EFFECT_EFEITO250}, {"efeito251", MAGIC_EFFECT_EFEITO251}, {"efeito252", MAGIC_EFFECT_EFEITO252}, {"efeito253", MAGIC_EFFECT_EFEITO253}, {"efeito254", MAGIC_EFFECT_EFEITO254}, {"efeito255", MAGIC_EFFECT_EFEITO255} }; Não esqueça de configurar exatamente como em const.h. Por exemplo, se no arquivo anterior o efeito 250 está configurado como:
    MAGIC_EFFECT_EFEITO250 = 0x225, //250

     
    Então, você terá que configurar o mesmo efeito com os mesmos caracteres do nome desse efeito em tools.cpp (no código, digo configurar os caracteres exatamente iguais aos do arquivo anterior, após a vírgula >):
    {"efeito250", MAGIC_EFFECT_EFEITO250}, Compile e adicione o executável do distro à seu servidor.





    Vamos a configuração no seu servidor. Vá até o diretório da pasta lib (data/lib) e abra o arquivo 000-constant.lua. Nele, procure por:
    CONST_ME_

     
    E então configure, logo após o último efeito (no caso, 68 seria: CONST_ME_INSECTS = 68), todos os efeitos com os mesmos caracteres dos quais você adicionou na source em const.h e tools.cpp. Se você configurou por exemplo, até o efeito número 80 nos arquivos anteriores, então no script da lib ficaria dessa forma:
    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 = 10 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 = 21 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_EFEITO69 = 69 CONST_ME_EFEITO70 = 70 CONST_ME_EFEITO71 = 71 CONST_ME_EFEITO72 = 72 CONST_ME_EFEITO73 = 73 CONST_ME_EFEITO74 = 74 CONST_ME_EFEITO75 = 75 CONST_ME_EFEITO76 = 76 CONST_ME_EFEITO77 = 77 CONST_ME_EFEITO78 = 78 CONST_ME_EFEITO79 = 79 CONST_ME_EFEITO80 = 80 CONST_ME_NONE = 255 CONST_ME_LAST = CONST_ME_EFEITO80 Fim.
  14. Gostei
    Bizzle deu reputação a Bruno Carvalho em LUA Functions   
    Todas as funções do TFS 1.0
     
    Ordem alfabética classificada excluindo metamétodos
     
    Funções com metamétodos
     
    Funções na source
    http://pastebin.com/s5b4yVa7
     
    Funções em lua
    http://pastebin.com/bgpNHax2
     
    Tópico original
  15. Gostei
    Bizzle recebeu reputação de Cook em [TalkAction] Suicidio   
    [TalkAction] Suicídio
    Essa talkaction (comando), se o player não estiver na protection zone e se ele tiver level superior a 100, fará com que o mesmo simplesmente se mate, cometa suicídio. Mas pra quê isso? bom, eu não sei bem pra quê..talvez para ele se matar quando estiver morrendo para um player e assim não ter seu nome na fraglist desse player, ou porquê ele tá depre mesmo. A vida tibiana tem fases difíceis..heuaha
    Enfim, vamos lá. Vá até a pasta data/talkactions/scripts, crie um arquivo nomeado de killmyself.lua e adicione o script:



    Para configurar o level e/ou a storage, apenas modifique onde estão os respectivos valores no script (em negrito):



    Para quê serve a storage no script acima? Ela tem como função verificar se o player possui determinado valor da mesma, e assim, prosseguir ou não com a confirmação de suicídio e/ou com o suicídio.
                                                          
    Agora volte ao diretório anterior (data/talkactions), abra o arquivo talkactions.xml como bloco de notas e adicione a tag:
    <talkaction log="yes" words="!suicide" event="script" value="killmyself.lua"/>
    Agora apenas use !suicide e acabe com a sua vida sem usar laminas, sem se machucar, sem sentir dor, sem gastar a gilete do seu pai, sem nada..
  16. Gostei
    Bizzle deu reputação a luanluciano93 em TFS 0.4 CAST   
    Olá pessoal, tive a iniciativa de criar esse tópico para atualizar e otimizar as sources do TFS 0.4 DEV que é uma das mais usadas no mundo do otserv. Conteúdo totalmente gratuito e pretendemos melhora-lo cada vez mais. 
     
    Qualquer um pode colaborar, postando bugs, erros, otimizando códigos, comentar aqui no tópico, toda ajuda é bem vinda, vamos tornar essa a melhor source disponível. Conto com vocês.
     
    Versão do Tibia: 8.60
     
    Alguns sistema já implementados na source:
    • TFS 0.4 DEV rev 3777 (by TFS Team)
    • Anti-Divulgação (.servegame, .no-ip, .net, .com, .org, .pl, .biz, .br, .sytes, .info)
    • War System
    • Cast System (by Summ)
    • Retirado bugs de anti-push ..
    • Retirado bugs de elfbot ...
    • Retirado erro de não aceitar outros items ...
    • Retirado erro de Malformed File ...
    • Add creatureevent onMoveItem()  ...
    • Add função getCreaturePathTo () ...
    • E vários outros!
     
    Complementos:
    • Add cast System (passo a passo): [AQUI]
    • Pode add o comando na config.lua:
    healthHealingColor = COLOR_GREEN -- [podendo alterar a cor]. manaHealingColor = COLOR_DARKPURPLE -- [podendo alterar a cor]. Downloads:
    • Distro Compilada 32x
    • Distro Compilada 64x
    • Sources 7
     
     
    TESTADO EM WINDOWS, DEBIAN 7.8, UBUNTU 12.04 E 14.05!
     
     
    • Compilar em Linux: 
     
     
     
    • Erros para arrumar: 
     


    Obrigado ao runeraserver pelo incentivo em fixa-la para linux

    E é isso pessoal, espero ter ajudado, abraços
     
  17. Gostei
    Bizzle recebeu reputação de nahapa em [Site que verifica possiveis erros no script]   
    Bom, eu estava procurando por esse site que já usei para como um verificador de erros dos meus scripts (em Lua) e não encontrava a URL. Dando uma olhada no forum, acabei também não o encontrando e quando me lembrei dele resolvi postar para que sirva de ajuda (principalmente aos scripters iniciantes) com seus testes de funções, coisa e tal.
    Você pode acessar o site clicando aqui.
    Para fazer um teste do seu script, basta colá-lo na parte onde há uma área com espaço retangular para digitar e clicar em Run:




    No caso, esse site é da própria PUC-Rio (a Pontifícia Universidade Católica do Rio de Janeiro, onde foi desenvolvida a linguagem de programação Lua). Nele, há também um manual de referência com um imenso conteúdo sobre esta linguagem tão apreciada pelos scripters tibianos, que pode lhes auxiliar bastante com tamanho conhecimento disponível lá.
    Acesse o manual de referência clicando aqui.
    Enfim, espero que possam fazer bom proveito dessa ferramenta.
  18. Gostei
    [TalkAction] Teleportar todos os players online para determinadas cordenadas

    Primeiramente, verifique se você possui a função string.explode no seu global.lua (geralmente em data/global.lua). Caso não tenha, então adicione as seguintes linhas no arquivo:



    PS: Function by Colandus
                                                          
    Após ter feito isso vá até a pasta data/talkactions/scripts, crie um arquivo nomeado por tpallon.lua e adicione o script:



                                                          
    Volte ao diretório anterior (data/talkactions), abra o arquivo talkactions.xml (como bloco de notas) e adicione a seguinte tag:
    <talkaction log="yes" words="!tpallon" access="5" event="script" value="tpallon.lua"/>

    Enfim, agora basta usar !tpallon x,y,z (que são as cordenadas) e todos os players online vão ser teleportados para o local desejado.

    Agradecimentos ao @way20 por ter testado o script para mim.
    OBS: Sistema baseado em visão de outros sistemas parecidos.

     
  19. Gostei
    Bizzle recebeu reputação de luanluciano93 em Bomba Plástica/Plastic Bomb   
    [Action] Bomba Plástica/Plastic Bomb
     
     
    Bom galera, esse script é bem antigo..então eu o editei colocando algumas funções mais atuais (alterei pouca coisa). É simplesmente um item do qual você da Use (actionscript), você vai ficar com battle e parado por determinado tempo, até que a bomba esteja bem plantada e você possa sair correndo do local (ou fique nele se você for terrorista, homem-bomba ou maluco mesmo..) antes que ela exploda na área que você usou o item. A área do script é dada como 3x3, você pode alterar; o player que estiver no meio sempre irá receber o maior dano possível e os outros vão ter um dado aleatório (entre o dano mínimo e dano máximo designado na configuração do script).
     

    Crie um arquivo Lua na pasta data/actions/scripts nomeado por plasticbomb.lua e adicione o script ao mesmo:
     
    local PLANTING_DELAY = 5 --segundos que lava para plantar a bomba local EXPLOSION_DELAY = 5000 --tempo que leva para a bomba explodir (em milissegundos, ou seja, 5 segundos = 5000 milissegundos) local MAX_HIT = 1200 --hit máximo da bomba local MIN_HIT = 300 --hit mínimo da bomba local PVP = true --se habilita o PVP = true, senão (NON-PVP) = false {ou seja, se a bomba hitar em alguém o player vai ficar com PK ou não local PLAYERS = {} function isInArray(table, valor) for i,j in pairs(table) do if (j == valor) then return i end end return 0 end function explosion(info) area = { {0,0,0,0,0}, {0,1,1,1,0}, {0,1,1,1,0}, --área que a explosão da bomba vai pegar (no caso está 3x3), basta alterar 0 por 1 e vice-versa {0,1,1,1,0}, {0,0,0,0,0}, } hitpos = {x=info.pos.x, y=info.pos.y, z=info.pos.z, stackpos=253} center = {} center.y = math.floor(table.getn(area)/2)+1 for i in ipairs(area) do center.x = math.floor(table.getn(area[i])/2)+1 for j, v in ipairs(area[i]) do if (v == 1) then hitpos.x = info.pos.x + (j - center.x) hitpos.y = info.pos.y + (i - center.y) if (getTilePzInfo(hitpos) == 0) then victim = getThingfromPos(hitpos) effect = 4 if ((j == center.x) and (i == center.y)) then doSendAnimatedText(hitpos, "KABOOOOOM", TEXTCOLOR_RED) ---mensagem animada que aparece quando a bomba explode hitpoints = MAX_HIT effect = 5 else hitpoints = math.random(MIN_HIT, MAX_HIT) end if (isPlayer(victim.uid) == 1) then if (PVP == true) then doPlayerSendTextMessage(victim.uid, 20, "Você perdeu "..hitpoints.." pontos de vida pela bomba plástica do player "..getPlayerName(info.player).."'") else hitpoints = 0 end end if (isCreature(victim.uid) == 1) then doPlayerAddHealth(victim.uid, -hitpoints) end doSendMagicEffect(hitpos, effect) end end end end PLAYERS[isInArray(PLAYERS, info.player)] = 0 doAddCondition(info.player, 0) return 1 end function planting(info) if info.num == PLANTING_DELAY then doPlayerSendTextMessage(info.player, 22, "Bomba plástica plantada com sucesso!") doCreatureSetNoMove(cid, 1) addEvent(explosion, EXPLOSION_DELAY, info) else info.num = info.num + 1 doPlayerSendTextMessage(info.player, 22, info.num.."...") addEvent(planting, 1000, info) end return 1 end function onUse(cid, item, frompos, item2, topos) position = getThingPos(item.uid) if (getTilePzInfo(position) == 0) then if (isInArray(PLAYERS, cid) == 0) then table.insert(PLAYERS, cid) doSendMagicEffect(frompos, 3) info = {player = cid, pos = position, num = 1} doPlayerSendTextMessage(cid, 22, "Plantando a bomba...") doPlayerSendTextMessage(cid, 22, "1...") doAddCondition(cid, CONDITION_INFIGHT) doCreatureSetNoMove(cid, 1) doRemoveItem(item.uid, 1) addEvent(planting, 1000, info) else doPlayerSendCancel(cid,"Você só pode plantar uma bomba ao mesmo tempo.") end else doPlayerSendCancel(cid,"Você não pode plantar a bomba em uma PZ!") end return 1 end
    Agora, no diretório anterior (data/actions) abra o arquivo actions.xml e adicione a tag:
     
    <action itemid="4852" script="plasticbomb.lua" />

    Créditos: Colex e eu, que editei 2 funções simples (quase nada).
    PS: Expliquei alguns detalhes para alterar os valores no script --
    Enfim..é isso.
  20. Gostei
    Bizzle recebeu reputação de luanluciano93 em [Video/Escrito] Adicionando comando /buykit   
    Quem postou foi você. E isso não é uma crítica, nem nada pessoal, só relevei o detalhe que citei com a intenção de compartilhar conhecimento.
  21. Gostei
    Bizzle recebeu reputação de eviltox em [PEDIDO]-Transformar Script Talkaction em Movement   
    dancering.lua (data/movements/scripts):
    local storage, value = 38417, -1 local text = {"Você está com o DANCE ativado, retire o anel para desativar.", "Ai Que Loucuuura"} local sex = { [0] = {136, 137, 138, 139, 140, 141, 142, 147, 148, 149, 150, 155, 156, 157, 158, 252, 269, 270, 279, 288, 324}, [1] = {128, 129, 130, 131, 132, 133, 134, 143, 144, 145, 146, 151, 152, 153, 154, 251, 268, 273, 278, 289, 325} } local condition_infight = createConditionObject(CONDITION_INFIGHT) setConditionParam(condition_infight, CONDITION_PARAM_TICKS, -1) function onEquip(cid, item, slot) local psex = sex[getPlayerSex(cid)] if psex then for _, n in pairs(psex) do otf = {lookType = math.random(n[1], n[21]), lookHead = math.random(1, 133), lookBody = math.random(1, 133), lookLegs = math.random(1, 133), lookFeet = math.random(1, 133)} doSetCreatureOutfit(cid, otf, -1) doAddCondition(cid, condition_infight) doCreatureSetNoMove(cid, 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, text[1]) doPlayerSendCancel(cid, text[2]) setPlayerStorageValue(cid, storage, value) end end return 1 end function onDeEquip(cid, item, slot) if getPlayerStorageValue(cid, storage) >= 1 then doRemoveCondition(cid, CONDITION_OUTFIT) doRemoveCondition(cid, CONDITION_INFIGHT) doCreatureSetNoMove(cid, 0) doPlayerSendCancel(cid, text[2]) setPlayerStorageValue(cid, storage, value) end return 1 end

    Adicione as seguintes tags ao arquivo movements.xml (data/movements):
    <movevent type="Equip" itemid="7697" slot="ring" event="script" value="dancering.lua"/> <movevent type="DeEquip" itemid="7697" slot="ring" event="script" value="dancering.lua"/>
    stopdance.lua (data/creaturescripts/scripts):
    local storage, value = 38417, -1 function onDeath(cid) if getPlayerStorageValue(cid, storage) >= 1 then setPlayerStorageValue(cid, storage, value) end return 1 end function onLogout(cid) if getPlayerStorageValue(cid, storage) >= 1 then setPlayerStorageValue(cid, storage, value) end return 1 end

    Na mesma pasta (data/creaturescripts/scripts), abra o arquivo login.lua e adicione as seguintes linhas ao final do script:
    registerCreatureEvent(cid, "StopDanceonDeath") registerCreatureEvent(cid, "StopDanceonLogout")
    Adicione estas tags ao arquivo creaturescripts.xml (data/creaturescripts):
    <event type="death" name="StopDanceonDeath" event="script" value="stopdance.lua"/> <event type="logout" name="StopDanceonLogout" event="script" value="stopdance.lua"/>

    Créditos: meus
    PS: não testei
  22. Gostei
    Bizzle deu reputação a MaXwEllDeN em [Aula 10] O Comando for   
    Sim, o break é necessário pro script seguir a lógica que o programador quis usar. Dá uma lida de novo no tutorial,
     

    for index, valor in pairs(tabela) do  
    Essa é a sintaxe do for. O que muitas pessoas não sabem, é que o underline(_) pode ser usado como nome de variável também. Exemplo:
     

    local _ = "Maxwell" print(_)
  23. Gostei
    Bizzle recebeu reputação de SliceFalso em (Resolvido)Tile que dê Outfit temporiaramente   
    showoutfit.lua (data/movements/scripts):
    local poutfit = {lookType = 104} function onStepIn(cid, item, pos, fromPos)     if isPlayer(cid) then         doSetCreatureOutfit(cid, poutfit, -1)     end return 1 end function onStepOut(cid, item, pos, fromPos)     if isPlayer(cid) then         doRemoveCondition(cid, CONDITION_OUTFIT)     end return 1 end movements.xml (data/movements), tags:
    <movevent type="StepIn" actionid="9876" event="script" value="showoutfit.lua"/> <movevent type="StepOut" actionid="9876" event="script" value="showoutfit.lua"/> Basta adicionar a ACTIONID 9876 ao piso (tile).

    Enquanto ao NPC irei rever o script mais tarde..
  24. Gostei
    Bizzle recebeu reputação de arthurabreu em Configurar Healler de um item   
    Então basta adicionar, cara..ficando assim:
    <item id="2510" article="a" name="fusion armor"> <attribute key="description" value="Health and Ki Regeneration +3000/s."/> <attribute key="weight" value="6500"/> <attribute key="armor" value="150"/> <attribute key="slotType" value="body"/> <attribute key="healthGain" value="1000"/>          <attribute key="healthTicks" value="6000"/> </item> É só alterar o valor, como o Rusherzin disse; no caso, value="1000"/> (irá healar 1000 de HP).
  25. Gostei
    Sim, coloquei um parêntese a mais...
    Mas sim, desta forma é mais certo que funcione.

Informação Importante

Confirmação de Termo