• 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!

UPDATE TO 10.97 TFS

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"

:)
 
OTX 3 updated
so where is the change? could you tell what .h or .cpp need to be changed ?
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"

:)
no its not work ¬¬ get debug, did you test it before post here? :mad:
 
1ef3960aea5c4eca9a65206bac199b93.png


Only some new bytes and definitions and you done.
 
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

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);
}
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 ?
 
@silveralol
Code:
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
 
Back
Top