diff options
| author | Treeston <treeston.mmoc@gmail.com> | 2017-09-15 03:53:02 +0200 |
|---|---|---|
| committer | Keader <keader.android@gmail.com> | 2017-09-14 22:53:02 -0300 |
| commit | 971ed856a49dc56ea33d9a0779b1386eea5cd3ca (patch) | |
| tree | b2b8a1f724ff44504151715df5cd530dedc132a7 /src/server/scripts/Northrend | |
| parent | 49daef4b77baca7266e9a0ea7c916318ba6af6b0 (diff) | |
Core/Scripts: Implemented OnlyOnceAreaTriggerScript (#20288)
Diffstat (limited to 'src/server/scripts/Northrend')
17 files changed, 118 insertions, 123 deletions
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h index 7e42df81f21..f4e8e99b820 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h @@ -37,7 +37,8 @@ enum ANDataTypes DATA_WATCHER_GASHRA, DATA_WATCHER_SILTHIK, DATA_ANUBARAK_WALL, - DATA_ANUBARAK_WALL_2 + DATA_ANUBARAK_WALL_2, + DATA_GATEWATCHER_GREET }; enum ANCreatureIds diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp index ddba6e16867..1df855f2ab0 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp @@ -132,7 +132,7 @@ class boss_krik_thir : public CreatureScript struct boss_krik_thirAI : public BossAI { - boss_krik_thirAI(Creature* creature) : BossAI(creature, DATA_KRIKTHIR), _hadGreet(false), _hadFrenzy(false), _petsInCombat(false), _watchersActive(0) { } + boss_krik_thirAI(Creature* creature) : BossAI(creature, DATA_KRIKTHIR), _hadFrenzy(false), _petsInCombat(false), _watchersActive(0) { } void SummonAdds() { @@ -212,9 +212,9 @@ class boss_krik_thir : public CreatureScript switch (action) { case -ACTION_GATEWATCHER_GREET: - if (!_hadGreet && me->IsAlive() && !me->IsInCombat() && !_petsInCombat) + if (!instance->GetData(DATA_GATEWATCHER_GREET) && me->IsAlive() && !me->IsInCombat() && !_petsInCombat) { - _hadGreet = true; + instance->SetData(DATA_GATEWATCHER_GREET, 1); Talk(SAY_PREFIGHT); } break; @@ -307,7 +307,6 @@ class boss_krik_thir : public CreatureScript } private: - bool _hadGreet; bool _hadFrenzy; bool _petsInCombat; uint8 _watchersActive; diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp index 512845a9600..49da45c2586 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp @@ -71,6 +71,7 @@ class instance_azjol_nerub : public InstanceMapScript LoadBossBoundaries(boundaries); LoadDoorData(doorData); LoadObjectData(creatureData, gameobjectData); + GateWatcherGreet = 0; } void OnUnitDeath(Unit* who) override @@ -98,6 +99,32 @@ class instance_azjol_nerub : public InstanceMapScript return true; } + + uint32 GetData(uint32 type) const override + { + switch (type) + { + case DATA_GATEWATCHER_GREET: + return GateWatcherGreet; + default: + return 0; + } + } + + void SetData(uint32 type, uint32 data) override + { + switch (type) + { + case DATA_GATEWATCHER_GREET: + GateWatcherGreet = data; + break; + default: + break; + } + } + + protected: + uint8 GateWatcherGreet; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp index 16955384cb8..24f35115e04 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_baltharus_the_warborn.cpp @@ -73,8 +73,7 @@ class boss_baltharus_the_warborn : public CreatureScript struct boss_baltharus_the_warbornAI : public BossAI { - boss_baltharus_the_warbornAI(Creature* creature) : BossAI(creature, DATA_BALTHARUS_THE_WARBORN), - _cloneCount(0), _introDone(false) { } + boss_baltharus_the_warbornAI(Creature* creature) : BossAI(creature, DATA_BALTHARUS_THE_WARBORN), _cloneCount(0) { } void Reset() override { @@ -91,9 +90,6 @@ class boss_baltharus_the_warborn : public CreatureScript switch (action) { case ACTION_INTRO_BALTHARUS: - if (_introDone) - return; - _introDone = true; me->setActive(true); events.ScheduleEvent(EVENT_INTRO_TALK, Seconds(7), 0, PHASE_INTRO); break; @@ -232,7 +228,6 @@ class boss_baltharus_the_warborn : public CreatureScript private: uint8 _cloneCount; - bool _introDone; }; CreatureAI* GetAI(Creature* creature) const override diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp index e43b93e484d..20d8333bbab 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/ruby_sanctum.cpp @@ -152,12 +152,12 @@ class npc_xerestrasza : public CreatureScript } }; -class at_baltharus_plateau : public AreaTriggerScript +class at_baltharus_plateau : public OnlyOnceAreaTriggerScript { public: - at_baltharus_plateau() : AreaTriggerScript("at_baltharus_plateau") { } + at_baltharus_plateau() : OnlyOnceAreaTriggerScript("at_baltharus_plateau") { } - bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override + bool _OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override { // Only trigger once if (InstanceScript* instance = player->GetInstanceScript()) diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp index 4e62380b983..187ab353803 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp @@ -539,18 +539,18 @@ class spell_tyrannus_rimefang_icy_blast : public SpellScriptLoader } }; -class at_tyrannus_event_starter : public AreaTriggerScript +class at_tyrannus_event_starter : public OnlyOnceAreaTriggerScript { public: - at_tyrannus_event_starter() : AreaTriggerScript("at_tyrannus_event_starter") { } + at_tyrannus_event_starter() : OnlyOnceAreaTriggerScript("at_tyrannus_event_starter") { } - bool OnTrigger(Player* player, AreaTriggerEntry const* /*at*/) override + bool _OnTrigger(Player* player, AreaTriggerEntry const* /*at*/) override { InstanceScript* instance = player->GetInstanceScript(); if (player->IsGameMaster() || !instance) return false; - if (instance->GetBossState(DATA_TYRANNUS) != IN_PROGRESS && instance->GetBossState(DATA_TYRANNUS) != DONE) + if (instance->GetBossState(DATA_TYRANNUS) != DONE) if (Creature* tyrannus = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_TYRANNUS))) { tyrannus->AI()->DoAction(ACTION_START_INTRO); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp index 00f93c6ce06..ffbc0901f31 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp @@ -222,7 +222,7 @@ class boss_blood_council_controller : public CreatureScript struct boss_blood_council_controllerAI : public BossAI { - boss_blood_council_controllerAI(Creature* creature) : BossAI(creature, DATA_BLOOD_PRINCE_COUNCIL), _intro(true) + boss_blood_council_controllerAI(Creature* creature) : BossAI(creature, DATA_BLOOD_PRINCE_COUNCIL) { Initialize(); SetCombatMovement(false); @@ -240,7 +240,7 @@ class boss_blood_council_controller : public CreatureScript Initialize(); me->SummonCreatureGroup(SUMMON_PRINCES_GROUP); - if (!_intro) + if (!instance->GetData(DATA_BLOOD_PRINCE_COUNCIL_INTRO)) for (uint32 bossData : PrincesData) if (Creature* prince = ObjectAccessor::GetCreature(*me, instance->GetGuidData(bossData))) { @@ -311,7 +311,7 @@ class boss_blood_council_controller : public CreatureScript uint32 GetData(uint32 data) const override { - if (data == DATA_INTRO && !_intro) + if (data == DATA_INTRO && !instance->GetData(DATA_BLOOD_PRINCE_COUNCIL_INTRO)) return DATA_INTRO_DONE; return 0; } @@ -338,9 +338,9 @@ class boss_blood_council_controller : public CreatureScript void DoAction(int32 actionId) override { - if (actionId == ACTION_START_INTRO && _intro && instance->GetBossState(DATA_BLOOD_PRINCE_COUNCIL) != DONE) + if (actionId == ACTION_START_INTRO && instance->GetData(DATA_BLOOD_PRINCE_COUNCIL_INTRO) && instance->GetBossState(DATA_BLOOD_PRINCE_COUNCIL) != DONE) { - _intro = false; + instance->SetData(DATA_BLOOD_PRINCE_COUNCIL_INTRO, 0); if (Creature* bloodQueen = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BLOOD_QUEEN_LANA_THEL_COUNCIL))) bloodQueen->AI()->DoAction(ACTION_START_INTRO); } @@ -425,7 +425,6 @@ class boss_blood_council_controller : public CreatureScript uint32 _invocationStage; uint32 _resetCounter; - bool _intro; }; CreatureAI* GetAI(Creature* creature) const override diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp index 8a444b3d933..bf6920e741d 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp @@ -203,7 +203,7 @@ class boss_lady_deathwhisper : public CreatureScript struct boss_lady_deathwhisperAI : public BossAI { boss_lady_deathwhisperAI(Creature* creature) : BossAI(creature, DATA_LADY_DEATHWHISPER), - _dominateMindCount(RAID_MODE<uint8>(0, 1, 1, 3)), _introDone(false) + _dominateMindCount(RAID_MODE<uint8>(0, 1, 1, 3)) { Initialize(); } @@ -237,43 +237,39 @@ class boss_lady_deathwhisper : public CreatureScript if (action != ACTION_START_INTRO) return; - if (!_introDone) + Talk(SAY_INTRO_1); + _phase = PHASE_INTRO; + scheduler.Schedule(Seconds(10), GROUP_INTRO, [this](TaskContext context) { - _introDone = true; - Talk(SAY_INTRO_1); - _phase = PHASE_INTRO; - scheduler.Schedule(Seconds(10), GROUP_INTRO, [this](TaskContext context) + switch (context.GetRepeatCounter()) { - switch (context.GetRepeatCounter()) - { - case 0: - Talk(SAY_INTRO_2); - context.Repeat(Seconds(21)); - break; - case 1: - Talk(SAY_INTRO_3); - context.Repeat(Seconds(11)); - break; - case 2: - Talk(SAY_INTRO_4); - context.Repeat(Seconds(9)); - break; - case 3: - Talk(SAY_INTRO_5); - context.Repeat(Seconds(21)); - break; - case 4: - Talk(SAY_INTRO_6); - context.Repeat(Seconds(10)); - break; - case 5: - Talk(SAY_INTRO_7); - return; - default: - break; - } - }); - } + case 0: + Talk(SAY_INTRO_2); + context.Repeat(Seconds(21)); + break; + case 1: + Talk(SAY_INTRO_3); + context.Repeat(Seconds(11)); + break; + case 2: + Talk(SAY_INTRO_4); + context.Repeat(Seconds(9)); + break; + case 3: + Talk(SAY_INTRO_5); + context.Repeat(Seconds(21)); + break; + case 4: + Talk(SAY_INTRO_6); + context.Repeat(Seconds(10)); + break; + case 5: + Talk(SAY_INTRO_7); + return; + default: + break; + } + }); } void AttackStart(Unit* victim) override @@ -585,7 +581,6 @@ class boss_lady_deathwhisper : public CreatureScript uint32 _waveCounter; uint8 const _dominateMindCount; uint8 _phase; - bool _introDone; }; CreatureAI* GetAI(Creature* creature) const override @@ -1022,12 +1017,12 @@ class spell_deathwhisper_mana_barrier : public SpellScriptLoader } }; -class at_lady_deathwhisper_entrance : public AreaTriggerScript +class at_lady_deathwhisper_entrance : public OnlyOnceAreaTriggerScript { public: - at_lady_deathwhisper_entrance() : AreaTriggerScript("at_lady_deathwhisper_entrance") { } + at_lady_deathwhisper_entrance() : OnlyOnceAreaTriggerScript("at_lady_deathwhisper_entrance") { } - bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override + bool _OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override { if (InstanceScript* instance = player->GetInstanceScript()) if (instance->GetBossState(DATA_LADY_DEATHWHISPER) != DONE) diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp index fc70ac2ccb5..7e7b372337e 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp @@ -140,7 +140,6 @@ class boss_lord_marrowgar : public CreatureScript _boneStormDuration = RAID_MODE<uint32>(20000, 30000, 20000, 30000); _baseSpeed = creature->GetSpeedRate(MOVE_RUN); _coldflameLastPos.Relocate(creature); - _introDone = false; _boneSlice = false; } @@ -155,7 +154,6 @@ class boss_lord_marrowgar : public CreatureScript events.ScheduleEvent(EVENT_COLDFLAME, 5000, EVENT_GROUP_SPECIAL); events.ScheduleEvent(EVENT_WARN_BONE_STORM, urand(45000, 50000)); events.ScheduleEvent(EVENT_ENRAGE, 600000); - _introDone = false; _boneSlice = false; _boneSpikeImmune.clear(); } @@ -333,11 +331,7 @@ class boss_lord_marrowgar : public CreatureScript _boneSpikeImmune.clear(); break; case ACTION_TALK_ENTER_ZONE: - if (!_introDone) - { Talk(SAY_ENTER_ZONE); - _introDone = true; - } break; default: break; @@ -350,7 +344,6 @@ class boss_lord_marrowgar : public CreatureScript ObjectGuid _coldflameTarget; uint32 _boneStormDuration; float _baseSpeed; - bool _introDone; bool _boneSlice; }; @@ -761,12 +754,12 @@ class spell_marrowgar_bone_slice : public SpellScriptLoader } }; -class at_lord_marrowgar_entrance : public AreaTriggerScript +class at_lord_marrowgar_entrance : public OnlyOnceAreaTriggerScript { public: - at_lord_marrowgar_entrance() : AreaTriggerScript("at_lord_marrowgar_entrance") { } + at_lord_marrowgar_entrance() : OnlyOnceAreaTriggerScript("at_lord_marrowgar_entrance") { } - bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override + bool _OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override { if (InstanceScript* instance = player->GetInstanceScript()) if (Creature* lordMarrowgar = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_LORD_MARROWGAR))) diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp index 9429d9b8b21..c64e42762d2 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp @@ -226,7 +226,7 @@ class boss_sindragosa : public CreatureScript struct boss_sindragosaAI : public BossAI { - boss_sindragosaAI(Creature* creature) : BossAI(creature, DATA_SINDRAGOSA), _summoned(false) + boss_sindragosaAI(Creature* creature) : BossAI(creature, DATA_SINDRAGOSA) { Initialize(); } @@ -251,7 +251,7 @@ class boss_sindragosa : public CreatureScript events.ScheduleEvent(EVENT_AIR_PHASE, 50000); Initialize(); - if (!_summoned) + if (instance->GetData(DATA_SINDRAGOSA_INTRO)) { me->SetCanFly(true); me->SetDisableGravity(true); @@ -311,10 +311,8 @@ class boss_sindragosa : public CreatureScript { if (action == ACTION_START_FROSTWYRM) { - if (_summoned) - return; - _summoned = true; + instance->SetData(DATA_SINDRAGOSA_INTRO, 0); if (TempSummon* summon = me->ToTempSummon()) summon->SetTempSummonType(TEMPSUMMON_DEAD_DESPAWN); @@ -565,7 +563,6 @@ class boss_sindragosa : public CreatureScript uint8 _mysticBuffetStack; bool _isInAirPhase; bool _isThirdPhase; - bool _summoned; }; CreatureAI* GetAI(Creature* creature) const override @@ -1616,12 +1613,12 @@ public: } }; -class at_sindragosa_lair : public AreaTriggerScript +class at_sindragosa_lair : public OnlyOnceAreaTriggerScript { public: - at_sindragosa_lair() : AreaTriggerScript("at_sindragosa_lair") { } + at_sindragosa_lair() : OnlyOnceAreaTriggerScript("at_sindragosa_lair") { } - bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override + bool _OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override { if (InstanceScript* instance = player->GetInstanceScript()) { diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h index e40ba687312..a9ea390e834 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h @@ -120,7 +120,9 @@ enum ICDataTypes DATA_TERENAS_MENETHIL = 39, DATA_ENEMY_GUNSHIP = 40, DATA_UPPERSPIRE_TELE_ACT = 41, /// also used by conditions - DATA_BLOOD_QUEEN_LANA_THEL_COUNCIL = 42 + DATA_BLOOD_QUEEN_LANA_THEL_COUNCIL = 42, + DATA_BLOOD_PRINCE_COUNCIL_INTRO = 43, + DATA_SINDRAGOSA_INTRO = 44 }; enum ICCreaturesIds diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp index c98b086b203..c986bb25c6b 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp @@ -147,6 +147,8 @@ class instance_icecrown_citadel : public InstanceMapScript UpperSpireTeleporterActiveState = NOT_STARTED; BloodQuickeningState = NOT_STARTED; BloodQuickeningMinutes = 0; + BloodPrinceIntro = 1; + SindragosaIntro = 1; } // A function to help reduce the number of lines for teleporter management. @@ -739,6 +741,10 @@ class instance_icecrown_citadel : public InstanceMapScript return BloodQuickeningState; case DATA_HEROIC_ATTEMPTS: return HeroicAttempts; + case DATA_BLOOD_PRINCE_COUNCIL_INTRO: + return BloodPrinceIntro; + case DATA_SINDRAGOSA_INTRO: + return SindragosaIntro; default: break; } @@ -1116,6 +1122,12 @@ class instance_icecrown_citadel : public InstanceMapScript SaveToDB(); } break; + case DATA_BLOOD_PRINCE_COUNCIL_INTRO: + BloodPrinceIntro = data; + break; + case DATA_SINDRAGOSA_INTRO: + SindragosaIntro = data; + break; default: break; } @@ -1530,6 +1542,8 @@ class instance_icecrown_citadel : public InstanceMapScript uint32 BloodQuickeningState; uint32 HeroicAttempts; uint16 BloodQuickeningMinutes; + uint8 BloodPrinceIntro; + uint8 SindragosaIntro; bool IsBonedEligible; bool IsOozeDanceEligible; bool IsNauseaEligible; diff --git a/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp b/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp index cb04d154f8a..8a481bff9ce 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_anubrekhan.cpp @@ -239,20 +239,19 @@ public: }; -class at_anubrekhan_entrance : public AreaTriggerScript +class at_anubrekhan_entrance : public OnlyOnceAreaTriggerScript { public: - at_anubrekhan_entrance() : AreaTriggerScript("at_anubrekhan_entrance") { } + at_anubrekhan_entrance() : OnlyOnceAreaTriggerScript("at_anubrekhan_entrance") { } - bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override + bool _OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override { InstanceScript* instance = player->GetInstanceScript(); - if (!instance || instance->GetData(DATA_HAD_ANUBREKHAN_GREET) || instance->GetBossState(BOSS_ANUBREKHAN) != NOT_STARTED) + if (!instance || instance->GetBossState(BOSS_ANUBREKHAN) != NOT_STARTED) return true; if (Creature* anub = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_ANUBREKHAN))) anub->AI()->Talk(SAY_GREET); - instance->SetData(DATA_HAD_ANUBREKHAN_GREET, 1u); return true; } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp b/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp index 65d70f1e398..9b7df0d4f40 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_faerlina.cpp @@ -260,20 +260,19 @@ class achievement_momma_said_knock_you_out : public AchievementCriteriaScript } }; -class at_faerlina_entrance : public AreaTriggerScript +class at_faerlina_entrance : public OnlyOnceAreaTriggerScript { public: - at_faerlina_entrance() : AreaTriggerScript("at_faerlina_entrance") { } + at_faerlina_entrance() : OnlyOnceAreaTriggerScript("at_faerlina_entrance") { } - bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override + bool _OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override { InstanceScript* instance = player->GetInstanceScript(); - if (!instance || instance->GetData(DATA_HAD_FAERLINA_GREET) || instance->GetBossState(BOSS_FAERLINA) != NOT_STARTED) + if (!instance || instance->GetBossState(BOSS_FAERLINA) != NOT_STARTED) return true; if (Creature* faerlina = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_FAERLINA))) faerlina->AI()->Talk(SAY_GREET); - instance->SetData(DATA_HAD_FAERLINA_GREET, 1u); return true; } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp index a0afdac7a9f..1f279323591 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp @@ -1225,20 +1225,19 @@ class spell_thaddius_magnetic_pull : public SpellScriptLoader } }; -class at_thaddius_entrance : public AreaTriggerScript +class at_thaddius_entrance : public OnlyOnceAreaTriggerScript { public: - at_thaddius_entrance() : AreaTriggerScript("at_thaddius_entrance") { } + at_thaddius_entrance() : OnlyOnceAreaTriggerScript("at_thaddius_entrance") { } - bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override + bool _OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override { InstanceScript* instance = player->GetInstanceScript(); - if (!instance || instance->GetData(DATA_HAD_THADDIUS_GREET) || instance->GetBossState(BOSS_THADDIUS) == DONE) + if (!instance || instance->GetBossState(BOSS_THADDIUS) == DONE) return true; if (Creature* thaddius = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_THADDIUS))) thaddius->AI()->Talk(SAY_GREET); - instance->SetData(DATA_HAD_THADDIUS_GREET, 1u); return true; } diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp index f8638a33fa0..3e06319a379 100644 --- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp +++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp @@ -121,9 +121,6 @@ class instance_naxxramas : public InstanceMapScript LoadDoorData(doorData); LoadObjectData(nullptr, objectData); - hadAnubRekhanGreet = false; - hadFaerlinaGreet = false; - hadThaddiusGreet = false; hadSapphironBirth = false; CurrentWingTaunt = SAY_KELTHUZAD_FIRST_WING_TAUNT; @@ -279,15 +276,6 @@ class instance_naxxramas : public InstanceMapScript if (GameObject* gate = instance->GetGameObject(GothikGateGUID)) gate->SetGoState(GOState(value)); break; - case DATA_HAD_ANUBREKHAN_GREET: - hadAnubRekhanGreet = (value == 1u); - break; - case DATA_HAD_FAERLINA_GREET: - hadFaerlinaGreet = (value == 1u); - break; - case DATA_HAD_THADDIUS_GREET: - hadThaddiusGreet = (value == 1u); - break; case DATA_HAD_SAPPHIRON_BIRTH: hadSapphironBirth = (value == 1u); break; @@ -300,12 +288,6 @@ class instance_naxxramas : public InstanceMapScript { switch (id) { - case DATA_HAD_ANUBREKHAN_GREET: - return hadAnubRekhanGreet ? 1u : 0u; - case DATA_HAD_FAERLINA_GREET: - return hadFaerlinaGreet ? 1u : 0u; - case DATA_HAD_THADDIUS_GREET: - return hadThaddiusGreet ? 1u : 0u; case DATA_HAD_SAPPHIRON_BIRTH: return hadSapphironBirth ? 1u : 0u; default: @@ -625,9 +607,6 @@ class instance_naxxramas : public InstanceMapScript ObjectGuid PortalsGUID[4]; ObjectGuid KelthuzadDoorGUID; ObjectGuid LichKingGUID; - bool hadAnubRekhanGreet; - bool hadFaerlinaGreet; - bool hadThaddiusGreet; bool hadSapphironBirth; uint8 CurrentWingTaunt; diff --git a/src/server/scripts/Northrend/Naxxramas/naxxramas.h b/src/server/scripts/Northrend/Naxxramas/naxxramas.h index 0aa45553e9f..64e313fea59 100644 --- a/src/server/scripts/Northrend/Naxxramas/naxxramas.h +++ b/src/server/scripts/Northrend/Naxxramas/naxxramas.h @@ -47,9 +47,6 @@ enum NAXEncounter enum NAXData { DATA_GOTHIK_GATE, - DATA_HAD_ANUBREKHAN_GREET, - DATA_HAD_FAERLINA_GREET, - DATA_HAD_THADDIUS_GREET, DATA_HAD_SAPPHIRON_BIRTH, DATA_HORSEMEN_CHECK_ACHIEVEMENT_CREDIT, |
