Postado Junho 25, 2017 8 anos Olá a todos. Estou fazendo algumas alterações na source do meu servidor (baseado em TFS 0.4.0) e gostaria de saber se alguém pode me dizer em que parte do código eu encontro os cálculos de "Armor" das armaduras na defesa do personagem. Já alterei o ataque, o ataque à distância, o "defense", e agora gostaria de fazer um ajuste fino no quanto cada +1 de Arm absorverá o dano. Andei caçando pelos arquivos, e o máximo que encontrei foi em player.cpp o código a seguir, mas imagino que isso seja definido em algum outro trecho de código. int32_t Player::getArmor() const { int32_t i = SLOT_FIRST, armor = 0; for(; i < SLOT_LAST; ++i) { if(Item* item = getInventoryItem((slots_t)i)) armor += item->getArmor(); } if(vocation->getMultiplier(MULTIPLIER_ARMOR) != 1.0) return int32_t(armor * vocation->getMultiplier(MULTIPLIER_ARMOR)); return armor; } Obrigado pela ajuda desde já.
Postado Junho 26, 2017 8 anos Autor Opa, fiz a mesma pergunta em um outro fórum e lá me responderam, então resolvi compartilhar a informação aqui. Em "creature.cpp" há uma sessão onde é estabelecida a fórmula de defesa do atributo "Arm" dos seus equipamentos. No meu caso, TFS 0.4, fica no seguinte trecho: if(checkArmor) { int32_t armorValue = getArmor(), minArmorReduction = 0, maxArmorReduction = 0; if(armorValue > 1) { minArmorReduction = (int32_t)std::ceil(armorValue * 0.475); maxArmorReduction = (int32_t)std::ceil( ((armorValue * 0.475) - 1) + minArmorReduction); } else if(armorValue == 1) { minArmorReduction = 1; maxArmorReduction = 1; } Para as outras versões, o trecho de código é parecido, basta dar um "Ctrl + F" na palavra armor em creature.cpp.
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.