• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Feature HP & MP percent OTX 3.1

115820

Member
Joined
Feb 27, 2011
Messages
193
Solutions
1
Reaction score
5
Location
London, England
Hi, after searching everywhere and not finding out. I making my own version about this for OTX 3.1

This code will make HP and MP appear in percentage

1576608844680.png

First you will need SOURCES OTX 3.x+
in protocolgamebase.cpp search
Code:
void ProtocolGameBase::AddPlayerStats(NetworkMessage& msg)
After find
Code:
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()));
This is for Health
replaces to:
Code:
if (player->getMaxHealth() > 0)
    {

        float f_h_percent = (float)player->getHealth() /
        player->getMaxHealth();
        uint16_t h_percent = f_h_percent * 100;
        msg.add<uint16_t>(h_percent);
        msg.add<uint16_t>(100);
    }
    else
    {
        msg.add<uint16_t>(0);
        msg.add<uint16_t>(0);
    }
Now to Mana
find
Code:
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()));
replaces to:
Code:
if (player->getMaxMana() > 0)
    {

        float f_m_percent = (float)player->getMana() /
            player->getMaxMana();
        uint16_t m_percent = f_m_percent * 100;
        msg.add<uint16_t>(m_percent);
        msg.add<uint16_t>(100);
    }
    else
    {
        msg.add<uint16_t>(0);
        msg.add<uint16_t>(0);
    }
 
Back
Top