aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorСмердокрыл <smerdokryl@gmail.com>2022-06-16 16:58:33 +0300
committerGitHub <noreply@github.com>2022-06-16 15:58:33 +0200
commit5517208b67cf5c0b8054067cee081e968e66694d (patch)
tree2a8869411c841a59192e74053bd174dda7e4b95d
parent756f9287581367aeca9d1c2a0f97d3b4b36ac7a5 (diff)
Core/Player: Distinguish between ranged and non-ranged weapons in GetWeaponForAttack (#27992)
-rw-r--r--src/server/game/Entities/Player/Player.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index b72333f397a..6da3d5e72ec 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -10232,9 +10232,13 @@ Item* Player::GetWeaponForAttack(WeaponAttackType attackType, bool useable /*= f
item = GetUseableItemByPos(INVENTORY_SLOT_BAG_0, slot);
else
item = GetItemByPos(INVENTORY_SLOT_BAG_0, slot);
+
if (!item || item->GetTemplate()->GetClass() != ITEM_CLASS_WEAPON)
return nullptr;
+ if ((attackType == RANGED_ATTACK) != item->GetTemplate()->IsRangedWeapon())
+ return nullptr;
+
if (!useable)
return item;