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.