Postado Julho 24, 2018 6 anos Alguem poderia dar uma ajuda pra por % no meu server? Ele é otx 8.6 Spoiler void ProtocolGame::AddPlayerStats(OutputMessage_ptr msg) { msg->addByte(0xA0); msg->add<uint16_t>(player->getHealth()); msg->add<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH)); msg->add<uint32_t>(uint32_t(player->getFreeCapacity() * 100)); uint64_t experience = player->getExperience(); if(experience > 0x7FFFFFFF) msg->add<uint32_t>(0x7FFFFFFF); else msg->add<uint32_t>(experience); msg->add<uint16_t>(player->getPlayerInfo(PLAYERINFO_LEVEL)); msg->addByte(player->getPlayerInfo(PLAYERINFO_LEVELPERCENT)); msg->add<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA)); msg->add<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXMANA)); msg->addByte(player->getPlayerInfo(PLAYERINFO_MAGICLEVEL)); msg->addByte(player->getPlayerInfo(PLAYERINFO_MAGICLEVELPERCENT)); msg->addByte(player->getPlayerInfo(PLAYERINFO_SOUL)); msg->add<uint16_t>(player->getStaminaMinutes()); }
Postado Julho 25, 2018 6 anos Solução @fr4nc1sc0 void ProtocolGame::AddPlayerStats(OutputMessage_ptr msg) { msg->put<char>(0xA0); 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); } msg->put<uint32_t>(uint32_t(player->getFreeCapacity() * 100)); uint64_t experience = player->getExperience(); if(experience > 0x7FFFFFFF) // client debugs after 2,147,483,647 exp msg->put<uint32_t>(0x7FFFFFFF); else msg->put<uint32_t>(experience); msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_LEVEL)); msg->put<char>(player->getPlayerInfo(PLAYERINFO_LEVELPERCENT)); 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); } msg->put<char>(player->getPlayerInfo(PLAYERINFO_MAGICLEVEL)); msg->put<char>(player->getPlayerInfo(PLAYERINFO_MAGICLEVELPERCENT)); msg->put<char>(player->getPlayerInfo(PLAYERINFO_SOUL)); msg->put<uint16_t>(player->getStaminaMinutes()); }
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.