From d05213d85e64de06562eae2c64eb5d874947064d Mon Sep 17 00:00:00 2001 From: Degen <61268368+aradep@users.noreply.github.com> Date: Tue, 23 Sep 2025 21:46:04 -0300 Subject: feat(Core/Config): Infinite ammo config setting (#22969) Co-authored-by: sogladev --- src/server/apps/worldserver/worldserver.conf.dist | 7 +++++++ src/server/game/Spells/Spell.cpp | 7 ++++--- src/server/game/World/WorldConfig.cpp | 2 ++ src/server/game/World/WorldConfig.h | 1 + 4 files changed, 14 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/server/apps/worldserver/worldserver.conf.dist b/src/server/apps/worldserver/worldserver.conf.dist index fa4baa1382..8f54e0dd0e 100644 --- a/src/server/apps/worldserver/worldserver.conf.dist +++ b/src/server/apps/worldserver/worldserver.conf.dist @@ -4563,6 +4563,13 @@ MunchingBlizzlike.Enabled = 1 Daze.Enabled = 1 +# +# InfiniteAmmo.Enabled +# Description: Enable or disable ammo consumption for ranged attacks and thrown weapons. +# Default: 0 - (Blizzlike) + +InfiniteAmmo.Enabled = 0 + # ################################################################################################### diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 5b2aeb1101..ede719d2a2 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -5422,15 +5422,16 @@ void Spell::TakeAmmo() // decrease durability for non-stackable throw weapon m_caster->ToPlayer()->DurabilityPointLossForEquipSlot(EQUIPMENT_SLOT_RANGED); } - else + else if (!sWorld->getBoolConfig(CONFIG_ENABLE_INFINITEAMMO)) { // decrease items amount for stackable throw weapon uint32 count = 1; m_caster->ToPlayer()->DestroyItemCount(pItem, count, true); } } - else if (uint32 ammo = m_caster->ToPlayer()->GetUInt32Value(PLAYER_AMMO_ID)) - m_caster->ToPlayer()->DestroyItemCount(ammo, 1, true); + else if (!sWorld->getBoolConfig(CONFIG_ENABLE_INFINITEAMMO)) + if (uint32 ammo = m_caster->ToPlayer()->GetUInt32Value(PLAYER_AMMO_ID)) + m_caster->ToPlayer()->DestroyItemCount(ammo, 1, true); } } diff --git a/src/server/game/World/WorldConfig.cpp b/src/server/game/World/WorldConfig.cpp index afcede3af6..eedd61eaf4 100644 --- a/src/server/game/World/WorldConfig.cpp +++ b/src/server/game/World/WorldConfig.cpp @@ -505,6 +505,8 @@ void WorldConfig::BuildConfigCache() SetConfigValue(CONFIG_ENABLE_DAZE, "Daze.Enabled", true); + SetConfigValue(CONFIG_ENABLE_INFINITEAMMO, "InfiniteAmmo.Enabled", false); + SetConfigValue(CONFIG_DAILY_RBG_MIN_LEVEL_AP_REWARD, "DailyRBGArenaPoints.MinLevel", 71); // Respawn diff --git a/src/server/game/World/WorldConfig.h b/src/server/game/World/WorldConfig.h index 2760faad1d..ce089b65a3 100644 --- a/src/server/game/World/WorldConfig.h +++ b/src/server/game/World/WorldConfig.h @@ -142,6 +142,7 @@ enum ServerConfigs CONFIG_ALLOWS_RANK_MOD_FOR_PET_HEALTH, CONFIG_MUNCHING_BLIZZLIKE, CONFIG_ENABLE_DAZE, + CONFIG_ENABLE_INFINITEAMMO, CONFIG_SPELL_QUEUE_ENABLED, CONFIG_GROUP_XP_DISTANCE, CONFIG_MAX_RECRUIT_A_FRIEND_DISTANCE, -- cgit v1.2.3