diff options
| -rw-r--r-- | sql/updates/4431_world_trinity_string.sql | 4 | ||||
| -rw-r--r-- | sql/world.sql | 3 | ||||
| -rw-r--r-- | src/game/Language.h | 3 | ||||
| -rw-r--r-- | src/game/Level0.cpp | 7 | ||||
| -rw-r--r-- | src/game/Player.cpp | 4 | ||||
| -rw-r--r-- | src/game/World.cpp | 2 | ||||
| -rw-r--r-- | src/game/World.h | 14 |
7 files changed, 32 insertions, 5 deletions
diff --git a/sql/updates/4431_world_trinity_string.sql b/sql/updates/4431_world_trinity_string.sql new file mode 100644 index 00000000000..564f465dc69 --- /dev/null +++ b/sql/updates/4431_world_trinity_string.sql @@ -0,0 +1,4 @@ +UPDATE `trinity_string` SET `content_default` = 'Active connections: %u (max: %u) Queued connections: %u (max: %u)' WHERE `entry` = 12; + +DELETE FROM `trinity_string` WHERE `entry` = 60; +INSERT INTO `trinity_string` (`entry`, `content_default`) VALUES (60, 'Online players: %u (max: %u)'); diff --git a/sql/world.sql b/sql/world.sql index 3f13cf48326..21e89f44d91 100644 --- a/sql/world.sql +++ b/sql/world.sql @@ -14719,7 +14719,7 @@ INSERT INTO `trinity_string` VALUES (9,'Commands available to you:',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (10,'Incorrect syntax.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (11,'Your account level is: %i',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), -(12,'Online players: %u (max: %u) Queued players: %u (max: %u)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(12,'Active connections: %u (max: %u) Queued connections: %u (max: %u)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (13,'Server uptime: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (14,'Player saved.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (15,'All players saved.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), @@ -14767,6 +14767,7 @@ INSERT INTO `trinity_string` VALUES (57,'Using World DB: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (58,'Using script library: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (59,'Using creature EventAI: %s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(60,'Online players: %u (max: %u)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (100,'Global notify: ',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (101,'Map: %u (%s) Zone: %u (%s) Area: %u (%s) Phase: %u\nX: %f Y: %f Z: %f Orientation: %f\ngrid[%u,%u]cell[%u,%u] InstanceID: %u\n ZoneX: %f ZoneY: %f\nGroundZ: %f FloorZ: %f Have height data (Map: %u VMap: %u)',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), (102,'%s is already being teleported.',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), diff --git a/src/game/Language.h b/src/game/Language.h index 33ad0421ea7..215c160b5bc 100644 --- a/src/game/Language.h +++ b/src/game/Language.h @@ -85,7 +85,8 @@ enum TrinityStrings LANG_USING_WORLD_DB = 57, LANG_USING_SCRIPT_LIB = 58, LANG_USING_EVENT_AI = 59, - // Room for more level 0 60-99 not used + LANG_CONNECTED_PLAYERS = 60, + // Room for more level 0 61-99 not used // level 1 chat LANG_GLOBAL_NOTIFY = 100, diff --git a/src/game/Level0.cpp b/src/game/Level0.cpp index c4f6935bced..f5fd5ec2626 100644 --- a/src/game/Level0.cpp +++ b/src/game/Level0.cpp @@ -86,11 +86,13 @@ bool ChatHandler::HandleStartCommand(const char* /*args*/) bool ChatHandler::HandleServerInfoCommand(const char* /*args*/) { + uint32 PlayersNum = sWorld.GetPlayerCount(); + uint32 MaxPlayersNum = sWorld.GetMaxPlayerCount(); uint32 activeClientsNum = sWorld.GetActiveSessionCount(); uint32 queuedClientsNum = sWorld.GetQueuedSessionCount(); uint32 maxActiveClientsNum = sWorld.GetMaxActiveSessionCount(); uint32 maxQueuedClientsNum = sWorld.GetMaxQueuedSessionCount(); - std::string str = secsToTimeString(sWorld.GetUptime()); + std::string uptime = secsToTimeString(sWorld.GetUptime()); uint32 updateTime = sWorld.GetUpdateTime(); PSendSysMessage(_FULLVERSION); @@ -103,8 +105,9 @@ bool ChatHandler::HandleServerInfoCommand(const char* /*args*/) //PSendSysMessage(LANG_USING_SCRIPT_LIB,sWorld.GetScriptsVersion()); //PSendSysMessage(LANG_USING_WORLD_DB,sWorld.GetDBVersion()); //PSendSysMessage(LANG_USING_EVENT_AI,sWorld.GetCreatureEventAIVersion()); + PSendSysMessage(LANG_CONNECTED_PLAYERS, PlayersNum, MaxPlayersNum); PSendSysMessage(LANG_CONNECTED_USERS, activeClientsNum, maxActiveClientsNum, queuedClientsNum, maxQueuedClientsNum); - PSendSysMessage(LANG_UPTIME, str.c_str()); + PSendSysMessage(LANG_UPTIME, uptime.c_str()); PSendSysMessage("Update time diff: %u.", updateTime); return true; diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 84cb5f93064..b81cf574b1e 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -476,6 +476,8 @@ Player::Player (WorldSession *session): Unit(), m_achievementMgr(this), m_reputa m_lastFallZ = 0; m_ControlledByPlayer = true; + + sWorld.IncreasePlayerCount(); } Player::~Player () @@ -508,6 +510,8 @@ Player::~Player () delete m_declinedname; delete m_runes; + + sWorld.DecreasePlayerCount(); } void Player::CleanupsBeforeDelete() diff --git a/src/game/World.cpp b/src/game/World.cpp index 2fa90e6c148..8750c5417bb 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -102,6 +102,8 @@ World::World() m_startTime=m_gameTime; m_maxActiveSessionCount = 0; m_maxQueuedSessionCount = 0; + m_PlayerCount = 0; + m_MaxPlayerCount = 0; m_resultQueue = NULL; m_NextDailyQuestReset = 0; diff --git a/src/game/World.h b/src/game/World.h index f254782c4eb..e1985aa55a4 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -424,8 +424,18 @@ class World /// Get the maximum number of parallel sessions on the server since last reboot uint32 GetMaxQueuedSessionCount() const { return m_maxQueuedSessionCount; } uint32 GetMaxActiveSessionCount() const { return m_maxActiveSessionCount; } - Player* FindPlayerInZone(uint32 zone); + /// Get number of players + inline uint32 GetPlayerCount() const { return m_PlayerCount; } + inline uint32 GetMaxPlayerCount() const { return m_MaxPlayerCount; } + /// Increase/Decrease number of players + inline void IncreasePlayerCount() + { + m_PlayerCount++; + m_MaxPlayerCount = std::max(m_MaxPlayerCount, m_PlayerCount); + } + inline void DecreasePlayerCount() { m_PlayerCount--; } + Player* FindPlayerInZone(uint32 zone); Weather* FindWeather(uint32 id) const; Weather* AddWeather(uint32 zone_id); void RemoveWeather(uint32 zone_id); @@ -613,6 +623,8 @@ class World DisconnectMap m_disconnects; uint32 m_maxActiveSessionCount; uint32 m_maxQueuedSessionCount; + uint32 m_PlayerCount; + uint32 m_MaxPlayerCount; std::multimap<time_t, ScriptAction> m_scriptSchedule; |
