From 6a357da28c715ca9c3fdc1bffdf48bf1ef845024 Mon Sep 17 00:00:00 2001 From: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com> Date: Wed, 21 Sep 2022 07:32:33 -0400 Subject: [PATCH] fix(Core/Player): Give Death Knight's twenty silver on character creation (#12974) * Make sacrifices to workflow god Best note ever ^^ --- src/server/apps/worldserver/worldserver.conf.dist | 8 ++++++++ src/server/game/Entities/Player/Player.cpp | 4 +++- src/server/game/World/IWorld.h | 1 + src/server/game/World/World.cpp | 7 +++++++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/server/apps/worldserver/worldserver.conf.dist b/src/server/apps/worldserver/worldserver.conf.dist index 711c23287..646d7706b 100644 --- a/src/server/apps/worldserver/worldserver.conf.dist +++ b/src/server/apps/worldserver/worldserver.conf.dist @@ -868,6 +868,14 @@ StartHeroicPlayerLevel = 55 StartPlayerMoney = 0 +# +# StartHeroicPlayerMoney +# Description: Amount of money (in Copper) that heroic class characters have after creation. +# Default: 2000 +# 2000 - (20 Silver) + +StartHeroicPlayerMoney = 2000 + # # MaxHonorPoints # Description: Maximum honor points a character can have. diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index d1fb0338e..2c473e09c 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -569,7 +569,9 @@ bool Player::Create(ObjectGuid::LowType guidlow, CharacterCreateInfo* createInfo InitRunes(); - SetUInt32Value(PLAYER_FIELD_COINAGE, sWorld->getIntConfig(CONFIG_START_PLAYER_MONEY)); + SetUInt32Value(PLAYER_FIELD_COINAGE, getClass() != CLASS_DEATH_KNIGHT + ? sWorld->getIntConfig(CONFIG_START_PLAYER_MONEY) + : sWorld->getIntConfig(CONFIG_START_HEROIC_PLAYER_MONEY)); SetHonorPoints(sWorld->getIntConfig(CONFIG_START_HONOR_POINTS)); SetArenaPoints(sWorld->getIntConfig(CONFIG_START_ARENA_POINTS)); diff --git a/src/server/game/World/IWorld.h b/src/server/game/World/IWorld.h index 48da90242..ec6a880f9 100644 --- a/src/server/game/World/IWorld.h +++ b/src/server/game/World/IWorld.h @@ -231,6 +231,7 @@ enum WorldIntConfigs CONFIG_START_PLAYER_LEVEL, CONFIG_START_HEROIC_PLAYER_LEVEL, CONFIG_START_PLAYER_MONEY, + CONFIG_START_HEROIC_PLAYER_MONEY, CONFIG_MAX_HONOR_POINTS, CONFIG_MAX_HONOR_POINTS_MONEY_PER_POINT, CONFIG_START_HONOR_POINTS, diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index 9763ea44a..318af1ab6 100644 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -848,6 +848,13 @@ void World::LoadConfigSettings(bool reload) m_int_configs[CONFIG_START_PLAYER_MONEY] = 0; } + m_int_configs[CONFIG_START_HEROIC_PLAYER_MONEY] = sConfigMgr->GetOption("StartHeroicPlayerMoney", 2000); + if (int32(m_int_configs[CONFIG_START_HEROIC_PLAYER_MONEY]) < 0 || int32(m_int_configs[CONFIG_START_HEROIC_PLAYER_MONEY]) > MAX_MONEY_AMOUNT) + { + LOG_ERROR("server.loading", "StartHeroicPlayerMoney ({}) must be in range 0..{}. Set to {}.", m_int_configs[CONFIG_START_HEROIC_PLAYER_MONEY], MAX_MONEY_AMOUNT, 2000); + m_int_configs[CONFIG_START_HEROIC_PLAYER_MONEY] = 2000; + } + m_int_configs[CONFIG_MAX_HONOR_POINTS] = sConfigMgr->GetOption("MaxHonorPoints", 75000); if (int32(m_int_configs[CONFIG_MAX_HONOR_POINTS]) < 0) {