aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp581
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp3
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp3
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp6
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp7
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp7
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp7
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp9
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp8
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp12
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp15
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp6
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp14
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp9
-rw-r--r--src/server/scripts/Northrend/zone_storm_peaks.cpp4
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp4
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp3
17 files changed, 50 insertions, 648 deletions
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp
index dd49f01624b..9c9dfe38349 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp
@@ -579,105 +579,6 @@ enum DughalQuests
#define SAY_DUGHAL_FREE "Thank you, $N! I'm free!!!"
#define GOSSIP_DUGHAL "You're free, Dughal! Get out of here!"
-/*
-class npc_dughal_stormwing : public CreatureScript
-{
-public:
- npc_dughal_stormwing() : CreatureScript("npc_dughal_stormwing") { }
-
- CreatureAI* GetAI(Creature* creature) const override
- {
- npc_dughal_stormwingAI* dughal_stormwingAI = new npc_dughal_stormwingAI(creature);
-
- dughal_stormwingAI->AddWaypoint(0, 280.42f, -82.86f, -77.12f, 0);
- dughal_stormwingAI->AddWaypoint(1, 287.64f, -87.01f, -76.79f, 0);
- dughal_stormwingAI->AddWaypoint(2, 354.63f, -64.95f, -67.53f, 0);
-
- return dughal_stormwingAI;
- }
-
- bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) override
- {
- player->PlayerTalkClass->ClearMenus();
- if (action == GOSSIP_ACTION_INFO_DEF + 1)
- {
- player->CLOSE_GOSSIP_MENU();
- CAST_AI(npc_escort::npc_escortAI, (creature->AI()))->Start(false, true, player->GetGUID());
- creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- instance->SetData(DATA_QUEST_JAIL_BREAK, ENCOUNTER_STATE_IN_PROGRESS);
- }
- return true;
- }
-
- bool OnGossipHello(Player* player, Creature* creature) override
- {
- if (player->GetQuestStatus(QUEST_JAIL_BREAK) == QUEST_STATUS_INCOMPLETE && instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_IN_PROGRESS)
- {
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_DUGHAL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
- player->SEND_GOSSIP_MENU(2846, creature->GetGUID());
- }
- return true;
- }
-
- struct npc_dughal_stormwingAI : public npc_escortAI
- {
- npc_dughal_stormwingAI(Creature* creature) : npc_escortAI(creature) { }
-
- void WaypointReached(uint32 waypointId) override
- {
- switch (waypointId)
- {
- case 0:
- me->Say(SAY_DUGHAL_FREE, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 1:
- instance->SetData(DATA_DUGHAL, ENCOUNTER_STATE_OBJECTIVE_COMPLETED);
- break;
- case 2:
- me->SetVisible(false);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- instance->SetData(DATA_DUGHAL, ENCOUNTER_STATE_ENDED);
- break;
- }
- }
-
- void EnterCombat(Unit* who) override { }
- void Reset() override { }
-
- void JustDied(Unit* killer) override
- {
- if (IsBeingEscorted && killer == me)
- {
- me->SetVisible(false);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- instance->SetData(DATA_DUGHAL, ENCOUNTER_STATE_ENDED);
- }
- }
-
- void UpdateAI(uint32 diff) override
- {
- if (instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED) return;
- if ((instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_IN_PROGRESS || instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_FAILED || instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_ENDED)&& instance->GetData(DATA_DUGHAL) == ENCOUNTER_STATE_ENDED)
- {
- me->SetVisible(false);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- }
- else
- {
- me->SetVisible(true);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- }
- npc_escortAI::UpdateAI(diff);
- }
- };
-};
-
- */
-
// npc_marshal_windsor
#define SAY_WINDSOR_AGGRO1 "You locked up the wrong Marshal. Prepare to be destroyed!"
#define SAY_WINDSOR_AGGRO2 "I bet you're sorry now, aren't you !?!!"
@@ -694,168 +595,6 @@ enum MarshalWindsor
NPC_REGINALD_WINDSOR = 9682
};
-/*
-Player* playerStart;
-class npc_marshal_windsor : public CreatureScript
-{
-public:
- npc_marshal_windsor() : CreatureScript("npc_marshal_windsor") { }
-
- CreatureAI* GetAI(Creature* creature) const override
- {
- npc_marshal_windsorAI* marshal_windsorAI = new npc_marshal_windsorAI(creature);
-
- marshal_windsorAI->AddWaypoint(0, 316.336f, -225.528f, -77.7258f, 7000);
- marshal_windsorAI->AddWaypoint(1, 316.336f, -225.528f, -77.7258f, 2000);
- marshal_windsorAI->AddWaypoint(2, 322.96f, -207.13f, -77.87f, 0);
- marshal_windsorAI->AddWaypoint(3, 281.05f, -172.16f, -75.12f, 0);
- marshal_windsorAI->AddWaypoint(4, 272.19f, -139.14f, -70.61f, 0);
- marshal_windsorAI->AddWaypoint(5, 283.62f, -116.09f, -70.21f, 0);
- marshal_windsorAI->AddWaypoint(6, 296.18f, -94.30f, -74.08f, 0);
- marshal_windsorAI->AddWaypoint(7, 294.57f, -93.11f, -74.08f, 0);
- marshal_windsorAI->AddWaypoint(8, 314.31f, -74.31f, -76.09f, 0);
- marshal_windsorAI->AddWaypoint(9, 360.22f, -62.93f, -66.77f, 0);
- marshal_windsorAI->AddWaypoint(10, 383.38f, -69.40f, -63.25f, 0);
- marshal_windsorAI->AddWaypoint(11, 389.99f, -67.86f, -62.57f, 0);
- marshal_windsorAI->AddWaypoint(12, 400.98f, -72.01f, -62.31f, 0);
- marshal_windsorAI->AddWaypoint(13, 404.22f, -62.30f, -63.50f, 2300);
- marshal_windsorAI->AddWaypoint(14, 404.22f, -62.30f, -63.50f, 1500);
- marshal_windsorAI->AddWaypoint(15, 407.65f, -51.86f, -63.96f, 0);
- marshal_windsorAI->AddWaypoint(16, 403.61f, -51.71f, -63.92f, 1000);
- marshal_windsorAI->AddWaypoint(17, 403.61f, -51.71f, -63.92f, 2000);
- marshal_windsorAI->AddWaypoint(18, 403.61f, -51.71f, -63.92f, 1000);
- marshal_windsorAI->AddWaypoint(19, 403.61f, -51.71f, -63.92f, 0);
-
- return marshal_windsorAI;
- }
-
- bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest) override
- {
- if (quest->GetQuestId() == 4322)
- {
- PlayerStart = player;
- if (instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED)
- {
- CAST_AI(npc_escort::npc_escortAI, (creature->AI()))->Start(true, false, player->GetGUID());
- instance->SetData(DATA_QUEST_JAIL_BREAK, ENCOUNTER_STATE_IN_PROGRESS);
- creature->setFaction(11);
- }
- }
- return false;
- }
-
- struct npc_marshal_windsorAI : public npc_escortAI
- {
- npc_marshal_windsorAI(Creature* creature) : npc_escortAI(creature)
- {
- instance = creature->GetInstanceScript();
- }
-
- void WaypointReached(uint32 waypointId) override
- {
- switch (waypointId)
- {
- case 1:
- me->Say(SAY_WINDSOR_1, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 7:
- me->HandleEmoteCommand(EMOTE_STATE_POINT);
- me->Say(SAY_WINDSOR_4_1, LANG_UNIVERSAL, PlayerGUID);
- IsOnHold = true;
- break;
- case 10:
- me->setFaction(534);
- break;
- case 12:
- me->Say(SAY_WINDSOR_6, LANG_UNIVERSAL, PlayerGUID);
- instance->SetData(DATA_SUPPLY_ROOM, ENCOUNTER_STATE_IN_PROGRESS);
- break;
- case 13:
- me->HandleEmoteCommand(EMOTE_STATE_USESTANDING);//EMOTE_STATE_WORK
- break;
- case 14:
- instance->SetData(DATA_GATE_SR, 0);
- me->setFaction(11);
- break;
- case 16:
- me->Say(SAY_WINDSOR_9, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 17:
- me->HandleEmoteCommand(EMOTE_STATE_USESTANDING);//EMOTE_STATE_WORK
- break;
- case 18:
- instance->SetData(DATA_GATE_SC, 0);
- break;
- case 19:
- me->SetVisible(false);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- me->SummonCreature(NPC_REGINALD_WINDSOR, 403.61f, -51.71f, -63.92f, 3.600434f, TEMPSUMMON_DEAD_DESPAWN, 0);
- instance->SetData(DATA_SUPPLY_ROOM, ENCOUNTER_STATE_ENDED);
- break;
- }
- }
-
- void EnterCombat(Unit* who) override
- {
- switch (urand(0, 2))
- {
- case 0:
- me->Say(SAY_WINDSOR_AGGRO1, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 1:
- me->Say(SAY_WINDSOR_AGGRO2, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 2:
- me->Say(SAY_WINDSOR_AGGRO3, LANG_UNIVERSAL, PlayerGUID);
- break;
- }
- }
-
- void Reset() override { }
-
- void JustDied(Unit* slayer) override
- {
- instance->SetData(DATA_QUEST_JAIL_BREAK, ENCOUNTER_STATE_FAILED);
- }
-
- void UpdateAI(uint32 diff) override
- {
- if (instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED)
- return;
-
- if (instance->GetData(DATA_DUGHAL) == ENCOUNTER_STATE_OBJECTIVE_COMPLETED)
- SetEscortPaused(false);
-
- if (!instance->GetData(DATA_GATE_D) && instance->GetData(DATA_DUGHAL) == ENCOUNTER_STATE_NOT_STARTED)
- {
- me->Say(SAY_WINDSOR_4_2, LANG_UNIVERSAL, PlayerGUID);
- instance->SetData(DATA_DUGHAL, ENCOUNTER_STATE_BEFORE_START);
- }
- if (instance->GetData(DATA_DUGHAL) == ENCOUNTER_STATE_OBJECTIVE_COMPLETED)
- {
- me->Say(SAY_WINDSOR_4_3, LANG_UNIVERSAL, PlayerGUID);
- instance->SetData(DATA_DUGHAL, ENCOUNTER_STATE_ENDED);
- }
- if ((instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_IN_PROGRESS || instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_FAILED || instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_ENDED)&& instance->GetData(DATA_SUPPLY_ROOM) == ENCOUNTER_STATE_ENDED)
- {
- me->SetVisible(false);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- }
- else
- {
- me->SetVisible(true);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- }
- npc_escortAI::UpdateAI(diff);
- }
- };
-};
-
- */
-
// npc_marshal_reginald_windsor
#define SAY_REGINALD_WINDSOR_0_1 "Can you feel the power, $N??? It's time to ROCK!"
#define SAY_REGINALD_WINDSOR_0_2 "Now we just have to free Tobias and we can get out of here. This way!"
@@ -878,320 +617,6 @@ enum MarshalReginaldWindor
NPC_CREST_KILLER = 9680
};
-/*
-int wp = 0;
-class npc_marshal_reginald_windsor : public CreatureScript
-{
-public:
- npc_marshal_reginald_windsor() : CreatureScript("npc_marshal_reginald_windsor") { }
-
- CreatureAI* GetAI(Creature* creature) const override
- {
- npc_marshal_reginald_windsorAI* marshal_reginald_windsorAI = new npc_marshal_reginald_windsorAI(creature);
-
- marshal_reginald_windsorAI->AddWaypoint(0, 403.61f, -52.71f, -63.92f, 4000);
- marshal_reginald_windsorAI->AddWaypoint(1, 403.61f, -52.71f, -63.92f, 4000);
- marshal_reginald_windsorAI->AddWaypoint(2, 406.33f, -54.87f, -63.95f, 0);
- marshal_reginald_windsorAI->AddWaypoint(3, 407.99f, -73.91f, -62.26f, 0);
- marshal_reginald_windsorAI->AddWaypoint(4, 557.03f, -119.71f, -61.83f, 0);
- marshal_reginald_windsorAI->AddWaypoint(5, 573.40f, -124.39f, -65.07f, 0);
- marshal_reginald_windsorAI->AddWaypoint(6, 593.91f, -130.29f, -69.25f, 0);
- marshal_reginald_windsorAI->AddWaypoint(7, 593.21f, -132.16f, -69.25f, 0);
- marshal_reginald_windsorAI->AddWaypoint(8, 593.21f, -132.16f, -69.25f, 3000);
- marshal_reginald_windsorAI->AddWaypoint(9, 622.81f, -135.55f, -71.92f, 0);
- marshal_reginald_windsorAI->AddWaypoint(10, 634.68f, -151.29f, -70.32f, 0);
- marshal_reginald_windsorAI->AddWaypoint(11, 635.06f, -153.25f, -70.32f, 0);
- marshal_reginald_windsorAI->AddWaypoint(12, 635.06f, -153.25f, -70.32f, 3000);
- marshal_reginald_windsorAI->AddWaypoint(13, 635.06f, -153.25f, -70.32f, 1500);
- marshal_reginald_windsorAI->AddWaypoint(14, 655.25f, -172.39f, -73.72f, 0);
- marshal_reginald_windsorAI->AddWaypoint(15, 654.79f, -226.30f, -83.06f, 0);
- marshal_reginald_windsorAI->AddWaypoint(16, 622.85f, -268.85f, -83.96f, 0);
- marshal_reginald_windsorAI->AddWaypoint(17, 579.45f, -275.56f, -80.44f, 0);
- marshal_reginald_windsorAI->AddWaypoint(18, 561.19f, -266.85f, -75.59f, 0);
- marshal_reginald_windsorAI->AddWaypoint(19, 547.91f, -253.92f, -70.34f, 0);
- marshal_reginald_windsorAI->AddWaypoint(20, 549.20f, -252.40f, -70.34f, 0);
- marshal_reginald_windsorAI->AddWaypoint(21, 549.20f, -252.40f, -70.34f, 4000);
- marshal_reginald_windsorAI->AddWaypoint(22, 555.33f, -269.16f, -74.40f, 0);
- marshal_reginald_windsorAI->AddWaypoint(23, 554.31f, -270.88f, -74.40f, 0);
- marshal_reginald_windsorAI->AddWaypoint(24, 554.31f, -270.88f, -74.40f, 4000);
- marshal_reginald_windsorAI->AddWaypoint(25, 536.10f, -249.60f, -67.47f, 0);
- marshal_reginald_windsorAI->AddWaypoint(26, 520.94f, -216.65f, -59.28f, 0);
- marshal_reginald_windsorAI->AddWaypoint(27, 505.99f, -148.74f, -62.17f, 0);
- marshal_reginald_windsorAI->AddWaypoint(28, 484.21f, -56.24f, -62.43f, 0);
- marshal_reginald_windsorAI->AddWaypoint(29, 470.39f, -6.01f, -70.10f, 0);
- marshal_reginald_windsorAI->AddWaypoint(30, 451.27f, 30.85f, -70.07f, 0);
- marshal_reginald_windsorAI->AddWaypoint(31, 452.45f, 29.85f, -70.37f, 1500);
- marshal_reginald_windsorAI->AddWaypoint(32, 452.45f, 29.85f, -70.37f, 7000);
- marshal_reginald_windsorAI->AddWaypoint(33, 452.45f, 29.85f, -70.37f, 10000);
- marshal_reginald_windsorAI->AddWaypoint(34, 451.27f, 31.85f, -70.07f, 0);
-
- return marshal_reginald_windsorAI;
- }
-
- struct npc_marshal_reginald_windsorAI : public npc_escortAI
- {
- npc_marshal_reginald_windsorAI(Creature* creature) : npc_escortAI(creature)
- {
- }
-
- void WaypointReached(uint32 waypointId) override
- {
- wp = waypointId;
- switch (waypointId)
- {
- case 0:
- me->setFaction(11);
- me->Say(SAY_REGINALD_WINDSOR_0_1, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 1:
- me->Say(SAY_REGINALD_WINDSOR_0_2, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 7:
- me->HandleEmoteCommand(EMOTE_STATE_POINT);
- me->Say(SAY_REGINALD_WINDSOR_5_1, LANG_UNIVERSAL, PlayerGUID);
- IsOnHold=true;
- break;
- case 8:
- me->Say(SAY_REGINALD_WINDSOR_5_2, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 11:
- me->HandleEmoteCommand(EMOTE_STATE_POINT);
- me->Say(SAY_REGINALD_WINDSOR_7_1, LANG_UNIVERSAL, PlayerGUID);
- IsOnHold=true;
- break;
- case 12:
- me->Say(SAY_REGINALD_WINDSOR_7_2, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 13:
- me->Say(SAY_REGINALD_WINDSOR_7_3, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 20:
- me->HandleEmoteCommand(EMOTE_STATE_POINT);
- me->Say(SAY_REGINALD_WINDSOR_13_1, LANG_UNIVERSAL, PlayerGUID);
- IsOnHold=true;
- break;
- case 21:
- me->Say(SAY_REGINALD_WINDSOR_13_3, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 23:
- me->HandleEmoteCommand(EMOTE_STATE_POINT);
- me->Say(SAY_REGINALD_WINDSOR_14_1, LANG_UNIVERSAL, PlayerGUID);
- IsOnHold=true;
- break;
- case 24:
- me->Say(SAY_REGINALD_WINDSOR_14_2, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 31:
- me->Say(SAY_REGINALD_WINDSOR_20_1, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 32:
- me->Say(SAY_REGINALD_WINDSOR_20_2, LANG_UNIVERSAL, PlayerGUID);
- PlayerStart->GroupEventHappens(QUEST_JAIL_BREAK, me);
- instance->SetData(DATA_SHILL, ENCOUNTER_STATE_ENDED);
- break;
- }
- }
-
- void MoveInLineOfSight(Unit* who) override
-
- {
- if (HasEscortState(STATE_ESCORT_ESCORTING))
- return;
-
- if (Player* player = who->ToPlayer())
- {
- if (player->GetQuestStatus(4322) == QUEST_STATUS_INCOMPLETE)
- {
- float Radius = 10.0f;
- if (me->IsWithinDistInMap(who, Radius))
- {
- SetEscortPaused(false);
- Start(true, false, who->GetGUID());
- }
- }
- }
- }
-
- void EnterCombat(Unit* who) override
- {
- switch (urand(0, 2))
- {
- case 0:
- me->Say(SAY_WINDSOR_AGGRO1, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 1:
- me->Say(SAY_WINDSOR_AGGRO2, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 2:
- me->Say(SAY_WINDSOR_AGGRO3, LANG_UNIVERSAL, PlayerGUID);
- break;
- }
- }
- void Reset() override { }
-
- void JustDied(Unit* slayer) override
- {
- instance->SetData(DATA_QUEST_JAIL_BREAK, ENCOUNTER_STATE_FAILED);
- }
-
- void UpdateAI(uint32 diff) override
- {
- if (instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED)
- return;
-
- if (wp == 7)
- {
- if (!instance->GetData(DATA_GATE_J) && instance->GetData(DATA_JAZ) == ENCOUNTER_STATE_NOT_STARTED)
- {
- instance->SetData(DATA_NPC_JAZ, 1);
- instance->SetData(DATA_JAZ, ENCOUNTER_STATE_IN_PROGRESS);
- }
- if (instance->GetData(DATA_NPC_JAZ) && instance->GetData(DATA_NPC_OGRABISI) && instance->GetData(DATA_JAZ) == ENCOUNTER_STATE_IN_PROGRESS)
- {
- SetEscortPaused(false);
- instance->SetData(DATA_JAZ, ENCOUNTER_STATE_ENDED);
- }
- }
- else if (wp == 11)
- {
- if (!instance->GetData(DATA_GATE_S) && instance->GetData(DATA_SHILL) == ENCOUNTER_STATE_NOT_STARTED)
- {
- instance->SetData(DATA_NPC_SHILL, 1);
- instance->SetData(DATA_SHILL, ENCOUNTER_STATE_IN_PROGRESS);
- }
- if (instance->GetData(DATA_NPC_SHILL) && instance->GetData(DATA_SHILL) == ENCOUNTER_STATE_IN_PROGRESS)
- {
- instance->SetData(DATA_SHILL, ENCOUNTER_STATE_ENDED);
- SetEscortPaused(false);
- }
- }
- else if (wp == 20)
- {
- if (!instance->GetData(DATA_GATE_C) && instance->GetData(DATA_CREST) == ENCOUNTER_STATE_NOT_STARTED)
- {
- instance->SetData(DATA_NPC_CREST, 1);
- me->Say(SAY_REGINALD_WINDSOR_13_2, LANG_UNIVERSAL, PlayerGUID);
- instance->SetData(DATA_CREST, ENCOUNTER_STATE_IN_PROGRESS);
- }
- if (instance->GetData(DATA_NPC_CREST) && instance->GetData(DATA_CREST) == ENCOUNTER_STATE_IN_PROGRESS)
- {
- SetEscortPaused(false);
- instance->SetData(DATA_CREST, ENCOUNTER_STATE_ENDED);
- }
- }
- if (instance->GetData(DATA_TOBIAS) == ENCOUNTER_STATE_OBJECTIVE_COMPLETED) SetEscortPaused(false);
- npc_escortAI::UpdateAI(diff);
- }
- };
-};
-*/
-
-// npc_tobias_seecher
-#define SAY_TOBIAS_FREE "Thank you! I will run for safety immediately!"
-
-/*
-class npc_tobias_seecher : public CreatureScript
-{
-public:
- npc_tobias_seecher() : CreatureScript("npc_tobias_seecher") { }
-
- CreatureAI* GetAI(Creature* creature) const override
- {
- npc_tobias_seecherAI* tobias_seecherAI = new npc_tobias_seecherAI(creature);
-
- tobias_seecherAI->AddWaypoint(0, 549.21f, -281.07f, -75.27f);
- tobias_seecherAI->AddWaypoint(1, 554.39f, -267.39f, -73.68f);
- tobias_seecherAI->AddWaypoint(2, 533.59f, -249.38f, -67.04f);
- tobias_seecherAI->AddWaypoint(3, 519.44f, -217.02f, -59.34f);
- tobias_seecherAI->AddWaypoint(4, 506.55f, -153.49f, -62.34f);
-
- return tobias_seecherAI;
- }
-
- bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action) override
- {
- player->PlayerTalkClass->ClearMenus();
- if (action == GOSSIP_ACTION_INFO_DEF + 1)
- {
- player->CLOSE_GOSSIP_MENU();
- CAST_AI(npc_escort::npc_escortAI, (creature->AI()))->Start(false, true, player->GetGUID());
- creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
- instance->SetData(DATA_TOBIAS, ENCOUNTER_STATE_IN_PROGRESS);
- }
- return true;
- }
-
- bool OnGossipHello(Player* player, Creature* creature) override
- {
- if (player->GetQuestStatus(QUEST_JAIL_BREAK) == QUEST_STATUS_INCOMPLETE && instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_IN_PROGRESS)
- {
- player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Get out of here, Tobias, you're free!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
- player->SEND_GOSSIP_MENU(2847, creature->GetGUID());
- }
- return true;
- }
-
- struct npc_tobias_seecherAI : public npc_escortAI
- {
- npc_tobias_seecherAI(Creature* creature) : npc_escortAI(creature) { }
-
- void EnterCombat(Unit* who) override { }
- void Reset() override { }
-
- void JustDied(Unit* killer) override
- {
- if (IsBeingEscorted && killer == me)
- {
- me->SetVisible(false);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- instance->SetData(DATA_TOBIAS, ENCOUNTER_STATE_ENDED);
- }
- }
-
- void WaypointReached(uint32 waypointId) override
- {
- switch (waypointId)
- {
- case 0:
- me->Say(SAY_TOBIAS_FREE, LANG_UNIVERSAL, PlayerGUID);
- break;
- case 2:
- instance->SetData(DATA_TOBIAS, ENCOUNTER_STATE_OBJECTIVE_COMPLETED);
- break;
- case 4:
- me->SetVisible(false);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- instance->SetData(DATA_TOBIAS, ENCOUNTER_STATE_ENDED);
- break;
- }
- }
-
- void UpdateAI(uint32 diff) override
- {
- if (instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_NOT_STARTED)
- return;
-
- if ((instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_IN_PROGRESS || instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_FAILED || instance->GetData(DATA_QUEST_JAIL_BREAK) == ENCOUNTER_STATE_ENDED)&& instance->GetData(DATA_TOBIAS) == ENCOUNTER_STATE_ENDED)
- {
- me->SetVisible(false);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- }
- else
- {
- me->SetVisible(true);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
- me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
- }
- npc_escortAI::UpdateAI(diff);
- }
- };
-};
-
-*/
-
// npc_rocknot
enum RocknotSays
{
@@ -1349,10 +774,4 @@ void AddSC_blackrock_depths()
new npc_kharan_mighthammer();
new npc_lokhtos_darkbargainer();
new npc_rocknot();
- // Fix us
- /*new npc_dughal_stormwing();
- new npc_tobias_seecher();
- new npc_marshal_windsor();
- new npc_marshal_reginald_windsor();
- */
}
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
index 5b338dd8860..f967bd6a217 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp
@@ -536,8 +536,7 @@ public:
void SpawnEyeTentacle(float x, float y)
{
- Creature* Spawned;
- Spawned = DoSpawnCreature(NPC_EYE_TENTACLE, x, y, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 500);
+ Creature* Spawned = DoSpawnCreature(NPC_EYE_TENTACLE, x, y, 0, 0, TEMPSUMMON_CORPSE_DESPAWN, 500);
if (Spawned && Spawned->AI())
if (Unit* target = SelectRandomNotStomach())
Spawned->AI()->AttackStart(target);
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
index 65ffb7fd696..b39ce0307a5 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp
@@ -559,8 +559,7 @@ public:
if (ArcaneBurst_Timer <= diff)
{
- Unit* mvic;
- if ((mvic=SelectTarget(SELECT_TARGET_NEAREST, 0, NOMINAL_MELEE_RANGE, true)) != NULL)
+ if (Unit* mvic = SelectTarget(SELECT_TARGET_NEAREST, 0, NOMINAL_MELEE_RANGE, true))
{
DoCast(mvic, SPELL_ARCANEBURST);
ArcaneBurst_Timer = 5000;
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
index 758b4d25c43..f50a26eae23 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp
@@ -664,10 +664,9 @@ struct boss_faction_championsAI : public BossAI
{
std::list<HostileReference*> const& tList = me->getThreatManager().getThreatList();
std::list<HostileReference*>::const_iterator iter;
- Unit* target;
for (iter = tList.begin(); iter!=tList.end(); ++iter)
{
- target = ObjectAccessor::GetUnit(*me, (*iter)->getUnitGuid());
+ Unit* target = ObjectAccessor::GetUnit(*me, (*iter)->getUnitGuid());
if (target && target->getPowerType() == POWER_MANA)
return target;
}
@@ -679,10 +678,9 @@ struct boss_faction_championsAI : public BossAI
std::list<HostileReference*> const& tList = me->getThreatManager().getThreatList();
std::list<HostileReference*>::const_iterator iter;
uint32 count = 0;
- Unit* target;
for (iter = tList.begin(); iter != tList.end(); ++iter)
{
- target = ObjectAccessor::GetUnit(*me, (*iter)->getUnitGuid());
+ Unit* target = ObjectAccessor::GetUnit(*me, (*iter)->getUnitGuid());
if (target && me->GetDistance2d(target) < distance)
++count;
}
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
index fd0fff44f66..c19af1cf79d 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp
@@ -137,9 +137,8 @@ class boss_ick : public CreatureScript
struct boss_ickAI : public BossAI
{
- boss_ickAI(Creature* creature) : BossAI(creature, DATA_ICK), _vehicle(creature->GetVehicleKit())
+ boss_ickAI(Creature* creature) : BossAI(creature, DATA_ICK)
{
- ASSERT(_vehicle);
_tempThreat = 0;
}
@@ -177,7 +176,8 @@ class boss_ick : public CreatureScript
{
if (Creature* krick = GetKrick())
{
- _vehicle->RemoveAllPassengers();
+ if (Vehicle* _vehicle = me->GetVehicleKit())
+ _vehicle->RemoveAllPassengers();
if (krick->AI())
krick->AI()->DoAction(ACTION_OUTRO);
}
@@ -268,7 +268,6 @@ class boss_ick : public CreatureScript
}
private:
- Vehicle* _vehicle;
float _tempThreat;
};
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
index 3384b562860..3e56f9a1753 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp
@@ -290,9 +290,8 @@ class boss_rimefang : public CreatureScript
struct boss_rimefangAI : public ScriptedAI
{
- boss_rimefangAI(Creature* creature) : ScriptedAI(creature), _vehicle(creature->GetVehicleKit())
+ boss_rimefangAI(Creature* creature) : ScriptedAI(creature)
{
- ASSERT(_vehicle);
Initialize();
}
@@ -314,7 +313,8 @@ class boss_rimefang : public CreatureScript
void JustReachedHome() override
{
- _vehicle->InstallAllAccessories(false);
+ if (Vehicle* _vehicle = me->GetVehicleKit())
+ _vehicle->InstallAllAccessories(false);
}
void DoAction(int32 actionId) override
@@ -376,7 +376,6 @@ class boss_rimefang : public CreatureScript
}
private:
- Vehicle* _vehicle;
ObjectGuid _hoarfrostTargetGUID;
EventMap _events;
uint8 _currentWaypoint;
diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp
index 79f9a6e7c61..f3b70f069c4 100644
--- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp
@@ -110,9 +110,8 @@ class npc_iceborn_protodrake : public CreatureScript
struct npc_iceborn_protodrakeAI: public ScriptedAI
{
- npc_iceborn_protodrakeAI(Creature* creature) : ScriptedAI(creature), _vehicle(creature->GetVehicleKit())
+ npc_iceborn_protodrakeAI(Creature* creature) : ScriptedAI(creature)
{
- ASSERT(_vehicle);
Initialize();
}
@@ -128,7 +127,8 @@ class npc_iceborn_protodrake : public CreatureScript
void EnterCombat(Unit* /*who*/) override
{
- _vehicle->RemoveAllPassengers();
+ if (Vehicle* _vehicle = me->GetVehicleKit())
+ _vehicle->RemoveAllPassengers();
}
void UpdateAI(uint32 diff) override
@@ -148,7 +148,6 @@ class npc_iceborn_protodrake : public CreatureScript
}
private:
- Vehicle* _vehicle;
uint32 _frostBreathCooldown;
};
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
index 07816ebbe39..6c512546a24 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
@@ -432,20 +432,21 @@ class StartMovementEvent : public BasicEvent
{
public:
StartMovementEvent(Creature* summoner, Creature* owner)
- : _summoner(summoner), _owner(owner)
+ : _summonerGuid(summoner->GetGUID()), _owner(owner)
{
}
bool Execute(uint64 /*time*/, uint32 /*diff*/)
{
_owner->SetReactState(REACT_AGGRESSIVE);
- if (Unit* target = _summoner->AI()->SelectTarget(SELECT_TARGET_RANDOM, 0, NonTankTargetSelector(_summoner)))
- _owner->AI()->AttackStart(target);
+ if (Creature* _summoner = ObjectAccessor::GetCreature(*_owner, _summonerGuid))
+ if (Unit* target = _summoner->AI()->SelectTarget(SELECT_TARGET_RANDOM, 0, NonTankTargetSelector(_summoner)))
+ _owner->AI()->AttackStart(target);
return true;
}
private:
- Creature* _summoner;
+ ObjectGuid _summonerGuid;
Creature* _owner;
};
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp
index 2c9d88eac8a..495cf85b759 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp
@@ -117,14 +117,12 @@ class boss_keristrasza : public CreatureScript
ContainmentSphereGUIDs[1] = instance->GetGuidData(ORMOROKS_CONTAINMET_SPHERE);
ContainmentSphereGUIDs[2] = instance->GetGuidData(TELESTRAS_CONTAINMET_SPHERE);
- GameObject* ContainmentSpheres[DATA_CONTAINMENT_SPHERES];
-
for (uint8 i = 0; i < DATA_CONTAINMENT_SPHERES; ++i)
{
- ContainmentSpheres[i] = ObjectAccessor::GetGameObject(*me, ContainmentSphereGUIDs[i]);
- if (!ContainmentSpheres[i])
+ GameObject* ContainmentSphere = ObjectAccessor::GetGameObject(*me, ContainmentSphereGUIDs[i]);
+ if (!ContainmentSphere)
return false;
- if (ContainmentSpheres[i]->GetGoState() != GO_STATE_ACTIVE)
+ if (ContainmentSphere->GetGoState() != GO_STATE_ACTIVE)
return false;
}
if (remove_prison)
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
index a04c809f893..61d64413178 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
@@ -224,7 +224,7 @@ class boss_flame_leviathan : public CreatureScript
struct boss_flame_leviathanAI : public BossAI
{
- boss_flame_leviathanAI(Creature* creature) : BossAI(creature, BOSS_LEVIATHAN), vehicle(creature->GetVehicleKit())
+ boss_flame_leviathanAI(Creature* creature) : BossAI(creature, BOSS_LEVIATHAN)
{
Initialize();
}
@@ -244,7 +244,6 @@ class boss_flame_leviathan : public CreatureScript
void InitializeAI() override
{
- ASSERT(vehicle);
if (!me->isDead())
Reset();
@@ -256,7 +255,6 @@ class boss_flame_leviathan : public CreatureScript
me->SetReactState(REACT_PASSIVE);
}
- Vehicle* vehicle;
uint8 ActiveTowersCount;
uint8 Shutdown;
bool ActiveTowers;
@@ -339,7 +337,7 @@ class boss_flame_leviathan : public CreatureScript
void SpellHit(Unit* /*caster*/, SpellInfo const* spell) override
{
if (spell->Id == SPELL_START_THE_ENGINE)
- vehicle->InstallAllAccessories(false);
+ ASSERT_NOTNULL(me->GetVehicleKit())->InstallAllAccessories(false);
if (spell->Id == SPELL_ELECTROSHOCK)
me->InterruptSpell(CURRENT_CHANNELED_SPELL);
@@ -584,16 +582,14 @@ class boss_flame_leviathan_seat : public CreatureScript
struct boss_flame_leviathan_seatAI : public ScriptedAI
{
- boss_flame_leviathan_seatAI(Creature* creature) : ScriptedAI(creature), vehicle(creature->GetVehicleKit())
+ boss_flame_leviathan_seatAI(Creature* creature) : ScriptedAI(creature)
{
- ASSERT(vehicle);
me->SetReactState(REACT_PASSIVE);
me->SetDisplayId(me->GetCreatureTemplate()->Modelid2);
instance = creature->GetInstanceScript();
}
InstanceScript* instance;
- Vehicle* vehicle;
void PassengerBoarded(Unit* who, int8 seatId, bool apply) override
{
@@ -628,7 +624,7 @@ class boss_flame_leviathan_seat : public CreatureScript
if (apply)
return;
- if (Unit* device = vehicle->GetPassenger(SEAT_DEVICE))
+ if (Unit* device = ASSERT_NOTNULL(me->GetVehicleKit())->GetPassenger(SEAT_DEVICE))
{
device->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_SPELLCLICK);
device->SetUInt32Value(UNIT_FIELD_FLAGS, 0); // unselectable
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
index 05bdb568a2e..818bb0041a9 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
@@ -611,17 +611,16 @@ class boss_freya : public CreatureScript
me->DespawnOrUnsummon(7500);
me->CastSpell(me, SPELL_KNOCK_ON_WOOD_CREDIT, true);
- Creature* Elder[3];
for (uint8 n = 0; n < 3; ++n)
{
- Elder[n] = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_BRIGHTLEAF + n));
- if (Elder[n] && Elder[n]->IsAlive())
+ Creature* Elder = ObjectAccessor::GetCreature(*me, instance->GetGuidData(BOSS_BRIGHTLEAF + n));
+ if (Elder && Elder->IsAlive())
{
- Elder[n]->RemoveAllAuras();
- Elder[n]->AttackStop();
- Elder[n]->CombatStop(true);
- Elder[n]->DeleteThreatList();
- Elder[n]->GetAI()->DoAction(ACTION_ELDER_FREYA_KILLED);
+ Elder->RemoveAllAuras();
+ Elder->AttackStop();
+ Elder->CombatStop(true);
+ Elder->DeleteThreatList();
+ Elder->GetAI()->DoAction(ACTION_ELDER_FREYA_KILLED);
}
}
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
index d0b87f728c5..a04b53ac495 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
@@ -117,10 +117,9 @@ class boss_ignis : public CreatureScript
struct boss_ignis_AI : public BossAI
{
- boss_ignis_AI(Creature* creature) : BossAI(creature, BOSS_IGNIS), _vehicle(me->GetVehicleKit())
+ boss_ignis_AI(Creature* creature) : BossAI(creature, BOSS_IGNIS)
{
Initialize();
- ASSERT(_vehicle);
}
void Initialize()
@@ -133,7 +132,7 @@ class boss_ignis : public CreatureScript
void Reset() override
{
_Reset();
- if (_vehicle)
+ if (Vehicle* _vehicle = me->GetVehicleKit())
_vehicle->RemoveAllPassengers();
instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEVEMENT_IGNIS_START_EVENT);
@@ -284,7 +283,6 @@ class boss_ignis : public CreatureScript
private:
ObjectGuid _slagPotGUID;
- Vehicle* _vehicle;
time_t _firstConstructKill;
bool _shattered;
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
index eb9e310b840..92c7d18a065 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp
@@ -100,11 +100,9 @@ class boss_kologarn : public CreatureScript
struct boss_kologarnAI : public BossAI
{
- boss_kologarnAI(Creature* creature) : BossAI(creature, BOSS_KOLOGARN), vehicle(creature->GetVehicleKit()),
+ boss_kologarnAI(Creature* creature) : BossAI(creature, BOSS_KOLOGARN),
left(false), right(false)
{
- ASSERT(vehicle);
-
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE);
@@ -113,7 +111,6 @@ class boss_kologarn : public CreatureScript
Reset();
}
- Vehicle* vehicle;
bool left, right;
ObjectGuid eyebeamTarget;
@@ -128,9 +125,10 @@ class boss_kologarn : public CreatureScript
events.ScheduleEvent(EVENT_FOCUSED_EYEBEAM, 21000);
events.ScheduleEvent(EVENT_ENRAGE, 600000);
- for (uint8 i = 0; i < 2; ++i)
- if (Unit* arm = vehicle->GetPassenger(i))
- arm->ToCreature()->SetInCombatWithZone();
+ if (Vehicle* vehicle = me->GetVehicleKit())
+ for (uint8 i = 0; i < 2; ++i)
+ if (Unit* arm = vehicle->GetPassenger(i))
+ arm->ToCreature()->SetInCombatWithZone();
_EnterCombat();
}
@@ -283,7 +281,7 @@ class boss_kologarn : public CreatureScript
case EVENT_RESPAWN_LEFT_ARM:
case EVENT_RESPAWN_RIGHT_ARM:
{
- if (vehicle)
+ if (Vehicle* vehicle = me->GetVehicleKit())
{
int8 seat = eventId == EVENT_RESPAWN_LEFT_ARM ? 0 : 1;
uint32 entry = eventId == EVENT_RESPAWN_LEFT_ARM ? NPC_LEFT_ARM : NPC_RIGHT_ARM;
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
index d0e4b7be63b..48f28077e00 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
@@ -401,20 +401,21 @@ class StartAttackEvent : public BasicEvent
{
public:
StartAttackEvent(Creature* summoner, Creature* owner)
- : _summoner(summoner), _owner(owner)
+ : _summonerGuid(summoner->GetGUID()), _owner(owner)
{
}
bool Execute(uint64 /*time*/, uint32 /*diff*/)
{
_owner->SetReactState(REACT_AGGRESSIVE);
- if (Unit* target = _summoner->AI()->SelectTarget(SELECT_TARGET_RANDOM, 0, 300.0f))
- _owner->AI()->AttackStart(target);
+ if (Creature* _summoner = ObjectAccessor::GetCreature(*_owner, _summonerGuid))
+ if (Unit* target = _summoner->AI()->SelectTarget(SELECT_TARGET_RANDOM, 0, 300.0f))
+ _owner->AI()->AttackStart(target);
return true;
}
private:
- Creature* _summoner;
+ ObjectGuid _summonerGuid;
Creature* _owner;
};
diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp
index d5d9f8ae77e..25bf4826000 100644
--- a/src/server/scripts/Northrend/zone_storm_peaks.cpp
+++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp
@@ -381,7 +381,7 @@ class npc_hyldsmeet_protodrake : public CreatureScript
class npc_hyldsmeet_protodrakeAI : public CreatureAI
{
public:
- npc_hyldsmeet_protodrakeAI(Creature* creature) : CreatureAI(creature), _accessoryRespawnTimer(0), _vehicleKit(creature->GetVehicleKit()) { }
+ npc_hyldsmeet_protodrakeAI(Creature* creature) : CreatureAI(creature), _accessoryRespawnTimer(0) { }
void PassengerBoarded(Unit* who, int8 /*seat*/, bool apply) override
{
@@ -396,6 +396,7 @@ class npc_hyldsmeet_protodrake : public CreatureScript
{
//! We need to manually reinstall accessories because the vehicle itself is friendly to players,
//! so EnterEvadeMode is never triggered. The accessory on the other hand is hostile and killable.
+ Vehicle* _vehicleKit = me->GetVehicleKit();
if (_accessoryRespawnTimer && _accessoryRespawnTimer <= diff && _vehicleKit)
{
_vehicleKit->InstallAllAccessories(true);
@@ -407,7 +408,6 @@ class npc_hyldsmeet_protodrake : public CreatureScript
private:
uint32 _accessoryRespawnTimer;
- Vehicle* _vehicleKit;
};
CreatureAI* GetAI(Creature* creature) const override
diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp
index b76712fc541..a8d65cc096d 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp
@@ -219,12 +219,12 @@ public:
if (WateryGrave_Timer <= diff)
{
//Teleport 4 players under the waterfalls
- Unit* target;
GuidSet targets;
GuidSet::const_iterator itr;
for (uint8 i = 0; i < 4; ++i)
{
counter = 0;
+ Unit* target;
do
{
target = SelectTarget(SELECT_TARGET_RANDOM, 1, 50, true); //target players only
@@ -257,12 +257,12 @@ public:
//WateryGlobules_Timer
if (WateryGlobules_Timer <= diff)
{
- Unit* pGlobuleTarget;
GuidSet globules;
GuidSet::const_iterator itr;
for (uint8 g = 0; g < 4; g++) //one unit can't cast more than one spell per update, so some players have to cast for us XD
{
counter = 0;
+ Unit* pGlobuleTarget;
do
{
pGlobuleTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 50, true);
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
index f5583c0bc53..e0a703d7b31 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
@@ -689,10 +689,9 @@ class boss_kaelthas : public CreatureScript
//Respawn advisors
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0);
- Creature* Advisor;
for (uint8 i = 0; i < MAX_ADVISORS; ++i)
{
- Advisor = ObjectAccessor::GetCreature(*me, m_auiAdvisorGuid[i]);
+ Creature* Advisor = ObjectAccessor::GetCreature(*me, m_auiAdvisorGuid[i]);
if (!Advisor)
TC_LOG_ERROR("scripts", "SD2: Kael'Thas Advisor %u does not exist. Possibly despawned? Incorrectly Killed?", i);