aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Jackson <38561765+heyitsbench@users.noreply.github.com>2024-11-29 07:03:37 -0500
committerGitHub <noreply@github.com>2024-11-29 13:03:37 +0100
commit65e2474ff264e40f579ce2aa29921e9d72c75c6f (patch)
tree8f8f13711d11d2bea05d974390bb746565b042af
parentc0d8dba15a1a25756f4297eaa0647797ca13e376 (diff)
Core/Players: Add separate config option for starting money for Death Knight characters (#30466)
-rw-r--r--src/server/game/Entities/Player/Player.cpp4
-rw-r--r--src/server/game/World/World.cpp13
-rw-r--r--src/server/game/World/World.h1
-rw-r--r--src/server/worldserver/worldserver.conf.dist8
4 files changed, 25 insertions, 1 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index c6d3ba5f308..66a46284fb3 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -543,7 +543,9 @@ bool Player::Create(ObjectGuid::LowType guidlow, CharacterCreateInfo* createInfo
InitRunes();
- SetMoney(sWorld->getIntConfig(CONFIG_START_PLAYER_MONEY));
+ SetMoney(GetClass() != CLASS_DEATH_KNIGHT
+ ? sWorld->getIntConfig(CONFIG_START_PLAYER_MONEY)
+ : sWorld->getIntConfig(CONFIG_START_DEATH_KNIGHT_PLAYER_MONEY));
SetHonorPoints(sWorld->getIntConfig(CONFIG_START_HONOR_POINTS));
SetArenaPoints(sWorld->getIntConfig(CONFIG_START_ARENA_POINTS));
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index b49ef889c1a..eece2729411 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -917,6 +917,19 @@ void World::LoadConfigSettings(bool reload)
m_int_configs[CONFIG_START_PLAYER_MONEY] = MAX_MONEY_AMOUNT;
}
+ m_int_configs[CONFIG_START_DEATH_KNIGHT_PLAYER_MONEY] = sConfigMgr->GetIntDefault("StartDeathKnightPlayerMoney", 2000);
+ if (int32(m_int_configs[CONFIG_START_DEATH_KNIGHT_PLAYER_MONEY]) < 0)
+ {
+ TC_LOG_ERROR("server.loading", "StartDeathKnightPlayerMoney ({}) must be in range 0..{}. Set to {}.", m_int_configs[CONFIG_START_DEATH_KNIGHT_PLAYER_MONEY], MAX_MONEY_AMOUNT, 2000);
+ m_int_configs[CONFIG_START_DEATH_KNIGHT_PLAYER_MONEY] = 2000;
+ }
+ else if (m_int_configs[CONFIG_START_DEATH_KNIGHT_PLAYER_MONEY] > MAX_MONEY_AMOUNT)
+ {
+ TC_LOG_ERROR("server.loading", "StartDeathKnightPlayerMoney ({}) must be in range 0..{}. Set to {}.",
+ m_int_configs[CONFIG_START_DEATH_KNIGHT_PLAYER_MONEY], MAX_MONEY_AMOUNT, MAX_MONEY_AMOUNT);
+ m_int_configs[CONFIG_START_DEATH_KNIGHT_PLAYER_MONEY] = MAX_MONEY_AMOUNT;
+ }
+
m_int_configs[CONFIG_MAX_HONOR_POINTS] = sConfigMgr->GetIntDefault("MaxHonorPoints", 75000);
if (int32(m_int_configs[CONFIG_MAX_HONOR_POINTS]) < 0)
{
diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h
index c8e7ffd0ff2..18bf66d7e22 100644
--- a/src/server/game/World/World.h
+++ b/src/server/game/World/World.h
@@ -238,6 +238,7 @@ enum WorldIntConfigs : uint32
CONFIG_START_PLAYER_LEVEL,
CONFIG_START_DEATH_KNIGHT_PLAYER_LEVEL,
CONFIG_START_PLAYER_MONEY,
+ CONFIG_START_DEATH_KNIGHT_PLAYER_MONEY,
CONFIG_MAX_HONOR_POINTS,
CONFIG_START_HONOR_POINTS,
CONFIG_MAX_ARENA_POINTS,
diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist
index 90ad17d3181..971eebc6cf9 100644
--- a/src/server/worldserver/worldserver.conf.dist
+++ b/src/server/worldserver/worldserver.conf.dist
@@ -846,6 +846,14 @@ StartDeathKnightPlayerLevel = 55
StartPlayerMoney = 0
#
+# StartDeathKnightPlayerMoney
+# Description: Amount of money (in Copper) that a death knight character has after creation.
+# Default: 2000
+# 100 - (1 Silver)
+
+StartDeathKnightPlayerMoney = 2000
+
+#
# MaxHonorPoints
# Description: Maximum honor points a character can have.
# Default: 75000