That would involve either sideband communications: i.e. writing a lua module for the client, and a module server side to communicate this between each other via something like luasockets; or altering the protocol of both the client and server, meaning your players could no longer use Cip's client.
You can always detect whether player is connected with otclient or Cipsoft's client and then send either uint8 or uint32![]()
-double soul = msg->getU8();
+double soul = msg->getU16();
- msg->put<char>(player->getPlayerInfo(PLAYERINFO_SOUL));
+ if(player->isUsingOtclient())
+ msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_SOUL));
+ else
+ msg->put<char>(player->getPlayerInfo(PLAYERINFO_SOUL));
True, but that's more non-trivial then the simple change Summ posted. And really? U32? For soul? That reminds me of this.
~/src/otclient/src/otclient/protocolgameparse.cpp
Code:-double soul = msg->getU8(); +double soul = msg->getU16();
~/src/trunk.r####/protocolgame.cpp
Code:- msg->put<char>(player->getPlayerInfo(PLAYERINFO_SOUL)); + if(player->isUsingOtclient()) + msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_SOUL)); + else + msg->put<char>(player->getPlayerInfo(PLAYERINFO_SOUL));
~/src/trunk.r####/ > patch -Np1 < ./../src/otclient/tools/tfs_extendedopcode.patch