76 if (!victim || victim ==
this)
176 if (playerPet && playerPet->
IsAlive())
203 creature->SetNoCallAssistance(
false);
205 if (creature->HasSearchedAssistance())
207 creature->SetNoSearchAssistance(
false);
234 (*itr)->CombatStop(includingCast);
243 if ((*itr)->isAttackingPlayer())
249 if (summon->isAttackingPlayer())
260 if (!(*iter)->AttackStop())
262 SF_LOG_ERROR(
"entities.unit",
"WORLD: Unit has an attacker that isn't attacking it!");
281 if (((
Player const*)eOwner)->duel->opponent == myOwner)
314 if (me && who->
IsPvP()
344 if ((
IsAIEnabled && creature->AI()->IsEscorted()) ||
354 creature->AI()->EnterCombat(enemy);
357 if (creature->GetFormation())
358 creature->GetFormation()->MemberAttackStart(creature, enemy);
374 (*itr)->SetInCombatState(PvP, enemy);
381 player->CastSpell(player, 97709,
true);
393 if (creature->GetCreatureTemplate() && creature->GetCreatureTemplate()->unit_flags &
UNIT_FLAG_IMMUNE_TO_PC)
400 if (creature->IsPet())
420 if (!player || (attackedPlayer && (attackedPlayer == player || (player->
duel && player->
duel->
opponent == attackedPlayer))))
#define SF_LOG_ERROR(filterType__,...)
@ PLAYER_FLAGS_CONTESTED_PVP
@ CREATURE_TYPEFLAGS_MOUNTED_COMBAT
@ SPELL_AURA_WORGEN_ALTERED_FORM
@ SPELL_AURA_ENABLE_WORGER_ALTERED_FORM
@ SPELL_AURA_MOD_UNATTACKABLE
@ AURA_INTERRUPT_FLAG_ENTER_PVP_COMBAT
@ UNIT_STATE_ATTACK_PLAYER
@ UNIT_STATE_MELEE_ATTACKING
@ UNIT_FLAG_PET_IN_COMBAT
@ OBJECT_FIELD_DYNAMIC_FLAGS
@ PLAYER_FIELD_PLAYER_FLAGS
virtual void OwnerAttacked(Unit *)
virtual void AttackedBy(Unit *)
bool HasReactState(ReactStates state) const
void SendAIReaction(AiReaction reactionType)
bool IsInEvadeMode() const
void SetFlag(uint16 index, uint32 newFlag)
void RemoveFlag(uint16 index, uint32 oldFlag)
bool HasFlag(uint16 index, uint32 flag) const
void SetUInt32Value(uint16 index, uint32 value)
void SendAttackSwingCancelAttack()
void UpdatePotionCooldown(Spell *spell=NULL)
bool IsGameMaster() const
void UpdatePvP(bool state, bool override=false)
void SetContestedPvPTimer(uint32 newTime)
virtual void AttackStart(Unit *)
void ClearUnitState(uint32 f)
void CombatStop(bool includingCast=false)
virtual void SetTarget(uint64)=0
void SendMeleeAttackStop(Unit *victim=NULL)
void UpdateObjectVisibility(bool forced=true) override
void SetContestedPvP(Player *attackedPlayer=NULL)
bool IsNonMeleeSpellCasted(bool withDelayed, bool skipChanneled=false, bool skipAutorepeat=false, bool isAutoshoot=false, bool skipInstant=true) const
Unit * GetCharmerOrOwnerOrSelf() const
void RemoveAurasWithInterruptFlags(uint32 flag, uint32 except=0)
void AddThreat(Unit *victim, float fThreat, SpellSchoolMask schoolMask=SPELL_SCHOOL_MASK_NORMAL, SpellInfo const *threatSpell=NULL)
Player * GetCharmerOrOwnerPlayerOrPlayerItself() const
Unit * getAttackerForHelper() const
void SendMeleeAttackStart(Unit *victim)
void _removeAttacker(Unit *pAttacker)
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
bool haveOffhandWeapon() const
MotionMaster * GetMotionMaster()
void _addAttacker(Unit *pAttacker)
void SetInCombatState(bool PvP, Unit *enemy=NULL)
uint64 m_SummonSlot[MAX_SUMMON_SLOT]
bool isAttackingPlayer() const
void CombatStart(Unit *target, bool initialAggro=true)
bool IsStandState() const
void AddUnitState(uint32 f)
static Creature * GetCreature(WorldObject &object, uint64 guid)
bool Attack(Unit *victim, bool meleeAttack)
bool HasAuraType(AuraType auraType) const
void RemoveAurasByType(AuraType auraType, uint64 casterGUID=0, Aura *except=NULL, bool negative=true, bool positive=true)
float GetSpeedRate(UnitMoveType mtype) const
void SetSpeed(UnitMoveType mtype, float rate, bool forced=false)
bool HasUnitState(const uint32 f) const
void resetAttackTimer(WeaponAttackType type=WeaponAttackType::BASE_ATTACK)
void RemoveAllAttackers()
void UpdateSpeed(UnitMoveType mtype, bool forced)
void SetStandState(uint8 state)
void SetInCombatWith(Unit *enemy)
void InterruptSpell(CurrentSpellTypes spellType, bool withDelayed=true, bool withInstant=true)
void CombatStopWithPets(bool includingCast=false)
float GetPositionZ() const
float GetOrientation() const
float GetPositionX() const
float GetPositionY() const