mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-18 19:35:42 +00:00
refactor(Scripts/SunwellPlateau): Modernize instance script (#20519)
This commit is contained in:
@@ -235,7 +235,7 @@ struct npc_madrigosa : public NullCreatureAI
|
||||
{
|
||||
case EVENT_MAD_1:
|
||||
me->SetVisible(true);
|
||||
if (Creature* brutallus = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_BRUTALLUS)))
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
{
|
||||
me->SetTarget(brutallus->GetGUID());
|
||||
brutallus->SetReactState(REACT_PASSIVE);
|
||||
@@ -261,12 +261,12 @@ struct npc_madrigosa : public NullCreatureAI
|
||||
events.ScheduleEvent(EVENT_MAD_4, 7000);
|
||||
break;
|
||||
case EVENT_MAD_4:
|
||||
if (Creature* brutallus = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_BRUTALLUS)))
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
brutallus->AI()->Talk(YELL_INTRO);
|
||||
events.ScheduleEvent(EVENT_MAD_5, 5000);
|
||||
break;
|
||||
case EVENT_MAD_5:
|
||||
if (Creature* brutallus = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_BRUTALLUS)))
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
{
|
||||
brutallus->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_ATTACK1H);
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_ATTACK1H);
|
||||
@@ -274,7 +274,7 @@ struct npc_madrigosa : public NullCreatureAI
|
||||
events.ScheduleEvent(EVENT_MAD_6, 10000);
|
||||
break;
|
||||
case EVENT_MAD_6:
|
||||
if (Creature* brutallus = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_BRUTALLUS)))
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
{
|
||||
brutallus->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
@@ -297,11 +297,11 @@ struct npc_madrigosa : public NullCreatureAI
|
||||
events.ScheduleEvent(EVENT_MAD_8, 14000);
|
||||
break;
|
||||
case EVENT_MAD_8:
|
||||
if (Creature* brutallus = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_BRUTALLUS)))
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
me->CastSpell(brutallus, SPELL_MADRIGOSA_FROSTBOLT, false);
|
||||
break;
|
||||
case EVENT_MAD_9:
|
||||
if (Creature* brutallus = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_BRUTALLUS)))
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
{
|
||||
brutallus->CastSpell(brutallus, SPELL_BRUTALLUS_FLAME_RING, true);
|
||||
brutallus->RemoveAllAuras();
|
||||
@@ -323,7 +323,7 @@ struct npc_madrigosa : public NullCreatureAI
|
||||
events.ScheduleEvent(EVENT_MAD_14, 2000);
|
||||
break;
|
||||
case EVENT_MAD_14:
|
||||
if (Creature* brutallus = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_BRUTALLUS)))
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
{
|
||||
brutallus->SetDisableGravity(true);
|
||||
brutallus->GetMotionMaster()->MovePoint(0, brutallus->GetPositionX(), brutallus->GetPositionY() - 30.0f, brutallus->GetPositionZ() + 15.0f, false, true);
|
||||
@@ -331,7 +331,7 @@ struct npc_madrigosa : public NullCreatureAI
|
||||
events.ScheduleEvent(EVENT_MAD_15, 10000);
|
||||
break;
|
||||
case EVENT_MAD_15:
|
||||
if (Creature* brutallus = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_BRUTALLUS)))
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
{
|
||||
brutallus->RemoveAllAuras();
|
||||
brutallus->SetDisableGravity(false);
|
||||
@@ -341,12 +341,12 @@ struct npc_madrigosa : public NullCreatureAI
|
||||
events.ScheduleEvent(EVENT_MAD_16, 1400);
|
||||
break;
|
||||
case EVENT_MAD_16:
|
||||
if (Creature* brutallus = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_BRUTALLUS)))
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
brutallus->CastSpell(me, SPELL_BRUTALLUS_CHARGE, true);
|
||||
events.ScheduleEvent(EVENT_MAD_17, 1200);
|
||||
break;
|
||||
case EVENT_MAD_17:
|
||||
if (Creature* brutallus = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_BRUTALLUS)))
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
brutallus->HandleEmoteCommand(EMOTE_ONESHOT_ATTACK1H);
|
||||
events.ScheduleEvent(EVENT_MAD_18, 500);
|
||||
break;
|
||||
@@ -357,14 +357,14 @@ struct npc_madrigosa : public NullCreatureAI
|
||||
events.ScheduleEvent(EVENT_MAD_19, 6000);
|
||||
break;
|
||||
case EVENT_MAD_19:
|
||||
if (Creature* brutallus = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_BRUTALLUS)))
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
brutallus->AI()->Talk(YELL_INTRO_KILL_MADRIGOSA);
|
||||
events.ScheduleEvent(EVENT_MAD_20, 7000);
|
||||
break;
|
||||
case EVENT_MAD_20:
|
||||
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetFaction(FACTION_FRIENDLY);
|
||||
if (Creature* brutallus = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_BRUTALLUS)))
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
{
|
||||
brutallus->AI()->Talk(YELL_INTRO_TAUNT);
|
||||
brutallus->CastSpell(brutallus, SPELL_BRUTALLUS_BREAK_ICE, false);
|
||||
@@ -372,7 +372,7 @@ struct npc_madrigosa : public NullCreatureAI
|
||||
events.ScheduleEvent(EVENT_MAD_21, 4000);
|
||||
break;
|
||||
case EVENT_MAD_21:
|
||||
if (Creature* brutallus = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_BRUTALLUS)))
|
||||
if (Creature* brutallus = instance->GetCreature(DATA_BRUTALLUS))
|
||||
{
|
||||
brutallus->SetReactState(REACT_AGGRESSIVE);
|
||||
brutallus->SetHealth(brutallus->GetMaxHealth());
|
||||
@@ -382,7 +382,7 @@ struct npc_madrigosa : public NullCreatureAI
|
||||
break;
|
||||
case EVENT_SPAWN_FELMYST:
|
||||
me->DespawnOrUnsummon(1);
|
||||
if (Creature* felmyst = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_FELMYST)))
|
||||
if (Creature* felmyst = instance->GetCreature(DATA_FELMYST))
|
||||
felmyst->AI()->DoAction(ACTION_START_EVENT);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -184,7 +184,7 @@ struct boss_kalecgos : public BossAI
|
||||
events.Reset();
|
||||
events2.ScheduleEvent(EVENT_TALK_GOOD_1, 1000);
|
||||
ClearPlayerAuras();
|
||||
if (Creature* Sath = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_SATHROVARR)))
|
||||
if (Creature* Sath = instance->GetCreature(DATA_SATHROVARR))
|
||||
{
|
||||
Sath->RemoveAllAuras();
|
||||
Sath->GetMotionMaster()->MovementExpired();
|
||||
@@ -243,7 +243,7 @@ struct boss_kalecgos : public BossAI
|
||||
events2.ScheduleEvent(EVENT_TALK_GOOD_2, 1000);
|
||||
break;
|
||||
case EVENT_TALK_GOOD_2:
|
||||
if (Creature* Sath = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_SATHROVARR)))
|
||||
if (Creature* Sath = instance->GetCreature(DATA_SATHROVARR))
|
||||
{
|
||||
summons.Despawn(Sath);
|
||||
Unit::Kill(me, Sath);
|
||||
@@ -329,7 +329,7 @@ struct boss_kalecgos : public BossAI
|
||||
case EVENT_CHECK_HEALTH:
|
||||
if (me->HealthBelowPct(10))
|
||||
{
|
||||
if (Creature* Sath = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_SATHROVARR)))
|
||||
if (Creature* Sath = instance->GetCreature(DATA_SATHROVARR))
|
||||
Sath->AI()->DoAction(ACTION_ENRAGE_OTHER);
|
||||
DoAction(ACTION_ENRAGE);
|
||||
break;
|
||||
@@ -403,7 +403,7 @@ struct boss_kalec : public ScriptedAI
|
||||
void JustDied(Unit*) override
|
||||
{
|
||||
if (InstanceScript* instance = me->GetInstanceScript())
|
||||
if (Creature* kalecgos = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_KALECGOS)))
|
||||
if (Creature* kalecgos = instance->GetCreature(DATA_KALECGOS))
|
||||
kalecgos->AI()->DoAction(ACTION_KALEC_DIED);
|
||||
}
|
||||
|
||||
@@ -576,7 +576,7 @@ struct boss_sathrovarr : public ScriptedAI
|
||||
case EVENT_CHECK_HEALTH2:
|
||||
if (me->HealthBelowPct(1))
|
||||
{
|
||||
if (Creature* kalecgos = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_KALECGOS)))
|
||||
if (Creature* kalecgos = instance->GetCreature(DATA_KALECGOS))
|
||||
kalecgos->AI()->DoAction(ACTION_SATH_BANISH);
|
||||
DoAction(ACTION_BANISH);
|
||||
break;
|
||||
|
||||
@@ -176,8 +176,8 @@ struct npc_kiljaeden_controller : public NullCreatureAI
|
||||
|
||||
void ResetOrbs()
|
||||
{
|
||||
for (uint8 i = 0; i < 4; ++i)
|
||||
if (GameObject* orb = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1 + i)))
|
||||
for (uint8 i = DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1; i < DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_4 + 1; ++i)
|
||||
if (GameObject* orb = instance->GetGameObject(i))
|
||||
orb->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE);
|
||||
}
|
||||
|
||||
@@ -333,7 +333,7 @@ struct boss_kiljaeden : public ScriptedAI
|
||||
{
|
||||
Talk(SAY_KJ_DEATH);
|
||||
instance->SetBossState(DATA_KILJAEDEN, DONE);
|
||||
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_KILJAEDEN_CONTROLLER)))
|
||||
if (Creature* controller = instance->GetCreature(DATA_KJ_CONTROLLER))
|
||||
Unit::Kill(controller, controller);
|
||||
}
|
||||
|
||||
@@ -393,17 +393,17 @@ struct boss_kiljaeden : public ScriptedAI
|
||||
me->CastSpell(me, SPELL_REBIRTH, false);
|
||||
break;
|
||||
case EVENT_EMPOWER_ORBS1:
|
||||
if (Creature* kalec = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_KALECGOS_KJ)))
|
||||
if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ))
|
||||
kalec->AI()->Talk(SAY_KALECGOS_READY1);
|
||||
EmpowerOrb(false);
|
||||
break;
|
||||
case EVENT_EMPOWER_ORBS2:
|
||||
if (Creature* kalec = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_KALECGOS_KJ)))
|
||||
if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ))
|
||||
kalec->AI()->Talk(SAY_KALECGOS_READY2);
|
||||
EmpowerOrb(false);
|
||||
break;
|
||||
case EVENT_EMPOWER_ORBS3:
|
||||
if (Creature* kalec = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_KALECGOS_KJ)))
|
||||
if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ))
|
||||
kalec->AI()->Talk(SAY_KALECGOS_READY_ALL);
|
||||
EmpowerOrb(true);
|
||||
break;
|
||||
@@ -413,56 +413,56 @@ struct boss_kiljaeden : public ScriptedAI
|
||||
me->SetInCombatWithZone();
|
||||
return;
|
||||
case EVENT_TEXT_SPEACH11:
|
||||
if (Creature* kalec = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_KALECGOS_KJ)))
|
||||
if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ))
|
||||
kalec->AI()->Talk(SAY_KALECGOS_JOIN);
|
||||
break;
|
||||
case EVENT_TEXT_SPEACH21:
|
||||
if (Creature* kalec = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_KALECGOS_KJ)))
|
||||
if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ))
|
||||
kalec->AI()->Talk(SAY_KALECGOS_AWAKEN);
|
||||
break;
|
||||
case EVENT_TEXT_SPEACH22:
|
||||
if (Creature* anveena = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_ANVEENA)))
|
||||
if (Creature* anveena = instance->GetCreature(DATA_ANVEENA))
|
||||
sCreatureTextMgr->SendChat(anveena, SAY_ANVEENA_IMPRISONED, nullptr, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_ZONE);
|
||||
break;
|
||||
case EVENT_TEXT_SPEACH23:
|
||||
Talk(SAY_KJ_PHASE3);
|
||||
break;
|
||||
case EVENT_TEXT_SPEACH31:
|
||||
if (Creature* kalec = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_KALECGOS_KJ)))
|
||||
if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ))
|
||||
kalec->AI()->Talk(SAY_KALECGOS_LETGO);
|
||||
break;
|
||||
case EVENT_TEXT_SPEACH32:
|
||||
if (Creature* anveena = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_ANVEENA)))
|
||||
if (Creature* anveena = instance->GetCreature(DATA_ANVEENA))
|
||||
sCreatureTextMgr->SendChat(anveena, SAY_ANVEENA_LOST, nullptr, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_ZONE);
|
||||
break;
|
||||
case EVENT_TEXT_SPEACH33:
|
||||
Talk(SAY_KJ_PHASE4);
|
||||
break;
|
||||
case EVENT_TEXT_SPEACH41:
|
||||
if (Creature* kalec = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_KALECGOS_KJ)))
|
||||
if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ))
|
||||
kalec->AI()->Talk(SAY_KALECGOS_FOCUS);
|
||||
break;
|
||||
case EVENT_TEXT_SPEACH42:
|
||||
if (Creature* anveena = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_ANVEENA)))
|
||||
if (Creature* anveena = instance->GetCreature(DATA_ANVEENA))
|
||||
sCreatureTextMgr->SendChat(anveena, SAY_ANVEENA_KALEC, nullptr, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_ZONE);
|
||||
break;
|
||||
case EVENT_TEXT_SPEACH43:
|
||||
if (Creature* kalec = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_KALECGOS_KJ)))
|
||||
if (Creature* kalec = instance->GetCreature(DATA_KALECGOS_KJ))
|
||||
kalec->AI()->Talk(SAY_KALECGOS_FATE);
|
||||
break;
|
||||
case EVENT_TEXT_SPEACH44:
|
||||
if (Creature* anveena = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_ANVEENA)))
|
||||
if (Creature* anveena = instance->GetCreature(DATA_ANVEENA))
|
||||
sCreatureTextMgr->SendChat(anveena, SAY_ANVEENA_GOODBYE, nullptr, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_ZONE);
|
||||
break;
|
||||
case EVENT_TEXT_SPEACH45:
|
||||
if (Creature* anveena = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_ANVEENA)))
|
||||
if (Creature* anveena = instance->GetCreature(DATA_ANVEENA))
|
||||
{
|
||||
anveena->RemoveAllAuras();
|
||||
anveena->DespawnOrUnsummon(3500);
|
||||
}
|
||||
break;
|
||||
case EVENT_TEXT_SPEACH46:
|
||||
if (Creature* anveena = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_ANVEENA)))
|
||||
if (Creature* anveena = instance->GetCreature(DATA_ANVEENA))
|
||||
{
|
||||
anveena->CastSpell(anveena, SPELL_SACRIFICE_OF_ANVEENA, true);
|
||||
me->CastSpell(me, SPELL_CUSTOM_08_STATE, true);
|
||||
@@ -627,9 +627,9 @@ struct boss_kiljaeden : public ScriptedAI
|
||||
|
||||
void EmpowerOrb(bool empowerAll)
|
||||
{
|
||||
for (uint8 i = 0; i < 4; ++i)
|
||||
for (uint8 i = DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1; i < DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_4 + 1; ++i)
|
||||
{
|
||||
if (GameObject* orb = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1 + i)))
|
||||
if (GameObject* orb = instance->GetGameObject(i))
|
||||
{
|
||||
if (orb->HasGameObjectFlag(GO_FLAG_NOT_SELECTABLE))
|
||||
{
|
||||
@@ -637,7 +637,7 @@ struct boss_kiljaeden : public ScriptedAI
|
||||
if (Creature* trigger = me->SummonTrigger(orb->GetPositionX(), orb->GetPositionY(), orb->GetPositionZ(), 0, 10 * MINUTE * IN_MILLISECONDS))
|
||||
{
|
||||
trigger->CastSpell(trigger, SPELL_RING_OF_BLUE_FLAMES, true, nullptr, nullptr, trigger->GetGUID());
|
||||
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_KILJAEDEN_CONTROLLER)))
|
||||
if (Creature* controller = instance->GetCreature(DATA_KJ_CONTROLLER))
|
||||
controller->AI()->JustSummoned(trigger);
|
||||
}
|
||||
|
||||
|
||||
@@ -166,7 +166,7 @@ struct boss_entropius : public ScriptedAI
|
||||
void EnterEvadeMode(EvadeReason why) override
|
||||
{
|
||||
if (InstanceScript* instance = me->GetInstanceScript())
|
||||
if (Creature* muru = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_MURU)))
|
||||
if (Creature* muru = instance->GetCreature(DATA_MURU))
|
||||
if (!muru->IsInEvadeMode())
|
||||
muru->AI()->EnterEvadeMode(why);
|
||||
|
||||
@@ -195,7 +195,7 @@ struct boss_entropius : public ScriptedAI
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
if (InstanceScript* instance = me->GetInstanceScript())
|
||||
if (Creature* muru = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_MURU)))
|
||||
if (Creature* muru = instance->GetCreature(DATA_MURU))
|
||||
Unit::Kill(muru, muru);
|
||||
}
|
||||
|
||||
|
||||
@@ -35,10 +35,28 @@ DoorData const doorData[] =
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
{
|
||||
{ NPC_LADY_SACROLASH, DATA_SACROLASH },
|
||||
{ NPC_GRAND_WARLOCK_ALYTHESS, DATA_ALYTHESS },
|
||||
{ NPC_MADRIGOSA, DATA_MADRIGOSA },
|
||||
{ 0, 0, }
|
||||
{ NPC_KALECGOS, DATA_KALECGOS },
|
||||
{ NPC_BRUTALLUS, DATA_BRUTALLUS },
|
||||
{ NPC_FELMYST, DATA_FELMYST },
|
||||
{ NPC_MURU, DATA_MURU },
|
||||
{ NPC_LADY_SACROLASH, DATA_SACROLASH },
|
||||
{ NPC_GRAND_WARLOCK_ALYTHESS, DATA_ALYTHESS },
|
||||
{ NPC_MADRIGOSA, DATA_MADRIGOSA },
|
||||
{ NPC_SATHROVARR, DATA_SATHROVARR },
|
||||
{ NPC_KILJAEDEN_CONTROLLER, DATA_KJ_CONTROLLER },
|
||||
{ NPC_ANVEENA, DATA_ANVEENA },
|
||||
{ NPC_KALECGOS_KJ, DATA_KALECGOS_KJ },
|
||||
{ 0, 0, }
|
||||
};
|
||||
|
||||
ObjectData const gameObjectData[] =
|
||||
{
|
||||
{ GO_ICE_BARRIER, DATA_ICEBARRIER },
|
||||
{ GO_ORB_OF_THE_BLUE_DRAGONFLIGHT1, DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1 },
|
||||
{ GO_ORB_OF_THE_BLUE_DRAGONFLIGHT2, DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_2 },
|
||||
{ GO_ORB_OF_THE_BLUE_DRAGONFLIGHT3, DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_3 },
|
||||
{ GO_ORB_OF_THE_BLUE_DRAGONFLIGHT4, DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_4 },
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
||||
class instance_sunwell_plateau : public InstanceMapScript
|
||||
@@ -53,36 +71,17 @@ public:
|
||||
SetHeaders(DataHeader);
|
||||
SetBossNumber(MAX_ENCOUNTERS);
|
||||
LoadDoorData(doorData);
|
||||
LoadObjectData(creatureData, nullptr);
|
||||
LoadObjectData(creatureData, gameObjectData);
|
||||
}
|
||||
|
||||
void OnPlayerEnter(Player* player) override
|
||||
{
|
||||
instance->LoadGrid(1477.94f, 643.22f);
|
||||
instance->LoadGrid(1641.45f, 988.08f);
|
||||
if (GameObject* gobj = instance->GetGameObject(IceBarrierGUID))
|
||||
if (GameObject* gobj = GetGameObject(DATA_ICEBARRIER))
|
||||
gobj->SendUpdateToPlayer(player);
|
||||
}
|
||||
|
||||
Player const* GetPlayerInMap() const
|
||||
{
|
||||
Map::PlayerList const& players = instance->GetPlayers();
|
||||
|
||||
if (!players.IsEmpty())
|
||||
{
|
||||
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
|
||||
{
|
||||
Player* player = itr->GetSource();
|
||||
if (player && !player->HasAura(45839))
|
||||
return player;
|
||||
}
|
||||
}
|
||||
//else
|
||||
// LOG_DEBUG("scripts", "Instance Sunwell Plateau: GetPlayerInMap, but PlayerList is empty!");
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature* creature) override
|
||||
{
|
||||
if (creature->GetSpawnId() > 0 || !creature->GetOwnerGUID().IsPlayer())
|
||||
@@ -90,55 +89,24 @@ public:
|
||||
|
||||
switch (creature->GetEntry())
|
||||
{
|
||||
case NPC_KALECGOS:
|
||||
KalecgosDragonGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_SATHROVARR:
|
||||
SathrovarrGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_BRUTALLUS:
|
||||
BrutallusGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_FELMYST:
|
||||
FelmystGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_MURU:
|
||||
MuruGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_KILJAEDEN:
|
||||
KilJaedenGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_KILJAEDEN_CONTROLLER:
|
||||
KilJaedenControllerGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_ANVEENA:
|
||||
AnveenaGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_KALECGOS_KJ:
|
||||
KalecgosKjGUID = creature->GetGUID();
|
||||
break;
|
||||
|
||||
// Xinef: Felmyst encounter
|
||||
case NPC_DEMONIC_VAPOR_TRAIL:
|
||||
case NPC_UNYIELDING_DEAD:
|
||||
if (Creature* felmyst = instance->GetCreature(FelmystGUID))
|
||||
if (Creature* felmyst = GetCreature(DATA_FELMYST))
|
||||
felmyst->AI()->JustSummoned(creature);
|
||||
break;
|
||||
|
||||
// Xinef: M'uru encounter
|
||||
case NPC_DARKNESS:
|
||||
case NPC_VOID_SENTINEL:
|
||||
case NPC_VOID_SPAWN:
|
||||
if (Creature* muru = instance->GetCreature(MuruGUID))
|
||||
if (Creature* muru = GetCreature(DATA_MURU))
|
||||
muru->AI()->JustSummoned(creature);
|
||||
break;
|
||||
|
||||
// Xinef: Kil'jaeden encounter
|
||||
case NPC_FELFIRE_PORTAL:
|
||||
case NPC_VOLATILE_FELFIRE_FIEND:
|
||||
case NPC_SHIELD_ORB:
|
||||
case NPC_SINISTER_REFLECTION:
|
||||
if (Creature* kiljaedenC = instance->GetCreature(KilJaedenControllerGUID))
|
||||
if (Creature* kiljaedenC = GetCreature(DATA_KJ_CONTROLLER))
|
||||
kiljaedenC->AI()->JustSummoned(creature);
|
||||
break;
|
||||
default:
|
||||
@@ -147,87 +115,6 @@ public:
|
||||
|
||||
InstanceScript::OnCreatureCreate(creature);
|
||||
}
|
||||
|
||||
void OnGameObjectCreate(GameObject* go) override
|
||||
{
|
||||
switch (go->GetEntry())
|
||||
{
|
||||
case GO_FORCE_FIELD:
|
||||
case GO_BOSS_COLLISION_1:
|
||||
case GO_BOSS_COLLISION_2:
|
||||
case GO_FIRE_BARRIER:
|
||||
case GO_MURUS_GATE_1:
|
||||
case GO_MURUS_GATE_2:
|
||||
AddDoor(go);
|
||||
break;
|
||||
case GO_ICE_BARRIER:
|
||||
IceBarrierGUID = go->GetGUID();
|
||||
go->setActive(true);
|
||||
break;
|
||||
case GO_ORB_OF_THE_BLUE_DRAGONFLIGHT1:
|
||||
blueFlightOrbGUID[0] = go->GetGUID();
|
||||
break;
|
||||
case GO_ORB_OF_THE_BLUE_DRAGONFLIGHT2:
|
||||
blueFlightOrbGUID[1] = go->GetGUID();
|
||||
break;
|
||||
case GO_ORB_OF_THE_BLUE_DRAGONFLIGHT3:
|
||||
blueFlightOrbGUID[2] = go->GetGUID();
|
||||
break;
|
||||
case GO_ORB_OF_THE_BLUE_DRAGONFLIGHT4:
|
||||
blueFlightOrbGUID[3] = go->GetGUID();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ObjectGuid GetGuidData(uint32 id) const override
|
||||
{
|
||||
switch (id)
|
||||
{
|
||||
case NPC_KALECGOS:
|
||||
return KalecgosDragonGUID;
|
||||
case NPC_SATHROVARR:
|
||||
return SathrovarrGUID;
|
||||
case NPC_BRUTALLUS:
|
||||
return BrutallusGUID;
|
||||
case NPC_FELMYST:
|
||||
return FelmystGUID;
|
||||
case NPC_MURU:
|
||||
return MuruGUID;
|
||||
case NPC_ANVEENA:
|
||||
return AnveenaGUID;
|
||||
case NPC_KALECGOS_KJ:
|
||||
return KalecgosKjGUID;
|
||||
case NPC_KILJAEDEN_CONTROLLER:
|
||||
return KilJaedenControllerGUID;
|
||||
case NPC_KILJAEDEN:
|
||||
return KilJaedenGUID;
|
||||
|
||||
// Orbs
|
||||
case DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1:
|
||||
case DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_2:
|
||||
case DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_3:
|
||||
case DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_4:
|
||||
return blueFlightOrbGUID[id - DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1];
|
||||
}
|
||||
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
protected:
|
||||
ObjectGuid KalecgosDragonGUID;
|
||||
ObjectGuid SathrovarrGUID;
|
||||
ObjectGuid BrutallusGUID;
|
||||
ObjectGuid FelmystGUID;
|
||||
ObjectGuid MuruGUID;
|
||||
ObjectGuid KilJaedenGUID;
|
||||
ObjectGuid KilJaedenControllerGUID;
|
||||
ObjectGuid AnveenaGUID;
|
||||
ObjectGuid KalecgosKjGUID;
|
||||
|
||||
ObjectGuid IceBarrierGUID;
|
||||
ObjectGuid blueFlightOrbGUID[4];
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
|
||||
@@ -38,15 +38,22 @@ enum BossIds
|
||||
|
||||
enum DataTypes
|
||||
{
|
||||
DATA_SACROLASH = 0,
|
||||
DATA_ALYTHESS = 1,
|
||||
DATA_MADRIGOSA = 2,
|
||||
DATA_SACROLASH = 7,
|
||||
DATA_ALYTHESS = 8,
|
||||
DATA_MADRIGOSA = 9,
|
||||
DATA_SATHROVARR = 10,
|
||||
DATA_KJ_CONTROLLER = 11,
|
||||
DATA_ANVEENA = 12,
|
||||
DATA_KALECGOS_KJ = 13
|
||||
};
|
||||
|
||||
// GameObject GUIDs
|
||||
DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1 = 10,
|
||||
DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_2 = 11,
|
||||
DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_3 = 12,
|
||||
DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_4 = 13
|
||||
enum DataTypesObjects
|
||||
{
|
||||
DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_1 = 0,
|
||||
DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_2 = 1,
|
||||
DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_3 = 2,
|
||||
DATA_ORB_OF_THE_BLUE_DRAGONFLIGHT_4 = 3,
|
||||
DATA_ICEBARRIER = 4,
|
||||
};
|
||||
|
||||
enum CreatureIds
|
||||
|
||||
Reference in New Issue
Block a user