aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2011-01-24 16:12:02 +0100
committerShauren <shauren.trinity@gmail.com>2011-01-24 16:12:02 +0100
commit867bc197efbdcf24bf063e842c91c12bba8b0c4c (patch)
tree141e42e14e72ae5306dc992e23b1c95ed7160de1 /src
parent820f87f365489607dfb7a0e87d7e86c44557518f (diff)
Core/Instances: Made the max amount of instances player can enter within hour configurable and fixed typo in instance packing/cleaning query
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Entities/Player/Player.h4
-rwxr-xr-xsrc/server/game/Instances/InstanceSaveMgr.cpp2
-rwxr-xr-xsrc/server/game/World/World.cpp3
-rwxr-xr-xsrc/server/game/World/World.h1
-rw-r--r--src/server/worldserver/worldserver.conf.dist7
5 files changed, 13 insertions, 4 deletions
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<uint32, SpellCooldown> SpellCooldowns;
-
-#define MAX_INSTANCES_PER_HOUR 5
typedef UNORDERED_MAP<uint32 /*instanceId*/, time_t/*releaseTime*/> InstanceTimeMap;
enum TrainerSpellState
@@ -2312,7 +2310,7 @@ class Player : public Unit, public GridObject<Player>
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
@@ -1373,6 +1373,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
+
+#
###################################################################################################
###################################################################################################