Unik2psc
Members-
Posts
29 -
Joined
-
Last visited
Never -
Donations
0.00 GBP
Content Type
Profiles
Bug Tracker
Wiki
Release Notes
Forums
Downloads
Blogs
Events
Everything posted by Unik2psc
-
Kero, what system?. On debian lenny does not work 5. I have the AMD processor - 2x quad core. Nice -20 make-j8 - often jumping compilation errors, then they do not. I installed the package libtbbl-dev - package found, but problems like before.
-
Hey all. I made a small patch. Players limit (number) retrieving from the database. Advantages: - command "server plimit" change limit permanently. - automatic statistics world (If you are maintaining webpage server stats based on database (like online players, realm uptime, etc.) you can now easly include also player limit); Waiting for criticism. I did it for their needs, I wanted to share with you http://gist.github.com/298341 diff --git a/sql/mangos.sql b/sql/mangos.sql index c26a0d2..15ad515 100644 --- a/sql/mangos.sql +++ b/sql/mangos.sql @@ -2920,7 +2920,7 @@ INSERT INTO `mangos_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,'Online players: %u (max: %u) Queued players: %u (max: %u) Player Limit: %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), diff --git a/sql/new.sql b/sql/new.sql index 16f56a6..5aada8e 100644 --- a/sql/new.sql +++ b/sql/new.sql @@ -1 +1,2 @@ -ALTER TABLE `realmlist` ADD `plimit` INT( 32 ) NOT NULL DEFAULT '200'; \\ No newline at end of file +ALTER TABLE `realmlist` ADD `plimit` INT( 32 ) NOT NULL DEFAULT '200'; +UPDATE `mangos_string` SET `content_default` = 'Online players: %u (max: %u) Queued players: %u (max: %u) Player Limit: %u' WHERE `entry` = 12; \\ No newline at end of file diff --git a/sql/realmd.sql b/sql/realmd.sql index 267b882..2f9004e 100644 --- a/sql/realmd.sql +++ b/sql/realmd.sql @@ -162,6 +162,7 @@ CREATE TABLE `realmlist` ( `allowedSecurityLevel` tinyint(3) unsigned NOT NULL default '0', `population` float unsigned NOT NULL default '0', `realmbuilds` varchar(64) NOT NULL default '', + `plimit` int(32) NOT NULL DEFAULT '200', PRIMARY KEY (`id`), UNIQUE KEY `idx_name` (`name`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Realm System'; diff --git a/src/game/Level0.cpp b/src/game/Level0.cpp index 178ae48..61e8e6b 100644 --- a/src/game/Level0.cpp +++ b/src/game/Level0.cpp @@ -102,7 +102,7 @@ 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_USERS, activeClientsNum, maxActiveClientsNum, queuedClientsNum, maxQueuedClientsNum); + PSendSysMessage(LANG_CONNECTED_USERS, activeClientsNum, maxActiveClientsNum, queuedClientsNum, maxQueuedClientsNum, sWorld.GetRealmLimit()); PSendSysMessage(LANG_UPTIME, str.c_str()); return true; diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index 71203fc..0ea2af8 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -5691,7 +5691,7 @@ bool ChatHandler::HandleServerPLimitCommand(const char *args) else if(strncmp(param,"administrator",l) == 0 ) sWorld.SetPlayerLimit(-SEC_ADMINISTRATOR); else if(strncmp(param,"reset",l) == 0 ) - sWorld.SetPlayerLimit( sConfig.GetIntDefault("PlayerLimit", DEFAULT_PLAYER_LIMIT) ); + sWorld.SetPlayerLimit(DEFAULT_PLAYER_LIMIT); else { int val = atoi(param); @@ -5718,6 +5718,7 @@ bool ChatHandler::HandleServerPLimitCommand(const char *args) } PSendSysMessage("Player limits: amount %u, min. security level %s.",pLimit,secName); + loginDatabase.PQuery("UPDATE realmlist SET plimit = '%d' WHERE id = '%d'", pLimit, realmID); return true; } diff --git a/src/game/World.cpp b/src/game/World.cpp index 1dddef0..f8811d2 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -427,8 +427,6 @@ void World::LoadConfigSettings(bool reload) } } - ///- Read the player limit and the Message of the day from the config file - SetPlayerLimit( sConfig.GetIntDefault("PlayerLimit", DEFAULT_PLAYER_LIMIT), true ); SetMotd( sConfig.GetStringDefault("Motd", "Welcome to the Massive Network Game Object Server." ) ); ///- Read all rates from the config file @@ -1146,6 +1144,11 @@ void World::SetInitialWorldSettings() ///- Update the realm entry in the database with the realm type from the config file //No SQL injection as values are treated as integers + + // Load realm limit player from realmlist table + sLog.outString("Load realm player limit..."); + LoadRealmLimit(); + // not send custom type REALM_FFA_PVP to realm list uint32 server_type = IsFFAPvPRealm() ? REALM_TYPE_PVP : getConfig(CONFIG_GAME_TYPE); uint32 realm_zone = getConfig(CONFIG_REALM_ZONE); @@ -2257,6 +2260,28 @@ void World::SetPlayerLimit( int32 limit, bool needUpdate ) loginDatabase.PExecute("UPDATE realmlist SET allowedSecurityLevel = '%u' WHERE id = '%d'",uint8(GetPlayerSecurityLimit()),realmID); } +void World::LoadRealmLimit() +{ + QueryResult* result = loginDatabase.PQuery("SELECT plimit FROM realmlist WHERE id = '%d' LIMIT 1", realmID); + + if(result) + { + Field* fields = result->Fetch(); + uint32 plimit = fields[0].GetInt32(); + + SetPlayerLimit(limit); + }else{ + SetPlayerLimit(DEFAULT_PLAYER_LIMIT); + } + + delete result; +} + +void World::GetRealmLimit() +{ + return m_playerLimit; +} + void World::UpdateMaxSessionCounters() { m_maxActiveSessionCount = std::max(m_maxActiveSessionCount,uint32(m_sessions.size()-m_QueuedPlayer.size())); diff --git a/src/game/World.h b/src/game/World.h index a0e2507..67f60f2 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -408,6 +408,8 @@ class World /// Set the active session server limit (or security level limitation) void SetPlayerLimit(int32 limit, bool needUpdate = false); + void LoadRealmLimit(); + void GetRealmLimit(); //player Queue typedef std::list<WorldSession*> Queue; diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in index 030d8f5..99feaf9 100644 --- a/src/mangosd/mangosd.conf.dist.in +++ b/src/mangosd/mangosd.conf.dist.in @@ -74,14 +74,6 @@ BindIP = "0.0.0.0" # Default: 1 (speed) # 9 (best compression) # -# PlayerLimit -# Maximum number of players in the world. Excluding Mods, GM's and Admins -# Default: 100 -# 0 (for infinite players) -# -1 (for Mods, GM's and Admins only) -# -2 (for GM's and Admins only) -# -3 (for Admins only) -# # SaveRespawnTimeImmediately # Save respawn time for creatures at death and for gameobjects at use/open # Default: 1 (save creature/gameobject respawn time without waiting grid unload) @@ -164,7 +156,6 @@ BindIP = "0.0.0.0" UseProcessors = 0 ProcessPriority = 1 Compression = 1 -PlayerLimit = 100 SaveRespawnTimeImmediately = 1 MaxOverspeedPings = 2 GridUnload = 1
-
small fix. reset column active_realmd_id at shutdown http://gist.github.com/274545 May be useful to someone. Unik2psc = Emtec_GM, lost password
-
Good job. Thank you
Contact Us
To contact us
click here
You can also email us at [email protected]
Privacy Policy | Terms & Conditions
You can also email us at [email protected]
Privacy Policy | Terms & Conditions
Copyright © getMaNGOS. All rights Reserved.
This website is in no way associated with or endorsed by Blizzard Entertainment®
This website is in no way associated with or endorsed by Blizzard Entertainment®