Ir para conteúdo

Featured Replies

Postado

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 :D

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 (veja o histórico de edições)

"Pense nisso você tbm"

"Tudo o que um sonho precisa para ser realizado é alguém que acredite que ele possa ser realizado"

35l7z91.jpg

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo