em enums.h
abaixo disso, ou abaixo de outro tipo de COMBAT:
COMBAT_FIREDAMAGE = 1 << 3,
add (nesse caso o nome que eu coloquei é dark, mas é claro que vc pode colocar outro nome):
COMBAT_DARKDAMAGE = 1 << 4, // não sei o que esses numeros querem dizer mas deixem esse valor
vc precisa aumentar o contador, neste caso é só 1 de aumento
COMBAT_COUNT = 12 // normal contador
agora com o aumento:
COMBAT_COUNT = 13 // contador aumentado em 1
em game.cpp
abaixo desse "case" vc vai colocar o seu novo damage, isso é muito importante, aqui que vc vai dizer qual a cor que ele vai ser, qual o efeito que vai ser feito quando ele for usado por um player ou monstro...
case COMBAT_LIFEDRAIN: {
color = TEXTCOLOR_RED;
effect = CONST_ME_MAGIC_RED;
break;
}
add:
case COMBAT_DARKDAMAGE: {
color = TEXTCOLOR_DARKRED; // aqui vc escolhe a cor possivel do seu novo damage
effect = CONST_ME_BLACKSMOKE; // aqui o effect do seu novo damage
break;
}
aqui estão as cores possiveis para o seu damage, não estou certo se são apenas essas, se alguém souber e puder falar eu mudarei aqui.
TEXTCOLOR_BLUE = 5,
TEXTCOLOR_LIGHTGREEN = 30,
TEXTCOLOR_LIGHTBLUE = 35,
TEXTCOLOR_MAYABLUE = 95,
TEXTCOLOR_DARKRED = 108,
TEXTCOLOR_LIGHTGREY = 129,
TEXTCOLOR_SKYBLUE = 143,
TEXTCOLOR_PURPLE = 154,
TEXTCOLOR_RED = 180,
TEXTCOLOR_ORANGE = 198,
TEXTCOLOR_YELLOW = 210,
TEXTCOLOR_WHITE_EXP = 215,
TEXTCOLOR_NONE = 255,
em monsters.cpp
abaixo do else if:
} else if (tmpName == "lifedrain") {
combat->setParam(COMBAT_PARAM_TYPE, COMBAT_LIFEDRAIN);
add:
} else if (tmpName == "dark") {
combat->setParam(COMBAT_PARAM_TYPE, COMBAT_DARKDAMAGE);
agora vc precisa colocar o seu damage como possivel de ser atribuida como imunidade pra monstros...
em monsters.cpp
abaixo:
} else if ((attr = immunityNode.attribute("lifedrain"))) {
if (attr.as_bool()) {
mType->damageImmunities |= COMBAT_LIFEDRAIN;
}
add:
} else if ((attr = immunityNode.attribute("dark"))) {
if (attr.as_bool()) {
mType->damageImmunities |= COMBAT_DARKDAMAGE;
}
agora vc precisa colocar ele como element percent, aquele que vai na tag dos monsters.
ainda em monsters.cpp
below:
} else if ((attr = elementNode.attribute("lifedrainPercent"))) {
mType->elementMap[COMBAT_LIFEDRAIN] = pugi::cast<int32_t>(attr.value());
add:
} else if ((attr = elementNode.attribute("darkPercent"))) {
mType->elementMap[COMBAT_DARKDAMAGE] = pugi::cast<int32_t>(attr.value());
em spells.cpp
abaixo (eu não tenho certeza se essa mudança é necessaria, mas faça )
"lifedrain",
add:
"dark",
isso é tudo... mas tenha certeza que os nomes que vc for dar pro seu damage sejam os mesmos em todas as mudanças pra não ter bugs...
funciona em tfs 1.1 ou 1.2 ... nas outras não sei, não uso essas mais velhas...
créditos: silveralol (otland) // eu por trazer pra cá.