From 867bc197efbdcf24bf063e842c91c12bba8b0c4c Mon Sep 17 00:00:00 2001 From: Shauren Date: Mon, 24 Jan 2011 16:12:02 +0100 Subject: Core/Instances: Made the max amount of instances player can enter within hour configurable and fixed typo in instance packing/cleaning query --- src/server/game/Entities/Player/Player.h | 4 +--- src/server/game/Instances/InstanceSaveMgr.cpp | 2 +- src/server/game/World/World.cpp | 3 +++ src/server/game/World/World.h | 1 + src/server/worldserver/worldserver.conf.dist | 7 +++++++ 5 files changed, 13 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 1e736fee32d..11e7cbd3e98 100755 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -132,8 +132,6 @@ struct SpellCooldown }; typedef std::map SpellCooldowns; - -#define MAX_INSTANCES_PER_HOUR 5 typedef UNORDERED_MAP InstanceTimeMap; enum TrainerSpellState @@ -2312,7 +2310,7 @@ class Player : public Unit, public GridObject bool CheckInstanceLoginValid(); bool CheckInstanceCount(uint32 instanceId) const { - if (_instanceResetTimes.size() < MAX_INSTANCES_PER_HOUR) + if (_instanceResetTimes.size() < sWorld->getIntConfig(CONFIG_MAX_INSTANCES_PER_HOUR)) return true; return _instanceResetTimes.find(instanceId) != _instanceResetTimes.end(); } diff --git a/src/server/game/Instances/InstanceSaveMgr.cpp b/src/server/game/Instances/InstanceSaveMgr.cpp index 30fc849cf6a..b4605cd288a 100755 --- a/src/server/game/Instances/InstanceSaveMgr.cpp +++ b/src/server/game/Instances/InstanceSaveMgr.cpp @@ -278,7 +278,7 @@ void InstanceSaveManager::CleanupAndPackInstances() CharacterDatabase.DirectExecute("ALTER TABLE instance ADD newid INT UNSIGNED AUTO_INCREMENT, ADD INDEX(newid)"); // Update old ids - CharacterDatabase.DirectExecute("UPDATE account_instance_times AS tmp LEFT JOIN instance ON tmp.instanceId = instance.id SET tmp.instance = instance.newid WHERE tmp.instanceId > 0"); + CharacterDatabase.DirectExecute("UPDATE account_instance_times AS tmp LEFT JOIN instance ON tmp.instanceId = instance.id SET tmp.instanceId = instance.newid WHERE tmp.instanceId > 0"); CharacterDatabase.DirectExecute("UPDATE corpse AS tmp LEFT JOIN instance ON tmp.instance = instance.id SET tmp.instance = instance.newid WHERE tmp.instance > 0"); CharacterDatabase.DirectExecute("UPDATE character_instance AS tmp LEFT JOIN instance ON tmp.instance = instance.id SET tmp.instance = instance.newid WHERE tmp.instance > 0"); CharacterDatabase.DirectExecute("UPDATE group_instance AS tmp LEFT JOIN instance ON tmp.instance = instance.id SET tmp.instance = instance.newid WHERE tmp.instance > 0"); diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 58d71f7046c..08193860413 100755 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1171,6 +1171,9 @@ void World::LoadConfigSettings(bool reload) // DBC_ItemAttributes m_bool_configs[CONFIG_DBC_ENFORCE_ITEM_ATTRIBUTES] = sConfig->GetBoolDefault("DBC.EnforceItemAttributes", true); + // Max instances per hour + m_int_configs[CONFIG_MAX_INSTANCES_PER_HOUR] = sConfig->GetIntDefault("AccountInstancesPerHour", 5); + // AutoBroadcast m_bool_configs[CONFIG_AUTOBROADCAST] = sConfig->GetBoolDefault("AutoBroadcast.On", false); m_int_configs[CONFIG_AUTOBROADCAST_CENTER] = sConfig->GetIntDefault("AutoBroadcast.Center", 0); diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 87c37b0c12c..7e052ed2dae 100755 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -309,6 +309,7 @@ enum WorldIntConfigs CONFIG_DB_PING_INTERVAL, CONFIG_PRESERVE_CUSTOM_CHANNEL_DURATION, CONFIG_PERSISTENT_CHARACTER_CLEAN_FLAGS, + CONFIG_MAX_INSTANCES_PER_HOUR, INT_CONFIG_VALUE_COUNT }; diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 188d6d800a6..d0ccc619985 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -1372,6 +1372,13 @@ DungeonFinder.Enable = 0 DBC.EnforceItemAttributes = 1 +# +# AccountInstancesPerHour +# Description: Controls the max amount of different instances player can enter within hour +# Default: 5 + +AccountInstancesPerHour = 5 + # ################################################################################################### -- cgit v1.2.3