so where is the change? could you tell what .h or .cpp need to be changed ?OTX 3 updated
no its not work ¬¬ get debug, did you test it before post here?Tfs 1.2
Sources/definitions.h
#define CLIENT_VERSION_MIN 1096
#define CLIENT_VERSION_MAX 1096
#define CLIENT_VERSION_STR "10.96"
Change to:
#define CLIENT_VERSION_MIN 1097
#define CLIENT_VERSION_MAX 1097
#define CLIENT_VERSION_STR "10.97"
OH GOD! see this guy, GOOD FOR YOU BASTARD I'll pray to God to be like you, a fuc*ing expert
Only some new bytes and definitions and you done.
void ProtocolGame::AddPlayerStats(NetworkMessage& msg)
{
msg.addByte(0xA0);
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()));
msg.add<uint32_t>(player->getFreeCapacity());
msg.add<uint32_t>(player->getCapacity());
msg.add<uint64_t>(player->getExperience());
msg.add<uint16_t>(player->getLevel());
msg.addByte(player->getPlayerInfo(PLAYERINFO_LEVELPERCENT));
//1097
//msg.addDouble(0, 3); CHANGED BY
msg.add<uint16_t>(100);
msg.add<uint16_t>(0);
msg.add<uint16_t>(0);
msg.add<uint16_t>(0);
msg.add<uint16_t>(100);
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()));
msg.addByte(std::min<uint32_t>(player->getMagicLevel(), std::numeric_limits<uint8_t>::max()));
msg.addByte(std::min<uint32_t>(player->getBaseMagicLevel(), std::numeric_limits<uint8_t>::max()));
msg.addByte(player->getPlayerInfo(PLAYERINFO_MAGICLEVELPERCENT));
msg.addByte(player->getSoul());
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);
//1097
msg.add<uint16_t>(0);
msg.addByte(0);
}
thanks ! it works with some edits, then I get some debugs with the history of the store, you would know what byte is wrong I guess, could you tell about it ?protocolgame.cpp
Code:void ProtocolGame::AddPlayerStats(NetworkMessage& msg) { msg.addByte(0xA0); 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())); msg.add<uint32_t>(player->getFreeCapacity()); msg.add<uint32_t>(player->getCapacity()); msg.add<uint64_t>(player->getExperience()); msg.add<uint16_t>(player->getLevel()); msg.addByte(player->getPlayerInfo(PLAYERINFO_LEVELPERCENT)); //1097 //msg.addDouble(0, 3); CHANGED BY msg.add<uint16_t>(100); msg.add<uint16_t>(0); msg.add<uint16_t>(0); msg.add<uint16_t>(0); msg.add<uint16_t>(100); 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())); msg.addByte(std::min<uint32_t>(player->getMagicLevel(), std::numeric_limits<uint8_t>::max())); msg.addByte(std::min<uint32_t>(player->getBaseMagicLevel(), std::numeric_limits<uint8_t>::max())); msg.addByte(player->getPlayerInfo(PLAYERINFO_MAGICLEVELPERCENT)); msg.addByte(player->getSoul()); 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); //1097 msg.add<uint16_t>(0); msg.addByte(0); }
protocolgame.cpp:2710:54: error: no ‘void ProtocolGame::AddPlayerStats(NetworkMessage&)’ member function declared in class ‘ProtocolGame’
void ProtocolGame::AddPlayerStats(NetworkMessage& msg)
^
make[2]: *** [CMakeFiles/tfs.dir/src/protocolgame.cpp.o] Error 1
make[1]: *** [CMakeFiles/tfs.dir/all] Error 2
make: *** [all] Error 2
Only some new bytes and definitions and you done.