mirror of
https://github.com/EQEmu/Server.git
synced 2026-04-13 15:02:25 +00:00
Merge changes
This commit is contained in:
parent
eaf31fb14b
commit
2081b0e214
@ -253,6 +253,19 @@ ClientListEntry* ClientList::FindCLEByCharacterID(uint32 iCharID) {
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ClientListEntry* ClientList::FindCLEByLSID(uint32 iLSID) {
|
||||||
|
LinkedListIterator<ClientListEntry*> iterator(clientlist);
|
||||||
|
|
||||||
|
iterator.Reset();
|
||||||
|
while (iterator.MoreElements()) {
|
||||||
|
if (iterator.GetData()->LSID() == iLSID) {
|
||||||
|
return iterator.GetData();
|
||||||
|
}
|
||||||
|
iterator.Advance();
|
||||||
|
}
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
void ClientList::SendCLEList(const int16& admin, const char* to, WorldTCPConnection* connection, const char* iName) {
|
void ClientList::SendCLEList(const int16& admin, const char* to, WorldTCPConnection* connection, const char* iName) {
|
||||||
LinkedListIterator<ClientListEntry*> iterator(clientlist);
|
LinkedListIterator<ClientListEntry*> iterator(clientlist);
|
||||||
char* output = 0;
|
char* output = 0;
|
||||||
|
|||||||
@ -55,6 +55,7 @@ public:
|
|||||||
ClientListEntry* FindCharacter(const char* name);
|
ClientListEntry* FindCharacter(const char* name);
|
||||||
ClientListEntry* FindCLEByAccountID(uint32 iAccID);
|
ClientListEntry* FindCLEByAccountID(uint32 iAccID);
|
||||||
ClientListEntry* FindCLEByCharacterID(uint32 iCharID);
|
ClientListEntry* FindCLEByCharacterID(uint32 iCharID);
|
||||||
|
ClientListEntry* FindCLEByLSID(uint32 iLSID);
|
||||||
ClientListEntry* GetCLE(uint32 iID);
|
ClientListEntry* GetCLE(uint32 iID);
|
||||||
void GetCLEIP(uint32 iIP);
|
void GetCLEIP(uint32 iIP);
|
||||||
uint32 GetCLEIPCount(uint32 iLSAccountID);
|
uint32 GetCLEIPCount(uint32 iLSAccountID);
|
||||||
|
|||||||
@ -168,20 +168,12 @@ void LoginServer::ProcessUsertoWorldReq(uint16_t opcode, EQ::Net::Packet &p)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (RuleB(World, DisallowDuplicateAccountLogins)) {
|
if (RuleB(World, EnforceCharacterLimitAtLogin)) {
|
||||||
auto cle = client_list.FindCLEByLSID(utwr->lsaccountid);
|
if (client_list.IsAccountInGame(utwr->lsaccountid)) {
|
||||||
if (cle != nullptr) {
|
|
||||||
auto status = cle->GetOnline();
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SendPacket(&outpack);
|
SendPacket(&outpack);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user