CLE checks in non legacy user to world

This commit is contained in:
Akkadius 2019-07-21 18:11:09 -05:00
parent 4aca39ad9b
commit 581cbccad5
2 changed files with 8 additions and 3 deletions

View File

@ -1252,10 +1252,11 @@ void ClientList::RemoveCLEByLSID(uint32 iLSID)
if (iterator.GetData()->LSAccountID() == iLSID) { if (iterator.GetData()->LSAccountID() == iLSID) {
iterator.RemoveCurrent(); iterator.RemoveCurrent();
} }
else else {
iterator.Advance(); iterator.Advance();
} }
} }
}
int ClientList::GetClientCount() { int ClientList::GetClientCount() {
return(numplayers); return(numplayers);

View File

@ -180,11 +180,15 @@ void LoginServer::ProcessUsertoWorldReq(uint16_t opcode, EQ::Net::Packet &p)
auto cle = client_list.FindCLEByLSID(utwr->lsaccountid); auto cle = client_list.FindCLEByLSID(utwr->lsaccountid);
if (cle != nullptr) { if (cle != nullptr) {
auto status = cle->GetOnline(); auto status = cle->GetOnline();
if (CLE_Status_Never != status && CLE_Status_Offline != status) { if (CLE_Status_Zoning == status || CLE_Status_InZone == status) {
utwrs->response = UserToWorldStatusAlreadyOnline; utwrs->response = UserToWorldStatusAlreadyOnline;
SendPacket(&outpack); SendPacket(&outpack);
return; return;
} }
else {
//our existing cle is in a state we can login to, mark the old as stale and remove it.
client_list.RemoveCLEByLSID(utwr->lsaccountid);
}
} }
} }