[C++]Adicionando novos elementos

fodim
Por fodim
em Tutoriais de Programação

fodim

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 11/02/10Posts: 80Char no Tibia: Lord Slashin

Explicação

Tipo voce coloca um elemento novo, como energy, death, holy etc.

 

 

Então Vamos La

 

Primeiramente abra o Dev C++

Depois abra o projeto The Forgotten Server.dev (ou outro depende do seu server)

Depois vai ate Combat.cpp:

embaixo de:

 

 

 

case CONDITION_FIRE:

return COMBAT_FIREDAMAGE;

 

 

Adicione

 

 

case CONDITION_BLUEFIRE:

return COMBAT_BLUEFIREDAMAGE;

(2x porque tem 2 script de condition)

 

Agora no Condition.cpp:

 

 

embaixo de:

case CONDITION_PHYSICAL:

 

adicione:

case CONDITION_BLUEFIRE:X

 

embaixo de:

case CONDITION_DROWN:

return ICON_DROWNING;

 

adicione

case CONDITION_BLUEFIRE:

return ICON_DROWNING;

 

Adicione uma virgula no final de:

CONDITION_HUNTING = 1 << 23

 

e embaixo adicione:

CONDITION_BLUEFIRE = 1 << 24

o numero coloque 1 apos a ultima condition no meu caso é a hunting numero 23 ai eu coloco 24

 

 

Agora no enums.h

 

 

embaixo de:

COMBAT_DEATHDAMAGE = 1 << 11,

 

adicione:

COMBAT_BLUEFIREDAMAGE = 1 << 12,

 

 

 

Depois nas spells.cpp:

 

 

depois de :

"cursecondition"

 

coloque uma virgula de um espaço e adicione:

"bluefire"

 

 

 

Agora no Game.cpp:

 

 

embaixo de:case

COMBAT_HOLYDAMAGE

:

adicione:

case COMBAT_BLUEFIREDAMAGE:

 

embaixo de:

 

case COMBAT_LIFEDRAIN:

 

{

textColor = TEXTCOLOR_RED;

magicEffect = MAGIC_EFFECT_WRAPS_RED;

break;

}

 

adicione:

case COMBAT_BLUEFIREDAMAGE:

{

textColor = TEXTCOLOR_BLUE;

magicEffect = MAGIC_EFFECT_HITBY_FIRE;

break;

}

 

 

E Por Ultimo no tools.cpp

 

 

embaixo de:

case COMBAT_BLUEFIREDAMAGE:

 

return "death";

adicione:

 

case COMBAT_BLUEFIREDAMAGE

:

return "bluefire";

 

 

 

 

Ai voce tem a opção de adicionar o reflect e o imune

Mas Como Assim

Tipo num tem aqueles itens de 5% de proteção death ?, você pode fazer que seu elemento possa ser adicionada com imunidade nos items.xml (eu vi nas vocations,monsters e nas outfits e nao entendi bem o que é, pois so vou ensinar as dos items)

 

Nos Items.cpp

 

 

embaixo de:

t.abilities.absorb[COMBAT_DEATHDAMAGE] += intValue;

 

adicione

it.abilities.absorb[COMBAT_BLUEFIREDAMAGE] += intValue;

 

 

abaixo de:

else if(tmpStrValue == "absorbpercentundefined")

