feat(Core/Misc): implement ObjectGuid class (port from TC) (#4885)

This commit is contained in:
UltraNix
2021-04-25 22:18:03 +02:00
committed by GitHub
parent 91081f4ad8
commit f4c226423d
568 changed files with 10655 additions and 11019 deletions

View File

@@ -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)
{

View File

@@ -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());
}
}

View File

@@ -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

View File

@@ -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);
}
};

View File

@@ -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))
{

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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

View File

@@ -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);