All pastes #951407 Raw Copy code Copy link Edit

Miscellany

public text v1 · immutable
#951407 ·published 2008-03-21 11:00 UTC
rendered paste body
Index: src/game/WorldSocket.cpp
===================================================================
--- src/game/WorldSocket.cpp	(revision 5470)
+++ src/game/WorldSocket.cpp	(working copy)
@@ -426,14 +426,11 @@
     ZThread::Thread::sleep(10);
     #endif
 
-    ///- Create and send the Addon packet
-    if(sAddOnHandler.BuildAddonPacket(&recvPacket, &SendAddonPacked, recvPacket.rpos()))
-        SendPacket(&SendAddonPacked);
-
     ///- Check that we do not exceed the maximum number of online players in the realm
     uint32 Sessions  = sWorld.GetActiveAndQueuedSessionCount();
     uint32 pLimit    = sWorld.GetPlayerAmountLimit();
     uint32 QueueSize = sWorld.GetQueueSize();               //number of players in the queue
+	bool   inQueue   = false;
     --Sessions;                                             //so we don't count the user trying to login as a session and queue the socket that we are using
 
     if( pLimit >  0 && Sessions >= pLimit && security == SEC_PLAYER )
@@ -442,9 +439,16 @@
         SendAuthWaitQue(sWorld.GetQueuePos(this));
         sWorld.UpdateMaxSessionCounters();
         sLog.outDetail( "PlayerQueue: %s is in Queue Position (%u).",safe_account.c_str(),++QueueSize);
-        return;
+        inQueue = true;
     }
 
+	///- Create and send the Addon packet
+    if(sAddOnHandler.BuildAddonPacket(&recvPacket, &SendAddonPacked, recvPacket.rpos()))
+        SendPacket(&SendAddonPacked);
+
+	if(inQueue)
+		return;
+
     sWorld.UpdateMaxSessionCounters();
 
     // Updates the population