{

if(readXMLInteger(itemAttributesNode, "value", intValue))

it.abilities.absorb[COMBAT_UNDEFINEDDAMAGE] += intValue;

 

adicione:

 

else if(tmpStrValue == "absorbpercentbluefire")

{

if(readXMLInteger(itemAttributesNode, "value", intValue))

it.abilities.absorb[COMBAT_UNDEFINEDDAMAGE] += intValue;

adicione:

else if(tmpStrValue == "absorbpercent[color=#ff0000]bluefire[/color]")

{

if(readXMLInteger(itemAttributesNode, "value", intValue))

it.abilities.absorb[COMBAT_[color=#ff0000]BLUEFIRE[/color]DAMAGE] += intValue;

 

 

[b]Repita o processo para os demais resultados, agora o reflect:[/b]

 

Abaixo de:

else if(tmpStrValue == "reflectpercentundefined)

{

if(readXMLInteger(itemAttributesNode, "value", intValue))

it.abilities.reflect[REFLECT_PERCENT][COMBAT_UNDEFINEDDAMAGE] += intValue;

}

 

adicione:else if(tmpStrValue == "reflectpercent[color=#FF0000]bluefire[/color]")

{

if(readXMLInteger(itemAttributesNode, "value", intValue))

it.abilities.reflect[REFLECT_PERCENT][COMBAT_[color=#ff0000]BLUEFIRE[/color]DAMAGE] += intValue;

}

Embaixo de:

it.abilities.reflect[REFLECT_CHANCE][COMBAT_ICEDAMAGE] += intValue;

 

Adicione de:it.abilities.reflect[REFLECT_CHANCE][COMBAT_[color=#FF0000]BLUEFIRE[/color]DAMAGE] += intValue;

 

 

[b]Repita para os demais resultados[/b]

 

 

 

E Depois Compile

Mas Como ?

Siga o tutorial do [b]GM Bekmen[/b]

[b]Compilando Um Otserv[/b]

 

[size=5][b]Legenda:[/b][/size]

[size=5][b]Vermelho_miniatura.png[size=4]Obrigatorio Editar[/size][/b][/size]

[size=5][b][size=4]color-blue.pngEdite Apenas se souber o que significa[/size][/b][/size]

 

[b][size=4]Atenciosamente Fodim[/size][/b]

Beeki

Ex-Coordenador XDev
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 12/03/11Posts: 1900Gênero: MasculinoChar no Tibia: Nokte

eu trocaria os spoilers por code, muita gente tem dificuldade ao abrir spoilers, fora isso o tutorial está ótimo.

Fabio Augustus - Infraestrutura

Skype: guhsvasc

Yan Oliveira

Yan18
avatar
Moderador
Moderador

INFOS

Grupo: ModeradorRegistrado: 05/06/12Posts: 2221Gênero: Masculino

Nao Troquei pq o code nao tem suporte de cor e pro tutorial é essencial

 

Vao (re)Aprovar ake nao ??

 

Tem que aguardar aprovação de outros membros.

PostadorHunter

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 10/12/11Posts: 962Gênero: Masculino

Nao Troquei pq o code nao tem suporte de cor e pro tutorial é essencial

 

Vao (re)Aprovar ake nao ??

 

Tem que aguardar aprovação de outros membros.

Deveria ser aprovado ja que não ha outro tutorial ensinando a fazer isso

Akatsukyi

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 06/09/11Posts: 307

Deveria explicar mais sobre isso pois tem alguns que não sabem nem pra que serve.

Mas ta bom o tutorial .

por mim aprovado

Clique

Aqui e descubra onde postar suas dúvidas e tutoriais.

 

R9He.png

Yan Oliveira

Yan18
avatar
Moderador
Moderador

INFOS

Grupo: ModeradorRegistrado: 05/06/12Posts: 2221Gênero: Masculino

Nao Troquei pq o code nao tem suporte de cor e pro tutorial é essencial

 

Vao (re)Aprovar ake nao ??

 

Tem que aguardar aprovação de outros membros.

Deveria ser aprovado ja que não ha outro tutorial ensinando a fazer isso

 

Mesmo que não tenha, ja disse que tem que aguardar a aprovação de outros membros.

 

@Topic

 

Tutorial Aprovado.

 

Movido.

Akatsukyi

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 06/09/11Posts: 307

Do que adianta um tutorial único se não ajuda ninguém.

Clique

Aqui e descubra onde postar suas dúvidas e tutoriais.

 

R9He.png

rohfagundes

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 10/02/11Posts: 377

malz por reviver o topic

mas eu fui fazer isso

e no meu caso

 

essa parte

Adicione uma virgula no final de:

CONDITION_HUNTING = 1 << 23

 

e embaixo adicione:

CONDITION_BLUEFIRE = 1 << 24

o numero coloque 1 apos a ultima condition no meu caso é a hunting numero 23 ai eu coloco 24

 

esta no Condition.h

 

e tb tem q ir na lib/constant.lua

procurar essa parte

 

COMBAT_NONE = 0

COMBAT_PHYSICALDAMAGE = 1

COMBAT_ENERGYDAMAGE = 2

COMBAT_EARTHDAMAGE = 4

COMBAT_POISONDAMAGE = 4

COMBAT_FIREDAMAGE = 8

COMBAT_UNDEFINEDDAMAGE = 16

COMBAT_LIFEDRAIN = 32

COMBAT_MANADRAIN = 64

COMBAT_HEALING = 128

COMBAT_DROWNDAMAGE = 256

COMBAT_ICEDAMAGE = 512

COMBAT_HOLYDAMAGE = 1024

COMBAT_DEATHDAMAGE = 2048

 

e add o novo damage

 

só resolvi colocar aqui pra ajudar. =)