Postado Outubro 14, 2015 10 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 10 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.