feat(Core/Unit): New helpers for UnitFlag and UnitFlag2 (#11227)
This commit is contained in:
parent
54c06eb72e
commit
856aed6fc6
243 changed files with 1205 additions and 1191 deletions
|
|
@ -124,7 +124,7 @@ class boss_anub_arak : public CreatureScript
|
|||
void Reset() override
|
||||
{
|
||||
BossAI::Reset();
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
|
||||
instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
|
||||
}
|
||||
|
||||
|
|
@ -194,7 +194,7 @@ class boss_anub_arak : public CreatureScript
|
|||
Talk(SAY_SUBMERGE);
|
||||
me->CastSpell(me, SPELL_IMPALE_PERIODIC, true);
|
||||
me->CastSpell(me, SPELL_SUBMERGE, false);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
|
||||
|
||||
events.DelayEvents(46000, 0);
|
||||
events.ScheduleEvent(EVENT_EMERGE, 45000);
|
||||
|
|
@ -212,7 +212,7 @@ class boss_anub_arak : public CreatureScript
|
|||
me->CastSpell(me, SPELL_EMERGE, true);
|
||||
me->RemoveAura(SPELL_SUBMERGE);
|
||||
me->RemoveAura(SPELL_IMPALE_PERIODIC);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case EVENT_SUMMON_ASSASSINS:
|
||||
SummonHelpers(509.32f, 247.42f, 239.48f, SPELL_SUMMON_ASSASSIN);
|
||||
|
|
@ -230,7 +230,7 @@ class boss_anub_arak : public CreatureScript
|
|||
break;
|
||||
}
|
||||
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -237,8 +237,8 @@ struct npc_amanitar_mushrooms : public ScriptedAI
|
|||
SetCombatMovement(false);
|
||||
|
||||
//TODO: this prolly needs to be done in database
|
||||
pCreature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
pCreature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
pCreature->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
pCreature->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
pCreature->SetRegeneratingHealth(false);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ struct boss_volazj : public BossAI
|
|||
insanityTimes = 0;
|
||||
insanityPhase = false;
|
||||
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetControlled(false, UNIT_STATE_STUNNED);
|
||||
ResetPlayersPhaseMask();
|
||||
instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_QUICK_DEMISE_START_EVENT);
|
||||
|
|
@ -127,7 +127,7 @@ struct boss_volazj : public BossAI
|
|||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
_JustDied();
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetControlled(false, UNIT_STATE_STUNNED);
|
||||
ResetPlayersPhaseMask();
|
||||
|
||||
|
|
@ -223,7 +223,7 @@ struct boss_volazj : public BossAI
|
|||
}
|
||||
|
||||
insanityPhase = false;
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetControlled(false, UNIT_STATE_STUNNED);
|
||||
me->RemoveAurasDueToSpell(INSANITY_VISUAL);
|
||||
}
|
||||
|
|
@ -376,7 +376,7 @@ class spell_herald_volzaj_insanity : public SpellScript
|
|||
caster->CastSpell(caster, SPELL_WHISPER_INSANITY, true);
|
||||
caster->RemoveAllAuras();
|
||||
caster->CastSpell(caster, INSANITY_VISUAL, true);
|
||||
caster->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
caster->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
caster->SetControlled(true, UNIT_STATE_STUNNED);
|
||||
|
||||
// Handle phase effect
|
||||
|
|
|
|||
|
|
@ -165,7 +165,7 @@ struct boss_jedoga_shadowseeker : public BossAI
|
|||
void Reset() override
|
||||
{
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->AddUnitState(UNIT_STATE_NO_ENVIRONMENT_UPD);
|
||||
me->SetDisableGravity(true);
|
||||
me->SetHover(true);
|
||||
|
|
@ -186,7 +186,7 @@ struct boss_jedoga_shadowseeker : public BossAI
|
|||
summon->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, false);
|
||||
summon->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_MAGIC, false);
|
||||
summon->RemoveAurasDueToSpell(SPELL_WHITE_SPHERE);
|
||||
summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
|
||||
summon->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
|
||||
summon->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
oocSummons.push_back(summon->GetGUID());
|
||||
}
|
||||
|
|
@ -254,7 +254,7 @@ struct boss_jedoga_shadowseeker : public BossAI
|
|||
{
|
||||
summon->GetMotionMaster()->MovePoint(POINT_INITIAL, VolunteerSpotPositions[i][1]);
|
||||
summon->SetReactState(REACT_PASSIVE);
|
||||
summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC );
|
||||
summon->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC );
|
||||
summons.Summon(summon);
|
||||
}
|
||||
}
|
||||
|
|
@ -294,7 +294,7 @@ struct boss_jedoga_shadowseeker : public BossAI
|
|||
me->InterruptNonMeleeSpells(false);
|
||||
me->AttackStop();
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
|
||||
|
||||
events.SetPhase(PHASE_RITUAL);
|
||||
events.ScheduleEvent(EVENT_JEDOGA_PREPARE_RITUAL, 1000, 0, PHASE_RITUAL);
|
||||
|
|
@ -356,7 +356,7 @@ struct boss_jedoga_shadowseeker : public BossAI
|
|||
{
|
||||
me->ClearUnitState(UNIT_STATE_NO_ENVIRONMENT_UPD);
|
||||
ReschedulleCombatEvents();
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
|
||||
me->RemoveAurasDueToSpell(SPELL_SPHERE_VISUAL);
|
||||
|
|
@ -583,7 +583,7 @@ struct npc_twilight_volunteer : public ScriptedAI
|
|||
DoCastSelf(SPELL_ACTIVATE_INITIATE, true);
|
||||
me->RemoveAurasDueToSpell(SPELL_WHITE_SPHERE);
|
||||
me->SetControlled(false, UNIT_STATE_STUNNED);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
|
||||
Talk(SAY_CHOSEN);
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@ struct boss_taldaram : public BossAI
|
|||
// Event not started
|
||||
if (instance->GetData(DATA_TELDRAM_SPHERE1) != DONE || instance->GetData(DATA_TELDRAM_SPHERE2) != DONE)
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetDisableGravity(true);
|
||||
me->SetHover(true);
|
||||
if (!me->HasAura(SPELL_BEAM_VISUAL))
|
||||
|
|
@ -260,7 +260,7 @@ struct boss_taldaram : public BossAI
|
|||
me->SetDisableGravity(false);
|
||||
me->SetHover(false);
|
||||
me->RemoveAllAuras();
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->UpdatePosition(me->GetHomePosition(), true);
|
||||
}
|
||||
summons.DespawnEntry(NPC_JEDOGA_CONTROLLER);
|
||||
|
|
@ -274,7 +274,7 @@ struct boss_taldaram : public BossAI
|
|||
me->SetDisableGravity(false);
|
||||
me->SetHover(false);
|
||||
me->RemoveAllAuras();
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -310,7 +310,7 @@ public:
|
|||
continue;
|
||||
}
|
||||
|
||||
dragon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
dragon->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
dragon->SetFullHealth();
|
||||
|
||||
++dragonsCount;
|
||||
|
|
@ -729,7 +729,7 @@ struct boss_sartharion_dragonAI : public BossAI
|
|||
events.Reset();
|
||||
ClearInstance();
|
||||
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetSpeed(MOVE_FLIGHT, 1.0f);
|
||||
me->SetCanFly(false);
|
||||
me->ResetLootMode();
|
||||
|
|
@ -790,7 +790,7 @@ struct boss_sartharion_dragonAI : public BossAI
|
|||
}
|
||||
}
|
||||
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetInCombatWithZone();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ public:
|
|||
{
|
||||
BossAI::Reset();
|
||||
if (instance->GetBossState(DATA_SAVIANA_RAGEFIRE) == DONE && instance->GetBossState(DATA_BALTHARUS_THE_WARBORN) == DONE)
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* who) override
|
||||
|
|
|
|||
|
|
@ -1155,7 +1155,7 @@ public:
|
|||
|
||||
void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*handle*/)
|
||||
{
|
||||
GetTarget()->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
GetTarget()->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
GetTarget()->ToCreature()->SetReactState(REACT_DEFENSIVE);
|
||||
GetTarget()->GetMotionMaster()->Clear();
|
||||
GetTarget()->getThreatMgr().clearReferences();
|
||||
|
|
@ -1165,7 +1165,7 @@ public:
|
|||
|
||||
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*handle*/)
|
||||
{
|
||||
GetTarget()->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
GetTarget()->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
GetTarget()->ToCreature()->SetReactState(REACT_DEFENSIVE);
|
||||
GetTarget()->GetMotionMaster()->Clear();
|
||||
GetTarget()->getThreatMgr().clearReferences();
|
||||
|
|
|
|||
|
|
@ -180,7 +180,7 @@ public:
|
|||
case DATA_BALTHARUS_THE_WARBORN:
|
||||
if (GetBossState(DATA_BALTHARUS_THE_WARBORN) == DONE && GetBossState(DATA_SAVIANA_RAGEFIRE) == DONE)
|
||||
if (Creature* zarithrian = instance->GetCreature(GeneralZarithrianGUID))
|
||||
zarithrian->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
zarithrian->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case DATA_GENERAL_ZARITHRIAN:
|
||||
if (state == DONE)
|
||||
|
|
|
|||
|
|
@ -158,7 +158,7 @@ public:
|
|||
me->getThreatMgr().clearReferences();
|
||||
me->SetRegeneratingHealth(false);
|
||||
_EnterEvadeMode();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if( pInstance )
|
||||
pInstance->SetData(BOSS_ARGENT_CHALLENGE, DONE);
|
||||
}
|
||||
|
|
@ -305,7 +305,7 @@ public:
|
|||
me->getThreatMgr().clearReferences();
|
||||
me->SetRegeneratingHealth(false);
|
||||
_EnterEvadeMode();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if( pInstance )
|
||||
{
|
||||
pInstance->SetData(BOSS_ARGENT_CHALLENGE, DONE);
|
||||
|
|
@ -439,7 +439,7 @@ public:
|
|||
|
||||
break;
|
||||
case EVENT_MEMORY_START_ATTACK:
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if( Unit* target = me->SelectNearestTarget(200.0f) )
|
||||
{
|
||||
AttackStart(target);
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ public:
|
|||
summons.DespawnAll();
|
||||
Phase = 1;
|
||||
me->SetDisplayId(me->GetNativeDisplayId());
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
if( pInstance )
|
||||
pInstance->SetData(BOSS_BLACK_KNIGHT, NOT_STARTED);
|
||||
|
|
@ -136,7 +136,7 @@ public:
|
|||
|
||||
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override
|
||||
{
|
||||
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
|
||||
if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
|
||||
{
|
||||
damage = 0;
|
||||
return;
|
||||
|
|
@ -147,15 +147,15 @@ public:
|
|||
damage = 0;
|
||||
me->SetHealth(me->GetMaxHealth());
|
||||
events.Reset();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveAllAuras();
|
||||
me->SetControlled(true, UNIT_STATE_STUNNED);
|
||||
me->CastSpell(me, SPELL_BK_GHOUL_EXPLODE, true);
|
||||
summons.clear();
|
||||
|
||||
me->CastSpell(me, SPELL_BK_FEIGN_DEATH, true);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
me->AddUnitState(UNIT_STATE_DIED);
|
||||
}
|
||||
|
|
@ -193,11 +193,11 @@ public:
|
|||
{
|
||||
case SPELL_BLACK_KNIGHT_RES:
|
||||
me->SetHealth(me->GetMaxHealth());
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetControlled(false, UNIT_STATE_STUNNED);
|
||||
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
||||
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
me->ClearUnitState(UNIT_STATE_DIED);
|
||||
|
||||
|
|
@ -414,7 +414,7 @@ public:
|
|||
{
|
||||
if (spell->Id == SPELL_BK_GHOUL_EXPLODE)
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_STUNNED);
|
||||
me->CastSpell(me, SPELL_EXPLODE, false);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -169,13 +169,13 @@ public:
|
|||
|
||||
if( apply )
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetSpeed(MOVE_RUN, 2.0f, false);
|
||||
me->CastSpell(me, SPELL_TRAMPLE_AURA, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->StopMoving();
|
||||
me->RemoveAura(SPELL_TRAMPLE_AURA);
|
||||
}
|
||||
|
|
@ -361,7 +361,7 @@ public:
|
|||
BossOrder = 0;
|
||||
NewMountGUID.Clear();
|
||||
me->CastSpell(me, SPELL_BOSS_DEFEND_PERIODIC, true);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
|
||||
me->SetUnitFlag(UNIT_FLAG_PACIFIED);
|
||||
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_MOUNT_CHARGE, urand(2500, 4000));
|
||||
|
|
@ -401,7 +401,7 @@ public:
|
|||
{
|
||||
DoAction(1);
|
||||
DoAction(2);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 0);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
}
|
||||
|
|
@ -487,9 +487,9 @@ public:
|
|||
NewMountGUID.Clear();
|
||||
me->SetHealth(me->GetMaxHealth());
|
||||
me->SetRegeneratingHealth(true);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_PACIFIED);
|
||||
me->SetSpeed(MOVE_RUN, 1.0f, false);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
me->RemoveAllAuras();
|
||||
AddCreatureAddonAuras();
|
||||
|
|
@ -557,7 +557,7 @@ public:
|
|||
me->StopMoving();
|
||||
me->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, 0);
|
||||
me->SetRegeneratingHealth(false);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
if( pInstance )
|
||||
{
|
||||
|
|
@ -584,7 +584,7 @@ public:
|
|||
me->CombatStop(true);
|
||||
me->GetMotionMaster()->Clear();
|
||||
me->SetRegeneratingHealth(false);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if( pInstance )
|
||||
pInstance->SetData(DATA_GRAND_CHAMPION_DIED, BossOrder);
|
||||
}
|
||||
|
|
@ -627,7 +627,7 @@ public:
|
|||
events.ScheduleEvent(EVENT_SHIELD_BREAKER, urand(5000, 8000));
|
||||
events.ScheduleEvent(EVENT_THRUST, urand(3000, 5000));
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if( Unit* target = me->SelectNearestTarget(200.0f) )
|
||||
AttackStart(target);
|
||||
DoZoneInCombat();
|
||||
|
|
@ -720,7 +720,7 @@ public:
|
|||
{
|
||||
me->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
NewMountGUID = mount->GetGUID();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->GetMotionMaster()->MovePoint(7, *mount);
|
||||
events.RepeatEvent(200);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -836,7 +836,7 @@ public:
|
|||
if( Creature* c = instance->GetCreature(NPC_GrandChampionMinionsGUID[1][i]) )
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if( Unit* target = c->SelectNearestTarget(200.0f) )
|
||||
c->AI()->AttackStart(target);
|
||||
c->AI()->DoZoneInCombat();
|
||||
|
|
@ -862,7 +862,7 @@ public:
|
|||
if( Creature* c = instance->GetCreature(NPC_GrandChampionMinionsGUID[0][i]) )
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if( Unit* target = c->SelectNearestTarget(200.0f) )
|
||||
c->AI()->AttackStart(target);
|
||||
c->AI()->DoZoneInCombat();
|
||||
|
|
@ -887,7 +887,7 @@ public:
|
|||
if( Creature* c = instance->GetCreature(NPC_GrandChampionMinionsGUID[2][i]) )
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if( Unit* target = c->SelectNearestTarget(200.0f) )
|
||||
c->AI()->AttackStart(target);
|
||||
c->AI()->DoZoneInCombat();
|
||||
|
|
@ -912,7 +912,7 @@ public:
|
|||
if( Creature* c = instance->GetCreature(NPC_GrandChampionGUID[i]) )
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if( Unit* target = c->SelectNearestTarget(200.0f) )
|
||||
c->AI()->AttackStart(target);
|
||||
c->AI()->DoZoneInCombat();
|
||||
|
|
@ -949,7 +949,7 @@ public:
|
|||
if( Creature* c = instance->GetCreature(NPC_GrandChampionGUID[i]) )
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if( Unit* target = c->SelectNearestTarget(200.0f) )
|
||||
c->AI()->AttackStart(target);
|
||||
c->AI()->DoZoneInCombat();
|
||||
|
|
@ -1053,7 +1053,7 @@ public:
|
|||
if( Creature* c = instance->GetCreature(NPC_ArgentSoldierGUID[i][j]) )
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
//c->AI()->DoZoneInCombat();
|
||||
}
|
||||
if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) )
|
||||
|
|
@ -1074,7 +1074,7 @@ public:
|
|||
if( Creature* boss = instance->GetCreature(NPC_ArgentChampionGUID) )
|
||||
{
|
||||
boss->SetReactState(REACT_AGGRESSIVE);
|
||||
boss->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
boss->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if( Unit* target = boss->SelectNearestTarget(200.0f) )
|
||||
boss->AI()->AttackStart(target);
|
||||
boss->AI()->DoZoneInCombat();
|
||||
|
|
@ -1161,7 +1161,7 @@ public:
|
|||
bk->SetHomePosition(*bk);
|
||||
bk->SetFacingToObject(announcer);
|
||||
announcer->SetFacingToObject(bk);
|
||||
announcer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
announcer->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
bk->AddAura(68306, announcer); // spell has attribute player only
|
||||
if( Creature* tirion = instance->GetCreature(NPC_TirionGUID) )
|
||||
tirion->AI()->Talk(TEXT_BK_MEANING);
|
||||
|
|
@ -1207,7 +1207,7 @@ public:
|
|||
if( Creature* bk = instance->GetCreature(NPC_BlackKnightGUID) )
|
||||
{
|
||||
bk->SetReactState(REACT_AGGRESSIVE);
|
||||
bk->SetUInt32Value(UNIT_FIELD_FLAGS, 0);
|
||||
bk->ReplaceAllUnitFlags(UNIT_FLAG_NONE);
|
||||
if( Unit* target = bk->SelectNearestTarget(200.0f) )
|
||||
bk->AI()->AttackStart(target);
|
||||
bk->AI()->DoZoneInCombat();
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ public:
|
|||
return;
|
||||
if( pInstance->GetData(DATA_TEAMID_IN_INSTANCE) == TEAM_ALLIANCE )
|
||||
me->UpdateEntry(NPC_ARELAS);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); // removed during black knight scene
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); // removed during black knight scene
|
||||
}
|
||||
|
||||
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override
|
||||
|
|
|
|||
|
|
@ -176,7 +176,7 @@ public:
|
|||
void Reset() override
|
||||
{
|
||||
me->SetStandState(UNIT_STAND_STATE_SUBMERGED);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
summons.DespawnAll();
|
||||
for( uint8 i = 0; i < 10; ++i )
|
||||
{
|
||||
|
|
@ -185,7 +185,7 @@ public:
|
|||
if( Creature* c = me->SummonCreature(NPC_SCARAB, AnubLocs[0].GetPositionX() + cos(angle) * dist, AnubLocs[0].GetPositionY() + std::sin(angle) * dist, AnubLocs[0].GetPositionZ(), 0.0f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 5000) )
|
||||
{
|
||||
c->SetFaction(FACTION_PREY);
|
||||
c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->GetMotionMaster()->MoveRandom(15.0f);
|
||||
}
|
||||
}
|
||||
|
|
@ -251,7 +251,7 @@ public:
|
|||
if( me->HasUnitState(UNIT_STATE_CASTING) )
|
||||
return;
|
||||
|
||||
if( !bPhase3 && HealthBelowPct(30) && !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE) && !me->HasAura(SPELL_SUBMERGE) && !me->HasAura(SPELL_EMERGE) )
|
||||
if( !bPhase3 && HealthBelowPct(30) && !me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE) && !me->HasAura(SPELL_SUBMERGE) && !me->HasAura(SPELL_EMERGE) )
|
||||
{
|
||||
bPhase3 = true;
|
||||
events.CancelEvent(EVENT_SUBMERGE);
|
||||
|
|
@ -313,7 +313,7 @@ public:
|
|||
break;
|
||||
case EVENT_SUBMERGE:
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
bool berserk = me->HasAura(SPELL_BERSERK);
|
||||
me->RemoveAllAuras();
|
||||
if (berserk)
|
||||
|
|
@ -348,7 +348,7 @@ public:
|
|||
case EVENT_EMERGE_2:
|
||||
{
|
||||
Talk(SAY_EMERGE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->setAttackTimer(BASE_ATTACK, 3000);
|
||||
me->RemoveAura(SPELL_SUBMERGE);
|
||||
me->CastSpell(me, SPELL_EMERGE, false);
|
||||
|
|
@ -393,7 +393,7 @@ public:
|
|||
{
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if( pInstance )
|
||||
pInstance->SetData(TYPE_FAILED, 1);
|
||||
}
|
||||
|
|
@ -408,7 +408,7 @@ public:
|
|||
|
||||
if (!bIntro)
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if( !me->IsInCombat() )
|
||||
Talk(SAY_INTRO);
|
||||
bIntro = true;
|
||||
|
|
@ -507,7 +507,7 @@ public:
|
|||
|
||||
bool CanAIAttack(Unit const* target) const override
|
||||
{
|
||||
return target->GetEntry() != NPC_FROST_SPHERE && !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
return target->GetEntry() != NPC_FROST_SPHERE && !me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
@ -559,9 +559,9 @@ public:
|
|||
if( me->GetHealth() <= damage )
|
||||
{
|
||||
damage = 0;
|
||||
if( !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE) )
|
||||
if( !me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE) )
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->GetMotionMaster()->MoveIdle();
|
||||
me->GetMotionMaster()->MoveCharge(me->GetPositionX(), me->GetPositionY(), 143.0f, 20.0f);
|
||||
permafrostTimer = 1500;
|
||||
|
|
@ -682,7 +682,7 @@ public:
|
|||
if( HealthBelowPct(80) && !me->HasAura(RAID_MODE(66193, 67855, 67856, 67857)) ) // not having permafrost - allow submerge
|
||||
{
|
||||
me->GetMotionMaster()->MoveIdle();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveAllAuras();
|
||||
me->CastSpell(me, SPELL_EXPOSE_WEAKNESS, true);
|
||||
me->CastSpell(me, SPELL_SPIDER_FRENZY, true);
|
||||
|
|
@ -697,7 +697,7 @@ public:
|
|||
case EVENT_EMERGE:
|
||||
me->SetHealth(me->GetMaxHealth());
|
||||
me->GetMotionMaster()->MoveChase(me->GetVictim());
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->CastSpell(me, SPELL_EMERGE, false);
|
||||
me->RemoveAura(SPELL_SUBMERGE);
|
||||
|
||||
|
|
|
|||
|
|
@ -292,7 +292,7 @@ public:
|
|||
|
||||
bool myCanCast()
|
||||
{
|
||||
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) || IsCCed());
|
||||
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitFlag(UNIT_FLAG_SILENCED) || IsCCed());
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
|
@ -421,7 +421,7 @@ public:
|
|||
|
||||
bool myCanCast()
|
||||
{
|
||||
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) || IsCCed());
|
||||
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitFlag(UNIT_FLAG_SILENCED) || IsCCed());
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
|
@ -544,7 +544,7 @@ public:
|
|||
|
||||
bool myCanCast()
|
||||
{
|
||||
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) || IsCCed());
|
||||
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitFlag(UNIT_FLAG_SILENCED) || IsCCed());
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
|
@ -677,7 +677,7 @@ public:
|
|||
|
||||
bool myCanCast()
|
||||
{
|
||||
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) || IsCCed());
|
||||
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitFlag(UNIT_FLAG_SILENCED) || IsCCed());
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
|
@ -800,7 +800,7 @@ public:
|
|||
|
||||
bool myCanCast()
|
||||
{
|
||||
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) || IsCCed());
|
||||
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitFlag(UNIT_FLAG_SILENCED) || IsCCed());
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
|
@ -954,7 +954,7 @@ public:
|
|||
|
||||
bool myCanCast()
|
||||
{
|
||||
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) || IsCCed());
|
||||
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitFlag(UNIT_FLAG_SILENCED) || IsCCed());
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* c) override
|
||||
|
|
@ -1097,7 +1097,7 @@ public:
|
|||
|
||||
bool myCanCast()
|
||||
{
|
||||
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) || IsCCed());
|
||||
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitFlag(UNIT_FLAG_SILENCED) || IsCCed());
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
|
@ -1245,7 +1245,7 @@ public:
|
|||
|
||||
bool myCanCast()
|
||||
{
|
||||
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_DISARM_RANGED) || IsCCed());
|
||||
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitFlag2(UNIT_FLAG2_DISARM_RANGED) || IsCCed());
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* c) override
|
||||
|
|
@ -1398,7 +1398,7 @@ public:
|
|||
|
||||
bool myCanCast()
|
||||
{
|
||||
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) || IsCCed());
|
||||
return !(me->HasUnitState(UNIT_STATE_CASTING) || me->HasUnitFlag(UNIT_FLAG_SILENCED) || IsCCed());
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* c) override
|
||||
|
|
@ -1562,7 +1562,7 @@ public:
|
|||
case 0:
|
||||
break;
|
||||
case EVENT_SPELL_BLADESTORM:
|
||||
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
|
||||
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
|
||||
{
|
||||
events.RepeatEvent(5000);
|
||||
break;
|
||||
|
|
@ -1587,7 +1587,7 @@ public:
|
|||
events.RepeatEvent(5000);
|
||||
break;
|
||||
case EVENT_SPELL_MORTAL_STRIKE:
|
||||
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
|
||||
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
|
||||
{
|
||||
events.RepeatEvent(5000);
|
||||
break;
|
||||
|
|
@ -1618,7 +1618,7 @@ public:
|
|||
events.RepeatEvent(5000);
|
||||
break;
|
||||
case EVENT_SPELL_OVERPOWER:
|
||||
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
|
||||
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
|
||||
{
|
||||
events.RepeatEvent(5000);
|
||||
break;
|
||||
|
|
@ -1633,7 +1633,7 @@ public:
|
|||
events.RepeatEvent(5000);
|
||||
break;
|
||||
case EVENT_SPELL_SUNDER_ARMOR:
|
||||
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
|
||||
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
|
||||
{
|
||||
events.RepeatEvent(5000);
|
||||
break;
|
||||
|
|
@ -1648,7 +1648,7 @@ public:
|
|||
events.RepeatEvent(5000);
|
||||
break;
|
||||
case EVENT_SPELL_SHATTERING_THROW:
|
||||
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
|
||||
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
|
||||
{
|
||||
events.RepeatEvent(5000);
|
||||
break;
|
||||
|
|
@ -1663,7 +1663,7 @@ public:
|
|||
events.RepeatEvent(6000);
|
||||
break;
|
||||
case EVENT_SPELL_RETALIATION:
|
||||
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
|
||||
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
|
||||
{
|
||||
events.RepeatEvent(5000);
|
||||
break;
|
||||
|
|
@ -1789,7 +1789,7 @@ public:
|
|||
events.RepeatEvent(5000);
|
||||
break;
|
||||
case EVENT_SPELL_FROST_STRIKE:
|
||||
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
|
||||
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
|
||||
{
|
||||
events.RepeatEvent(5000);
|
||||
break;
|
||||
|
|
@ -1911,7 +1911,7 @@ public:
|
|||
case 0:
|
||||
break;
|
||||
case EVENT_SPELL_FAN_OF_KNIVES:
|
||||
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
|
||||
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
|
||||
{
|
||||
events.RepeatEvent(5000);
|
||||
break;
|
||||
|
|
@ -1946,7 +1946,7 @@ public:
|
|||
events.RepeatEvent(6000);
|
||||
break;
|
||||
case EVENT_SPELL_BLADE_FLURRY:
|
||||
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
|
||||
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
|
||||
events.RepeatEvent(5000);
|
||||
else
|
||||
{
|
||||
|
|
@ -1966,7 +1966,7 @@ public:
|
|||
events.RepeatEvent(5000);
|
||||
break;
|
||||
case EVENT_SPELL_HEMORRHAGE:
|
||||
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
|
||||
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
|
||||
{
|
||||
events.RepeatEvent(5000);
|
||||
break;
|
||||
|
|
@ -1981,7 +1981,7 @@ public:
|
|||
events.RepeatEvent(5000);
|
||||
break;
|
||||
case EVENT_SPELL_EVISCERATE:
|
||||
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
|
||||
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
|
||||
{
|
||||
events.RepeatEvent(5000);
|
||||
break;
|
||||
|
|
@ -2069,7 +2069,7 @@ public:
|
|||
case 0:
|
||||
break;
|
||||
case EVENT_SPELL_EARTH_SHOCK_ENH:
|
||||
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) )
|
||||
if( me->HasUnitFlag(UNIT_FLAG_SILENCED) )
|
||||
{
|
||||
events.RepeatEvent(5000);
|
||||
break;
|
||||
|
|
@ -2084,7 +2084,7 @@ public:
|
|||
events.RepeatEvent(5000);
|
||||
break;
|
||||
case EVENT_SPELL_LAVA_LASH:
|
||||
if( me->HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_DISARM_OFFHAND) )
|
||||
if( me->HasUnitFlag2(UNIT_FLAG2_DISARM_OFFHAND) )
|
||||
{
|
||||
events.RepeatEvent(5000);
|
||||
break;
|
||||
|
|
@ -2099,7 +2099,7 @@ public:
|
|||
events.RepeatEvent(5000);
|
||||
break;
|
||||
case EVENT_SPELL_STORMSTRIKE:
|
||||
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) && me->HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_DISARM_OFFHAND) )
|
||||
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) && me->HasUnitFlag2(UNIT_FLAG2_DISARM_OFFHAND) )
|
||||
{
|
||||
events.RepeatEvent(5000);
|
||||
break;
|
||||
|
|
@ -2212,7 +2212,7 @@ public:
|
|||
EventMapGCD(events, 1500);
|
||||
break;
|
||||
case EVENT_SPELL_CRUSADER_STRIKE:
|
||||
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
|
||||
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
|
||||
{
|
||||
events.RepeatEvent(5000);
|
||||
break;
|
||||
|
|
@ -2237,7 +2237,7 @@ public:
|
|||
events.RepeatEvent(5000);
|
||||
break;
|
||||
case EVENT_SPELL_DIVINE_STORM:
|
||||
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
|
||||
if( me->HasUnitFlag(UNIT_FLAG_DISARMED) )
|
||||
{
|
||||
events.RepeatEvent(5000);
|
||||
break;
|
||||
|
|
@ -2333,7 +2333,7 @@ public:
|
|||
|
||||
bool myCanCast()
|
||||
{
|
||||
return !(me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED) || IsCCed());
|
||||
return !(me->HasUnitFlag(UNIT_FLAG_SILENCED) || IsCCed());
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
|
|
|||
|
|
@ -283,7 +283,7 @@ public:
|
|||
{
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if( pInstance )
|
||||
pInstance->SetData(TYPE_FAILED, 1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -293,7 +293,7 @@ public:
|
|||
case 0:
|
||||
break;
|
||||
case EVENT_SPELL_IMPALE:
|
||||
if( !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED) )
|
||||
if( !me->HasUnitFlag(UNIT_FLAG_DISARMED) )
|
||||
{
|
||||
if( Unit* victim = me->GetVictim() )
|
||||
me->CastSpell(victim, SPELL_IMPALE, false);
|
||||
|
|
@ -406,7 +406,7 @@ public:
|
|||
{
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if( pInstance )
|
||||
pInstance->SetData(TYPE_FAILED, 1);
|
||||
}
|
||||
|
|
@ -491,11 +491,11 @@ struct boss_jormungarAI : public ScriptedAI
|
|||
switch( param )
|
||||
{
|
||||
case -1:
|
||||
if( !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE) )
|
||||
if( !me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE) )
|
||||
events.RescheduleEvent(EVENT_SUBMERGE, 1500);
|
||||
break;
|
||||
case -2:
|
||||
if( me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE) )
|
||||
if( me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE) )
|
||||
bIsStationary = true; // it will come out mobile soon
|
||||
else if( me->GetDisplayId() == _MODEL_STATIONARY )
|
||||
events.RescheduleEvent(EVENT_SUBMERGE, 1000);
|
||||
|
|
@ -568,7 +568,7 @@ struct boss_jormungarAI : public ScriptedAI
|
|||
case EVENT_SUBMERGE:
|
||||
{
|
||||
bIsStationary = (me->GetDisplayId() == _MODEL_STATIONARY);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->CastSpell(me, SPELL_SUBMERGE_0, false);
|
||||
Talk(EMOTE_SUBMERGE);
|
||||
|
||||
|
|
@ -588,7 +588,7 @@ struct boss_jormungarAI : public ScriptedAI
|
|||
{
|
||||
c->SetSpeed(MOVE_RUN, 2.5f);
|
||||
c->CastSpell(c, SPELL_CHURNING_GROUND, true);
|
||||
c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED);
|
||||
c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PACIFIED);
|
||||
c->GetMotionMaster()->MovePoint(0, Locs[LOC_CENTER].GetPositionX() + cos(angle)*dist, Locs[LOC_CENTER].GetPositionY() + std::sin(angle)*dist, me->GetPositionZ());
|
||||
}
|
||||
me->UpdatePosition(Locs[LOC_CENTER].GetPositionX() + cos(angle)*dist, Locs[LOC_CENTER].GetPositionY() + std::sin(angle)*dist, me->GetPositionZ(), me->GetOrientation(), true);
|
||||
|
|
@ -618,7 +618,7 @@ struct boss_jormungarAI : public ScriptedAI
|
|||
me->RemoveAurasDueToSpell(SPELL_SUBMERGE_0);
|
||||
me->CastSpell(me, SPELL_EMERGE_0, false);
|
||||
Talk(EMOTE_EMERGE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
ScheduleEvents();
|
||||
}
|
||||
break;
|
||||
|
|
@ -647,7 +647,7 @@ struct boss_jormungarAI : public ScriptedAI
|
|||
break;
|
||||
}
|
||||
|
||||
if( !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE) )
|
||||
if( !me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE) )
|
||||
{
|
||||
if( me->GetDisplayId() == _MODEL_STATIONARY )
|
||||
DoSpellAttackIfReady(_SPELL_SPIT);
|
||||
|
|
@ -670,7 +670,7 @@ struct boss_jormungarAI : public ScriptedAI
|
|||
void EnterEvadeMode() override
|
||||
{
|
||||
events.Reset();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if( pInstance )
|
||||
pInstance->SetData(TYPE_FAILED, 1);
|
||||
}
|
||||
|
|
@ -1003,7 +1003,7 @@ public:
|
|||
void EnterEvadeMode() override
|
||||
{
|
||||
events.Reset();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if( pInstance )
|
||||
pInstance->SetData(TYPE_FAILED, 1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -318,7 +318,7 @@ public:
|
|||
if (Creature* trigger = instance->SummonCreature(WORLD_TRIGGER, Locs[LOC_CENTER], nullptr, 25000))
|
||||
{
|
||||
trigger->SetDisplayId(11686);
|
||||
trigger->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
trigger->ReplaceAllUnitFlags(UNIT_FLAG_NOT_SELECTABLE);
|
||||
trigger->SetFaction(FACTION_MONSTER);
|
||||
trigger->SetInCombatWithZone();
|
||||
}
|
||||
|
|
@ -340,7 +340,7 @@ public:
|
|||
if (Creature* trigger = instance->SummonCreature(WORLD_TRIGGER, Locs[LOC_CENTER], nullptr, 25000))
|
||||
{
|
||||
trigger->SetDisplayId(11686);
|
||||
trigger->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
trigger->ReplaceAllUnitFlags(UNIT_FLAG_NOT_SELECTABLE);
|
||||
trigger->SetFaction(FACTION_MONSTER);
|
||||
trigger->SetInCombatWithZone();
|
||||
}
|
||||
|
|
@ -656,7 +656,7 @@ public:
|
|||
if( Creature* c = instance->GetCreature(NPC_GormokGUID) )
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
if( Unit* target = c->SelectNearestTarget(200.0f) )
|
||||
{
|
||||
|
|
@ -704,7 +704,7 @@ public:
|
|||
if( Creature* c = instance->GetCreature(NPC_DreadscaleGUID) )
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
if( Unit* target = c->SelectNearestTarget(200.0f) )
|
||||
{
|
||||
|
|
@ -715,7 +715,7 @@ public:
|
|||
if( Creature* c = instance->GetCreature(NPC_AcidmawGUID) )
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
if( Unit* target = c->SelectNearestTarget(200.0f) )
|
||||
{
|
||||
|
|
@ -752,7 +752,7 @@ public:
|
|||
if( Creature* c = instance->GetCreature(NPC_IcehowlGUID) )
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
if( Unit* target = c->SelectNearestTarget(200.0f) )
|
||||
{
|
||||
|
|
@ -907,7 +907,7 @@ public:
|
|||
if( Creature* c = instance->GetCreature(NPC_JaraxxusGUID) )
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
if( Unit* target = c->SelectNearestTarget(200.0f) )
|
||||
{
|
||||
|
|
@ -1104,7 +1104,7 @@ public:
|
|||
if (Creature* c = instance->GetCreature(guid))
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
//if( Unit* target = c->SelectNearestTarget(200.0f) )
|
||||
// c->AI()->AttackStart(target);
|
||||
|
|
@ -1171,7 +1171,7 @@ public:
|
|||
if( Creature* c = instance->GetCreature(NPC_LightbaneGUID) )
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
/*if( Unit* target = c->SelectNearestTarget(200.0f) )
|
||||
{
|
||||
c->AI()->AttackStart(target);
|
||||
|
|
@ -1181,7 +1181,7 @@ public:
|
|||
if( Creature* c = instance->GetCreature(NPC_DarkbaneGUID) )
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
/*if( Unit* target = c->SelectNearestTarget(200.0f) )
|
||||
{
|
||||
c->AI()->AttackStart(target);
|
||||
|
|
@ -1483,7 +1483,7 @@ public:
|
|||
{
|
||||
jaraxxus->CastSpell(jaraxxus, 67924, true);
|
||||
jaraxxus->SetReactState(REACT_AGGRESSIVE);
|
||||
jaraxxus->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
jaraxxus->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
jaraxxus->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -95,9 +95,9 @@ public:
|
|||
_summonTargetLeftGUID.Clear();
|
||||
_stage = 0;
|
||||
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
|
||||
_achievement = true;
|
||||
}
|
||||
|
|
@ -151,8 +151,8 @@ public:
|
|||
|
||||
me->SetGuidValue(UNIT_FIELD_TARGET, ObjectGuid::Empty);
|
||||
me->RemoveAllAuras();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
void JustDied(Unit* killer) override
|
||||
|
|
@ -174,7 +174,7 @@ public:
|
|||
void JustSummoned(Creature* summon) override
|
||||
{
|
||||
summons.Summon(summon);
|
||||
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE) && summon->GetEntry() != NPC_CRYSTAL_CHANNEL_TARGET && summon->GetEntry() != NPC_CRYSTAL_HANDLER)
|
||||
if (me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE) && summon->GetEntry() != NPC_CRYSTAL_CHANNEL_TARGET && summon->GetEntry() != NPC_CRYSTAL_HANDLER)
|
||||
summon->SetReactState(REACT_DEFENSIVE);
|
||||
else if (summon->GetEntry() != NPC_CRYSTAL_CHANNEL_TARGET)
|
||||
summon->SetInCombatWithZone();
|
||||
|
|
@ -223,8 +223,8 @@ public:
|
|||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_CAST_OFFENSIVE_SPELL, 3000);
|
||||
events.ScheduleEvent(EVENT_SPELL_SUMMON_MINIONS, 10000);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
break;
|
||||
case EVENT_CAST_OFFENSIVE_SPELL:
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ public:
|
|||
|
||||
void Reset() override
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
me->CastSpell(me, SPELL_SOULSTORM_CHANNEL_OOC, true);
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
|
|
@ -106,9 +106,9 @@ public:
|
|||
|
||||
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override
|
||||
{
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE) && me->HealthBelowPctDamaged(35, damage))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_DISABLE_MOVE) && me->HealthBelowPctDamaged(35, damage))
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
me->GetMotionMaster()->Clear();
|
||||
me->GetMotionMaster()->MoveIdle();
|
||||
me->CastSpell(me, SPELL_TELEPORT, false);
|
||||
|
|
@ -137,7 +137,7 @@ public:
|
|||
if (me->HasUnitState(UNIT_STATE_CASTING))
|
||||
return;
|
||||
|
||||
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE))
|
||||
if (me->HasUnitFlag(UNIT_FLAG_DISABLE_MOVE))
|
||||
if (me->isAttackReady())
|
||||
me->SetFacingToObject(me->GetVictim());
|
||||
|
||||
|
|
@ -200,7 +200,7 @@ public:
|
|||
|
||||
void EnterEvadeMode() override
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ public:
|
|||
{
|
||||
startFightTimer = 0;
|
||||
uiHopelessnessCount = 0;
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||
events.Reset();
|
||||
if (pInstance)
|
||||
|
|
@ -75,7 +75,7 @@ public:
|
|||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
|
||||
events.ScheduleEvent(EVENT_QUIVERING_STRIKE, 5000);
|
||||
events.ScheduleEvent(EVENT_IMPENDING_DESPAIR, 11000);
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ public:
|
|||
void Reset() override
|
||||
{
|
||||
startFightTimer = 0;
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
events.Reset();
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_MARWYN, NOT_STARTED);
|
||||
|
|
@ -71,7 +71,7 @@ public:
|
|||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
|
||||
events.ScheduleEvent(EVENT_OBLITERATE, 15000);
|
||||
events.ScheduleEvent(EVENT_WELL_OF_CORRUPTION, 13000);
|
||||
|
|
|
|||
|
|
@ -705,7 +705,7 @@ public:
|
|||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (!me->IsVisible() || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->IsVisible() || me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
return;
|
||||
ScriptedAI::AttackStart(who);
|
||||
}
|
||||
|
|
@ -755,7 +755,7 @@ public:
|
|||
{
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
if (me->GetInstanceScript()->GetData(DATA_WAVE_NUMBER))
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
@ -802,7 +802,7 @@ public:
|
|||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (!me->IsVisible() || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->IsVisible() || me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
return;
|
||||
ScriptedAI::AttackStart(who);
|
||||
}
|
||||
|
|
@ -851,7 +851,7 @@ public:
|
|||
{
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
if (me->GetInstanceScript()->GetData(DATA_WAVE_NUMBER))
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
@ -945,7 +945,7 @@ public:
|
|||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (!me->IsVisible() || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->IsVisible() || me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
return;
|
||||
ScriptedAI::AttackStart(who);
|
||||
}
|
||||
|
|
@ -994,7 +994,7 @@ public:
|
|||
{
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
if (me->GetInstanceScript()->GetData(DATA_WAVE_NUMBER))
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
@ -1039,7 +1039,7 @@ public:
|
|||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (!me->IsVisible() || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->IsVisible() || me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
return;
|
||||
ScriptedAI::AttackStart(who);
|
||||
}
|
||||
|
|
@ -1077,7 +1077,7 @@ public:
|
|||
{
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
if (me->GetInstanceScript()->GetData(DATA_WAVE_NUMBER))
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
@ -1122,7 +1122,7 @@ public:
|
|||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (!me->IsVisible() || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->IsVisible() || me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
return;
|
||||
ScriptedAI::AttackStart(who);
|
||||
}
|
||||
|
|
@ -1161,7 +1161,7 @@ public:
|
|||
{
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
if (me->GetInstanceScript()->GetData(DATA_WAVE_NUMBER))
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ public:
|
|||
break;
|
||||
case 8:
|
||||
_owner.SetReactState(REACT_AGGRESSIVE);
|
||||
_owner.RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
_owner.RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
if (InstanceScript* instance = _owner.GetInstanceScript())
|
||||
instance->SetData(DATA_BATTERED_HILT, 8);
|
||||
break;
|
||||
|
|
@ -96,7 +96,7 @@ public:
|
|||
{
|
||||
Position homePos = _owner.GetHomePosition();
|
||||
_owner.SetReactState(REACT_PASSIVE);
|
||||
_owner.SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
_owner.SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
_owner.SetVisible(false);
|
||||
_owner.UpdatePosition(homePos.GetPositionX(), homePos.GetPositionY(), homePos.GetPositionZ(), homePos.GetOrientation(), true);
|
||||
_owner.StopMovingOnCurrentPos();
|
||||
|
|
@ -629,7 +629,7 @@ public:
|
|||
if (Creature* c = instance->GetCreature(NPC_QuelDelarGUID))
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
c->RemoveAurasDueToSpell(70300);
|
||||
}
|
||||
break;
|
||||
|
|
@ -889,7 +889,7 @@ public:
|
|||
if (c->GetEntry() == entry)
|
||||
{
|
||||
TrashActive[j] = true;
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
c->AI()->DoAction(1);
|
||||
break;
|
||||
}
|
||||
|
|
@ -918,7 +918,7 @@ public:
|
|||
c->DeleteThreatList();
|
||||
c->CombatStop(true);
|
||||
c->InterruptNonMeleeSpells(true);
|
||||
c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
c->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
c->Respawn(true);
|
||||
c->UpdatePosition(c->GetHomePosition(), true);
|
||||
c->StopMovingOnCurrentPos();
|
||||
|
|
|
|||
|
|
@ -418,8 +418,8 @@ public:
|
|||
c->CastSpell(c, 69753, false);
|
||||
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
me->AddUnitState(UNIT_STATE_DIED);
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ public:
|
|||
|
||||
void Reset() override
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
events.Reset();
|
||||
if (me->HasReactState(REACT_AGGRESSIVE)) // Reset() called by EnterEvadeMode()
|
||||
{
|
||||
|
|
@ -117,7 +117,7 @@ public:
|
|||
|
||||
// start real fight
|
||||
me->RemoveAllAuras();
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
DoZoneInCombat();
|
||||
me->CastSpell(me, 43979, true);
|
||||
Talk(SAY_AGGRO);
|
||||
|
|
|
|||
|
|
@ -701,7 +701,7 @@ public:
|
|||
{
|
||||
deathbringerGUID[0] = c->GetGUID();
|
||||
c->SetReactState(REACT_PASSIVE);
|
||||
c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->SetHomePosition(915.10f, 75.31f, 553.81f, 3.75f);
|
||||
c->SetWalk(false);
|
||||
c->GetMotionMaster()->MoveSplinePath(&path);
|
||||
|
|
@ -710,7 +710,7 @@ public:
|
|||
{
|
||||
deathbringerGUID[1] = c->GetGUID();
|
||||
c->SetReactState(REACT_PASSIVE);
|
||||
c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->SetHomePosition(883.15f, 54.6254f, 528.5f, 3.75f);
|
||||
c->SetWalk(false);
|
||||
path.push_back(G3D::Vector3(883.15f, 54.6254f, 528.5f));
|
||||
|
|
@ -758,14 +758,14 @@ public:
|
|||
if (Creature* c = pInstance->instance->GetCreature(deathbringerGUID[0]))
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
break;
|
||||
case 36:
|
||||
if (Creature* c = pInstance->instance->GetCreature(deathbringerGUID[1]))
|
||||
{
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
break;
|
||||
case 60:
|
||||
|
|
@ -930,7 +930,7 @@ public:
|
|||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_GUID)))
|
||||
{
|
||||
c->AI()->Talk(SAY_PREFIGHT_1);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
c->SetReactState(REACT_AGGRESSIVE);
|
||||
//c->ClearUnitState(UNIT_STATE_ONVEHICLE);
|
||||
if (Player* plr = c->SelectNearestPlayer(100.0f))
|
||||
|
|
@ -1106,7 +1106,7 @@ public:
|
|||
{
|
||||
npc_pos_freed_slaveAI(Creature* creature) : SmartAI(creature)
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PLAYER_CONTROLLED);
|
||||
me->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
|
||||
// immune to falling icicles
|
||||
me->ApplySpellImmune(0, IMMUNITY_ID, 69425, true);
|
||||
me->ApplySpellImmune(0, IMMUNITY_ID, 70827, true);
|
||||
|
|
|
|||
|
|
@ -124,8 +124,8 @@ public:
|
|||
for (uint8 i = 0; i < 5; i++)
|
||||
me->SummonCreature(NPC_LIVING_MOJO, mojoPosition[i].GetPositionX(), mojoPosition[i].GetPositionY(), mojoPosition[i].GetPositionZ(), 0, TEMPSUMMON_MANUAL_DESPAWN, 0);
|
||||
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
void InitializeAI() override
|
||||
|
|
@ -178,7 +178,7 @@ public:
|
|||
summons.Despawn(summon);
|
||||
if (summon->GetEntry() == NPC_DRAKKARI_ELEMENTAL)
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveAurasDueToSpell(SPELL_FREEZE_ANIM);
|
||||
if (me->GetVictim())
|
||||
me->GetMotionMaster()->MoveChase(me->GetVictim());
|
||||
|
|
@ -196,7 +196,7 @@ public:
|
|||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
|
@ -204,7 +204,7 @@ public:
|
|||
{
|
||||
case EVENT_COLOSSUS_START_FIGHT:
|
||||
me->RemoveAurasDueToSpell(SPELL_FREEZE_ANIM);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
break;
|
||||
case EVENT_COLOSSUS_MIGHTY_BLOW:
|
||||
me->CastSpell(me->GetVictim(), SPELL_MIGHTY_BLOW, false);
|
||||
|
|
@ -215,7 +215,7 @@ public:
|
|||
{
|
||||
me->CastSpell(me, SPELL_EMERGE, false);
|
||||
me->CastSpell(me, SPELL_EMERGE_SUMMON, true);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->GetMotionMaster()->Clear();
|
||||
break;
|
||||
}
|
||||
|
|
@ -226,7 +226,7 @@ public:
|
|||
{
|
||||
me->CastSpell(me, SPELL_EMERGE, false);
|
||||
me->CastSpell(me, SPELL_EMERGE_SUMMON, true);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->GetMotionMaster()->Clear();
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -211,8 +211,8 @@ public:
|
|||
}
|
||||
|
||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
}
|
||||
}
|
||||
|
|
@ -367,9 +367,9 @@ public:
|
|||
{
|
||||
case ACTION_STAND_UP:
|
||||
summons.DespawnEntry(WORLD_TRIGGER);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->ForceValuesUpdateAtIndex(UNIT_NPC_FLAGS); // was in sniff. don't ask why
|
||||
me->m_Events.AddEvent(new StandUpEvent(*me), me->m_Events.CalculateTime(1000));
|
||||
|
|
@ -470,8 +470,8 @@ public:
|
|||
}
|
||||
|
||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
}
|
||||
}
|
||||
|
|
@ -636,9 +636,9 @@ public:
|
|||
{
|
||||
case ACTION_STAND_UP:
|
||||
summons.DespawnEntry(WORLD_TRIGGER);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->ForceValuesUpdateAtIndex(UNIT_NPC_FLAGS); // was in sniff. don't ask why
|
||||
me->m_Events.AddEvent(new StandUpEvent(*me), me->m_Events.CalculateTime(1000));
|
||||
|
|
@ -754,8 +754,8 @@ public:
|
|||
}
|
||||
|
||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
}
|
||||
}
|
||||
|
|
@ -929,9 +929,9 @@ public:
|
|||
{
|
||||
case ACTION_STAND_UP:
|
||||
summons.DespawnEntry(WORLD_TRIGGER);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->ForceValuesUpdateAtIndex(UNIT_NPC_FLAGS); // was in sniff. don't ask why
|
||||
me->m_Events.AddEvent(new StandUpEvent(*me), me->m_Events.CalculateTime(1000));
|
||||
|
|
@ -1418,7 +1418,7 @@ public:
|
|||
{
|
||||
case EVENT_BOMB_DESPAWN:
|
||||
me->RemoveAllAuras();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->DespawnOrUnsummon(exploded ? 5000 : 0);
|
||||
break;
|
||||
case EVENT_CONTINUE_FALLING:
|
||||
|
|
|
|||
|
|
@ -251,7 +251,7 @@ public:
|
|||
void Reset() override
|
||||
{
|
||||
_Reset();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetReactState(REACT_DEFENSIVE);
|
||||
events.Reset();
|
||||
_introDone = false;
|
||||
|
|
@ -323,7 +323,7 @@ public:
|
|||
|
||||
void AttackStart(Unit* victim) override
|
||||
{
|
||||
if (!_introDone || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC))
|
||||
if (!_introDone || me->HasUnitFlag(UNIT_FLAG_IMMUNE_TO_PC))
|
||||
return;
|
||||
|
||||
ScriptedAI::AttackStart(victim);
|
||||
|
|
@ -571,7 +571,7 @@ public:
|
|||
teleporter->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
|
||||
}
|
||||
|
||||
deathbringer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
deathbringer->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
deathbringer->SetWalk(false);
|
||||
deathbringer->GetMotionMaster()->MovePoint(POINT_SAURFANG, deathbringerPos.GetPositionX(), deathbringerPos.GetPositionY(), deathbringerPos.GetPositionZ());
|
||||
}
|
||||
|
|
@ -645,7 +645,7 @@ public:
|
|||
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG)))
|
||||
{
|
||||
deathbringer->CastSpell(me, SPELL_RIDE_VEHICLE, true);
|
||||
deathbringer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
deathbringer->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
deathbringer->setDeathState(ALIVE);
|
||||
}
|
||||
_events.ScheduleEvent(EVENT_OUTRO_HORDE_4, 1000);
|
||||
|
|
@ -707,7 +707,7 @@ public:
|
|||
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG)))
|
||||
{
|
||||
deathbringer->AI()->DoAction(ACTION_INTRO_DONE);
|
||||
deathbringer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
deathbringer->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
if (Player* target = deathbringer->SelectNearestPlayer(100.0f))
|
||||
deathbringer->AI()->AttackStart(target);
|
||||
}
|
||||
|
|
@ -833,7 +833,7 @@ public:
|
|||
teleporter->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
|
||||
}
|
||||
|
||||
deathbringer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
deathbringer->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
deathbringer->SetWalk(false);
|
||||
deathbringer->GetMotionMaster()->MovePoint(POINT_SAURFANG, deathbringerPos.GetPositionX(), deathbringerPos.GetPositionY(), deathbringerPos.GetPositionZ());
|
||||
}
|
||||
|
|
@ -945,7 +945,7 @@ public:
|
|||
if (Creature* deathbringer = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_DEATHBRINGER_SAURFANG)))
|
||||
{
|
||||
deathbringer->AI()->DoAction(ACTION_INTRO_DONE);
|
||||
deathbringer->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
deathbringer->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
if (Player* target = deathbringer->SelectNearestPlayer(100.0f))
|
||||
deathbringer->AI()->AttackStart(target);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -610,7 +610,7 @@ public:
|
|||
if (me->SummonCreature(entry, pos, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 10000))
|
||||
if (TempSummon* trigger = me->SummonCreature(WORLD_TRIGGER, pos, TEMPSUMMON_TIMED_DESPAWN, 2000))
|
||||
{
|
||||
trigger->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
trigger->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
trigger->CastSpell(trigger, SPELL_TELEPORT_VISUAL, true);
|
||||
}
|
||||
}
|
||||
|
|
@ -745,9 +745,9 @@ public:
|
|||
case EVENT_CULTIST_DARK_MARTYRDOM_REVIVE:
|
||||
me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH);
|
||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->UpdateEntry(NPC_REANIMATED_FANATIC);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
DoZoneInCombat(me);
|
||||
me->CastSpell(me, SPELL_FANATIC_S_DETERMINATION);
|
||||
|
|
@ -760,8 +760,8 @@ public:
|
|||
me->CastSpell(me, SPELL_CLEAR_ALL_DEBUFFS, true);
|
||||
me->CastSpell(me, SPELL_FULL_HEAL, true);
|
||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE);
|
||||
Reset();
|
||||
events.ScheduleEvent(EVENT_CULTIST_DARK_MARTYRDOM_REVIVE, 6000);
|
||||
break;
|
||||
|
|
@ -866,9 +866,9 @@ public:
|
|||
case EVENT_CULTIST_DARK_MARTYRDOM_REVIVE:
|
||||
me->RemoveAurasDueToSpell(SPELL_PERMANENT_FEIGN_DEATH);
|
||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->UpdateEntry(NPC_REANIMATED_ADHERENT);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
DoZoneInCombat(me);
|
||||
me->CastSpell(me, SPELL_ADHERENT_S_DETERMINATION);
|
||||
|
|
@ -881,8 +881,8 @@ public:
|
|||
me->CastSpell(me, SPELL_CLEAR_ALL_DEBUFFS, true);
|
||||
me->CastSpell(me, SPELL_FULL_HEAL, true);
|
||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED | UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetUnitFlag(UNIT_FLAG_STUNNED | UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT | UNIT_FLAG_NOT_SELECTABLE);
|
||||
Reset();
|
||||
events.ScheduleEvent(EVENT_CULTIST_DARK_MARTYRDOM_REVIVE, 6000);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -253,7 +253,7 @@ public:
|
|||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
|
||||
if (instance->GetBossState(DATA_ROTFACE) == DONE && instance->GetBossState(DATA_FESTERGUT) == DONE)
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
uint32 GetData(uint32 type) const override
|
||||
|
|
@ -290,7 +290,7 @@ public:
|
|||
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
{
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
BossAI::MoveInLineOfSight(who);
|
||||
}
|
||||
|
||||
|
|
@ -799,7 +799,7 @@ public:
|
|||
else if (targetGUID)
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, targetGUID);
|
||||
if (me->GetVictim()->GetGUID() != targetGUID || !target || !me->IsValidAttackTarget(target) || target->HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH) || target->GetExactDist2dSq(4356.0f, 3211.0f) > 80.0f * 80.0f || target->GetPositionZ() < 380.0f || target->GetPositionZ() > 405.0f)
|
||||
if (me->GetVictim()->GetGUID() != targetGUID || !target || !me->IsValidAttackTarget(target) || target->HasUnitFlag2(UNIT_FLAG2_FEIGN_DEATH) || target->GetExactDist2dSq(4356.0f, 3211.0f) > 80.0f * 80.0f || target->GetPositionZ() < 380.0f || target->GetPositionZ() > 405.0f)
|
||||
SelectNewTarget();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -371,7 +371,7 @@ public:
|
|||
|
||||
void EnterEvadeMode() override
|
||||
{
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE)) // this flag is removed after she lands and can be engaged
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE)) // this flag is removed after she lands and can be engaged
|
||||
{
|
||||
const Map::PlayerList& pl = me->GetMap()->GetPlayers();
|
||||
for (Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr)
|
||||
|
|
@ -406,7 +406,7 @@ public:
|
|||
|
||||
me->setActive(true);
|
||||
me->SetDisableGravity(true);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetSpeed(MOVE_RUN, 4.28571f);
|
||||
float moveTime = me->GetExactDist(&SindragosaFlyInPos) / (me->GetSpeed(MOVE_RUN) * 0.001f);
|
||||
me->m_Events.AddEvent(new FrostwyrmLandEvent(*me, SindragosaLandPos), me->m_Events.CalculateTime(uint64(moveTime) + 250));
|
||||
|
|
@ -434,7 +434,7 @@ public:
|
|||
me->SetDisableGravity(false);
|
||||
me->SetSpeed(MOVE_RUN, me->GetCreatureTemplate()->speed_run);
|
||||
me->SetHomePosition(SindragosaLandPos);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
|
||||
// Sindragosa enters combat as soon as she lands
|
||||
me->SetInCombatWithZone();
|
||||
|
|
@ -1431,7 +1431,7 @@ public:
|
|||
return;
|
||||
|
||||
me->setActive(true);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
float moveTime = me->GetExactDist(&SpinestalkerFlyPos) / (me->GetSpeed(MOVE_RUN) * 0.001f);
|
||||
me->m_Events.AddEvent(new FrostwyrmLandEvent(*me, SpinestalkerLandPos), me->m_Events.CalculateTime(uint64(moveTime) + 250));
|
||||
me->SetDefaultMovementType(IDLE_MOTION_TYPE);
|
||||
|
|
@ -1450,7 +1450,7 @@ public:
|
|||
me->SetDisableGravity(false);
|
||||
me->SetHomePosition(SpinestalkerLandPos);
|
||||
me->SetFacingTo(SpinestalkerLandPos.GetOrientation());
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
|
@ -1562,7 +1562,7 @@ public:
|
|||
return;
|
||||
|
||||
me->setActive(true);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
float moveTime = me->GetExactDist(&RimefangFlyPos) / (me->GetSpeed(MOVE_RUN) * 0.001f);
|
||||
me->m_Events.AddEvent(new FrostwyrmLandEvent(*me, RimefangLandPos), me->m_Events.CalculateTime(uint64(moveTime) + 250));
|
||||
me->SetDefaultMovementType(IDLE_MOTION_TYPE);
|
||||
|
|
@ -1583,7 +1583,7 @@ public:
|
|||
me->SetDisableGravity(false);
|
||||
me->SetHomePosition(RimefangLandPos);
|
||||
me->SetFacingTo(RimefangLandPos.GetOrientation());
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
}
|
||||
else if (point == POINT_LAND_GROUND)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -631,7 +631,7 @@ public:
|
|||
boss_the_lich_kingAI(Creature* creature) : BossAI(creature, DATA_THE_LICH_KING)
|
||||
{
|
||||
me->AddAura(SPELL_EMOTE_SIT_NO_SHEATH, me);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
}
|
||||
|
||||
|
|
@ -658,7 +658,7 @@ public:
|
|||
_Reset();
|
||||
DoAction(ACTION_RESTORE_LIGHT);
|
||||
SetEquipmentSlots(true);
|
||||
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC))
|
||||
if (me->HasUnitFlag(UNIT_FLAG_IMMUNE_TO_PC))
|
||||
me->SetStandState(UNIT_STAND_STATE_SIT);
|
||||
}
|
||||
|
||||
|
|
@ -704,7 +704,7 @@ public:
|
|||
Cell::VisitGridObjects(me, worker, 333.0f);
|
||||
|
||||
me->AddAura(SPELL_EMOTE_SIT_NO_SHEATH, me);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetStandState(UNIT_STAND_STATE_SIT);
|
||||
}
|
||||
|
|
@ -1209,7 +1209,7 @@ public:
|
|||
spawner->CastSpell(spawner, SPELL_SUMMON_SPIRIT_BOMB_1, true); // summons bombs randomly
|
||||
spawner->CastSpell(spawner, SPELL_SUMMON_SPIRIT_BOMB_2, true); // summons bombs on players
|
||||
spawner->m_Events.AddEvent(new TriggerWickedSpirit(spawner), spawner->m_Events.CalculateTime(3000));
|
||||
terenas->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); // to avoid being healed by player trinket procs. terenas' health doesn't matter on heroic
|
||||
terenas->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); // to avoid being healed by player trinket procs. terenas' health doesn't matter on heroic
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -1456,7 +1456,7 @@ public:
|
|||
if (Creature* theLichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
|
||||
{
|
||||
theLichKing->SetWalk(false);
|
||||
theLichKing->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
theLichKing->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
theLichKing->SetReactState(REACT_AGGRESSIVE);
|
||||
theLichKing->SetInCombatWithZone();
|
||||
if (!theLichKing->IsInCombat())
|
||||
|
|
@ -1589,7 +1589,7 @@ public:
|
|||
terenas->CastSpell((Unit*)nullptr, SPELL_MASS_RESURRECTION, false);
|
||||
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_THE_LICH_KING)))
|
||||
{
|
||||
lichKing->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
lichKing->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
me->RemoveAllAuras();
|
||||
SetEquipmentSlots(true);
|
||||
|
|
@ -2265,7 +2265,7 @@ public:
|
|||
else
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, targetGUID);
|
||||
if (me->GetVictim()->GetGUID() != targetGUID || !target || !me->IsValidAttackTarget(target) || target->HasFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH) || target->GetExactDist2dSq(&CenterPosition) > 75.0f * 75.0f || target->GetPositionZ() < 830.0f || target->GetPositionZ() > 855.0f)
|
||||
if (me->GetVictim()->GetGUID() != targetGUID || !target || !me->IsValidAttackTarget(target) || target->HasUnitFlag2(UNIT_FLAG2_FEIGN_DEATH) || target->GetExactDist2dSq(&CenterPosition) > 75.0f * 75.0f || target->GetPositionZ() < 830.0f || target->GetPositionZ() > 855.0f)
|
||||
SelectNewTarget();
|
||||
}
|
||||
}
|
||||
|
|
@ -2677,10 +2677,10 @@ public:
|
|||
me->SetDisableGravity(false);
|
||||
me->GetMotionMaster()->MovePoint(POINT_DROP_PLAYER, _destPoint, false);
|
||||
me->SetDisableGravity(true, true);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
break;
|
||||
case EVENT_MOVE_TO_SIPHON_POS:
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); // just in case if passenger disappears so quickly that EVENT_MOVE_TO_DROP_POS is never executed
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE); // just in case if passenger disappears so quickly that EVENT_MOVE_TO_DROP_POS is never executed
|
||||
{ int32 bp0 = 80; me->CastCustomSpell(me, 1557, &bp0, nullptr, nullptr, true); }
|
||||
me->SetCanFly(true);
|
||||
me->SetDisableGravity(true);
|
||||
|
|
@ -3062,7 +3062,7 @@ public:
|
|||
c->StopMoving();
|
||||
c->CastSpell((Unit*)nullptr, SPELL_SPIRIT_BURST, true);
|
||||
c->DespawnOrUnsummon(3000);
|
||||
c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
c->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3284,7 +3284,7 @@ public:
|
|||
}
|
||||
break;
|
||||
case ACTION_TELEPORT_BACK:
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
{
|
||||
_events.Reset();
|
||||
me->CastSpell((Unit*)nullptr, SPELL_RESTORE_SOUL, false);
|
||||
|
|
@ -3301,7 +3301,7 @@ public:
|
|||
damage = me->GetHealth() - 1;
|
||||
if (IsHeroic())
|
||||
return;
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
{
|
||||
_events.Reset();
|
||||
_events.ScheduleEvent(EVENT_TELEPORT_BACK, 1000);
|
||||
|
|
@ -3314,7 +3314,7 @@ public:
|
|||
me->SetDisplayId(16946);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->AttackStop();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->DespawnOrUnsummon(2000);
|
||||
}
|
||||
}
|
||||
|
|
@ -3347,7 +3347,7 @@ public:
|
|||
me->SetDisplayId(16946);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->AttackStop();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
_events.Reset();
|
||||
_events.ScheduleEvent(EVENT_TELEPORT_BACK, 1000);
|
||||
break;
|
||||
|
|
@ -3710,7 +3710,7 @@ public:
|
|||
if (!target)
|
||||
return;
|
||||
|
||||
target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
target->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
target->ForceValuesUpdateAtIndex(UNIT_FIELD_FLAGS);
|
||||
VileSpiritActivateEvent(target).Execute(0, 0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -406,7 +406,7 @@ public:
|
|||
me->CastSpell(me, SPELL_AWARD_REPUTATION_BOSS_KILL, true);
|
||||
// this display id was found in sniff instead of the one on aura
|
||||
me->SetDisplayId(11686);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->DespawnOrUnsummon(4000);
|
||||
if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_VALITHRIA_LICH_KING)))
|
||||
lichKing->CastSpell(lichKing, SPELL_SPAWN_CHEST, false);
|
||||
|
|
@ -1049,7 +1049,7 @@ public:
|
|||
{
|
||||
timer = 0;
|
||||
me->SetDisplayId(11686);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->DespawnOrUnsummon(2000);
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -743,7 +743,7 @@ public:
|
|||
return;
|
||||
|
||||
me->setActive(true);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
// Load Grid with Sister Svalna
|
||||
me->GetMap()->LoadGrid(4356.71f, 2484.33f);
|
||||
if (Creature* svalna = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_SISTER_SVALNA)))
|
||||
|
|
@ -930,7 +930,7 @@ public:
|
|||
Talk(SAY_CROK_INTRO_3);
|
||||
break;
|
||||
case EVENT_START_PATHING:
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
Start(true, true);
|
||||
break;
|
||||
case EVENT_SCOURGE_STRIKE:
|
||||
|
|
@ -998,7 +998,7 @@ public:
|
|||
void Reset() override
|
||||
{
|
||||
_Reset();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetCanFly(true);
|
||||
me->SetDisableGravity(true);
|
||||
|
|
@ -1007,7 +1007,7 @@ public:
|
|||
|
||||
void AttackStart(Unit* victim) override
|
||||
{
|
||||
if (me->HasReactState(REACT_PASSIVE) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC))
|
||||
if (me->HasReactState(REACT_PASSIVE) || me->HasUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC))
|
||||
return;
|
||||
BossAI::AttackStart(victim);
|
||||
}
|
||||
|
|
@ -1037,10 +1037,10 @@ public:
|
|||
|
||||
void EnterCombat(Unit* /*attacker*/) override
|
||||
{
|
||||
if (me->HasReactState(REACT_PASSIVE) || me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC))
|
||||
if (me->HasReactState(REACT_PASSIVE) || me->HasUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC))
|
||||
{
|
||||
me->CombatStop(false);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
return;
|
||||
}
|
||||
|
|
@ -1121,7 +1121,7 @@ public:
|
|||
if (type != EFFECT_MOTION_TYPE || id != POINT_LAND)
|
||||
return;
|
||||
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetCanFly(false);
|
||||
me->SetDisableGravity(false);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
|
|
@ -1140,7 +1140,7 @@ public:
|
|||
{
|
||||
Talk(EMOTE_SVALNA_IMPALE, target);
|
||||
summon->CastCustomSpell(VEHICLE_SPELL_RIDE_HARDCODED, SPELLVALUE_BASE_POINT0, 1, target, false);
|
||||
summon->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_HIDE_BODY | UNIT_FLAG2_ALLOW_ENEMY_INTERACT);
|
||||
summon->SetUnitFlag2(UNIT_FLAG2_HIDE_BODY | UNIT_FLAG2_ALLOW_ENEMY_INTERACT);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
@ -1694,7 +1694,7 @@ public:
|
|||
|
||||
events.Update(diff);
|
||||
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING) || me->isFeared() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED) || ((me->GetEntry() == NPC_YMIRJAR_DEATHBRINGER || me->GetEntry() == NPC_YMIRJAR_FROSTBINDER) && me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_SILENCED)))
|
||||
if (me->HasUnitState(UNIT_STATE_CASTING) || me->isFeared() || me->isFrozen() || me->HasUnitState(UNIT_STATE_STUNNED) || me->HasUnitState(UNIT_STATE_CONFUSED) || ((me->GetEntry() == NPC_YMIRJAR_DEATHBRINGER || me->GetEntry() == NPC_YMIRJAR_FROSTBINDER) && me->HasUnitFlag(UNIT_FLAG_SILENCED)))
|
||||
return;
|
||||
|
||||
switch (events.ExecuteEvent())
|
||||
|
|
@ -1915,7 +1915,7 @@ public:
|
|||
if (Creature* target = GetTarget()->ToCreature())
|
||||
{
|
||||
target->SetReactState(REACT_PASSIVE);
|
||||
target->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
target->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
target->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_CUSTOM_SPELL_02);
|
||||
}
|
||||
}
|
||||
|
|
@ -1925,7 +1925,7 @@ public:
|
|||
if (Creature* target = GetTarget()->ToCreature())
|
||||
{
|
||||
target->SetReactState(REACT_AGGRESSIVE);
|
||||
target->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
target->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
target->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ public:
|
|||
BossAI::Reset();
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
secondPhase = false;
|
||||
gateOpened = false;
|
||||
|
|
@ -256,7 +256,7 @@ public:
|
|||
events.ScheduleEvent(EVENT_INTRO_2, 4000);
|
||||
events.ScheduleEvent(EVENT_INTRO_3, 9000);
|
||||
events.ScheduleEvent(EVENT_INTRO_4, 14000);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
events.ScheduleEvent(EVENT_SUMMON_ADDS, 30000);
|
||||
events.ScheduleEvent(EVENT_CHECK_PLAYERS, 120000);
|
||||
if (pInstance)
|
||||
|
|
@ -485,7 +485,7 @@ public:
|
|||
Talk(EMOTE_PHASE_TWO);
|
||||
me->CastSpell(me, SPELL_TELEPORT_LIVE, false);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveAllAuras();
|
||||
summons.DoZoneInCombat();
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT, 1000);
|
||||
|
|
|
|||
|
|
@ -221,7 +221,7 @@ public:
|
|||
BossAI::Reset();
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
if (GameObject* go = me->GetMap()->GetGameObject(pInstance->GetGuidData(DATA_KELTHUZAD_FLOOR)))
|
||||
{
|
||||
|
|
@ -256,7 +256,7 @@ public:
|
|||
|
||||
void EnterEvadeMode() override
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
}
|
||||
|
||||
|
|
@ -300,7 +300,7 @@ public:
|
|||
{
|
||||
BossAI::EnterCombat(who);
|
||||
Talk(SAY_SUMMON_MINIONS);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveAllAttackers();
|
||||
me->SetTarget();
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
|
|
@ -383,7 +383,7 @@ public:
|
|||
Talk(SAY_AGGRO);
|
||||
events.Reset();
|
||||
summons.DoAction(ACTION_SECOND_PHASE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->GetMotionMaster()->MoveChase(me->GetVictim());
|
||||
me->RemoveAura(SPELL_KELTHUZAD_CHANNEL);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
|
|
@ -505,7 +505,7 @@ public:
|
|||
}
|
||||
break;
|
||||
}
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_DISABLE_MOVE))
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
|
@ -554,8 +554,8 @@ public:
|
|||
}
|
||||
if (param == ACTION_GUARDIANS_OFF)
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveAllAuras();
|
||||
EnterEvadeMode();
|
||||
me->SetPosition(me->GetHomePosition());
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ public:
|
|||
void StartGroundPhase()
|
||||
{
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_MOVE_TO_BALCONY, 110000);
|
||||
|
|
@ -117,7 +117,7 @@ public:
|
|||
{
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->AttackStop();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetControlled(true, UNIT_STATE_ROOT);
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_BALCONY_SUMMON_ANNOUNCE, 4000);
|
||||
|
|
@ -190,7 +190,7 @@ public:
|
|||
{
|
||||
if (me->GetPositionZ() > 270.27f)
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->NearTeleportTo(nothPosition.GetPositionX(), nothPosition.GetPositionY(), nothPosition.GetPositionZ(), nothPosition.GetOrientation(), true);
|
||||
}
|
||||
BossAI::JustDied(killer);
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ public:
|
|||
{
|
||||
me->SummonGameObject(GO_SAPPHIRON_BIRTH, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, 0, 0, 0, 0, 0);
|
||||
me->SetVisible(false);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
ScriptedAI::InitializeAI();
|
||||
}
|
||||
|
|
@ -234,7 +234,7 @@ public:
|
|||
if (spawnTimer >= 21500)
|
||||
{
|
||||
me->SetVisible(true);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
spawnTimer = 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ public:
|
|||
BossAI::Reset();
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetControlled(true, UNIT_STATE_ROOT);
|
||||
summonTimer = 0;
|
||||
reviveTimer = 0;
|
||||
|
|
@ -168,7 +168,7 @@ public:
|
|||
cr->InterruptNonMeleeSpells(true);
|
||||
cr->CastSpell(cr, SPELL_FEUGEN_CHAIN, false);
|
||||
cr->SetDisableGravity(true);
|
||||
cr->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
cr->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
cr->SetControlled(true, UNIT_STATE_ROOT);
|
||||
}
|
||||
if (Creature* cr = me->SummonCreature(NPC_TESLA_COIL, 3487.04f, -2911.68f, 318.75f, 0.0f))
|
||||
|
|
@ -177,7 +177,7 @@ public:
|
|||
cr->InterruptNonMeleeSpells(true);
|
||||
cr->CastSpell(cr, SPELL_STALAGG_CHAIN, false);
|
||||
cr->SetDisableGravity(true);
|
||||
cr->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
cr->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
cr->SetControlled(true, UNIT_STATE_ROOT);
|
||||
}
|
||||
|
||||
|
|
@ -304,7 +304,7 @@ public:
|
|||
case EVENT_THADDIUS_INIT:
|
||||
{
|
||||
me->RemoveAllAuras();
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
|
||||
{
|
||||
if (Creature* cr = ObjectAccessor::GetCreature(*me, (*itr)))
|
||||
|
|
@ -331,7 +331,7 @@ public:
|
|||
Talk(SAY_AGGRO);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->SetControlled(false, UNIT_STATE_STUNNED);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
events.ScheduleEvent(EVENT_THADDIUS_CHAIN_LIGHTNING, 14000);
|
||||
events.ScheduleEvent(EVENT_THADDIUS_BERSERK, 360000);
|
||||
events.ScheduleEvent(EVENT_THADDIUS_POLARITY_SHIFT, 30000);
|
||||
|
|
@ -403,7 +403,7 @@ public:
|
|||
if (Creature* cr = me->FindNearestCreature(NPC_TESLA_COIL, 150.0f))
|
||||
{
|
||||
cr->CastSpell(cr, me->GetEntry() == NPC_STALAGG ? SPELL_STALAGG_CHAIN : SPELL_FEUGEN_CHAIN, false);
|
||||
cr->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
cr->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
myCoil = cr->GetGUID();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -237,8 +237,8 @@ public:
|
|||
bLockHealthCheck = false;
|
||||
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
|
||||
if (pInstance)
|
||||
{
|
||||
|
|
@ -340,14 +340,14 @@ public:
|
|||
if (!victim)
|
||||
return;
|
||||
|
||||
if (me->GetVictim() && me->GetVictim()->GetGUID() == victim->GetGUID() && !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED))
|
||||
if (me->GetVictim() && me->GetVictim()->GetGUID() == victim->GetGUID() && !me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED))
|
||||
{
|
||||
if (!me->GetGuidValue(UNIT_FIELD_TARGET))
|
||||
me->SetTarget(victim->GetGUID());
|
||||
}
|
||||
else if (me->Attack(victim, true))
|
||||
{
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED))
|
||||
me->GetMotionMaster()->MoveChase(victim);
|
||||
else
|
||||
me->SetTarget();
|
||||
|
|
@ -356,7 +356,7 @@ public:
|
|||
|
||||
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override
|
||||
{
|
||||
if (damage >= me->GetHealth() && !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE)) // allow dying only in phase 3!
|
||||
if (damage >= me->GetHealth() && !me->HasUnitFlag(UNIT_FLAG_DISABLE_MOVE)) // allow dying only in phase 3!
|
||||
{
|
||||
damage = 0;
|
||||
return;
|
||||
|
|
@ -417,7 +417,7 @@ public:
|
|||
pInstance->SetData(DATA_HIDE_IRIS_AND_PORTAL, 0);
|
||||
pInstance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_YOU_DONT_HAVE_AN_ENTERNITY_EVENT);
|
||||
}
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED);
|
||||
if (Unit* target = me->SelectNearestTarget(250.0f))
|
||||
{
|
||||
AttackStart(target);
|
||||
|
|
@ -460,7 +460,7 @@ public:
|
|||
Talk(SAY_MAGIC_BLAST);
|
||||
EntryCheckPredicate pred(NPC_POWER_SPARK);
|
||||
summons.DoAction(2, pred); // stop following
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
|
||||
me->SetUnitFlag(UNIT_FLAG_PACIFIED);
|
||||
|
||||
me->SendMeleeAttackStop(me->GetVictim());
|
||||
me->SetTarget();
|
||||
|
|
@ -539,7 +539,7 @@ public:
|
|||
sScriptMgr->AnticheatSetSkipOnePacketForASH(pPlayer, true);
|
||||
|
||||
pPlayer->SetGuidValue(PLAYER_FARSIGHT, vp->GetGUID());
|
||||
c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
c->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -556,7 +556,7 @@ public:
|
|||
bLockHealthCheck = false;
|
||||
EntryCheckPredicate pred(NPC_POWER_SPARK);
|
||||
summons.DoAction(1, pred); // resume following
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_PACIFIED);
|
||||
if (Unit* target = me->GetVictim())
|
||||
{
|
||||
AttackStart(target);
|
||||
|
|
@ -568,7 +568,7 @@ public:
|
|||
case EVENT_START_PHASE_2:
|
||||
events.SetPhase(PHASE_TWO);
|
||||
Talk(SAY_END_P1);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
|
||||
me->SetUnitFlag(UNIT_FLAG_PACIFIED);
|
||||
me->SendMeleeAttackStop();
|
||||
me->SetTarget();
|
||||
me->GetMotionMaster()->MoveIdle();
|
||||
|
|
@ -588,7 +588,7 @@ public:
|
|||
}
|
||||
case EVENT_START_PHASE_2_MOVE_TO_SIDE:
|
||||
Talk(SAY_PHASE_2);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED);
|
||||
me->GetMotionMaster()->MovePoint(MI_POINT_CIRCLE_OUTSIDE_PH_2, Phase2NorthPos);
|
||||
events.RescheduleEvent(EVENT_SPELL_ARCANE_STORM, urand(12000, 15000), 1);
|
||||
events.RescheduleEvent(EVENT_SPELL_ARCANE_OVERLOAD, 8000, 1);
|
||||
|
|
@ -742,8 +742,8 @@ public:
|
|||
case EVENT_START_PHASE_3:
|
||||
events.SetPhase(PHASE_THREE);
|
||||
me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_OBSCURE_ARCANE_RUNES, 1s);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_PACIFIED | UNIT_FLAG_DISABLE_MOVE);
|
||||
if (Unit* target = me->GetVictim())
|
||||
AttackStart(target);
|
||||
events.RescheduleEvent(EVENT_SPELL_ARCANE_PULSE, 0, 1);
|
||||
|
|
@ -818,7 +818,7 @@ public:
|
|||
{
|
||||
me->SetDisableGravity(true);
|
||||
me->GetMap()->SetZoneOverrideLight(AREA_EYE_OF_ETERNITY, LIGHT_GET_DEFAULT_FOR_MAP, 1s);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
}
|
||||
|
||||
|
|
@ -1010,14 +1010,14 @@ public:
|
|||
if (damage >= me->GetHealth())
|
||||
{
|
||||
damage = 0;
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
|
||||
{
|
||||
MoveTimer = 0;
|
||||
me->GetMotionMaster()->MoveIdle();
|
||||
me->DisableSpline();
|
||||
me->MonsterMoveWithSpeed(me->GetPositionX(), me->GetPositionY(), CenterPos.GetPositionZ(), 100.0f);
|
||||
me->SetPosition(me->GetPositionX(), me->GetPositionY(), CenterPos.GetPositionZ(), me->GetOrientation());
|
||||
me->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->ReplaceAllUnitFlags(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveAura(SPELL_POWER_SPARK_VISUAL);
|
||||
me->CastSpell(me, SPELL_POWER_SPARK_GROUND_BUFF, true);
|
||||
me->DespawnOrUnsummon(60000);
|
||||
|
|
@ -1027,7 +1027,7 @@ public:
|
|||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
|
||||
if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
|
||||
return;
|
||||
|
||||
if (CheckTimer <= diff)
|
||||
|
|
|
|||
|
|
@ -123,12 +123,12 @@ public:
|
|||
{
|
||||
if (remove)
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveAurasDueToSpell(SPELL_FROZEN_PRISON);
|
||||
}
|
||||
else
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->CastSpell(me, SPELL_FROZEN_PRISON, true);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -248,14 +248,14 @@ public:
|
|||
GetUnitOwner()->CastSpell(GetUnitOwner(), SPELL_FROST_MAGUS_SUMMON, true);
|
||||
GetUnitOwner()->CastSpell(GetUnitOwner(), SPELL_ARCANE_MAGUS_SUMMON, true);
|
||||
|
||||
GetUnitOwner()->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
GetUnitOwner()->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
GetUnitOwner()->SetControlled(true, UNIT_STATE_STUNNED);
|
||||
GetUnitOwner()->ToCreature()->LoadEquipment(0, true);
|
||||
}
|
||||
|
||||
void HandleRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
GetUnitOwner()->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
GetUnitOwner()->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
GetUnitOwner()->SetControlled(false, UNIT_STATE_STUNNED);
|
||||
GetUnitOwner()->ToCreature()->LoadEquipment(1, true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -217,8 +217,8 @@ public:
|
|||
restoreTimer = 0;
|
||||
abilityTimer1 = 0;
|
||||
abilityTimer2 = 30000;
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit*) override
|
||||
|
|
@ -244,8 +244,8 @@ public:
|
|||
damage = 0;
|
||||
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetRegeneratingHealth(false);
|
||||
me->CastSpell(me, SPELL_SUMMON_SEED_POD, true);
|
||||
me->CastSpell(me, SPELL_SEED_POD, true);
|
||||
|
|
@ -266,8 +266,8 @@ public:
|
|||
me->SetRegeneratingHealth(true);
|
||||
restoreTimer = 0;
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,9 +93,9 @@ public:
|
|||
{
|
||||
pInstance->SetData(DATA_EREGOS, NOT_STARTED);
|
||||
if( pInstance->GetData(DATA_UROM) != DONE )
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
else
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
|
||||
events.Reset();
|
||||
|
|
|
|||
|
|
@ -126,9 +126,9 @@ public:
|
|||
{
|
||||
pInstance->SetData(DATA_UROM, NOT_STARTED);
|
||||
if( pInstance->GetData(DATA_VAROS) != DONE )
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
else
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
|
||||
me->CastSpell(me, SPELL_EVOCATION, true);
|
||||
|
|
@ -277,7 +277,7 @@ public:
|
|||
me->GetMotionMaster()->MoveIdle();
|
||||
me->StopMoving();
|
||||
me->SetControlled(true, UNIT_STATE_ROOT);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetCanFly(true);
|
||||
me->SetDisableGravity(true);
|
||||
me->NearTeleportTo(1103.69f, 1048.76f, 512.279f, 1.16f);
|
||||
|
|
@ -354,7 +354,7 @@ public:
|
|||
me->SetDisableGravity(false);
|
||||
me->NearTeleportTo(x, y, z, 0.0f);
|
||||
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->GetMotionMaster()->MoveChase(me->GetVictim());
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -102,12 +102,12 @@ public:
|
|||
pInstance->SetData(DATA_VAROS, NOT_STARTED);
|
||||
if( pInstance->GetData(DATA_CC_COUNT) < 10 )
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->CastSpell(me, 50053, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
me->RemoveAura(50053);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -148,14 +148,14 @@ public:
|
|||
DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 0);
|
||||
|
||||
if( Creature* urom = instance->GetCreature(uiUromGUID) )
|
||||
urom->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
urom->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
break;
|
||||
case DATA_UROM:
|
||||
m_auiEncounter[DATA_UROM] = data;
|
||||
if( data == DONE )
|
||||
if( Creature* eregos = instance->GetCreature(uiEregosGUID) )
|
||||
eregos->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
eregos->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
break;
|
||||
case DATA_EREGOS:
|
||||
m_auiEncounter[DATA_EREGOS] = data;
|
||||
|
|
@ -181,7 +181,7 @@ public:
|
|||
if( CentrifugeCount >= 10 )
|
||||
if( Creature* varos = instance->GetCreature(uiVarosGUID) )
|
||||
{
|
||||
varos->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
varos->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
varos->InterruptNonMeleeSpells(false);
|
||||
varos->RemoveAura(50053);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -926,7 +926,7 @@ public:
|
|||
case EFFECT_1:
|
||||
_drakeGUID = drake->GetGUID();
|
||||
caster->AddAura(SPELL_DRAKE_FLAG_VISUAL, caster);
|
||||
caster->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
caster->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
caster->RemoveAurasByType(SPELL_AURA_MOD_SHAPESHIFT);
|
||||
drake->CastSpell(drake, SPELL_SOAR_TRIGGER);
|
||||
if (drake->GetEntry() == NPC_RUBY_DRAKE)
|
||||
|
|
@ -950,12 +950,12 @@ public:
|
|||
|
||||
if (drake)
|
||||
{
|
||||
drake->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_POSSESSED);
|
||||
drake->RemoveUnitFlag(UNIT_FLAG_POSSESSED);
|
||||
drake->RemoveAurasDueToSpell(GetId());
|
||||
drake->RemoveAurasDueToSpell(SPELL_SOAR_TRIGGER);
|
||||
drake->RemoveAurasDueToSpell(SPELL_RUBY_EVASIVE_AURA);
|
||||
}
|
||||
caster->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
caster->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
caster->RemoveAurasDueToSpell(SPELL_DRAKE_FLAG_VISUAL);
|
||||
}
|
||||
|
||||
|
|
@ -993,7 +993,7 @@ public:
|
|||
|
||||
if (!drake)
|
||||
{
|
||||
caster->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
caster->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
caster->RemoveAurasDueToSpell(SPELL_DRAKE_FLAG_VISUAL);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -159,7 +159,7 @@ public:
|
|||
summons.Summon(spark);
|
||||
spark->CastSpell(spark, me->GetMap()->IsHeroic() ? SPELL_SPARK_VISUAL_TRIGGER_H : SPELL_SPARK_VISUAL_TRIGGER_N, true);
|
||||
spark->CastSpell(spark, SPELL_RANDOM_LIGHTNING, true);
|
||||
spark->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
|
||||
spark->SetUnitFlag(UNIT_FLAG_PACIFIED | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
|
||||
spark->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0);
|
||||
|
||||
if (Player* tgt = SelectTargetFromPlayerList(100))
|
||||
|
|
|
|||
|
|
@ -103,12 +103,12 @@ public:
|
|||
if (!isActive)
|
||||
{
|
||||
me->SetControlled(true, UNIT_STATE_STUNNED);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
else
|
||||
{
|
||||
me->SetControlled(false, UNIT_STATE_STUNNED);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -195,7 +195,7 @@ public:
|
|||
m_pInstance->SetData(TYPE_LOKEN_INTRO, 1);
|
||||
|
||||
me->SetControlled(false, UNIT_STATE_STUNNED);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
|
||||
if (Player* target = SelectTargetFromPlayerList(80))
|
||||
AttackStart(target);
|
||||
|
|
|
|||
|
|
@ -357,7 +357,7 @@ public:
|
|||
if (uiDamage >= me->GetHealth())
|
||||
{
|
||||
me->UpdateEntry(NPC_BRITTLE_GOLEM, 0, false);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetHealth(me->GetMaxHealth());
|
||||
me->RemoveAllAuras();
|
||||
me->AttackStop();
|
||||
|
|
@ -459,7 +459,7 @@ public:
|
|||
{
|
||||
_attackGUID.Clear();
|
||||
_isActive = urand(0, 1);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->CastSpell(me, SPELL_FREEZE_ANIM, true);
|
||||
}
|
||||
|
||||
|
|
@ -522,7 +522,7 @@ public:
|
|||
|
||||
if (eventId == EVENT_UNFREEZE)
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->CastSpell(me, SPELL_AWAKEN, true);
|
||||
me->RemoveAllAuras();
|
||||
_isActive = true;
|
||||
|
|
|
|||
|
|
@ -141,10 +141,10 @@ public:
|
|||
pInstance->SetData(BOSS_SJONNIR, NOT_STARTED);
|
||||
pInstance->SetData(DATA_SJONNIR_ACHIEVEMENT, false);
|
||||
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
if (pInstance->GetData(BOSS_TRIBUNAL_OF_AGES) == DONE)
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
if (GameObject* doors = me->GetMap()->GetGameObject(pInstance->GetGuidData(GO_SJONNIR_DOOR)))
|
||||
doors->SetGoState(GO_STATE_ACTIVE);
|
||||
|
||||
|
|
|
|||
|
|
@ -676,7 +676,7 @@ void brann_bronzebeard::brann_bronzebeardAI::WaypointReached(uint32 id)
|
|||
pInstance->SetData(BRANN_BRONZEBEARD, 5);
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
if (Creature* cr = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_SJONNIR)))
|
||||
cr->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
cr->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetOrientation(3.132660f);
|
||||
DoCast(me, 58506, false);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ public:
|
|||
|
||||
// Make sjonnir attackable
|
||||
if (Creature* cr = instance->GetCreature(SjonnirGUID))
|
||||
cr->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
cr->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
if (type == BOSS_TRIBUNAL_OF_AGES && data == NOT_STARTED)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -377,7 +377,7 @@ public:
|
|||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetSheath(SHEATH_STATE_UNARMED);
|
||||
me->SetFaction(190);
|
||||
me->CastSpell(me, SPELL_DUAL_WIELD, true);
|
||||
|
|
@ -403,8 +403,8 @@ public:
|
|||
{
|
||||
case ACTION_START_INTRO:
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_DO_NOT_FADE_IN);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetUnitFlag2(UNIT_FLAG2_DO_NOT_FADE_IN);
|
||||
me->SetDisableGravity(true);
|
||||
me->CastSpell(me, SPELL_ARRIVAL, true);
|
||||
me->CastSpell(me, SPELL_RIDE_THE_LIGHTNING, true);
|
||||
|
|
@ -438,7 +438,7 @@ public:
|
|||
me->SetReactState(REACT_PASSIVE);
|
||||
me->AttackStop();
|
||||
me->SetFaction(FACTION_FRIENDLY);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
if (m_pInstance)
|
||||
m_pInstance->SetData(TYPE_ALGALON, NOT_STARTED);
|
||||
|
|
@ -446,7 +446,7 @@ public:
|
|||
case ACTION_INIT_ALGALON:
|
||||
_firstPull = false;
|
||||
_fedOnTears = false;
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
break;
|
||||
case ACTION_ASCEND:
|
||||
summons.DespawnAll();
|
||||
|
|
@ -477,7 +477,7 @@ public:
|
|||
uint32 introDelay = 0;
|
||||
me->setActive(true);
|
||||
me->SetInCombatWithZone();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
events.Reset();
|
||||
events.SetPhase(PHASE_ROLE_PLAY);
|
||||
|
||||
|
|
@ -603,7 +603,7 @@ public:
|
|||
me->SetReactState(REACT_PASSIVE);
|
||||
me->AttackStop();
|
||||
me->SetFaction(FACTION_FRIENDLY);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
|
|
@ -649,7 +649,7 @@ public:
|
|||
break;
|
||||
case EVENT_INTRO_FINISH:
|
||||
events.Reset();
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
if (Creature* brann = ObjectAccessor::GetCreature(*me, m_pInstance->GetGuidData(NPC_BRANN_BRONZBEARD_ALG)))
|
||||
brann->AI()->DoAction(ACTION_FINISH_INTRO);
|
||||
break;
|
||||
|
|
@ -659,7 +659,7 @@ public:
|
|||
break;
|
||||
case EVENT_REMOVE_UNNATTACKABLE:
|
||||
me->SetSheath(SHEATH_STATE_MELEE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
break;
|
||||
case EVENT_INTRO_TIMER_DONE:
|
||||
events.SetPhase(PHASE_NORMAL);
|
||||
|
|
@ -736,7 +736,7 @@ public:
|
|||
break;
|
||||
case EVENT_OUTRO_1:
|
||||
me->RemoveAllAuras();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_RENAME);
|
||||
me->SetUnitFlag(UNIT_FLAG_RENAME);
|
||||
break;
|
||||
case EVENT_OUTRO_2:
|
||||
{
|
||||
|
|
@ -758,7 +758,7 @@ public:
|
|||
break;
|
||||
case EVENT_OUTRO_4:
|
||||
me->CastSpell((Unit*)nullptr, SPELL_SUPERMASSIVE_FAIL);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case EVENT_OUTRO_5:
|
||||
if (Creature* brann = me->SummonCreature(NPC_BRANN_BRONZBEARD_ALG, BrannOutroPos[0], TEMPSUMMON_TIMED_DESPAWN, 131500))
|
||||
|
|
@ -985,7 +985,7 @@ public:
|
|||
{
|
||||
case ACTION_ACTIVATE_STAR:
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
_isActive = true;
|
||||
|
||||
if (Player* target = SelectTargetFromPlayerList(250.0f))
|
||||
|
|
|
|||
|
|
@ -802,7 +802,7 @@ public:
|
|||
me->StopMoving();
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetGuidValue(UNIT_FIELD_TARGET, ObjectGuid::Empty);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
|
||||
me->SetUnitFlag(UNIT_FLAG_STUNNED);
|
||||
me->SendMonsterMove(_flyTarget->GetPositionX(), _flyTarget->GetPositionY(), _flyTarget->GetPositionZ() + 15, 1500, SPLINEFLAG_FLYING);
|
||||
|
||||
me->CastSpell(me, SPELL_LIGHTNING_TENDRILS, true);
|
||||
|
|
|
|||
|
|
@ -308,11 +308,11 @@ public:
|
|||
if (m_pInstance->GetData(TYPE_LEVIATHAN) != SPECIAL)
|
||||
{
|
||||
m_pInstance->SetData(TYPE_LEVIATHAN, NOT_STARTED);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
else
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
m_pInstance->SetData(DATA_VEHICLE_SPAWN, VEHICLE_POS_LEVIATHAN);
|
||||
_startTimer = 0;
|
||||
}
|
||||
|
|
@ -372,7 +372,7 @@ public:
|
|||
}
|
||||
else if (_speakTimer > 41000 && _speakTimer < 60000)
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
TurnGates(true, false);
|
||||
me->MonsterMoveWithSpeed(homePos.GetPositionX(), homePos.GetPositionY(), homePos.GetPositionZ(), 100.0f);
|
||||
me->UpdatePosition(homePos);
|
||||
|
|
@ -768,14 +768,14 @@ public:
|
|||
{
|
||||
if (apply)
|
||||
{
|
||||
turret->SetUInt32Value(UNIT_FIELD_FLAGS, 0);
|
||||
turret->ReplaceAllUnitFlags(UNIT_FLAG_NONE);
|
||||
turret->GetAI()->AttackStart(who);
|
||||
if (Creature* leviathan = me->GetVehicleCreatureBase())
|
||||
leviathan->AI()->Talk(FLAME_LEVIATHAN_SAY_PLAYER_RIDING);
|
||||
}
|
||||
else
|
||||
{
|
||||
turret->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
turret->ReplaceAllUnitFlags(UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
if (turret->GetTypeId() == TYPEID_UNIT)
|
||||
turret->ToCreature()->AI()->EnterEvadeMode();
|
||||
}
|
||||
|
|
@ -817,7 +817,7 @@ public:
|
|||
|
||||
if (Vehicle* vehicle = me->GetVehicle())
|
||||
if (Unit* device = vehicle->GetPassenger(SEAT_DEVICE))
|
||||
device->SetUInt32Value(UNIT_FIELD_FLAGS, 0); // unselectable
|
||||
device->ReplaceAllUnitFlags(UNIT_FLAG_NONE); // unselectable
|
||||
|
||||
if (Creature* leviathan = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(TYPE_LEVIATHAN)))
|
||||
leviathan->AI()->DoAction(ACTION_DESTROYED_TURRET);
|
||||
|
|
@ -874,7 +874,7 @@ public:
|
|||
if (me->GetVehicle())
|
||||
{
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
|
||||
if (Unit* player = me->GetVehicle()->GetPassenger(SEAT_PLAYER))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -343,7 +343,7 @@ public:
|
|||
me->PlayDirectSound(SOUND_DEATH);
|
||||
|
||||
damage = 0;
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetFaction(FACTION_FRIENDLY);
|
||||
me->SetHealth(me->GetMaxHealth());
|
||||
me->CombatStop();
|
||||
|
|
|
|||
|
|
@ -307,7 +307,7 @@ public:
|
|||
for (ObjectGuid const& guid : summons)
|
||||
if (Creature* sv = ObjectAccessor::GetCreature(*me, guid))
|
||||
{
|
||||
sv->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
sv->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
sv->GetMotionMaster()->MoveIdle();
|
||||
sv->GetMotionMaster()->MoveCharge(1852.78f, 81.38f, 342.461f, 28.0f);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -338,7 +338,7 @@ public:
|
|||
{
|
||||
damage = 0;
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
|
||||
{
|
||||
if (pInstance)
|
||||
{
|
||||
|
|
@ -346,7 +346,7 @@ public:
|
|||
me->CastSpell(me, 64899, true); // credit
|
||||
}
|
||||
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetFaction(FACTION_FRIENDLY);
|
||||
me->GetMotionMaster()->Clear();
|
||||
me->AttackStop();
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ public:
|
|||
{
|
||||
timer = 1000;
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
void JustReachedHome() override
|
||||
|
|
@ -126,7 +126,7 @@ public:
|
|||
if (spell->Id == SPELL_ACTIVATE_CONSTRUCT)
|
||||
{
|
||||
me->RemoveAura(38757);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
if (InstanceScript* instance = me->GetInstanceScript())
|
||||
if (Creature* ignis = ObjectAccessor::GetCreature(*me, instance->GetGuidData(TYPE_IGNIS)))
|
||||
|
|
|
|||
|
|
@ -235,7 +235,7 @@ public:
|
|||
_looksAchievement = true;
|
||||
|
||||
me->SetDisableGravity(true);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
me->DisableRotate(true);
|
||||
|
||||
events.Reset();
|
||||
|
|
|
|||
|
|
@ -335,7 +335,7 @@ public:
|
|||
ResetGameObjects();
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
|
||||
if (pInstance && pInstance->GetData(TYPE_MIMIRON) != DONE)
|
||||
pInstance->SetData(TYPE_MIMIRON, NOT_STARTED);
|
||||
|
|
@ -358,7 +358,7 @@ public:
|
|||
me->setActive(true);
|
||||
DoZoneInCombat();
|
||||
me->RemoveAllAuras();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
events.Reset();
|
||||
|
||||
if (Creature* c = GetLMK2())
|
||||
|
|
@ -1030,8 +1030,8 @@ public:
|
|||
c->ExitVehicle(); // this should never happen!
|
||||
if (Creature* c = me->SummonCreature(NPC_LEVIATHAN_MKII_CANNON, *me, TEMPSUMMON_MANUAL_DESPAWN))
|
||||
c->EnterVehicle(me, 3);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
|
||||
|
|
@ -1050,7 +1050,7 @@ public:
|
|||
break;
|
||||
case 1:
|
||||
Phase = 1;
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
if (Unit* target = SelectTargetFromPlayerList(75.0f))
|
||||
AttackStart(target);
|
||||
DoZoneInCombat();
|
||||
|
|
@ -1067,7 +1067,7 @@ public:
|
|||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
DoResetThreat();
|
||||
Phase = 4;
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
if (Unit* target = SelectTargetFromPlayerList(75.0f))
|
||||
AttackStart(target);
|
||||
DoZoneInCombat();
|
||||
|
|
@ -1089,9 +1089,9 @@ public:
|
|||
me->SetReactState(REACT_PASSIVE);
|
||||
if (Phase == 1)
|
||||
{
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->GetMotionMaster()->Clear();
|
||||
me->AttackStop();
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
|
|
@ -1107,9 +1107,9 @@ public:
|
|||
}
|
||||
else if (Phase == 4)
|
||||
{
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
me->RemoveAllAurasExceptType(SPELL_AURA_CONTROL_VEHICLE);
|
||||
me->CastSpell(me, SPELL_SELF_REPAIR, false);
|
||||
|
|
@ -1264,7 +1264,7 @@ public:
|
|||
{
|
||||
if( spell->Id == SPELL_SELF_REPAIR )
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
}
|
||||
}
|
||||
|
|
@ -1326,7 +1326,7 @@ public:
|
|||
Phase = 2;
|
||||
fighting = true;
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_SPELL_CAST_OMNI);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_SPELL_HEAT_WAVE, 10000);
|
||||
events.ScheduleEvent(EVENT_SPELL_ROCKET_STRIKE, 16000);
|
||||
|
|
@ -1343,7 +1343,7 @@ public:
|
|||
case 4:
|
||||
Phase = 4;
|
||||
fighting = true;
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_REINSTALL_ROCKETS, 3000);
|
||||
events.ScheduleEvent(EVENT_SPELL_ROCKET_STRIKE, 16000);
|
||||
|
|
@ -1382,9 +1382,9 @@ public:
|
|||
me->SetReactState(REACT_PASSIVE);
|
||||
if (Phase == 2)
|
||||
{
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
SetData(1, 0);
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
me->RemoveAllAurasExceptType(SPELL_AURA_CONTROL_VEHICLE);
|
||||
|
|
@ -1397,9 +1397,9 @@ public:
|
|||
}
|
||||
else if (Phase == 4)
|
||||
{
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
me->RemoveAllAurasExceptType(SPELL_AURA_CONTROL_VEHICLE);
|
||||
me->CastSpell(me, SPELL_SELF_REPAIR, false);
|
||||
|
|
@ -1606,7 +1606,7 @@ public:
|
|||
{
|
||||
if( spell->Id == SPELL_SELF_REPAIR )
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
}
|
||||
}
|
||||
|
|
@ -1666,7 +1666,7 @@ public:
|
|||
break;
|
||||
case 3:
|
||||
Phase = 3;
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
if (Unit* target = SelectTargetFromPlayerList(75.0f))
|
||||
AttackStart(target);
|
||||
DoZoneInCombat();
|
||||
|
|
@ -1683,7 +1683,7 @@ public:
|
|||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
DoResetThreat();
|
||||
Phase = 4;
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
if (Unit* target = SelectTargetFromPlayerList(75.0f))
|
||||
AttackStart(target);
|
||||
DoZoneInCombat();
|
||||
|
|
@ -1714,9 +1714,9 @@ public:
|
|||
me->SetReactState(REACT_PASSIVE);
|
||||
if (Phase == 3)
|
||||
{
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->GetMotionMaster()->Clear();
|
||||
me->StopMoving();
|
||||
me->AttackStop();
|
||||
|
|
@ -1734,9 +1734,9 @@ public:
|
|||
}
|
||||
else if (Phase == 4)
|
||||
{
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
me->RemoveAllAurasExceptType(SPELL_AURA_CONTROL_VEHICLE);
|
||||
me->CastSpell(me, SPELL_SELF_REPAIR, false);
|
||||
|
|
@ -1935,7 +1935,7 @@ public:
|
|||
{
|
||||
if( spell->Id == SPELL_SELF_REPAIR )
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -352,13 +352,13 @@ public:
|
|||
{
|
||||
if (apply)
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_PACIFIED);
|
||||
me->SetUnitFlag(UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_PACIFIED);
|
||||
me->DisableRotate(true);
|
||||
me->AddUnitState(UNIT_STATE_ROOT);
|
||||
}
|
||||
else
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_PACIFIED);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_PACIFIED);
|
||||
me->DisableRotate(false);
|
||||
me->ClearUnitState(UNIT_STATE_ROOT);
|
||||
me->resetAttackTimer(BASE_ATTACK);
|
||||
|
|
@ -569,7 +569,7 @@ public:
|
|||
if (!_encounterFinished)
|
||||
{
|
||||
_encounterFinished = true;
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetFaction(FACTION_FRIENDLY);
|
||||
me->SetHealth(me->GetMaxHealth());
|
||||
me->CombatStop();
|
||||
|
|
@ -1720,7 +1720,7 @@ public:
|
|||
events.RepeatEvent(12000);
|
||||
break;
|
||||
case EVENT_DR_CHAMPION_WH:
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISARMED))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_DISARMED))
|
||||
me->CastSpell(me, SPELL_WHIRLWIND, false);
|
||||
events.RepeatEvent(6000);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ public:
|
|||
_gravityAchievement = true;
|
||||
|
||||
me->SetByteValue(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_STAND_STATE, UNIT_STAND_STATE_STAND); // emerge
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetControlled(false, UNIT_STATE_STUNNED);
|
||||
|
||||
if (m_pInstance)
|
||||
|
|
@ -370,7 +370,7 @@ public:
|
|||
// Animation events
|
||||
case EVENT_START_SECOND_PHASE:
|
||||
me->TextEmote("XT-002 Deconstructor's heart is exposed and leaking energy.", nullptr, true);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
if (Unit* heart = me->GetVehicleKit() ? me->GetVehicleKit()->GetPassenger(HEART_VEHICLE_SEAT) : nullptr)
|
||||
heart->GetAI()->DoAction(ACTION_AWAKEN_HEART);
|
||||
|
||||
|
|
@ -394,7 +394,7 @@ public:
|
|||
events.ScheduleEvent(EVENT_REMOVE_EMOTE, 4000);
|
||||
return;
|
||||
case EVENT_REMOVE_EMOTE:
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetControlled(false, UNIT_STATE_STUNNED);
|
||||
|
||||
RescheduleEvents();
|
||||
|
|
@ -421,7 +421,7 @@ public:
|
|||
{
|
||||
npc_xt002_heartAI(Creature* pCreature) : PassiveAI(pCreature), summons(me)
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
SummonList summons;
|
||||
|
|
@ -464,7 +464,7 @@ public:
|
|||
me->SetHealth(me->GetMaxHealth());
|
||||
me->CastSpell(me, SPELL_HEART_OVERLOAD, true);
|
||||
me->CastSpell(me, SPELL_EXPOSED_HEART, false); // Channeled
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
|
||||
if (!summons.HasEntry(NPC_PILE_TRIGGER))
|
||||
SummonPiles();
|
||||
|
|
@ -477,7 +477,7 @@ public:
|
|||
pXT002->AI()->DoAction(_damageDone);
|
||||
_damageDone = 0;
|
||||
}
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -544,7 +544,7 @@ public:
|
|||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE))
|
||||
{
|
||||
_timerSpawn += diff;
|
||||
if (_timerSpawn >= 1900)
|
||||
|
|
|
|||
|
|
@ -415,13 +415,13 @@ public:
|
|||
{
|
||||
if (apply)
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
me->DisableRotate(false);
|
||||
me->ClearUnitState(UNIT_STATE_ROOT);
|
||||
}
|
||||
else
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
me->DisableRotate(true);
|
||||
me->AddUnitState(UNIT_STATE_ROOT);
|
||||
}
|
||||
|
|
@ -563,7 +563,7 @@ public:
|
|||
{
|
||||
if ((cr = me->SummonCreature(NPC_DESCEND_INTO_MADNESS, yoggPortalLoc[i].x, yoggPortalLoc[i].y, yoggPortalLoc[i].z, 0, TEMPSUMMON_TIMED_DESPAWN, 25000)))
|
||||
{
|
||||
cr->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_NON_ATTACKABLE);
|
||||
cr->SetUnitFlag(UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_NON_ATTACKABLE);
|
||||
cr->SetArmor(_currentIllusion);
|
||||
}
|
||||
}
|
||||
|
|
@ -1112,7 +1112,7 @@ public:
|
|||
me->HandleEmoteCommand(EMOTE_ONESHOT_EMERGE);
|
||||
me->SetInCombatWithZone();
|
||||
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_PACIFIED);
|
||||
me->SetUnitFlag(UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_PACIFIED);
|
||||
}
|
||||
else if (param == ACTION_YOGG_SARON_START_YELL)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -185,7 +185,7 @@ public:
|
|||
else // if (m_algalonTimer = TIMER_ALGALON_TO_SUMMON)
|
||||
{
|
||||
m_algalonTimer = TIMER_ALGALON_SUMMONED;
|
||||
algalon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
algalon->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@ public:
|
|||
me->SetDisplayId(DISPLAYID_DEFAULT);
|
||||
me->LoadEquipment(1);
|
||||
FeignDeath(false);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||
me->DisableRotate(false);
|
||||
|
||||
|
|
@ -146,7 +146,7 @@ public:
|
|||
damage = 0;
|
||||
me->InterruptNonMeleeSpells(true);
|
||||
me->RemoveAllAuras();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||
me->DisableRotate(false);
|
||||
me->GetMotionMaster()->MovementExpired();
|
||||
|
|
@ -207,15 +207,15 @@ public:
|
|||
if (apply)
|
||||
{
|
||||
me->SetStandState(UNIT_STAND_STATE_DEAD);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
}
|
||||
else
|
||||
{
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
||||
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
}
|
||||
}
|
||||
|
|
@ -296,7 +296,7 @@ public:
|
|||
c->DespawnOrUnsummon();
|
||||
summons.DespawnAll();
|
||||
}
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
AttackStart(me->GetVictim());
|
||||
me->GetMotionMaster()->MoveChase(me->GetVictim());
|
||||
Talk(YELL_AGGRO_2);
|
||||
|
|
@ -385,7 +385,7 @@ public:
|
|||
break;
|
||||
}
|
||||
|
||||
if (!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -276,14 +276,14 @@ public:
|
|||
damage = 0;
|
||||
me->InterruptNonMeleeSpells(true);
|
||||
me->RemoveAllAuras();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetControlled(true, UNIT_STATE_ROOT);
|
||||
me->GetMotionMaster()->MovementExpired();
|
||||
me->GetMotionMaster()->MoveIdle();
|
||||
me->StopMoving();
|
||||
me->SetStandState(UNIT_STAND_STATE_DEAD);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
||||
me->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
events.RescheduleEvent(EVENT_RESURRECT, 12000);
|
||||
}
|
||||
|
|
@ -311,12 +311,12 @@ public:
|
|||
case 0:
|
||||
break;
|
||||
case EVENT_SPELL_DECREPIFY:
|
||||
if( !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE) )
|
||||
if( !me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE) )
|
||||
me->CastSpell(me->GetVictim(), SPELL_DECREPIFY, false);
|
||||
events.RepeatEvent(urand(15000, 25000));
|
||||
break;
|
||||
case EVENT_SPELL_BONE_ARMOR:
|
||||
if( !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE) )
|
||||
if( !me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE) )
|
||||
me->CastSpell((Unit*)nullptr, SPELL_BONE_ARMOR, false);
|
||||
events.RepeatEvent(urand(40000, 120000));
|
||||
break;
|
||||
|
|
@ -324,19 +324,19 @@ public:
|
|||
events.DelayEvents(3500);
|
||||
DoCast(me, SPELL_SCOURGE_RESURRECTION, true);
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
|
||||
me->RemoveUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
events.RescheduleEvent(EVENT_RESURRECT_2, 3000);
|
||||
break;
|
||||
case EVENT_RESURRECT_2:
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||
me->GetMotionMaster()->MoveChase(me->GetVictim());
|
||||
break;
|
||||
}
|
||||
|
||||
if( !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE) )
|
||||
if( !me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE) )
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ public:
|
|||
if (Creature* c = instance->GetCreature(NPC_DarkRangerMarrahGUID))
|
||||
{
|
||||
c->SetReactState(REACT_PASSIVE);
|
||||
c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if (plr && plr->GetTeamId() == TEAM_HORDE)
|
||||
{
|
||||
if (!c->IsVisible())
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ public:
|
|||
me->SetCanFly(false);
|
||||
me->SetDisableGravity(false);
|
||||
me->SetFacingTo(0.25f);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ public:
|
|||
OrbGUID.Clear();
|
||||
Counter = 0;
|
||||
me->CastSpell(me, SPELL_FREEZE, true);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetControlled(false, UNIT_STATE_STUNNED);
|
||||
|
||||
if (m_pInstance)
|
||||
|
|
@ -218,7 +218,7 @@ public:
|
|||
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
{
|
||||
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
|
||||
if (me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
|
||||
return;
|
||||
|
||||
ScriptedAI::MoveInLineOfSight(who);
|
||||
|
|
@ -283,7 +283,7 @@ public:
|
|||
orb->RemoveAurasDueToSpell(SPELL_AWAKEN_SUBBOSS);
|
||||
|
||||
me->RemoveAurasDueToSpell(SPELL_FREEZE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetControlled(false, UNIT_STATE_STUNNED);
|
||||
// SETINCOMBATWITHZONE
|
||||
|
||||
|
|
@ -364,7 +364,7 @@ public:
|
|||
{
|
||||
summons.DespawnAll();
|
||||
events.Reset();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit*) override {}
|
||||
|
|
@ -373,12 +373,12 @@ public:
|
|||
{
|
||||
if (param == ACTION_UNFREEZE)
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
else if (param == ACTION_UNFREEZE2)
|
||||
{
|
||||
me->RemoveAurasDueToSpell(SPELL_FREEZE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetInCombatWithZone();
|
||||
|
||||
events.ScheduleEvent(EVENT_JORMUNGAR_ACID_SPIT, 3000);
|
||||
|
|
@ -391,7 +391,7 @@ public:
|
|||
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
{
|
||||
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
return;
|
||||
|
||||
ScriptedAI::MoveInLineOfSight(who);
|
||||
|
|
@ -490,7 +490,7 @@ public:
|
|||
void Reset() override
|
||||
{
|
||||
events.Reset();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit*) override {}
|
||||
|
|
@ -499,12 +499,12 @@ public:
|
|||
{
|
||||
if (param == ACTION_UNFREEZE)
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
else if (param == ACTION_UNFREEZE2)
|
||||
{
|
||||
me->RemoveAurasDueToSpell(SPELL_FREEZE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetInCombatWithZone();
|
||||
|
||||
events.ScheduleEvent(EVENT_RHINO_STOMP, 3000);
|
||||
|
|
@ -515,7 +515,7 @@ public:
|
|||
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
{
|
||||
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
return;
|
||||
|
||||
ScriptedAI::MoveInLineOfSight(who);
|
||||
|
|
@ -600,7 +600,7 @@ public:
|
|||
void Reset() override
|
||||
{
|
||||
events.Reset();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit*) override {}
|
||||
|
|
@ -609,12 +609,12 @@ public:
|
|||
{
|
||||
if (param == ACTION_UNFREEZE)
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
else if (param == ACTION_UNFREEZE2)
|
||||
{
|
||||
me->RemoveAurasDueToSpell(SPELL_FREEZE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetInCombatWithZone();
|
||||
|
||||
events.ScheduleEvent(EVENT_FURBOLG_CHAIN, 3000);
|
||||
|
|
@ -625,7 +625,7 @@ public:
|
|||
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
{
|
||||
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
return;
|
||||
|
||||
ScriptedAI::MoveInLineOfSight(who);
|
||||
|
|
@ -708,7 +708,7 @@ public:
|
|||
void Reset() override
|
||||
{
|
||||
events.Reset();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit*) override {}
|
||||
|
|
@ -717,12 +717,12 @@ public:
|
|||
{
|
||||
if (param == ACTION_UNFREEZE)
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
else if (param == ACTION_UNFREEZE2)
|
||||
{
|
||||
me->RemoveAurasDueToSpell(SPELL_FREEZE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetInCombatWithZone();
|
||||
|
||||
events.ScheduleEvent(EVENT_WORGEN_MORTAL, 3000);
|
||||
|
|
@ -733,7 +733,7 @@ public:
|
|||
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
{
|
||||
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
return;
|
||||
|
||||
ScriptedAI::MoveInLineOfSight(who);
|
||||
|
|
|
|||
|
|
@ -133,10 +133,10 @@ public:
|
|||
events.Reset();
|
||||
events2.Reset();
|
||||
if (!Started)
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
else
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetHover(true);
|
||||
}
|
||||
}
|
||||
|
|
@ -152,7 +152,7 @@ public:
|
|||
if (data != 1 || param != 1 || Started || (instance && instance->GetData(DATA_SVALA_SORROWGRAVE) == DONE))
|
||||
return;
|
||||
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
Started = true;
|
||||
me->setActive(true);
|
||||
events2.ScheduleEvent(EVENT_SVALA_START, 5000);
|
||||
|
|
@ -247,7 +247,7 @@ public:
|
|||
me->UpdateEntry(NPC_SVALA_SORROWGRAVE);
|
||||
me->SetCorpseDelay(sWorld->getIntConfig(CONFIG_CORPSE_DECAY_ELITE));
|
||||
me->SetFloatValue(UNIT_FIELD_HOVERHEIGHT, 6.0f);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
if (Creature* Arthas = ObjectAccessor::GetCreature(*me, ArthasGUID))
|
||||
Arthas->InterruptNonMeleeSpells(false);
|
||||
me->RemoveAllAuras();
|
||||
|
|
@ -283,7 +283,7 @@ public:
|
|||
break;
|
||||
case EVENT_SVALA_TALK9:
|
||||
me->SetFloatValue(UNIT_FIELD_HOVERHEIGHT, 3.0f);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->LoadEquipment(1, true);
|
||||
me->setActive(false);
|
||||
if (Player* target = SelectTargetFromPlayerList(100.0f))
|
||||
|
|
@ -337,7 +337,7 @@ public:
|
|||
me->SetControlled(true, UNIT_STATE_ROOT);
|
||||
me->RemoveAurasByType(SPELL_AURA_PERIODIC_DAMAGE);
|
||||
me->RemoveAurasByType(SPELL_AURA_PERIODIC_DAMAGE_PERCENT);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
|
||||
events.DelayEvents(25001); // +1 just to be sure
|
||||
|
|
@ -349,7 +349,7 @@ public:
|
|||
me->CastSpell(me, SPELL_RITUAL_STRIKE, true);
|
||||
return;
|
||||
case EVENT_SORROWGRAVE_FINISH_RITUAL:
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||
AttackStart(me->GetVictim());
|
||||
me->GetMotionMaster()->MoveFall(0, true);
|
||||
|
|
|
|||
|
|
@ -146,22 +146,22 @@ public:
|
|||
summons2.DespawnAll();
|
||||
BoatNum = 0;
|
||||
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_DISABLE_MOVE);
|
||||
|
||||
if(pInstance)
|
||||
{
|
||||
pInstance->SetData(DATA_KING_YMIRON, NOT_STARTED);
|
||||
pInstance->SetData(DATA_YMIRON_ACHIEVEMENT, true);
|
||||
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
if (pInstance->GetData(DATA_SKADI_THE_RUTHLESS) == DONE)
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
}
|
||||
|
||||
void EnterEvadeMode() override
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
}
|
||||
|
||||
|
|
@ -172,7 +172,7 @@ public:
|
|||
{
|
||||
pInstance->SetData(DATA_KING_YMIRON, IN_PROGRESS);
|
||||
if (pInstance->GetData(DATA_SKADI_THE_RUTHLESS) == DONE)
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
events.RescheduleEvent(EVENT_YMIRON_BANE, 18000);
|
||||
|
|
@ -218,12 +218,12 @@ public:
|
|||
if (me->GetHealth() < std::max(0.0f, float(me->GetMaxHealth() * (1.0f - (IsHeroic() ? 0.2f : 0.334f)*float(BoatNum + 1)))))
|
||||
{
|
||||
events.DelayEvents(12000);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->InterruptNonMeleeSpells(true);
|
||||
me->CastSpell(me, SPELL_SCREAMS_OF_THE_DEAD, true);
|
||||
me->GetMotionMaster()->Clear();
|
||||
me->GetMotionMaster()->MovePoint(0, BoatStructure[BoatOrder[BoatNum]].MoveX, BoatStructure[BoatOrder[BoatNum]].MoveY, BoatStructure[BoatOrder[BoatNum]].MoveZ);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
summons.DespawnAll();
|
||||
|
||||
// Spawn flames in previous boat if any
|
||||
|
|
@ -264,12 +264,12 @@ public:
|
|||
// Spawn it!
|
||||
if (Creature* king = me->SummonCreature(BoatStructure[BoatOrder[BoatNum - 1]].npc, BoatStructure[BoatOrder[BoatNum - 1]].SpawnX, BoatStructure[BoatOrder[BoatNum - 1]].SpawnY, BoatStructure[BoatOrder[BoatNum - 1]].SpawnZ, BoatStructure[BoatOrder[BoatNum - 1]].SpawnO, TEMPSUMMON_CORPSE_DESPAWN, 0))
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
king->CastSpell(me, SPELL_CHANNEL_SPIRIT_TO_YMIRON, true);
|
||||
summons.Summon(king);
|
||||
king->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
king->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
|
||||
king->SetDisableGravity(true);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
me->GetMotionMaster()->MoveChase(me->GetVictim());
|
||||
switch(BoatOrder[BoatNum - 1])
|
||||
{
|
||||
|
|
@ -297,7 +297,7 @@ public:
|
|||
summons.Summon(sf);
|
||||
sf->SetSpeed(MOVE_RUN, 0.4f);
|
||||
sf->AddAura(IsHeroic() ? SPELL_SPIRIT_FOUNT_H : SPELL_SPIRIT_FOUNT_N, sf);
|
||||
sf->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
sf->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
sf->GetMotionMaster()->MoveFollow(me->GetVictim(), 0, rand_norm()*M_PI * 2);
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -161,7 +161,7 @@ public:
|
|||
HandleGameObject(SkadiRuthlessDoor, true);
|
||||
// Make ymiron attackable
|
||||
if (Creature* cr = instance->GetCreature(KingYmiron))
|
||||
cr->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
cr->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
Encounters[type] = data;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -184,7 +184,7 @@ public:
|
|||
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
events.Reset();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_FAILED, 1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -192,7 +192,7 @@ public:
|
|||
{
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
events.Reset();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_FAILED, 1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ public:
|
|||
bIsFrenzy = false;
|
||||
uiDrainedTimer = 15000;
|
||||
uiWaterBoltVolleyTimer = urand(7000, 12000);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetDisplayId(me->GetNativeDisplayId());
|
||||
}
|
||||
|
||||
|
|
@ -138,7 +138,7 @@ public:
|
|||
me->CastSpell(me, SPELL_PROTECTIVE_BUBBLE, true);
|
||||
}
|
||||
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetDisplayId(me->GetNativeDisplayId());
|
||||
}
|
||||
|
||||
|
|
@ -191,7 +191,7 @@ public:
|
|||
me->CastSpell(me, SPELL_DRAINED, true);
|
||||
bIsExploded = true;
|
||||
uiDrainedTimer = 15000;
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetDisplayId(11686);
|
||||
for (uint8 i = 0; i < MAX_SPAWN_LOC; ++i)
|
||||
{
|
||||
|
|
@ -273,7 +273,7 @@ public:
|
|||
{
|
||||
Talk(SAY_DEATH);
|
||||
bIsExploded = false;
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetDisplayId(me->GetNativeDisplayId());
|
||||
globules.DespawnAll();
|
||||
if (pInstance)
|
||||
|
|
@ -292,7 +292,7 @@ public:
|
|||
void EnterEvadeMode() override
|
||||
{
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_FAILED, 1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ public:
|
|||
void EnterEvadeMode() override
|
||||
{
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_FAILED, 1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ public:
|
|||
{
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
events.Reset();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_FAILED, 1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -204,7 +204,7 @@ public:
|
|||
{
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
events.Reset();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_FAILED, 1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -174,7 +174,7 @@ public:
|
|||
{
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
events.Reset();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_FAILED, 1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -345,13 +345,13 @@ public:
|
|||
if (Creature* pGuard1 = instance->GetCreature(NPC_ErekemGuardGUID[0]))
|
||||
{
|
||||
pGuard1->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
pGuard1->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
pGuard1->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
pGuard1->GetMotionMaster()->MovePoint(0, BossStartMove21);
|
||||
}
|
||||
if (Creature* pGuard2 = instance->GetCreature(NPC_ErekemGuardGUID[1]))
|
||||
{
|
||||
pGuard2->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
pGuard2->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
pGuard2->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
pGuard2->GetMotionMaster()->MovePoint(0, BossStartMove22);
|
||||
}
|
||||
break;
|
||||
|
|
@ -384,7 +384,7 @@ public:
|
|||
if (pBoss)
|
||||
{
|
||||
pBoss->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
pBoss->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
pBoss->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
pBoss->SetReactState(REACT_AGGRESSIVE);
|
||||
if ((WaveCount == 6 && m_auiEncounter[0] == DONE) || (WaveCount == 12 && m_auiEncounter[1] == DONE))
|
||||
pBoss->SetLootMode(0);
|
||||
|
|
@ -497,7 +497,7 @@ public:
|
|||
break;
|
||||
case EVENT_CYANIGOSA_ATTACK:
|
||||
if (Creature* c = instance->GetCreature(NPC_CyanigosaGUID))
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -594,15 +594,15 @@ public:
|
|||
HandleGameObject(GO_ZuramatCellGUID, false);
|
||||
|
||||
// respawn bosses
|
||||
if (Creature* c = instance->GetCreature(NPC_MoraggGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); }
|
||||
if (Creature* c = instance->GetCreature(NPC_MoraggGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); }
|
||||
if (Creature* c = instance->GetCreature(NPC_ErekemGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); }
|
||||
if (Creature* c = instance->GetCreature(NPC_ErekemGuardGUID[0])) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); }
|
||||
if (Creature* c = instance->GetCreature(NPC_ErekemGuardGUID[1])) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); }
|
||||
if (Creature* c = instance->GetCreature(NPC_IchoronGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); }
|
||||
if (Creature* c = instance->GetCreature(NPC_LavanthorGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); }
|
||||
if (Creature* c = instance->GetCreature(NPC_XevozzGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); }
|
||||
if (Creature* c = instance->GetCreature(NPC_ZuramatGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); }
|
||||
if (Creature* c = instance->GetCreature(NPC_MoraggGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); }
|
||||
if (Creature* c = instance->GetCreature(NPC_MoraggGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); }
|
||||
if (Creature* c = instance->GetCreature(NPC_ErekemGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); }
|
||||
if (Creature* c = instance->GetCreature(NPC_ErekemGuardGUID[0])) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); }
|
||||
if (Creature* c = instance->GetCreature(NPC_ErekemGuardGUID[1])) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); }
|
||||
if (Creature* c = instance->GetCreature(NPC_IchoronGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); }
|
||||
if (Creature* c = instance->GetCreature(NPC_LavanthorGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); }
|
||||
if (Creature* c = instance->GetCreature(NPC_XevozzGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); }
|
||||
if (Creature* c = instance->GetCreature(NPC_ZuramatGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC); }
|
||||
if (Creature* c = instance->GetCreature(NPC_CyanigosaGUID)) { c->DespawnOrUnsummon(); }
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -277,16 +277,16 @@ struct violet_hold_trashAI : public npc_escortAI
|
|||
|
||||
void EnterCombat(Unit* who) override
|
||||
{
|
||||
if (!who->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!who->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
{
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
}
|
||||
}
|
||||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (!who->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (!who->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
ScriptedAI::AttackStart(who);
|
||||
}
|
||||
|
||||
|
|
@ -372,7 +372,7 @@ struct violet_hold_trashAI : public npc_escortAI
|
|||
void CreatureStartAttackDoor()
|
||||
{
|
||||
RemoveEscortState(STATE_ESCORT_ESCORTING | STATE_ESCORT_RETURNING | STATE_ESCORT_PAUSED);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->CastSpell((Unit*)nullptr, SPELL_DESTROY_DOOR_SEAL, true);
|
||||
}
|
||||
|
||||
|
|
@ -380,7 +380,7 @@ struct violet_hold_trashAI : public npc_escortAI
|
|||
{
|
||||
if (!HasEscortState(STATE_ESCORT_ESCORTING))
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetHomePosition(1845.577759f + rand_norm() * 5 - 2.5f, 800.681152f + rand_norm() * 5 - 2.5f, 44.104248f, M_PI);
|
||||
}
|
||||
|
||||
|
|
@ -1117,7 +1117,7 @@ public:
|
|||
else
|
||||
{
|
||||
bOpening = false;
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetDisplayId(11686);
|
||||
me->CastSpell(me, SPELL_TELEPORT_VISUAL, true);
|
||||
me->DespawnOrUnsummon(1000);
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ public:
|
|||
owner->CastSpell(owner, SPELL_SUBDUED, true);
|
||||
GetCaster()->CastSpell(GetCaster(), SPELL_DRAKE_HATCHLING_SUBDUED, true);
|
||||
owner->SetFaction(FACTION_FRIENDLY);
|
||||
owner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
owner->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
owner->DespawnOrUnsummon(3 * MINUTE * IN_MILLISECONDS);
|
||||
}
|
||||
|
||||
|
|
@ -179,7 +179,7 @@ public:
|
|||
DoCast(me, SPELL_SUMMON_WORM, true);
|
||||
if (Unit* worm = me->FindNearestCreature(NPC_SCOURGED_BURROWER, 3.0f))
|
||||
{
|
||||
worm->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
worm->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
worm->HandleEmoteCommand(EMOTE_ONESHOT_EMERGE);
|
||||
}
|
||||
phaseTimer = 1000;
|
||||
|
|
@ -630,7 +630,7 @@ public:
|
|||
|
||||
void Initialize()
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
_events.ScheduleEvent(EVENT_ADD_ARCANE_CHAINS, 0);
|
||||
}
|
||||
|
||||
|
|
@ -1505,7 +1505,7 @@ public:
|
|||
|
||||
void Reset() override
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
_events.ScheduleEvent(EVENT_THASSARIAN_CAST, 1000);
|
||||
}
|
||||
|
||||
|
|
@ -1618,7 +1618,7 @@ public:
|
|||
if (Creature* arthas = me->SummonCreature(NPC_IMAGE_LICH_KING, 3729.4614f, 3520.386f, 473.4048f, 1.361f, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 120000))
|
||||
{
|
||||
_arthasGUID = arthas->GetGUID();
|
||||
arthas->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
arthas->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
arthas->SetReactState(REACT_PASSIVE);
|
||||
arthas->SetWalk(true);
|
||||
}
|
||||
|
|
@ -1653,7 +1653,7 @@ public:
|
|||
talbot->UpdateEntry(NPC_PRINCE_VALANAR);
|
||||
talbot->SetFullHealth();
|
||||
talbot->SetFaction(FACTION_UNDEAD_SCOURGE);
|
||||
talbot->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
talbot->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
talbot->SetReactState(REACT_PASSIVE);
|
||||
talbot->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
}
|
||||
|
|
@ -1673,7 +1673,7 @@ public:
|
|||
{
|
||||
_arlosGUID = arlos->GetGUID();
|
||||
arlos->SetWalk(true);
|
||||
arlos->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
arlos->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
arlos->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
arlos->GetMotionMaster()->MovePath(PATH_ARLOS, false);
|
||||
}
|
||||
|
|
@ -1681,7 +1681,7 @@ public:
|
|||
{
|
||||
_leryssaGUID = leryssa->GetGUID();
|
||||
leryssa->SetWalk(true);
|
||||
leryssa->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
leryssa->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
leryssa->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
leryssa->GetMotionMaster()->MovePath(PATH_LERYSSA, false);
|
||||
}
|
||||
|
|
@ -1771,12 +1771,12 @@ public:
|
|||
break;
|
||||
case EVENT_THASSARIAN_SCRIPT_17:
|
||||
// Talbot say text 4 and attack
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if (Creature* talbot = ObjectAccessor::GetCreature(*me, _talbotGUID))
|
||||
{
|
||||
talbot->AI()->Talk(SAY_TALBOT_4);
|
||||
talbot->SetFaction(FACTION_UNDEAD_SCOURGE_9);
|
||||
talbot->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
talbot->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
talbot->SetReactState(REACT_AGGRESSIVE);
|
||||
talbot->Attack(me, false);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -433,7 +433,7 @@ public:
|
|||
{
|
||||
npc_mageguard_dalaranAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
creature->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_NORMAL, true);
|
||||
creature->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_MAGIC, true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -484,7 +484,7 @@ public:
|
|||
|
||||
void EnterEvadeMode() override
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IN_COMBAT);
|
||||
me->ClearUnitState(UNIT_STATE_EVADE);
|
||||
}
|
||||
|
||||
|
|
@ -1076,7 +1076,7 @@ public:
|
|||
if (!_owner->IsAlive())
|
||||
return true;
|
||||
_owner->GetMotionMaster()->MoveRandom(5.0f);
|
||||
_owner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
_owner->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
_owner->SetReactState(REACT_AGGRESSIVE);
|
||||
_owner->CastSpell(_owner, SPELL_SAC_GHOUL_AREA_AURA, true);
|
||||
return true;
|
||||
|
|
@ -1093,7 +1093,7 @@ public:
|
|||
|
||||
bool Execute(uint64 /*time*/, uint32 /*diff*/) override
|
||||
{
|
||||
_owner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
_owner->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
_owner->SetReactState(REACT_PASSIVE);
|
||||
_owner->SetDisplayId(11686);
|
||||
return true;
|
||||
|
|
@ -1140,14 +1140,14 @@ public:
|
|||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))
|
||||
if (me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE))
|
||||
return;
|
||||
ScriptedAI::AttackStart(who);
|
||||
}
|
||||
|
||||
bool CanAIAttack(Unit const* target) const override
|
||||
{
|
||||
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE) || target->HasUnitState(UNIT_STATE_STUNNED) || me->GetDisplayId() == 11686)
|
||||
if (me->HasUnitFlag(UNIT_FLAG_NOT_SELECTABLE) || target->HasUnitState(UNIT_STATE_STUNNED) || me->GetDisplayId() == 11686)
|
||||
return false;
|
||||
Position homePos = me->GetHomePosition();
|
||||
return target->GetExactDistSq(&homePos) < 30.0f * 30.0f;
|
||||
|
|
@ -1162,7 +1162,7 @@ public:
|
|||
|
||||
void Deactivate()
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetDisplayId(11686);
|
||||
}
|
||||
|
|
@ -1273,7 +1273,7 @@ public:
|
|||
npc_q24545_vegardAI(Creature* c) : ScriptedAI(c)
|
||||
{
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
events.Reset();
|
||||
events.ScheduleEvent(1, 7000);
|
||||
events.ScheduleEvent(2, urand(7000, 20000));
|
||||
|
|
@ -1311,7 +1311,7 @@ public:
|
|||
break;
|
||||
case 1:
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
if (Unit* t = me->SelectNearestTarget(50.0f))
|
||||
AttackStart(t);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -111,8 +111,8 @@ public:
|
|||
if (Creature* RWORG = me->SummonCreature(NPC_RAVENOUS_WORG, me->GetPositionX() + 10, me->GetPositionY() + 8, me->GetPositionZ() + 2, 3.229f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000))
|
||||
{
|
||||
RWORG->SetReactState(REACT_PASSIVE);
|
||||
RWORG->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
RWORG->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
|
||||
RWORG->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
RWORG->SetUnitFlag(UNIT_FLAG_PACIFIED);
|
||||
_RavenousworgGUID = RWORG->GetGUID();
|
||||
}
|
||||
break;
|
||||
|
|
@ -145,8 +145,8 @@ public:
|
|||
{
|
||||
Unit::Kill(RWORG, Mrfloppy);
|
||||
Mrfloppy->ExitVehicle();
|
||||
RWORG->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
RWORG->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED);
|
||||
RWORG->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
RWORG->RemoveUnitFlag(UNIT_FLAG_PACIFIED);
|
||||
RWORG->AI()->AttackStart(player);
|
||||
Talk(SAY_VICTORY2);
|
||||
}
|
||||
|
|
@ -286,10 +286,10 @@ public:
|
|||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED))
|
||||
if (me->HasUnitFlag(UNIT_FLAG_PACIFIED))
|
||||
_pacified = true;
|
||||
|
||||
if (_pacified && !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED))
|
||||
if (_pacified && !me->HasUnitFlag(UNIT_FLAG_PACIFIED))
|
||||
_attack = true;
|
||||
|
||||
if (_attack)
|
||||
|
|
@ -298,10 +298,10 @@ public:
|
|||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED))
|
||||
if (me->HasUnitFlag(UNIT_FLAG_PACIFIED))
|
||||
_pacified = true;
|
||||
|
||||
if (_pacified && !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED))
|
||||
if (_pacified && !me->HasUnitFlag(UNIT_FLAG_PACIFIED))
|
||||
_attack = true;
|
||||
|
||||
CombatAI::UpdateAI(diff);
|
||||
|
|
@ -416,7 +416,7 @@ public:
|
|||
if (me->FindNearestGameObject(OBJECT_HAUNCH, 2.0f))
|
||||
{
|
||||
me->SetStandState(UNIT_STAND_STATE_DEAD);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
}
|
||||
_phase = 0;
|
||||
|
|
@ -545,7 +545,7 @@ public:
|
|||
void Reset() override
|
||||
{
|
||||
Initialize();
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
|
|
@ -564,7 +564,7 @@ public:
|
|||
if (spell->Id == SPELL_RENEW_SKIRMISHER && playerCaster->GetQuestStatus(QUEST_OVERWHELMED) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
me->SetFacingToObject(caster);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
Talk(SAY_RANDOM, caster);
|
||||
DoCast(caster, SPELL_KILL_CREDIT);
|
||||
|
||||
|
|
@ -743,7 +743,7 @@ public:
|
|||
{
|
||||
_playerGUID.Clear();
|
||||
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
}
|
||||
|
||||
|
|
@ -793,7 +793,7 @@ public:
|
|||
{
|
||||
if (spell->Id == SPELL_SMOKE_BOMB && caster->GetTypeId() == TYPEID_PLAYER)
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->CombatStop(false);
|
||||
_playerGUID = caster->GetGUID();
|
||||
|
|
|
|||
|
|
@ -489,7 +489,7 @@ public:
|
|||
events.RescheduleEvent(EVENT_START, 1000);
|
||||
me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
|
||||
me->SetWalk(true);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->setActive(true);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
}
|
||||
|
|
@ -750,7 +750,7 @@ public:
|
|||
else if (summon->GetEntry() != NPC_INVOKER_BASALEPH)
|
||||
{
|
||||
summon->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
|
||||
summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
summon->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
summon->GetMotionMaster()->MovePoint(4, 6135.97f, 2753.84f, 573.92f);
|
||||
}
|
||||
}
|
||||
|
|
@ -974,7 +974,7 @@ public:
|
|||
for (SummonList::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)
|
||||
if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))
|
||||
{
|
||||
summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
summon->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
if (summon->GetEntry() >= NPC_TIRION_EBON_KNIGHT && summon->GetEntry() <= NPC_TIRION_MOGRAINE)
|
||||
{
|
||||
if (summon->GetEntry() == NPC_TIRION_MOGRAINE)
|
||||
|
|
|
|||
|
|
@ -1429,7 +1429,7 @@ public:
|
|||
case 25:
|
||||
Talk(PLANE_EMOTE);
|
||||
DoCast(AURA_ENGINE);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FORCE_MOVEMENT);
|
||||
me->SetUnitFlag2(UNIT_FLAG2_FORCE_MOVEMENT);
|
||||
break;
|
||||
}
|
||||
pointId++;
|
||||
|
|
|
|||
|
|
@ -659,7 +659,7 @@ public:
|
|||
{
|
||||
caster->CastSpell(caster, SPELL_JORMUNGAR_SUBMERGE_VISUAL, true);
|
||||
caster->ApplySpellImmune(SPELL_COLOSSUS_GROUND_SLAM, IMMUNITY_ID, SPELL_COLOSSUS_GROUND_SLAM, true);
|
||||
caster->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
caster->RemoveUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
caster->SetControlled(false, UNIT_STATE_ROOT);
|
||||
for (uint8 i = 0; i < MAX_CREATURE_SPELLS; ++i)
|
||||
caster->m_spells[i] = 0;
|
||||
|
|
@ -670,7 +670,7 @@ public:
|
|||
{
|
||||
caster->RemoveAurasDueToSpell(SPELL_JORMUNGAR_SUBMERGE_VISUAL);
|
||||
caster->ApplySpellImmune(SPELL_COLOSSUS_GROUND_SLAM, IMMUNITY_ID, SPELL_COLOSSUS_GROUND_SLAM, false);
|
||||
caster->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
|
||||
caster->SetUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
caster->SetControlled(true, UNIT_STATE_ROOT);
|
||||
|
||||
if (CreatureTemplate const* ct = sObjectMgr->GetCreatureTemplate(caster->GetEntry()))
|
||||
|
|
|
|||
|
|
@ -395,7 +395,7 @@ public:
|
|||
if (player->IsWithinDistInMap(me, 80))
|
||||
return;
|
||||
me->SetFaction(FACTION_UNDEAD_SCOURGE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
}
|
||||
|
||||
|
|
@ -407,7 +407,7 @@ public:
|
|||
lichGUID.Clear();
|
||||
me->SetFaction(FACTION_UNDEAD_SCOURGE);
|
||||
me->SetVisible(false);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
|
|
@ -465,12 +465,12 @@ public:
|
|||
|
||||
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override
|
||||
{
|
||||
if (damage >= me->GetHealth() && !me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE))
|
||||
if (damage >= me->GetHealth() && !me->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE))
|
||||
{
|
||||
damage = 0;
|
||||
me->RemoveAllAuras();
|
||||
me->CombatStop();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetFaction(FACTION_FRIENDLY);
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_BETRAYAL_4, 1000);
|
||||
|
|
@ -635,7 +635,7 @@ public:
|
|||
|
||||
void Reset() override
|
||||
{
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue