Olá, obrigado pelos feedbacks...
mas a principio o que mandou procurar no protocolgame.cpp não achou...
detalhe: a versão do Tibia é a 8.6
Ele procurou tudo q falava de maxhealth e mana e o resultado foi esse:
void ProtocolGame::AddPlayerStats(NetworkMessage &msg) {
msg.addByte(0xA0);
if (oldProtocol) {
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->getMaxHealth(), std::numeric_limits<uint16_t>::max()));
} else {
msg.add<uint32_t>(std::min<int32_t>(player->getHealth(), std::numeric_limits<uint16_t>::max()));
msg.add<uint32_t>(std::min<int32_t>(player->getMaxHealth(), std::numeric_limits<uint16_t>::max()));
}
if (!oldProtocol) {
msg.add<uint32_t>(std::min<int32_t>(player->getMana(), std::numeric_limits<uint16_t>::max()));
msg.add<uint32_t>(std::min<int32_t>(player->getMaxMana(), std::numeric_limits<uint16_t>::max()));
} else {
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->getMaxMana(), std::numeric_limits<uint16_t>::max()));
msg.add<uint32_t>(std::min<int32_t>(player->getHealth(), std::numeric_limits<uint16_t>::max()));
msg.add<uint32_t>(std::min<int32_t>(player->getMaxHealth(), std::numeric_limits<uint16_t>::max()));
msg.add<uint32_t>(std::min<int32_t>(player->getMana(), std::numeric_limits<uint16_t>::max()));
msg.add<uint32_t>(std::min<int32_t>(player->getMaxMana(), std::numeric_limits<uint16_t>::max()));
NetworkMessage msg;
msg.addByte(0x8C);
msg.add<uint32_t>(cid);
msg.addByte(std::min<uint8_t>(100, healthPercent));
writeToOutputBuffer(msg);
NetworkMessage msg;
msg.addByte(0x8B);
msg.add<uint32_t>(cid);
msg.addByte(11); // mana percent
msg.addByte(std::min<uint8_t>(100, manaPercent));
writeToOutputBuffer(msg);