Postado Outubro 14, 2015 9 anos 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.54Se 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 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 Outubro 14, 2015 9 anos 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"
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.