mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-22 13:16:23 +00:00
feat(Core/Misc): implement ObjectGuid class (port from TC) (#4885)
This commit is contained in:
@@ -23,7 +23,6 @@ public:
|
||||
void Initialize() override
|
||||
{
|
||||
memset(&_encounters, 0, sizeof(_encounters));
|
||||
_akumaiPortalGUID = 0;
|
||||
_requiredDeaths = 0;
|
||||
}
|
||||
|
||||
@@ -69,7 +68,7 @@ public:
|
||||
break;
|
||||
case GO_AKU_MAI_DOOR:
|
||||
if (_encounters[TYPE_FIRE1] == DONE && _encounters[TYPE_FIRE2] == DONE && _encounters[TYPE_FIRE3] == DONE && _encounters[TYPE_FIRE4] == DONE)
|
||||
HandleGameObject(0, true, gameobject);
|
||||
HandleGameObject(ObjectGuid::Empty, true, gameobject);
|
||||
_akumaiPortalGUID = gameobject->GetGUID();
|
||||
break;
|
||||
}
|
||||
@@ -121,7 +120,7 @@ public:
|
||||
|
||||
private:
|
||||
uint32 _encounters[MAX_ENCOUNTERS];
|
||||
uint64 _akumaiPortalGUID;
|
||||
ObjectGuid _akumaiPortalGUID;
|
||||
uint8 _requiredDeaths;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -83,7 +83,7 @@ public:
|
||||
{
|
||||
if (waypointId == 7)
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
|
||||
if (target && target->IsAlive())
|
||||
me->AddThreat(target, 0.0f);
|
||||
}
|
||||
@@ -178,12 +178,12 @@ public:
|
||||
npc_towering_infernalAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
instance = creature->GetInstanceScript();
|
||||
AnetheronGUID = instance->GetData64(DATA_ANETHERON);
|
||||
AnetheronGUID = instance->GetGuidData(DATA_ANETHERON);
|
||||
}
|
||||
|
||||
uint32 ImmolationTimer;
|
||||
uint32 CheckTimer;
|
||||
uint64 AnetheronGUID;
|
||||
ObjectGuid AnetheronGUID;
|
||||
InstanceScript* instance;
|
||||
|
||||
void Reset() override
|
||||
|
||||
@@ -101,18 +101,18 @@ public:
|
||||
npc_ancient_wispAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
instance = creature->GetInstanceScript();
|
||||
ArchimondeGUID = 0;
|
||||
ArchimondeGUID.Clear();
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
uint64 ArchimondeGUID;
|
||||
ObjectGuid ArchimondeGUID;
|
||||
uint32 CheckTimer;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
CheckTimer = 1000;
|
||||
|
||||
ArchimondeGUID = instance->GetData64(DATA_ARCHIMONDE);
|
||||
ArchimondeGUID = instance->GetGuidData(DATA_ARCHIMONDE);
|
||||
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
@@ -187,12 +187,12 @@ public:
|
||||
{
|
||||
npc_doomfire_targettingAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
uint64 TargetGUID;
|
||||
ObjectGuid TargetGUID;
|
||||
uint32 ChangeTargetTimer;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
TargetGUID = 0;
|
||||
TargetGUID.Clear();
|
||||
ChangeTargetTimer = 5000;
|
||||
}
|
||||
|
||||
@@ -219,7 +219,7 @@ public:
|
||||
if (Unit* temp = ObjectAccessor::GetUnit(*me, TargetGUID))
|
||||
{
|
||||
me->GetMotionMaster()->MoveFollow(temp, 0.0f, 0.0f);
|
||||
TargetGUID = 0;
|
||||
TargetGUID.Clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -264,8 +264,8 @@ public:
|
||||
InstanceScript* instance;
|
||||
EventMap events;
|
||||
|
||||
uint64 DoomfireSpiritGUID;
|
||||
uint64 WorldTreeGUID;
|
||||
ObjectGuid DoomfireSpiritGUID;
|
||||
ObjectGuid WorldTreeGUID;
|
||||
|
||||
uint8 SoulChargeCount;
|
||||
uint8 WispCount;
|
||||
@@ -283,8 +283,8 @@ public:
|
||||
{
|
||||
instance->SetData(DATA_ARCHIMONDEEVENT, NOT_STARTED);
|
||||
|
||||
DoomfireSpiritGUID = 0;
|
||||
WorldTreeGUID = 0;
|
||||
DoomfireSpiritGUID.Clear();
|
||||
WorldTreeGUID.Clear();
|
||||
WispCount = 0;
|
||||
Enraged = false;
|
||||
BelowTenPercent = false;
|
||||
@@ -472,7 +472,7 @@ public:
|
||||
if (Unit* DoomfireSpirit = ObjectAccessor::GetUnit(*me, DoomfireSpiritGUID))
|
||||
{
|
||||
summoned->GetMotionMaster()->MoveFollow(DoomfireSpirit, 0.0f, 0.0f);
|
||||
DoomfireSpiritGUID = 0;
|
||||
DoomfireSpiritGUID.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ public:
|
||||
{
|
||||
if (waypointId == 7 && instance)
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
|
||||
if (target && target->IsAlive())
|
||||
me->AddThreat(target, 0.0f);
|
||||
}
|
||||
@@ -185,13 +185,13 @@ public:
|
||||
npc_lesser_doomguardAI(Creature* creature) : hyjal_trashAI(creature)
|
||||
{
|
||||
instance = creature->GetInstanceScript();
|
||||
AzgalorGUID = instance->GetData64(DATA_AZGALOR);
|
||||
AzgalorGUID = instance->GetGuidData(DATA_AZGALOR);
|
||||
}
|
||||
|
||||
uint32 CrippleTimer;
|
||||
uint32 WarstompTimer;
|
||||
uint32 CheckTimer;
|
||||
uint64 AzgalorGUID;
|
||||
ObjectGuid AzgalorGUID;
|
||||
InstanceScript* instance;
|
||||
|
||||
void Reset() override
|
||||
|
||||
@@ -83,7 +83,7 @@ public:
|
||||
{
|
||||
if (waypointId == 7 && instance)
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
|
||||
if (target && target->IsAlive())
|
||||
me->AddThreat(target, 0.0f);
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@ public:
|
||||
{
|
||||
if (waypointId == 7 && instance)
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
|
||||
if (target && target->IsAlive())
|
||||
me->AddThreat(target, 0.0f);
|
||||
}
|
||||
|
||||
@@ -308,8 +308,6 @@ hyjalAI::hyjalAI(Creature* creature) : npc_escortAI(creature), Summons(me)
|
||||
instance = creature->GetInstanceScript();
|
||||
VeinsSpawned[0] = false;
|
||||
VeinsSpawned[1] = false;
|
||||
for (uint8 i = 0; i < 14; ++i)
|
||||
VeinGUID[i] = 0;
|
||||
InfernalCount = 0;
|
||||
TeleportTimer = 1000;
|
||||
Overrun = false;
|
||||
@@ -340,9 +338,9 @@ void hyjalAI::Reset()
|
||||
IsDummy = false;
|
||||
me->setActive(true);
|
||||
// GUIDs
|
||||
PlayerGUID = 0;
|
||||
BossGUID[0] = 0;
|
||||
BossGUID[1] = 0;
|
||||
PlayerGUID.Clear();
|
||||
BossGUID[0].Clear();
|
||||
BossGUID[1].Clear();
|
||||
|
||||
// Timers
|
||||
NextWaveTimer = 10000;
|
||||
@@ -656,7 +654,7 @@ void hyjalAI::DeSpawnVeins()
|
||||
{
|
||||
if (Faction == 1)
|
||||
{
|
||||
Creature* unit = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_JAINAPROUDMOORE));
|
||||
Creature* unit = ObjectAccessor::GetCreature((*me), instance->GetGuidData(DATA_JAINAPROUDMOORE));
|
||||
if (!unit)return;
|
||||
hyjalAI* ai = CAST_AI(hyjalAI, unit->AI());
|
||||
if (!ai)return;
|
||||
@@ -668,7 +666,7 @@ void hyjalAI::DeSpawnVeins()
|
||||
}
|
||||
else if (Faction)
|
||||
{
|
||||
Creature* unit = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_THRALL));
|
||||
Creature* unit = ObjectAccessor::GetCreature((*me), instance->GetGuidData(DATA_THRALL));
|
||||
if (!unit)return;
|
||||
hyjalAI* ai = CAST_AI(hyjalAI, unit->AI());
|
||||
if (!ai)return;
|
||||
@@ -816,7 +814,7 @@ void hyjalAI::UpdateAI(uint32 diff)
|
||||
EventBegun = false;
|
||||
CheckTimer = 0;
|
||||
me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
BossGUID[i] = 0;
|
||||
BossGUID[i].Clear();
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ENEMY, 0); // Reset world state for enemies to disable it
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,9 +148,9 @@ struct hyjalAI : public npc_escortAI
|
||||
public:
|
||||
InstanceScript* instance;
|
||||
|
||||
uint64 PlayerGUID;
|
||||
uint64 BossGUID[2];
|
||||
uint64 VeinGUID[14];
|
||||
ObjectGuid PlayerGUID;
|
||||
ObjectGuid BossGUID[2];
|
||||
ObjectGuid VeinGUID[14];
|
||||
|
||||
uint32 NextWaveTimer;
|
||||
uint32 WaveCount;
|
||||
@@ -181,7 +181,7 @@ public:
|
||||
bool IsDummy;
|
||||
uint32 MassTeleportTimer;
|
||||
bool DoMassTeleport;
|
||||
uint64 DummyGuid;
|
||||
ObjectGuid DummyGuid;
|
||||
|
||||
struct Spell
|
||||
{
|
||||
@@ -192,6 +192,6 @@ public:
|
||||
|
||||
private:
|
||||
uint32 SpellTimer[3];
|
||||
//std::list<uint64> CreatureList;
|
||||
//GuidList CreatureList;
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -435,7 +435,7 @@ public:
|
||||
{
|
||||
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
|
||||
if (target && target->IsAlive())
|
||||
me->AddThreat(target, 0.0f);
|
||||
}
|
||||
@@ -478,7 +478,7 @@ public:
|
||||
CanMove = true;
|
||||
if (instance->GetData(DATA_ALLIANCE_RETREAT) && !instance->GetData(DATA_HORDE_RETREAT))
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
|
||||
if (target && target->IsAlive())
|
||||
me->AddThreat(target, 0.0f);
|
||||
}
|
||||
@@ -559,13 +559,13 @@ public:
|
||||
{
|
||||
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
|
||||
if (target && target->IsAlive())
|
||||
me->AddThreat(target, 0.0f);
|
||||
}
|
||||
else
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
|
||||
if (target && target->IsAlive())
|
||||
me->AddThreat(target, 0.0f);
|
||||
}
|
||||
@@ -659,13 +659,13 @@ public:
|
||||
{
|
||||
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
|
||||
if (target && target->IsAlive())
|
||||
me->AddThreat(target, 0.0f);
|
||||
}
|
||||
else
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
|
||||
if (target && target->IsAlive())
|
||||
me->AddThreat(target, 0.0f);
|
||||
}
|
||||
@@ -771,13 +771,13 @@ public:
|
||||
{
|
||||
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
|
||||
if (target && target->IsAlive())
|
||||
me->AddThreat(target, 0.0f);
|
||||
}
|
||||
else
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
|
||||
if (target && target->IsAlive())
|
||||
me->AddThreat(target, 0.0f);
|
||||
}
|
||||
@@ -885,13 +885,13 @@ public:
|
||||
{
|
||||
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
|
||||
if (target && target->IsAlive())
|
||||
me->AddThreat(target, 0.0f);
|
||||
}
|
||||
else
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
|
||||
if (target && target->IsAlive())
|
||||
me->AddThreat(target, 0.0f);
|
||||
}
|
||||
@@ -984,13 +984,13 @@ public:
|
||||
{
|
||||
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
|
||||
if (target && target->IsAlive())
|
||||
me->AddThreat(target, 0.0f);
|
||||
}
|
||||
else
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
|
||||
if (target && target->IsAlive())
|
||||
me->AddThreat(target, 0.0f);
|
||||
}
|
||||
@@ -1071,13 +1071,13 @@ public:
|
||||
{
|
||||
if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
|
||||
if (target && target->IsAlive())
|
||||
me->AddThreat(target, 0.0f);
|
||||
}
|
||||
else
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_JAINAPROUDMOORE));
|
||||
if (target && target->IsAlive())
|
||||
me->AddThreat(target, 0.0f);
|
||||
}
|
||||
@@ -1159,7 +1159,7 @@ public:
|
||||
{
|
||||
if (waypointId == 2 && !IsOverrun)
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
|
||||
if (target && target->IsAlive())
|
||||
{
|
||||
me->AddThreat(target, 0.0f);
|
||||
@@ -1283,7 +1283,7 @@ public:
|
||||
{
|
||||
if (waypointId == 2 && !IsOverrun)
|
||||
{
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));
|
||||
Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_THRALL));
|
||||
if (target && target->IsAlive())
|
||||
{
|
||||
me->AddThreat(target, 0.0f);
|
||||
|
||||
@@ -51,16 +51,6 @@ public:
|
||||
|
||||
m_uiAncientGemGUID.clear();
|
||||
|
||||
RageWinterchill = 0;
|
||||
Anetheron = 0;
|
||||
Kazrogal = 0;
|
||||
Azgalor = 0;
|
||||
Archimonde = 0;
|
||||
JainaProudmoore = 0;
|
||||
Thrall = 0;
|
||||
TyrandeWhisperwind = 0;
|
||||
HordeGate = 0;
|
||||
ElfGate = 0;
|
||||
RaidDamage = 0;
|
||||
Trash = 0;
|
||||
hordeRetreat = 0;
|
||||
@@ -85,16 +75,16 @@ public:
|
||||
case GO_HORDE_ENCAMPMENT_PORTAL:
|
||||
HordeGate = go->GetGUID();
|
||||
if (allianceRetreat)
|
||||
HandleGameObject(0, true, go);
|
||||
HandleGameObject(ObjectGuid::Empty, true, go);
|
||||
else
|
||||
HandleGameObject(0, false, go);
|
||||
HandleGameObject(ObjectGuid::Empty, false, go);
|
||||
break;
|
||||
case GO_NIGHT_ELF_VILLAGE_PORTAL:
|
||||
ElfGate = go->GetGUID();
|
||||
if (hordeRetreat)
|
||||
HandleGameObject(0, true, go);
|
||||
HandleGameObject(ObjectGuid::Empty, true, go);
|
||||
else
|
||||
HandleGameObject(0, false, go);
|
||||
HandleGameObject(ObjectGuid::Empty, false, go);
|
||||
break;
|
||||
case GO_ANCIENT_GEM:
|
||||
m_uiAncientGemGUID.push_back(go->GetGUID());
|
||||
@@ -133,7 +123,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 identifier) const override
|
||||
ObjectGuid GetGuidData(uint32 identifier) const override
|
||||
{
|
||||
switch (identifier)
|
||||
{
|
||||
@@ -155,7 +145,7 @@ public:
|
||||
return TyrandeWhisperwind;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
void SetData(uint32 type, uint32 data) override
|
||||
@@ -230,10 +220,10 @@ public:
|
||||
{
|
||||
if (!m_uiAncientGemGUID.empty())
|
||||
{
|
||||
for (std::list<uint64>::const_iterator itr = m_uiAncientGemGUID.begin(); itr != m_uiAncientGemGUID.end(); ++itr)
|
||||
for (ObjectGuid const guid : m_uiAncientGemGUID)
|
||||
{
|
||||
//don't know how long it expected
|
||||
DoRespawnGameObject(*itr, DAY);
|
||||
DoRespawnGameObject(guid, DAY);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -328,17 +318,17 @@ public:
|
||||
protected:
|
||||
uint32 m_auiEncounter[EncounterCount];
|
||||
std::string str_data;
|
||||
std::list<uint64> m_uiAncientGemGUID;
|
||||
uint64 RageWinterchill;
|
||||
uint64 Anetheron;
|
||||
uint64 Kazrogal;
|
||||
uint64 Azgalor;
|
||||
uint64 Archimonde;
|
||||
uint64 JainaProudmoore;
|
||||
uint64 Thrall;
|
||||
uint64 TyrandeWhisperwind;
|
||||
uint64 HordeGate;
|
||||
uint64 ElfGate;
|
||||
GuidList m_uiAncientGemGUID;
|
||||
ObjectGuid RageWinterchill;
|
||||
ObjectGuid Anetheron;
|
||||
ObjectGuid Kazrogal;
|
||||
ObjectGuid Azgalor;
|
||||
ObjectGuid Archimonde;
|
||||
ObjectGuid JainaProudmoore;
|
||||
ObjectGuid Thrall;
|
||||
ObjectGuid TyrandeWhisperwind;
|
||||
ObjectGuid HordeGate;
|
||||
ObjectGuid ElfGate;
|
||||
uint32 Trash;
|
||||
uint32 hordeRetreat;
|
||||
uint32 allianceRetreat;
|
||||
|
||||
@@ -104,7 +104,7 @@ public:
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
if (InstanceScript* pInstance = me->GetInstanceScript())
|
||||
{
|
||||
if (Creature* cr = ObjectAccessor::GetCreature(*me, pInstance->GetData64(DATA_ARTHAS)))
|
||||
if (Creature* cr = ObjectAccessor::GetCreature(*me, pInstance->GetGuidData(DATA_ARTHAS)))
|
||||
cr->AI()->DoAction(ACTION_KILLED_MALGANIS);
|
||||
|
||||
// give credit to players
|
||||
|
||||
@@ -303,7 +303,7 @@ public:
|
||||
// After killing epoch
|
||||
creature->AI()->DoAction(ACTION_START_SECRET_PASSAGE);
|
||||
creature->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);
|
||||
creature->SetTarget(0);
|
||||
creature->SetTarget();
|
||||
CloseGossipMenuFor(player);
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF+5:
|
||||
@@ -604,7 +604,7 @@ public:
|
||||
case 36:
|
||||
SetRun(true);
|
||||
if (pInstance)
|
||||
if (GameObject* pGate = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_SHKAF_GATE)))
|
||||
if (GameObject* pGate = pInstance->instance->GetGameObject(pInstance->GetGuidData(DATA_SHKAF_GATE)))
|
||||
pGate->SetGoState(GO_STATE_ACTIVE);
|
||||
break;
|
||||
// Behind secred passage
|
||||
@@ -775,7 +775,7 @@ public:
|
||||
case EVENT_ACTION_PHASE1+18:
|
||||
if (Creature* uther = GetEventNpc(NPC_UTHER))
|
||||
{
|
||||
uther->SetTarget(0);
|
||||
uther->SetTarget();
|
||||
uther->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
uther->GetMotionMaster()->MovePoint(0, EventPos[EVENT_POS_RETREAT], false);
|
||||
}
|
||||
@@ -784,7 +784,7 @@ public:
|
||||
case EVENT_ACTION_PHASE1+19:
|
||||
if (Creature* jaina = GetEventNpc(NPC_JAINA))
|
||||
{
|
||||
jaina->SetTarget(0);
|
||||
jaina->SetTarget();
|
||||
jaina->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);
|
||||
jaina->GetMotionMaster()->MovePoint(0, EventPos[EVENT_POS_RETREAT], false);
|
||||
}
|
||||
@@ -812,13 +812,13 @@ public:
|
||||
case EVENT_ACTION_PHASE1+22:
|
||||
SetEscortPaused(false);
|
||||
eventInRun = false;
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
// dont schedule next, do it in gossip select!
|
||||
break;
|
||||
//After Gossip 1 (waypoint 8)
|
||||
case EVENT_ACTION_PHASE2:
|
||||
summons.DespawnEntry(NPC_INVIS_TARGET); // remove trigger
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
SetEscortPaused(false);
|
||||
eventInRun = false;
|
||||
ScheduleNextEvent(currentEvent, 1000);
|
||||
@@ -885,7 +885,7 @@ public:
|
||||
case EVENT_ACTION_PHASE2+6:
|
||||
if (Creature* malganis = GetEventNpc(NPC_MAL_GANIS))
|
||||
{
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
me->SetFacingToObject(malganis);
|
||||
malganis->SetVisible(false);
|
||||
}
|
||||
@@ -1132,7 +1132,7 @@ public:
|
||||
if (pInstance)
|
||||
{
|
||||
pInstance->SetData(DATA_ARTHAS_EVENT, COS_PROGRESS_FINISHED);
|
||||
if (GameObject* go = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_EXIT_GATE)))
|
||||
if (GameObject* go = pInstance->instance->GetGameObject(pInstance->GetGuidData(DATA_EXIT_GATE)))
|
||||
go->SetGoState(GO_STATE_ACTIVE);
|
||||
|
||||
if (!me->GetMap()->GetPlayers().isEmpty())
|
||||
@@ -1278,7 +1278,7 @@ void npc_arthas::npc_arthasAI::ReorderInstance(uint32 data)
|
||||
|
||||
if (data >= COS_PROGRESS_KILLED_EPOCH)
|
||||
if (pInstance)
|
||||
if (GameObject* pGate = pInstance->instance->GetGameObject(pInstance->GetData64(DATA_SHKAF_GATE)))
|
||||
if (GameObject* pGate = pInstance->instance->GetGameObject(pInstance->GetGuidData(DATA_SHKAF_GATE)))
|
||||
pGate->SetGoState(GO_STATE_READY);
|
||||
|
||||
pInstance->SetData(DATA_SHOW_INFINITE_TIMER, 1);
|
||||
@@ -1422,7 +1422,7 @@ public:
|
||||
if (pInstance->GetData(DATA_ARTHAS_EVENT) == COS_PROGRESS_NOT_STARTED)
|
||||
{
|
||||
pInstance->SetData(DATA_ARTHAS_EVENT, COS_PROGRESS_FINISHED_INTRO);
|
||||
if (Creature* arthas = ObjectAccessor::GetCreature(*creature, pInstance->GetData64(DATA_ARTHAS)))
|
||||
if (Creature* arthas = ObjectAccessor::GetCreature(*creature, pInstance->GetGuidData(DATA_ARTHAS)))
|
||||
arthas->AI()->Reset();
|
||||
}
|
||||
player->NearTeleportTo(LeaderIntroPos2.GetPositionX(), LeaderIntroPos2.GetPositionY(), LeaderIntroPos2.GetPositionZ(), LeaderIntroPos2.GetOrientation());
|
||||
|
||||
@@ -24,14 +24,6 @@ public:
|
||||
{
|
||||
instance_culling_of_stratholme_InstanceMapScript(Map* pMap) : InstanceScript(pMap)
|
||||
{
|
||||
// NPCs
|
||||
_arthasGUID = 0;
|
||||
_infiniteGUID = 0;
|
||||
|
||||
// GOs
|
||||
_shkafGateGUID = 0;
|
||||
_exitGateGUID = 0;
|
||||
|
||||
// Instance
|
||||
_crateCount = 0;
|
||||
_showCrateTimer = 0;
|
||||
@@ -137,7 +129,7 @@ public:
|
||||
Map::PlayerList const& PlayerList = instance->GetPlayers();
|
||||
if (!PlayerList.isEmpty())
|
||||
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
|
||||
i->GetSource()->KilledMonsterCredit(NPC_GRAIN_CREATE_TRIGGER, 0);
|
||||
i->GetSource()->KilledMonsterCredit(NPC_GRAIN_CREATE_TRIGGER);
|
||||
|
||||
_showCrateTimer++;
|
||||
if (GetData(DATA_ARTHAS_EVENT) < COS_PROGRESS_CRATES_FOUND)
|
||||
@@ -184,7 +176,7 @@ public:
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 identifier) const override
|
||||
ObjectGuid GetGuidData(uint32 identifier) const override
|
||||
{
|
||||
switch (identifier)
|
||||
{
|
||||
@@ -195,7 +187,8 @@ public:
|
||||
case DATA_EXIT_GATE:
|
||||
return _exitGateGUID;
|
||||
}
|
||||
return 0;
|
||||
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
void Update(uint32 diff) override
|
||||
@@ -398,12 +391,12 @@ public:
|
||||
|
||||
private:
|
||||
// NPCs
|
||||
uint64 _arthasGUID;
|
||||
uint64 _infiniteGUID;
|
||||
ObjectGuid _arthasGUID;
|
||||
ObjectGuid _infiniteGUID;
|
||||
|
||||
// GOs
|
||||
uint64 _shkafGateGUID;
|
||||
uint64 _exitGateGUID;
|
||||
ObjectGuid _shkafGateGUID;
|
||||
ObjectGuid _exitGateGUID;
|
||||
uint32 _encounterState;
|
||||
uint32 _crateCount;
|
||||
uint32 _showCrateTimer;
|
||||
|
||||
@@ -67,7 +67,7 @@ public:
|
||||
void JustSummoned(Creature* summon) override
|
||||
{
|
||||
summons.Summon(summon);
|
||||
if (Creature* thrall = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(DATA_THRALL_GUID)))
|
||||
if (Creature* thrall = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(DATA_THRALL_GUID)))
|
||||
thrall->AI()->JustSummoned(summon);
|
||||
summon->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ public:
|
||||
return;
|
||||
Talk(SAY_DEATH);
|
||||
me->GetInstanceScript()->SetData(DATA_ESCORT_PROGRESS, ENCOUNTER_PROGRESS_EPOCH_KILLED);
|
||||
if (Creature* taretha = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(DATA_TARETHA_GUID)))
|
||||
if (Creature* taretha = ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(DATA_TARETHA_GUID)))
|
||||
taretha->AI()->DoAction(me->GetEntry());
|
||||
}
|
||||
|
||||
|
||||
@@ -44,9 +44,6 @@ public:
|
||||
_barrelCount = 0;
|
||||
_attemptsCount = 0;
|
||||
|
||||
_thrallGUID = 0;
|
||||
_tarethaGUID = 0;
|
||||
|
||||
_initalFlamesSet.clear();
|
||||
_finalFlamesSet.clear();
|
||||
_prisonersSet.clear();
|
||||
@@ -166,13 +163,14 @@ public:
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 data) const override
|
||||
ObjectGuid GetGuidData(uint32 data) const override
|
||||
{
|
||||
if (data == DATA_THRALL_GUID)
|
||||
return _thrallGUID;
|
||||
else if (data == DATA_TARETHA_GUID)
|
||||
return _tarethaGUID;
|
||||
return 0;
|
||||
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
void Update(uint32 diff) override
|
||||
@@ -185,8 +183,8 @@ public:
|
||||
instance->LoadGrid(instancePositions[0].GetPositionX(), instancePositions[0].GetPositionY());
|
||||
instance->LoadGrid(instancePositions[1].GetPositionX(), instancePositions[1].GetPositionY());
|
||||
|
||||
for (std::set<uint64>::const_iterator itr = _prisonersSet.begin(); itr != _prisonersSet.end(); ++itr)
|
||||
if (Creature* orc = instance->GetCreature(*itr))
|
||||
for (ObjectGuid const guid : _prisonersSet)
|
||||
if (Creature* orc = instance->GetCreature(guid))
|
||||
{
|
||||
uint8 index = orc->GetDistance(instancePositions[0]) < 80.0f ? 0 : 1;
|
||||
Position pos(instancePositions[index]);
|
||||
@@ -195,8 +193,8 @@ public:
|
||||
orc->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
}
|
||||
|
||||
for (std::set<uint64>::const_iterator itr = _initalFlamesSet.begin(); itr != _initalFlamesSet.end(); ++itr)
|
||||
if (GameObject* gobject = instance->GetGameObject(*itr))
|
||||
for (ObjectGuid const guid : _initalFlamesSet)
|
||||
if (GameObject* gobject = instance->GetGameObject(guid))
|
||||
{
|
||||
gobject->SetRespawnTime(0);
|
||||
gobject->UpdateObjectVisibility(true);
|
||||
@@ -214,18 +212,18 @@ public:
|
||||
if (!players.isEmpty())
|
||||
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
|
||||
if (Player* player = itr->GetSource())
|
||||
player->KilledMonsterCredit(NPC_LODGE_QUEST_TRIGGER, 0);
|
||||
player->KilledMonsterCredit(NPC_LODGE_QUEST_TRIGGER);
|
||||
}
|
||||
|
||||
for (std::set<uint64>::const_iterator itr = _finalFlamesSet.begin(); itr != _finalFlamesSet.end(); ++itr)
|
||||
if (GameObject* gobject = instance->GetGameObject(*itr))
|
||||
for (ObjectGuid const guid : _finalFlamesSet)
|
||||
if (GameObject* gobject = instance->GetGameObject(guid))
|
||||
{
|
||||
gobject->SetRespawnTime(0);
|
||||
gobject->UpdateObjectVisibility(true);
|
||||
}
|
||||
|
||||
for (std::set<uint64>::const_iterator itr = _prisonersSet.begin(); itr != _prisonersSet.end(); ++itr)
|
||||
if (Creature* orc = instance->GetCreature(*itr))
|
||||
for (ObjectGuid const guid : _prisonersSet)
|
||||
if (Creature* orc = instance->GetCreature(guid))
|
||||
if (roll_chance_i(25))
|
||||
orc->HandleEmoteCommand(EMOTE_ONESHOT_CHEER);
|
||||
|
||||
@@ -330,11 +328,11 @@ public:
|
||||
uint32 _barrelCount;
|
||||
uint32 _attemptsCount;
|
||||
|
||||
uint64 _thrallGUID;
|
||||
uint64 _tarethaGUID;
|
||||
std::set<uint64> _initalFlamesSet;
|
||||
std::set<uint64> _finalFlamesSet;
|
||||
std::set<uint64> _prisonersSet;
|
||||
ObjectGuid _thrallGUID;
|
||||
ObjectGuid _tarethaGUID;
|
||||
GuidSet _initalFlamesSet;
|
||||
GuidSet _finalFlamesSet;
|
||||
GuidSet _prisonersSet;
|
||||
|
||||
EventMap _events;
|
||||
};
|
||||
|
||||
@@ -387,7 +387,7 @@ public:
|
||||
SetEscortPaused(true);
|
||||
SetRun(true);
|
||||
instance->SetData(DATA_ESCORT_PROGRESS, ENCOUNTER_PROGRESS_TARETHA_MEET);
|
||||
if (Creature* Taretha = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TARETHA_GUID)))
|
||||
if (Creature* Taretha = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TARETHA_GUID)))
|
||||
Taretha->AI()->Talk(SAY_TARETHA_ESCAPED);
|
||||
events.ScheduleEvent(EVENT_THRALL_TALK, 2000);
|
||||
break;
|
||||
@@ -618,7 +618,7 @@ public:
|
||||
case EVENT_TARETHA_FALL:
|
||||
if (Creature* epoch = summons.GetCreatureWithEntry(NPC_EPOCH_HUNTER))
|
||||
epoch->AI()->Talk(SAY_EPOCH_ENTER2);
|
||||
if (Creature* Taretha = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TARETHA_GUID)))
|
||||
if (Creature* Taretha = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TARETHA_GUID)))
|
||||
{
|
||||
Taretha->CastSpell(Taretha, SPELL_SHADOW_SPIKE);
|
||||
Taretha->SetStandState(UNIT_STAND_STATE_DEAD);
|
||||
@@ -700,7 +700,7 @@ public:
|
||||
if (!players.isEmpty())
|
||||
for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
|
||||
if (Player* player = itr->GetSource())
|
||||
player->KilledMonsterCredit(20156, 0);
|
||||
player->KilledMonsterCredit(20156);
|
||||
|
||||
me->SetFacingTo(5.76f);
|
||||
break;
|
||||
@@ -709,7 +709,7 @@ public:
|
||||
Talk(SAY_GREET_TARETHA);
|
||||
break;
|
||||
case EVENT_TARETHA_TALK_1:
|
||||
if (Creature* Taretha = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TARETHA_GUID)))
|
||||
if (Creature* Taretha = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TARETHA_GUID)))
|
||||
Taretha->AI()->Talk(SAY_TARETHA_TALK1);
|
||||
break;
|
||||
case EVENT_THRALL_TALK_5:
|
||||
@@ -751,7 +751,7 @@ public:
|
||||
SetEscortPaused(false);
|
||||
break;
|
||||
case EVENT_TARETHA_TALK_2:
|
||||
if (Creature* Taretha = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TARETHA_GUID)))
|
||||
if (Creature* Taretha = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TARETHA_GUID)))
|
||||
{
|
||||
Taretha->SetFacingTo(4.233f);
|
||||
Taretha->AI()->Talk(SAY_TARETHA_TALK2);
|
||||
@@ -827,7 +827,7 @@ public:
|
||||
break;
|
||||
case ENCOUNTER_PROGRESS_TARETHA_MEET:
|
||||
SetNextWaypoint(95, false);
|
||||
if (Creature* Taretha = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TARETHA_GUID)))
|
||||
if (Creature* Taretha = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_TARETHA_GUID)))
|
||||
Taretha->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
}
|
||||
@@ -881,7 +881,7 @@ public:
|
||||
SetRun(false);
|
||||
Talk(SAY_TARETHA_FREE);
|
||||
me->HandleEmoteCommand(EMOTE_ONESHOT_CHEER);
|
||||
if (Creature* thrall = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_THRALL_GUID)))
|
||||
if (Creature* thrall = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_THRALL_GUID)))
|
||||
thrall->AI()->DoAction(me->GetEntry());
|
||||
}
|
||||
else if (waypointId == 9)
|
||||
|
||||
@@ -53,7 +53,7 @@ public:
|
||||
|
||||
void JustReachedHome() override
|
||||
{
|
||||
if (Unit* medivh = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_MEDIVH)))
|
||||
if (Unit* medivh = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_MEDIVH)))
|
||||
if (me->GetDistance2d(medivh) < 20.0f)
|
||||
me->CastSpell(me, SPELL_CORRUPT_MEDIVH, false);
|
||||
}
|
||||
@@ -63,7 +63,7 @@ public:
|
||||
Talk(SAY_ENTER);
|
||||
ScriptedAI::InitializeAI();
|
||||
|
||||
if (Unit* medivh = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_MEDIVH)))
|
||||
if (Unit* medivh = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_MEDIVH)))
|
||||
{
|
||||
me->SetHomePosition(medivh->GetPositionX() + 14.0f * cos(medivh->GetAngle(me)), medivh->GetPositionY() + 14.0f * sin(medivh->GetAngle(me)), medivh->GetPositionZ(), me->GetAngle(medivh));
|
||||
me->GetMotionMaster()->MoveTargetedHome();
|
||||
|
||||
@@ -32,16 +32,15 @@ public:
|
||||
{
|
||||
instance_the_black_morass_InstanceMapScript(Map* map) : InstanceScript(map) { }
|
||||
|
||||
std::set<uint64> encounterNPCs;
|
||||
GuidSet encounterNPCs;
|
||||
uint32 encounters[MAX_ENCOUNTER];
|
||||
uint64 _medivhGUID;
|
||||
ObjectGuid _medivhGUID;
|
||||
uint8 _currentRift;
|
||||
uint8 _shieldPercent;
|
||||
|
||||
void Initialize() override
|
||||
{
|
||||
memset(&encounters, 0, sizeof(encounters));
|
||||
_medivhGUID = 0;
|
||||
_currentRift = 0;
|
||||
_shieldPercent = 100;
|
||||
encounterNPCs.clear();
|
||||
@@ -60,9 +59,9 @@ public:
|
||||
medivh->SetRespawnTime(3);
|
||||
}
|
||||
|
||||
std::set<uint64> eCopy = encounterNPCs;
|
||||
for (std::set<uint64>::const_iterator itr = eCopy.begin(); itr != eCopy.end(); ++itr)
|
||||
if (Creature* creature = instance->GetCreature(*itr))
|
||||
GuidSet eCopy = encounterNPCs;
|
||||
for (ObjectGuid const guid : eCopy)
|
||||
if (Creature* creature = instance->GetCreature(guid))
|
||||
creature->DespawnOrUnsummon();
|
||||
}
|
||||
|
||||
@@ -184,9 +183,9 @@ public:
|
||||
Unit::Kill(medivh, medivh);
|
||||
|
||||
// Xinef: delete all spawns
|
||||
std::set<uint64> eCopy = encounterNPCs;
|
||||
for (std::set<uint64>::iterator itr = eCopy.begin(); itr != eCopy.end(); ++itr)
|
||||
if (Creature* creature = instance->GetCreature(*itr))
|
||||
GuidSet eCopy = encounterNPCs;
|
||||
for (ObjectGuid guid : eCopy)
|
||||
if (Creature* creature = instance->GetCreature(guid))
|
||||
creature->DespawnOrUnsummon();
|
||||
}
|
||||
break;
|
||||
@@ -209,7 +208,7 @@ public:
|
||||
return 0;
|
||||
}
|
||||
|
||||
void SetData64(uint32 type, uint64 data) override
|
||||
void SetGuidData(uint32 type, ObjectGuid data) override
|
||||
{
|
||||
if (type == DATA_SUMMONED_NPC)
|
||||
encounterNPCs.insert(data);
|
||||
@@ -217,19 +216,19 @@ public:
|
||||
encounterNPCs.erase(data);
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 data) const override
|
||||
ObjectGuid GetGuidData(uint32 data) const override
|
||||
{
|
||||
if (data == DATA_MEDIVH)
|
||||
return _medivhGUID;
|
||||
|
||||
return 0;
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
void SummonPortalKeeper()
|
||||
{
|
||||
Creature* rift = nullptr;
|
||||
for (std::set<uint64>::const_iterator itr = encounterNPCs.begin(); itr != encounterNPCs.end(); ++itr)
|
||||
if (Creature* summon = instance->GetCreature(*itr))
|
||||
for (ObjectGuid const guid : encounterNPCs)
|
||||
if (Creature* summon = instance->GetCreature(guid))
|
||||
if (summon->GetEntry() == NPC_TIME_RIFT)
|
||||
{
|
||||
rift = summon;
|
||||
|
||||
@@ -120,7 +120,7 @@ public:
|
||||
void JustSummoned(Creature* summon) override
|
||||
{
|
||||
if (instance)
|
||||
instance->SetData64(DATA_SUMMONED_NPC, summon->GetGUID());
|
||||
instance->SetGuidData(DATA_SUMMONED_NPC, summon->GetGUID());
|
||||
|
||||
if (summon->GetEntry() == NPC_DP_CRYSTAL_STALKER)
|
||||
{
|
||||
@@ -141,7 +141,7 @@ public:
|
||||
void SummonedCreatureDespawn(Creature* summon) override
|
||||
{
|
||||
if (instance)
|
||||
instance->SetData64(DATA_DELETED_NPC, summon->GetGUID());
|
||||
instance->SetGuidData(DATA_DELETED_NPC, summon->GetGUID());
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
@@ -285,12 +285,11 @@ public:
|
||||
npc_time_riftAI(Creature* creature) : NullCreatureAI(creature)
|
||||
{
|
||||
instance = creature->GetInstanceScript();
|
||||
riftKeeperGUID = 0;
|
||||
}
|
||||
|
||||
EventMap events;
|
||||
InstanceScript* instance;
|
||||
uint64 riftKeeperGUID;
|
||||
ObjectGuid riftKeeperGUID;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
@@ -304,7 +303,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_CHECK_DEATH, 8000);
|
||||
}
|
||||
|
||||
void SetGUID(uint64 guid, int32) override
|
||||
void SetGUID(ObjectGuid guid, int32) override
|
||||
{
|
||||
riftKeeperGUID = guid;
|
||||
}
|
||||
@@ -317,7 +316,7 @@ public:
|
||||
if (Creature* summon = me->SummonCreature(entry, pos, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 150000))
|
||||
if (instance)
|
||||
{
|
||||
if (Unit* medivh = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_MEDIVH)))
|
||||
if (Unit* medivh = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_MEDIVH)))
|
||||
{
|
||||
float o = medivh->GetAngle(summon) + frand(-1.0f, 1.0f);
|
||||
summon->SetHomePosition(medivh->GetPositionX() + 14.0f * cos(o), medivh->GetPositionY() + 14.0f * sin(o), medivh->GetPositionZ(), summon->GetAngle(medivh));
|
||||
|
||||
@@ -22,7 +22,6 @@ public:
|
||||
_pylonsState = 0;
|
||||
_northWingProgress = 0;
|
||||
_northWingBosses = 0;
|
||||
_immoltharGUID = 0;
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature* creature) override
|
||||
@@ -140,7 +139,7 @@ public:
|
||||
uint32 _northWingProgress;
|
||||
uint32 _northWingBosses;
|
||||
|
||||
uint64 _immoltharGUID;
|
||||
ObjectGuid _immoltharGUID;
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
|
||||
@@ -28,7 +28,7 @@ public:
|
||||
{
|
||||
case GO_CORRUPTION_SPEWER:
|
||||
if (_encounters[TYPE_NOXXION] == DONE)
|
||||
HandleGameObject(0, true, gameobject);
|
||||
HandleGameObject(ObjectGuid::Empty, true, gameobject);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,17 +20,16 @@ public:
|
||||
{
|
||||
instance_onyxias_lair_InstanceMapScript(Map* pMap) : InstanceScript(pMap) {Initialize();};
|
||||
|
||||
uint64 m_uiOnyxiasGUID;
|
||||
ObjectGuid m_uiOnyxiasGUID;
|
||||
uint32 m_auiEncounter[MAX_ENCOUNTER];
|
||||
std::string str_data;
|
||||
uint16 ManyWhelpsCounter;
|
||||
std::vector<uint64> minions;
|
||||
GuidVector minions;
|
||||
bool bDeepBreath;
|
||||
|
||||
void Initialize() override
|
||||
{
|
||||
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
|
||||
m_uiOnyxiasGUID = 0;
|
||||
ManyWhelpsCounter = 0;
|
||||
bDeepBreath = true;
|
||||
}
|
||||
@@ -80,8 +79,8 @@ public:
|
||||
bDeepBreath = true;
|
||||
if( uiData == NOT_STARTED )
|
||||
{
|
||||
for( std::vector<uint64>::iterator itr = minions.begin(); itr != minions.end(); ++itr )
|
||||
if( Creature* c = instance->GetCreature(*itr) )
|
||||
for (ObjectGuid guid : minions)
|
||||
if (Creature* c = instance->GetCreature(guid))
|
||||
c->DespawnOrUnsummon();
|
||||
minions.clear();
|
||||
}
|
||||
@@ -109,15 +108,15 @@ public:
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 uiData) const override
|
||||
ObjectGuid GetGuidData(uint32 uiData) const override
|
||||
{
|
||||
switch(uiData)
|
||||
switch (uiData)
|
||||
{
|
||||
case DATA_ONYXIA:
|
||||
return m_uiOnyxiasGUID;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
@@ -178,4 +177,4 @@ public:
|
||||
void AddSC_instance_onyxias_lair()
|
||||
{
|
||||
new instance_onyxias_lair();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -180,15 +180,15 @@ public:
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0, true))
|
||||
{
|
||||
DoCast(target, SPELL_PARALYZE);
|
||||
instance->SetData64(DATA_PARALYZED, target->GetGUID());
|
||||
instance->SetGuidData(DATA_PARALYZED, target->GetGUID());
|
||||
uint8 Index = urand(0, 1);
|
||||
me->SummonCreature(NPC_LARVA, LarvaPos[Index], TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_PARALYZE, 15000);
|
||||
break;
|
||||
case EVENT_SWARMER_ATTACK:
|
||||
for (std::list<uint64>::iterator i = _swarmers.begin(); i != _swarmers.end(); ++i)
|
||||
if (Creature* swarmer = me->GetMap()->GetCreature(*i))
|
||||
for (ObjectGuid guid : _swarmers)
|
||||
if (Creature* swarmer = me->GetMap()->GetCreature(guid))
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM))
|
||||
swarmer->AI()->AttackStart(target);
|
||||
|
||||
@@ -215,7 +215,7 @@ public:
|
||||
}
|
||||
}
|
||||
private:
|
||||
std::list<uint64> _swarmers;
|
||||
GuidList _swarmers;
|
||||
uint8 _phase;
|
||||
bool _enraged;
|
||||
};
|
||||
@@ -242,7 +242,7 @@ public:
|
||||
{
|
||||
if (type == POINT_MOTION_TYPE)
|
||||
if (id == POINT_PARALYZE)
|
||||
if (Player* target = ObjectAccessor::GetPlayer(*me, _instance->GetData64(DATA_PARALYZED)))
|
||||
if (Player* target = ObjectAccessor::GetPlayer(*me, _instance->GetGuidData(DATA_PARALYZED)))
|
||||
DoCast(target, SPELL_FEED); // Omnomnom
|
||||
}
|
||||
|
||||
|
||||
@@ -63,8 +63,8 @@ public:
|
||||
{
|
||||
BossAI::EnterEvadeMode();
|
||||
|
||||
for (std::list<uint64>::iterator i = Eggs.begin(); i != Eggs.end(); ++i)
|
||||
if (Creature* egg = me->GetMap()->GetCreature(*Eggs.begin()))
|
||||
for (ObjectGuid guid : Eggs)
|
||||
if (Creature* egg = me->GetMap()->GetCreature(guid))
|
||||
egg->Respawn();
|
||||
|
||||
Eggs.clear();
|
||||
@@ -114,7 +114,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void ManageRespawn(uint64 EggGUID)
|
||||
void ManageRespawn(ObjectGuid EggGUID)
|
||||
{
|
||||
ChaseNewVictim();
|
||||
Eggs.push_back(EggGUID);
|
||||
@@ -171,7 +171,7 @@ public:
|
||||
}
|
||||
private:
|
||||
uint8 _phase;
|
||||
std::list<uint64> Eggs;
|
||||
GuidList Eggs;
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
@@ -195,7 +195,7 @@ public:
|
||||
|
||||
void EnterCombat(Unit* attacker) override
|
||||
{
|
||||
if (Creature* buru = me->GetMap()->GetCreature(_instance->GetData64(DATA_BURU)))
|
||||
if (Creature* buru = me->GetMap()->GetCreature(_instance->GetGuidData(DATA_BURU)))
|
||||
if (!buru->IsInCombat())
|
||||
buru->AI()->AttackStart(attacker);
|
||||
}
|
||||
@@ -203,7 +203,7 @@ public:
|
||||
void JustSummoned(Creature* who) override
|
||||
{
|
||||
if (who->GetEntry() == NPC_HATCHLING)
|
||||
if (Creature* buru = me->GetMap()->GetCreature(_instance->GetData64(DATA_BURU)))
|
||||
if (Creature* buru = me->GetMap()->GetCreature(_instance->GetGuidData(DATA_BURU)))
|
||||
if (Unit* target = buru->AI()->SelectTarget(SELECT_TARGET_RANDOM))
|
||||
who->AI()->AttackStart(target);
|
||||
}
|
||||
@@ -214,7 +214,7 @@ public:
|
||||
DoCastAOE(SPELL_EXPLODE_2, true); // Unknown purpose
|
||||
DoCast(me, SPELL_SUMMON_HATCHLING, true);
|
||||
|
||||
if (Creature* buru = me->GetMap()->GetCreature(_instance->GetData64(DATA_BURU)))
|
||||
if (Creature* buru = me->GetMap()->GetCreature(_instance->GetGuidData(DATA_BURU)))
|
||||
if (boss_buru::boss_buruAI* buruAI = dynamic_cast<boss_buru::boss_buruAI*>(buru->AI()))
|
||||
buruAI->ManageRespawn(me->GetGUID());
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ public:
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
_JustDied();
|
||||
if (Creature* Ossirian = me->GetMap()->GetCreature(instance->GetData64(DATA_OSSIRIAN)))
|
||||
if (Creature* Ossirian = me->GetMap()->GetCreature(instance->GetGuidData(DATA_OSSIRIAN)))
|
||||
sCreatureTextMgr->SendChat(Ossirian, SAY_KURINAXX_DEATH, nullptr, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_ZONE);
|
||||
}
|
||||
|
||||
|
||||
@@ -80,8 +80,8 @@ public:
|
||||
SaidIntro = false;
|
||||
}
|
||||
|
||||
uint64 TriggerGUID;
|
||||
uint64 CrystalGUID;
|
||||
ObjectGuid TriggerGUID;
|
||||
ObjectGuid CrystalGUID;
|
||||
uint8 CrystalIterator;
|
||||
bool SaidIntro;
|
||||
|
||||
@@ -89,8 +89,8 @@ public:
|
||||
{
|
||||
_Reset();
|
||||
CrystalIterator = 0;
|
||||
TriggerGUID = 0;
|
||||
CrystalGUID = 0;
|
||||
TriggerGUID.Clear();
|
||||
CrystalGUID.Clear();
|
||||
}
|
||||
|
||||
void SpellHit(Unit* caster, SpellInfo const* spell) override
|
||||
@@ -184,7 +184,7 @@ public:
|
||||
{
|
||||
CrystalGUID = Crystal->GetGUID();
|
||||
++CrystalIterator;
|
||||
Crystal->SetOwnerGUID(0);
|
||||
Crystal->SetOwnerGUID(ObjectGuid::Empty);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,14 +18,6 @@ public:
|
||||
instance_ruins_of_ahnqiraj_InstanceMapScript(Map* map) : InstanceScript(map)
|
||||
{
|
||||
SetBossNumber(NUM_ENCOUNTER);
|
||||
|
||||
_kurinaxxGUID = 0;
|
||||
_rajaxxGUID = 0;
|
||||
_moamGUID = 0;
|
||||
_buruGUID = 0;
|
||||
_ayamissGUID = 0;
|
||||
_ossirianGUID = 0;
|
||||
_paralyzedGUID = 0;
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature* creature) override
|
||||
@@ -61,13 +53,13 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
void SetData64(uint32 type, uint64 data) override
|
||||
void SetGuidData(uint32 type, ObjectGuid data) override
|
||||
{
|
||||
if (type == DATA_PARALYZED)
|
||||
_paralyzedGUID = data;
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 type) const override
|
||||
ObjectGuid GetGuidData(uint32 type) const override
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
@@ -87,7 +79,7 @@ public:
|
||||
return _paralyzedGUID;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
@@ -134,13 +126,13 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
uint64 _kurinaxxGUID;
|
||||
uint64 _rajaxxGUID;
|
||||
uint64 _moamGUID;
|
||||
uint64 _buruGUID;
|
||||
uint64 _ayamissGUID;
|
||||
uint64 _ossirianGUID;
|
||||
uint64 _paralyzedGUID;
|
||||
ObjectGuid _kurinaxxGUID;
|
||||
ObjectGuid _rajaxxGUID;
|
||||
ObjectGuid _moamGUID;
|
||||
ObjectGuid _buruGUID;
|
||||
ObjectGuid _ayamissGUID;
|
||||
ObjectGuid _ossirianGUID;
|
||||
ObjectGuid _paralyzedGUID;
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
|
||||
@@ -290,11 +290,11 @@ public:
|
||||
switch (urand(0, 2))
|
||||
{
|
||||
case 0:
|
||||
if (Creature* kri = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KRI)))
|
||||
if (Creature* kri = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KRI)))
|
||||
DoCast(kri, SPELL_HEAL);
|
||||
break;
|
||||
case 1:
|
||||
if (Creature* vem = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VEM)))
|
||||
if (Creature* vem = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_VEM)))
|
||||
DoCast(vem, SPELL_HEAL);
|
||||
break;
|
||||
case 2:
|
||||
|
||||
@@ -292,7 +292,7 @@ public:
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
|
||||
//Remove any target
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
|
||||
//Select random target for dark beam to start on
|
||||
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
|
||||
@@ -379,7 +379,7 @@ public:
|
||||
//Transition phase
|
||||
case PHASE_CTHUN_TRANSITION:
|
||||
//Remove any target
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
me->SetHealth(0);
|
||||
me->SetVisible(false);
|
||||
break;
|
||||
@@ -415,7 +415,7 @@ public:
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
|
||||
|
||||
//Remove Target field
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
|
||||
//Death animation/respawning;
|
||||
instance->SetData(DATA_CTHUN_PHASE, PHASE_CTHUN_TRANSITION);
|
||||
@@ -470,7 +470,7 @@ public:
|
||||
//-------------------
|
||||
|
||||
//Phase transition
|
||||
uint64 HoldPlayer;
|
||||
ObjectGuid HoldPlayer;
|
||||
|
||||
//Body Phase
|
||||
uint32 EyeTentacleTimer;
|
||||
@@ -480,10 +480,10 @@ public:
|
||||
uint32 StomachAcidTimer;
|
||||
uint32 StomachEnterTimer;
|
||||
uint32 StomachEnterVisTimer;
|
||||
uint64 StomachEnterTarget;
|
||||
ObjectGuid StomachEnterTarget;
|
||||
|
||||
//Stomach map, bool = true then in stomach
|
||||
std::unordered_map<uint64, bool> Stomach_Map;
|
||||
std::unordered_map<ObjectGuid, bool> Stomach_Map;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
@@ -494,7 +494,7 @@ public:
|
||||
PhaseTimer = 10000; //Emerge in 10 seconds
|
||||
|
||||
//No hold player for transition
|
||||
HoldPlayer = 0;
|
||||
HoldPlayer.Clear();
|
||||
|
||||
//Body Phase
|
||||
EyeTentacleTimer = 30000;
|
||||
@@ -504,7 +504,7 @@ public:
|
||||
StomachAcidTimer = 4000; //Every 4 seconds
|
||||
StomachEnterTimer = 10000; //Every 10 seconds
|
||||
StomachEnterVisTimer = 0; //Always 3.5 seconds after Stomach Enter Timer
|
||||
StomachEnterTarget = 0; //Target to be teleported to stomach
|
||||
StomachEnterTarget.Clear(); //Target to be teleported to stomach
|
||||
|
||||
//Clear players in stomach and outside
|
||||
Stomach_Map.clear();
|
||||
@@ -536,7 +536,7 @@ public:
|
||||
if (Stomach_Map.empty())
|
||||
return nullptr;
|
||||
|
||||
std::unordered_map<uint64, bool>::const_iterator i = Stomach_Map.begin();
|
||||
std::unordered_map<ObjectGuid, bool>::const_iterator i = Stomach_Map.begin();
|
||||
|
||||
std::list<Unit*> temp;
|
||||
std::list<Unit*>::const_iterator j;
|
||||
@@ -599,7 +599,7 @@ public:
|
||||
return;
|
||||
}
|
||||
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
|
||||
uint32 currentPhase = instance->GetData(DATA_CTHUN_PHASE);
|
||||
if (currentPhase == PHASE_CTHUN_STOMACH || currentPhase == PHASE_CTHUN_WEAK)
|
||||
@@ -671,7 +671,7 @@ public:
|
||||
//Body Phase
|
||||
case PHASE_CTHUN_STOMACH:
|
||||
//Remove Target field
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
|
||||
//Weaken
|
||||
if (FleshTentaclesKilled > 1)
|
||||
@@ -683,7 +683,7 @@ public:
|
||||
|
||||
DoCast(me, SPELL_PURPLE_COLORATION, true);
|
||||
|
||||
std::unordered_map<uint64, bool>::iterator i = Stomach_Map.begin();
|
||||
std::unordered_map<ObjectGuid, bool>::iterator i = Stomach_Map.begin();
|
||||
|
||||
//Kick all players out of stomach
|
||||
while (i != Stomach_Map.end())
|
||||
@@ -715,7 +715,7 @@ public:
|
||||
if (StomachAcidTimer <= diff)
|
||||
{
|
||||
//Apply aura to all players in stomach
|
||||
std::unordered_map<uint64, bool>::iterator i = Stomach_Map.begin();
|
||||
std::unordered_map<ObjectGuid, bool>::iterator i = Stomach_Map.begin();
|
||||
|
||||
while (i != Stomach_Map.end())
|
||||
{
|
||||
@@ -779,7 +779,7 @@ public:
|
||||
DoTeleportPlayer(unit, STOMACH_X, STOMACH_Y, STOMACH_Z, STOMACH_O);
|
||||
}
|
||||
|
||||
StomachEnterTarget = 0;
|
||||
StomachEnterTarget.Clear();
|
||||
StomachEnterVisTimer = 0;
|
||||
}
|
||||
else StomachEnterVisTimer -= diff;
|
||||
@@ -906,7 +906,6 @@ public:
|
||||
{
|
||||
eye_tentacleAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
Portal = 0;
|
||||
if (Creature* pPortal = me->SummonCreature(NPC_SMALL_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
|
||||
{
|
||||
pPortal->SetReactState(REACT_PASSIVE);
|
||||
@@ -918,7 +917,7 @@ public:
|
||||
|
||||
uint32 MindflayTimer;
|
||||
uint32 KillSelfTimer;
|
||||
uint64 Portal;
|
||||
ObjectGuid Portal;
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
@@ -985,7 +984,6 @@ public:
|
||||
{
|
||||
SetCombatMovement(false);
|
||||
|
||||
Portal = 0;
|
||||
if (Creature* pPortal = me->SummonCreature(NPC_SMALL_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
|
||||
{
|
||||
pPortal->SetReactState(REACT_PASSIVE);
|
||||
@@ -996,7 +994,7 @@ public:
|
||||
uint32 GroundRuptureTimer;
|
||||
uint32 HamstringTimer;
|
||||
uint32 EvadeTimer;
|
||||
uint64 Portal;
|
||||
ObjectGuid Portal;
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
@@ -1098,7 +1096,6 @@ public:
|
||||
{
|
||||
SetCombatMovement(false);
|
||||
|
||||
Portal = 0;
|
||||
if (Creature* pPortal = me->SummonCreature(NPC_GIANT_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
|
||||
{
|
||||
pPortal->SetReactState(REACT_PASSIVE);
|
||||
@@ -1110,7 +1107,7 @@ public:
|
||||
uint32 ThrashTimer;
|
||||
uint32 HamstringTimer;
|
||||
uint32 EvadeTimer;
|
||||
uint64 Portal;
|
||||
ObjectGuid Portal;
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
@@ -1221,7 +1218,6 @@ public:
|
||||
{
|
||||
SetCombatMovement(false);
|
||||
|
||||
Portal = 0;
|
||||
if (Creature* pPortal = me->SummonCreature(NPC_GIANT_PORTAL, *me, TEMPSUMMON_CORPSE_DESPAWN))
|
||||
{
|
||||
pPortal->SetReactState(REACT_PASSIVE);
|
||||
@@ -1230,7 +1226,7 @@ public:
|
||||
}
|
||||
|
||||
uint32 BeamTimer;
|
||||
uint64 Portal;
|
||||
ObjectGuid Portal;
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
|
||||
@@ -89,7 +89,7 @@ struct boss_twinemperorsAI : public ScriptedAI
|
||||
|
||||
Creature* GetOtherBoss()
|
||||
{
|
||||
return ObjectAccessor::GetCreature(*me, instance->GetData64(IAmVeklor() ? DATA_VEKNILASH : DATA_VEKLOR));
|
||||
return ObjectAccessor::GetCreature(*me, instance->GetGuidData(IAmVeklor() ? DATA_VEKNILASH : DATA_VEKLOR));
|
||||
}
|
||||
|
||||
void DamageTaken(Unit*, uint32& damage, DamageEffectType, SpellSchoolMask) override
|
||||
|
||||
@@ -253,7 +253,7 @@ public:
|
||||
{
|
||||
InstanceScript* Instance = me->GetInstanceScript();
|
||||
|
||||
if (Creature* Viscidus = me->GetMap()->GetCreature(Instance->GetData64(DATA_VISCIDUS)))
|
||||
if (Creature* Viscidus = me->GetMap()->GetCreature(Instance->GetGuidData(DATA_VISCIDUS)))
|
||||
{
|
||||
if (BossAI* ViscidusAI = dynamic_cast<BossAI*>(Viscidus->GetAI()))
|
||||
ViscidusAI->SummonedCreatureDespawn(me);
|
||||
|
||||
@@ -33,12 +33,12 @@ public:
|
||||
bool IsBossDied[3];
|
||||
|
||||
//Storing Skeram, Vem and Kri.
|
||||
uint64 SkeramGUID;
|
||||
uint64 VemGUID;
|
||||
uint64 KriGUID;
|
||||
uint64 VeklorGUID;
|
||||
uint64 VeknilashGUID;
|
||||
uint64 ViscidusGUID;
|
||||
ObjectGuid SkeramGUID;
|
||||
ObjectGuid VemGUID;
|
||||
ObjectGuid KriGUID;
|
||||
ObjectGuid VeklorGUID;
|
||||
ObjectGuid VeknilashGUID;
|
||||
ObjectGuid ViscidusGUID;
|
||||
|
||||
uint32 BugTrioDeathCount;
|
||||
|
||||
@@ -50,13 +50,6 @@ public:
|
||||
IsBossDied[1] = false;
|
||||
IsBossDied[2] = false;
|
||||
|
||||
SkeramGUID = 0;
|
||||
VemGUID = 0;
|
||||
KriGUID = 0;
|
||||
VeklorGUID = 0;
|
||||
VeknilashGUID = 0;
|
||||
ViscidusGUID = 0;
|
||||
|
||||
BugTrioDeathCount = 0;
|
||||
|
||||
CthunPhase = 0;
|
||||
@@ -121,7 +114,7 @@ public:
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 identifier) const override
|
||||
ObjectGuid GetGuidData(uint32 identifier) const override
|
||||
{
|
||||
switch (identifier)
|
||||
{
|
||||
@@ -138,8 +131,9 @@ public:
|
||||
case DATA_VISCIDUS:
|
||||
return ViscidusGUID;
|
||||
}
|
||||
return 0;
|
||||
} // end GetData64
|
||||
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
void SetData(uint32 type, uint32 data) override
|
||||
{
|
||||
|
||||
@@ -100,14 +100,15 @@ public:
|
||||
abselected = 0; // just initialization of variable
|
||||
}
|
||||
|
||||
uint64 NearbyGUID[3];
|
||||
ObjectGuid NearbyGUID[3];
|
||||
|
||||
void ClearBuddyList()
|
||||
{
|
||||
NearbyGUID[0] = NearbyGUID[1] = NearbyGUID[2] = 0;
|
||||
for (uint8 i = 0; i < 3; ++i)
|
||||
NearbyGUID[i].Clear();
|
||||
}
|
||||
|
||||
void AddBuddyToList(uint64 CreatureGUID)
|
||||
void AddBuddyToList(ObjectGuid CreatureGUID)
|
||||
{
|
||||
if (CreatureGUID == me->GetGUID())
|
||||
return;
|
||||
|
||||
@@ -23,9 +23,6 @@ public:
|
||||
void Initialize() override
|
||||
{
|
||||
memset(&_encounters, 0, sizeof(_encounters));
|
||||
|
||||
DiscipleOfNaralexGUID = 0;
|
||||
SerpentisGUID = 0;
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature* creature) override
|
||||
@@ -109,8 +106,8 @@ public:
|
||||
|
||||
private:
|
||||
uint32 _encounters[MAX_ENCOUNTERS];
|
||||
uint64 DiscipleOfNaralexGUID;
|
||||
uint64 SerpentisGUID;
|
||||
ObjectGuid DiscipleOfNaralexGUID;
|
||||
ObjectGuid SerpentisGUID;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -218,7 +218,7 @@ public:
|
||||
MustDieTimer = 3000;
|
||||
CurrWP = 0;
|
||||
|
||||
PlayerGUID = 0;
|
||||
PlayerGUID.Clear();
|
||||
|
||||
MustDie = false;
|
||||
Escape = false;
|
||||
@@ -357,7 +357,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
uint64 PlayerGUID;
|
||||
ObjectGuid PlayerGUID;
|
||||
uint32 SpellEscapeTimer;
|
||||
uint32 TeleportTimer;
|
||||
uint32 CheckTimer;
|
||||
|
||||
@@ -50,7 +50,7 @@ public:
|
||||
{
|
||||
npc_draenei_survivorAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
uint64 pCaster;
|
||||
ObjectGuid pCaster;
|
||||
|
||||
uint32 SayThanksTimer;
|
||||
uint32 RunAwayTimer;
|
||||
@@ -60,7 +60,7 @@ public:
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
pCaster = 0;
|
||||
pCaster.Clear();
|
||||
|
||||
SayThanksTimer = 0;
|
||||
RunAwayTimer = 0;
|
||||
@@ -384,7 +384,7 @@ public:
|
||||
cage->SetGoState(GO_STATE_READY);
|
||||
}
|
||||
_events.Reset();
|
||||
_playerGUID = 0;
|
||||
_playerGUID.Clear();
|
||||
_movementComplete = false;
|
||||
}
|
||||
|
||||
@@ -424,7 +424,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
uint64 _playerGUID;
|
||||
ObjectGuid _playerGUID;
|
||||
EventMap _events;
|
||||
bool _movementComplete;
|
||||
};
|
||||
|
||||
@@ -53,7 +53,7 @@ public:
|
||||
case 0:
|
||||
if (Player* player = killer->ToPlayer())
|
||||
{
|
||||
player->KilledMonsterCredit(NPC_EXPEDITION_RESEARCHER, 0);
|
||||
player->KilledMonsterCredit(NPC_EXPEDITION_RESEARCHER);
|
||||
}
|
||||
spawnCreatureID = NPC_EXPEDITION_RESEARCHER;
|
||||
break;
|
||||
|
||||
@@ -78,19 +78,17 @@ public:
|
||||
{
|
||||
npc_cork_gizeltonAI(Creature* creature) : npc_escortAI(creature)
|
||||
{
|
||||
memset(&summons, 0, sizeof(summons));
|
||||
}
|
||||
|
||||
EventMap events;
|
||||
uint64 summons[MAX_CARAVAN_SUMMONS];
|
||||
ObjectGuid summons[MAX_CARAVAN_SUMMONS];
|
||||
bool headNorth;
|
||||
|
||||
uint64 _playerGUID;
|
||||
ObjectGuid _playerGUID;
|
||||
uint32 _faction;
|
||||
|
||||
void Initialize()
|
||||
{
|
||||
_playerGUID = 0;
|
||||
_faction = 35;
|
||||
headNorth = true;
|
||||
me->setActive(true);
|
||||
@@ -129,12 +127,12 @@ public:
|
||||
if (me->IsWithinDist(player, 60.0f))
|
||||
return;
|
||||
|
||||
_playerGUID = 0;
|
||||
_playerGUID.Clear();
|
||||
_faction = 35;
|
||||
ImmuneFlagSet(false, _faction);
|
||||
}
|
||||
|
||||
void SetGUID(uint64 playerGUID, int32 faction) override
|
||||
void SetGUID(ObjectGuid playerGUID, int32 faction) override
|
||||
{
|
||||
_playerGUID = playerGUID;
|
||||
_faction = faction;
|
||||
@@ -155,7 +153,7 @@ public:
|
||||
{
|
||||
for (uint8 i = 0; i < MAX_CARAVAN_SUMMONS; ++i)
|
||||
{
|
||||
if (summons[i] == 0)
|
||||
if (!summons[i])
|
||||
{
|
||||
SummonHelpers();
|
||||
return false;
|
||||
@@ -178,7 +176,7 @@ public:
|
||||
if (Creature* summon = ObjectAccessor::GetCreature(*me, summons[i]))
|
||||
summon->DespawnOrUnsummon();
|
||||
|
||||
summons[i] = 0;
|
||||
summons[i].Clear();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -204,21 +202,21 @@ public:
|
||||
void SummonedCreatureDies(Creature* creature, Unit*) override
|
||||
{
|
||||
if (creature->GetGUID() == summons[0])
|
||||
summons[0] = 0;
|
||||
summons[0].Clear();
|
||||
else if (creature->GetGUID() == summons[1])
|
||||
summons[1] = 0;
|
||||
summons[1].Clear();
|
||||
else if (creature->GetGUID() == summons[2])
|
||||
summons[2] = 0;
|
||||
summons[2].Clear();
|
||||
}
|
||||
|
||||
void SummonedCreatureDespawn(Creature* creature) override
|
||||
{
|
||||
if (creature->GetGUID() == summons[0])
|
||||
summons[0] = 0;
|
||||
summons[0].Clear();
|
||||
else if (creature->GetGUID() == summons[1])
|
||||
summons[1] = 0;
|
||||
summons[1].Clear();
|
||||
else if (creature->GetGUID() == summons[2])
|
||||
summons[2] = 0;
|
||||
summons[2].Clear();
|
||||
}
|
||||
|
||||
void SummonsFollow()
|
||||
@@ -304,7 +302,7 @@ public:
|
||||
else
|
||||
player->FailQuest(QUEST_BODYGUARD_FOR_HIRE);
|
||||
}
|
||||
_playerGUID = 0;
|
||||
_playerGUID.Clear();
|
||||
CheckPlayer();
|
||||
break;
|
||||
// South -> North - complete
|
||||
@@ -316,7 +314,7 @@ public:
|
||||
else
|
||||
player->FailQuest(QUEST_GIZELTON_CARAVAN);
|
||||
}
|
||||
_playerGUID = 0;
|
||||
_playerGUID.Clear();
|
||||
CheckPlayer();
|
||||
break;
|
||||
// North -> South - spawn attackers
|
||||
@@ -398,7 +396,7 @@ public:
|
||||
case EVENT_RESTART_ESCORT:
|
||||
CheckCaravan();
|
||||
SetDespawnAtEnd(false);
|
||||
Start(true, true, 0, 0, false, false, true);
|
||||
Start(true, true, ObjectGuid::Empty, 0, false, false, true);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -483,7 +481,7 @@ public:
|
||||
{
|
||||
if (player->HasAura(SPELL_KODO_KOMBO_PLAYER_BUFF) && creature->HasAura(SPELL_KODO_KOMBO_DESPAWN_BUFF))
|
||||
{
|
||||
player->TalkedToCreature(creature->GetEntry(), 0);
|
||||
player->TalkedToCreature(creature->GetEntry(), ObjectGuid::Empty);
|
||||
player->RemoveAurasDueToSpell(SPELL_KODO_KOMBO_PLAYER_BUFF);
|
||||
}
|
||||
|
||||
|
||||
@@ -139,8 +139,7 @@ public:
|
||||
|
||||
struct npc_tiger_matriarchAI : public ScriptedAI
|
||||
{
|
||||
npc_tiger_matriarchAI(Creature* creature) : ScriptedAI(creature),
|
||||
_tigerGuid(0)
|
||||
npc_tiger_matriarchAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -240,7 +239,7 @@ public:
|
||||
|
||||
private:
|
||||
EventMap _events;
|
||||
uint64 _tigerGuid;
|
||||
ObjectGuid _tigerGuid;
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
|
||||
@@ -283,7 +283,7 @@ public:
|
||||
public:
|
||||
npc_clintar_spiritAI(Creature* creature) : npc_escortAI(creature)
|
||||
{
|
||||
PlayerGUID = 0;
|
||||
PlayerGUID.Clear();
|
||||
}
|
||||
|
||||
uint8 Step;
|
||||
@@ -291,7 +291,7 @@ public:
|
||||
uint32 EventTimer;
|
||||
uint32 checkPlayerTimer;
|
||||
|
||||
uint64 PlayerGUID;
|
||||
ObjectGuid PlayerGUID;
|
||||
|
||||
bool EventOnWait;
|
||||
|
||||
@@ -302,7 +302,7 @@ public:
|
||||
Step = 0;
|
||||
CurrWP = 0;
|
||||
EventTimer = 0;
|
||||
PlayerGUID = 0;
|
||||
PlayerGUID.Clear();
|
||||
checkPlayerTimer = 1000;
|
||||
EventOnWait = false;
|
||||
}
|
||||
@@ -339,7 +339,7 @@ public:
|
||||
if (player && player->GetQuestStatus(10965) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
player->FailQuest(10965);
|
||||
PlayerGUID = 0;
|
||||
PlayerGUID.Clear();
|
||||
Reset();
|
||||
}
|
||||
}
|
||||
@@ -518,7 +518,7 @@ public:
|
||||
break;
|
||||
case 2:
|
||||
player->TalkedToCreature(me->GetEntry(), me->GetGUID());
|
||||
PlayerGUID = 0;
|
||||
PlayerGUID.Clear();
|
||||
Reset();
|
||||
me->setDeathState(JUST_DIED);
|
||||
break;
|
||||
|
||||
@@ -58,7 +58,7 @@ public:
|
||||
bool CanEmote;
|
||||
uint32 SaluteTimer;
|
||||
uint32 ResetTimer;
|
||||
uint64 PlayerGUID;
|
||||
ObjectGuid PlayerGUID;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
@@ -66,7 +66,7 @@ public:
|
||||
CanEmote = false;
|
||||
SaluteTimer = 6000;
|
||||
ResetTimer = 0;
|
||||
PlayerGUID = 0;
|
||||
PlayerGUID.Clear();
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override { }
|
||||
|
||||
@@ -89,7 +89,7 @@ public:
|
||||
case GOSSIP_ACTION_INFO_DEF + 6:
|
||||
SendGossipMenuFor(player, 7761, creature->GetGUID());
|
||||
//'kill' our trigger to update quest status
|
||||
player->KilledMonsterCredit(TRIGGER_RUTGAR, 0);
|
||||
player->KilledMonsterCredit(TRIGGER_RUTGAR);
|
||||
break;
|
||||
|
||||
case GOSSIP_ACTION_INFO_DEF + 9:
|
||||
@@ -115,7 +115,7 @@ public:
|
||||
case GOSSIP_ACTION_INFO_DEF + 14:
|
||||
SendGossipMenuFor(player, 7767, creature->GetGUID());
|
||||
//'kill' our trigger to update quest status
|
||||
player->KilledMonsterCredit(TRIGGER_FRANKAL, 0);
|
||||
player->KilledMonsterCredit(TRIGGER_FRANKAL);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
@@ -417,24 +417,24 @@ public:
|
||||
uint32 AnimationTimer;
|
||||
uint8 AnimationCount;
|
||||
|
||||
uint64 AnachronosQuestTriggerGUID;
|
||||
uint64 MerithraGUID;
|
||||
uint64 ArygosGUID;
|
||||
uint64 CaelestraszGUID;
|
||||
uint64 FandralGUID;
|
||||
uint64 PlayerGUID;
|
||||
ObjectGuid AnachronosQuestTriggerGUID;
|
||||
ObjectGuid MerithraGUID;
|
||||
ObjectGuid ArygosGUID;
|
||||
ObjectGuid CaelestraszGUID;
|
||||
ObjectGuid FandralGUID;
|
||||
ObjectGuid PlayerGUID;
|
||||
bool eventEnd;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
AnimationTimer = 1500;
|
||||
AnimationCount = 0;
|
||||
AnachronosQuestTriggerGUID = 0;
|
||||
MerithraGUID = 0;
|
||||
ArygosGUID = 0;
|
||||
CaelestraszGUID = 0;
|
||||
FandralGUID = 0;
|
||||
PlayerGUID = 0;
|
||||
AnachronosQuestTriggerGUID.Clear();
|
||||
MerithraGUID.Clear();
|
||||
ArygosGUID.Clear();
|
||||
CaelestraszGUID.Clear();
|
||||
FandralGUID.Clear();
|
||||
PlayerGUID.Clear();
|
||||
eventEnd = false;
|
||||
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
@@ -467,7 +467,7 @@ public:
|
||||
Fandral->AI()->Talk(FANDRAL_SAY_1, me);
|
||||
break;
|
||||
case 2:
|
||||
Fandral->SetTarget(0);
|
||||
Fandral->SetTarget();
|
||||
Merithra->AI()->Talk(MERITHRA_EMOTE_1);
|
||||
break;
|
||||
case 3:
|
||||
@@ -484,7 +484,7 @@ public:
|
||||
Merithra->AI()->Talk(MERITHRA_SAY_2);
|
||||
break;
|
||||
case 7:
|
||||
Caelestrasz->SetTarget(0);
|
||||
Caelestrasz->SetTarget();
|
||||
Merithra->GetMotionMaster()->MoveCharge(-8065, 1530, 2.61f, 10);
|
||||
break;
|
||||
case 8:
|
||||
@@ -741,16 +741,16 @@ public:
|
||||
{
|
||||
npc_qiraj_war_spawnAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
uint64 MobGUID;
|
||||
uint64 PlayerGUID;
|
||||
ObjectGuid MobGUID;
|
||||
ObjectGuid PlayerGUID;
|
||||
uint32 SpellTimer1, SpellTimer2, SpellTimer3, SpellTimer4;
|
||||
bool Timers;
|
||||
bool hasTarget;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
MobGUID = 0;
|
||||
PlayerGUID = 0;
|
||||
MobGUID.Clear();
|
||||
PlayerGUID.Clear();
|
||||
Timers = false;
|
||||
hasTarget = false;
|
||||
}
|
||||
@@ -857,7 +857,7 @@ public:
|
||||
{
|
||||
npc_anachronos_quest_triggerAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
uint64 PlayerGUID;
|
||||
ObjectGuid PlayerGUID;
|
||||
|
||||
uint32 WaveTimer;
|
||||
uint32 AnnounceTimer;
|
||||
@@ -871,7 +871,7 @@ public:
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
PlayerGUID = 0;
|
||||
PlayerGUID.Clear();
|
||||
|
||||
WaveTimer = 2000;
|
||||
AnnounceTimer = 1000;
|
||||
|
||||
@@ -520,7 +520,7 @@ public:
|
||||
uint32 PostEventTimer;
|
||||
uint32 PhasePostEvent;
|
||||
|
||||
uint64 TortaGUID;
|
||||
ObjectGuid TortaGUID;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
@@ -528,7 +528,7 @@ public:
|
||||
PostEventTimer = 1000;
|
||||
PhasePostEvent = 0;
|
||||
|
||||
TortaGUID = 0;
|
||||
TortaGUID.Clear();
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
|
||||
@@ -309,9 +309,9 @@ public:
|
||||
uint8 Wave;
|
||||
uint32 WaveTimer;
|
||||
uint32 ChallengerChecker;
|
||||
uint64 PlayerGUID;
|
||||
uint64 AffrayChallenger[6];
|
||||
uint64 BigWill;
|
||||
ObjectGuid PlayerGUID;
|
||||
ObjectGuid AffrayChallenger[6];
|
||||
ObjectGuid BigWill;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
@@ -321,14 +321,15 @@ public:
|
||||
WaveTimer = 600000;
|
||||
ChallengerChecker = 0;
|
||||
Wave = 0;
|
||||
PlayerGUID = 0;
|
||||
PlayerGUID.Clear();
|
||||
|
||||
for (uint8 i = 0; i < 6; ++i)
|
||||
{
|
||||
AffrayChallenger[i] = 0;
|
||||
AffrayChallenger[i].Clear();
|
||||
ChallengerDown[i] = false;
|
||||
}
|
||||
BigWill = 0;
|
||||
|
||||
BigWill.Clear();
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override { }
|
||||
|
||||
@@ -189,14 +189,14 @@ public:
|
||||
uint32 EndEventProgress;
|
||||
uint32 EndEventTimer;
|
||||
|
||||
uint64 SpraggleGUID;
|
||||
ObjectGuid SpraggleGUID;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
FaintTimer = urand(30000, 60000);
|
||||
EndEventProgress = 0;
|
||||
EndEventTimer = 1000;
|
||||
SpraggleGUID = 0;
|
||||
SpraggleGUID.Clear();
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
|
||||
@@ -89,7 +89,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
uint64 playerGUID;
|
||||
ObjectGuid playerGUID;
|
||||
EventMap events;
|
||||
uint32 changeEntry;
|
||||
bool damaged;
|
||||
@@ -100,7 +100,7 @@ public:
|
||||
me->UpdateEntry(me->GetOriginalEntry());
|
||||
|
||||
events.Reset();
|
||||
playerGUID = 0;
|
||||
playerGUID.Clear();
|
||||
damaged = false;
|
||||
}
|
||||
|
||||
@@ -108,7 +108,7 @@ public:
|
||||
{
|
||||
if (!damaged)
|
||||
{
|
||||
if (who && who->GetGUID() != playerGUID && (who->GetTypeId() == TYPEID_PLAYER || IS_PLAYER_GUID(who->GetOwnerGUID())))
|
||||
if (who && who->GetGUID() != playerGUID && (who->GetTypeId() == TYPEID_PLAYER || who->GetOwnerGUID().IsPlayer()))
|
||||
{
|
||||
damaged = true;
|
||||
me->CastSpell(who, SPELL_FOOLS_PLIGHT, true);
|
||||
@@ -497,11 +497,11 @@ public:
|
||||
|
||||
uint32 _delayTimer;
|
||||
|
||||
uint64 _firstPriestessGUID;
|
||||
uint64 _secondPriestessGUID;
|
||||
uint64 _guardEluneGUID;
|
||||
uint64 _voiceEluneGUID;
|
||||
uint64 _altarGUID;
|
||||
ObjectGuid _firstPriestessGUID;
|
||||
ObjectGuid _secondPriestessGUID;
|
||||
ObjectGuid _guardEluneGUID;
|
||||
ObjectGuid _voiceEluneGUID;
|
||||
ObjectGuid _altarGUID;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user