Ir para conteúdo
  • 0

[HELP] New Damage (Novo Elemento)


Flaah

Pergunta

Fala ae galera, blz? Bem vamos lá.. eu to tentando adicionar novos elementos (Damage) no meu server de tibia, só que quando eu vou invocar a spell com a nova damage, ela simplesmente não aparece a cor do hit e nem o efeito, como uma damage normal (ex: Fire Damage). Eu queria sabe como faço pra essa nova damage funcionar 100%..

 

Uma observação: Quando eu troco o número da minha damage (COMBAT_BLUEFIREDAMAGE = 1993) para que uma já existente (Exemplo: COMBAT_ENERGYDAMAGE = 2), minha damage fica com o efeito e a cor do hit da Energy Damage, no arquivo 000-constant.lua.

Minha dúvida é, como eu crio uma "ID" ou "Numeração" própria pra minha damage, para ela se tornar original?

Obs²: Não ocorre erro na compilação do executável, The Forgotten Server 0.3.6 - Versão 8.54

Se alguém poder me esclarecer essa dúvida, vai ajudar muitas outras pessoas, pois quem não quer aprender a adicionar novos elementos no otserver? Até mesmo pra criar um ot de pokémon estável e do zero sem bugs.. seria daora default_biggrin.png

 

Foi assim que adicionei minha nova damage na source:

========================================================================================

combat.cpp 

Abaixo de:

case CONDITION_FIRE:
return COMBAT_FIREDAMAGE;

Adicione: 

case CONDITION_ELECTRIC:
return COMBAT_ELECTRICDAMAGE;

-----------------------------------------------------------------------------------------

Abaixo de: 

case COMBAT_FIREDAMAGE:
return CONDITION_FIRE;

Adicione: 

case COMBAT_ELECTRICDAMAGE:
return CONDITION_ELECTRIC;

========================================================================================

condition.cpp 

Abaixo de: 

case CONDITION_FIRE:

Adicione: 

case CONDITION_ELECTRIC:

-----------------------------------------------------------------------------------------

Abaixo de: 

case CONDITION_FIRE:
return ICON_BURN;

Adicione: 

case CONDITION_ELECTRIC:
return ICON_NONE;

========================================================================================

condition.h 

Abaixo de: 

CONDITION_HUNTING = 1 << 23,

Coloque a vírgula na linha de cima e adc a próxima sem a vírgula: 

CONDITION_ELECTRIC = 1 << 24

========================================================================================

const.h 

Abaixo de:

TEXTCOLOR_WHITE = 215,

Adicione: 

TEXTCOLOR_ELECTRIC = 210,

========================================================================================

enums.h 

Abaixo de:

COMBAT_DEATHDAMAGE = 1 << 11,

Adicione: 

COMBAT_ELECTRICDAMAGE = 1 << 12,

E em: COMBAT_LAST = COMBAT_DEATHDAMAGE
Você troca por: COMBAT_LAST = COMBAT_BLUEFIREDAMAGE

========================================================================================

game.cpp 

Abaixo de: 

case COMBAT_ENERGYDAMAGE:

Adicione:

case COMBAT_ELECTRICDAMAGE:

-----------------------------------------------------------------------------------------

Abaixo de: 

case COMBAT_ENERGYDAMAGE:
{
textColor = TEXTCOLOR_PSYCHIC;
magicEffect = MAGIC_EFFECT_DRAW_BLOOD;
break;
}

Adicione: 

case COMBAT_ELECTRICDAMAGE:
{
textColor = TEXTCOLOR_ELECTRIC;
magicEffect = MAGIC_EFFECT_DRAW_BLOOD;
break;
}

========================================================================================

monster.cpp 

Abaixo de:

else if(tmpName == "drown")
combat->setParam(COMBATPARAM_COMBATTYPE, COMBAT_DROWNDAMAGE);

Adicione:

else if(tmpName == "electric")
combat->setParam(COMBATPARAM_COMBATTYPE, COMBAT_ELECTRICDAMAGE);

-----------------------------------------------------------------------------------------

Abaixo de:

else if(tmpStrValue == "energy")
{
mType->damageImmunities |= COMBAT_ENERGYDAMAGE;
mType->conditionImmunities |= CONDITION_ENERGY;
}

Adicione:

else if(tmpStrValue == "electric")
{
mType->damageImmunities |= COMBAT_ELECTRICDAMAGE;
mType->conditionImmunities |= CONDITION_ELECTRIC;
}

-----------------------------------------------------------------------------------------

Abaixo de:

else if(readXMLString(tmpNode, "fire", strValue) && booleanString(strValue))
{
mType->damageImmunities |= COMBAT_FIREDAMAGE;
mType->conditionImmunities |= CONDITION_FIRE;
}

Adicione:

else if(readXMLString(tmpNode, "electric", strValue) && booleanString(strValue))
{
mType->damageImmunities |= COMBAT_ELECTRICDAMAGE;
mType->conditionImmunities |= CONDITION_ELECTRIC;
}

-----------------------------------------------------------------------------------------

Abaixo de:

else if(readXMLInteger(tmpNode, "energyPercent", intValue))
mType->elementMap[COMBAT_ENERGYDAMAGE] = intValue;

Adicione:

else if(readXMLInteger(tmpNode, "electricPercent", intValue))
mType->elementMap[COMBAT_ELECTRICDAMAGE] = intValue;

========================================================================================

player.cpp

Abaixo de:

case CONDITION_FIRE:
tmp = "burning";
break;

Adicione:

case CONDITION_ELECTRIC:
tmp = "dashing";
break;

========================================================================================

tools.cpp

Abaixo de:

{"fire", COMBAT_FIREDAMAGE},

Adicione:

{"electric", COMBAT_ELECTRICDAMAGE},

-----------------------------------------------------------------------------------------

Abaixo de:

case COMBAT_ENERGYDAMAGE:
return "energy";

Adicione:

case COMBAT_ELECTRICDAMAGE:
return "electric";
Editado por Flaah
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

×
×
  • Criar Novo...