mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-22 13:16:23 +00:00
refactor(Core/Unit): PC&NPC Immunity (#11986)
* initial * refactor(Core/Unit): PC & NPC Immunities Cherry-pick TC:74af880217Co-authored-by: Treeston <treeston.nmoc@gmail.com> * fix builds error Cherry-pick TC:74af880217Co-authored-by: Treeston <treeston.nmoc@gmail.com> * Fix nef combat, and replace SetFlag by SetUnitFlag * fix combat with jedoga Co-authored-by: Treeston <treeston.nmoc@gmail.com>
This commit is contained in:
@@ -179,7 +179,7 @@ public:
|
||||
me->SetFaction(FACTION_FRIENDLY);
|
||||
|
||||
// was set before event start, so set again
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToPC(true);
|
||||
|
||||
if (instance->GetData(TYPE_TOMB_OF_SEVEN) == DONE) // what is this trying to do? Probably some kind of crash recovery
|
||||
{
|
||||
|
||||
@@ -752,7 +752,7 @@ public:
|
||||
{
|
||||
++TombEventCounter;
|
||||
boss->SetFaction(FACTION_DARK_IRON_DWARVES);
|
||||
boss->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
boss->SetImmuneToPC(false);
|
||||
|
||||
// find suitable target here.
|
||||
Player* target = boss->SelectNearestPlayer(130);
|
||||
@@ -786,7 +786,7 @@ public:
|
||||
boss->SetLootRecipient(nullptr);
|
||||
}
|
||||
boss->SetFaction(FACTION_FRIENDLY);
|
||||
boss->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); // think this is useless
|
||||
boss->SetImmuneToPC(true); // think this is useless
|
||||
if (i == 6) // doomrel needs explicit reset
|
||||
{
|
||||
boss->AI()->Reset();
|
||||
|
||||
@@ -79,7 +79,8 @@ public:
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetImmuneToPC(true);
|
||||
events.Reset();
|
||||
// Apply auras on spawn and reset
|
||||
// DoCast(me, SPELL_FIRE_SHIELD_TRIGGER); // Need to find this in old DBC if possible
|
||||
@@ -157,7 +158,8 @@ public:
|
||||
me->CastSpell(me, SPELL_EMBERSEER_FULL_STRENGTH);
|
||||
Talk(EMOTE_FREE_OF_BONDS);
|
||||
Talk(YELL_FREE_OF_BONDS);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetImmuneToPC(false);
|
||||
events.ScheduleEvent(EVENT_ENTER_COMBAT, 2000);
|
||||
}
|
||||
}
|
||||
@@ -338,7 +340,7 @@ public:
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToAll(true);
|
||||
if (Creature* Emberseer = me->FindNearestCreature(NPC_PYROGAURD_EMBERSEER, 30.0f, true))
|
||||
Emberseer->AI()->SetData(1, 3);
|
||||
|
||||
@@ -364,7 +366,7 @@ public:
|
||||
{
|
||||
if (data == 1 && value == 1)
|
||||
{
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToAll(false);
|
||||
me->InterruptSpell(CURRENT_CHANNELED_SPELL);
|
||||
DoZoneInCombat();
|
||||
_events.CancelEvent(EVENT_ENCAGED_EMBERSEER);
|
||||
|
||||
@@ -114,11 +114,13 @@ public:
|
||||
|
||||
if (instance->GetBossState(DATA_GYTH) == IN_PROGRESS)
|
||||
{
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_PREPARATION);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PREPARATION);
|
||||
me->SetImmuneToAll(false);
|
||||
return;
|
||||
}
|
||||
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_PREPARATION);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PREPARATION);
|
||||
me->SetImmuneToAll(true);
|
||||
gythEvent = false;
|
||||
victorGUID.Clear();
|
||||
waveDoorGUID.Clear();
|
||||
|
||||
@@ -358,6 +358,7 @@ public:
|
||||
|
||||
DoCast(me, SPELL_NEFARIANS_BARRIER);
|
||||
SetCombatMovement(false);
|
||||
me->SetImmuneToPC(false);
|
||||
AttackStart(SelectTarget(SelectTargetMethod::Random, 0, 200.f, true));
|
||||
events.ScheduleEvent(EVENT_SHADOWBLINK, 500);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT, 3000);
|
||||
@@ -499,7 +500,8 @@ public:
|
||||
me->SetFaction(FACTION_DRAGONFLIGHT_BLACK);
|
||||
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetImmuneToPC(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -151,7 +151,8 @@ public:
|
||||
{
|
||||
summon->CastSpell(summon, SPELL_RAGNAROS_FADE);
|
||||
summon->CastSpell(summon, SPELL_RAGNAROS_SUBMERGE_EFFECT, true);
|
||||
summon->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NON_ATTACKABLE);
|
||||
summon->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
summon->SetImmuneToAll(true);
|
||||
summon->SetReactState(REACT_PASSIVE);
|
||||
}
|
||||
}
|
||||
@@ -180,7 +181,7 @@ public:
|
||||
else
|
||||
{
|
||||
events.SetPhase(PHASE_NONE);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToAll(true);
|
||||
me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
|
||||
me->SetFaction(FACTION_MAJORDOMO_FRIENDLY);
|
||||
}
|
||||
@@ -282,7 +283,7 @@ public:
|
||||
instance->SetBossState(DATA_MAJORDOMO_EXECUTUS, DONE);
|
||||
events.CancelEventGroup(PHASE_COMBAT);
|
||||
me->GetMap()->UpdateEncounterState(ENCOUNTER_CREDIT_KILL_CREATURE, me->GetEntry(), me);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToAll(true);
|
||||
me->SetFaction(FACTION_MAJORDOMO_FRIENDLY);
|
||||
EnterEvadeMode();
|
||||
Talk(SAY_DEFEAT);
|
||||
|
||||
@@ -137,7 +137,8 @@ public:
|
||||
extraEvents.Reset();
|
||||
extraEvents.SetPhase(PHASE_EMERGED);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->RemoveUnitFlag(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_NOT_SELECTABLE);
|
||||
me->SetImmuneToAll(false);
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_EMERGE);
|
||||
}
|
||||
@@ -276,7 +277,8 @@ public:
|
||||
_isIntroDone = true;
|
||||
extraEvents.SetPhase(PHASE_EMERGED);
|
||||
me->RemoveAurasDueToSpell(SPELL_RAGNAROS_SUBMERGE_EFFECT);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetImmuneToAll(false);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
DoZoneInCombat();
|
||||
break;
|
||||
|
||||
@@ -107,7 +107,7 @@ void SummonCroneIfReady(InstanceScript* instance, Creature* creature)
|
||||
if (creature->GetVictim())
|
||||
pCrone->AI()->AttackStart(creature->GetVictim());
|
||||
pCrone->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
pCrone->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
pCrone->SetImmuneToPC(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ public:
|
||||
summons.DespawnAll();
|
||||
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_INTERRUPT_CAST, false);
|
||||
instance->SetData(DATA_KAELTHAS_EVENT, NOT_STARTED);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToAll(false);
|
||||
}
|
||||
|
||||
void JustSummoned(Creature* summon) override
|
||||
@@ -120,7 +120,7 @@ public:
|
||||
void InitializeAI() override
|
||||
{
|
||||
ScriptedAI::InitializeAI();
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToAll(true);
|
||||
}
|
||||
|
||||
void JustDied(Unit*) override
|
||||
@@ -162,7 +162,8 @@ public:
|
||||
if (me->isRegeneratingHealth())
|
||||
{
|
||||
me->SetRegeneratingHealth(false);
|
||||
me->SetUnitFlag(UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag(UNIT_FLAG_DISABLE_MOVE);
|
||||
me->SetImmuneToAll(true);
|
||||
me->CombatStop();
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
LapseAction(ACTION_REMOVE_FLY);
|
||||
@@ -200,7 +201,7 @@ public:
|
||||
switch (events2.ExecuteEvent())
|
||||
{
|
||||
case EVENT_INIT_COMBAT:
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToAll(false);
|
||||
if (Unit* target = SelectTargetFromPlayerList(50.0f))
|
||||
AttackStart(target);
|
||||
return;
|
||||
|
||||
@@ -219,7 +219,7 @@ public:
|
||||
if (creature->AI()->GetData(DATA_IN_PROGRESS))
|
||||
return true;
|
||||
|
||||
creature->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
creature->SetImmuneToPC(false);
|
||||
creature->RemoveUnitFlag(UNIT_FLAG_SWIMMING);
|
||||
|
||||
player->CastSpell(creature, SPELL_DUEL, false);
|
||||
@@ -584,7 +584,7 @@ public:
|
||||
{
|
||||
ScriptedAI::MoveInLineOfSight(who);
|
||||
|
||||
if (!who->HasUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC) && who->GetEntry() == NPC_GHOUL && me->IsWithinDistInMap(who, 10.0f))
|
||||
if (!who->IsImmuneToNPC() && who->GetEntry() == NPC_GHOUL && me->IsWithinDistInMap(who, 10.0f))
|
||||
if (Unit* owner = who->GetOwner())
|
||||
if (Player* player = owner->ToPlayer())
|
||||
{
|
||||
@@ -593,7 +593,7 @@ public:
|
||||
creature->CastSpell(owner, 52517, true);
|
||||
|
||||
creature->AI()->SetGUID(me->GetGUID());
|
||||
creature->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
creature->SetImmuneToAll(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -743,7 +743,7 @@ public:
|
||||
phase = PHASE_CHAINED;
|
||||
events.Reset();
|
||||
me->SetFaction(FACTION_CREATURE);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToPC(true);
|
||||
me->SetUInt32Value(UNIT_FIELD_BYTES_1, 8);
|
||||
me->LoadEquipment(0, true);
|
||||
}
|
||||
@@ -844,7 +844,7 @@ public:
|
||||
else
|
||||
{
|
||||
me->SetFaction(FACTION_MONSTER);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToPC(false);
|
||||
phase = PHASE_ATTACKING;
|
||||
|
||||
if (Player* target = ObjectAccessor::GetPlayer(*me, playerGUID))
|
||||
@@ -964,7 +964,7 @@ public:
|
||||
{
|
||||
npc_scarlet_miner_cartAI(Creature* creature) : PassiveAI(creature)
|
||||
{
|
||||
me->ReplaceAllUnitFlags(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToAll(true);
|
||||
me->SetFaction(FACTION_FRIENDLY);
|
||||
me->SetDisplayId(me->GetCreatureTemplate()->Modelid1); // Modelid2 is a horse.
|
||||
}
|
||||
@@ -987,7 +987,8 @@ public:
|
||||
me->SetSpeed(MOVE_RUN, 1.25f);
|
||||
|
||||
me->GetMotionMaster()->MoveFollow(miner, 1.0f, 0);
|
||||
me->ReplaceAllUnitFlags(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->ReplaceAllUnitFlags(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetImmuneToAll(true);
|
||||
me->SetFaction(FACTION_FRIENDLY);
|
||||
}
|
||||
}
|
||||
@@ -1097,7 +1098,8 @@ public:
|
||||
{
|
||||
me->SetFacingToObject(car);
|
||||
// xinef: add some flags
|
||||
car->ReplaceAllUnitFlags(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
car->ReplaceAllUnitFlags(UNIT_FLAG_NON_ATTACKABLE);
|
||||
car->SetImmuneToAll(true);
|
||||
car->SetFaction(FACTION_FRIENDLY);
|
||||
}
|
||||
Talk(SAY_SCARLET_MINER_0);
|
||||
|
||||
@@ -255,7 +255,7 @@ public:
|
||||
else
|
||||
{
|
||||
me->GetMotionMaster()->MoveTargetedHome();
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToNPC(true);
|
||||
Reset();
|
||||
}
|
||||
}
|
||||
@@ -313,7 +313,7 @@ public:
|
||||
m_uiValrothGUID = summoned->GetGUID();
|
||||
|
||||
summoned->AddThreat(me, 0.0f);
|
||||
summoned->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
summoned->SetImmuneToPC(false);
|
||||
summons.Summon(summoned);
|
||||
}
|
||||
|
||||
@@ -666,7 +666,7 @@ public:
|
||||
ExecuteSpeech_Counter = 0;
|
||||
PlayerGUID.Clear();
|
||||
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToPC(false);
|
||||
}
|
||||
|
||||
bool MeetQuestCondition(Player* player)
|
||||
@@ -780,7 +780,7 @@ public:
|
||||
case 9:
|
||||
Talk(SAY_EXEC_TIME_6, player);
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToPC(false);
|
||||
break;
|
||||
case 10:
|
||||
Talk(SAY_EXEC_WAITING, player);
|
||||
@@ -826,7 +826,7 @@ public:
|
||||
case 9:
|
||||
Talk(SAY_EXEC_TIME_8, player);
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToPC(false);
|
||||
break;
|
||||
case 10:
|
||||
Talk(SAY_EXEC_WAITING, player);
|
||||
@@ -872,7 +872,7 @@ public:
|
||||
case 9:
|
||||
Talk(SAY_EXEC_TIME_3, player);
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToPC(false);
|
||||
break;
|
||||
case 10:
|
||||
Talk(SAY_EXEC_WAITING, player);
|
||||
@@ -918,7 +918,7 @@ public:
|
||||
case 9:
|
||||
Talk(SAY_EXEC_TIME_7, player);
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToPC(false);
|
||||
break;
|
||||
case 10:
|
||||
Talk(SAY_EXEC_WAITING, player);
|
||||
@@ -964,7 +964,7 @@ public:
|
||||
case 9:
|
||||
Talk(SAY_EXEC_TIME_4, player);
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToPC(false);
|
||||
break;
|
||||
case 10:
|
||||
Talk(SAY_EXEC_WAITING, player);
|
||||
@@ -1010,7 +1010,7 @@ public:
|
||||
case 9:
|
||||
Talk(SAY_EXEC_TIME_9, player);
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToPC(false);
|
||||
break;
|
||||
case 10:
|
||||
Talk(SAY_EXEC_WAITING, player);
|
||||
@@ -1056,7 +1056,7 @@ public:
|
||||
case 9:
|
||||
Talk(SAY_EXEC_TIME_5, player);
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToPC(false);
|
||||
break;
|
||||
case 10:
|
||||
Talk(SAY_EXEC_WAITING, player);
|
||||
@@ -1102,7 +1102,7 @@ public:
|
||||
case 9:
|
||||
Talk(SAY_EXEC_TIME_10, player);
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToPC(false);
|
||||
break;
|
||||
case 10:
|
||||
Talk(SAY_EXEC_WAITING, player);
|
||||
@@ -1146,7 +1146,7 @@ public:
|
||||
case 9:
|
||||
Talk(SAY_EXEC_TIME_1, player);
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToPC(false);
|
||||
break;
|
||||
case 10:
|
||||
Talk(SAY_EXEC_WAITING, player);
|
||||
@@ -1192,7 +1192,7 @@ public:
|
||||
case 9:
|
||||
Talk(SAY_EXEC_TIME_2, player);
|
||||
me->SetStandState(UNIT_STAND_STATE_KNEEL);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToPC(false);
|
||||
break;
|
||||
case 10:
|
||||
Talk(SAY_EXEC_WAITING, player);
|
||||
|
||||
@@ -465,7 +465,7 @@ public:
|
||||
if (battleStarted == ENCOUNTER_STATE_OUTRO && cr->GetEntry() == NPC_DEFENDER_OF_THE_LIGHT)
|
||||
{
|
||||
cr->SetReactState(REACT_PASSIVE);
|
||||
cr->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
cr->SetImmuneToAll(true);
|
||||
cr->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY1H);
|
||||
cr->HandleEmoteCommand(EMOTE_STATE_READY1H);
|
||||
}
|
||||
@@ -546,7 +546,7 @@ public:
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToAll(true);
|
||||
me->ReplaceAllNpcFlags(UNIT_NPC_FLAG_GOSSIP | UNIT_NPC_FLAG_QUESTGIVER);
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
me->SetVisible(true);
|
||||
@@ -670,7 +670,7 @@ public:
|
||||
break;
|
||||
}
|
||||
case EVENT_START_COUNTDOWN_14:
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToAll(false);
|
||||
me->SummonCreatureGroup(5);
|
||||
return;
|
||||
case EVENT_FINISH_FIGHT_1:
|
||||
@@ -698,13 +698,13 @@ public:
|
||||
{
|
||||
summon->CombatStop(true);
|
||||
summon->GetThreatMgr().ClearAllThreat();
|
||||
summon->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
summon->SetImmuneToAll(true);
|
||||
summon->SetReactState(REACT_PASSIVE);
|
||||
summon->GetMotionMaster()->Clear(false);
|
||||
}
|
||||
me->CombatStop(true);
|
||||
me->GetThreatMgr().ClearAllThreat();
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToAll(true);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->GetMotionMaster()->Clear(false);
|
||||
|
||||
@@ -1027,7 +1027,7 @@ public:
|
||||
{
|
||||
tirion->CastSpell(tirion, SPELL_TIRION_CHARGE, true);
|
||||
tirion->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
|
||||
tirion->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
tirion->SetImmuneToAll(true);
|
||||
}
|
||||
break;
|
||||
case EVENT_OUTRO_SCENE_44:
|
||||
|
||||
@@ -113,8 +113,7 @@ public:
|
||||
me->SetDisableGravity(true);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC); // for some reason he aggroes if we don't have this.
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC); // might not be needed, but guardians and stuff like that could mess up.
|
||||
me->SetImmuneToAll(true); // for some reason he aggroes if we don't have this.
|
||||
}
|
||||
|
||||
void MovementInform(uint32 type, uint32 id) override
|
||||
@@ -154,8 +153,7 @@ public:
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
|
||||
me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_KIRTONOS_STAFF));
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToAll(false);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
break;
|
||||
case INTRO_6:
|
||||
|
||||
@@ -139,7 +139,7 @@ public:
|
||||
})
|
||||
.Schedule(12s, [this](TaskContext context)
|
||||
{
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToAll(false);
|
||||
_phase = PHASE_COMBAT;
|
||||
DoZoneInCombat();
|
||||
|
||||
@@ -185,7 +185,7 @@ public:
|
||||
}
|
||||
});
|
||||
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToPC(true);
|
||||
me->SetFaction(FACTION_MONSTER);
|
||||
summons.DoAction(ACTION_START_EVENT);
|
||||
}
|
||||
@@ -293,13 +293,13 @@ struct npc_apothecary_genericAI : public ScriptedAI
|
||||
{
|
||||
if (action == ACTION_START_EVENT)
|
||||
{
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToPC(true);
|
||||
me->SetFaction(FACTION_MONSTER);
|
||||
me->GetMotionMaster()->MovePoint(1, _movePos);
|
||||
}
|
||||
else if (action == ACTION_START_FIGHT)
|
||||
{
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToAll(false);
|
||||
DoZoneInCombat();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,7 +111,8 @@ struct boss_jarien : public BossAI
|
||||
});
|
||||
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetImmuneToNPC(true);
|
||||
_talked = false;
|
||||
_phase = PHASE_TALK;
|
||||
}
|
||||
@@ -145,7 +146,8 @@ struct boss_jarien : public BossAI
|
||||
_talked = true;
|
||||
_phase = PHASE_FIGHT;
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetImmuneToNPC(false);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -234,7 +236,8 @@ struct boss_sothos : public BossAI
|
||||
});
|
||||
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetImmuneToNPC(true);
|
||||
_talked = false;
|
||||
_phase = PHASE_TALK;
|
||||
}
|
||||
@@ -261,7 +264,8 @@ struct boss_sothos : public BossAI
|
||||
_talked = true;
|
||||
_phase = PHASE_FIGHT;
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetImmuneToNPC(false);
|
||||
})
|
||||
.Schedule(3s, [this](TaskContext /*context*/)
|
||||
{
|
||||
|
||||
@@ -201,14 +201,14 @@ public:
|
||||
{
|
||||
Creature* target = GetUnitOwner()->ToCreature();
|
||||
target->SetReactState(REACT_PASSIVE);
|
||||
target->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
target->SetImmuneToAll(true);
|
||||
}
|
||||
|
||||
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
Creature* target = GetUnitOwner()->ToCreature();
|
||||
target->SetReactState(REACT_AGGRESSIVE);
|
||||
target->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
target->SetImmuneToAll(false);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
||||
@@ -724,13 +724,13 @@ public:
|
||||
if (ptarget->GetPositionX() > 120)
|
||||
{
|
||||
ptarget->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(WEAPON_SPEAR));
|
||||
ptarget->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
ptarget->SetImmuneToPC(true);
|
||||
ptarget->SetReactState(REACT_PASSIVE);
|
||||
ptarget->AI()->SetData(0, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
ptarget->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
ptarget->SetImmuneToPC(true);
|
||||
ptarget->SetReactState(REACT_PASSIVE);
|
||||
ptarget->AI()->SetData(0, 2);
|
||||
}
|
||||
|
||||
@@ -138,7 +138,7 @@ public:
|
||||
}
|
||||
}
|
||||
me->RemoveAurasDueToSpell(SPELL_FRENZY);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToAll(false);
|
||||
instance->SetBossState(DATA_OHGAN, NOT_STARTED);
|
||||
me->Mount(MODEL_OHGAN_MOUNT);
|
||||
reviveGUID.Clear();
|
||||
@@ -267,7 +267,7 @@ public:
|
||||
}
|
||||
break;
|
||||
case EVENT_STARTED:
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToAll(false);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -372,7 +372,7 @@ public:
|
||||
continue;
|
||||
else
|
||||
c->AI()->Talk(SAY_MORLEN_4);
|
||||
c->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
c->SetImmuneToAll(false);
|
||||
c->AI()->AttackStart(me);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -53,7 +53,7 @@ public:
|
||||
phase = 0;
|
||||
mockingBlowTimer = 5000;
|
||||
shieldBashTimer = 8000;
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToNPC(true);
|
||||
}
|
||||
|
||||
void sQuestAccept(Player* player, Quest const* quest) override
|
||||
@@ -62,7 +62,7 @@ public:
|
||||
{
|
||||
Talk(SAY_CORPORAL_1, player);
|
||||
npc_escortAI::Start(true, false, player->GetGUID(), quest);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToNPC(false);
|
||||
me->SetFaction(FACTION_ESCORTEE_N_NEUTRAL_ACTIVE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ public:
|
||||
if (quest->GetQuestId() == QUEST_590)
|
||||
{
|
||||
creature->SetFaction(FACTION_ENEMY);
|
||||
creature->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
creature->SetImmuneToPC(false);
|
||||
CAST_AI(npc_calvin_montague::npc_calvin_montagueAI, creature->AI())->AttackStart(player);
|
||||
}
|
||||
return true;
|
||||
@@ -80,8 +80,8 @@ public:
|
||||
|
||||
me->RestoreFaction();
|
||||
|
||||
if (!me->HasUnitFlag(UNIT_FLAG_IMMUNE_TO_PC))
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
if (!me->IsImmuneToPC())
|
||||
me->SetImmuneToPC(true);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override { }
|
||||
@@ -104,7 +104,7 @@ public:
|
||||
uiDamage = 0;
|
||||
|
||||
me->RestoreFaction();
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToPC(true);
|
||||
me->CombatStop(true);
|
||||
|
||||
m_uiPhase = 1;
|
||||
|
||||
@@ -1420,8 +1420,7 @@ public:
|
||||
{
|
||||
thrallGUID = temp->GetGUID();
|
||||
temp->SetReactState(REACT_PASSIVE);
|
||||
temp->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
temp->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
temp->SetImmuneToAll(true);
|
||||
temp->CastSpell(temp, SPELL_THRALL_BUFF);
|
||||
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
|
||||
}
|
||||
@@ -1429,8 +1428,7 @@ public:
|
||||
{
|
||||
sylvanasGUID = temp->GetGUID();
|
||||
temp->SetReactState(REACT_PASSIVE);
|
||||
temp->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
temp->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
temp->SetImmuneToAll(true);
|
||||
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
|
||||
}
|
||||
for (uint8 i = 0; i < HORDE_FORCE_MAXCOUNT; ++i)
|
||||
@@ -1439,8 +1437,7 @@ public:
|
||||
{
|
||||
hordeForcesGUID[i] = temp->GetGUID();
|
||||
temp->SetReactState(REACT_PASSIVE);
|
||||
temp->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
temp->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
temp->SetImmuneToAll(true);
|
||||
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
|
||||
}
|
||||
}
|
||||
@@ -1451,8 +1448,7 @@ public:
|
||||
if (Unit* temp = me->SummonCreature(NPC_SW_SOLDIER, AllianceSpawn[i + 25].x, AllianceSpawn[i + 25].y, AllianceSpawn[i + 25].z, AllianceSpawn[i + 25].o, TEMPSUMMON_MANUAL_DESPAWN))
|
||||
{
|
||||
allianceForcesGUID[i] = temp->GetGUID();
|
||||
temp->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
temp->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
temp->SetImmuneToAll(true);
|
||||
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
|
||||
}
|
||||
}
|
||||
@@ -1476,7 +1472,7 @@ public:
|
||||
if (Creature* jaina = ObjectAccessor::GetCreature(*me, jainaGUID))
|
||||
{
|
||||
jaina->GetMotionMaster()->Clear();
|
||||
jaina->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
jaina->SetImmuneToNPC(false);
|
||||
jaina->SetReactState(REACT_AGGRESSIVE);
|
||||
}
|
||||
SetHoldState(true);
|
||||
@@ -1820,8 +1816,7 @@ public:
|
||||
case 53:
|
||||
if (Creature* putress = ObjectAccessor::GetCreature(*me, putressGUID))
|
||||
{
|
||||
putress->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
putress->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
putress->SetImmuneToAll(false);
|
||||
putress->AddThreat(me, 100.0f);
|
||||
me->AddThreat(putress, 100.0f);
|
||||
putress->RemoveAura(SPELL_PUTRESS_CASTING_STATE);
|
||||
@@ -1894,7 +1889,7 @@ public:
|
||||
case 66:
|
||||
if (Creature* jaina = ObjectAccessor::GetCreature(*me, jainaGUID))
|
||||
jaina->AI()->Talk(JAINA_SAY_THRONE_1);
|
||||
me->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
me->SetImmuneToNPC(true);
|
||||
bStepping = false;
|
||||
JumpToNextStep(0);
|
||||
break;
|
||||
@@ -1907,8 +1902,7 @@ public:
|
||||
if (Creature* jaina = ObjectAccessor::GetCreature(*me, jainaGUID))
|
||||
{
|
||||
jaina->GetMotionMaster()->MovePoint(0, AllianceWP[8].x, AllianceWP[8].y, AllianceWP[8].z);
|
||||
jaina->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
jaina->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
jaina->SetImmuneToAll(true);
|
||||
}
|
||||
SetEscortPaused(false);
|
||||
bStepping = false;
|
||||
@@ -1933,12 +1927,12 @@ public:
|
||||
break;
|
||||
case 73:
|
||||
Talk(WRYNN_SAY_THRONE_9);
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToAll(false);
|
||||
if (Creature* thrall = ObjectAccessor::GetCreature(*me, thrallGUID))
|
||||
{
|
||||
thrall->SetReactState(REACT_AGGRESSIVE);
|
||||
thrall->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
thrall->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
thrall->SetImmuneToNPC(false);
|
||||
thrall->SetImmuneToPC(true);
|
||||
thrall->AddThreat(me, 100.0f);
|
||||
me->AddThreat(thrall, 100.0f);
|
||||
thrall->AI()->AttackStart(me);
|
||||
@@ -1946,8 +1940,8 @@ public:
|
||||
if (Creature* sylvanas = ObjectAccessor::GetCreature(*me, sylvanasGUID))
|
||||
{
|
||||
sylvanas->SetReactState(REACT_AGGRESSIVE);
|
||||
sylvanas->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
sylvanas->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
sylvanas->SetImmuneToNPC(false);
|
||||
sylvanas->SetImmuneToPC(true);
|
||||
sylvanas->AddThreat(me, 100.0f);
|
||||
sylvanas->AI()->AttackStart(me);
|
||||
me->AddThreat(sylvanas, 100.0f);
|
||||
@@ -1957,8 +1951,8 @@ public:
|
||||
if (Creature* temp = ObjectAccessor::GetCreature(*me, hordeForcesGUID[i]))
|
||||
{
|
||||
temp->SetReactState(REACT_AGGRESSIVE);
|
||||
temp->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
temp->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
temp->SetImmuneToNPC(false);
|
||||
temp->SetImmuneToPC(true);
|
||||
}
|
||||
}
|
||||
for (uint8 i = 0; i < ALLIANCE_FORCE_MAXCOUNT; ++i)
|
||||
@@ -1969,8 +1963,8 @@ public:
|
||||
{
|
||||
temp->SetReactState(REACT_AGGRESSIVE);
|
||||
temp2->SetReactState(REACT_AGGRESSIVE);
|
||||
temp->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
temp2->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
temp->SetImmuneToAll(false);
|
||||
temp2->SetImmuneToAll(false);
|
||||
temp->AddThreat(temp2, 100.0f);
|
||||
temp->AI()->AttackStart(temp2);
|
||||
temp2->AddThreat(temp, 100.0f);
|
||||
@@ -2564,7 +2558,7 @@ public:
|
||||
if (Creature* sylvanas = ObjectAccessor::GetCreature(*me, sylvanasfollowGUID))
|
||||
{
|
||||
sylvanas->GetMotionMaster()->Clear();
|
||||
sylvanas->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
sylvanas->SetImmuneToAll(false);
|
||||
sylvanas->SetReactState(REACT_AGGRESSIVE);
|
||||
sylvanas->SetFaction(FACTION_ESCORT_N_NEUTRAL_ACTIVE);
|
||||
sylvanas->GetMotionMaster()->MoveFollow(me, 1, M_PI * 0.1f);
|
||||
@@ -2606,7 +2600,7 @@ public:
|
||||
if (Unit* temp = me->SummonCreature(NPC_VARIMATHRAS, ThrallSpawn[23].x, ThrallSpawn[23].y, ThrallSpawn[23].z, ThrallSpawn[23].o, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 900 * IN_MILLISECONDS))
|
||||
{
|
||||
ValimathrasGUID = temp->GetGUID();
|
||||
temp->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
temp->SetImmuneToAll(true);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
@@ -2729,7 +2723,7 @@ public:
|
||||
if (Unit* temp = me->SummonCreature(NPC_VARIMATHRAS, ThrallSpawn[63].x, ThrallSpawn[63].y, ThrallSpawn[63].z, ThrallSpawn[63].o, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 300 * IN_MILLISECONDS))
|
||||
{
|
||||
ValimathrasGUID = temp->GetGUID();
|
||||
temp->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
temp->SetImmuneToAll(true);
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
@@ -2820,7 +2814,7 @@ public:
|
||||
if (Creature* temp = me->SummonCreature(NPC_VARIMATHRAS, ThrallSpawn[73].x, ThrallSpawn[73].y, ThrallSpawn[73].z, ThrallSpawn[73].o, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 1200 * IN_MILLISECONDS))
|
||||
{
|
||||
ValimathrasGUID = temp->GetGUID();
|
||||
temp->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
temp->SetImmuneToAll(true);
|
||||
temp->CastSpell(me, SPELL_AURA_OF_VARIMATHRAS);
|
||||
temp->CastSpell(me, SPELL_OPENING_LEGION_PORTALS);
|
||||
temp->AI()->Talk(SAY_CLOSE_DOOR);
|
||||
@@ -3671,7 +3665,7 @@ public:
|
||||
case 137:
|
||||
if (Creature* valimathras = ObjectAccessor::GetCreature(*me, ValimathrasGUID))
|
||||
{
|
||||
valimathras->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
valimathras->SetImmuneToAll(false);
|
||||
valimathras->RemoveAura(SPELL_AURA_OF_VARIMATHRAS);
|
||||
valimathras->RemoveAura(SPELL_OPENING_LEGION_PORTALS);
|
||||
valimathras->AI()->Talk(SAY_VALIMATHRAS_ATTACK);
|
||||
@@ -3740,8 +3734,7 @@ public:
|
||||
if (Creature* temp = me->SummonCreature(NPC_SW_SOLDIER, AllianceSpawn[i + 25].x, AllianceSpawn[i + 25].y, AllianceSpawn[i + 25].z, AllianceSpawn[i + 25].o, TEMPSUMMON_MANUAL_DESPAWN))
|
||||
{
|
||||
allianceForcesGUID[i] = temp->GetGUID();
|
||||
temp->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
temp->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
temp->SetImmuneToAll(true);
|
||||
temp->ApplySpellImmune(0, IMMUNITY_ID, SPELL_SYLVANAS_BUFF, true);
|
||||
temp->SetReactState(REACT_PASSIVE);
|
||||
temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
|
||||
@@ -3750,8 +3743,7 @@ public:
|
||||
if (Creature* wrynn = me->SummonCreature(NPC_WRYNN, 1308.862f, 381.809f, -66.044243f, TEMPSUMMON_MANUAL_DESPAWN))
|
||||
{
|
||||
WrynnGUID = wrynn->GetGUID();
|
||||
wrynn->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
wrynn->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
wrynn->SetImmuneToAll(true);
|
||||
wrynn->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);
|
||||
wrynn->SetReactState(REACT_PASSIVE);
|
||||
wrynn->GetMotionMaster()->MovePoint(0, 1302.543f, 359.472f, -67.295f, true);
|
||||
@@ -3759,8 +3751,7 @@ public:
|
||||
if (Creature* jaina = me->SummonCreature(NPC_JAINA, 1308.862f, 381.809f, -66.044243f, TEMPSUMMON_MANUAL_DESPAWN))
|
||||
{
|
||||
JainaGUID = jaina->GetGUID();
|
||||
jaina->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
jaina->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
jaina->SetImmuneToAll(true);
|
||||
jaina->SetReactState(REACT_PASSIVE);
|
||||
}
|
||||
JumpToNextStep(6 * IN_MILLISECONDS);
|
||||
@@ -3788,11 +3779,11 @@ public:
|
||||
break;
|
||||
// Wrynn Fight
|
||||
case 152:
|
||||
me->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
me->SetImmuneToAll(false);
|
||||
if (Creature* wrynn = ObjectAccessor::GetCreature(*me, WrynnGUID))
|
||||
{
|
||||
wrynn->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
wrynn->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
|
||||
wrynn->SetImmuneToNPC(false);
|
||||
wrynn->SetImmuneToPC(true);
|
||||
wrynn->SetReactState(REACT_AGGRESSIVE);
|
||||
wrynn->AddThreat(me, 100.0f);
|
||||
me->AddThreat(wrynn, 100.0f);
|
||||
@@ -3803,7 +3794,7 @@ public:
|
||||
{
|
||||
if (Creature* temp = ObjectAccessor::GetCreature(*me, allianceForcesGUID[i]))
|
||||
{
|
||||
temp->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_IMMUNE_TO_PC);
|
||||
temp->SetImmuneToAll(false);
|
||||
temp->SetReactState(REACT_AGGRESSIVE);
|
||||
temp->AddThreat(me, 100.0f);
|
||||
temp->AI()->AttackStart(me);
|
||||
|
||||
Reference in New Issue
Block a user