Core/Players: Fix starting level for non-Evoker Dracthyr

This commit is contained in:
luis
2026-09-24 19:35:58 -03:00
parent 48857018a5
commit dd0d836bd1
4 changed files with 27 additions and 32 deletions
+25 -25
View File
@@ -348,31 +348,31 @@ enum class ChatChannelRuleset : int32
enum class ChrRacesFlag : int32
{
NPCOnly = 0x000001,
DoNotComponentFeet = 0x000002,
CanMount = 0x000004,
HasBald = 0x000008,
BindToStartingArea = 0x000010,
AlternateForm = 0x000020,
CanMountSelf = 0x000040,
ForceToHDModelIfAvailable = 0x000080,
ExaltedWithAllVendors = 0x000100,
NotSelectable = 0x000200,
ReputationBonus = 0x000400,
UseLoincloth = 0x000800,
RestBonus = 0x001000,
NoStartKits = 0x002000,
NoStartingWeapon = 0x004000,
DontRedeemAccountLicenses = 0x008000,
SkinVariationIsHairColor = 0x010000,
UsePandarenRingForComponentingTexture = 0x020000,
IgnoreForAssetManifestComponentInfoParsing = 0x040000,
IsAlliedRace = 0x080000,
VoidVendorDiscount = 0x100000,
DAMMComponentNoMaleGeneration = 0x200000,
DAMMComponentNoFemaleGeneration = 0x400000,
NoAssociatedFactionReputationInRaceChange = 0x800000,
InternalOnly = 0x100000,
NPCOnly = 0x0000001,
DoNotComponentFeet = 0x0000002,
CanMount = 0x0000004,
HasBald = 0x0000008,
BindToStartingArea = 0x0000010,
AlternateForm = 0x0000020,
CanMountSelf = 0x0000040,
ForceToHDModelIfAvailable = 0x0000080,
ExaltedWithAllVendors = 0x0000100,
NotSelectable = 0x0000200,
ReputationBonus = 0x0000400,
UseLoincloth = 0x0000800,
RestBonus = 0x0001000,
NoStartKits = 0x0002000,
NoStartingWeapon = 0x0004000,
DontRedeemAccountLicenses = 0x0008000,
SkinVariationIsHairColor = 0x0010000,
UsePandarenRingForComponentingTexture = 0x0020000,
IgnoreForAssetManifestComponentInfoParsing = 0x0040000,
IsAlliedRace = 0x0080000,
VoidVendorDiscount = 0x0100000,
DAMMComponentNoMaleGeneration = 0x0200000,
DAMMComponentNoFemaleGeneration = 0x0400000,
NoAssociatedFactionReputationInRaceChange = 0x0800000,
InternalOnly = 0x1000000,
};
DEFINE_ENUM_FLAG(ChrRacesFlag);
+1 -3
View File
@@ -25717,7 +25717,7 @@ void Player::ReportedAfkBy(Player* reporter)
uint8 Player::GetStartLevel(uint8 race, uint8 playerClass, Optional<int32> characterTemplateId) const
{
uint8 startLevel = sWorld->getIntConfig(CONFIG_START_PLAYER_LEVEL);
if (sChrRacesStore.AssertEntry(race)->GetFlags().HasFlag(ChrRacesFlag::IsAlliedRace))
if (sChrRacesStore.AssertEntry(race)->GetFlags().HasFlag(ChrRacesFlag::IsAlliedRace) || race == RACE_DRACTHYR_ALLIANCE || race == RACE_DRACTHYR_HORDE)
startLevel = sWorld->getIntConfig(CONFIG_START_ALLIED_RACE_LEVEL);
if (playerClass == CLASS_DEATH_KNIGHT)
@@ -25729,8 +25729,6 @@ uint8 Player::GetStartLevel(uint8 race, uint8 playerClass, Optional<int32> chara
}
else if (playerClass == CLASS_DEMON_HUNTER)
startLevel = std::max<uint8>(sWorld->getIntConfig(CONFIG_START_DEMON_HUNTER_PLAYER_LEVEL), startLevel);
else if (playerClass == CLASS_EVOKER)
startLevel = std::max<uint8>(sWorld->getIntConfig(CONFIG_START_EVOKER_PLAYER_LEVEL), startLevel);
if (characterTemplateId)
{
+1 -3
View File
@@ -796,7 +796,6 @@ void World::LoadConfigSettings(bool reload)
{ .Name = "StartPlayerLevel"sv, .DefaultValue = 1, .Index = CONFIG_START_PLAYER_LEVEL, .Min = 1 },
{ .Name = "StartDeathKnightPlayerLevel"sv, .DefaultValue = 8, .Index = CONFIG_START_DEATH_KNIGHT_PLAYER_LEVEL, .Min = 1 },
{ .Name = "StartDemonHunterPlayerLevel"sv, .DefaultValue = 8, .Index = CONFIG_START_DEMON_HUNTER_PLAYER_LEVEL, .Min = 1 },
{ .Name = "StartEvokerPlayerLevel"sv, .DefaultValue = 10, .Index = CONFIG_START_EVOKER_PLAYER_LEVEL, .Min = 1 },
{ .Name = "StartAlliedRacePlayerLevel"sv, .DefaultValue = 10, .Index = CONFIG_START_ALLIED_RACE_LEVEL, .Min = 1 },
{ .Name = "Currency.ResetHour"sv, .DefaultValue = 3, .Index = CONFIG_CURRENCY_RESET_HOUR, .Min = 0, .Max = 23 },
{ .Name = "Currency.ResetDay"sv, .DefaultValue = 3, .Index = CONFIG_CURRENCY_RESET_DAY, .Min = 0, .Max = 6 },
@@ -1137,8 +1136,7 @@ void World::LoadConfigSettings(bool reload)
validateStartLevel(CONFIG_START_PLAYER_LEVEL, "StartPlayerLevel");
validateStartLevel(CONFIG_START_DEATH_KNIGHT_PLAYER_LEVEL, "StartDeathKnightPlayerLevel");
validateStartLevel(CONFIG_START_DEMON_HUNTER_PLAYER_LEVEL, "StartDemonHunterPlayerLevel");
validateStartLevel(CONFIG_START_EVOKER_PLAYER_LEVEL, "StartEvokerPlayerLevel");
validateStartLevel(CONFIG_START_ALLIED_RACE_LEVEL, "StartDemonHunterPlayerLevel");
validateStartLevel(CONFIG_START_ALLIED_RACE_LEVEL, "StartAlliedRacePlayerLevel");
validateStartLevel(CONFIG_MAX_RECRUIT_A_FRIEND_BONUS_PLAYER_LEVEL, "RecruitAFriend.MaxLevel");
if (m_int_configs[CONFIG_START_GM_LEVEL] < m_int_configs[CONFIG_START_PLAYER_LEVEL])
-1
View File
@@ -272,7 +272,6 @@ enum WorldIntConfigs : uint32
CONFIG_START_PLAYER_LEVEL,
CONFIG_START_DEATH_KNIGHT_PLAYER_LEVEL,
CONFIG_START_DEMON_HUNTER_PLAYER_LEVEL,
CONFIG_START_EVOKER_PLAYER_LEVEL,
CONFIG_START_ALLIED_RACE_LEVEL,
CONFIG_CURRENCY_RESET_HOUR,
CONFIG_CURRENCY_RESET_DAY,