mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-17 01:04:34 +00:00
feat(Core/Misc): implement ObjectGuid class (port from TC) (#4885)
This commit is contained in:
@@ -50,7 +50,7 @@ public:
|
||||
}
|
||||
|
||||
EventMap events;
|
||||
uint64 focusGUID;
|
||||
ObjectGuid focusGUID;
|
||||
|
||||
void EnterEvadeMode() override
|
||||
{
|
||||
@@ -61,7 +61,7 @@ public:
|
||||
void Reset() override
|
||||
{
|
||||
events.Reset();
|
||||
focusGUID = 0;
|
||||
focusGUID.Clear();
|
||||
me->SetControlled(false, UNIT_STATE_ROOT);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,14 +21,12 @@ public:
|
||||
instance_sethekk_halls_InstanceMapScript(Map* map) : InstanceScript(map) {}
|
||||
|
||||
uint32 AnzuEncounter;
|
||||
uint64 m_uiIkissDoorGUID;
|
||||
uint64 _talonKingsCofferGUID;
|
||||
ObjectGuid m_uiIkissDoorGUID;
|
||||
ObjectGuid _talonKingsCofferGUID;
|
||||
|
||||
void Initialize() override
|
||||
{
|
||||
AnzuEncounter = NOT_STARTED;
|
||||
m_uiIkissDoorGUID = 0;
|
||||
_talonKingsCofferGUID = 0;
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature* creature) override
|
||||
|
||||
@@ -53,7 +53,7 @@ public:
|
||||
|
||||
me->RemoveAurasDueToSpell(SPELL_BANISH);
|
||||
Talk(SAY_INTRO);
|
||||
Start(true, false, 0, nullptr, false, true);
|
||||
Start(true, false, ObjectGuid::Empty, nullptr, false, true);
|
||||
isBanished = false;
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ public:
|
||||
me->CastSpell(me, SPELL_BANISH, true);
|
||||
}
|
||||
else
|
||||
Start(true, false, 0, nullptr, false, true);
|
||||
Start(true, false, ObjectGuid::Empty, nullptr, false, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -208,16 +208,15 @@ public:
|
||||
{
|
||||
npc_voidtravelerAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
VorpilGUID = 0;
|
||||
moveTimer = 1000;
|
||||
sacrificed = false;
|
||||
}
|
||||
|
||||
uint64 VorpilGUID;
|
||||
ObjectGuid VorpilGUID;
|
||||
uint32 moveTimer;
|
||||
bool sacrificed;
|
||||
|
||||
void SetGUID(uint64 guid, int32) override
|
||||
void SetGUID(ObjectGuid guid, int32) override
|
||||
{
|
||||
VorpilGUID = guid;
|
||||
}
|
||||
|
||||
@@ -22,9 +22,9 @@ public:
|
||||
|
||||
uint32 m_auiEncounter[MAX_ENCOUNTER];
|
||||
|
||||
uint64 m_uiHellmawGUID;
|
||||
uint64 m_uiRefectoryDoorGUID;
|
||||
uint64 m_uiScreamingHallDoorGUID;
|
||||
ObjectGuid m_uiHellmawGUID;
|
||||
ObjectGuid m_uiRefectoryDoorGUID;
|
||||
ObjectGuid m_uiScreamingHallDoorGUID;
|
||||
|
||||
uint32 m_uiFelOverseerCount;
|
||||
|
||||
@@ -32,10 +32,6 @@ public:
|
||||
{
|
||||
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
|
||||
|
||||
m_uiHellmawGUID = 0;
|
||||
m_uiRefectoryDoorGUID = 0;
|
||||
m_uiScreamingHallDoorGUID = 0;
|
||||
|
||||
m_uiFelOverseerCount = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -223,7 +223,7 @@ public:
|
||||
{
|
||||
BossAI::EnterEvadeMode();
|
||||
|
||||
if (Creature* akama = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_AKAMA)))
|
||||
if (Creature* akama = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_AKAMA)))
|
||||
akama->AI()->EnterEvadeMode();
|
||||
}
|
||||
|
||||
@@ -395,7 +395,7 @@ public:
|
||||
switch (events2.ExecuteEvent())
|
||||
{
|
||||
case EVENT_SUMMON_MINIONS2:
|
||||
if (Creature* akama = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_AKAMA)))
|
||||
if (Creature* akama = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_AKAMA)))
|
||||
akama->AI()->DoAction(ACTION_FIGHT_MINIONS);
|
||||
break;
|
||||
case EVENT_PHASE_2_EYE_BEAM_START:
|
||||
@@ -432,7 +432,7 @@ public:
|
||||
maiev->AI()->Talk(SAY_MAIEV_SHADOWSONG_ILLIDAN3);
|
||||
}
|
||||
|
||||
if (Creature* akama = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_AKAMA)))
|
||||
if (Creature* akama = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_AKAMA)))
|
||||
{
|
||||
akama->AI()->DoAction(ACTION_ILLIDAN_DEAD);
|
||||
akama->SetTarget(me->GetGUID());
|
||||
@@ -554,7 +554,7 @@ public:
|
||||
|
||||
Talk(SAY_ILLIDAN_TAKEOFF);
|
||||
me->SendMeleeAttackStop(me->GetVictim());
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
me->GetMotionMaster()->Clear();
|
||||
me->StopMovingOnCurrentPos();
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
@@ -912,40 +912,40 @@ public:
|
||||
SetEscortPaused(false);
|
||||
break;
|
||||
case EVENT_AKAMA_SCENE_20:
|
||||
if (Creature* illidan = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_ILLIDAN_STORMRAGE)))
|
||||
if (Creature* illidan = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_ILLIDAN_STORMRAGE)))
|
||||
illidan->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
break;
|
||||
case EVENT_AKAMA_SCENE_21:
|
||||
me->SetFacingTo(M_PI);
|
||||
break;
|
||||
case EVENT_AKAMA_SCENE_22:
|
||||
if (Creature* illidan = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_ILLIDAN_STORMRAGE)))
|
||||
if (Creature* illidan = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_ILLIDAN_STORMRAGE)))
|
||||
illidan->AI()->Talk(SAY_ILLIDAN_AKAMA1);
|
||||
break;
|
||||
case EVENT_AKAMA_SCENE_23:
|
||||
Talk(SAY_AKAMA_ILLIDAN1);
|
||||
break;
|
||||
case EVENT_AKAMA_SCENE_24:
|
||||
if (Creature* illidan = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_ILLIDAN_STORMRAGE)))
|
||||
if (Creature* illidan = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_ILLIDAN_STORMRAGE)))
|
||||
illidan->AI()->Talk(SAY_ILLIDAN_AKAMA2);
|
||||
break;
|
||||
case EVENT_AKAMA_SCENE_25:
|
||||
Talk(SAY_AKAMA_ILLIDAN2);
|
||||
break;
|
||||
case EVENT_AKAMA_SCENE_26:
|
||||
if (Creature* illidan = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_ILLIDAN_STORMRAGE)))
|
||||
if (Creature* illidan = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_ILLIDAN_STORMRAGE)))
|
||||
illidan->AI()->Talk(SAY_ILLIDAN_AKAMA3);
|
||||
break;
|
||||
case EVENT_AKAMA_SCENE_27:
|
||||
if (Creature* illidan = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_ILLIDAN_STORMRAGE)))
|
||||
if (Creature* illidan = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_ILLIDAN_STORMRAGE)))
|
||||
illidan->LoadEquipment(1, true);
|
||||
break;
|
||||
case EVENT_AKAMA_SCENE_28:
|
||||
if (Creature* illidan = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_ILLIDAN_STORMRAGE)))
|
||||
if (Creature* illidan = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_ILLIDAN_STORMRAGE)))
|
||||
illidan->HandleEmoteCommand(EMOTE_ONESHOT_TALK_NO_SHEATHE);
|
||||
break;
|
||||
case EVENT_AKAMA_SCENE_29:
|
||||
if (Creature* illidan = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_ILLIDAN_STORMRAGE)))
|
||||
if (Creature* illidan = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_ILLIDAN_STORMRAGE)))
|
||||
{
|
||||
illidan->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
illidan->SetInCombatWithZone();
|
||||
|
||||
@@ -285,7 +285,7 @@ public:
|
||||
return;
|
||||
|
||||
me->m_Events.AddEvent(new SuckBackEvent(*me, ACTION_ESSENCE_OF_SUFFERING), me->m_Events.CalculateTime(1500));
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
me->SetFacingTo(M_PI / 2.0f);
|
||||
}
|
||||
|
||||
@@ -396,7 +396,7 @@ public:
|
||||
return;
|
||||
|
||||
me->m_Events.AddEvent(new SuckBackEvent(*me, ACTION_ESSENCE_OF_DESIRE), me->m_Events.CalculateTime(1500));
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
me->SetFacingTo(M_PI / 2.0f);
|
||||
}
|
||||
|
||||
@@ -483,11 +483,11 @@ public:
|
||||
boss_essence_of_angerAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
EventMap events;
|
||||
uint64 targetGUID;
|
||||
ObjectGuid targetGUID;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
targetGUID = 0;
|
||||
targetGUID.Clear();
|
||||
events.Reset();
|
||||
}
|
||||
|
||||
@@ -552,7 +552,7 @@ public:
|
||||
case EVENT_ANGER_SEETHE:
|
||||
if (Unit* victim = me->GetVictim())
|
||||
{
|
||||
uint64 victimGUID = victim->GetGUID();
|
||||
ObjectGuid victimGUID = victim->GetGUID();
|
||||
if (targetGUID && targetGUID != victimGUID)
|
||||
me->CastSpell(me, SPELL_SEETHE, false);
|
||||
// victim can be lost
|
||||
|
||||
@@ -137,7 +137,7 @@ public:
|
||||
summonsGenerator.DoAction(ACTION_DESPAWN_ALL);
|
||||
summonsChanneler.DespawnAll();
|
||||
me->CastSpell(me, SPELL_SHADE_OF_AKAMA_TRIGGER, true);
|
||||
if (Creature* akama = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_AKAMA_SHADE)))
|
||||
if (Creature* akama = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_AKAMA_SHADE)))
|
||||
{
|
||||
akama->SetHomePosition(*akama);
|
||||
akama->AI()->DoAction(ACTION_SHADE_DIED);
|
||||
@@ -184,7 +184,7 @@ public:
|
||||
summonsGenerator.Respawn();
|
||||
ChannelersAction(ACTION_CHANNELERS_START_CHANNEL);
|
||||
|
||||
if (Creature* akama = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_AKAMA_SHADE)))
|
||||
if (Creature* akama = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_AKAMA_SHADE)))
|
||||
akama->Respawn(true);
|
||||
break;
|
||||
}
|
||||
@@ -194,7 +194,7 @@ public:
|
||||
summonsChanneler.Respawn();
|
||||
ChannelersAction(ACTION_CHANNELERS_START_CHANNEL);
|
||||
|
||||
if (Creature* akama = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_AKAMA_SHADE)))
|
||||
if (Creature* akama = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_AKAMA_SHADE)))
|
||||
akama->Respawn(true);
|
||||
break;
|
||||
}
|
||||
@@ -314,7 +314,7 @@ public:
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
if (Creature* shade = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_SHADE_OF_AKAMA)))
|
||||
if (Creature* shade = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_SHADE_OF_AKAMA)))
|
||||
shade->AI()->DoAction(ACTION_AKAMA_DIED);
|
||||
}
|
||||
|
||||
@@ -345,7 +345,7 @@ public:
|
||||
break;
|
||||
case EVENT_AKAMA_START_CHANNEL:
|
||||
me->CastSpell(me, SPELL_AKAMA_SOUL_CHANNEL, false);
|
||||
if (Creature* shade = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_SHADE_OF_AKAMA)))
|
||||
if (Creature* shade = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_SHADE_OF_AKAMA)))
|
||||
{
|
||||
shade->AI()->AttackStart(me);
|
||||
shade->GetMotionMaster()->Clear();
|
||||
@@ -467,7 +467,7 @@ public:
|
||||
}
|
||||
|
||||
summon->SetInCombatWithZone();
|
||||
if (Unit* akama = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_AKAMA_SHADE)))
|
||||
if (Unit* akama = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_AKAMA_SHADE)))
|
||||
{
|
||||
summon->AddThreat(akama, 500.0f);
|
||||
summon->AI()->AttackStart(akama);
|
||||
|
||||
@@ -100,7 +100,7 @@ struct HammerOfJusticeSelector : public acore::unary_function<Unit*, bool>
|
||||
class VerasEnvenom : public BasicEvent
|
||||
{
|
||||
public:
|
||||
VerasEnvenom(Unit& owner, uint64 targetGUID) : _owner(owner), _targetGUID(targetGUID) { }
|
||||
VerasEnvenom(Unit& owner, ObjectGuid targetGUID) : _owner(owner), _targetGUID(targetGUID) { }
|
||||
|
||||
bool Execute(uint64 /*eventTime*/, uint32 /*updateTime*/) override
|
||||
{
|
||||
@@ -116,7 +116,7 @@ public:
|
||||
|
||||
private:
|
||||
Unit& _owner;
|
||||
uint64 _targetGUID;
|
||||
ObjectGuid _targetGUID;
|
||||
};
|
||||
|
||||
class boss_illidari_council : public CreatureScript
|
||||
@@ -133,10 +133,9 @@ public:
|
||||
{
|
||||
boss_illidari_councilAI(Creature* creature) : BossAI(creature, DATA_ILLIDARI_COUNCIL)
|
||||
{
|
||||
memset(councilGUIDs, 0, sizeof(councilGUIDs));
|
||||
}
|
||||
|
||||
uint64 councilGUIDs[4];
|
||||
ObjectGuid councilGUIDs[4];
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
@@ -155,10 +154,10 @@ public:
|
||||
if (!me->isActiveObject() && param == ACTION_START_ENCOUNTER)
|
||||
{
|
||||
me->setActive(true);
|
||||
councilGUIDs[0] = instance->GetData64(NPC_GATHIOS_THE_SHATTERER);
|
||||
councilGUIDs[1] = instance->GetData64(NPC_HIGH_NETHERMANCER_ZEREVOR);
|
||||
councilGUIDs[2] = instance->GetData64(NPC_LADY_MALANDE);
|
||||
councilGUIDs[3] = instance->GetData64(NPC_VERAS_DARKSHADOW);
|
||||
councilGUIDs[0] = instance->GetGuidData(NPC_GATHIOS_THE_SHATTERER);
|
||||
councilGUIDs[1] = instance->GetGuidData(NPC_HIGH_NETHERMANCER_ZEREVOR);
|
||||
councilGUIDs[2] = instance->GetGuidData(NPC_LADY_MALANDE);
|
||||
councilGUIDs[3] = instance->GetGuidData(NPC_VERAS_DARKSHADOW);
|
||||
|
||||
bool spoken = false;
|
||||
for (uint8 i = 0; i < 4; ++i)
|
||||
@@ -226,7 +225,7 @@ struct boss_illidari_council_memberAI : public ScriptedAI
|
||||
|
||||
void EnterEvadeMode() override
|
||||
{
|
||||
me->SetOwnerGUID(0);
|
||||
me->SetOwnerGUID(ObjectGuid::Empty);
|
||||
ScriptedAI::EnterEvadeMode();
|
||||
}
|
||||
|
||||
@@ -251,13 +250,13 @@ struct boss_illidari_council_memberAI : public ScriptedAI
|
||||
void JustDied(Unit*) override
|
||||
{
|
||||
Talk(SAY_COUNCIL_DEATH);
|
||||
if (Creature* council = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_ILLIDARI_COUNCIL)))
|
||||
if (Creature* council = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_ILLIDARI_COUNCIL)))
|
||||
council->GetAI()->DoAction(ACTION_END_ENCOUNTER);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
{
|
||||
if (Creature* council = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_ILLIDARI_COUNCIL)))
|
||||
if (Creature* council = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_ILLIDARI_COUNCIL)))
|
||||
council->GetAI()->DoAction(ACTION_START_ENCOUNTER);
|
||||
}
|
||||
};
|
||||
@@ -279,14 +278,14 @@ public:
|
||||
Creature* SelectCouncilMember()
|
||||
{
|
||||
if (roll_chance_i(50))
|
||||
return ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_LADY_MALANDE));
|
||||
return ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_LADY_MALANDE));
|
||||
|
||||
if (roll_chance_i(20))
|
||||
if (Creature* veras = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_VERAS_DARKSHADOW)))
|
||||
if (Creature* veras = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_VERAS_DARKSHADOW)))
|
||||
if (!veras->HasAura(SPELL_VANISH))
|
||||
return veras;
|
||||
|
||||
return ObjectAccessor::GetCreature(*me, instance->GetData64(RAND(NPC_GATHIOS_THE_SHATTERER, NPC_HIGH_NETHERMANCER_ZEREVOR)));
|
||||
return ObjectAccessor::GetCreature(*me, instance->GetGuidData(RAND(NPC_GATHIOS_THE_SHATTERER, NPC_HIGH_NETHERMANCER_ZEREVOR)));
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* who) override
|
||||
@@ -538,7 +537,7 @@ public:
|
||||
break;
|
||||
case EVENT_SPELL_ENRAGE:
|
||||
DoResetThreat();
|
||||
if (Creature* council = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_ILLIDARI_COUNCIL)))
|
||||
if (Creature* council = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_ILLIDARI_COUNCIL)))
|
||||
council->GetAI()->DoAction(ACTION_ENRAGE);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -39,18 +39,7 @@ public:
|
||||
SetBossNumber(MAX_ENCOUNTERS);
|
||||
LoadDoorData(doorData);
|
||||
|
||||
ShadeOfAkamaGUID = 0;
|
||||
AkamaShadeGUID = 0;
|
||||
TeronGorefiendGUID = 0;
|
||||
ReliquaryGUID = 0;
|
||||
ashtongueGUIDs.clear();
|
||||
GathiosTheShattererGUID = 0;
|
||||
HighNethermancerZerevorGUID = 0;
|
||||
LadyMalandeGUID = 0;
|
||||
VerasDarkshadowGUID = 0;
|
||||
IllidariCouncilGUID = 0;
|
||||
AkamaGUID = 0;
|
||||
IllidanStormrageGUID = 0;
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature* creature) override
|
||||
@@ -164,7 +153,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 type) const override
|
||||
ObjectGuid GetGuidData(uint32 type) const override
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
@@ -188,7 +177,7 @@ public:
|
||||
return IllidanStormrageGUID;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
bool SetBossState(uint32 type, EncounterState state) override
|
||||
@@ -198,8 +187,8 @@ public:
|
||||
|
||||
if (type == DATA_SHADE_OF_AKAMA && state == DONE)
|
||||
{
|
||||
for (std::list<uint64>::const_iterator itr = ashtongueGUIDs.begin(); itr != ashtongueGUIDs.end(); ++itr)
|
||||
if (Creature* ashtongue = instance->GetCreature(*itr))
|
||||
for (ObjectGuid const guid : ashtongueGUIDs)
|
||||
if (Creature* ashtongue = instance->GetCreature(guid))
|
||||
ashtongue->setFaction(FACTION_ASHTONGUE);
|
||||
}
|
||||
else if (type == DATA_ILLIDARI_COUNCIL && state == DONE)
|
||||
@@ -255,18 +244,18 @@ public:
|
||||
}
|
||||
|
||||
protected:
|
||||
uint64 ShadeOfAkamaGUID;
|
||||
uint64 AkamaShadeGUID;
|
||||
uint64 TeronGorefiendGUID;
|
||||
uint64 ReliquaryGUID;
|
||||
std::list<uint64> ashtongueGUIDs;
|
||||
uint64 GathiosTheShattererGUID;
|
||||
uint64 HighNethermancerZerevorGUID;
|
||||
uint64 LadyMalandeGUID;
|
||||
uint64 VerasDarkshadowGUID;
|
||||
uint64 IllidariCouncilGUID;
|
||||
uint64 AkamaGUID;
|
||||
uint64 IllidanStormrageGUID;
|
||||
ObjectGuid ShadeOfAkamaGUID;
|
||||
ObjectGuid AkamaShadeGUID;
|
||||
ObjectGuid TeronGorefiendGUID;
|
||||
ObjectGuid ReliquaryGUID;
|
||||
GuidList ashtongueGUIDs;
|
||||
ObjectGuid GathiosTheShattererGUID;
|
||||
ObjectGuid HighNethermancerZerevorGUID;
|
||||
ObjectGuid LadyMalandeGUID;
|
||||
ObjectGuid VerasDarkshadowGUID;
|
||||
ObjectGuid IllidariCouncilGUID;
|
||||
ObjectGuid AkamaGUID;
|
||||
ObjectGuid IllidanStormrageGUID;
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
@@ -304,8 +293,8 @@ public:
|
||||
|
||||
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
for (std::set<uint64>::const_iterator itr = _turtleSet.begin(); itr != _turtleSet.end(); ++itr)
|
||||
if (Creature* turtle = ObjectAccessor::GetCreature(*GetUnitOwner(), *itr))
|
||||
for (ObjectGuid const guid : _turtleSet)
|
||||
if (Creature* turtle = ObjectAccessor::GetCreature(*GetUnitOwner(), guid))
|
||||
{
|
||||
turtle->TauntFadeOut(GetUnitOwner());
|
||||
turtle->AddThreat(GetUnitOwner(), -10000000.0f);
|
||||
@@ -319,7 +308,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
std::set<uint64> _turtleSet;
|
||||
GuidSet _turtleSet;
|
||||
};
|
||||
|
||||
AuraScript* GetAuraScript() const override
|
||||
|
||||
@@ -75,7 +75,7 @@ public:
|
||||
bool Execute(uint64 /*execTime*/, uint32 /*diff*/) override
|
||||
{
|
||||
if (InstanceScript* instance = _owner->GetInstanceScript())
|
||||
if (Creature* vashj = ObjectAccessor::GetCreature(*_owner, instance->GetData64(NPC_LADY_VASHJ)))
|
||||
if (Creature* vashj = ObjectAccessor::GetCreature(*_owner, instance->GetGuidData(NPC_LADY_VASHJ)))
|
||||
_owner->GetMotionMaster()->MoveFollow(vashj, 3.0f, vashj->GetAngle(_owner), MOTION_SLOT_CONTROLLED);
|
||||
return true;
|
||||
}
|
||||
@@ -363,7 +363,7 @@ public:
|
||||
if (CheckTimer <= diff)
|
||||
{
|
||||
// check if vashj is death
|
||||
Unit* Vashj = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_LADYVASHJ));
|
||||
Unit* Vashj = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_LADYVASHJ));
|
||||
if (!Vashj || !Vashj->IsAlive() || CAST_AI(boss_lady_vashj::boss_lady_vashjAI, Vashj->ToCreature()->AI())->Phase != 3)
|
||||
{
|
||||
// remove
|
||||
|
||||
@@ -273,7 +273,7 @@ public:
|
||||
{
|
||||
}
|
||||
|
||||
uint64 ownerGUID;
|
||||
ObjectGuid ownerGUID;
|
||||
EventMap events;
|
||||
|
||||
void EnterEvadeMode() override
|
||||
@@ -428,7 +428,7 @@ public:
|
||||
{
|
||||
if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_DEFAULT)
|
||||
if (InstanceScript* instance = GetUnitOwner()->GetInstanceScript())
|
||||
if (Creature* leotheras = ObjectAccessor::GetCreature(*GetUnitOwner(), instance->GetData64(NPC_LEOTHERAS_THE_BLIND)))
|
||||
if (Creature* leotheras = ObjectAccessor::GetCreature(*GetUnitOwner(), instance->GetGuidData(NPC_LEOTHERAS_THE_BLIND)))
|
||||
leotheras->CastSpell(GetUnitOwner(), SPELL_CONSUMING_MADNESS, true);
|
||||
}
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@ public:
|
||||
me->CastSpell(me, SPELL_SPOUT_VISUAL, TRIGGERED_IGNORE_SET_FACING);
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->SetFacingToObject(me->GetVictim());
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
events.ScheduleEvent(EVENT_SPELL_SPOUT, 60000);
|
||||
events.RescheduleEvent(EVENT_SPELL_WHIRL, 18000);
|
||||
events.RescheduleEvent(EVENT_SPELL_GEYSER, 25000);
|
||||
@@ -205,7 +205,7 @@ public:
|
||||
if (roll_chance_i(instance->GetBossState(DATA_THE_LURKER_BELOW) != DONE ? 25 : 0) && !instance->IsEncounterInProgress())
|
||||
{
|
||||
player->CastSpell(player, SPELL_LURKER_SPAWN_TRIGGER, true);
|
||||
if (Creature* lurker = ObjectAccessor::GetCreature(*go, instance->GetData64(NPC_THE_LURKER_BELOW)))
|
||||
if (Creature* lurker = ObjectAccessor::GetCreature(*go, instance->GetGuidData(NPC_THE_LURKER_BELOW)))
|
||||
lurker->AI()->DoAction(ACTION_START_EVENT);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -32,11 +32,7 @@ public:
|
||||
SetBossNumber(MAX_ENCOUNTERS);
|
||||
LoadDoorData(doorData);
|
||||
|
||||
LadyVashjGUID = 0;
|
||||
memset(&ShieldGeneratorGUID, 0, sizeof(ShieldGeneratorGUID));
|
||||
AliveKeepersCount = 0;
|
||||
LeotherasTheBlindGUID = 0;
|
||||
LurkerBelowGUID = 0;
|
||||
}
|
||||
|
||||
bool SetBossState(uint32 type, EncounterState state) override
|
||||
@@ -115,7 +111,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 identifier) const override
|
||||
ObjectGuid GetGuidData(uint32 identifier) const override
|
||||
{
|
||||
switch (identifier)
|
||||
{
|
||||
@@ -126,7 +122,8 @@ public:
|
||||
case NPC_LADY_VASHJ:
|
||||
return LadyVashjGUID;
|
||||
}
|
||||
return 0;
|
||||
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
void SetData(uint32 type, uint32 /*data*/) override
|
||||
@@ -207,10 +204,10 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
uint64 LadyVashjGUID;
|
||||
uint64 ShieldGeneratorGUID[4];
|
||||
uint64 LurkerBelowGUID;
|
||||
uint64 LeotherasTheBlindGUID;
|
||||
ObjectGuid LadyVashjGUID;
|
||||
ObjectGuid ShieldGeneratorGUID[4];
|
||||
ObjectGuid LurkerBelowGUID;
|
||||
ObjectGuid LeotherasTheBlindGUID;
|
||||
int32 AliveKeepersCount;
|
||||
};
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ public:
|
||||
SetCombatMovement(false);
|
||||
SetEquipmentSlots(false, 54806, EQUIP_UNEQUIP, EQUIP_UNEQUIP);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
InvokerGUID = 0;
|
||||
InvokerGUID.Clear();
|
||||
events.Reset();
|
||||
events.RescheduleEvent(EVENT_EMERGE, 12000);
|
||||
events.RescheduleEvent(EVENT_INVOKER_SAY_1, 1000);
|
||||
@@ -90,7 +90,7 @@ public:
|
||||
|
||||
EventMap events;
|
||||
SummonList summons;
|
||||
uint64 InvokerGUID;
|
||||
ObjectGuid InvokerGUID;
|
||||
|
||||
void StartPhase1()
|
||||
{
|
||||
|
||||
@@ -77,7 +77,7 @@ public:
|
||||
LumaGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_EARTHEN_RING_FLAMECALLER:
|
||||
SetData64(counter, creature->GetGUID());
|
||||
SetGuidData(counter, creature->GetGUID());
|
||||
++counter;
|
||||
break;
|
||||
default:
|
||||
@@ -85,7 +85,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void SetData64(uint32 data, uint64 guid) override
|
||||
void SetGuidData(uint32 data, ObjectGuid guid) override
|
||||
{
|
||||
switch (data)
|
||||
{
|
||||
@@ -103,7 +103,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 type) const override
|
||||
ObjectGuid GetGuidData(uint32 type) const override
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
@@ -136,17 +136,18 @@ public:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
protected:
|
||||
uint64 AhuneGUID;
|
||||
uint64 AhuneBunnyGUID;
|
||||
uint64 FrozenCoreGUID;
|
||||
uint64 LumaGUID;
|
||||
uint64 FlameCallerGUIDs[3];
|
||||
uint64 BonfireBunnyGUIDs[3];
|
||||
uint64 BeamBunnyGUIDs[3];
|
||||
ObjectGuid AhuneGUID;
|
||||
ObjectGuid AhuneBunnyGUID;
|
||||
ObjectGuid FrozenCoreGUID;
|
||||
ObjectGuid LumaGUID;
|
||||
ObjectGuid FlameCallerGUIDs[3];
|
||||
ObjectGuid BonfireBunnyGUIDs[3];
|
||||
ObjectGuid BeamBunnyGUIDs[3];
|
||||
uint8 counter;
|
||||
};
|
||||
|
||||
|
||||
@@ -157,14 +157,14 @@ public:
|
||||
}
|
||||
|
||||
uint32 repairTimer;
|
||||
uint64 bossGUID;
|
||||
ObjectGuid bossGUID;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
repairTimer = 0;
|
||||
bossGUID = 0;
|
||||
bossGUID.Clear();
|
||||
if (InstanceScript* instance = me->GetInstanceScript())
|
||||
bossGUID = instance->GetData64(TYPE_MEKGINEER_STEAMRIGGER);
|
||||
bossGUID = instance->GetGuidData(TYPE_MEKGINEER_STEAMRIGGER);
|
||||
}
|
||||
|
||||
void MoveInLineOfSight(Unit* /*who*/) override {}
|
||||
|
||||
@@ -51,19 +51,14 @@ public:
|
||||
|
||||
uint32 m_auiEncounter[MAX_ENCOUNTER];
|
||||
|
||||
uint64 MekgineerGUID;
|
||||
uint64 MainChambersDoor;
|
||||
uint64 AccessPanelHydro;
|
||||
uint64 AccessPanelMek;
|
||||
ObjectGuid MekgineerGUID;
|
||||
ObjectGuid MainChambersDoor;
|
||||
ObjectGuid AccessPanelHydro;
|
||||
ObjectGuid AccessPanelMek;
|
||||
|
||||
void Initialize() override
|
||||
{
|
||||
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
|
||||
|
||||
MekgineerGUID = 0;
|
||||
MainChambersDoor = 0;
|
||||
AccessPanelHydro = 0;
|
||||
AccessPanelMek = 0;
|
||||
}
|
||||
|
||||
bool IsEncounterInProgress() const override
|
||||
@@ -92,21 +87,21 @@ public:
|
||||
case GO_MAIN_CHAMBERS_DOOR:
|
||||
MainChambersDoor = go->GetGUID();
|
||||
if (GetData(TYPE_HYDROMANCER_THESPIA) == SPECIAL && GetData(TYPE_MEKGINEER_STEAMRIGGER) == SPECIAL)
|
||||
HandleGameObject(0, true, go);
|
||||
HandleGameObject(ObjectGuid::Empty, true, go);
|
||||
break;
|
||||
case GO_ACCESS_PANEL_HYDRO:
|
||||
AccessPanelHydro = go->GetGUID();
|
||||
if (GetData(TYPE_HYDROMANCER_THESPIA) == DONE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
else if (GetData(TYPE_HYDROMANCER_THESPIA) == SPECIAL)
|
||||
HandleGameObject(0, true, go);
|
||||
HandleGameObject(ObjectGuid::Empty, true, go);
|
||||
break;
|
||||
case GO_ACCESS_PANEL_MEK:
|
||||
AccessPanelMek = go->GetGUID();
|
||||
if (GetData(TYPE_MEKGINEER_STEAMRIGGER) == DONE)
|
||||
go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
else if (GetData(TYPE_MEKGINEER_STEAMRIGGER) == SPECIAL)
|
||||
HandleGameObject(0, true, go);
|
||||
HandleGameObject(ObjectGuid::Empty, true, go);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -164,11 +159,12 @@ public:
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 data) const override
|
||||
ObjectGuid GetGuidData(uint32 data) const override
|
||||
{
|
||||
if (data == TYPE_MEKGINEER_STEAMRIGGER)
|
||||
return MekgineerGUID;
|
||||
return 0;
|
||||
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
|
||||
@@ -55,13 +55,13 @@ public:
|
||||
|
||||
EventMap events;
|
||||
SummonList summons;
|
||||
uint64 lTarget;
|
||||
ObjectGuid lTarget;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
events.Reset();
|
||||
summons.DespawnAll();
|
||||
lTarget = 0;
|
||||
lTarget.Clear();
|
||||
}
|
||||
|
||||
void EnterCombat(Unit*) override
|
||||
@@ -142,7 +142,7 @@ public:
|
||||
if (Unit* target = ObjectAccessor::GetUnit(*me, lTarget))
|
||||
{
|
||||
if (!target->HasAura(SPELL_LEVITATE))
|
||||
lTarget = 0;
|
||||
lTarget.Clear();
|
||||
else
|
||||
{
|
||||
target->CastSpell(target, SPELL_MAGNETIC_PULL, true);
|
||||
@@ -154,11 +154,11 @@ public:
|
||||
if (Unit* target = ObjectAccessor::GetUnit(*me, lTarget))
|
||||
{
|
||||
if (!target->HasAura(SPELL_LEVITATE))
|
||||
lTarget = 0;
|
||||
lTarget.Clear();
|
||||
else
|
||||
{
|
||||
target->AddAura(SPELL_SUSPENSION, target);
|
||||
lTarget = 0;
|
||||
lTarget.Clear();
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -35,7 +35,6 @@ public:
|
||||
LoadDoorData(doorData);
|
||||
LoadMinionData(minionData);
|
||||
|
||||
_maulgarGUID = 0;
|
||||
_addsKilled = 0;
|
||||
}
|
||||
|
||||
@@ -160,7 +159,7 @@ public:
|
||||
|
||||
protected:
|
||||
uint32 _addsKilled;
|
||||
uint64 _maulgarGUID;
|
||||
ObjectGuid _maulgarGUID;
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
|
||||
@@ -98,8 +98,8 @@ public:
|
||||
{
|
||||
if (instance)
|
||||
{
|
||||
instance->HandleGameObject(instance->GetData64(DATA_DOOR4), true);
|
||||
instance->HandleGameObject(instance->GetData64(DATA_DOOR5), true);
|
||||
instance->HandleGameObject(instance->GetGuidData(DATA_DOOR4), true);
|
||||
instance->HandleGameObject(instance->GetGuidData(DATA_DOOR5), true);
|
||||
instance->SetData(DATA_BROGGOK, DONE);
|
||||
}
|
||||
}
|
||||
@@ -139,7 +139,7 @@ public:
|
||||
{
|
||||
if (InstanceScript* instance = go->GetInstanceScript())
|
||||
if (instance->GetData(DATA_BROGGOK) != DONE && instance->GetData(DATA_BROGGOK) != IN_PROGRESS)
|
||||
if (Creature* broggok = ObjectAccessor::GetCreature(*go, instance->GetData64(DATA_BROGGOK)))
|
||||
if (Creature* broggok = ObjectAccessor::GetCreature(*go, instance->GetGuidData(DATA_BROGGOK)))
|
||||
{
|
||||
instance->SetData(DATA_BROGGOK, IN_PROGRESS);
|
||||
broggok->AI()->DoAction(ACTION_PREPARE_BROGGOK);
|
||||
|
||||
@@ -63,12 +63,11 @@ public:
|
||||
boss_kelidan_the_breakerAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
instance = creature->GetInstanceScript();
|
||||
memset(&channelers, 0, sizeof(channelers));
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
EventMap events;
|
||||
uint64 channelers[5];
|
||||
ObjectGuid channelers[5];
|
||||
uint32 checkTimer;
|
||||
bool addYell;
|
||||
|
||||
@@ -172,7 +171,7 @@ public:
|
||||
if (!channeler)
|
||||
channeler = me->SummonCreature(NPC_CHANNELER, ShadowmoonChannelers[i][0], ShadowmoonChannelers[i][1], ShadowmoonChannelers[i][2], ShadowmoonChannelers[i][3], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);
|
||||
|
||||
channelers[i] = channeler ? channeler->GetGUID() : 0;
|
||||
channelers[i] = channeler ? channeler->GetGUID() : ObjectGuid::Empty;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -184,8 +183,8 @@ public:
|
||||
// Xinef: load grid with start doors
|
||||
me->GetMap()->LoadGrid(0, -111.0f);
|
||||
instance->SetData(DATA_KELIDAN, DONE);
|
||||
instance->HandleGameObject(instance->GetData64(DATA_DOOR1), true);
|
||||
instance->HandleGameObject(instance->GetData64(DATA_DOOR6), true);
|
||||
instance->HandleGameObject(instance->GetGuidData(DATA_DOOR1), true);
|
||||
instance->HandleGameObject(instance->GetGuidData(DATA_DOOR6), true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -288,7 +287,7 @@ public:
|
||||
Creature* GetKelidan()
|
||||
{
|
||||
if (me->GetInstanceScript())
|
||||
return ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetData64(DATA_KELIDAN));
|
||||
return ObjectAccessor::GetCreature(*me, me->GetInstanceScript()->GetGuidData(DATA_KELIDAN));
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ public:
|
||||
return;
|
||||
|
||||
instance->SetData(DATA_THE_MAKER, NOT_STARTED);
|
||||
instance->HandleGameObject(instance->GetData64(DATA_DOOR2), true);
|
||||
instance->HandleGameObject(instance->GetGuidData(DATA_DOOR2), true);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override
|
||||
@@ -62,7 +62,7 @@ public:
|
||||
return;
|
||||
|
||||
instance->SetData(DATA_THE_MAKER, IN_PROGRESS);
|
||||
instance->HandleGameObject(instance->GetData64(DATA_DOOR2), false);
|
||||
instance->HandleGameObject(instance->GetGuidData(DATA_DOOR2), false);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* victim) override
|
||||
@@ -79,8 +79,8 @@ public:
|
||||
return;
|
||||
|
||||
instance->SetData(DATA_THE_MAKER, DONE);
|
||||
instance->HandleGameObject(instance->GetData64(DATA_DOOR2), true);
|
||||
instance->HandleGameObject(instance->GetData64(DATA_DOOR3), true);
|
||||
instance->HandleGameObject(instance->GetGuidData(DATA_DOOR2), true);
|
||||
instance->HandleGameObject(instance->GetGuidData(DATA_DOOR3), true);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
|
||||
@@ -17,28 +17,20 @@ public:
|
||||
instance_blood_furnace_InstanceMapScript(Map* map) : InstanceScript(map) {}
|
||||
|
||||
uint32 _auiEncounter[MAX_ENCOUNTER];
|
||||
uint64 _bossGUIDs[3];
|
||||
uint64 _doorGUIDs[6];
|
||||
uint64 _prisonGUIDs[4];
|
||||
ObjectGuid _bossGUIDs[3];
|
||||
ObjectGuid _doorGUIDs[6];
|
||||
ObjectGuid _prisonGUIDs[4];
|
||||
|
||||
std::set<uint64> _prisonersCell[4];
|
||||
GuidSet _prisonersCell[4];
|
||||
|
||||
uint8 _prisonerCounter[4];
|
||||
|
||||
uint64 _broggokLeverGUID;
|
||||
ObjectGuid _broggokLeverGUID;
|
||||
|
||||
void Initialize() override
|
||||
{
|
||||
memset(&_auiEncounter, 0, sizeof(_auiEncounter));
|
||||
memset(&_bossGUIDs, 0, sizeof(_bossGUIDs));
|
||||
memset(&_doorGUIDs, 0, sizeof(_doorGUIDs));
|
||||
memset(&_prisonGUIDs, 0, sizeof(_prisonGUIDs));
|
||||
memset(&_prisonerCounter, 0, sizeof(_prisonerCounter));
|
||||
|
||||
for (uint8 i = 0; i < 4; ++i)
|
||||
_prisonersCell[i].clear();
|
||||
|
||||
_broggokLeverGUID = 0;
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature* creature) override
|
||||
@@ -102,7 +94,7 @@ public:
|
||||
_broggokLeverGUID = go->GetGUID(); //Broggok lever
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 data) const override
|
||||
ObjectGuid GetGuidData(uint32 data) const override
|
||||
{
|
||||
switch (data)
|
||||
{
|
||||
@@ -125,7 +117,8 @@ public:
|
||||
case DATA_PRISON_CELL4:
|
||||
return _prisonGUIDs[data - DATA_PRISON_CELL1];
|
||||
}
|
||||
return 0;
|
||||
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
void SetData(uint32 type, uint32 data) override
|
||||
@@ -223,10 +216,10 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void ResetPrisoners(std::set<uint64> prisoners)
|
||||
void ResetPrisoners(GuidSet prisoners)
|
||||
{
|
||||
for (std::set<uint64>::iterator i = prisoners.begin(); i != prisoners.end(); ++i)
|
||||
if (Creature* prisoner = instance->GetCreature(*i))
|
||||
for (ObjectGuid guid : prisoners)
|
||||
if (Creature* prisoner = instance->GetCreature(guid))
|
||||
ResetPrisoner(prisoner);
|
||||
}
|
||||
|
||||
@@ -274,7 +267,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void PrisonerDied(uint64 guid)
|
||||
void PrisonerDied(ObjectGuid guid)
|
||||
{
|
||||
if (_prisonersCell[0].find(guid) != _prisonersCell[0].end() && --_prisonerCounter[0] <= 0)
|
||||
ActivateCell(DATA_PRISON_CELL2);
|
||||
@@ -299,16 +292,16 @@ public:
|
||||
break;
|
||||
case DATA_DOOR5:
|
||||
HandleGameObject(_doorGUIDs[4], true);
|
||||
if (Creature* broggok = instance->GetCreature(GetData64(DATA_BROGGOK)))
|
||||
if (Creature* broggok = instance->GetCreature(GetGuidData(DATA_BROGGOK)))
|
||||
broggok->AI()->DoAction(ACTION_ACTIVATE_BROGGOK);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void ActivatePrisoners(std::set<uint64> prisoners)
|
||||
void ActivatePrisoners(GuidSet prisoners)
|
||||
{
|
||||
for (std::set<uint64>::iterator i = prisoners.begin(); i != prisoners.end(); ++i)
|
||||
if (Creature* prisoner = instance->GetCreature(*i))
|
||||
for (ObjectGuid guid : prisoners)
|
||||
if (Creature* prisoner = instance->GetCreature(guid))
|
||||
{
|
||||
prisoner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NON_ATTACKABLE);
|
||||
prisoner->SetInCombatWithZone();
|
||||
|
||||
@@ -52,7 +52,7 @@ public:
|
||||
{
|
||||
Talk(SAY_WIPE);
|
||||
BossAI::Reset();
|
||||
_targetGUID = 0;
|
||||
_targetGUID.Clear();
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* who) override
|
||||
@@ -139,7 +139,7 @@ public:
|
||||
me->GetMotionMaster()->MoveChase(me->GetVictim());
|
||||
if (Unit* target = ObjectAccessor::GetUnit(*me, _targetGUID))
|
||||
me->CastSpell(target, SPELL_SHADOW_WHIP, false);
|
||||
_targetGUID = 0;
|
||||
_targetGUID.Clear();
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -160,7 +160,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
uint64 _targetGUID;
|
||||
ObjectGuid _targetGUID;
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
|
||||
@@ -18,7 +18,6 @@ public:
|
||||
void Initialize() override
|
||||
{
|
||||
SetBossNumber(MAX_ENCOUNTERS);
|
||||
felIronChestGUID = 0;
|
||||
}
|
||||
|
||||
void OnGameObjectCreate(GameObject* go) override
|
||||
@@ -74,7 +73,7 @@ public:
|
||||
}
|
||||
|
||||
protected:
|
||||
uint64 felIronChestGUID;
|
||||
ObjectGuid felIronChestGUID;
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
|
||||
@@ -69,7 +69,7 @@ enum Events
|
||||
class DealDebrisDamage : public BasicEvent
|
||||
{
|
||||
public:
|
||||
DealDebrisDamage(Creature& creature, uint64 targetGUID) : _owner(creature), _targetGUID(targetGUID) { }
|
||||
DealDebrisDamage(Creature& creature, ObjectGuid targetGUID) : _owner(creature), _targetGUID(targetGUID) { }
|
||||
|
||||
bool Execute(uint64 /*eventTime*/, uint32 /*updateTime*/) override
|
||||
{
|
||||
@@ -80,7 +80,7 @@ public:
|
||||
|
||||
private:
|
||||
Creature& _owner;
|
||||
uint64 _targetGUID;
|
||||
ObjectGuid _targetGUID;
|
||||
};
|
||||
|
||||
class boss_magtheridon : public CreatureScript
|
||||
|
||||
@@ -37,7 +37,6 @@ public:
|
||||
_wardersSet.clear();
|
||||
_cubesSet.clear();
|
||||
_columnSet.clear();
|
||||
_magtheridonGUID = 0;
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature* creature) override
|
||||
@@ -119,8 +118,8 @@ public:
|
||||
{
|
||||
if (state == IN_PROGRESS)
|
||||
{
|
||||
for (std::set<uint64>::const_iterator itr = _wardersSet.begin(); itr != _wardersSet.end(); ++itr)
|
||||
if (Creature* warder = instance->GetCreature(*itr))
|
||||
for (ObjectGuid const guid : _wardersSet)
|
||||
if (Creature* warder = instance->GetCreature(guid))
|
||||
if (warder->IsAlive())
|
||||
{
|
||||
warder->InterruptNonMeleeSpells(true);
|
||||
@@ -129,8 +128,8 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
for (std::set<uint64>::const_iterator itr = _cubesSet.begin(); itr != _cubesSet.end(); ++itr)
|
||||
if (GameObject* cube = instance->GetGameObject(*itr))
|
||||
for (ObjectGuid const guid : _cubesSet)
|
||||
if (GameObject* cube = instance->GetGameObject(guid))
|
||||
cube->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
|
||||
if (state == NOT_STARTED)
|
||||
@@ -150,13 +149,13 @@ public:
|
||||
magtheridon->SetInCombatWithZone();
|
||||
break;
|
||||
case DATA_ACTIVATE_CUBES:
|
||||
for (std::set<uint64>::const_iterator itr = _cubesSet.begin(); itr != _cubesSet.end(); ++itr)
|
||||
if (GameObject* cube = instance->GetGameObject(*itr))
|
||||
for (ObjectGuid const guid : _cubesSet)
|
||||
if (GameObject* cube = instance->GetGameObject(guid))
|
||||
cube->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||
break;
|
||||
case DATA_COLLAPSE:
|
||||
for (std::set<uint64>::const_iterator itr = _columnSet.begin(); itr != _columnSet.end(); ++itr)
|
||||
if (GameObject* column = instance->GetGameObject(*itr))
|
||||
for (ObjectGuid const guid : _columnSet)
|
||||
if (GameObject* column = instance->GetGameObject(guid))
|
||||
column->SetGoState(GOState(data));
|
||||
break;
|
||||
}
|
||||
@@ -206,10 +205,10 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
uint64 _magtheridonGUID;
|
||||
std::set<uint64> _wardersSet;
|
||||
std::set<uint64> _cubesSet;
|
||||
std::set<uint64> _columnSet;
|
||||
ObjectGuid _magtheridonGUID;
|
||||
GuidSet _wardersSet;
|
||||
GuidSet _cubesSet;
|
||||
GuidSet _columnSet;
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
|
||||
@@ -56,7 +56,7 @@ public:
|
||||
{
|
||||
BossAI::InitializeAI();
|
||||
if (instance)
|
||||
if (Creature* executioner = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_EXECUTIONER)))
|
||||
if (Creature* executioner = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EXECUTIONER)))
|
||||
executioner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ public:
|
||||
_JustDied();
|
||||
|
||||
if (instance)
|
||||
if (Creature* executioner = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_EXECUTIONER)))
|
||||
if (Creature* executioner = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EXECUTIONER)))
|
||||
executioner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
}
|
||||
|
||||
|
||||
@@ -24,12 +24,7 @@ public:
|
||||
void Initialize() override
|
||||
{
|
||||
SetBossNumber(ENCOUNTER_COUNT);
|
||||
nethekurseDoor1GUID = 0;
|
||||
nethekurseDoor2GUID = 0;
|
||||
warchiefKargathGUID = 0;
|
||||
|
||||
executionerGUID = 0;
|
||||
memset(&prisonerGUID, 0, sizeof(prisonerGUID));
|
||||
TeamIdInInstance = TEAM_NEUTRAL;
|
||||
RescueTimer = 100 * MINUTE * IN_MILLISECONDS;
|
||||
}
|
||||
@@ -47,12 +42,12 @@ public:
|
||||
case GO_GRAND_WARLOCK_CHAMBER_DOOR_1:
|
||||
nethekurseDoor1GUID = go->GetGUID();
|
||||
if (GetBossState(DATA_NETHEKURSE) == DONE)
|
||||
HandleGameObject(0, true, go);
|
||||
HandleGameObject(ObjectGuid::Empty, true, go);
|
||||
break;
|
||||
case GO_GRAND_WARLOCK_CHAMBER_DOOR_2:
|
||||
nethekurseDoor2GUID = go->GetGUID();
|
||||
if (GetBossState(DATA_NETHEKURSE) == DONE)
|
||||
HandleGameObject(0, true, go);
|
||||
HandleGameObject(ObjectGuid::Empty, true, go);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -132,7 +127,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 data) const override
|
||||
ObjectGuid GetGuidData(uint32 data) const override
|
||||
{
|
||||
switch (data)
|
||||
{
|
||||
@@ -143,7 +138,8 @@ public:
|
||||
case DATA_EXECUTIONER:
|
||||
return executionerGUID;
|
||||
}
|
||||
return 0;
|
||||
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
void Update(uint32 diff) override
|
||||
@@ -223,12 +219,12 @@ public:
|
||||
}
|
||||
|
||||
protected:
|
||||
uint64 warchiefKargathGUID;
|
||||
uint64 nethekurseDoor1GUID;
|
||||
uint64 nethekurseDoor2GUID;
|
||||
ObjectGuid warchiefKargathGUID;
|
||||
ObjectGuid nethekurseDoor1GUID;
|
||||
ObjectGuid nethekurseDoor2GUID;
|
||||
|
||||
uint64 executionerGUID;
|
||||
uint64 prisonerGUID[3];
|
||||
ObjectGuid executionerGUID;
|
||||
ObjectGuid prisonerGUID[3];
|
||||
uint32 RescueTimer;
|
||||
TeamId TeamIdInInstance;
|
||||
};
|
||||
|
||||
@@ -395,7 +395,7 @@ public:
|
||||
{
|
||||
PreventHitEffect(effIndex);
|
||||
if (InstanceScript* instance = GetCaster()->GetInstanceScript())
|
||||
if (Creature* alar = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(NPC_ALAR)))
|
||||
if (Creature* alar = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(NPC_ALAR)))
|
||||
Unit::DealDamage(GetCaster(), alar, alar->CountPctFromMaxHealth(2));
|
||||
}
|
||||
|
||||
|
||||
@@ -182,7 +182,7 @@ public:
|
||||
void PrepareAdvisors()
|
||||
{
|
||||
for (uint8 i = DATA_KAEL_ADVISOR1; i <= DATA_KAEL_ADVISOR4; ++i)
|
||||
if (Creature* advisor = ObjectAccessor::GetCreature(*me, instance->GetData64(i)))
|
||||
if (Creature* advisor = ObjectAccessor::GetCreature(*me, instance->GetGuidData(i)))
|
||||
{
|
||||
advisor->Respawn(true);
|
||||
advisor->StopMovingOnCurrentPos();
|
||||
@@ -198,7 +198,7 @@ public:
|
||||
{
|
||||
for (SummonList::const_iterator i = summons.begin(); i != summons.end(); ++i)
|
||||
if (Creature* summon = ObjectAccessor::GetCreature(*me, *i))
|
||||
if (summon->GetDBTableGUIDLow())
|
||||
if (summon->GetSpawnId())
|
||||
{
|
||||
summon->SetReactState(REACT_PASSIVE);
|
||||
summon->setDeathState(JUST_RESPAWNED);
|
||||
@@ -209,11 +209,11 @@ public:
|
||||
|
||||
void SetRoomState(GOState state)
|
||||
{
|
||||
if (GameObject* window = ObjectAccessor::GetGameObject(*me, instance->GetData64(GO_BRIDGE_WINDOW)))
|
||||
if (GameObject* window = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_BRIDGE_WINDOW)))
|
||||
window->SetGoState(state);
|
||||
if (GameObject* window = ObjectAccessor::GetGameObject(*me, instance->GetData64(GO_KAEL_STATUE_RIGHT)))
|
||||
if (GameObject* window = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_KAEL_STATUE_RIGHT)))
|
||||
window->SetGoState(state);
|
||||
if (GameObject* window = ObjectAccessor::GetGameObject(*me, instance->GetData64(GO_KAEL_STATUE_LEFT)))
|
||||
if (GameObject* window = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(GO_KAEL_STATUE_LEFT)))
|
||||
window->SetGoState(state);
|
||||
}
|
||||
|
||||
@@ -273,11 +273,11 @@ public:
|
||||
if (phase == PHASE_FINAL)
|
||||
return;
|
||||
|
||||
if (summon->GetDBTableGUIDLow() && phase == PHASE_ALL_ADVISORS)
|
||||
if (summon->GetSpawnId() && phase == PHASE_ALL_ADVISORS)
|
||||
{
|
||||
for (SummonList::const_iterator i = summons.begin(); i != summons.end(); ++i)
|
||||
if (Creature* summon = ObjectAccessor::GetCreature(*me, *i))
|
||||
if (summon->GetDBTableGUIDLow() && summon->IsAlive())
|
||||
if (summon->GetSpawnId() && summon->IsAlive())
|
||||
return;
|
||||
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_PHASE71, 2000);
|
||||
@@ -434,7 +434,7 @@ public:
|
||||
for (SummonList::const_iterator i = summons.begin(); i != summons.end(); ++i)
|
||||
{
|
||||
if (Creature* summon = ObjectAccessor::GetCreature(*me, *i))
|
||||
if (!summon->GetDBTableGUIDLow())
|
||||
if (!summon->GetSpawnId())
|
||||
{
|
||||
summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
|
||||
summon->SetInCombatWithZone();
|
||||
@@ -456,7 +456,7 @@ public:
|
||||
case EVENT_PREFIGHT_PHASE63:
|
||||
for (SummonList::const_iterator i = summons.begin(); i != summons.end(); ++i)
|
||||
if (Creature* summon = ObjectAccessor::GetCreature(*me, *i))
|
||||
if (summon->GetDBTableGUIDLow())
|
||||
if (summon->GetSpawnId())
|
||||
{
|
||||
summon->SetReactState(REACT_AGGRESSIVE);
|
||||
summon->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
@@ -486,19 +486,19 @@ public:
|
||||
events.ScheduleEvent(EVENT_CHECK_HEALTH, 1000);
|
||||
break;
|
||||
case EVENT_SCENE_1:
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
me->SetFacingTo(M_PI);
|
||||
me->SetWalk(true);
|
||||
Talk(SAY_PHASE5_NUTS);
|
||||
break;
|
||||
case EVENT_SCENE_2:
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
me->CastSpell(me, SPELL_KAEL_EXPLODES1, true);
|
||||
me->CastSpell(me, SPELL_KAEL_GAINING_POWER, false);
|
||||
me->SetDisableGravity(true);
|
||||
break;
|
||||
case EVENT_SCENE_3:
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
for (uint8 i = 0; i < 2; ++i)
|
||||
if (Creature* trigger = me->SummonCreature(WORLD_TRIGGER, triggersPos[i], TEMPSUMMON_TIMED_DESPAWN, 60000))
|
||||
trigger->CastSpell(me, SPELL_NETHERBEAM1 + i, false);
|
||||
@@ -506,7 +506,7 @@ public:
|
||||
me->CastSpell(me, SPELL_GROW, true);
|
||||
break;
|
||||
case EVENT_SCENE_4:
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
me->CastSpell(me, SPELL_GROW, true);
|
||||
me->CastSpell(me, SPELL_KAEL_EXPLODES2, true);
|
||||
me->CastSpell(me, SPELL_NETHERBEAM_AURA1, true);
|
||||
@@ -515,7 +515,7 @@ public:
|
||||
trigger->CastSpell(me, SPELL_NETHERBEAM1 + i, false);
|
||||
break;
|
||||
case EVENT_SCENE_5:
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
me->CastSpell(me, SPELL_GROW, true);
|
||||
me->CastSpell(me, SPELL_KAEL_EXPLODES3, true);
|
||||
me->CastSpell(me, SPELL_NETHERBEAM_AURA2, true);
|
||||
@@ -676,7 +676,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_SPELL_NETHER_VAPOR, 0);
|
||||
me->CastSpell(me, SPELL_SHOCK_BARRIER, false);
|
||||
me->CastSpell(me, SPELL_GRAVITY_LAPSE, false);
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
me->GetMotionMaster()->Clear();
|
||||
me->StopMoving();
|
||||
Talk(SAY_GRAVITYLAPSE);
|
||||
@@ -723,7 +723,7 @@ public:
|
||||
{
|
||||
if (GetCaster()->GetTypeId() == TYPEID_UNIT)
|
||||
if (InstanceScript* instance = GetCaster()->GetInstanceScript())
|
||||
if (Creature* kael = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(NPC_KAELTHAS)))
|
||||
if (Creature* kael = ObjectAccessor::GetCreature(*GetCaster(), instance->GetGuidData(NPC_KAELTHAS)))
|
||||
kael->AI()->SummonedCreatureDies(GetCaster()->ToCreature(), nullptr);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -15,28 +15,19 @@ public:
|
||||
{
|
||||
instance_the_eye_InstanceMapScript(Map* map) : InstanceScript(map) {}
|
||||
|
||||
uint64 ThaladredTheDarkenerGUID;
|
||||
uint64 LordSanguinarGUID;
|
||||
uint64 GrandAstromancerCapernianGUID;
|
||||
uint64 MasterEngineerTelonicusGUID;
|
||||
uint64 AlarGUID;
|
||||
uint64 KaelthasGUID;
|
||||
uint64 BridgeWindowGUID;
|
||||
uint64 KaelStateRightGUID;
|
||||
uint64 KaelStateLeftGUID;
|
||||
ObjectGuid ThaladredTheDarkenerGUID;
|
||||
ObjectGuid LordSanguinarGUID;
|
||||
ObjectGuid GrandAstromancerCapernianGUID;
|
||||
ObjectGuid MasterEngineerTelonicusGUID;
|
||||
ObjectGuid AlarGUID;
|
||||
ObjectGuid KaelthasGUID;
|
||||
ObjectGuid BridgeWindowGUID;
|
||||
ObjectGuid KaelStateRightGUID;
|
||||
ObjectGuid KaelStateLeftGUID;
|
||||
|
||||
void Initialize() override
|
||||
{
|
||||
SetBossNumber(MAX_ENCOUNTER);
|
||||
AlarGUID = 0;
|
||||
KaelthasGUID = 0;
|
||||
ThaladredTheDarkenerGUID = 0;
|
||||
LordSanguinarGUID = 0;
|
||||
GrandAstromancerCapernianGUID = 0;
|
||||
MasterEngineerTelonicusGUID = 0;
|
||||
BridgeWindowGUID = 0;
|
||||
KaelStateRightGUID = 0;
|
||||
KaelStateLeftGUID = 0;
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature* creature) override
|
||||
@@ -80,7 +71,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 identifier) const override
|
||||
ObjectGuid GetGuidData(uint32 identifier) const override
|
||||
{
|
||||
switch (identifier)
|
||||
{
|
||||
@@ -103,7 +94,8 @@ public:
|
||||
case DATA_KAEL_ADVISOR4:
|
||||
return MasterEngineerTelonicusGUID;
|
||||
}
|
||||
return 0;
|
||||
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
std::string GetSaveData() override
|
||||
|
||||
@@ -26,7 +26,6 @@ public:
|
||||
SetBossNumber(MAX_ENCOUNTER);
|
||||
LoadDoorData(doorData);
|
||||
|
||||
_pathaleonGUID = 0;
|
||||
_passageEncounter = 0;
|
||||
_passageTimer = 0;
|
||||
_passageGUIDs.clear();
|
||||
@@ -237,10 +236,10 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
uint64 _pathaleonGUID;
|
||||
ObjectGuid _pathaleonGUID;
|
||||
uint32 _passageTimer;
|
||||
uint32 _passageEncounter;
|
||||
std::set<uint64> _passageGUIDs;
|
||||
GuidSet _passageGUIDs;
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
|
||||
@@ -356,13 +356,13 @@ public:
|
||||
me->RemoveFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
|
||||
me->CastSpell((Unit*)nullptr, SPELL_TARGET_OMEGA, false);
|
||||
instance->HandleGameObject(instance->GetData64(DATA_WARDENS_SHIELD), true);
|
||||
instance->HandleGameObject(instance->GetGuidData(DATA_WARDENS_SHIELD), true);
|
||||
instance->SetBossState(DATA_WARDEN_MELLICHAR, NOT_STARTED);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* attacker, uint32& damage, DamageEffectType, SpellSchoolMask) override
|
||||
{
|
||||
if (attacker && IS_PLAYER_GUID(attacker->GetCharmerOrOwnerOrOwnGUID()) && damage > 0 && !me->isActiveObject())
|
||||
if (attacker && attacker->GetCharmerOrOwnerOrOwnGUID().IsPlayer() && damage > 0 && !me->isActiveObject())
|
||||
{
|
||||
me->setActive(true);
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
@@ -418,7 +418,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO2, 1400);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO2:
|
||||
instance->HandleGameObject(instance->GetData64(DATA_WARDENS_SHIELD), false);
|
||||
instance->HandleGameObject(instance->GetGuidData(DATA_WARDENS_SHIELD), false);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO3, 20000);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO3:
|
||||
@@ -537,7 +537,7 @@ public:
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO28, 5000);
|
||||
break;
|
||||
case EVENT_WARDEN_INTRO28:
|
||||
instance->HandleGameObject(instance->GetData64(DATA_WARDENS_SHIELD), true);
|
||||
instance->HandleGameObject(instance->GetGuidData(DATA_WARDENS_SHIELD), true);
|
||||
if (Creature* creature = summons.GetCreatureWithEntry(NPC_HARBINGER_SKYRISS))
|
||||
creature->CastSpell((Unit*)nullptr, SPELL_MIND_REND, false);
|
||||
events.ScheduleEvent(EVENT_WARDEN_INTRO29, 4000);
|
||||
|
||||
@@ -68,7 +68,7 @@ public:
|
||||
_JustDied();
|
||||
Talk(SAY_DEATH);
|
||||
|
||||
if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SOCCOTHRATES)))
|
||||
if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SOCCOTHRATES)))
|
||||
if (soccothrates->IsAlive() && !soccothrates->IsInCombat())
|
||||
soccothrates->AI()->SetData(1, 1);
|
||||
}
|
||||
@@ -137,14 +137,14 @@ public:
|
||||
events.ScheduleEvent(EVENT_SHADOW_WAVE, urand(11000, 16000));
|
||||
break;
|
||||
case EVENT_ME_FIRST:
|
||||
if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SOCCOTHRATES)))
|
||||
if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SOCCOTHRATES)))
|
||||
if (soccothrates->IsAlive() && !soccothrates->IsInCombat())
|
||||
soccothrates->AI()->Talk(SAY_AGGRO_DALLIAH_FIRST);
|
||||
break;
|
||||
case EVENT_CHECK_HEALTH:
|
||||
if (HealthBelowPct(25))
|
||||
{
|
||||
if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SOCCOTHRATES)))
|
||||
if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SOCCOTHRATES)))
|
||||
soccothrates->AI()->Talk(SAY_DALLIAH_25_PERCENT);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -89,7 +89,7 @@ public:
|
||||
_JustDied();
|
||||
Talk(SAY_DEATH);
|
||||
|
||||
if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH)))
|
||||
if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH)))
|
||||
if (dalliah->IsAlive() && !dalliah->IsInCombat())
|
||||
dalliah->AI()->SetData(1, 1);
|
||||
}
|
||||
@@ -133,7 +133,7 @@ public:
|
||||
switch (events2.ExecuteEvent())
|
||||
{
|
||||
case EVENT_PREFIGHT_1:
|
||||
if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH)))
|
||||
if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH)))
|
||||
dalliah->AI()->Talk(SAY_DALLIAH_CONVO_1);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_2, 3000);
|
||||
break;
|
||||
@@ -142,7 +142,7 @@ public:
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_3, 3000);
|
||||
break;
|
||||
case EVENT_PREFIGHT_3:
|
||||
if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH)))
|
||||
if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH)))
|
||||
dalliah->AI()->Talk(SAY_DALLIAH_CONVO_2);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_4, 6000);
|
||||
break;
|
||||
@@ -151,7 +151,7 @@ public:
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_5, 2000);
|
||||
break;
|
||||
case EVENT_PREFIGHT_5:
|
||||
if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH)))
|
||||
if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH)))
|
||||
dalliah->AI()->Talk(SAY_DALLIAH_CONVO_3);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_6, 3000);
|
||||
break;
|
||||
@@ -160,7 +160,7 @@ public:
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_7, 2000);
|
||||
break;
|
||||
case EVENT_PREFIGHT_7:
|
||||
if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH)))
|
||||
if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH)))
|
||||
dalliah->GetMotionMaster()->MovePoint(0, 118.6048f, 96.84852f, 22.44115f);
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_8, 4000);
|
||||
break;
|
||||
@@ -169,7 +169,7 @@ public:
|
||||
events2.ScheduleEvent(EVENT_PREFIGHT_9, 4000);
|
||||
break;
|
||||
case EVENT_PREFIGHT_9:
|
||||
if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH)))
|
||||
if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH)))
|
||||
{
|
||||
dalliah->SetFacingToObject(me);
|
||||
dalliah->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
|
||||
@@ -217,14 +217,14 @@ public:
|
||||
me->CastSpell(me, SPELL_FELFIRE, true);
|
||||
break;
|
||||
case EVENT_ME_FIRST:
|
||||
if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH)))
|
||||
if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH)))
|
||||
if (dalliah->IsAlive() && !dalliah->IsInCombat())
|
||||
dalliah->AI()->Talk(SAY_AGGRO_SOCCOTHRATES_FIRST);
|
||||
break;
|
||||
case EVENT_CHECK_HEALTH:
|
||||
if (HealthBelowPct(25))
|
||||
{
|
||||
if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH)))
|
||||
if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH)))
|
||||
dalliah->AI()->Talk(SAY_SOCCOTHRATES_25_PERCENT);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -24,13 +24,6 @@ public:
|
||||
{
|
||||
SetBossNumber(MAX_ENCOUTER);
|
||||
LoadDoorData(doorData);
|
||||
|
||||
DalliahGUID = 0;
|
||||
SoccothratesGUID = 0;
|
||||
MellicharGUID = 0;
|
||||
WardensShieldGUID = 0;
|
||||
|
||||
memset(StasisPodGUIDs, 0, 5 * sizeof(uint64));
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature* creature) override
|
||||
@@ -115,7 +108,7 @@ public:
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint64 GetData64(uint32 data) const override
|
||||
ObjectGuid GetGuidData(uint32 data) const override
|
||||
{
|
||||
switch (data)
|
||||
{
|
||||
@@ -126,7 +119,8 @@ public:
|
||||
case DATA_WARDENS_SHIELD:
|
||||
return WardensShieldGUID;
|
||||
}
|
||||
return 0;
|
||||
|
||||
return ObjectGuid::Empty;
|
||||
}
|
||||
|
||||
bool SetBossState(uint32 type, EncounterState state) override
|
||||
@@ -191,11 +185,11 @@ public:
|
||||
}
|
||||
|
||||
protected:
|
||||
uint64 DalliahGUID;
|
||||
uint64 SoccothratesGUID;
|
||||
uint64 StasisPodGUIDs[5];
|
||||
uint64 MellicharGUID;
|
||||
uint64 WardensShieldGUID;
|
||||
ObjectGuid DalliahGUID;
|
||||
ObjectGuid SoccothratesGUID;
|
||||
ObjectGuid StasisPodGUIDs[5];
|
||||
ObjectGuid MellicharGUID;
|
||||
ObjectGuid WardensShieldGUID;
|
||||
};
|
||||
|
||||
InstanceScript* GetInstanceScript(InstanceMap* map) const override
|
||||
|
||||
@@ -105,8 +105,8 @@ public:
|
||||
|
||||
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
for (std::set<uint64>::const_iterator itr = _falconSet.begin(); itr != _falconSet.end(); ++itr)
|
||||
if (Creature* falcon = ObjectAccessor::GetCreature(*GetUnitOwner(), *itr))
|
||||
for (ObjectGuid const guid : _falconSet)
|
||||
if (Creature* falcon = ObjectAccessor::GetCreature(*GetUnitOwner(), guid))
|
||||
{
|
||||
falcon->TauntFadeOut(GetUnitOwner());
|
||||
falcon->AddThreat(GetUnitOwner(), -10000000.0f);
|
||||
@@ -120,7 +120,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
std::set<uint64> _falconSet;
|
||||
GuidSet _falconSet;
|
||||
};
|
||||
|
||||
AuraScript* GetAuraScript() const override
|
||||
|
||||
@@ -81,7 +81,7 @@ public:
|
||||
void MoveInLineOfSight(Unit* who) override
|
||||
{
|
||||
if (who && who->GetTypeId() == TYPEID_PLAYER && me->IsValidAttackTarget(who))
|
||||
if (who->HasAura(SPELL_MARK_DEATH, 0) && !who->HasAura(27827)) // Spirit of Redemption
|
||||
if (who->HasAura(SPELL_MARK_DEATH) && !who->HasAura(27827)) // Spirit of Redemption
|
||||
who->CastSpell(who, SPELL_AURA_DEATH, 1);
|
||||
}
|
||||
|
||||
|
||||
@@ -64,8 +64,8 @@ public:
|
||||
|
||||
EventMap events;
|
||||
bool PartyTime;
|
||||
uint64 PlayerGUID;
|
||||
uint64 CannonGUID;
|
||||
ObjectGuid PlayerGUID;
|
||||
ObjectGuid CannonGUID;
|
||||
uint8 count;
|
||||
|
||||
void Reset() override
|
||||
@@ -77,8 +77,8 @@ public:
|
||||
void Initialize()
|
||||
{
|
||||
PartyTime = false;
|
||||
PlayerGUID = 0;
|
||||
CannonGUID = 0;
|
||||
PlayerGUID.Clear();
|
||||
CannonGUID.Clear();
|
||||
count = 0;
|
||||
}
|
||||
|
||||
@@ -106,9 +106,9 @@ public:
|
||||
if (Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID))
|
||||
{
|
||||
if (GetClosestCreatureWithEntry(me, NPC_SOUTH_GATE, 200.0f))
|
||||
player->KilledMonsterCredit(NPC_SOUTH_GATE_CREDIT, TRIGGERED_NONE);
|
||||
player->KilledMonsterCredit(NPC_SOUTH_GATE_CREDIT);
|
||||
else if (GetClosestCreatureWithEntry(me, NPC_NORTH_GATE, 200.0f))
|
||||
player->KilledMonsterCredit(NPC_NORTH_GATE_CREDIT, TRIGGERED_NONE);
|
||||
player->KilledMonsterCredit(NPC_NORTH_GATE_CREDIT);
|
||||
// complete quest part
|
||||
if (Creature* bunny = GetClosestCreatureWithEntry(me, NPC_EXPLOSION_BUNNY, 200.0f))
|
||||
bunny->CastSpell(nullptr, SPELL_EXPLOSION, TRIGGERED_NONE);
|
||||
@@ -560,7 +560,7 @@ public:
|
||||
uint8 gameLevel;
|
||||
uint8 fails;
|
||||
uint8 gameTicks;
|
||||
uint64 playerGUID;
|
||||
ObjectGuid playerGUID;
|
||||
uint32 clusterIds[SIMON_MAX_COLORS];
|
||||
float zCoordCorrection;
|
||||
float searchDistance;
|
||||
@@ -670,7 +670,7 @@ public:
|
||||
}
|
||||
|
||||
// Used for getting involved player guid. Parameter id is used for defining if is a large(Monument) or small(Relic) node
|
||||
void SetGUID(uint64 guid, int32 id) override
|
||||
void SetGUID(ObjectGuid guid, int32 id) override
|
||||
{
|
||||
me->SetCanFly(true);
|
||||
|
||||
@@ -1073,7 +1073,7 @@ public:
|
||||
{
|
||||
npc_oscillating_frequency_scanner_master_bunnyAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
playerGuid = 0;
|
||||
playerGuid.Clear();
|
||||
timer = 500;
|
||||
}
|
||||
|
||||
@@ -1112,7 +1112,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
uint64 playerGuid;
|
||||
ObjectGuid playerGuid;
|
||||
uint32 timer;
|
||||
};
|
||||
|
||||
|
||||
@@ -336,7 +336,7 @@ public:
|
||||
void Reset() override
|
||||
{
|
||||
checkTimer = 5000; //check for creature every 5 sec
|
||||
helboarGUID = 0;
|
||||
helboarGUID.Clear();
|
||||
}
|
||||
|
||||
void MovementInform(uint32 type, uint32 id) override
|
||||
@@ -378,7 +378,7 @@ public:
|
||||
|
||||
private:
|
||||
uint32 checkTimer;
|
||||
uint64 helboarGUID;
|
||||
ObjectGuid helboarGUID;
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
|
||||
@@ -287,7 +287,7 @@ public:
|
||||
{
|
||||
corki->GetMotionMaster()->MovePoint(1, go->GetPositionX() + 5, go->GetPositionY(), go->GetPositionZ());
|
||||
if (player)
|
||||
player->KilledMonsterCredit(NPC_CORKI_CREDIT_1, 0);
|
||||
player->KilledMonsterCredit(NPC_CORKI_CREDIT_1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -297,7 +297,7 @@ public:
|
||||
{
|
||||
corki->GetMotionMaster()->MovePoint(1, go->GetPositionX() - 5, go->GetPositionY(), go->GetPositionZ());
|
||||
if (player)
|
||||
player->KilledMonsterCredit(NPC_CORKI_2, 0);
|
||||
player->KilledMonsterCredit(NPC_CORKI_2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -307,7 +307,7 @@ public:
|
||||
{
|
||||
corki->GetMotionMaster()->MovePoint(1, go->GetPositionX() + 4, go->GetPositionY(), go->GetPositionZ());
|
||||
if (player)
|
||||
player->KilledMonsterCredit(NPC_CORKI_CREDIT_3, 0);
|
||||
player->KilledMonsterCredit(NPC_CORKI_CREDIT_3);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -425,7 +425,7 @@ public:
|
||||
uint32 HealTimer;
|
||||
uint32 FrostShockTimer;
|
||||
|
||||
void SetGUID(uint64 guid, int32 /*questId*/) override
|
||||
void SetGUID(ObjectGuid guid, int32 /*questId*/) override
|
||||
{
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
Start(true, false, guid);
|
||||
@@ -583,7 +583,7 @@ public:
|
||||
|
||||
if (Creature* prisoner = go->FindNearestCreature(NPC_MAGHAR_PRISONER, 5.0f))
|
||||
{
|
||||
player->KilledMonsterCredit(NPC_MAGHAR_PRISONER, 0);
|
||||
player->KilledMonsterCredit(NPC_MAGHAR_PRISONER);
|
||||
|
||||
prisoner->AI()->Talk(SAY_FREE, player);
|
||||
prisoner->DespawnOrUnsummon(6000);
|
||||
|
||||
@@ -1040,8 +1040,7 @@ public:
|
||||
_events.ScheduleEvent(EVENT_SPELL_BURNING_LIGHT, 4000);
|
||||
break;
|
||||
case EVENT_SPELL_CONSECRATION:
|
||||
if (me->FindNearestCreature(me->GetVictim()->GetGUID(), 10.0f, true))
|
||||
me->CastSpell(me, CONSECRATION, false);
|
||||
me->CastSpell(me->GetVictim(), CONSECRATION, false);
|
||||
_events.ScheduleEvent(EVENT_SPELL_CONSECRATION, 14000);
|
||||
break;
|
||||
}
|
||||
@@ -1098,8 +1097,8 @@ public:
|
||||
{
|
||||
if (!summons.empty())
|
||||
{
|
||||
for (std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr)
|
||||
if (Creature* cr = ObjectAccessor::GetCreature(*me, *itr))
|
||||
for (ObjectGuid guid : summons)
|
||||
if (Creature* cr = ObjectAccessor::GetCreature(*me, guid))
|
||||
{
|
||||
float x, y, z, o;
|
||||
cr->GetRespawnPosition(x, y, z, &o);
|
||||
@@ -1126,7 +1125,7 @@ public:
|
||||
npc_escortAI::MoveInLineOfSight(who);
|
||||
}
|
||||
|
||||
void SetGUID(uint64 playerGUID, int32 type) override
|
||||
void SetGUID(ObjectGuid playerGUID, int32 type) override
|
||||
{
|
||||
if (type == DATA_START_ENCOUNTER)
|
||||
{
|
||||
@@ -1175,7 +1174,7 @@ public:
|
||||
void SummonsAction(Unit* who)
|
||||
{
|
||||
float i = 0;
|
||||
for (std::list<uint64>::iterator itr = summons.begin(); itr != summons.end(); ++itr, i += 1.0f)
|
||||
for (GuidList::iterator itr = summons.begin(); itr != summons.end(); ++itr, i += 1.0f)
|
||||
if (Creature* cr = ObjectAccessor::GetCreature(*me, *itr))
|
||||
{
|
||||
if (who == nullptr)
|
||||
@@ -1280,7 +1279,7 @@ public:
|
||||
if (uiAction == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
{
|
||||
creature->AI()->SetGUID(player->GetGUID(), DATA_START_ENCOUNTER);
|
||||
player->KilledMonsterCredit(creature->GetEntry(), 0);
|
||||
player->KilledMonsterCredit(creature->GetEntry());
|
||||
}
|
||||
else if (uiAction == GOSSIP_ACTION_INFO_DEF + 2)
|
||||
{
|
||||
@@ -1363,9 +1362,9 @@ public:
|
||||
{
|
||||
npc_commander_dawnforgeAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
uint64 PlayerGUID;
|
||||
uint64 ardonisGUID;
|
||||
uint64 pathaleonGUID;
|
||||
ObjectGuid PlayerGUID;
|
||||
ObjectGuid ardonisGUID;
|
||||
ObjectGuid pathaleonGUID;
|
||||
|
||||
uint32 Phase;
|
||||
uint32 PhaseSubphase;
|
||||
@@ -1374,9 +1373,9 @@ public:
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
PlayerGUID = 0;
|
||||
ardonisGUID = 0;
|
||||
pathaleonGUID = 0;
|
||||
PlayerGUID.Clear();
|
||||
ardonisGUID.Clear();
|
||||
pathaleonGUID.Clear();
|
||||
|
||||
Phase = 1;
|
||||
PhaseSubphase = 0;
|
||||
@@ -1698,7 +1697,7 @@ public:
|
||||
bool Drained;
|
||||
uint8 WeakPercent;
|
||||
|
||||
uint64 PlayerGUID;
|
||||
ObjectGuid PlayerGUID;
|
||||
|
||||
uint32 ManaBurnTimer;
|
||||
|
||||
@@ -1709,7 +1708,7 @@ public:
|
||||
Drained = false;
|
||||
WeakPercent = 25 + (rand() % 16); // 25-40
|
||||
|
||||
PlayerGUID = 0;
|
||||
PlayerGUID.Clear();
|
||||
|
||||
ManaBurnTimer = 5000 + (rand() % 3 * 1000); // 5-8 sec cd
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ public:
|
||||
}
|
||||
|
||||
go->SetLootState(GO_JUST_DEACTIVATED);
|
||||
charmer->KilledMonsterCredit(21959, 0);
|
||||
charmer->KilledMonsterCredit(21959);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,7 +99,7 @@ public:
|
||||
{
|
||||
if (Player* player = GetTarget()->ToPlayer())
|
||||
{
|
||||
player->KilledMonsterCredit(21502, 0);
|
||||
player->KilledMonsterCredit(21502);
|
||||
player->SetControlled(false, UNIT_STATE_STUNNED);
|
||||
}
|
||||
}
|
||||
@@ -197,7 +197,7 @@ public:
|
||||
|
||||
private:
|
||||
EventMap events;
|
||||
uint64 infernalGUID;
|
||||
ObjectGuid infernalGUID;
|
||||
float ground;
|
||||
};
|
||||
|
||||
@@ -259,7 +259,7 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
uint64 casterGUID;
|
||||
ObjectGuid casterGUID;
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
@@ -301,7 +301,7 @@ public:
|
||||
{
|
||||
npc_mature_netherwing_drakeAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
uint64 uiPlayerGUID;
|
||||
ObjectGuid uiPlayerGUID;
|
||||
|
||||
bool bCanEat;
|
||||
bool bIsEating;
|
||||
@@ -311,7 +311,7 @@ public:
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
uiPlayerGUID = 0;
|
||||
uiPlayerGUID.Clear();
|
||||
|
||||
bCanEat = false;
|
||||
bIsEating = false;
|
||||
@@ -380,7 +380,7 @@ public:
|
||||
|
||||
if (Player* player = ObjectAccessor::GetPlayer(*me, uiPlayerGUID))
|
||||
{
|
||||
player->KilledMonsterCredit(NPC_EVENT_PINGER, 0);
|
||||
player->KilledMonsterCredit(NPC_EVENT_PINGER);
|
||||
|
||||
if (GameObject* go = player->FindNearestGameObject(GO_CARCASS, 10))
|
||||
go->Delete();
|
||||
@@ -444,12 +444,12 @@ public:
|
||||
{
|
||||
npc_enslaved_netherwing_drakeAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
PlayerGUID = 0;
|
||||
PlayerGUID.Clear();
|
||||
Tapped = false;
|
||||
Reset();
|
||||
}
|
||||
|
||||
uint64 PlayerGUID;
|
||||
ObjectGuid PlayerGUID;
|
||||
uint32 FlyTimer;
|
||||
bool Tapped;
|
||||
|
||||
@@ -590,13 +590,13 @@ public:
|
||||
npc_dragonmaw_peonAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
EventMap events;
|
||||
uint64 PlayerGUID;
|
||||
ObjectGuid PlayerGUID;
|
||||
bool Tapped;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
events.Reset();
|
||||
PlayerGUID = 0;
|
||||
PlayerGUID.Clear();
|
||||
Tapped = false;
|
||||
}
|
||||
|
||||
@@ -639,7 +639,7 @@ public:
|
||||
{
|
||||
Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID);
|
||||
if (player && player->GetQuestStatus(QUEST_A_SLOW_DEATH) == QUEST_STATUS_INCOMPLETE)
|
||||
player->KilledMonsterCredit(DRAGONMAW_PEON_KILL_CREDIT, 0);
|
||||
player->KilledMonsterCredit(DRAGONMAW_PEON_KILL_CREDIT);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1089,8 +1089,8 @@ public:
|
||||
|
||||
uint8 AnimationCount;
|
||||
|
||||
uint64 LordIllidanGUID;
|
||||
uint64 AggroTargetGUID;
|
||||
ObjectGuid LordIllidanGUID;
|
||||
ObjectGuid AggroTargetGUID;
|
||||
|
||||
bool Timers;
|
||||
|
||||
@@ -1098,13 +1098,13 @@ public:
|
||||
{
|
||||
AnimationTimer = 4000;
|
||||
AnimationCount = 0;
|
||||
LordIllidanGUID = 0;
|
||||
AggroTargetGUID = 0;
|
||||
LordIllidanGUID.Clear();
|
||||
AggroTargetGUID.Clear();
|
||||
Timers = false;
|
||||
|
||||
me->AddUnitState(UNIT_STATE_ROOT);
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->SetTarget(0);
|
||||
me->SetTarget();
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) override { }
|
||||
@@ -1245,7 +1245,7 @@ public:
|
||||
{
|
||||
npc_lord_illidan_stormrageAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
uint64 PlayerGUID;
|
||||
ObjectGuid PlayerGUID;
|
||||
|
||||
uint32 WaveTimer;
|
||||
uint32 AnnounceTimer;
|
||||
@@ -1259,7 +1259,7 @@ public:
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
PlayerGUID = 0;
|
||||
PlayerGUID.Clear();
|
||||
|
||||
WaveTimer = 10000;
|
||||
AnnounceTimer = 7000;
|
||||
@@ -1390,13 +1390,13 @@ public:
|
||||
{
|
||||
npc_illidari_spawnAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
|
||||
uint64 LordIllidanGUID;
|
||||
ObjectGuid LordIllidanGUID;
|
||||
uint32 SpellTimer1, SpellTimer2, SpellTimer3;
|
||||
bool Timers;
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
LordIllidanGUID = 0;
|
||||
LordIllidanGUID.Clear();
|
||||
Timers = false;
|
||||
}
|
||||
|
||||
@@ -1706,7 +1706,7 @@ public:
|
||||
|
||||
if (Unit* owner = totemOspirits->GetOwner())
|
||||
if (Player* player = owner->ToPlayer())
|
||||
player->KilledMonsterCredit(credit, 0);
|
||||
player->KilledMonsterCredit(credit);
|
||||
DoCast(totemOspirits, SPELL_SOUL_CAPTURED);
|
||||
}
|
||||
}
|
||||
@@ -1739,7 +1739,7 @@ public:
|
||||
void Reset() override
|
||||
{
|
||||
tapped = false;
|
||||
tuberGUID = 0;
|
||||
tuberGUID.Clear();
|
||||
resetTimer = 60000;
|
||||
}
|
||||
|
||||
@@ -1794,7 +1794,7 @@ public:
|
||||
}
|
||||
private:
|
||||
bool tapped;
|
||||
uint64 tuberGUID;
|
||||
ObjectGuid tuberGUID;
|
||||
uint32 resetTimer;
|
||||
};
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ public:
|
||||
if (creature->AI()->GetData(1))
|
||||
{
|
||||
creature->CastSpell(player, SPELL_MARK_OF_BITE, true);
|
||||
player->KilledMonsterCredit(creature->GetEntry(), 0);
|
||||
player->KilledMonsterCredit(creature->GetEntry());
|
||||
creature->DespawnOrUnsummon(1000);
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user