fix Ep3 NTE proxy sessions
This commit is contained in:
@@ -1104,7 +1104,7 @@ static HandlerResult C_GXB_61(shared_ptr<ProxyServer::LinkedSession> ses, uint16
|
|||||||
}
|
}
|
||||||
pd = reinterpret_cast<C_CharacterData_V3_61_98*>(&ep3_pd);
|
pd = reinterpret_cast<C_CharacterData_V3_61_98*>(&ep3_pd);
|
||||||
} else {
|
} else {
|
||||||
if (is_ep3(ses->version())) {
|
if (is_ep3(ses->version()) && (ses->version() != Version::GC_EP3_NTE)) {
|
||||||
ses->log.info("Version changed to GC_EP3_NTE");
|
ses->log.info("Version changed to GC_EP3_NTE");
|
||||||
ses->set_version(Version::GC_EP3_NTE);
|
ses->set_version(Version::GC_EP3_NTE);
|
||||||
}
|
}
|
||||||
|
|||||||
+18
-22
@@ -439,29 +439,25 @@ void ProxyServer::UnlinkedSession::on_input(Channel& ch, uint16_t command, uint3
|
|||||||
|
|
||||||
if (linked_ses.get()) {
|
if (linked_ses.get()) {
|
||||||
server->id_to_session.emplace(ses->license->serial_number, linked_ses);
|
server->id_to_session.emplace(ses->license->serial_number, linked_ses);
|
||||||
if (linked_ses->version() != ses->version()) {
|
// Resume the linked session using the unlinked session
|
||||||
linked_ses->log.error("Linked session has different game version");
|
try {
|
||||||
} else {
|
if (ses->version() == Version::BB_V4) {
|
||||||
// Resume the linked session using the unlinked session
|
linked_ses->resume(
|
||||||
try {
|
std::move(ses->channel),
|
||||||
if (ses->version() == Version::BB_V4) {
|
ses->detector_crypt,
|
||||||
linked_ses->resume(
|
std::move(ses->login_command_bb));
|
||||||
std::move(ses->channel),
|
} else {
|
||||||
ses->detector_crypt,
|
linked_ses->resume(
|
||||||
std::move(ses->login_command_bb));
|
std::move(ses->channel),
|
||||||
} else {
|
ses->detector_crypt,
|
||||||
linked_ses->resume(
|
ses->sub_version,
|
||||||
std::move(ses->channel),
|
ses->character_name,
|
||||||
ses->detector_crypt,
|
ses->hardware_id,
|
||||||
ses->sub_version,
|
ses->xb_netloc,
|
||||||
ses->character_name,
|
ses->xb_9E_unknown_a1a);
|
||||||
ses->hardware_id,
|
|
||||||
ses->xb_netloc,
|
|
||||||
ses->xb_9E_unknown_a1a);
|
|
||||||
}
|
|
||||||
} catch (const exception& e) {
|
|
||||||
linked_ses->log.error("Failed to resume linked session: %s", e.what());
|
|
||||||
}
|
}
|
||||||
|
} catch (const exception& e) {
|
||||||
|
linked_ses->log.error("Failed to resume linked session: %s", e.what());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user