Boa tarde galera.
Hoje trago um pequeno fix de compatibilidade na troca de informação básica do player entre tfs 1.2 e OTC. O que acontece é que o TFS envia uma coisa e o OTC está preparado para receber outras.
A solução prevista aqui não foi testada em cipclients, portanto, não me responsabilizo. Envios que o ptc não utilizava e recebimentos que o tfs não enviava foram deletados.
Chega de falar, mãos a obras.
Primeiro passo: vá na source do OTC, no arquivo protocolgameparse.cpp, e altere a função
void ProtocolGame::parsePlayerInfo(constInputMessagePtr& msg)
pela mostrada abaixo:
void ProtocolGame::parsePlayerInfo(const InputMessagePtr& msg){bool premium = msg->getU8(); // premiumint vocation = msg->getU8(); // vocationm_localPlayer->setPremium(premium);m_localPlayer->setVocation(vocation);}
Segundo passo: agora no servidor, va em ProtocolGame.cpp, procure por
void ProtocolGame::sendBasicData()
e substitua por:
void ProtocolGame::sendBasicData(){NetworkMessage msg;msg.addByte(0x9F);msg.addByte(player->isPremium() ? 0x01 : 0x00);msg.addByte(player->getVocation()->getClientId());writeToOutputBuffer(msg);}
Bom galera, por hoje é só.
Espero que ajude.
Abraços