diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index 22a6156b2..00a7f5781 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -75,17 +75,17 @@ inline uint32 _GetGuildBankTabPrice(uint8 tabId) switch (tabId) { case 0: - return 100; + return sWorld->getIntConfig(CONFIG_GUILD_BANK_TAB_COST_0); case 1: - return 250; + return sWorld->getIntConfig(CONFIG_GUILD_BANK_TAB_COST_1); case 2: - return 500; + return sWorld->getIntConfig(CONFIG_GUILD_BANK_TAB_COST_2); case 3: - return 1000; + return sWorld->getIntConfig(CONFIG_GUILD_BANK_TAB_COST_3); case 4: - return 2500; + return sWorld->getIntConfig(CONFIG_GUILD_BANK_TAB_COST_4); case 5: - return 5000; + return sWorld->getIntConfig(CONFIG_GUILD_BANK_TAB_COST_5); default: return 0; } @@ -1484,7 +1484,7 @@ void Guild::HandleBuyBankTab(WorldSession* session, uint8 tabId) if (tabId != _GetPurchasedTabsSize()) return; - uint32 tabCost = _GetGuildBankTabPrice(tabId) * GOLD; + uint32 tabCost = _GetGuildBankTabPrice(tabId); if (!tabCost) return; diff --git a/src/server/game/World/IWorld.h b/src/server/game/World/IWorld.h index 198de9d3c..f359f3484 100644 --- a/src/server/game/World/IWorld.h +++ b/src/server/game/World/IWorld.h @@ -361,6 +361,12 @@ enum WorldIntConfigs CONFIG_CHARTER_COST_ARENA_5v5, CONFIG_MAX_WHO_LIST_RETURN, CONFIG_WAYPOINT_MOVEMENT_STOP_TIME_FOR_PLAYER, + CONFIG_GUILD_BANK_TAB_COST_0, + CONFIG_GUILD_BANK_TAB_COST_1, + CONFIG_GUILD_BANK_TAB_COST_2, + CONFIG_GUILD_BANK_TAB_COST_3, + CONFIG_GUILD_BANK_TAB_COST_4, + CONFIG_GUILD_BANK_TAB_COST_5, INT_CONFIG_VALUE_COUNT }; diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index bdd343930..7fbb76d9d 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -1075,6 +1075,13 @@ void World::LoadConfigSettings(bool reload) m_int_configs[CONFIG_GUILD_RESET_HOUR] = 6; } + m_int_configs[CONFIG_GUILD_BANK_TAB_COST_0] = sConfigMgr->GetIntDefault("Guild.BankTabCost0", 1000000); + m_int_configs[CONFIG_GUILD_BANK_TAB_COST_1] = sConfigMgr->GetIntDefault("Guild.BankTabCost1", 2500000); + m_int_configs[CONFIG_GUILD_BANK_TAB_COST_2] = sConfigMgr->GetIntDefault("Guild.BankTabCost2", 5000000); + m_int_configs[CONFIG_GUILD_BANK_TAB_COST_3] = sConfigMgr->GetIntDefault("Guild.BankTabCost3", 10000000); + m_int_configs[CONFIG_GUILD_BANK_TAB_COST_4] = sConfigMgr->GetIntDefault("Guild.BankTabCost4", 25000000); + m_int_configs[CONFIG_GUILD_BANK_TAB_COST_5] = sConfigMgr->GetIntDefault("Guild.BankTabCost5", 50000000); + m_bool_configs[CONFIG_DETECT_POS_COLLISION] = sConfigMgr->GetBoolDefault("DetectPosCollision", true); m_bool_configs[CONFIG_RESTRICTED_LFG_CHANNEL] = sConfigMgr->GetBoolDefault("Channel.RestrictedLfg", true); diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist index 4d0c797e7..80fdc19cf 100644 --- a/src/server/worldserver/worldserver.conf.dist +++ b/src/server/worldserver/worldserver.conf.dist @@ -3295,6 +3295,23 @@ NoResetTalentsCost = 0 Guild.AllowMultipleGuildMaster = 0 +# +# Guild.BankTabCost0-5 +# Description: Changes the price of the guild tabs. Note that the client will still show the default values. +# Default: 1000000 - (100 Gold) +# 2500000 - (250 Gold) +# 5000000 - (500 Gold) +# 10000000 - (1000 Gold) +# 25000000 - (2500 Gold) +# 50000000 - (5000 Gold) + +Guild.BankTabCost0 = 1000000 +Guild.BankTabCost1 = 2500000 +Guild.BankTabCost2 = 5000000 +Guild.BankTabCost3 = 10000000 +Guild.BankTabCost4 = 25000000 +Guild.BankTabCost5 = 50000000 + # # ShowKickInWorld # Description: Determines whether a message is broadcast to the entire server when a