From 4e977d9adaaa36090676d3f461f472bb5c83ba76 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Tue, 3 May 2022 02:01:00 +0200 Subject: [PATCH 01/11] fix(Scripts/BWL): Razorgore's Orb of Domination should not be usable during 2nd phase of the encounter. (#11580) --- .../BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp index 2d9fba354..eb8984a76 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp @@ -200,6 +200,8 @@ public: return NefarianLeftTunnel; case DATA_NEFARIAN_RIGHT_TUNNEL: return NefarianRightTunnel; + case DATA_EGG_EVENT: + return EggEvent; default: break; } From 0363b95919ff012a26db2e06025873cba2cc1cd6 Mon Sep 17 00:00:00 2001 From: Maelthyr <100411212+Maelthyrr@users.noreply.github.com> Date: Tue, 3 May 2022 02:02:40 +0200 Subject: [PATCH 02/11] fix(Script/ZulGurub): High Priestess Jeklik improvements (#11458) --- .../rev_1650481776270749700.sql | 8 ++ .../EasternKingdoms/ZulGurub/boss_jeklik.cpp | 120 ++++++++++++------ 2 files changed, 87 insertions(+), 41 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1650481776270749700.sql diff --git a/data/sql/updates/pending_db_world/rev_1650481776270749700.sql b/data/sql/updates/pending_db_world/rev_1650481776270749700.sql new file mode 100644 index 000000000..41d28ab2d --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1650481776270749700.sql @@ -0,0 +1,8 @@ +-- Fix for the levitate issue +UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 2.14286, `flags_extra` = `flags_extra`|512 WHERE `entry` = 14517; +UPDATE `creature_template_movement` SET `Flight` = 0 WHERE `CreatureId` = 14517; +-- Update Emotes +DELETE FROM `creature_text` WHERE `CreatureID` = 14517 AND `GroupID` IN (3,4); +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(14517,3,0,'%s emits a deafening shriek!',16,0,100,0,0,0,10370,0,'High Priestess Jeklik - EMOTE_SUMMON_BATS'), +(14517,4,0,'%s begins to cast a Great Heal!',16,0,100,0,0,0,10494,0,'High Priestess Jeklik - EMOTE_GREAT_HEAL'); diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp index c4efba1cc..b6075f954 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_jeklik.cpp @@ -22,20 +22,31 @@ enum Says { SAY_AGGRO = 0, - SAY_RAIN_FIRE = 1, - SAY_DEATH = 2 + SAY_CALL_RIDERS = 1, + SAY_DEATH = 2, + EMOTE_SUMMON_BATS = 3, + EMOTE_GREAT_HEAL = 4 }; enum Spells { + // Intro + SPELL_GREEN_CHANNELING = 13540, + SPELL_BAT_FORM = 23966, + + // Phase one + SPELL_PIERCE_ARMOR = 12097, + SPELL_BLOOD_LEECH = 22644, SPELL_CHARGE = 22911, - SPELL_SONICBURST = 23918, - SPELL_SCREECH = 6605, + SPELL_SONIC_BURST = 23918, + SPELL_SWOOP = 23919, + + // Phase two + SPELL_CURSE_OF_BLOOD = 16098, + SPELL_PSYCHIC_SCREAM = 22884, SPELL_SHADOW_WORD_PAIN = 23952, SPELL_MIND_FLAY = 23953, - SPELL_CHAIN_MIND_FLAY = 26044, // Right ID unknown. So disabled - SPELL_GREATERHEAL = 23954, - SPELL_BAT_FORM = 23966, + SPELL_GREATER_HEAL = 23954, // Batriders Spell SPELL_BOMB = 40332 // Wrong ID but Magmadars bomb is not working... @@ -49,13 +60,19 @@ enum BatIds enum Events { + // Phase one EVENT_CHARGE_JEKLIK = 1, + EVENT_PIERCE_ARMOR, + EVENT_BLOOD_LEECH, EVENT_SONIC_BURST, - EVENT_SCREECH, + EVENT_SWOOP, EVENT_SPAWN_BATS, + + // Phase two + EVENT_CURSE_OF_BLOOD, + EVENT_PSYCHIC_SCREAM, EVENT_SHADOW_WORD_PAIN, EVENT_MIND_FLAY, - EVENT_CHAIN_MIND_FLAY, EVENT_GREATER_HEAL, EVENT_SPAWN_FLYING_BATS }; @@ -87,6 +104,7 @@ public: void Reset() override { + DoCastSelf(SPELL_GREEN_CHANNELING); _Reset(); } @@ -100,15 +118,17 @@ public: { _EnterCombat(); Talk(SAY_AGGRO); + me->RemoveAurasDueToSpell(SPELL_GREEN_CHANNELING); + me->SetDisableGravity(true); + DoCastSelf(SPELL_BAT_FORM); events.SetPhase(PHASE_ONE); - events.ScheduleEvent(EVENT_CHARGE_JEKLIK, 20000, 0, PHASE_ONE); - events.ScheduleEvent(EVENT_SONIC_BURST, 8000, 0, PHASE_ONE); - events.ScheduleEvent(EVENT_SCREECH, 13000, 0, PHASE_ONE); - events.ScheduleEvent(EVENT_SPAWN_BATS, 60000, 0, PHASE_ONE); - - me->SetCanFly(true); - DoCast(me, SPELL_BAT_FORM); + events.ScheduleEvent(EVENT_CHARGE_JEKLIK, urand(10000, 20000), PHASE_ONE); + events.ScheduleEvent(EVENT_PIERCE_ARMOR, urand(5000, 15000), PHASE_ONE); + events.ScheduleEvent(EVENT_BLOOD_LEECH, urand(5000, 15000), PHASE_ONE); + events.ScheduleEvent(EVENT_SONIC_BURST, urand(5000, 15000), PHASE_ONE); + events.ScheduleEvent(EVENT_SWOOP, 20000, PHASE_ONE); + events.ScheduleEvent(EVENT_SPAWN_BATS, 30000, PHASE_ONE); } void DamageTaken(Unit*, uint32& /*damage*/, DamageEffectType, SpellSchoolMask) override @@ -116,14 +136,17 @@ public: if (events.IsInPhase(PHASE_ONE) && !HealthAbovePct(50)) { me->RemoveAurasDueToSpell(SPELL_BAT_FORM); - me->SetCanFly(false); + me->SetDisableGravity(false); DoResetThreat(); events.SetPhase(PHASE_TWO); - events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 6000, 0, PHASE_TWO); - events.ScheduleEvent(EVENT_MIND_FLAY, 11000, 0, PHASE_TWO); - events.ScheduleEvent(EVENT_CHAIN_MIND_FLAY, 26000, 0, PHASE_TWO); - events.ScheduleEvent(EVENT_GREATER_HEAL, 50000, 0, PHASE_TWO); - events.ScheduleEvent(EVENT_SPAWN_FLYING_BATS, 10000, 0, PHASE_TWO); + + events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, urand(5000, 15000), PHASE_TWO); + events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(10000, 15000), PHASE_TWO); + events.ScheduleEvent(EVENT_PSYCHIC_SCREAM, urand(25000, 35000), PHASE_TWO); + events.ScheduleEvent(EVENT_MIND_FLAY, urand(10000, 30000), PHASE_TWO); + events.ScheduleEvent(EVENT_GREATER_HEAL, 25000, PHASE_TWO); + events.ScheduleEvent(EVENT_SPAWN_FLYING_BATS, 10000, PHASE_TWO); + return; } } @@ -142,53 +165,68 @@ public: { switch (eventId) { + // Phase one case EVENT_CHARGE_JEKLIK: if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) { DoCast(target, SPELL_CHARGE); AttackStart(target); } - events.ScheduleEvent(EVENT_CHARGE_JEKLIK, urand(15000, 30000), 0, PHASE_ONE); + events.ScheduleEvent(EVENT_CHARGE_JEKLIK, urand(15000, 30000), PHASE_ONE); + break; + case EVENT_PIERCE_ARMOR: + DoCastVictim(SPELL_PIERCE_ARMOR); + events.ScheduleEvent(EVENT_PIERCE_ARMOR, urand(20000, 30000), PHASE_ONE); + break; + case EVENT_BLOOD_LEECH: + DoCastVictim(SPELL_BLOOD_LEECH); + events.ScheduleEvent(EVENT_BLOOD_LEECH, urand(10000, 20000), PHASE_ONE); break; case EVENT_SONIC_BURST: - DoCastVictim(SPELL_SONICBURST); - events.ScheduleEvent(EVENT_SONIC_BURST, urand(8000, 13000), 0, PHASE_ONE); + DoCastVictim(SPELL_SONIC_BURST); + events.ScheduleEvent(EVENT_SONIC_BURST, urand(20000, 30000), PHASE_ONE); break; - case EVENT_SCREECH: - DoCastVictim(SPELL_SCREECH); - events.ScheduleEvent(EVENT_SCREECH, urand(18000, 26000), 0, PHASE_ONE); + case EVENT_SWOOP: + DoCastVictim(SPELL_SWOOP); + events.ScheduleEvent(EVENT_SWOOP, urand(20000, 30000), PHASE_ONE); break; case EVENT_SPAWN_BATS: + Talk(EMOTE_SUMMON_BATS); if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) for (uint8 i = 0; i < 6; ++i) if (Creature* bat = me->SummonCreature(NPC_BLOODSEEKER_BAT, SpawnBat[i], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000)) bat->AI()->AttackStart(target); - events.ScheduleEvent(EVENT_SPAWN_BATS, 60000, 0, PHASE_ONE); + events.ScheduleEvent(EVENT_SPAWN_BATS, 30000, PHASE_ONE); + break; + //Phase two + case EVENT_CURSE_OF_BLOOD: + DoCastSelf(SPELL_CURSE_OF_BLOOD); + events.ScheduleEvent(EVENT_CURSE_OF_BLOOD, urand(25000, 30000), PHASE_TWO); + break; + case EVENT_PSYCHIC_SCREAM: + DoCastVictim(SPELL_PSYCHIC_SCREAM); + events.ScheduleEvent(EVENT_PSYCHIC_SCREAM, urand(35000, 45000), PHASE_TWO); break; case EVENT_SHADOW_WORD_PAIN: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) - DoCast(target, SPELL_SHADOW_WORD_PAIN); - events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(12000, 18000), 0, PHASE_TWO); + DoCastRandomTarget(SPELL_SHADOW_WORD_PAIN, 0, true); + events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, urand(12000, 18000), PHASE_TWO); break; case EVENT_MIND_FLAY: DoCastVictim(SPELL_MIND_FLAY); - events.ScheduleEvent(EVENT_MIND_FLAY, 16000, 0, PHASE_TWO); - break; - case EVENT_CHAIN_MIND_FLAY: - me->InterruptNonMeleeSpells(false); - DoCastVictim(SPELL_CHAIN_MIND_FLAY); - events.ScheduleEvent(EVENT_CHAIN_MIND_FLAY, urand(15000, 30000), 0, PHASE_TWO); + events.ScheduleEvent(EVENT_MIND_FLAY, urand(20000, 40000), PHASE_TWO); break; case EVENT_GREATER_HEAL: + Talk(EMOTE_GREAT_HEAL); me->InterruptNonMeleeSpells(false); - DoCast(me, SPELL_GREATERHEAL); - events.ScheduleEvent(EVENT_GREATER_HEAL, urand(25000, 35000), 0, PHASE_TWO); + DoCastSelf(SPELL_GREATER_HEAL); + events.ScheduleEvent(EVENT_GREATER_HEAL, 25000, PHASE_TWO); break; case EVENT_SPAWN_FLYING_BATS: + Talk(SAY_CALL_RIDERS); if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) if (Creature* flyingBat = me->SummonCreature(NPC_FRENZIED_BAT, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ() + 15.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 15000)) flyingBat->AI()->AttackStart(target); - events.ScheduleEvent(EVENT_SPAWN_FLYING_BATS, urand(10000, 15000), 0, PHASE_TWO); + events.ScheduleEvent(EVENT_SPAWN_FLYING_BATS, urand(10000, 15000), PHASE_TWO); break; default: break; From 6c1d18b545ed354223be1e4f30913a251a1df503 Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Tue, 3 May 2022 00:05:00 +0000 Subject: [PATCH 03/11] chore(DB): import pending files Referenced commit(s): 0363b95919ff012a26db2e06025873cba2cc1cd6 --- .../rev_1650481776270749700.sql => db_world/2022_05_03_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1650481776270749700.sql => db_world/2022_05_03_00.sql} (94%) diff --git a/data/sql/updates/pending_db_world/rev_1650481776270749700.sql b/data/sql/updates/db_world/2022_05_03_00.sql similarity index 94% rename from data/sql/updates/pending_db_world/rev_1650481776270749700.sql rename to data/sql/updates/db_world/2022_05_03_00.sql index 41d28ab2d..23f6e6e06 100644 --- a/data/sql/updates/pending_db_world/rev_1650481776270749700.sql +++ b/data/sql/updates/db_world/2022_05_03_00.sql @@ -1,3 +1,4 @@ +-- DB update 2022_05_01_01 -> 2022_05_03_00 -- Fix for the levitate issue UPDATE `creature_template` SET `speed_walk` = 1, `speed_run` = 2.14286, `flags_extra` = `flags_extra`|512 WHERE `entry` = 14517; UPDATE `creature_template_movement` SET `Flight` = 0 WHERE `CreatureId` = 14517; From 3c1e76e55dda3908a7afa8160c3f644fc39880ea Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Tue, 3 May 2022 07:36:03 +0200 Subject: [PATCH 04/11] fix(Core/Duel): Player during duel countdown is not a valid attack target. (#11509) --- src/server/game/Entities/Unit/Unit.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 60b8a08e3..caa796d62 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -9670,7 +9670,7 @@ ReputationRank Unit::GetReactionTo(Unit const* target, bool checkOriginalFaction return REP_FRIENDLY; // duel - always hostile to opponent - if (selfPlayerOwner->duel && selfPlayerOwner->duel->Opponent == targetPlayerOwner && selfPlayerOwner->duel->StartTime != 0) + if (selfPlayerOwner->duel && selfPlayerOwner->duel->Opponent == targetPlayerOwner && selfPlayerOwner->duel->State == DUEL_STATE_IN_PROGRESS) return REP_HOSTILE; // same group - checks dependant only on our faction - skip FFA_PVP for example @@ -13334,7 +13334,7 @@ bool Unit::_IsValidAttackTarget(Unit const* target, SpellInfo const* bySpell, Wo // check duel - before sanctuary checks if (playerAffectingAttacker && playerAffectingTarget) - if (playerAffectingAttacker->duel && playerAffectingAttacker->duel->Opponent == playerAffectingTarget && playerAffectingAttacker->duel->StartTime != 0) + if (playerAffectingAttacker->duel && playerAffectingAttacker->duel->Opponent == playerAffectingTarget && playerAffectingAttacker->duel->State == DUEL_STATE_IN_PROGRESS) return true; // PvP case - can't attack when attacker or target are in sanctuary From 3c851c059a3d6a51307776ff4b112ce459a85d09 Mon Sep 17 00:00:00 2001 From: Skjalf <47818697+Nyeriah@users.noreply.github.com> Date: Tue, 3 May 2022 07:10:09 -0300 Subject: [PATCH 05/11] fix(Scripts/BlackwingLair): Prevent Chromaggus cage from looking (#11603) --- .../rev_1651542266671948700.sql | 2 + .../BlackwingLair/boss_chromaggus.cpp | 4 +- .../BlackwingLair/instance_blackwing_lair.cpp | 42 +++++-------------- 3 files changed, 15 insertions(+), 33 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1651542266671948700.sql diff --git a/data/sql/updates/pending_db_world/rev_1651542266671948700.sql b/data/sql/updates/pending_db_world/rev_1651542266671948700.sql new file mode 100644 index 000000000..3c306df60 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1651542266671948700.sql @@ -0,0 +1,2 @@ +-- +UPDATE `gameobject_template_addon` SET `flags` = `flags` |16 WHERE `entry` = 179116; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp index 846dad802..49ca899d7 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp @@ -237,14 +237,14 @@ class go_chromaggus_lever : public GameObjectScript { if (_instance->GetBossState(DATA_CHROMAGGUS) != DONE && _instance->GetBossState(DATA_CHROMAGGUS) != IN_PROGRESS) { - if (Creature* creature = _instance->instance->GetCreature(_instance->GetGuidData(DATA_CHROMAGGUS))) + if (Creature* creature = _instance->GetCreature(DATA_CHROMAGGUS)) { creature->SetHomePosition(homePos); creature->GetMotionMaster()->MovePath(creature->GetEntry() * 10, false); creature->AI()->SetGUID(player->GetGUID(), GUID_LEVER_USER); } - if (GameObject* go = _instance->instance->GetGameObject(_instance->GetGuidData(DATA_GO_CHROMAGGUS_DOOR))) + if (GameObject* go = _instance->GetGameObject(DATA_GO_CHROMAGGUS_DOOR)) _instance->HandleGameObject(ObjectGuid::Empty, true, go); } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp index eb8984a76..a9d1299e6 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp @@ -35,7 +35,7 @@ DoorData const doorData[] = { GO_PORTCULLIS_RAZORGORE_ROOM, DATA_RAZORGORE_THE_UNTAMED, DOOR_TYPE_ROOM, }, // ID 176964 || GUID 75158 { GO_PORTCULLIS_VAELASTRASZ, DATA_VAELASTRAZ_THE_CORRUPT, DOOR_TYPE_PASSAGE }, // ID 175185 || GUID 7229 { GO_PORTCULLIS_BROODLORD, DATA_BROODLORD_LASHLAYER, DOOR_TYPE_PASSAGE }, // ID 179365 || GUID 75159 - { GO_PORTCULLIS_CHROMAGGUS, DATA_CHROMAGGUS, DOOR_TYPE_PASSAGE }, // ID 179116 || GUID 75161 + { GO_PORTCULLIS_NEFARIAN, DATA_CHROMAGGUS, DOOR_TYPE_PASSAGE }, // ID 179116 || GUID 75161 { GO_PORTCULLIS_NEFARIAN, DATA_NEFARIAN, DOOR_TYPE_ROOM }, // ID 179117 || GUID 75164 { 0, 0, DOOR_TYPE_ROOM } // END }; @@ -44,7 +44,13 @@ ObjectData const creatureData[] = { { NPC_GRETHOK, DATA_GRETHOK }, { NPC_NEFARIAN_TROOPS, DATA_NEFARIAN_TROOPS }, - { NPC_VICTOR_NEFARIUS, DATA_LORD_VICTOR_NEFARIUS } + { NPC_VICTOR_NEFARIUS, DATA_LORD_VICTOR_NEFARIUS }, + { NPC_CHROMAGGUS, DATA_CHROMAGGUS } +}; + +ObjectData const objectData[] = +{ + { GO_PORTCULLIS_CHROMAGGUS, DATA_GO_CHROMAGGUS_DOOR } }; Position const SummonPosition[8] = @@ -73,7 +79,7 @@ public: //SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); - LoadObjectData(creatureData, nullptr); + LoadObjectData(creatureData, objectData); } void Initialize() override @@ -101,9 +107,6 @@ public: case NPC_RAZORGORE: razorgoreGUID = creature->GetGUID(); break; - case NPC_CHROMAGGUS: - chromaggusGUID = creature->GetGUID(); - break; case NPC_BLACKWING_DRAGON: ++addsCount[0]; if (Creature* razor = instance->GetCreature(razorgoreGUID)) @@ -166,19 +169,6 @@ public: EggList.push_back(go->GetGUID()); } break; - case GO_PORTCULLIS_NEFARIAN: - AddDoor(go, true); - nefarianDoorGUID = go->GetGUID(); - if (GetBossState(DATA_CHROMAGGUS) != DONE) - { - HandleGameObject(ObjectGuid::Empty, false, go); - } - break; - case GO_PORTCULLIS_CHROMAGGUS: - AddDoor(go, true); - chromaggusDoorGUID = go->GetGUID(); - go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE); - break; default: break; } @@ -245,12 +235,6 @@ public: } } break; - case DATA_CHROMAGGUS: - if (state == DONE) - { - HandleGameObject(nefarianDoorGUID, true); - } - break; case DATA_NEFARIAN: switch (state) { @@ -259,7 +243,9 @@ public: [[fallthrough]]; case NOT_STARTED: if (Creature* nefarian = instance->GetCreature(nefarianGUID)) + { nefarian->DespawnOrUnsummon(); + } break; default: break; @@ -341,10 +327,6 @@ public: { case DATA_RAZORGORE_THE_UNTAMED: return razorgoreGUID; - case DATA_CHROMAGGUS: - return chromaggusGUID; - case DATA_GO_CHROMAGGUS_DOOR: - return chromaggusDoorGUID; default: break; } @@ -498,8 +480,6 @@ public: protected: ObjectGuid razorgoreGUID; - ObjectGuid chromaggusGUID; - ObjectGuid chromaggusDoorGUID; ObjectGuid nefarianGUID; ObjectGuid nefarianDoorGUID; From 4156c2e97dd48a5bc5ae7d327d0091b434636839 Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Tue, 3 May 2022 10:12:08 +0000 Subject: [PATCH 06/11] chore(DB): import pending files Referenced commit(s): 3c851c059a3d6a51307776ff4b112ce459a85d09 --- .../rev_1651542266671948700.sql => db_world/2022_05_03_01.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1651542266671948700.sql => db_world/2022_05_03_01.sql} (66%) diff --git a/data/sql/updates/pending_db_world/rev_1651542266671948700.sql b/data/sql/updates/db_world/2022_05_03_01.sql similarity index 66% rename from data/sql/updates/pending_db_world/rev_1651542266671948700.sql rename to data/sql/updates/db_world/2022_05_03_01.sql index 3c306df60..df7f523ca 100644 --- a/data/sql/updates/pending_db_world/rev_1651542266671948700.sql +++ b/data/sql/updates/db_world/2022_05_03_01.sql @@ -1,2 +1,3 @@ +-- DB update 2022_05_03_00 -> 2022_05_03_01 -- UPDATE `gameobject_template_addon` SET `flags` = `flags` |16 WHERE `entry` = 179116; From 12a0c6f1bc3afd8daad42942c0bfa7ea5fee58a8 Mon Sep 17 00:00:00 2001 From: Skjalf <47818697+Nyeriah@users.noreply.github.com> Date: Tue, 3 May 2022 07:18:45 -0300 Subject: [PATCH 07/11] =?UTF-8?q?fix(Scripts/BlackwingLair):=20Prevent=20C?= =?UTF-8?q?hromaggus=20from=20hostilizing=20playe=E2=80=A6=20(#11595)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(Scripts/BlackwingLair): Prevent Chromaggus from hostilizing players in the floor underneath * Update src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com> * Update src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com> Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com> --- .../BlackrockMountain/BlackwingLair/boss_chromaggus.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp index 49ca899d7..9da7d418a 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp @@ -83,6 +83,9 @@ public: _breathSpells = { SPELL_INCINERATE, SPELL_TIMELAPSE, SPELL_CORROSIVEACID, SPELL_IGNITEFLESH, SPELL_FROSTBURN }; Acore::Containers::RandomResize(_breathSpells, 2); + + // Hack fix: This is here to prevent him from being pulled from the floor underneath, remove it once maps are fixed. + creature->SetReactState(REACT_PASSIVE); } void Initialize() @@ -118,6 +121,8 @@ public: if (id == GUID_LEVER_USER) { _playerGUID = guid; + // Hack fix: This is here to prevent him from being pulled from the floor underneath, remove it once maps are fixed. + me->SetReactState(REACT_AGGRESSIVE); } } From e7531fa2a99df1e2a140b8200d6a4494d38b715a Mon Sep 17 00:00:00 2001 From: Skjalf <47818697+Nyeriah@users.noreply.github.com> Date: Tue, 3 May 2022 07:26:42 -0300 Subject: [PATCH 08/11] =?UTF-8?q?fix(Scripts/TempleOfAhnQiraj):=20Battlegr?= =?UTF-8?q?ound=20Sartura=20should=20not=20be=20ski=E2=80=A6=20(#11596)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(Scripts/TempleOfAhnQiraj): Battleground Sartura should not be skippable * Update instance_temple_of_ahnqiraj.cpp --- .../rev_1651431887064573700.sql | 4 ++ .../instance_temple_of_ahnqiraj.cpp | 41 ++++++++++++++++--- .../TempleOfAhnQiraj/temple_of_ahnqiraj.h | 6 ++- 3 files changed, 43 insertions(+), 8 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1651431887064573700.sql diff --git a/data/sql/updates/pending_db_world/rev_1651431887064573700.sql b/data/sql/updates/pending_db_world/rev_1651431887064573700.sql new file mode 100644 index 000000000..17064a3b6 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1651431887064573700.sql @@ -0,0 +1,4 @@ +-- +DELETE FROM `areatrigger_scripts` WHERE `entry` = 4052 AND `ScriptName` = 'at_battleguard_sartura'; +INSERT INTO `areatrigger_scripts` (`entry`, `ScriptName`) VALUES +(4052, 'at_battleguard_sartura'); diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp index c5f811cc2..ebbe586a4 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp @@ -23,9 +23,15 @@ SDCategory: Temple of Ahn'Qiraj EndScriptData */ #include "InstanceScript.h" +#include "Player.h" #include "ScriptMgr.h" #include "temple_of_ahnqiraj.h" +ObjectData const creatureData[] = +{ + { NPC_SARTURA, DATA_SARTURA }, +}; + class instance_temple_of_ahnqiraj : public InstanceMapScript { public: @@ -38,7 +44,10 @@ public: struct instance_temple_of_ahnqiraj_InstanceMapScript : public InstanceScript { - instance_temple_of_ahnqiraj_InstanceMapScript(Map* map) : InstanceScript(map) { } + instance_temple_of_ahnqiraj_InstanceMapScript(Map* map) : InstanceScript(map) + { + LoadObjectData(creatureData, nullptr); + } //If Vem is dead... bool IsBossDied[3]; @@ -89,12 +98,8 @@ public: ViscidusGUID = creature->GetGUID(); break; } - } - bool IsEncounterInProgress() const override - { - //not active in AQ40 - return false; + InstanceScript::OnCreatureCreate(creature); } uint32 GetData(uint32 type) const override @@ -174,7 +179,31 @@ public: }; }; +// 4052, At Battleguard Sartura +class at_battleguard_sartura : public AreaTriggerScript +{ +public: + at_battleguard_sartura() : AreaTriggerScript("at_battleguard_sartura") { } + + bool OnTrigger(Player* player, const AreaTrigger* /*at*/) override + { + if (InstanceScript* instance = player->GetInstanceScript()) + { + if (Creature* sartura = instance->GetCreature(DATA_SARTURA)) + { + if (sartura->IsAlive()) + { + sartura->SetInCombatWith(player); + } + } + } + + return true; + } +}; + void AddSC_instance_temple_of_ahnqiraj() { new instance_temple_of_ahnqiraj(); + new at_battleguard_sartura(); } diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h index e36714e1b..8b0a1d524 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/temple_of_ahnqiraj.h @@ -37,7 +37,8 @@ enum DataTypes DATA_VEKNILASH_DEATH = 11, DATA_BUG_TRIO_DEATH = 14, DATA_CTHUN_PHASE = 20, - DATA_VISCIDUS = 21 + DATA_VISCIDUS = 21, + DATA_SARTURA = 22 }; enum Creatures @@ -61,7 +62,8 @@ enum Creatures NPC_KRI = 15511, NPC_VEKLOR = 15276, NPC_VEKNILASH = 15275, - NPC_OURO = 15517 + NPC_OURO = 15517, + NPC_SARTURA = 15516 }; template From d1b690e3fa89897b6eada5fc8ec11354227cf2d5 Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Tue, 3 May 2022 10:28:43 +0000 Subject: [PATCH 09/11] chore(DB): import pending files Referenced commit(s): e7531fa2a99df1e2a140b8200d6a4494d38b715a --- .../rev_1651431887064573700.sql => db_world/2022_05_03_02.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1651431887064573700.sql => db_world/2022_05_03_02.sql} (82%) diff --git a/data/sql/updates/pending_db_world/rev_1651431887064573700.sql b/data/sql/updates/db_world/2022_05_03_02.sql similarity index 82% rename from data/sql/updates/pending_db_world/rev_1651431887064573700.sql rename to data/sql/updates/db_world/2022_05_03_02.sql index 17064a3b6..ce05085d5 100644 --- a/data/sql/updates/pending_db_world/rev_1651431887064573700.sql +++ b/data/sql/updates/db_world/2022_05_03_02.sql @@ -1,3 +1,4 @@ +-- DB update 2022_05_03_01 -> 2022_05_03_02 -- DELETE FROM `areatrigger_scripts` WHERE `entry` = 4052 AND `ScriptName` = 'at_battleguard_sartura'; INSERT INTO `areatrigger_scripts` (`entry`, `ScriptName`) VALUES From 6f46e62fc2b6c4be242e9acd2dbb5b35ed3aeb28 Mon Sep 17 00:00:00 2001 From: temperrr Date: Wed, 4 May 2022 02:28:09 +0200 Subject: [PATCH 10/11] Fix(DB/Creature): Set correct faction flag for Aggi Rumplestomp. (#11511) --- data/sql/updates/pending_db_world/rev_1650793025980507979.sql | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1650793025980507979.sql diff --git a/data/sql/updates/pending_db_world/rev_1650793025980507979.sql b/data/sql/updates/pending_db_world/rev_1650793025980507979.sql new file mode 100644 index 000000000..a470ab048 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1650793025980507979.sql @@ -0,0 +1,4 @@ +UPDATE `creature_template` SET `faction` = 1216 WHERE (`entry` = 13086); +UPDATE `creature_template` SET `faction` = 1216 WHERE (`entry` = 22670); +UPDATE `creature_template` SET `faction` = 1216 WHERE (`entry` = 31918); +UPDATE `creature_template` SET `faction` = 1216 WHERE (`entry` = 37234); From 283ce18bb7b961264eae983a401aaacb89725273 Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Wed, 4 May 2022 00:30:09 +0000 Subject: [PATCH 11/11] chore(DB): import pending files Referenced commit(s): 6f46e62fc2b6c4be242e9acd2dbb5b35ed3aeb28 --- .../rev_1650793025980507979.sql => db_world/2022_05_04_00.sql} | 1 + 1 file changed, 1 insertion(+) rename data/sql/updates/{pending_db_world/rev_1650793025980507979.sql => db_world/2022_05_04_00.sql} (86%) diff --git a/data/sql/updates/pending_db_world/rev_1650793025980507979.sql b/data/sql/updates/db_world/2022_05_04_00.sql similarity index 86% rename from data/sql/updates/pending_db_world/rev_1650793025980507979.sql rename to data/sql/updates/db_world/2022_05_04_00.sql index a470ab048..1e2cad335 100644 --- a/data/sql/updates/pending_db_world/rev_1650793025980507979.sql +++ b/data/sql/updates/db_world/2022_05_04_00.sql @@ -1,3 +1,4 @@ +-- DB update 2022_05_03_02 -> 2022_05_04_00 UPDATE `creature_template` SET `faction` = 1216 WHERE (`entry` = 13086); UPDATE `creature_template` SET `faction` = 1216 WHERE (`entry` = 22670); UPDATE `creature_template` SET `faction` = 1216 WHERE (`entry` = 31918);