Ir para conteúdo

(Resolvido)[PEDIDO] Hp / Mp por porcentagem %%

Featured Replies

Postado
  • Este é um post popular.

To usando aquele que voce me mandou no MP.. Nao entendo muito, mais sei que é 8.60 ueaueue

Troca toda a função AddPlayerStats por essa:

void ProtocolGame::AddPlayerStats(NetworkMessage_ptr msg)
{
    msg->AddByte(0xA0);
    if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0)
    {
        msg->AddU16(uint16_t(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH)));
        msg->AddU16(100);
    }
    else
    {
        msg->AddU16(0);
        msg->AddU16(0);  
    }
    msg->AddU32(uint32_t(player->getFreeCapacity() * 100));
    uint64_t experience = player->getExperience();
    if(experience > 0x7FFFFFFF) // client debugs after 2,147,483,647 exp
        msg->AddU32(0x7FFFFFFF);
    else
        msg->AddU32(experience);

    msg->AddU16(player->getPlayerInfo(PLAYERINFO_LEVEL));
    msg->AddByte(player->getPlayerInfo(PLAYERINFO_LEVELPERCENT));
    if (player->getPlayerInfo(PLAYERINFO_MAXMANA) > 0)
    {
        msg->AddU16(player->getPlayerInfo(PLAYERINFO_MANA) * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA));
        msg->AddU16(100);
    }
    else
    {
        msg->AddU16(0);
        msg->AddU16(0);
    }
    msg->AddByte(player->getPlayerInfo(PLAYERINFO_MAGICLEVEL));
    msg->AddByte(player->getPlayerInfo(PLAYERINFO_MAGICLEVELPERCENT));
    msg->AddByte(player->getPlayerInfo(PLAYERINFO_SOUL));
    msg->AddU16(player->getStaminaMinutes());
}
  • Respostas 26
  • Visualizações 10.4k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • protocolgame.cpp, procure por:     msg->put<uint16_t>(player->getHealth());     msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH)); troque por:     if (player

  • Troca toda a função AddPlayerStats por essa: void ProtocolGame::AddPlayerStats(NetworkMessage_ptr msg) {     msg->AddByte(0xA0);     if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0)   

  • Qual TFS?

Posted Images

Postado
  • Autor

 

protocolgame.cpp, procure por:

    msg->put<uint16_t>(player->getHealth());
    msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH));

troque por:

    if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0)
    {
        msg->put<uint16_t>(uint16_t(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH)));
        msg->put<uint16_t>(100);
    }
    else
    {
        msg->put<uint16_t>(0);
        msg->put<uint16_t>(0);  
    }

procure por:

    msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA));
    msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXMANA));

troque por:

    if (player->getPlayerInfo(PLAYERINFO_MAXMANA) > 0)
    {
        msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA) * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA));
        msg->put<uint16_t>(100);
    }
    else
    {
        msg->put<uint16_t>(0);
        msg->put<uint16_t>(0);
    }

Vlw @fireelement,

deu sertinho ; < 3

REPP+

  • 2 weeks later...
Postado

Tem como ajudar ?

Uso TFS 1.0

Source do 10.76

------------------------------------------

Edited... Consegui editar!! Se alguem precisar igual eu precisei!!

Source TFS 1.0 pessoal! Usei nas source 10.76, mais acredito que qual quer source 1.0 funcione.

Apenas mudar seu : AddPlayerStats

void ProtocolGame::AddPlayerStats(NetworkMessage& msg)
{
    msg.AddByte(0xA0);

    if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0)
    {
        msg.add<uint16_t>(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);  
    }

    msg.add<uint32_t>(uint32_t(player->getFreeCapacity() * 100));
    msg.add<uint32_t>(uint32_t(player->getCapacity() * 100));

    msg.add<uint64_t>(player->getExperience());

    msg.add<uint16_t>(player->getPlayerInfo(PLAYERINFO_LEVEL));
    msg.AddByte(player->getPlayerInfo(PLAYERINFO_LEVELPERCENT));

    msg.AddDouble(0, 2);

       if (player->getPlayerInfo(PLAYERINFO_MAXMANA) > 0)
    {
        msg.add<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA) * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA));
        msg.add<uint16_t>(100);
    }
    else
    {
        msg.add<uint16_t>(0);
        msg.add<uint16_t>(0);
    }

    msg.AddByte(std::min<uint32_t>(0xFF, player->getMagicLevel()));
    msg.AddByte(std::min<uint32_t>(0xFF, player->getBaseMagicLevel()));
    msg.AddByte(player->getPlayerInfo(PLAYERINFO_MAGICLEVELPERCENT));

    msg.AddByte(player->getPlayerInfo(PLAYERINFO_SOUL));

    msg.add<uint16_t>(player->getStaminaMinutes());

    msg.add<uint16_t>(player->getBaseSpeed() / 2);
    
    Condition* condition = player->getCondition(CONDITION_REGENERATION);
    msg.add<uint16_t>(condition ? condition->getTicks() / 1000 : 0x00);

    msg.add<uint16_t>(player->getOfflineTrainingTime() / 60 / 1000);
}

Editado por Marjer (veja o histórico de edições)

  • 2 months later...

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 519.6k

Informação Importante

Confirmação de Termo