SH

Novos Tipos de DAMAGE (como criar)

Por shept, 05 de jun. de 2015 em Linguagens de Programação

4
1.4k
sheptS
05 de junho de 2015 às 19:04
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 clear.png)


"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á.

6 meses depois...
Lord StrytonL
30 de dezembro de 2015 às 21:46

Desculpe-me está revivendo este tópico.
Queria saber se na versão 0.3.6 pega, ou se pelo menos tem como adaptar.

Editado Dezembro 30 por Lord Stryton

felzanF
30 de dezembro de 2015 às 22:23

Desculpe-me está revivendo este tópico.

Queria saber se na versão 0.3.6 pega, ou se pelo menos tem como adaptar.

 

Acho que ele pegou daqui https://otland.net/threads/new-types-of-damage-how-to-create.233109/

se for, é TFS 1.X

 

da uma lida e vê se algo te ajuda ^^

Lord StrytonL
31 de dezembro de 2015 às 20:20

 

Acho que ele pegou daqui https://otland.net/threads/new-types-of-damage-how-to-create.233109/

se for, é TFS 1.X

 

da uma lida e vê se algo te ajuda ^^

Que bosta, não vai ter como por para 0.3.6

Mas valeu mesmo assim,

Feliz ano novo!