diff options
author | lee <leelf_00@126.com> | 2022-09-11 23:33:25 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-11 17:33:25 +0200 |
commit | fea9de5b1707a268e8a3131b5707aa908866257c (patch) | |
tree | e773c70385fab95ba3de43744ceaf067a03081b6 /src | |
parent | a55a566602c323fc6950994d87c55552531e8688 (diff) |
Scripts/Battle for Mount Hyjal:Fix wrong npc text,trash movment,archimode last phase (#27910)
* Fix wrong npc text,trash movment,archimode last phase
1.Fix wrong npc text for Jania,Thrall,Tyrande.
2.Change Hyjal trash movement from walk to run.
3.Fix archimode drain worldtree event.
4.Fix archimode below 10% hp phase.Case Protection of elune on player.
* fix code style
fix code style
* fix wrong type
* Revert "fix wrong type"
This reverts commit 204c45f7d76cb8f7e3a444db1d7bebb341ad931c.
* fix wrong type
* Update boss_archimonde.cpp
* add missing Creature Text
* fix code style
* Update hyjalAI.cpp
* do some work to prevent respawn mobs in combat
* remove dup yell at alliance base
* fix code style
* fix SPELL_METEOR unvisiable when spawn Giant Infernal
* change to DoCastSelf
* hide archimonde doomfire spirit visual
* fix code style
* fix SQL warning when startup server
* fix code style
* move SetRun out of constructor
* remove target list
* move setRun
* fix code style
* Change npctext ID to high ID.Fill text into Creature Text
Change npctext ID to high ID.
Fill text into Creature Text.
* Remove Magic Numbers
* change npctext high ID
* fix change high npc_text id in code
* remove setCanFly,add flight state to db
* change npc_text id
* change npc yell condition after second boss dead
* update npc_text IDs taken from sniff file.
Updated IDs taken from sniff file provided by Aokromes.
* remove MoveInLineOfSight
* move protection_of_elune immuity effect to spell script
* move worldtree channel target to db
Move worldtree channel target to db
Fix wrong position and movement_type of worldtree channel target
* update wrong npc_text IDs in code
* remove CastProtectionOfElune
* remove SetVisible(false),change flags_txtra of doomfire(18095) and doomfire_spirit(18104)
* update sql
* fix compile error
* revent spawntime,move guards say slay and say death to db
* Move code from Initialize() to Reset()
Move code from Initialize() to Reset()
Move code from Initialize() to Reset()
Update boss_archimonde.cpp
* remove unneeeary ->AI()
* Update hyjal_trash.cpp
* Update src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp
* Update src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp
* Rename 9999_99_99_world.sql to 2022_09_11_00_world.sql
Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com>
Diffstat (limited to 'src')
6 files changed, 149 insertions, 31 deletions
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp index 319d5b26823..f86a813e490 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp @@ -53,6 +53,7 @@ enum Spells SPELL_DRAIN_WORLD_TREE_TRIGGERED = 39141, SPELL_FINGER_OF_DEATH = 31984, + SPELL_FINGER_OF_DEATH_LAST_PHASE = 32111, SPELL_HAND_OF_DEATH = 35354, SPELL_AIR_BURST = 32014, SPELL_GRIP_OF_THE_LEGION = 31972, @@ -78,7 +79,9 @@ enum Events EVENT_AIR_BURST, EVENT_DOOMFIRE, EVENT_DISTANCE_CHECK, // This checks if he's too close to the World Tree (75 yards from a point on the tree), if true then he will enrage - EVENT_SUMMON_WHISP + EVENT_SUMMON_WHISP, + EVENT_PROTECTION_OF_ELUNE, + EVENT_FINGER_OF_DEATH_LAST_PHASE }; enum Summons @@ -94,6 +97,8 @@ enum Actions ACTION_CHANNEL_WORLD_TREE }; +Position const NordrassilLoc = { 5503.713f, -3523.436f, 1608.781f, 0.0f }; + class npc_ancient_wisp : public CreatureScript { public: @@ -275,7 +280,6 @@ public: void Initialize() { - DoomfireSpiritGUID.Clear(); SoulChargeCount = 0; WispCount = 0; // When ~30 wisps are summoned, Archimonde dies @@ -289,18 +293,25 @@ public: void InitializeAI() override { BossAI::InitializeAI(); - DoAction(ACTION_CHANNEL_WORLD_TREE); } void Reset() override { Initialize(); _Reset(); - me->RemoveAllAuras(); // Reset Soul Charge auras. + DoomfireSpiritGUID.Clear(); + summons.DespawnAll(); + WorldtreeTragetGUID = instance->GetGuidData(DATA_CHANNEL_TARGET); + if (Creature* WorldtreeTraget = ObjectAccessor::GetCreature(*me, WorldtreeTragetGUID)) + { + DoCast(WorldtreeTraget, SPELL_DRAIN_WORLD_TREE); + } + me->RemoveAllAuras(); // Reset Soul Charge auras. } void JustEngagedWith(Unit* who) override { + me->InterruptSpell(CURRENT_CHANNELED_SPELL); Talk(SAY_AGGRO); BossAI::JustEngagedWith(who); events.ScheduleEvent(EVENT_FEAR, 42s); @@ -387,13 +398,27 @@ public: DoAction(ACTION_ENRAGE); events.ScheduleEvent(EVENT_DISTANCE_CHECK, 5s); break; + case EVENT_PROTECTION_OF_ELUNE: // hp below 10% only cast finger of death + events.Reset(); + events.ScheduleEvent(EVENT_HAND_OF_DEATH, 1s); + events.ScheduleEvent(EVENT_FINGER_OF_DEATH_LAST_PHASE, 1s); + events.ScheduleEvent(EVENT_SUMMON_WHISP, 1s); + DoCastAOE(SPELL_PROTECTION_OF_ELUNE); + break; case EVENT_SUMMON_WHISP: DoSpawnCreature(NPC_ANCIENT_WISP, float(rand32() % 40), float(rand32() % 40), 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15s); ++WispCount; if (WispCount >= 30) + { me->KillSelf(); + return; + } events.ScheduleEvent(EVENT_SUMMON_WHISP, 1500ms); break; + case EVENT_FINGER_OF_DEATH_LAST_PHASE: + DoCast(SelectTarget(SelectTargetMethod::Random, 0), SPELL_FINGER_OF_DEATH_LAST_PHASE); + events.ScheduleEvent(EVENT_FINGER_OF_DEATH_LAST_PHASE, 1s); + break; default: break; } @@ -410,11 +435,9 @@ public: { me->GetMotionMaster()->Clear(); me->GetMotionMaster()->MoveIdle(); - // All members of raid must get this buff - DoCastAOE(SPELL_PROTECTION_OF_ELUNE, true); + events.ScheduleEvent(EVENT_PROTECTION_OF_ELUNE, 1ms); HasProtected = true; - events.ScheduleEvent(EVENT_SUMMON_WHISP, 1500ms); } } } @@ -457,6 +480,7 @@ public: void JustDied(Unit* /*killer*/) override { Talk(SAY_DEATH); + summons.DespawnAll(); _JustDied(); // @todo: remove this when instance script gets updated, kept for compatibility only instance->SetData(DATA_ARCHIMONDE, DONE); @@ -517,7 +541,6 @@ public: me->SummonCreature(NPC_DOOMFIRE_SPIRIT, target->GetPositionX()+15.0f, target->GetPositionY()+15.0f, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 27s); - me->SummonCreature(NPC_DOOMFIRE, target->GetPositionX()-15.0f, target->GetPositionY()-15.0f, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 27s); @@ -525,6 +548,7 @@ public: private: ObjectGuid DoomfireSpiritGUID; + ObjectGuid WorldtreeTragetGUID; uint8 SoulChargeCount; uint8 WispCount; uint32 _chargeSpell; @@ -572,6 +596,44 @@ class spell_archimonde_drain_world_tree_dummy : public SpellScriptLoader } }; +// Protection of Elune 38528 +class spell_protection_of_elune : public AuraScript +{ + PrepareAuraScript(spell_protection_of_elune); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo( + { + SPELL_PROTECTION_OF_ELUNE + }); + } + + void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + Unit* target = GetTarget(); + target->ApplySpellImmune(SPELL_HAND_OF_DEATH, IMMUNITY_ID, SPELL_HAND_OF_DEATH, true); + target->ApplySpellImmune(SPELL_FINGER_OF_DEATH, IMMUNITY_ID, SPELL_FINGER_OF_DEATH, true); + target->ApplySpellImmune(SPELL_FINGER_OF_DEATH_LAST_PHASE, IMMUNITY_ID, SPELL_FINGER_OF_DEATH_LAST_PHASE, true); + target->ApplySpellImmune(0, IMMUNITY_ID, SPELL_FINGER_OF_DEATH_LAST_PHASE, true); + } + + void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + Unit* target = GetTarget(); + target->ApplySpellImmune(SPELL_HAND_OF_DEATH, IMMUNITY_ID, SPELL_HAND_OF_DEATH, false); + target->ApplySpellImmune(SPELL_FINGER_OF_DEATH, IMMUNITY_ID, SPELL_FINGER_OF_DEATH, false); + target->ApplySpellImmune(SPELL_FINGER_OF_DEATH_LAST_PHASE, IMMUNITY_ID, SPELL_FINGER_OF_DEATH_LAST_PHASE, false); + target->ApplySpellImmune(0, IMMUNITY_ID, SPELL_FINGER_OF_DEATH_LAST_PHASE, false); + } + + void Register() override + { + AfterEffectApply += AuraEffectApplyFn(spell_protection_of_elune::HandleEffectApply, EFFECT_0, SPELL_AURA_SCHOOL_IMMUNITY, AURA_EFFECT_HANDLE_REAL); + AfterEffectRemove += AuraEffectRemoveFn(spell_protection_of_elune::HandleEffectRemove, EFFECT_0, SPELL_AURA_SCHOOL_IMMUNITY, AURA_EFFECT_HANDLE_REAL); + } +}; + void AddSC_boss_archimonde() { new boss_archimonde(); @@ -579,4 +641,5 @@ void AddSC_boss_archimonde() new npc_doomfire_targetting(); new npc_ancient_wisp(); new spell_archimonde_drain_world_tree_dummy(); + RegisterSpellScript(spell_protection_of_elune); } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp index 8070906e295..3b8a5ebcc1a 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal.cpp @@ -53,6 +53,11 @@ enum GOSSIPS GOSSIP_ITEM_TYRANDE_OID = 0 }; +enum NPCTEXTS +{ + JAINA_RETREAT_ALLIANCE_BASE = 5 +}; + #define ITEM_TEAR_OF_GODDESS 24494 #define GOSSIP_ITEM_GM1 "[GM] Toggle Debug Timers" @@ -94,6 +99,7 @@ class npc_jaina_proudmoore : public CreatureScript StartEvent(player); break; case GOSSIP_ACTION_INFO_DEF + 3: + me->AI()->Talk(JAINA_RETREAT_ALLIANCE_BASE); Retreat(); break; case GOSSIP_ACTION_INFO_DEF: @@ -112,16 +118,23 @@ class npc_jaina_proudmoore : public CreatureScript uint32 RageEncounter = GetInstanceData(DATA_RAGEWINTERCHILLEVENT); uint32 AnetheronEncounter = GetInstanceData(DATA_ANETHERONEVENT); if (RageEncounter == NOT_STARTED) + { AddGossipItemFor(player, GOSSIP_ITEM_BEGIN_ALLY_MID, GOSSIP_ITEM_BEGIN_ALLY_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + SendGossipMenuFor(player, 9168, me->GetGUID()); + } else if (RageEncounter == DONE && AnetheronEncounter == NOT_STARTED) + { AddGossipItemFor(player, GOSSIP_ITEM_ANETHERON_MID, GOSSIP_ITEM_ANETHERON_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); + SendGossipMenuFor(player, 9380, me->GetGUID()); + } else if (RageEncounter == DONE && AnetheronEncounter == DONE) + { AddGossipItemFor(player, GOSSIP_ITEM_ALLY_RETREAT_MID, GOSSIP_ITEM_ALLY_RETREAT_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); - + SendGossipMenuFor(player, 9387, me->GetGUID()); + } if (player->IsGameMaster()) AddGossipItemFor(player, GOSSIP_ICON_TRAINER, GOSSIP_ITEM_GM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); - SendGossipMenuFor(player, 907, me->GetGUID()); return true; } }; @@ -188,17 +201,25 @@ class npc_thrall : public CreatureScript uint32 KazrogalEvent = GetInstanceData(DATA_KAZROGALEVENT); uint32 AzgalorEvent = GetInstanceData(DATA_AZGALOREVENT); if (KazrogalEvent == NOT_STARTED) + { AddGossipItemFor(player, GOSSIP_ITEM_BEGIN_HORDE_MID, GOSSIP_ITEM_BEGIN_HORDE_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + SendGossipMenuFor(player, 9225, me->GetGUID()); + } else if (KazrogalEvent == DONE && AzgalorEvent == NOT_STARTED) + { AddGossipItemFor(player, GOSSIP_ITEM_AZGALOR_MID, GOSSIP_ITEM_AZGALOR_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); + SendGossipMenuFor(player, 9396, me->GetGUID()); + } else if (AzgalorEvent == DONE) + { AddGossipItemFor(player, GOSSIP_ITEM_HORDE_RETREAT_MID, GOSSIP_ITEM_HORDE_RETREAT_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3); + SendGossipMenuFor(player, 9398, me->GetGUID()); + } } if (player->IsGameMaster()) AddGossipItemFor(player, GOSSIP_ICON_TRAINER, GOSSIP_ITEM_GM1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); - SendGossipMenuFor(player, 907, me->GetGUID()); return true; } }; @@ -244,7 +265,7 @@ class npc_tyrande_whisperwind : public CreatureScript // Only let them get item if Azgalor is dead. if (AzgalorEvent == DONE && !player->HasItemCount(ITEM_TEAR_OF_GODDESS)) AddGossipItemFor(player, GOSSIP_ITEM_TYRANDE_MID, GOSSIP_ITEM_TYRANDE_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); - SendGossipMenuFor(player, 907, me->GetGUID()); + SendGossipMenuFor(player, 9410, me->GetGUID()); return true; } }; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp index 3d9e1d8b687..a3620020435 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp @@ -40,7 +40,10 @@ enum Spawns SPAWN_NEAR_TOWER = 2, }; -#define YELL_HURRY "Hurry, we don't have much time" +enum NPCTEXTS +{ + JAINA_RETREAT_HORDE_BASE = 7 +}; // Locations for summoning gargoyls and frost wyrms in special cases float SpawnPointSpecial[3][3]= @@ -392,7 +395,7 @@ void hyjalAI::Reset() { case JAINA: Faction = 0; - DoCast(me, SPELL_BRILLIANCE_AURA, true); + DoCastSelf(SPELL_BRILLIANCE_AURA, true); break; case THRALL: @@ -401,6 +404,7 @@ void hyjalAI::Reset() case TYRANDE: Faction = 2; + DoCastSelf(SPELL_TRUESHOT_AURA, true); break; } @@ -504,6 +508,7 @@ void hyjalAI::SummonCreature(uint32 entry, float Base[4][3]) ++EnemyCount; creature->SetWalk(false); + ENSURE_AI(hyjal_trashAI, creature->AI())->SetRun(); creature->setActive(true); creature->SetFarVisible(true); switch (entry) @@ -831,7 +836,10 @@ void hyjalAI::UpdateAI(uint32 diff) } else if (BossGUID[i] == BossGUID[1]) { - Talk(SUCCESS); + if (me->GetEntry() == THRALL) // thrall yell success after boss deaded,jaina yell success after select gossip + { + Talk(SUCCESS); + } SecondBossDead = true; } EventBegun = false; @@ -936,7 +944,6 @@ void hyjalAI::WaypointReached(uint32 waypointId, uint32 /*pathId*/) { if (waypointId == 1 || (waypointId == 0 && me->GetEntry() == THRALL)) { - me->Yell(YELL_HURRY, LANG_UNIVERSAL); WaitForTeleport = true; TeleportTimer = 20000; if (me->GetEntry() == JAINA) @@ -946,6 +953,7 @@ void hyjalAI::WaypointReached(uint32 waypointId, uint32 /*pathId*/) if (Creature* creature = ObjectAccessor::GetCreature(*me, DummyGuid)) { hyjalAI* ai = ENSURE_AI(hyjalAI, creature->AI()); + ai->Talk(JAINA_RETREAT_HORDE_BASE); ai->DoMassTeleport = true; ai->MassTeleportTimer = 20000; creature->CastSpell(me, SPELL_MASS_TELEPORT, false); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h index 331c04b6066..acb08d891b9 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.h @@ -36,7 +36,11 @@ enum SpellIds //Thrall spells SPELL_CHAIN_LIGHTNING = 31330, - SPELL_SUMMON_DIRE_WOLF = 31331 + SPELL_SUMMON_DIRE_WOLF = 31331, + + //Tyrande spells + SPELL_TRUESHOT_AURA = 31519, + SPELL_STARFALL = 20687 }; struct Wave diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp index f607c7faeb8..38511e9ea4d 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp @@ -47,6 +47,12 @@ enum Spells SPELL_EXPLODING_SHOT = 7896, }; +enum HyjalCreatureText +{ + TRASH_SAY_SLAY = 0, + TRASH_SAY_DEATH = 1, +}; + float HordeWPs[8][3]=//basic waypoints from spawn to leader { {5492.91f, -2404.61f, 1462.63f}, @@ -476,8 +482,6 @@ public: { if (Creature* trigger = me->SummonCreature(NPC_WORLD_TRIGGER_TINY, me->GetPositionWithOffset({ 8.0f, 8.0f, frand(25.0f, 35.0f), 0.0f }), TEMPSUMMON_TIMED_DESPAWN, 1s)) { - trigger->SetVisible(false); - trigger->SetFaction(me->GetFaction()); trigger->SetDisableGravity(true); trigger->CastSpell(me, SPELL_METEOR, true); } @@ -807,6 +811,7 @@ public: void KilledUnit(Unit* /*victim*/) override { + Talk(TRASH_SAY_SLAY); switch (urand(0, 2)) { case 0: @@ -825,6 +830,12 @@ public: void JustEngagedWith(Unit* /*who*/) override { } + void JustDied(Unit* killer) override + { + hyjal_trashAI::JustDied(killer); + Talk(TRASH_SAY_DEATH); + } + void UpdateAI(uint32 diff) override { hyjal_trashAI::UpdateAI(diff); @@ -923,6 +934,17 @@ public: } } + void KilledUnit(Unit* /*victim*/) override + { + Talk(TRASH_SAY_SLAY); + } + + void JustDied(Unit* killer) override + { + hyjal_trashAI::JustDied(killer); + Talk(TRASH_SAY_DEATH); + } + void JustEngagedWith(Unit* /*who*/) override { } void UpdateAI(uint32 diff) override @@ -1187,7 +1209,6 @@ public: void Reset() override { Initialize(); - me->SetDisableGravity(true); } void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override @@ -1231,21 +1252,20 @@ public: { if (!go) { - go = true; + if (!useFlyPath) { for (uint8 i = 0; i < 3; ++i) AddWaypoint(i, FrostWyrmWPs[i][0], FrostWyrmWPs[i][1], FrostWyrmWPs[i][2]); - Start(false, true); - SetDespawnAtEnd(false); } else {//fly path FlyPathWPs for (uint8 i = 0; i < 3; ++i) AddWaypoint(i, FlyPathWPs[i][0]+irand(-10, 10), FlyPathWPs[i][1]+irand(-10, 10), FlyPathWPs[i][2]); - Start(false, true); - SetDespawnAtEnd(false); } + go = true; + Start(false, true); + SetDespawnAtEnd(false); } } @@ -1317,7 +1337,6 @@ public: void Reset() override { Initialize(); - me->SetDisableGravity(true); } void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override @@ -1357,19 +1376,17 @@ public: { if (!go) { - go = true; if (!useFlyPath) { for (uint8 i = 0; i < 3; ++i) AddWaypoint(i, GargoyleWPs[i][0]+irand(-10, 10), GargoyleWPs[i][1]+irand(-10, 10), GargoyleWPs[i][2]); - Start(false, true); - SetDespawnAtEnd(false); }else{//fly path FlyPathWPs for (uint8 i = 0; i < 3; ++i) AddWaypoint(i, FlyPathWPs[i][0]+irand(-10, 10), FlyPathWPs[i][1]+irand(-10, 10), FlyPathWPs[i][2]); - Start(false, true); - SetDespawnAtEnd(false); } + go = true; + Start(false, true); + SetDespawnAtEnd(false); } } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp index eeef923a219..652e3f007a9 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/instance_hyjal.cpp @@ -142,6 +142,9 @@ public: case TYRANDE: TyrandeWhisperwind = creature->GetGUID(); break; + case NPC_CHANNEL_TARGET: + WorldtreeChannelTarget = creature->GetGUID(); + break; } InstanceScript::OnCreatureCreate(creature); @@ -159,6 +162,7 @@ public: case DATA_JAINAPROUDMOORE: return JainaProudmoore; case DATA_THRALL: return Thrall; case DATA_TYRANDEWHISPERWIND: return TyrandeWhisperwind; + case DATA_CHANNEL_TARGET: return WorldtreeChannelTarget; } return ObjectGuid::Empty; @@ -312,6 +316,7 @@ public: ObjectGuid JainaProudmoore; ObjectGuid Thrall; ObjectGuid TyrandeWhisperwind; + ObjectGuid WorldtreeChannelTarget; ObjectGuid HordeGate; ObjectGuid ElfGate; uint32 Trash; |