fix(Core/Player): simultaneously swap melee and ranged weapon in combat (#23557)
This commit is contained in:
@@ -1848,8 +1848,13 @@ InventoryResult Player::CanEquipItem(uint8 slot, uint16& dest, Item* pItem, bool
|
|||||||
return EQUIP_ERR_NOT_DURING_ARENA_MATCH;
|
return EQUIP_ERR_NOT_DURING_ARENA_MATCH;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsInCombat() && (pProto->Class == ITEM_CLASS_WEAPON || pProto->InventoryType == INVTYPE_RELIC) && m_weaponChangeTimer != 0)
|
if (IsInCombat() && (pProto->Class == ITEM_CLASS_WEAPON || pProto->InventoryType == INVTYPE_RELIC))
|
||||||
return EQUIP_ERR_CANT_DO_RIGHT_NOW; // maybe exist better err
|
{
|
||||||
|
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))
|
if (IsNonMeleeSpellCast(false))
|
||||||
return EQUIP_ERR_CANT_DO_RIGHT_NOW;
|
return EQUIP_ERR_CANT_DO_RIGHT_NOW;
|
||||||
|
|||||||
Reference in New Issue
Block a user