Fala galera do Xtibia beleza? Alguns meses atrás tinha resolvido um tópico que o membro @julhinhuu tinha pedido Mana e Life por porcentagem para TFS 1.2
Como tem muita gente atrás desse code e não acha em nenhum lugar, resolvi adaptar para TFS 1.x e compartilhar com vocês!
Estarei deixando também para as versões anteriores...
TFS 1.X
Em protocolgame.cpp procure por:
msg.add<uint16_t>(std::min<int32_t>(player->getHealth(), std::numeric_limits<uint16_t>::max()));
msg.add<uint16_t>(std::min<int32_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH), std::numeric_limits<uint16_t>::max()));
Troque por isto:
if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0) {
msg.add<uint16_t>(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH));
msg.add<uint16_t>(100);
} else {
msg.add<uint16_t>(0);
msg.add<uint16_t>(0);
}
Depois procure por:
msg.add<uint16_t>(std::min<int32_t>(player->getMana(), std::numeric_limits<uint16_t>::max()));
msg.add<uint16_t>(std::min<int32_t>(player->getPlayerInfo(PLAYERINFO_MAXMANA), std::numeric_limits<uint16_t>::max()));
Troque por:
if (player->getPlayerInfo(PLAYERINFO_MAXMANA) > 0) {
msg.add<uint16_t>(player->getMana() * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA));
msg.add<uint16_t>(100);
} else {
msg.add<uint16_t>(0);
msg.add<uint16_t>(0);
}
Pronto depois é só compilar e ser feliz xD
Testado em TFS 1.0/1.2
Para as versões anteriores aqui está:
Agora inves de ser um número grande -->
<-- Irá ser um número pequeno
Não se preocupe, isso não altera o health nem a mana do jogador, apenas ficara mais fácil de saber se o player irá morrer sim ou não.
Créditos:
Yan Liima