mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-24 14:16:31 +00:00
feat(Core/Misc): implement ObjectGuid class (port from TC) (#4885)
This commit is contained in:
@@ -221,7 +221,7 @@ public:
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
if (pInstance)
|
||||
if (Creature* b = pInstance->instance->GetCreature(pInstance->GetData64(DATA_BRONJAHM)))
|
||||
if (Creature* b = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_BRONJAHM)))
|
||||
{
|
||||
if (me->GetExactDist2d(b) <= 2.0f)
|
||||
{
|
||||
|
||||
@@ -140,7 +140,7 @@ public:
|
||||
me->SetOrientation(me->GetAngle(target));
|
||||
me->SetControlled(true, UNIT_STATE_ROOT);
|
||||
me->DisableRotate(true);
|
||||
me->SetUInt64Value(UNIT_FIELD_TARGET, 0);
|
||||
me->SetGuidValue(UNIT_FIELD_TARGET, ObjectGuid::Empty);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->GetMotionMaster()->Clear(false);
|
||||
me->GetMotionMaster()->MoveIdle();
|
||||
@@ -337,7 +337,7 @@ public:
|
||||
t->ToCreature()->SetReactState(REACT_AGGRESSIVE);
|
||||
if (t->GetVictim())
|
||||
{
|
||||
t->SetUInt64Value(UNIT_FIELD_TARGET, t->GetVictim()->GetGUID());
|
||||
t->SetGuidValue(UNIT_FIELD_TARGET, t->GetVictim()->GetGUID());
|
||||
t->GetMotionMaster()->MoveChase(t->GetVictim());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,25 +24,18 @@ public:
|
||||
uint32 m_auiEncounter[MAX_ENCOUNTER];
|
||||
TeamId teamIdInInstance;
|
||||
std::string str_data;
|
||||
uint64 NPC_BronjahmGUID;
|
||||
uint64 NPC_DevourerGUID;
|
||||
ObjectGuid NPC_BronjahmGUID;
|
||||
ObjectGuid NPC_DevourerGUID;
|
||||
|
||||
uint64 NPC_LeaderFirstGUID;
|
||||
uint64 NPC_LeaderSecondGUID;
|
||||
uint64 NPC_GuardFirstGUID;
|
||||
uint64 NPC_GuardSecondGUID;
|
||||
ObjectGuid NPC_LeaderFirstGUID;
|
||||
ObjectGuid NPC_LeaderSecondGUID;
|
||||
ObjectGuid NPC_GuardFirstGUID;
|
||||
ObjectGuid NPC_GuardSecondGUID;
|
||||
|
||||
void Initialize() override
|
||||
{
|
||||
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
|
||||
teamIdInInstance = TEAM_NEUTRAL;
|
||||
NPC_BronjahmGUID = 0;
|
||||
NPC_DevourerGUID = 0;
|
||||
|
||||
NPC_LeaderFirstGUID = 0;
|
||||
NPC_LeaderSecondGUID = 0;
|
||||
NPC_GuardFirstGUID = 0;
|
||||
NPC_GuardSecondGUID = 0;
|
||||
}
|
||||
|
||||
bool IsEncounterInProgress() const override
|
||||
@@ -150,7 +143,7 @@ public:
|
||||
SaveToDB();
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 type) const override
|
||||
ObjectGuid GetGuidData(uint32 type) const override
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
@@ -158,7 +151,7 @@ public:
|
||||
return NPC_BronjahmGUID;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const* /*source*/, Unit const* /*target*/, uint32 /*miscvalue1*/) override
|
||||
|
||||
@@ -210,7 +210,7 @@ public:
|
||||
if (pInstance)
|
||||
{
|
||||
me->SetVisible(true);
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_DARK_RANGER_LORALEN)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_DARK_RANGER_LORALEN)))
|
||||
c->SetVisible(true);
|
||||
}
|
||||
break;
|
||||
@@ -229,7 +229,7 @@ public:
|
||||
shortver = false;
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
me->GetMotionMaster()->MovePoint(0, MoveThronePos);
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_DARK_RANGER_LORALEN)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_DARK_RANGER_LORALEN)))
|
||||
c->GetMotionMaster()->MovePoint(0, LoralenFollowPos);
|
||||
// Begining of intro is differents between factions as the speech sequence and timers are differents.
|
||||
if (me->GetEntry() == NPC_JAINA_PART1)
|
||||
@@ -241,7 +241,7 @@ public:
|
||||
shortver = true;
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, (me->GetEntry() == NPC_JAINA_PART1 ? EMOTE_STATE_READY2H : EMOTE_STATE_READY1H));
|
||||
me->GetMotionMaster()->MovePoint(0, MoveThronePos);
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_DARK_RANGER_LORALEN)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_DARK_RANGER_LORALEN)))
|
||||
c->GetMotionMaster()->MovePoint(0, LoralenFollowPos);
|
||||
events.ScheduleEvent(EVENT_INTRO_LK_1, 0);
|
||||
break;
|
||||
@@ -256,13 +256,13 @@ public:
|
||||
events.ScheduleEvent(EVENT_INTRO_A2_3, 10000);
|
||||
break;
|
||||
case EVENT_INTRO_A2_3:
|
||||
pInstance->HandleGameObject(pInstance->GetData64(GO_FROSTMOURNE), true);
|
||||
pInstance->HandleGameObject(pInstance->GetGuidData(GO_FROSTMOURNE), true);
|
||||
me->CastSpell(me, SPELL_FROSTMOURNE_SPAWN_SOUND, true);
|
||||
me->CastSpell(me, SPELL_ARCANE_CAST_VISUAL, false);
|
||||
events.ScheduleEvent(EVENT_INTRO_A2_4, 10000);
|
||||
break;
|
||||
case EVENT_INTRO_A2_4:
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
|
||||
{
|
||||
pUther->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
pUther->SetVisible(true);
|
||||
@@ -272,7 +272,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_INTRO_A2_5, 2000);
|
||||
break;
|
||||
case EVENT_INTRO_A2_5:
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
|
||||
pUther->AI()->Talk(SAY_UTHER_INTRO_A2_1);
|
||||
events.ScheduleEvent(EVENT_INTRO_A2_6, 3000);
|
||||
break;
|
||||
@@ -281,7 +281,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_INTRO_A2_7, 6000);
|
||||
break;
|
||||
case EVENT_INTRO_A2_7:
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
|
||||
pUther->AI()->Talk(SAY_UTHER_INTRO_A2_2);
|
||||
events.ScheduleEvent(EVENT_INTRO_A2_8, 6500);
|
||||
break;
|
||||
@@ -290,7 +290,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_INTRO_A2_9, 2000);
|
||||
break;
|
||||
case EVENT_INTRO_A2_9:
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
|
||||
pUther->AI()->Talk(SAY_UTHER_INTRO_A2_3);
|
||||
events.ScheduleEvent(EVENT_INTRO_A2_10, 9000);
|
||||
break;
|
||||
@@ -299,7 +299,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_INTRO_A2_11, 5000);
|
||||
break;
|
||||
case EVENT_INTRO_A2_11:
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
|
||||
pUther->AI()->Talk(SAY_UTHER_INTRO_A2_4);
|
||||
events.ScheduleEvent(EVENT_INTRO_A2_12, 11000);
|
||||
break;
|
||||
@@ -308,7 +308,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_INTRO_A2_13, 4000);
|
||||
break;
|
||||
case EVENT_INTRO_A2_13:
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
|
||||
pUther->AI()->Talk(SAY_UTHER_INTRO_A2_5);
|
||||
events.ScheduleEvent(EVENT_INTRO_A2_14, 12500);
|
||||
break;
|
||||
@@ -317,12 +317,12 @@ public:
|
||||
events.ScheduleEvent(EVENT_INTRO_A2_15, 10000);
|
||||
break;
|
||||
case EVENT_INTRO_A2_15:
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
|
||||
pUther->AI()->Talk(SAY_UTHER_INTRO_A2_6);
|
||||
events.ScheduleEvent(EVENT_INTRO_A2_16, 24000);
|
||||
break;
|
||||
case EVENT_INTRO_A2_16:
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
|
||||
pUther->AI()->Talk(SAY_UTHER_INTRO_A2_7);
|
||||
events.ScheduleEvent(EVENT_INTRO_A2_17, 4000);
|
||||
break;
|
||||
@@ -331,7 +331,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_INTRO_A2_18, 2000);
|
||||
break;
|
||||
case EVENT_INTRO_A2_18:
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
|
||||
{
|
||||
pUther->HandleEmoteCommand(EMOTE_ONESHOT_NO);
|
||||
pUther->AI()->Talk(SAY_UTHER_INTRO_A2_8);
|
||||
@@ -350,13 +350,13 @@ public:
|
||||
break;
|
||||
case EVENT_INTRO_H2_3:
|
||||
Talk(SAY_SYLVANAS_INTRO_3);
|
||||
pInstance->HandleGameObject(pInstance->GetData64(GO_FROSTMOURNE), true);
|
||||
pInstance->HandleGameObject(pInstance->GetGuidData(GO_FROSTMOURNE), true);
|
||||
me->CastSpell(me, SPELL_FROSTMOURNE_SPAWN_SOUND, true);
|
||||
me->CastSpell(me, SPELL_ARCANE_CAST_VISUAL, false);
|
||||
events.ScheduleEvent(EVENT_INTRO_H2_4, 6000);
|
||||
break;
|
||||
case EVENT_INTRO_H2_4:
|
||||
if (Creature* pUther = pInstance->instance->GetCreature(pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_UTHER)))
|
||||
{
|
||||
pUther->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
pUther->SetVisible(true);
|
||||
@@ -366,7 +366,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_INTRO_H2_5, 2000);
|
||||
break;
|
||||
case EVENT_INTRO_H2_5:
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
|
||||
pUther->AI()->Talk(SAY_UTHER_INTRO_H2_1);
|
||||
events.ScheduleEvent(EVENT_INTRO_H2_6, 11000);
|
||||
break;
|
||||
@@ -375,7 +375,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_INTRO_H2_7, 3000);
|
||||
break;
|
||||
case EVENT_INTRO_H2_7:
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
|
||||
pUther->AI()->Talk(SAY_UTHER_INTRO_H2_2);
|
||||
events.ScheduleEvent(EVENT_INTRO_H2_8, 6000);
|
||||
break;
|
||||
@@ -384,7 +384,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_INTRO_H2_9, 5000);
|
||||
break;
|
||||
case EVENT_INTRO_H2_9:
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
|
||||
pUther->AI()->Talk(SAY_UTHER_INTRO_H2_3);
|
||||
events.ScheduleEvent(EVENT_INTRO_H2_10, 19000);
|
||||
break;
|
||||
@@ -393,7 +393,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_INTRO_H2_11, 1500);
|
||||
break;
|
||||
case EVENT_INTRO_H2_11:
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
|
||||
pUther->AI()->Talk(SAY_UTHER_INTRO_H2_4);
|
||||
events.ScheduleEvent(EVENT_INTRO_H2_12, 19500);
|
||||
break;
|
||||
@@ -402,7 +402,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_INTRO_H2_13, 2000);
|
||||
break;
|
||||
case EVENT_INTRO_H2_13:
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
|
||||
{
|
||||
pUther->HandleEmoteCommand(EMOTE_ONESHOT_NO);
|
||||
pUther->AI()->Talk(SAY_UTHER_INTRO_H2_5);
|
||||
@@ -410,7 +410,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_INTRO_H2_14, 12000);
|
||||
break;
|
||||
case EVENT_INTRO_H2_14:
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
|
||||
pUther->AI()->Talk(SAY_UTHER_INTRO_H2_6);
|
||||
events.ScheduleEvent(EVENT_INTRO_H2_15, 8000);
|
||||
break;
|
||||
@@ -421,15 +421,15 @@ public:
|
||||
|
||||
// Remaining Intro Events common for both faction
|
||||
case EVENT_INTRO_LK_1:
|
||||
if (Creature* pLichKing = pInstance->instance->GetCreature(pInstance->GetData64(NPC_LICH_KING_EVENT)))
|
||||
if (Creature* pLichKing = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_LICH_KING_EVENT)))
|
||||
{
|
||||
pInstance->HandleGameObject(pInstance->GetData64(GO_ARTHAS_DOOR), true);
|
||||
pInstance->HandleGameObject(pInstance->GetGuidData(GO_ARTHAS_DOOR), true);
|
||||
pLichKing->SetVisible(true);
|
||||
pLichKing->GetMotionMaster()->MovePoint(0, LichKingMoveThronePos, false);
|
||||
}
|
||||
|
||||
if (!shortver)
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
|
||||
{
|
||||
if (me->GetEntry() == NPC_JAINA_PART1)
|
||||
pUther->AI()->Talk(SAY_UTHER_INTRO_A2_9);
|
||||
@@ -444,52 +444,52 @@ public:
|
||||
|
||||
case EVENT_INTRO_LK_1_2:
|
||||
if (!shortver)
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
|
||||
pUther->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_COWER);
|
||||
break;
|
||||
|
||||
case EVENT_INTRO_LK_1_3:
|
||||
pInstance->HandleGameObject(pInstance->GetData64(GO_ARTHAS_DOOR), false);
|
||||
pInstance->HandleGameObject(pInstance->GetGuidData(GO_ARTHAS_DOOR), false);
|
||||
break;
|
||||
|
||||
case EVENT_INTRO_LK_2:
|
||||
if (!shortver)
|
||||
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_LICH_KING_EVENT)))
|
||||
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_LICH_KING_EVENT)))
|
||||
pLichKing->AI()->Talk(SAY_LK_INTRO_1);
|
||||
events.ScheduleEvent(EVENT_INTRO_LK_3, 2000);
|
||||
break;
|
||||
|
||||
case EVENT_INTRO_LK_3:
|
||||
if (!shortver)
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_UTHER)))
|
||||
if (Creature* pUther = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_UTHER)))
|
||||
pUther->SetVisible(false);
|
||||
events.ScheduleEvent(EVENT_INTRO_LK_4, 4000);
|
||||
break;
|
||||
|
||||
case EVENT_INTRO_LK_4:
|
||||
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_LICH_KING_EVENT)))
|
||||
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_LICH_KING_EVENT)))
|
||||
pLichKing->AI()->Talk(SAY_LK_INTRO_2);
|
||||
events.ScheduleEvent(EVENT_INTRO_LK_4_2, 10000);
|
||||
break;
|
||||
|
||||
case EVENT_INTRO_LK_4_2:
|
||||
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_LICH_KING_EVENT)))
|
||||
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_LICH_KING_EVENT)))
|
||||
{
|
||||
pLichKing->LoadEquipment(1, true);
|
||||
pLichKing->SendMovementFlagUpdate();
|
||||
pLichKing->CastSpell(pLichKing, SPELL_FROSTMOURNE_EQUIP, false);
|
||||
pInstance->HandleGameObject(pInstance->GetData64(GO_FROSTMOURNE), false);
|
||||
pInstance->HandleGameObject(pInstance->GetGuidData(GO_FROSTMOURNE), false);
|
||||
events.ScheduleEvent(EVENT_INTRO_LK_4_3, 1750);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_INTRO_LK_5, 6000);
|
||||
break;
|
||||
|
||||
case EVENT_INTRO_LK_4_3:
|
||||
if (GameObject* go = pInstance->instance->GetGameObject(pInstance->GetData64(GO_FROSTMOURNE)))
|
||||
if (GameObject* go = pInstance->instance->GetGameObject(pInstance->GetGuidData(GO_FROSTMOURNE)))
|
||||
go->SetPhaseMask(2, true);
|
||||
break;
|
||||
case EVENT_INTRO_LK_5:
|
||||
if (Creature* pFalric = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_FALRIC)))
|
||||
if (Creature* pFalric = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_FALRIC)))
|
||||
{
|
||||
pFalric->UpdatePosition(5274.9f, 2039.2f, 709.319f, 5.4619f, true);
|
||||
pFalric->StopMovingOnCurrentPos();
|
||||
@@ -501,7 +501,7 @@ public:
|
||||
a->SetDuration(8000);
|
||||
}
|
||||
}
|
||||
if (Creature* pMarwyn = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_MARWYN)))
|
||||
if (Creature* pMarwyn = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_MARWYN)))
|
||||
{
|
||||
pMarwyn->UpdatePosition(5343.77f, 1973.86f, 709.319f, 2.35173f, true);
|
||||
pMarwyn->StopMovingOnCurrentPos();
|
||||
@@ -514,7 +514,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_LICH_KING_EVENT)))
|
||||
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_LICH_KING_EVENT)))
|
||||
pLichKing->AI()->Talk(SAY_LK_INTRO_3);
|
||||
|
||||
events.ScheduleEvent(EVENT_INTRO_LK_5_2, 5000);
|
||||
@@ -522,30 +522,30 @@ public:
|
||||
break;
|
||||
|
||||
case EVENT_INTRO_LK_5_2:
|
||||
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_LICH_KING_EVENT)))
|
||||
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_LICH_KING_EVENT)))
|
||||
pLichKing->GetMotionMaster()->MovePoint(0, LichKingMoveAwayPos, false);
|
||||
break;
|
||||
|
||||
case EVENT_INTRO_LK_6:
|
||||
if (Creature* pFalric = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_FALRIC)))
|
||||
if (Creature* pFalric = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_FALRIC)))
|
||||
pFalric->AI()->Talk(SAY_FALRIC_INTRO_1);
|
||||
|
||||
events.ScheduleEvent(EVENT_INTRO_LK_7, 2000);
|
||||
break;
|
||||
|
||||
case EVENT_INTRO_LK_7:
|
||||
if (Creature* pMarwyn = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_MARWYN)))
|
||||
if (Creature* pMarwyn = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_MARWYN)))
|
||||
pMarwyn->AI()->Talk(SAY_MARWYN_INTRO_1);
|
||||
|
||||
events.ScheduleEvent(EVENT_INTRO_LK_8, 2000);
|
||||
break;
|
||||
|
||||
case EVENT_INTRO_LK_8:
|
||||
if (Creature* pFalric = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_FALRIC)))
|
||||
if (Creature* pFalric = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_FALRIC)))
|
||||
pFalric->AI()->Talk(SAY_FALRIC_INTRO_2);
|
||||
pInstance->SetData(ACTION_SHOW_TRASH, 1);
|
||||
|
||||
pInstance->HandleGameObject(pInstance->GetData64(GO_ARTHAS_DOOR), true);
|
||||
pInstance->HandleGameObject(pInstance->GetGuidData(GO_ARTHAS_DOOR), true);
|
||||
|
||||
events.ScheduleEvent(EVENT_INTRO_LK_9, 5000);
|
||||
break;
|
||||
@@ -557,20 +557,20 @@ public:
|
||||
Talk(SAY_SYLVANAS_INTRO_END);
|
||||
|
||||
me->GetMotionMaster()->MovePoint(0, LichKingMoveAwayPos, false);
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_DARK_RANGER_LORALEN)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_DARK_RANGER_LORALEN)))
|
||||
c->GetMotionMaster()->MovePoint(0, LichKingMoveAwayPos, false);
|
||||
events.ScheduleEvent(EVENT_INTRO_END, 14000);
|
||||
break;
|
||||
|
||||
case EVENT_INTRO_END:
|
||||
pInstance->HandleGameObject(pInstance->GetData64(GO_ARTHAS_DOOR), false);
|
||||
pInstance->HandleGameObject(pInstance->GetData64(GO_FRONT_DOOR), false);
|
||||
pInstance->HandleGameObject(pInstance->GetGuidData(GO_ARTHAS_DOOR), false);
|
||||
pInstance->HandleGameObject(pInstance->GetGuidData(GO_FRONT_DOOR), false);
|
||||
events.ScheduleEvent(EVENT_INTRO_END_SET, 10000);
|
||||
break;
|
||||
case EVENT_INTRO_END_SET:
|
||||
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetData64(NPC_LICH_KING_EVENT)))
|
||||
if (Creature* pLichKing = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(NPC_LICH_KING_EVENT)))
|
||||
pLichKing->SetVisible(false);
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_DARK_RANGER_LORALEN)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_DARK_RANGER_LORALEN)))
|
||||
c->SetVisible(false);
|
||||
me->SetVisible(false);
|
||||
pInstance->SetData(DATA_INTRO, DONE);
|
||||
@@ -1395,7 +1395,7 @@ public:
|
||||
else
|
||||
me->RemoveAura(SPELL_REMORSELESS_WINTER);
|
||||
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_SYLVANAS_PART2)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_SYLVANAS_PART2)))
|
||||
c->AI()->DoAction(ACTION_INFORM_WALL_DESTROYED);
|
||||
}
|
||||
}
|
||||
@@ -1411,7 +1411,7 @@ public:
|
||||
{
|
||||
Talk(SAY_LK_IW_1);
|
||||
me->SetOrientation(4.15f);
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_ICE_WALL_TARGET)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_ICE_WALL_TARGET)))
|
||||
{
|
||||
me->CastSpell(c, SPELL_SUMMON_ICE_WALL, false);
|
||||
events.ScheduleEvent(EVENT_LK_REMORSELESS_WINTER, 4000);
|
||||
@@ -1468,7 +1468,7 @@ public:
|
||||
case EVENT_LK_CHECK_COMBAT:
|
||||
if (me->isActiveObject()) // during fight
|
||||
{
|
||||
if (Creature* leader = pInstance->instance->GetCreature(pInstance->GetData64(NPC_SYLVANAS_PART2)))
|
||||
if (Creature* leader = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_SYLVANAS_PART2)))
|
||||
if (leader->IsAlive() && leader->GetPositionX() < 5575.0f && me->GetExactDist2d(leader) <= 12.5f && !leader->HasAura(SPELL_HARVEST_SOUL) && me->HasAura(SPELL_REMORSELESS_WINTER))
|
||||
{
|
||||
me->GetMotionMaster()->MovementExpired();
|
||||
@@ -1506,7 +1506,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_LK_CHECK_COMBAT, 1000);
|
||||
break;
|
||||
case EVENT_LK_KILL_LEADER:
|
||||
if (Creature* leader = pInstance->instance->GetCreature(pInstance->GetData64(NPC_SYLVANAS_PART2)))
|
||||
if (Creature* leader = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_SYLVANAS_PART2)))
|
||||
{
|
||||
leader->CastSpell(leader, SPELL_HOR_SUICIDE, true);
|
||||
Unit::Kill(me, leader);
|
||||
@@ -1591,7 +1591,7 @@ public:
|
||||
break;
|
||||
case EVENT_LK_SUMMON_NEXT_ICE_WALL:
|
||||
Talk(SAY_LK_IW_1 + currentWall);
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_ICE_WALL_TARGET + currentWall)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_ICE_WALL_TARGET + currentWall)))
|
||||
me->CastSpell(c, SPELL_SUMMON_ICE_WALL, false);
|
||||
break;
|
||||
}
|
||||
@@ -1693,12 +1693,12 @@ public:
|
||||
switch(events.ExecuteEvent())
|
||||
{
|
||||
case EVENT_LK_SAY_AGGRO:
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_LICH_KING_BOSS)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_LICH_KING_BOSS)))
|
||||
c->AI()->Talk(me->GetEntry() == NPC_JAINA_PART2 ? SAY_LK_AGGRO_ALLY : SAY_LK_AGGRO_HORDE);
|
||||
events.ScheduleEvent(me->GetEntry() == NPC_JAINA_PART2 ? EVENT_JAINA_IMMOBILIZE_LK : EVENT_SYLVANAS_IMMOBILIZE_JUMP, 12000);
|
||||
break;
|
||||
case EVENT_JAINA_IMMOBILIZE_LK:
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_LICH_KING_BOSS)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_LICH_KING_BOSS)))
|
||||
{
|
||||
c->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
@@ -1707,7 +1707,7 @@ public:
|
||||
}
|
||||
break;
|
||||
case EVENT_SYLVANAS_IMMOBILIZE_JUMP:
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_LICH_KING_BOSS)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_LICH_KING_BOSS)))
|
||||
{
|
||||
c->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);
|
||||
@@ -1716,7 +1716,7 @@ public:
|
||||
}
|
||||
break;
|
||||
case EVENT_SYLVANAS_DARK_BINDING:
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_LICH_KING_BOSS)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_LICH_KING_BOSS)))
|
||||
me->CastSpell(c, SPELL_SYLVANAS_DARK_BINDING, false);
|
||||
events.ScheduleEvent(EVENT_SAY_LEAVE, 3500);
|
||||
break;
|
||||
@@ -1725,7 +1725,7 @@ public:
|
||||
Map::PlayerList const& pl = pInstance->instance->GetPlayers();
|
||||
for (Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr)
|
||||
if (Player* p = itr->GetSource())
|
||||
p->KilledMonsterCredit(me->GetEntry(), 0); // for quest
|
||||
p->KilledMonsterCredit(me->GetEntry()); // for quest
|
||||
|
||||
Talk(me->GetEntry() == NPC_JAINA_PART2 ? SAY_JAINA_LEAVE : SAY_SYLVANAS_LEAVE);
|
||||
me->GetMotionMaster()->MovePoint(0, LeaderEscapePos);
|
||||
@@ -1742,7 +1742,7 @@ public:
|
||||
pInstance->SetData(ACTION_START_LK_FIGHT, 1);
|
||||
me->setActive(true);
|
||||
MoveToNextStopPoint();
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(NPC_LICH_KING_BOSS)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_LICH_KING_BOSS)))
|
||||
{
|
||||
c->setActive(true);
|
||||
c->SetInCombatWithZone();
|
||||
@@ -1831,7 +1831,7 @@ public:
|
||||
{
|
||||
me->SetCorpseDelay(10);
|
||||
if (InstanceScript* pInstance = me->GetInstanceScript())
|
||||
if (Creature* lk = pInstance->instance->GetCreature(pInstance->GetData64(NPC_LICH_KING_BOSS)))
|
||||
if (Creature* lk = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_LICH_KING_BOSS)))
|
||||
lk->AI()->DoAction(ACTION_INFORM_TRASH_DIED);
|
||||
}
|
||||
};
|
||||
@@ -1900,7 +1900,7 @@ public:
|
||||
{
|
||||
me->SetCorpseDelay(10);
|
||||
if (InstanceScript* pInstance = me->GetInstanceScript())
|
||||
if (Creature* lk = pInstance->instance->GetCreature(pInstance->GetData64(NPC_LICH_KING_BOSS)))
|
||||
if (Creature* lk = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_LICH_KING_BOSS)))
|
||||
lk->AI()->DoAction(ACTION_INFORM_TRASH_DIED);
|
||||
}
|
||||
};
|
||||
@@ -1965,7 +1965,7 @@ public:
|
||||
{
|
||||
me->SetCorpseDelay(10);
|
||||
if (InstanceScript* pInstance = me->GetInstanceScript())
|
||||
if (Creature* lk = pInstance->instance->GetCreature(pInstance->GetData64(NPC_LICH_KING_BOSS)))
|
||||
if (Creature* lk = pInstance->instance->GetCreature(pInstance->GetGuidData(NPC_LICH_KING_BOSS)))
|
||||
lk->AI()->DoAction(ACTION_INFORM_TRASH_DIED);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -117,28 +117,28 @@ public:
|
||||
|
||||
uint32 EncounterMask;
|
||||
TeamId TeamIdInInstance;
|
||||
uint64 NPC_FalricGUID;
|
||||
uint64 NPC_MarwynGUID;
|
||||
uint64 NPC_LichKingIntroGUID;
|
||||
uint64 NPC_LeaderIntroGUID;
|
||||
uint64 NPC_GuardGUID;
|
||||
uint64 NPC_UtherGUID;
|
||||
uint64 NPC_LichKingGUID;
|
||||
uint64 NPC_LeaderGUID;
|
||||
uint64 NPC_IceWallTargetGUID[4];
|
||||
uint64 NPC_AltarBunnyGUID;
|
||||
uint64 NPC_QuelDelarGUID;
|
||||
uint64 NPC_ShipCaptainGUID;
|
||||
uint64 GO_FrostmourneGUID;
|
||||
uint64 GO_FrostmourneAltarGUID;
|
||||
uint64 GO_FrontDoorGUID;
|
||||
uint64 GO_ArthasDoorGUID;
|
||||
uint64 GO_CaveInGUID;
|
||||
uint64 GO_DoorBeforeThroneGUID;
|
||||
uint64 GO_DoorAfterThroneGUID;
|
||||
uint64 GO_IceWallGUID;
|
||||
ObjectGuid NPC_FalricGUID;
|
||||
ObjectGuid NPC_MarwynGUID;
|
||||
ObjectGuid NPC_LichKingIntroGUID;
|
||||
ObjectGuid NPC_LeaderIntroGUID;
|
||||
ObjectGuid NPC_GuardGUID;
|
||||
ObjectGuid NPC_UtherGUID;
|
||||
ObjectGuid NPC_LichKingGUID;
|
||||
ObjectGuid NPC_LeaderGUID;
|
||||
ObjectGuid NPC_IceWallTargetGUID[4];
|
||||
ObjectGuid NPC_AltarBunnyGUID;
|
||||
ObjectGuid NPC_QuelDelarGUID;
|
||||
ObjectGuid NPC_ShipCaptainGUID;
|
||||
ObjectGuid GO_FrostmourneGUID;
|
||||
ObjectGuid GO_FrostmourneAltarGUID;
|
||||
ObjectGuid GO_FrontDoorGUID;
|
||||
ObjectGuid GO_ArthasDoorGUID;
|
||||
ObjectGuid GO_CaveInGUID;
|
||||
ObjectGuid GO_DoorBeforeThroneGUID;
|
||||
ObjectGuid GO_DoorAfterThroneGUID;
|
||||
ObjectGuid GO_IceWallGUID;
|
||||
|
||||
uint64 NPC_TrashGUID[NUM_OF_TRASH];
|
||||
ObjectGuid NPC_TrashGUID[NUM_OF_TRASH];
|
||||
bool TrashActive[NUM_OF_TRASH];
|
||||
uint8 TrashCounter;
|
||||
uint32 chosenComposition[8][5];
|
||||
@@ -152,8 +152,8 @@ public:
|
||||
bool IsDuringLKFight;
|
||||
uint32 BatteredHiltStatus;
|
||||
|
||||
uint64 NPC_FrostswornGeneralGUID;
|
||||
uint64 NPC_SpiritualReflectionGUID[5];
|
||||
ObjectGuid NPC_FrostswornGeneralGUID;
|
||||
ObjectGuid NPC_SpiritualReflectionGUID[5];
|
||||
|
||||
uint32 outroTimer;
|
||||
uint8 outroStep;
|
||||
@@ -163,28 +163,6 @@ public:
|
||||
{
|
||||
EncounterMask = 0;
|
||||
TeamIdInInstance = TEAM_NEUTRAL;
|
||||
NPC_FalricGUID = 0;
|
||||
NPC_MarwynGUID = 0;
|
||||
NPC_LichKingIntroGUID = 0;
|
||||
NPC_LeaderIntroGUID = 0;
|
||||
NPC_GuardGUID = 0;
|
||||
NPC_UtherGUID = 0;
|
||||
NPC_LichKingGUID = 0;
|
||||
NPC_LeaderGUID = 0;
|
||||
memset(&NPC_IceWallTargetGUID, 0, sizeof(NPC_IceWallTargetGUID));
|
||||
NPC_AltarBunnyGUID = 0;
|
||||
NPC_QuelDelarGUID = 0;
|
||||
NPC_ShipCaptainGUID = 0;
|
||||
GO_FrostmourneGUID = 0;
|
||||
GO_FrostmourneAltarGUID = 0;
|
||||
GO_FrontDoorGUID = 0;
|
||||
GO_ArthasDoorGUID = 0;
|
||||
GO_CaveInGUID = 0;
|
||||
GO_DoorBeforeThroneGUID = 0;
|
||||
GO_DoorAfterThroneGUID = 0;
|
||||
GO_IceWallGUID = 0;
|
||||
|
||||
memset(&NPC_TrashGUID, 0, sizeof(NPC_TrashGUID));
|
||||
memset(&TrashActive, 0, sizeof(TrashActive));
|
||||
TrashCounter = 0;
|
||||
memset(&chosenComposition, 0, sizeof(chosenComposition));
|
||||
@@ -198,9 +176,6 @@ public:
|
||||
IsDuringLKFight = false;
|
||||
BatteredHiltStatus = 0;
|
||||
|
||||
NPC_FrostswornGeneralGUID = 0;
|
||||
memset(&NPC_SpiritualReflectionGUID, 0, sizeof(NPC_SpiritualReflectionGUID));
|
||||
|
||||
outroTimer = 0;
|
||||
outroStep = 0;
|
||||
T1 = nullptr;
|
||||
@@ -378,7 +353,7 @@ public:
|
||||
{
|
||||
case GO_FROSTMOURNE:
|
||||
GO_FrostmourneGUID = go->GetGUID();
|
||||
HandleGameObject(0, false, go);
|
||||
HandleGameObject(ObjectGuid::Empty, false, go);
|
||||
if (EncounterMask & (1 << DATA_INTRO))
|
||||
go->SetPhaseMask(2, true);
|
||||
break;
|
||||
@@ -387,11 +362,11 @@ public:
|
||||
break;
|
||||
case GO_FRONT_DOOR:
|
||||
GO_FrontDoorGUID = go->GetGUID();
|
||||
HandleGameObject(0, true, go);
|
||||
HandleGameObject(ObjectGuid::Empty, true, go);
|
||||
break;
|
||||
case GO_ARTHAS_DOOR:
|
||||
GO_ArthasDoorGUID = go->GetGUID();
|
||||
HandleGameObject(0, (EncounterMask & (1 << DATA_MARWYN)), go);
|
||||
HandleGameObject(ObjectGuid::Empty, (EncounterMask & (1 << DATA_MARWYN)), go);
|
||||
break;
|
||||
case GO_CAVE_IN:
|
||||
GO_CaveInGUID = go->GetGUID();
|
||||
@@ -573,7 +548,7 @@ public:
|
||||
[[fallthrough]];
|
||||
case ACTION_DELETE_ICE_WALL:
|
||||
HandleGameObject(GO_IceWallGUID, true);
|
||||
GO_IceWallGUID = 0;
|
||||
GO_IceWallGUID.Clear();
|
||||
break;
|
||||
case DATA_LICH_KING:
|
||||
if (data == DONE)
|
||||
@@ -683,7 +658,7 @@ public:
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 type) const override
|
||||
ObjectGuid GetGuidData(uint32 type) const override
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
@@ -714,7 +689,7 @@ public:
|
||||
return GO_FrontDoorGUID;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
@@ -1198,7 +1173,7 @@ public:
|
||||
outroTimer = 0;
|
||||
for (Map::PlayerList::const_iterator itr = instance->GetPlayers().begin(); itr != instance->GetPlayers().end(); ++itr)
|
||||
if (Player* p = itr->GetSource())
|
||||
p->KilledMonsterCredit(NPC_WRATH_OF_THE_LICH_KING_CREDIT, 0);
|
||||
p->KilledMonsterCredit(NPC_WRATH_OF_THE_LICH_KING_CREDIT);
|
||||
if (TeamIdInInstance == TEAM_ALLIANCE)
|
||||
if (Creature* c = instance->GetCreature(NPC_LeaderGUID))
|
||||
{
|
||||
|
||||
@@ -114,7 +114,7 @@ public:
|
||||
{
|
||||
phase = 1;
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
me->SendMeleeAttackStop(me->GetVictim());
|
||||
events.DelayEvents(8000);
|
||||
me->CastSpell(me, SPELL_THUNDERING_STOMP, false);
|
||||
@@ -127,7 +127,7 @@ public:
|
||||
events.CancelEvent(EVENT_SPELL_CHILLING_WAVE);
|
||||
phase = 2;
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
me->SendMeleeAttackStop(me->GetVictim());
|
||||
events.DelayEvents(8000);
|
||||
me->CastSpell(me, SPELL_THUNDERING_STOMP, false);
|
||||
|
||||
@@ -307,7 +307,7 @@ public:
|
||||
{
|
||||
pInstance->SetData(DATA_INSTANCE_PROGRESS, INSTANCE_PROGRESS_FINISHED_KRICK_SCENE);
|
||||
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_LEADER_FIRST_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_LEADER_FIRST_GUID)))
|
||||
{
|
||||
c->GetMotionMaster()->Clear();
|
||||
c->UpdatePosition(SBSLeaderStartPos, true);
|
||||
@@ -322,7 +322,7 @@ public:
|
||||
Talk(SAY_OUTRO_KRICK_1);
|
||||
if (pInstance)
|
||||
{
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_LEADER_FIRST_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_LEADER_FIRST_GUID)))
|
||||
{
|
||||
float angle = me->GetAngle(c);
|
||||
me->SetFacingTo(angle);
|
||||
@@ -332,7 +332,7 @@ public:
|
||||
}
|
||||
|
||||
for (uint8 i = 0; i < 2; ++i)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_GUARD_1_GUID + i)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_GUARD_1_GUID + i)))
|
||||
c->DespawnOrUnsummon();
|
||||
}
|
||||
|
||||
@@ -341,13 +341,13 @@ public:
|
||||
case 2:
|
||||
if (pInstance)
|
||||
{
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
|
||||
{
|
||||
c->setActive(true);
|
||||
c->UpdatePosition(SBSTyrannusStartPos, true);
|
||||
c->SetHomePosition(SBSTyrannusStartPos);
|
||||
}
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_LEADER_FIRST_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_LEADER_FIRST_GUID)))
|
||||
c->AI()->Talk(c->GetEntry() == NPC_JAINA_PART1 ? SAY_JAINA_KRICK_1 : SAY_SYLVANAS_KRICK_1);
|
||||
}
|
||||
|
||||
@@ -361,9 +361,9 @@ public:
|
||||
case 4:
|
||||
if (pInstance)
|
||||
{
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
|
||||
c->GetMotionMaster()->MovePath(PATH_BEGIN_VALUE + 10, false);
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_LEADER_FIRST_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_LEADER_FIRST_GUID)))
|
||||
c->AI()->Talk(c->GetEntry() == NPC_JAINA_PART1 ? SAY_JAINA_KRICK_2 : SAY_SYLVANAS_KRICK_2);
|
||||
}
|
||||
|
||||
@@ -376,7 +376,7 @@ public:
|
||||
break;
|
||||
case 6:
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
|
||||
{
|
||||
c->SetFacingToObject(me);
|
||||
c->AI()->Talk(SAY_TYRANNUS_KRICK_1);
|
||||
@@ -401,7 +401,7 @@ public:
|
||||
break;
|
||||
case 9:
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
|
||||
c->CastSpell(c, 69753, false);
|
||||
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
@@ -419,7 +419,7 @@ public:
|
||||
break;
|
||||
case 10:
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
|
||||
c->AI()->Talk(SAY_TYRANNUS_KRICK_2);
|
||||
|
||||
events.RescheduleEvent(11, 9000);
|
||||
@@ -427,9 +427,9 @@ public:
|
||||
case 11:
|
||||
if (pInstance)
|
||||
{
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
|
||||
c->GetMotionMaster()->MovePoint(1, 809.39f, 74.69f, 541.54f);
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_LEADER_FIRST_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_LEADER_FIRST_GUID)))
|
||||
{
|
||||
c->AI()->Talk(c->GetEntry() == NPC_JAINA_PART1 ? SAY_JAINA_KRICK_3 : SAY_SYLVANAS_KRICK_3);
|
||||
c->GetMotionMaster()->MovePath(PATH_BEGIN_VALUE + 11, false);
|
||||
|
||||
@@ -51,7 +51,7 @@ public:
|
||||
{
|
||||
pInstance = me->GetInstanceScript();
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_RIMEFANG_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_RIMEFANG_GUID)))
|
||||
{
|
||||
c->SetCanFly(true);
|
||||
}
|
||||
@@ -68,13 +68,13 @@ public:
|
||||
{
|
||||
if (!pInstance)
|
||||
return;
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_MARTIN_OR_GORKUN_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_MARTIN_OR_GORKUN_GUID)))
|
||||
{
|
||||
c->AI()->DoAction(1);
|
||||
c->DespawnOrUnsummon();
|
||||
pInstance->SetData64(DATA_MARTIN_OR_GORKUN_GUID, 0);
|
||||
pInstance->SetGuidData(DATA_MARTIN_OR_GORKUN_GUID, ObjectGuid::Empty);
|
||||
}
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_RIMEFANG_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_RIMEFANG_GUID)))
|
||||
{
|
||||
c->GetMotionMaster()->Clear();
|
||||
c->GetMotionMaster()->MoveIdle();
|
||||
@@ -93,7 +93,7 @@ public:
|
||||
if (param == 1)
|
||||
{
|
||||
Position exitPos = {1023.46f, 159.12f, 628.2f, 5.23f};
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_RIMEFANG_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_RIMEFANG_GUID)))
|
||||
{
|
||||
c->RemoveAura(46598);
|
||||
c->GetMotionMaster()->Clear();
|
||||
@@ -166,13 +166,13 @@ public:
|
||||
break;
|
||||
case EVENT_RIMEFANG_SPELL_ICY_BLAST:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 190.0f, true))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_RIMEFANG_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_RIMEFANG_GUID)))
|
||||
c->CastSpell(target, RIMEFANG_SPELL_ICY_BLAST, false);
|
||||
events.RepeatEvent(5000);
|
||||
break;
|
||||
case EVENT_SPELL_MARK_OF_RIMEFANG:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 190.0f, true))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_RIMEFANG_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_RIMEFANG_GUID)))
|
||||
{
|
||||
Talk(SAY_MARK);
|
||||
c->AI()->Talk(EMOTE_RIMEFANG_ICEBOLT, target);
|
||||
|
||||
@@ -21,21 +21,21 @@ public:
|
||||
uint32 InstanceProgress;
|
||||
std::string str_data;
|
||||
|
||||
uint64 NPC_LeaderFirstGUID;
|
||||
uint64 NPC_LeaderSecondGUID;
|
||||
uint64 NPC_TyrannusEventGUID;
|
||||
uint64 NPC_Necrolyte1GUID;
|
||||
uint64 NPC_Necrolyte2GUID;
|
||||
uint64 NPC_GuardFirstGUID;
|
||||
uint64 NPC_GuardSecondGUID;
|
||||
uint64 NPC_SindragosaGUID;
|
||||
ObjectGuid NPC_LeaderFirstGUID;
|
||||
ObjectGuid NPC_LeaderSecondGUID;
|
||||
ObjectGuid NPC_TyrannusEventGUID;
|
||||
ObjectGuid NPC_Necrolyte1GUID;
|
||||
ObjectGuid NPC_Necrolyte2GUID;
|
||||
ObjectGuid NPC_GuardFirstGUID;
|
||||
ObjectGuid NPC_GuardSecondGUID;
|
||||
ObjectGuid NPC_SindragosaGUID;
|
||||
|
||||
uint64 NPC_GarfrostGUID;
|
||||
uint64 NPC_MartinOrGorkunGUID;
|
||||
uint64 NPC_RimefangGUID;
|
||||
uint64 NPC_TyrannusGUID;
|
||||
ObjectGuid NPC_GarfrostGUID;
|
||||
ObjectGuid NPC_MartinOrGorkunGUID;
|
||||
ObjectGuid NPC_RimefangGUID;
|
||||
ObjectGuid NPC_TyrannusGUID;
|
||||
|
||||
uint64 GO_IceWallGUID;
|
||||
ObjectGuid GO_IceWallGUID;
|
||||
|
||||
bool bAchievEleven;
|
||||
bool bAchievDontLookUp;
|
||||
@@ -46,22 +46,6 @@ public:
|
||||
teamIdInInstance = TEAM_NEUTRAL;
|
||||
InstanceProgress = INSTANCE_PROGRESS_NONE;
|
||||
|
||||
NPC_LeaderFirstGUID = 0;
|
||||
NPC_LeaderSecondGUID = 0;
|
||||
NPC_TyrannusEventGUID = 0;
|
||||
NPC_Necrolyte1GUID = 0;
|
||||
NPC_Necrolyte2GUID = 0;
|
||||
NPC_GuardFirstGUID = 0;
|
||||
NPC_GuardSecondGUID = 0;
|
||||
NPC_SindragosaGUID = 0;
|
||||
|
||||
NPC_GarfrostGUID = 0;
|
||||
NPC_MartinOrGorkunGUID = 0;
|
||||
NPC_RimefangGUID = 0;
|
||||
NPC_TyrannusGUID = 0;
|
||||
|
||||
GO_IceWallGUID = 0;
|
||||
|
||||
bAchievEleven = true;
|
||||
bAchievDontLookUp = true;
|
||||
}
|
||||
@@ -77,11 +61,11 @@ public:
|
||||
void OnPlayerEnter(Player* /*plr*/) override
|
||||
{
|
||||
instance->LoadGrid(LeaderIntroPos.GetPositionX(), LeaderIntroPos.GetPositionY());
|
||||
if (Creature* c = instance->GetCreature(GetData64(DATA_LEADER_FIRST_GUID)))
|
||||
if (Creature* c = instance->GetCreature(GetGuidData(DATA_LEADER_FIRST_GUID)))
|
||||
c->AI()->SetData(DATA_START_INTRO, 0);
|
||||
}
|
||||
|
||||
uint32 GetCreatureEntry(uint32 /*guidLow*/, CreatureData const* data) override
|
||||
uint32 GetCreatureEntry(ObjectGuid::LowType /*guidLow*/, CreatureData const* data) override
|
||||
{
|
||||
if (teamIdInInstance == TEAM_NEUTRAL)
|
||||
{
|
||||
@@ -303,7 +287,7 @@ public:
|
||||
SaveToDB();
|
||||
}
|
||||
|
||||
void SetData64(uint32 type, uint64 data) override
|
||||
void SetGuidData(uint32 type, ObjectGuid data) override
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
@@ -338,7 +322,7 @@ public:
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 type) const override
|
||||
ObjectGuid GetGuidData(uint32 type) const override
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
@@ -368,7 +352,7 @@ public:
|
||||
return NPC_SindragosaGUID;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const* /*source*/, Unit const* /*target*/, uint32 /*miscvalue1*/) override
|
||||
|
||||
@@ -94,7 +94,7 @@ public:
|
||||
break;
|
||||
case 2:
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
|
||||
{
|
||||
c->setActive(true);
|
||||
c->AI()->Talk(SAY_TYRANNUS_INTRO_1);
|
||||
@@ -104,7 +104,7 @@ public:
|
||||
break;
|
||||
case 3:
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
|
||||
c->AI()->Talk(SAY_TYRANNUS_INTRO_2);
|
||||
|
||||
events.RescheduleEvent(4, 14000);
|
||||
@@ -112,8 +112,8 @@ public:
|
||||
case 4:
|
||||
if (pInstance)
|
||||
{
|
||||
Creature* n1 = pInstance->instance->GetCreature(pInstance->GetData64(DATA_NECROLYTE_1_GUID));
|
||||
Creature* n2 = pInstance->instance->GetCreature(pInstance->GetData64(DATA_NECROLYTE_2_GUID));
|
||||
Creature* n1 = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_NECROLYTE_1_GUID));
|
||||
Creature* n2 = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_NECROLYTE_2_GUID));
|
||||
if (n1 && n2)
|
||||
{
|
||||
if (!n1->IsInCombat() && n1->IsAlive())
|
||||
@@ -157,7 +157,7 @@ public:
|
||||
break;
|
||||
case 6:
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
|
||||
c->AI()->Talk(SAY_TYRANNUS_INTRO_3);
|
||||
|
||||
events.RescheduleEvent(7, 5000);
|
||||
@@ -165,9 +165,9 @@ public:
|
||||
case 7:
|
||||
if (pInstance)
|
||||
{
|
||||
if (Creature* n1 = pInstance->instance->GetCreature(pInstance->GetData64(DATA_NECROLYTE_1_GUID)))
|
||||
if (Creature* n1 = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_NECROLYTE_1_GUID)))
|
||||
n1->AI()->DoAction(1337); // remove invincibility
|
||||
if (Creature* n2 = pInstance->instance->GetCreature(pInstance->GetData64(DATA_NECROLYTE_2_GUID)))
|
||||
if (Creature* n2 = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_NECROLYTE_2_GUID)))
|
||||
n2->AI()->DoAction(1337); // remove invincibility
|
||||
|
||||
for (SummonList::iterator itr = summons.begin(); itr != summons.end(); ++itr)
|
||||
@@ -193,7 +193,7 @@ public:
|
||||
break;
|
||||
case 8:
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
|
||||
c->CastSpell(c, 69753, false);
|
||||
|
||||
events.RescheduleEvent(9, 400);
|
||||
@@ -235,7 +235,7 @@ public:
|
||||
case 12:
|
||||
if (pInstance)
|
||||
{
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
|
||||
c->AI()->Talk(SAY_TYRANNUS_INTRO_4);
|
||||
|
||||
for (SummonList::iterator itr = summons.begin(); itr != summons.end(); ++itr)
|
||||
@@ -285,7 +285,7 @@ public:
|
||||
{
|
||||
me->CastSpell(me, 59514, false);
|
||||
for (uint8 i = 0; i < 2; ++i)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_GUARD_1_GUID + i)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_GUARD_1_GUID + i)))
|
||||
c->CastSpell(c, 70513, false);
|
||||
}
|
||||
}
|
||||
@@ -295,13 +295,13 @@ public:
|
||||
case 15:
|
||||
if (pInstance)
|
||||
{
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_EVENT_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_EVENT_GUID)))
|
||||
c->GetMotionMaster()->MovePoint(0, SBSTyrannusStartPos);
|
||||
|
||||
if (me->GetEntry() == NPC_JAINA_PART1)
|
||||
{
|
||||
for (uint8 i = 0; i < 2; ++i)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_GUARD_1_GUID + i)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_GUARD_1_GUID + i)))
|
||||
c->CastSpell(c, 70464, false);
|
||||
}
|
||||
}
|
||||
@@ -313,7 +313,7 @@ public:
|
||||
if (pInstance)
|
||||
{
|
||||
for (uint8 i = 0; i < 2; ++i)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_GUARD_1_GUID + i)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_GUARD_1_GUID + i)))
|
||||
c->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0);
|
||||
|
||||
for (SummonList::iterator itr = summons.begin(); itr != summons.end(); ++itr)
|
||||
@@ -403,11 +403,11 @@ public:
|
||||
|
||||
if (me->GetPositionY() < 206.0f)
|
||||
{
|
||||
pInstance->SetData64(DATA_NECROLYTE_1_GUID, me->GetGUID());
|
||||
pInstance->SetGuidData(DATA_NECROLYTE_1_GUID, me->GetGUID());
|
||||
}
|
||||
else
|
||||
{
|
||||
pInstance->SetData64(DATA_NECROLYTE_2_GUID, me->GetGUID());
|
||||
pInstance->SetGuidData(DATA_NECROLYTE_2_GUID, me->GetGUID());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -428,7 +428,7 @@ public:
|
||||
events.RescheduleEvent(1, 0);
|
||||
events.RescheduleEvent(2, urand(5000, 9000));
|
||||
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_LEADER_FIRST_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_LEADER_FIRST_GUID)))
|
||||
c->AI()->SetData(DATA_START_INTRO, 0);
|
||||
}
|
||||
|
||||
@@ -524,7 +524,7 @@ public:
|
||||
case 1:
|
||||
{
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_GARFROST_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_GARFROST_GUID)))
|
||||
{
|
||||
float angle = c->GetAngle(me);
|
||||
float x = c->GetPositionX() + cos(angle) * 12.0f;
|
||||
@@ -573,14 +573,12 @@ public:
|
||||
{
|
||||
pInstance = me->GetInstanceScript();
|
||||
killsLeft = 0;
|
||||
deathbringerGUID[0] = 0;
|
||||
deathbringerGUID[1] = 0;
|
||||
}
|
||||
|
||||
InstanceScript* pInstance;
|
||||
EventMap events;
|
||||
uint32 killsLeft;
|
||||
uint64 deathbringerGUID[2];
|
||||
ObjectGuid deathbringerGUID[2];
|
||||
|
||||
void MovementInform(uint32 type, uint32 id) override
|
||||
{
|
||||
@@ -916,7 +914,7 @@ public:
|
||||
events.RescheduleEvent(2, 15000);
|
||||
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_GUID)))
|
||||
{
|
||||
c->AI()->Talk(SAY_PREFIGHT_1);
|
||||
c->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
|
||||
@@ -960,8 +958,8 @@ public:
|
||||
|
||||
TSSpawnPos.GetAngle(&TSMidPos);
|
||||
|
||||
for (std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr)
|
||||
if (Creature* c = pInstance->instance->GetCreature(*itr))
|
||||
for (ObjectGuid guid : summons)
|
||||
if (Creature* c = pInstance->instance->GetCreature(guid))
|
||||
{
|
||||
float hx, hy, hz, ho;
|
||||
c->GetHomePosition(hx, hy, hz, ho);
|
||||
@@ -974,10 +972,10 @@ public:
|
||||
else if (p == 3)
|
||||
{
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SINDRAGOSA_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_SINDRAGOSA_GUID)))
|
||||
{
|
||||
for (std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr)
|
||||
if (Creature* s = pInstance->instance->GetCreature(*itr))
|
||||
for (ObjectGuid guid : summons)
|
||||
if (Creature* s = pInstance->instance->GetCreature(guid))
|
||||
if (s->IsAlive())
|
||||
Unit::Kill(c, s);
|
||||
if (me->IsAlive())
|
||||
@@ -1022,14 +1020,14 @@ public:
|
||||
break;
|
||||
case 3:
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_GUID)))
|
||||
c->AI()->Talk(SAY_PREFIGHT_2);
|
||||
|
||||
me->SetFacingTo(5.26f);
|
||||
me->SetOrientation(5.26f);
|
||||
me->SetHomePosition(*me);
|
||||
for (std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr)
|
||||
if (Creature* c = pInstance->instance->GetCreature(*itr))
|
||||
for (ObjectGuid guid : summons)
|
||||
if (Creature* c = pInstance->instance->GetCreature(guid))
|
||||
{
|
||||
c->SetFacingTo(5.26f);
|
||||
c->SetOrientation(5.26f);
|
||||
@@ -1041,14 +1039,14 @@ public:
|
||||
break;
|
||||
case 4:
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_TYRANNUS_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_GUID)))
|
||||
c->AI()->DoAction(1);
|
||||
break;
|
||||
case 5:
|
||||
me->SetFacingTo(TSCenterPos.GetOrientation());
|
||||
Talk(me->GetEntry() == NPC_MARTIN_VICTUS_2 ? SAY_GENERAL_ALLIANCE_OUTRO_1 : SAY_GENERAL_HORDE_OUTRO_1);
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_LEADER_SECOND_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_LEADER_SECOND_GUID)))
|
||||
c->AI()->DoAction(1);
|
||||
break;
|
||||
case 10:
|
||||
@@ -1058,8 +1056,8 @@ public:
|
||||
float offset = frand(0.0f, 10.0f);
|
||||
c->GetMotionMaster()->MovePoint(0, 1047.0f + offset, 118.0f + offset, 628.2f);
|
||||
c->SetHomePosition(*me);
|
||||
for (std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr)
|
||||
if (Creature* s = pInstance->instance->GetCreature(*itr))
|
||||
for (ObjectGuid guid : summons)
|
||||
if (Creature* s = pInstance->instance->GetCreature(guid))
|
||||
{
|
||||
if (s->GetEntry() == NPC_FALLEN_WARRIOR)
|
||||
continue;
|
||||
@@ -1137,20 +1135,20 @@ public:
|
||||
npc_pos_leader_secondAI(Creature* creature) : NullCreatureAI(creature)
|
||||
{
|
||||
pInstance = me->GetInstanceScript();
|
||||
barrierGUID = 0;
|
||||
barrierGUID.Clear();
|
||||
events.Reset();
|
||||
me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER);
|
||||
|
||||
if (pInstance)
|
||||
{
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_RIMEFANG_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_RIMEFANG_GUID)))
|
||||
{
|
||||
c->RemoveAllAuras();
|
||||
c->GetMotionMaster()->Clear();
|
||||
c->GetMotionMaster()->MoveIdle();
|
||||
c->SetVisible(false);
|
||||
}
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_MARTIN_OR_GORKUN_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_MARTIN_OR_GORKUN_GUID)))
|
||||
{
|
||||
c->AI()->DoAction(2);
|
||||
}
|
||||
@@ -1159,7 +1157,7 @@ public:
|
||||
|
||||
InstanceScript* pInstance;
|
||||
EventMap events;
|
||||
uint64 barrierGUID;
|
||||
ObjectGuid barrierGUID;
|
||||
|
||||
void DoAction(int32 p) override
|
||||
{
|
||||
@@ -1222,7 +1220,7 @@ public:
|
||||
break;
|
||||
case 2:
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_MARTIN_OR_GORKUN_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_MARTIN_OR_GORKUN_GUID)))
|
||||
c->AI()->Talk(SAY_GENERAL_OUTRO_2);
|
||||
|
||||
events.RescheduleEvent(3, me->GetEntry() == NPC_JAINA_PART2 ? 7000 : 8000);
|
||||
@@ -1242,9 +1240,9 @@ public:
|
||||
break;
|
||||
case 5:
|
||||
if (pInstance)
|
||||
if (Creature* x = pInstance->instance->GetCreature(pInstance->GetData64(DATA_MARTIN_OR_GORKUN_GUID)))
|
||||
if (Creature* x = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_MARTIN_OR_GORKUN_GUID)))
|
||||
{
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SINDRAGOSA_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_SINDRAGOSA_GUID)))
|
||||
c->CastSpell(x->GetPositionX(), x->GetPositionY(), x->GetPositionZ(), SPELL_SINDRAGOSA_FROST_BOMB_POS, true);
|
||||
}
|
||||
|
||||
@@ -1253,18 +1251,18 @@ public:
|
||||
break;
|
||||
case 6:
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SINDRAGOSA_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_SINDRAGOSA_GUID)))
|
||||
c->GetMotionMaster()->MovePoint(0, TSSindragosaPos1);
|
||||
|
||||
events.RescheduleEvent(7, 4500);
|
||||
break;
|
||||
case 7:
|
||||
if (pInstance)
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetData64(DATA_SINDRAGOSA_GUID)))
|
||||
if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_SINDRAGOSA_GUID)))
|
||||
c->SetVisible(false);
|
||||
if (GameObject* barrier = pInstance->instance->GetGameObject(barrierGUID))
|
||||
barrier->Delete();
|
||||
barrierGUID = 0;
|
||||
barrierGUID.Clear();
|
||||
|
||||
events.RescheduleEvent(8, 2000);
|
||||
break;
|
||||
@@ -1272,7 +1270,7 @@ public:
|
||||
me->GetMotionMaster()->MovePath(me->GetEntry() == NPC_JAINA_PART2 ? PATH_BEGIN_VALUE + 16 : PATH_BEGIN_VALUE + 17, false);
|
||||
break;
|
||||
case 10:
|
||||
if (Creature* x = pInstance->instance->GetCreature(pInstance->GetData64(DATA_MARTIN_OR_GORKUN_GUID)))
|
||||
if (Creature* x = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_MARTIN_OR_GORKUN_GUID)))
|
||||
x->AI()->DoAction(3);
|
||||
|
||||
break;
|
||||
@@ -1540,7 +1538,7 @@ public:
|
||||
if (inst->GetData(DATA_INSTANCE_PROGRESS) < INSTANCE_PROGRESS_AFTER_TUNNEL_WARN)
|
||||
return false;
|
||||
|
||||
if (inst->GetData(DATA_GARFROST) == DONE && inst->GetData(DATA_ICK) == DONE && inst->GetData(DATA_TYRANNUS) != DONE && !inst->GetData64(DATA_MARTIN_OR_GORKUN_GUID))
|
||||
if (inst->GetData(DATA_GARFROST) == DONE && inst->GetData(DATA_ICK) == DONE && inst->GetData(DATA_TYRANNUS) != DONE && !inst->GetGuidData(DATA_MARTIN_OR_GORKUN_GUID))
|
||||
{
|
||||
if (Creature* c = inst->instance->SummonCreature(NPC_GORKUN_IRONSKULL_2, TSSpawnPos))
|
||||
c->GetMotionMaster()->MovePoint(0, TSMidPos);
|
||||
|
||||
Reference in New Issue
Block a user