Implement tell queues

Default queue size 20 (World:TellQueueSize)
This doe not play well with multiple sessions and a toon crashes and relogs
Normal tells have issues as well.
This commit is contained in:
Michael Cook (mackal)
2014-09-18 22:55:06 -04:00
parent 3d6bb964df
commit a2368b4ea7
11 changed files with 94 additions and 33 deletions
+2
View File
@@ -9834,6 +9834,8 @@ void Client::CompleteConnect() {
}
entity_list.RefreshClientXTargets(this);
worldserver.RequestTellQueue(GetName());
}
void Client::Handle_OP_KeyRing(const EQApplicationPacket *app)
+16
View File
@@ -2180,3 +2180,19 @@ void WorldServer::HandleLFPMatches(ServerPacket *pack) {
safe_delete(outapp);
}
}
void WorldServer::RequestTellQueue(const char *who)
{
if (!who)
return;
ServerPacket* pack = new ServerPacket(ServerOP_RequestTellQueue, sizeof(ServerRequestTellQueue_Struct));
ServerRequestTellQueue_Struct* rtq = (ServerRequestTellQueue_Struct*) pack->pBuffer;
strn0cpy(rtq->name, who, sizeof(rtq->name));
SendPacket(pack);
safe_delete(pack);
return;
}
+2
View File
@@ -57,6 +57,8 @@ public:
void HandleLFGMatches(ServerPacket *pack);
void HandleLFPMatches(ServerPacket *pack);
void RequestTellQueue(const char *who);
private:
virtual void OnConnected();