Allow 'classic' 283 and 'dof free trial' 546 client to function in login server (login reply accepted, cannot create char)

update opcodes set version_range1=283 where version_range1=839;
This commit is contained in:
Image 2020-06-28 19:03:41 -04:00
parent e9008294a8
commit ad85748a62

View file

@ -165,13 +165,23 @@ bool Client::Process() {
switch(app->GetOpcode())
{
case OP_LoginRequestMsg:{
// DumpPacket(app);
DumpPacket(app);
PacketStruct* packet = configReader.getStruct("LS_LoginRequest", 1);
if(packet->LoadPacketData(app->pBuffer,app->size)){
version = packet->getType_int32_ByName("version");
version = packet->getType_int16_ByName("version");
LogWrite(LOGIN__DEBUG, 0, "Login", "Classic Client Version Provided: %i", version);
if (version == 0 || EQOpcodeManager.count(GetOpcodeVersion(version)) == 0)
{
safe_delete(packet);
packet = configReader.getStruct("LS_LoginRequest", 1212);
if (packet->LoadPacketData(app->pBuffer, app->size)) {
version = packet->getType_int32_ByName("version");
}
}
//[7:19 PM] Kirmmin: Well, I very quickly learned that unknown3 in LS_LoginRequest packet is the same value as cl_eqversion in the eq2_defaults.ini file.
LogWrite(LOGIN__DEBUG, 0, "Login", "Client Version Provided: %i", version);
LogWrite(LOGIN__DEBUG, 0, "Login", "New Client Version Provided: %i", version);
if (EQOpcodeManager.count(GetOpcodeVersion(version)) == 0) {
LogWrite(LOGIN__ERROR, 0, "Login", "Incompatible client version provided: %i", version);
@ -537,6 +547,7 @@ void Client::SendLoginAccepted() {
packet->setDataByName("class_flag", 0x7FFFFFE);
packet->setMediumStringByName("username", GetAccountName());
packet->setMediumStringByName("password", GetAccountName());
packet->setDataByName("unknown5", 0x7C);
packet->setDataByName("unknown7", 0xFF6FFFBF);