summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDegen <61268368+aradep@users.noreply.github.com>2025-09-23 21:46:04 -0300
committerGitHub <noreply@github.com>2025-09-23 21:46:04 -0300
commitd05213d85e64de06562eae2c64eb5d874947064d (patch)
tree0149ea7d5a4ecd8f5c93f1b989a7530d95cb7541 /src
parentae5001d16e0b6800b7fac001657aa097bf9d0155 (diff)
feat(Core/Config): Infinite ammo config setting (#22969)
Co-authored-by: sogladev <sogladev@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/server/apps/worldserver/worldserver.conf.dist7
-rw-r--r--src/server/game/Spells/Spell.cpp7
-rw-r--r--src/server/game/World/WorldConfig.cpp2
-rw-r--r--src/server/game/World/WorldConfig.h1
4 files changed, 14 insertions, 3 deletions
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
@@ -4564,6 +4564,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<bool>(CONFIG_ENABLE_DAZE, "Daze.Enabled", true);
+ SetConfigValue<bool>(CONFIG_ENABLE_INFINITEAMMO, "InfiniteAmmo.Enabled", false);
+
SetConfigValue<uint32>(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,