adjusting GetPlayerCount to GetActiveAndQueuedSessionCount
This commit is contained in:
parent
a37d449977
commit
8177d4a310
@ -2,20 +2,21 @@
|
||||
#include "Config.h"
|
||||
#include "World.h"
|
||||
#include "Player.h"
|
||||
#include "WorldSessionMgr.h"
|
||||
|
||||
namespace
|
||||
{
|
||||
bool sEnabled = true;
|
||||
uint32 sIntervalIdle = 200u;
|
||||
uint32 sIntervalActive = 10u;
|
||||
uint32 sPlayersOnline = 0u;
|
||||
|
||||
void ApplyInterval()
|
||||
{
|
||||
if (!sEnabled)
|
||||
return;
|
||||
|
||||
uint32 newInterval = (sPlayersOnline > 0) ? sIntervalActive : sIntervalIdle;
|
||||
bool hasRealPlayer = sWorldSessionMgr->GetActiveAndQueuedSessionCount() > 0;
|
||||
uint32 newInterval = hasRealPlayer ? sIntervalActive : sIntervalIdle;
|
||||
sWorld->setIntConfig(CONFIG_INTERVAL_MAPUPDATE, newInterval);
|
||||
}
|
||||
}
|
||||
@ -36,7 +37,6 @@ public:
|
||||
if (sIntervalActive == 0u)
|
||||
sIntervalActive = 1u;
|
||||
|
||||
sPlayersOnline = sWorld->GetPlayerCount();
|
||||
ApplyInterval();
|
||||
}
|
||||
};
|
||||
@ -48,21 +48,11 @@ public:
|
||||
|
||||
void OnLogin(Player*) override
|
||||
{
|
||||
if (!sEnabled)
|
||||
return;
|
||||
|
||||
++sPlayersOnline;
|
||||
ApplyInterval();
|
||||
}
|
||||
|
||||
void OnLogout(Player*) override
|
||||
{
|
||||
if (!sEnabled)
|
||||
return;
|
||||
|
||||
if (sPlayersOnline > 0)
|
||||
--sPlayersOnline;
|
||||
|
||||
ApplyInterval();
|
||||
}
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user