Ir para conteúdo

Featured Replies

Postado

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
  • 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.

Visitante
Responder

Quem Está Navegando 0

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

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 520.3k

Informação Importante

Confirmação de Termo