Core/Creatures: Allow disabling melee attacks for all creatures, not just the ones using SAI

Port From (https://github.com/TrinityCore/TrinityCore/commit/d26d38075cdb56dcef77f05276a360e717cc5032)
This commit is contained in:
hondacrx
2023-03-14 04:34:51 -04:00
parent 40898d4b9f
commit d0b7bcb2fe
7 changed files with 21 additions and 18 deletions
@@ -3246,6 +3246,10 @@ namespace Game.Entities
public override SpellSchoolMask GetMeleeDamageSchoolMask(WeaponAttackType attackType = WeaponAttackType.BaseAttack) { return m_meleeDamageSchoolMask; }
public void SetMeleeDamageSchool(SpellSchools school) { m_meleeDamageSchoolMask = (SpellSchoolMask)(1 << (int)school); }
public bool CanMelee() { return !_staticFlags.HasFlag(CreatureStaticFlags.NoMelee); }
public void SetCanMelee(bool canMelee) { _staticFlags.ApplyFlag(CreatureStaticFlags.NoMelee, !canMelee); }
public sbyte GetOriginalEquipmentId() { return m_originalEquipmentId; }
public byte GetCurrentEquipmentId() { return m_equipmentId; }
public void SetCurrentEquipmentId(byte id) { m_equipmentId = id; }
+8 -2
View File
@@ -258,8 +258,14 @@ namespace Game.Entities
Creature creature = ToCreature();
// creatures cannot attack while evading
if (creature != null && creature.IsInEvadeMode())
return false;
if (creature != null)
{
if (creature.IsInEvadeMode())
return false;
if (!creature.CanMelee())
meleeAttack = false;
}
// nobody can attack GM in GM-mode
if (victim.IsTypeId(TypeId.Player))