From 9afc755dec30a3f6bdb8016b8208b7e1c53e9eb1 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Sun, 26 Sep 2021 14:00:30 -0400 Subject: [PATCH] Core/Unit: UNIT_FLAG renames Port From (https://github.com/TrinityCore/TrinityCore/commit/f1ac141f25500a0f6ffd3c32b1185de2d9f9c940) --- Source/Framework/Constants/CreatureConst.cs | 4 +-- Source/Game/Chat/Commands/ResetCommands.cs | 2 +- Source/Game/Combat/CombatManager.cs | 8 +++--- Source/Game/Combat/ThreatManager.cs | 2 +- Source/Game/Entities/Creature/Creature.cs | 2 +- Source/Game/Entities/Object/WorldObject.cs | 28 ++++++++++----------- Source/Game/Entities/Pet.cs | 4 +-- Source/Game/Entities/Player/Player.cs | 4 +-- Source/Game/Entities/Unit/Unit.Combat.cs | 4 +-- Source/Game/Entities/Unit/Unit.Movement.cs | 2 +- Source/Game/Entities/Unit/Unit.Pets.cs | 20 +++++++-------- Source/Game/Entities/Unit/Unit.cs | 8 +++--- Source/Game/Spells/Auras/AuraEffect.cs | 4 +-- Source/Game/Spells/Spell.cs | 6 ++--- Source/Scripts/World/NpcSpecial.cs | 2 +- 15 files changed, 50 insertions(+), 50 deletions(-) diff --git a/Source/Framework/Constants/CreatureConst.cs b/Source/Framework/Constants/CreatureConst.cs index c4f531303..fc5c0f0ce 100644 --- a/Source/Framework/Constants/CreatureConst.cs +++ b/Source/Framework/Constants/CreatureConst.cs @@ -51,7 +51,7 @@ namespace Framework.Constants ServerControlled = 0x01, NonAttackable = 0x02, RemoveClientControl = 0x04, // This is a legacy flag used to disable movement player's movement while controlling other units, SMSG_CLIENT_CONTROL replaces this functionality clientside now. CONFUSED and FLEEING flags have the same effect on client movement asDISABLE_MOVE_CONTROL in addition to preventing spell casts/autoattack (they all allow climbing steeper hills and emotes while moving) - PvpAttackable = 0x08, + PlayerControlled = 0x08, //controlled by player, use _IMMUNE_TO_PC instead of _IMMUNE_TO_NPC Rename = 0x10, Preparation = 0x20, Unk6 = 0x40, @@ -72,7 +72,7 @@ namespace Framework.Constants Disarmed = 0x200000, Confused = 0x400000, Fleeing = 0x800000, - PlayerControlled = 0x1000000, + Possessed = 0x1000000, // under direct client control by a player (possess or vehicle) NotSelectable = 0x2000000, Skinnable = 0x4000000, Mount = 0x8000000, diff --git a/Source/Game/Chat/Commands/ResetCommands.cs b/Source/Game/Chat/Commands/ResetCommands.cs index fe673b587..f373b3db2 100644 --- a/Source/Game/Chat/Commands/ResetCommands.cs +++ b/Source/Game/Chat/Commands/ResetCommands.cs @@ -81,7 +81,7 @@ namespace Game.Chat player.SetPvpFlags(UnitPVPStateFlags.PvP); - player.SetUnitFlags(UnitFlags.PvpAttackable); + player.SetUnitFlags(UnitFlags.PlayerControlled); //-1 is default value player.SetWatchedFactionIndex(0xFFFFFFFF); diff --git a/Source/Game/Combat/CombatManager.cs b/Source/Game/Combat/CombatManager.cs index e8abb56ce..d4385ae6f 100644 --- a/Source/Game/Combat/CombatManager.cs +++ b/Source/Game/Combat/CombatManager.cs @@ -158,8 +158,8 @@ namespace Game.Combat if (!IsInCombatWith(refe.Key)) { Unit target = refe.Value.GetOther(who); - if ((_owner.IsImmuneToPC() && target.HasUnitFlag(UnitFlags.PvpAttackable)) || - (_owner.IsImmuneToNPC() && !target.HasUnitFlag(UnitFlags.PvpAttackable))) + if ((_owner.IsImmuneToPC() && target.HasUnitFlag(UnitFlags.PlayerControlled)) || + (_owner.IsImmuneToNPC() && !target.HasUnitFlag(UnitFlags.PlayerControlled))) continue; SetInCombatWith(target); } @@ -169,8 +169,8 @@ namespace Game.Combat if (!IsInCombatWith(refe.Key)) { Unit target = refe.Value.GetOther(who); - if ((_owner.IsImmuneToPC() && target.HasUnitFlag(UnitFlags.PvpAttackable)) || - (_owner.IsImmuneToNPC() && !target.HasUnitFlag(UnitFlags.PvpAttackable))) + if ((_owner.IsImmuneToPC() && target.HasUnitFlag(UnitFlags.PlayerControlled)) || + (_owner.IsImmuneToNPC() && !target.HasUnitFlag(UnitFlags.PlayerControlled))) continue; SetInCombatWith(target); } diff --git a/Source/Game/Combat/ThreatManager.cs b/Source/Game/Combat/ThreatManager.cs index 44c43772c..fcd07675c 100644 --- a/Source/Game/Combat/ThreatManager.cs +++ b/Source/Game/Combat/ThreatManager.cs @@ -782,7 +782,7 @@ namespace Game.Combat if (a.IsCreature() && a.ToCreature().IsTrigger()) return false; - if (a.HasUnitFlag(UnitFlags.PvpAttackable)) + if (a.HasUnitFlag(UnitFlags.PlayerControlled)) { if (b.HasUnitFlag(UnitFlags.ImmuneToPc)) return false; diff --git a/Source/Game/Entities/Creature/Creature.cs b/Source/Game/Entities/Creature/Creature.cs index a9ba5ee2c..4e1e09cb9 100644 --- a/Source/Game/Entities/Creature/Creature.cs +++ b/Source/Game/Entities/Creature/Creature.cs @@ -1693,7 +1693,7 @@ namespace Game.Entities return false; // This set of checks is should be done only for creatures - if ((IsImmuneToNPC() && !who.HasUnitFlag(UnitFlags.PvpAttackable)) || (IsImmuneToPC() && who.HasUnitFlag(UnitFlags.PvpAttackable))) + if ((IsImmuneToNPC() && !who.HasUnitFlag(UnitFlags.PlayerControlled)) || (IsImmuneToPC() && who.HasUnitFlag(UnitFlags.PlayerControlled))) return false; // Do not attack non-combat pets diff --git a/Source/Game/Entities/Object/WorldObject.cs b/Source/Game/Entities/Object/WorldObject.cs index f83e7d2df..c92a52b98 100644 --- a/Source/Game/Entities/Object/WorldObject.cs +++ b/Source/Game/Entities/Object/WorldObject.cs @@ -2085,9 +2085,9 @@ namespace Game.Entities Unit unit = ToUnit(); Unit targetUnit = target.ToUnit(); - if (unit && unit.HasUnitFlag(UnitFlags.PvpAttackable)) + if (unit && unit.HasUnitFlag(UnitFlags.PlayerControlled)) { - if (targetUnit && targetUnit.HasUnitFlag(UnitFlags.PvpAttackable)) + if (targetUnit && targetUnit.HasUnitFlag(UnitFlags.PlayerControlled)) { if (selfPlayerOwner && targetPlayerOwner) { @@ -2341,24 +2341,24 @@ namespace Game.Entities // ignore immunity flags when assisting if (bySpell == null || (isPositiveSpell && !bySpell.HasAttribute(SpellAttr6.AssistIgnoreImmuneFlag))) { - if (unit != null && !unit.HasUnitFlag(UnitFlags.PvpAttackable) && unitTarget != null && unitTarget.IsImmuneToNPC()) + if (unit != null && !unit.HasUnitFlag(UnitFlags.PlayerControlled) && unitTarget != null && unitTarget.IsImmuneToNPC()) return false; - if (unitTarget != null && !unitTarget.HasUnitFlag(UnitFlags.PvpAttackable) && unit && unit.IsImmuneToNPC()) + if (unitTarget != null && !unitTarget.HasUnitFlag(UnitFlags.PlayerControlled) && unit && unit.IsImmuneToNPC()) return false; if (bySpell == null || !bySpell.HasAttribute(SpellAttr8.AttackIgnoreImmuneToPCFlag)) { - if (unit != null && unit.HasUnitFlag(UnitFlags.PvpAttackable) && unitTarget && unitTarget.IsImmuneToPC()) + if (unit != null && unit.HasUnitFlag(UnitFlags.PlayerControlled) && unitTarget && unitTarget.IsImmuneToPC()) return false; - if (unitTarget != null && unitTarget.HasUnitFlag(UnitFlags.PvpAttackable) && unit && unit.IsImmuneToPC()) + if (unitTarget != null && unitTarget.HasUnitFlag(UnitFlags.PlayerControlled) && unit && unit.IsImmuneToPC()) return false; } } // CvC case - can attack each other only when one of them is hostile - if (unit && !unit.HasUnitFlag(UnitFlags.PvpAttackable) && unitTarget != null && !unitTarget.HasUnitFlag(UnitFlags.PvpAttackable)) + if (unit && !unit.HasUnitFlag(UnitFlags.PlayerControlled) && unitTarget != null && !unitTarget.HasUnitFlag(UnitFlags.PlayerControlled)) return IsHostileTo(target) || target.IsHostileTo(this); // PvP, PvC, CvP case @@ -2366,8 +2366,8 @@ namespace Game.Entities if (IsFriendlyTo(target) || target.IsFriendlyTo(this)) return false; - Player playerAffectingAttacker = unit != null && unit.HasUnitFlag(UnitFlags.PvpAttackable) ? GetAffectingPlayer() : null; - Player playerAffectingTarget = unitTarget != null && unitTarget.HasUnitFlag(UnitFlags.PvpAttackable) ? target.GetAffectingPlayer() : null; + Player playerAffectingAttacker = unit != null && unit.HasUnitFlag(UnitFlags.PlayerControlled) ? GetAffectingPlayer() : null; + Player playerAffectingTarget = unitTarget != null && unitTarget.HasUnitFlag(UnitFlags.PlayerControlled) ? target.GetAffectingPlayer() : null; // Not all neutral creatures can be attacked (even some unfriendly faction does not react aggresive to you, like Sporaggar) if ((playerAffectingAttacker && !playerAffectingTarget) || (!playerAffectingAttacker && playerAffectingTarget)) @@ -2408,7 +2408,7 @@ namespace Game.Entities // PvP case - can't attack when attacker or target are in sanctuary // however, 13850 client doesn't allow to attack when one of the unit's has sanctuary flag and is pvp - if (unitTarget && unitTarget.HasUnitFlag(UnitFlags.PvpAttackable) && unit && unit.HasUnitFlag(UnitFlags.PvpAttackable) && (unitTarget.IsInSanctuary() || unit.IsInSanctuary())) + if (unitTarget && unitTarget.HasUnitFlag(UnitFlags.PlayerControlled) && unit && unit.HasUnitFlag(UnitFlags.PlayerControlled) && (unitTarget.IsInSanctuary() || unit.IsInSanctuary())) return false; // additional checks - only PvP case @@ -2477,7 +2477,7 @@ namespace Game.Entities if (isNegativeSpell || bySpell == null || !bySpell.HasAttribute(SpellAttr6.AssistIgnoreImmuneFlag)) { - if (unit != null && unit.HasUnitFlag(UnitFlags.PvpAttackable)) + if (unit != null && unit.HasUnitFlag(UnitFlags.PlayerControlled)) { if (bySpell == null || !bySpell.HasAttribute(SpellAttr8.AttackIgnoreImmuneToPCFlag)) if (unitTarget != null && unitTarget.IsImmuneToPC()) @@ -2495,10 +2495,10 @@ namespace Game.Entities return false; // PvP case - if (unitTarget != null && unitTarget.HasUnitFlag(UnitFlags.PvpAttackable)) + if (unitTarget != null && unitTarget.HasUnitFlag(UnitFlags.PlayerControlled)) { Player targetPlayerOwner = target.GetAffectingPlayer(); - if (unit != null && unit.HasUnitFlag(UnitFlags.PvpAttackable)) + if (unit != null && unit.HasUnitFlag(UnitFlags.PlayerControlled)) { Player selfPlayerOwner = GetAffectingPlayer(); if (selfPlayerOwner != null && targetPlayerOwner != null) @@ -2519,7 +2519,7 @@ namespace Game.Entities } // PvC case - player can assist creature only if has specific type flags // !target.HasFlag(UNIT_FIELD_FLAGS, UnitFlags.PvpAttackable) && - else if (unit != null && unit.HasUnitFlag(UnitFlags.PvpAttackable)) + else if (unit != null && unit.HasUnitFlag(UnitFlags.PlayerControlled)) { if (bySpell == null || !bySpell.HasAttribute(SpellAttr6.AssistIgnoreImmuneFlag)) { diff --git a/Source/Game/Entities/Pet.cs b/Source/Game/Entities/Pet.cs index 0a53f9432..57edff234 100644 --- a/Source/Game/Entities/Pet.cs +++ b/Source/Game/Entities/Pet.cs @@ -209,14 +209,14 @@ namespace Game.Entities petlevel = owner.GetLevel(); SetClass(Class.Mage); - SetUnitFlags(UnitFlags.PvpAttackable); // this enables popup window (pet dismiss, cancel) + SetUnitFlags(UnitFlags.PlayerControlled); // this enables popup window (pet dismiss, cancel) break; case PetType.Hunter: SetClass(Class.Warrior); SetGender(Gender.None); SetSheath(SheathState.Melee); SetPetFlags(result.Read(9) ? UnitPetFlags.CanBeAbandoned : UnitPetFlags.CanBeRenamed | UnitPetFlags.CanBeAbandoned); - SetUnitFlags(UnitFlags.PvpAttackable); // this enables popup window (pet abandon, cancel) + SetUnitFlags(UnitFlags.PlayerControlled); // this enables popup window (pet abandon, cancel) break; default: if (!IsPetGhoul()) diff --git a/Source/Game/Entities/Player/Player.cs b/Source/Game/Entities/Player/Player.cs index fd631cbbc..4b29fc484 100644 --- a/Source/Game/Entities/Player/Player.cs +++ b/Source/Game/Entities/Player/Player.cs @@ -217,7 +217,7 @@ namespace Game.Entities if ((RealmType)WorldConfig.GetIntValue(WorldCfg.GameType) == RealmType.PVP || (RealmType)WorldConfig.GetIntValue(WorldCfg.GameType) == RealmType.RPPVP) { AddPvpFlag(UnitPVPStateFlags.PvP); - AddUnitFlag(UnitFlags.PvpAttackable); + AddUnitFlag(UnitFlags.PlayerControlled); } AddUnitFlag2(UnitFlags2.RegeneratePower); @@ -5814,7 +5814,7 @@ namespace Game.Entities UnitFlags.Stunned | UnitFlags.InCombat | UnitFlags.Disarmed | UnitFlags.Confused | UnitFlags.Fleeing | UnitFlags.NotSelectable | UnitFlags.Skinnable | UnitFlags.Mount | UnitFlags.TaxiFlight); - AddUnitFlag(UnitFlags.PvpAttackable); // must be set + AddUnitFlag(UnitFlags.PlayerControlled); // must be set AddUnitFlag2(UnitFlags2.RegeneratePower);// must be set diff --git a/Source/Game/Entities/Unit/Unit.Combat.cs b/Source/Game/Entities/Unit/Unit.Combat.cs index 0491cd243..c2e92ace2 100644 --- a/Source/Game/Entities/Unit/Unit.Combat.cs +++ b/Source/Game/Entities/Unit/Unit.Combat.cs @@ -517,7 +517,7 @@ namespace Game.Entities if (attType != WeaponAttackType.BaseAttack && attType != WeaponAttackType.OffAttack) return; - if (IsTypeId(TypeId.Unit) && !HasUnitFlag(UnitFlags.PlayerControlled) && !HasUnitFlag2(UnitFlags2.DisableTurn)) + if (IsTypeId(TypeId.Unit) && !HasUnitFlag(UnitFlags.Possessed) && !HasUnitFlag2(UnitFlags2.DisableTurn)) SetFacingToObject(victim, false); // update client side facing to face the target (prevents visual glitches when casting untargeted spells) // melee attack spell casted at main hand attack only - no normal melee dmg dealt @@ -600,7 +600,7 @@ namespace Game.Entities if (attType != WeaponAttackType.BaseAttack && attType != WeaponAttackType.OffAttack) return; // ignore ranged case - if (IsTypeId(TypeId.Unit) && !HasUnitFlag(UnitFlags.PlayerControlled) && !HasUnitFlag2(UnitFlags2.DisableTurn)) + if (IsTypeId(TypeId.Unit) && !HasUnitFlag(UnitFlags.Possessed) && !HasUnitFlag2(UnitFlags2.DisableTurn)) SetFacingToObject(victim, false); // update client side facing to face the target (prevents visual glitches when casting untargeted spells) CalcDamageInfo damageInfo = new(); diff --git a/Source/Game/Entities/Unit/Unit.Movement.cs b/Source/Game/Entities/Unit/Unit.Movement.cs index f518a2cca..002376230 100644 --- a/Source/Game/Entities/Unit/Unit.Movement.cs +++ b/Source/Game/Entities/Unit/Unit.Movement.cs @@ -54,7 +54,7 @@ namespace Game.Entities // Mirror client behavior, if this method returns false then client will not use swimming animation and for players will apply gravity as if there was no water if (HasUnitFlag(UnitFlags.CannotSwim)) return false; - if (HasUnitFlag(UnitFlags.PvpAttackable)) // is player + if (HasUnitFlag(UnitFlags.PlayerControlled)) // is player return true; if (HasUnitFlag2((UnitFlags2)0x1000000)) return false; diff --git a/Source/Game/Entities/Unit/Unit.Pets.cs b/Source/Game/Entities/Unit/Unit.Pets.cs index c83862e87..2387616a8 100644 --- a/Source/Game/Entities/Unit/Unit.Pets.cs +++ b/Source/Game/Entities/Unit/Unit.Pets.cs @@ -147,7 +147,7 @@ namespace Game.Entities if (IsTypeId(TypeId.Player)) { minion.m_ControlledByPlayer = true; - minion.AddUnitFlag(UnitFlags.PvpAttackable); + minion.AddUnitFlag(UnitFlags.PlayerControlled); } // Can only have one pet. If a new one is summoned, dismiss the old one. @@ -406,12 +406,12 @@ namespace Game.Entities switch (type) { case CharmType.Vehicle: - AddUnitFlag(UnitFlags.PlayerControlled); + AddUnitFlag(UnitFlags.Possessed); playerCharmer.SetClientControl(this, true); playerCharmer.VehicleSpellInitialize(); break; case CharmType.Possess: - AddUnitFlag(UnitFlags.PlayerControlled); + AddUnitFlag(UnitFlags.Possessed); charmer.AddUnitFlag(UnitFlags.RemoveClientControl); playerCharmer.SetClientControl(this, true); playerCharmer.PossessSpellInitialize(); @@ -507,14 +507,14 @@ namespace Game.Entities case CharmType.Vehicle: playerCharmer.SetClientControl(this, false); playerCharmer.SetClientControl(charmer, true); - RemoveUnitFlag(UnitFlags.PlayerControlled); + RemoveUnitFlag(UnitFlags.Possessed); break; case CharmType.Possess: ClearUnitState(UnitState.Possessed); playerCharmer.SetClientControl(this, false); playerCharmer.SetClientControl(charmer, true); charmer.RemoveUnitFlag(UnitFlags.RemoveClientControl); - RemoveUnitFlag(UnitFlags.PlayerControlled); + RemoveUnitFlag(UnitFlags.Possessed); break; case CharmType.Charm: if (IsTypeId(TypeId.Unit) && charmer.GetClass() == Class.Warlock) @@ -594,7 +594,7 @@ namespace Game.Entities charm.m_ControlledByPlayer = true; // @todo maybe we can use this flag to check if controlled by player - charm.AddUnitFlag(UnitFlags.PvpAttackable); + charm.AddUnitFlag(UnitFlags.PlayerControlled); } else charm.m_ControlledByPlayer = false; @@ -635,19 +635,19 @@ namespace Game.Entities if (charm.IsTypeId(TypeId.Player)) { charm.m_ControlledByPlayer = true; - charm.AddUnitFlag(UnitFlags.PvpAttackable); + charm.AddUnitFlag(UnitFlags.PlayerControlled); charm.ToPlayer().UpdatePvPState(); } else if (player) { charm.m_ControlledByPlayer = true; - charm.AddUnitFlag(UnitFlags.PvpAttackable); + charm.AddUnitFlag(UnitFlags.PlayerControlled); charm.SetPvpFlags(player.GetPvpFlags()); } else { charm.m_ControlledByPlayer = false; - charm.RemoveUnitFlag(UnitFlags.PvpAttackable); + charm.RemoveUnitFlag(UnitFlags.PlayerControlled); charm.SetPvpFlags(UnitPVPStateFlags.None); } @@ -791,7 +791,7 @@ namespace Game.Entities pet.SetCreatedBySpell(spell_id); if (IsTypeId(TypeId.Player)) - pet.AddUnitFlag(UnitFlags.PvpAttackable); + pet.AddUnitFlag(UnitFlags.PlayerControlled); if (!pet.InitStatsForLevel(level)) { diff --git a/Source/Game/Entities/Unit/Unit.cs b/Source/Game/Entities/Unit/Unit.cs index a992de8e8..830e8bc6e 100644 --- a/Source/Game/Entities/Unit/Unit.cs +++ b/Source/Game/Entities/Unit/Unit.cs @@ -2843,11 +2843,11 @@ namespace Game.Entities { List toEnd = new(); foreach (var pair in m_combatManager.GetPvECombatRefs()) - if (pair.Value.GetOther(this).HasUnitFlag(UnitFlags.PvpAttackable)) + if (pair.Value.GetOther(this).HasUnitFlag(UnitFlags.PlayerControlled)) toEnd.Add(pair.Value); foreach (var pair in m_combatManager.GetPvPCombatRefs()) - if (pair.Value.GetOther(this).HasUnitFlag(UnitFlags.PvpAttackable)) + if (pair.Value.GetOther(this).HasUnitFlag(UnitFlags.PlayerControlled)) toEnd.Add(pair.Value); foreach (CombatReference refe in toEnd) @@ -2877,11 +2877,11 @@ namespace Game.Entities { List toEnd = new(); foreach (var pair in m_combatManager.GetPvECombatRefs()) - if (!pair.Value.GetOther(this).HasUnitFlag(UnitFlags.PvpAttackable)) + if (!pair.Value.GetOther(this).HasUnitFlag(UnitFlags.PlayerControlled)) toEnd.Add(pair.Value); foreach (var pair in m_combatManager.GetPvPCombatRefs()) - if (!pair.Value.GetOther(this).HasUnitFlag(UnitFlags.PvpAttackable)) + if (!pair.Value.GetOther(this).HasUnitFlag(UnitFlags.PlayerControlled)) toEnd.Add(pair.Value); foreach (CombatReference refe in toEnd) diff --git a/Source/Game/Spells/Auras/AuraEffect.cs b/Source/Game/Spells/Auras/AuraEffect.cs index 34af036f1..faa8e63df 100644 --- a/Source/Game/Spells/Auras/AuraEffect.cs +++ b/Source/Game/Spells/Auras/AuraEffect.cs @@ -4543,13 +4543,13 @@ namespace Game.Spells { target.SetFaction((uint)GetMiscValue()); if (target.IsTypeId(TypeId.Player)) - target.RemoveUnitFlag(UnitFlags.PvpAttackable); + target.RemoveUnitFlag(UnitFlags.PlayerControlled); } else { target.RestoreFaction(); if (target.IsTypeId(TypeId.Player)) - target.AddUnitFlag(UnitFlags.PvpAttackable); + target.AddUnitFlag(UnitFlags.PlayerControlled); } } diff --git a/Source/Game/Spells/Spell.cs b/Source/Game/Spells/Spell.cs index afd8bb37d..e35a3060d 100644 --- a/Source/Game/Spells/Spell.cs +++ b/Source/Game/Spells/Spell.cs @@ -1935,7 +1935,7 @@ namespace Game.Spells if (m_originalCaster && unit.IsInCombat() && m_spellInfo.HasInitialAggro()) { - if (m_originalCaster.HasUnitFlag(UnitFlags.PvpAttackable)) // only do explicit combat forwarding for PvP enabled units + if (m_originalCaster.HasUnitFlag(UnitFlags.PlayerControlled)) // only do explicit combat forwarding for PvP enabled units m_originalCaster.GetCombatManager().InheritCombatStatesFrom(unit); // for creature v creature combat, the threat forward does it for us unit.GetThreatManager().ForwardThreatForAssistingMe(m_originalCaster, 0.0f, null, true); } @@ -2337,7 +2337,7 @@ namespace Game.Spells } // focus if not controlled creature - if (m_caster.GetTypeId() == TypeId.Unit && !m_caster.ToUnit().HasUnitFlag(UnitFlags.PlayerControlled)) + if (m_caster.GetTypeId() == TypeId.Unit && !m_caster.ToUnit().HasUnitFlag(UnitFlags.Possessed)) { if (!(m_spellInfo.IsNextMeleeSwingSpell() || IsAutoRepeat())) { @@ -2600,7 +2600,7 @@ namespace Game.Spells // if the spell allows the creature to turn while casting, then adjust server-side orientation to face the target now // client-side orientation is handled by the client itself, as the cast target is targeted due to Creature::FocusTarget - if (m_caster.IsTypeId(TypeId.Unit) && !m_caster.ToUnit().HasUnitFlag(UnitFlags.PlayerControlled)) + if (m_caster.IsTypeId(TypeId.Unit) && !m_caster.ToUnit().HasUnitFlag(UnitFlags.Possessed)) { if (!m_spellInfo.HasAttribute(SpellAttr5.DontTurnDuringCast)) { diff --git a/Source/Scripts/World/NpcSpecial.cs b/Source/Scripts/World/NpcSpecial.cs index 1c8c7758d..d281c7a8d 100644 --- a/Source/Scripts/World/NpcSpecial.cs +++ b/Source/Scripts/World/NpcSpecial.cs @@ -1021,7 +1021,7 @@ namespace Scripts.World.NpcSpecial if (Patient) { //303, this flag appear to be required for client side item.spell to work (TARGET_SINGLE_FRIEND) - Patient.AddUnitFlag(UnitFlags.PvpAttackable); + Patient.AddUnitFlag(UnitFlags.PlayerControlled); Patients.Add(Patient.GetGUID()); ((npc_injured_patient)Patient.GetAI()).DoctorGUID = me.GetGUID();