From 0d1f72a55ba2bb15b7292b66157cd3db2872708e Mon Sep 17 00:00:00 2001 From: Skjalf <47818697+Nyeriah@users.noreply.github.com> Date: Mon, 4 Oct 2021 10:46:40 -0300 Subject: [PATCH] fix(Core/Players): solve issue with hunters never being able to roll need on polearms and properly check conditions to roll on relics (#8148) --- .../game/Entities/Player/PlayerStorage.cpp | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/src/server/game/Entities/Player/PlayerStorage.cpp b/src/server/game/Entities/Player/PlayerStorage.cpp index a568772cf..a4f5d9b6f 100644 --- a/src/server/game/Entities/Player/PlayerStorage.cpp +++ b/src/server/game/Entities/Player/PlayerStorage.cpp @@ -2391,10 +2391,37 @@ InventoryResult Player::CanRollForItemInLFG(ItemTemplate const* proto, WorldObje if (proto->Class == ITEM_CLASS_WEAPON && GetSkillValue(item_weapon_skills[proto->SubClass]) == 0) return EQUIP_ERR_NO_REQUIRED_PROFICIENCY; - // check for shields - if ((proto->SubClass == ITEM_SUBCLASS_ARMOR_SHIELD) && !(_class == CLASS_PALADIN || _class == CLASS_WARRIOR || _class == CLASS_SHAMAN)) + if (proto->Class == ITEM_CLASS_ARMOR) { - return EQUIP_ERR_NO_REQUIRED_PROFICIENCY; + // Check for shields + if (proto->SubClass == ITEM_SUBCLASS_ARMOR_SHIELD && !(_class == CLASS_PALADIN || _class == CLASS_WARRIOR || _class == CLASS_SHAMAN)) + { + return EQUIP_ERR_NO_REQUIRED_PROFICIENCY; + } + + // Check for librams. + if (proto->SubClass == ITEM_SUBCLASS_ARMOR_LIBRAM && _class != CLASS_PALADIN) + { + return EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM; + } + + // CHeck for idols. + if (proto->SubClass == ITEM_SUBCLASS_ARMOR_IDOL && _class != CLASS_DRUID) + { + return EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM; + } + + // Check for totems. + if (proto->SubClass == ITEM_SUBCLASS_ARMOR_TOTEM && _class != CLASS_SHAMAN) + { + return EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM; + } + + // Check for sigils. + if (proto->SubClass == ITEM_SUBCLASS_ARMOR_SIGIL && _class != CLASS_DEATH_KNIGHT) + { + return EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM; + } } if (proto->Class == ITEM_CLASS_ARMOR && proto->SubClass > ITEM_SUBCLASS_ARMOR_MISC && proto->SubClass < ITEM_SUBCLASS_ARMOR_BUCKLER &&