fix(Core/Player): simultaneously swap melee and ranged weapon in combat (#23557)

This commit is contained in:
sogladev
2025-11-07 12:07:57 +01:00
committed by GitHub
parent 24ca7efb73
commit 7ac7228315

View File

@@ -1848,8 +1848,13 @@ InventoryResult Player::CanEquipItem(uint8 slot, uint16& dest, Item* pItem, bool
return EQUIP_ERR_NOT_DURING_ARENA_MATCH;
}
if (IsInCombat() && (pProto->Class == ITEM_CLASS_WEAPON || pProto->InventoryType == INVTYPE_RELIC) && m_weaponChangeTimer != 0)
return EQUIP_ERR_CANT_DO_RIGHT_NOW; // maybe exist better err
if (IsInCombat() && (pProto->Class == ITEM_CLASS_WEAPON || pProto->InventoryType == INVTYPE_RELIC))
{
uint32 cooldownSpell = IsClass(CLASS_ROGUE, CLASS_CONTEXT_WEAPON_SWAP) ? 6123 : 6119;
uint32 startRecoveryTime = sSpellMgr->GetSpellInfo(cooldownSpell)->StartRecoveryTime;
if (m_weaponChangeTimer != 0 && m_weaponChangeTimer != startRecoveryTime)
return EQUIP_ERR_CANT_DO_RIGHT_NOW; // maybe exist better err
}
if (IsNonMeleeSpellCast(false))
return EQUIP_ERR_CANT_DO_RIGHT_NOW;