From 69a3904b8eefb4c296ff7f9778a02c135bcc3d13 Mon Sep 17 00:00:00 2001 From: Nefertumm Date: Sat, 26 Mar 2022 22:56:30 -0300 Subject: [PATCH 01/57] fix(Core/BWL): Victor Nefarius Shadow Bolt (#11078) --- .../BlackwingLair/boss_nefarian.cpp | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp index 7073db104..2b366aadc 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp @@ -34,6 +34,7 @@ enum Events EVENT_CHECK_PHASE_2, EVENT_START_EVENT, EVENT_SHADOW_BOLT, + EVENT_SHADOW_BOLT_VOLLEY, EVENT_FEAR, EVENT_SILENCE, EVENT_MIND_CONTROL, @@ -298,7 +299,8 @@ public: SetCombatMovement(false); AttackStart(SelectTarget(SelectTargetMethod::Random, 0, 200.f, true)); events.ScheduleEvent(EVENT_SHADOWBLINK, 500); - events.ScheduleEvent(EVENT_SHADOW_BOLT, urand(3000, 10000)); + events.ScheduleEvent(EVENT_SHADOW_BOLT, 3000); + events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, urand(13000, 15000)); events.ScheduleEvent(EVENT_FEAR, urand(10000, 20000)); events.ScheduleEvent(EVENT_SILENCE, urand(20000, 25000)); events.ScheduleEvent(EVENT_MIND_CONTROL, urand(30000, 35000)); @@ -388,17 +390,12 @@ public: switch (eventId) { case EVENT_SHADOW_BOLT: - switch (urand(0, 1)) - { - case 0: - DoCastAOE(SPELL_SHADOWBOLT_VOLLEY); - break; - case 1: - DoCastRandomTarget(SPELL_SHADOWBOLT, 0, 150.f); - break; - } - DoResetThreat(); - events.ScheduleEvent(EVENT_SHADOW_BOLT, urand(3000, 10000)); + DoCastRandomTarget(SPELL_SHADOWBOLT, 0, 150.f); + events.ScheduleEvent(EVENT_SHADOW_BOLT, urand(2000, 4000)); + break; + case EVENT_SHADOW_BOLT_VOLLEY: + DoCastAOE(SPELL_SHADOWBOLT_VOLLEY); + events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, 19000, 25000); break; case EVENT_FEAR: if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40, true)) @@ -412,7 +409,7 @@ public: case EVENT_MIND_CONTROL: if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40, true)) DoCast(target, SPELL_SHADOW_COMMAND); - events.ScheduleEvent(EVENT_MIND_CONTROL, urand(30000, 35000)); + events.ScheduleEvent(EVENT_MIND_CONTROL, urand(24000, 30000)); break; case EVENT_SHADOWBLINK: DoCastSelf(SPELL_SHADOWBLINK); @@ -436,6 +433,7 @@ public: events.CancelEvent(EVENT_MIND_CONTROL); events.CancelEvent(EVENT_FEAR); events.CancelEvent(EVENT_SHADOW_BOLT); + events.CancelEvent(EVENT_SHADOW_BOLT_VOLLEY); events.CancelEvent(EVENT_SILENCE); DoCastSelf(SPELL_ROOT_SELF, true); me->SetVisible(false); From 2ddf2303ea566baac7cce3928718e49121b3ab5e Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Sun, 27 Mar 2022 03:58:10 +0200 Subject: [PATCH 02/57] fix(Scripts/Blackwing Lair): Supression traps should not be disarmed... (#11082) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit …after Broodlord defeat. --- .../boss_broodlord_lashlayer.cpp | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp index 1152b769c..21095dd73 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp @@ -51,7 +51,8 @@ enum Events enum Actions { - ACTION_DISARMED = 0 + ACTION_DEACTIVATE = 0, + ACTION_DISARMED = 1 }; class boss_broodlord : public CreatureScript @@ -75,6 +76,18 @@ public: events.ScheduleEvent(EVENT_CHECK, 1000); } + void JustDied(Unit* /*killer*/) override + { + _JustDied(); + + std::list _goList; + GetGameObjectListWithEntryInGrid(_goList, me, GO_SUPPRESSION_DEVICE, 200.0f); + for (std::list::const_iterator itr = _goList.begin(); itr != _goList.end(); itr++) + { + ((*itr)->AI()->DoAction(ACTION_DEACTIVATE)); + } + } + void UpdateAI(uint32 diff) override { if (!UpdateVictim()) @@ -183,11 +196,19 @@ class go_suppression_device : public GameObjectScript void DoAction(int32 action) override { - if (action == ACTION_DISARMED) + if (action == ACTION_DEACTIVATE) + { + _events.CancelEvent(EVENT_SUPPRESSION_RESET); + } + else if (action == ACTION_DISARMED) { Deactivate(); _events.CancelEvent(EVENT_SUPPRESSION_CAST); - _events.ScheduleEvent(EVENT_SUPPRESSION_RESET, urand(30000, 120000)); + + if (_instance->GetBossState(DATA_BROODLORD_LASHLAYER) != DONE) + { + _events.ScheduleEvent(EVENT_SUPPRESSION_RESET, urand(30000, 120000)); + } } } From 463c49ec2e20a865d9da8c562960c8bde91130fb Mon Sep 17 00:00:00 2001 From: temperrr Date: Sun, 27 Mar 2022 04:00:40 +0200 Subject: [PATCH 03/57] fix (DB/Creature): BWL trash boe drop adjustment (#11156) --- .../rev_1648306734434273023.sql | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1648306734434273023.sql diff --git a/data/sql/updates/pending_db_world/rev_1648306734434273023.sql b/data/sql/updates/pending_db_world/rev_1648306734434273023.sql new file mode 100644 index 000000000..43050ec6b --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1648306734434273023.sql @@ -0,0 +1,25 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648306734434273023'); + +DELETE FROM `creature_loot_template` WHERE (`Entry` = 12459) AND (`Item` IN (19362, 19434, 19435)); +INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES +(12459, 19362, 0, 2, 0, 1, 0, 1, 1, 'Blackwing Warlock - Doom\'s Edge'), +(12459, 19434, 0, 2, 0, 1, 0, 1, 1, 'Blackwing Warlock - Band of Dark Dominion'), +(12459, 19435, 0, 2, 0, 1, 0, 1, 1, 'Blackwing Warlock - Essence Gatherer'); + +DELETE FROM `creature_loot_template` WHERE (`Entry` = 12457) AND (`Item` IN (19362, 19434, 19435)); +INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES +(12457, 19362, 0, 2, 0, 1, 0, 1, 1, 'Blackwing Spellbinder - Doom\'s Edge'), +(12457, 19434, 0, 2, 0, 1, 0, 1, 1, 'Blackwing Spellbinder - Band of Dark Dominion'), +(12457, 19435, 0, 2, 0, 1, 0, 1, 1, 'Blackwing Spellbinder - Essence Gatherer'); + +DELETE FROM `creature_loot_template` WHERE (`Entry` = 12461) AND (`Item` IN (19362, 19434, 19435)); +INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES +(12461, 19362, 0, 2, 0, 1, 0, 1, 1, 'Death Talon Overseer - Doom\'s Edge'), +(12461, 19434, 0, 2, 0, 1, 0, 1, 1, 'Death Talon Overseer - Band of Dark Dominion'), +(12461, 19435, 0, 2, 0, 1, 0, 1, 1, 'Death Talon Overseer - Essence Gatherer'); + +DELETE FROM `creature_loot_template` WHERE (`Entry` = 12460) AND (`Item` IN (19354, 19438, 19439)); +INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `QuestRequired`, `LootMode`, `GroupId`, `MinCount`, `MaxCount`, `Comment`) VALUES +(12460, 19354, 0, 5, 0, 1, 0, 1, 1, 'Death Talon Wyrmguard - Draconic Avenger'), +(12460, 19438, 0, 5, 0, 1, 0, 1, 1, 'Death Talon Wyrmguard - Ringo\'s Blizzard Boots'), +(12460, 19439, 0, 5, 0, 1, 0, 1, 1, 'Death Talon Wyrmguard - Interlaced Shadow Jerkin'); From 641d38d9fbd77fa9961305d1efc62b8a1bfb04cc Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 02:02:35 +0000 Subject: [PATCH 04/57] chore(DB): import pending files Referenced commit(s): 463c49ec2e20a865d9da8c562960c8bde91130fb --- .../2022_03_27_00.sql} | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) rename data/sql/updates/{pending_db_world/rev_1648306734434273023.sql => db_world/2022_03_27_00.sql} (71%) diff --git a/data/sql/updates/pending_db_world/rev_1648306734434273023.sql b/data/sql/updates/db_world/2022_03_27_00.sql similarity index 71% rename from data/sql/updates/pending_db_world/rev_1648306734434273023.sql rename to data/sql/updates/db_world/2022_03_27_00.sql index 43050ec6b..6d0043321 100644 --- a/data/sql/updates/pending_db_world/rev_1648306734434273023.sql +++ b/data/sql/updates/db_world/2022_03_27_00.sql @@ -1,3 +1,19 @@ +-- DB update 2022_03_25_00 -> 2022_03_27_00 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_25_00'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_25_00 2022_03_27_00 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1648306734434273023'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648306734434273023'); DELETE FROM `creature_loot_template` WHERE (`Entry` = 12459) AND (`Item` IN (19362, 19434, 19435)); @@ -23,3 +39,13 @@ INSERT INTO `creature_loot_template` (`Entry`, `Item`, `Reference`, `Chance`, `Q (12460, 19354, 0, 5, 0, 1, 0, 1, 1, 'Death Talon Wyrmguard - Draconic Avenger'), (12460, 19438, 0, 5, 0, 1, 0, 1, 1, 'Death Talon Wyrmguard - Ringo\'s Blizzard Boots'), (12460, 19439, 0, 5, 0, 1, 0, 1, 1, 'Death Talon Wyrmguard - Interlaced Shadow Jerkin'); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_00' WHERE sql_rev = '1648306734434273023'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; From f5d01baa0cf330a04b9f206cd275af5609042bf3 Mon Sep 17 00:00:00 2001 From: Nefertumm Date: Sat, 26 Mar 2022 23:03:44 -0300 Subject: [PATCH 05/57] fix(DB/Formations): Death Talon Wyrmguard should be linked (#11068) --- .../updates/pending_db_world/rev_1647566741929769300.sql | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1647566741929769300.sql diff --git a/data/sql/updates/pending_db_world/rev_1647566741929769300.sql b/data/sql/updates/pending_db_world/rev_1647566741929769300.sql new file mode 100644 index 000000000..58bd761c0 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1647566741929769300.sql @@ -0,0 +1,8 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647566741929769300'); + +SET @LEADERGUID := 84648; +DELETE FROM `creature_formations` WHERE `memberGUID` IN (@LEADERGUID, 84639, 84650); +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES +(@LEADERGUID, @LEADERGUID, 0, 0, 3), +(@LEADERGUID, 84639, 0, 0, 3), +(@LEADERGUID, 84650, 0, 0, 3); From c9d2c5ad4f6e4be78d8376fe191148486d868a08 Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 02:05:28 +0000 Subject: [PATCH 06/57] chore(DB): import pending files Referenced commit(s): f5d01baa0cf330a04b9f206cd275af5609042bf3 --- data/sql/updates/db_world/2022_03_27_01.sql | 34 +++++++++++++++++++ .../rev_1647566741929769300.sql | 8 ----- 2 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 data/sql/updates/db_world/2022_03_27_01.sql delete mode 100644 data/sql/updates/pending_db_world/rev_1647566741929769300.sql diff --git a/data/sql/updates/db_world/2022_03_27_01.sql b/data/sql/updates/db_world/2022_03_27_01.sql new file mode 100644 index 000000000..e2272f80f --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_01.sql @@ -0,0 +1,34 @@ +-- DB update 2022_03_27_00 -> 2022_03_27_01 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_00'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_00 2022_03_27_01 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647566741929769300'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647566741929769300'); + +SET @LEADERGUID := 84648; +DELETE FROM `creature_formations` WHERE `memberGUID` IN (@LEADERGUID, 84639, 84650); +INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES +(@LEADERGUID, @LEADERGUID, 0, 0, 3), +(@LEADERGUID, 84639, 0, 0, 3), +(@LEADERGUID, 84650, 0, 0, 3); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_01' WHERE sql_rev = '1647566741929769300'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/pending_db_world/rev_1647566741929769300.sql b/data/sql/updates/pending_db_world/rev_1647566741929769300.sql deleted file mode 100644 index 58bd761c0..000000000 --- a/data/sql/updates/pending_db_world/rev_1647566741929769300.sql +++ /dev/null @@ -1,8 +0,0 @@ -INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647566741929769300'); - -SET @LEADERGUID := 84648; -DELETE FROM `creature_formations` WHERE `memberGUID` IN (@LEADERGUID, 84639, 84650); -INSERT INTO `creature_formations` (`leaderGUID`, `memberGUID`, `dist`, `angle`, `groupAI`) VALUES -(@LEADERGUID, @LEADERGUID, 0, 0, 3), -(@LEADERGUID, 84639, 0, 0, 3), -(@LEADERGUID, 84650, 0, 0, 3); From 58f7e0e946db481ba75de2b7805e4f6cc81ff8b4 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Sun, 27 Mar 2022 05:24:06 +0200 Subject: [PATCH 07/57] =?UTF-8?q?fix(DB/SAI):=20Despawn=20all=20nearest=20?= =?UTF-8?q?Demon=20Portals=20on=20Blackwing=20Warlock=20d=E2=80=A6=20(#110?= =?UTF-8?q?92)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit …eath. --- .../sql/updates/pending_db_world/rev_1647788061160494500.sql | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1647788061160494500.sql diff --git a/data/sql/updates/pending_db_world/rev_1647788061160494500.sql b/data/sql/updates/pending_db_world/rev_1647788061160494500.sql new file mode 100644 index 000000000..ad822be94 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1647788061160494500.sql @@ -0,0 +1,5 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647788061160494500'); + +DELETE FROM `smart_scripts` WHERE `entryorguid`=12459 AND `source_type`=0 AND `id`=3; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(12459,0,3,0,6,0,100,0,0,0,0,0,0,41,0,0,0,0,0,0,11,14081,10,0,0,0,0,0,0,'Blackwing Warlock - On Death - Despawn nearest Demon Portals'); From 4e54bbf9d0af97cd3cda9d7b327d967a64e0d9c6 Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 03:25:52 +0000 Subject: [PATCH 08/57] chore(DB): import pending files Referenced commit(s): 58f7e0e946db481ba75de2b7805e4f6cc81ff8b4 --- data/sql/updates/db_world/2022_03_27_02.sql | 31 +++++++++++++++++++ .../rev_1647788061160494500.sql | 5 --- 2 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 data/sql/updates/db_world/2022_03_27_02.sql delete mode 100644 data/sql/updates/pending_db_world/rev_1647788061160494500.sql diff --git a/data/sql/updates/db_world/2022_03_27_02.sql b/data/sql/updates/db_world/2022_03_27_02.sql new file mode 100644 index 000000000..f46542f39 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_02.sql @@ -0,0 +1,31 @@ +-- DB update 2022_03_27_01 -> 2022_03_27_02 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_01'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_01 2022_03_27_02 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647788061160494500'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647788061160494500'); + +DELETE FROM `smart_scripts` WHERE `entryorguid`=12459 AND `source_type`=0 AND `id`=3; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(12459,0,3,0,6,0,100,0,0,0,0,0,0,41,0,0,0,0,0,0,11,14081,10,0,0,0,0,0,0,'Blackwing Warlock - On Death - Despawn nearest Demon Portals'); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_02' WHERE sql_rev = '1647788061160494500'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/pending_db_world/rev_1647788061160494500.sql b/data/sql/updates/pending_db_world/rev_1647788061160494500.sql deleted file mode 100644 index ad822be94..000000000 --- a/data/sql/updates/pending_db_world/rev_1647788061160494500.sql +++ /dev/null @@ -1,5 +0,0 @@ -INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647788061160494500'); - -DELETE FROM `smart_scripts` WHERE `entryorguid`=12459 AND `source_type`=0 AND `id`=3; -INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES -(12459,0,3,0,6,0,100,0,0,0,0,0,0,41,0,0,0,0,0,0,11,14081,10,0,0,0,0,0,0,'Blackwing Warlock - On Death - Despawn nearest Demon Portals'); From fe3dad218dde2579421e360fba08e59847cead9b Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Sun, 27 Mar 2022 06:07:30 +0200 Subject: [PATCH 09/57] =?UTF-8?q?fix(DB/Creatures):=20Corrupted=20Blue=20W?= =?UTF-8?q?help=20should=20stop=20respawning=20if=20Bro=E2=80=A6=20(#11153?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit …odlord Lashlayer is dead. --- .../rev_1648294393927803100.sql | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1648294393927803100.sql diff --git a/data/sql/updates/pending_db_world/rev_1648294393927803100.sql b/data/sql/updates/pending_db_world/rev_1648294393927803100.sql new file mode 100644 index 000000000..4d99f441b --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1648294393927803100.sql @@ -0,0 +1,45 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648294393927803100'); + +DELETE FROM `linked_respawn` WHERE `guid` BETWEEN 2000009 AND 2000049; +INSERT INTO `linked_respawn` (`guid`, `linkedGuid`, `linkType`) VALUES +(2000009,84387,0), +(2000010,84387,0), +(2000011,84387,0), +(2000012,84387,0), +(2000013,84387,0), +(2000014,84387,0), +(2000015,84387,0), +(2000016,84387,0), +(2000017,84387,0), +(2000018,84387,0), +(2000019,84387,0), +(2000020,84387,0), +(2000021,84387,0), +(2000022,84387,0), +(2000023,84387,0), +(2000024,84387,0), +(2000025,84387,0), +(2000026,84387,0), +(2000027,84387,0), +(2000028,84387,0), +(2000029,84387,0), +(2000030,84387,0), +(2000031,84387,0), +(2000032,84387,0), +(2000033,84387,0), +(2000034,84387,0), +(2000035,84387,0), +(2000036,84387,0), +(2000037,84387,0), +(2000038,84387,0), +(2000039,84387,0), +(2000040,84387,0), +(2000041,84387,0), +(2000042,84387,0), +(2000043,84387,0), +(2000044,84387,0), +(2000045,84387,0), +(2000046,84387,0), +(2000047,84387,0), +(2000048,84387,0), +(2000049,84387,0); From 2fd47728314cfeb26d3eb14ea46738fc2a50fb39 Mon Sep 17 00:00:00 2001 From: ZhengPeiRu21 <98835050+ZhengPeiRu21@users.noreply.github.com> Date: Sat, 26 Mar 2022 22:08:59 -0600 Subject: [PATCH 10/57] fix(DB/pathing): Duskwood and Deadwind Missing Pathing (#11054) --- .../rev_1647450466526877000.sql | 525 ++++++++++++++++++ 1 file changed, 525 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1647450466526877000.sql diff --git a/data/sql/updates/pending_db_world/rev_1647450466526877000.sql b/data/sql/updates/pending_db_world/rev_1647450466526877000.sql new file mode 100644 index 000000000..1d89376d8 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1647450466526877000.sql @@ -0,0 +1,525 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647450466526877000'); + +/* Unliving Resident - GUID 4025 */ + + +SET @NPC := 4025; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -11095.1, `position_y` = -1910.74, `position_z` = 3.21322, `orientation` = 3.9274 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -11095.1, -1910.74, 3.21322, 100.0, 0), +(@PATH, 2, -11094.6, -1892.78, 2.01981, 100.0, 0), +(@PATH, 3, -11082.4, -1891.29, 1.17905, 100.0, 0), +(@PATH, 4, -11051.7, -1898.53, -3.986, 100.0, 0), +(@PATH, 5, -11038.2, -1906.65, -3.48946, 100.0, 0), +(@PATH, 6, -11038.9, -1923.58, -4.59355, 100.0, 0), +(@PATH, 7, -11052.0, -1932.28, -5.27407, 100.0, 0), +(@PATH, 8, -11073.3, -1936.16, -7.25148, 100.0, 0), +(@PATH, 9, -11104.5, -1945.88, -10.9586, 100.0, 0), +(@PATH, 10, -11121.1, -1928.71, -12.5844, 100.0, 0), +(@PATH, 11, -11133.4, -1888.57, -12.6572, 100.0, 0), +(@PATH, 12, -11133.1, -1869.91, -11.7546, 100.0, 0), +(@PATH, 13, -11120.5, -1848.14, -11.2241, 100.0, 0), +(@PATH, 14, -11137.5, -1870.44, -13.1619, 100.0, 0), +(@PATH, 15, -11134.2, -1905.88, -13.3185, 100.0, 0), +(@PATH, 16, -11122.8, -1929.82, -12.7888, 100.0, 0), +(@PATH, 17, -11097.8, -1944.76, -9.9939, 100.0, 0), +(@PATH, 18, -11071.5, -1936.73, -6.91792, 100.0, 0), +(@PATH, 19, -11049.2, -1932.39, -5.29754, 100.0, 0), +(@PATH, 20, -11036.9, -1919.96, -4.30209, 100.0, 0), +(@PATH, 21, -11037.8, -1906.61, -3.45571, 100.0, 0), +(@PATH, 22, -11053.3, -1896.37, -3.74098, 100.0, 0), +(@PATH, 23, -11071.2, -1893.61, -0.715124, 100.0, 0), +(@PATH, 24, -11093.8, -1892.31, 2.02048, 100.0, 0); + + +/* Unliving Resident - GUID 4030 */ + + +SET @NPC := 4030; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -11106.1, `position_y` = -1917.02, `position_z` = 1.84265, `orientation` = 5.27257 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -11106.1, -1917.02, 1.84265, 100.0, 0), +(@PATH, 2, -11095.6, -1932.36, 4.8592, 100.0, 0), +(@PATH, 3, -11101.0, -1976.97, 6.75665, 100.0, 0), +(@PATH, 4, -11106.2, -1996.71, 12.7172, 100.0, 0), +(@PATH, 5, -11126.0, -2005.13, 14.4021, 100.0, 0), +(@PATH, 6, -11134.7, -1991.49, 16.7522, 100.0, 0), +(@PATH, 7, -11145.5, -1971.53, 22.9096, 100.0, 0), +(@PATH, 8, -11151.0, -1961.27, 22.8555, 100.0, 0), +(@PATH, 9, -11158.0, -1961.54, 22.797, 100.0, 0), +(@PATH, 10, -11170.1, -1968.57, 22.7836, 100.0, 0), +(@PATH, 11, -11182.9, -1982.89, 22.7616, 100.0, 0), +(@PATH, 12, -11181.5, -1994.34, 22.7571, 100.0, 0), +(@PATH, 13, -11177.3, -2001.36, 22.7926, 100.0, 0), +(@PATH, 14, -11183.6, -1990.17, 22.7412, 100.0, 0), +(@PATH, 15, -11178.9, -1975.15, 22.7914, 100.0, 0), +(@PATH, 16, -11154.5, -1961.37, 22.8387, 100.0, 0), +(@PATH, 17, -11144.7, -1969.68, 22.8894, 100.0, 0), +(@PATH, 18, -11134.0, -1996.18, 15.7482, 100.0, 0), +(@PATH, 19, -11121.0, -2006.04, 13.8847, 100.0, 0), +(@PATH, 20, -11107.6, -2001.98, 13.1692, 100.0, 0), +(@PATH, 21, -11100.6, -1966.46, 2.36667, 100.0, 0), +(@PATH, 22, -11096.0, -1933.57, 4.96026, 100.0, 0); + + +/* Wailing Spectre - GUID 4051 */ + + +SET @NPC := 4051; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -11210.8, `position_y` = -2191.99, `position_z` = 22.7419, `orientation` = 2.71175 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -11210.8, -2191.99, 22.7419, 100.0, 1000), +(@PATH, 2, -11241.0, -2198.84, 22.7022, 100.0, 0), +(@PATH, 3, -11256.9, -2199.0, 22.7027, 100.0, 0), +(@PATH, 4, -11282.8, -2194.2, 22.7064, 100.0, 0), +(@PATH, 5, -11326.2, -2189.52, 22.7064, 100.0, 0), +(@PATH, 6, -11366.9, -2185.51, 22.9566, 100.0, 1000), +(@PATH, 7, -11326.3, -2189.22, 22.7074, 100.0, 0), +(@PATH, 8, -11286.8, -2193.12, 22.7074, 100.0, 0), +(@PATH, 9, -11246.0, -2200.46, 22.7043, 100.0, 0); + + +/* Wailing Spectre - GUID 4055 */ + + +SET @NPC := 4055; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -11183.7, `position_y` = -2076.16, `position_z` = 35.5059, `orientation` = 1.53675 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -11183.7, -2076.16, 35.5059, 100.0, 0), +(@PATH, 2, -11172.0, -2076.4, 35.5059, 100.0, 0), +(@PATH, 3, -11193.6, -2074.82, 35.5059, 100.0, 0), +(@PATH, 4, -11183.5, -2075.88, 35.5059, 100.0, 0), +(@PATH, 5, -11185.9, -2102.24, 31.2394, 100.0, 0), +(@PATH, 6, -11173.0, -2103.66, 31.2394, 100.0, 0), +(@PATH, 7, -11195.6, -2101.73, 31.2394, 100.0, 0), +(@PATH, 8, -11185.6, -2103.02, 31.2394, 100.0, 0), +(@PATH, 9, -11188.0, -2129.38, 26.9742, 100.0, 0), +(@PATH, 10, -11176.8, -2130.71, 26.9742, 100.0, 0), +(@PATH, 11, -11197.1, -2129.47, 26.9742, 100.0, 0), +(@PATH, 12, -11188.2, -2129.57, 26.9742, 100.0, 0), +(@PATH, 13, -11190.6, -2161.87, 22.7, 100.0, 0), +(@PATH, 14, -11188.1, -2130.17, 26.9744, 100.0, 0), +(@PATH, 15, -11180.1, -2130.91, 26.9744, 100.0, 0), +(@PATH, 16, -11198.9, -2128.94, 26.9728, 100.0, 0), +(@PATH, 17, -11188.1, -2130.19, 26.9728, 100.0, 0), +(@PATH, 18, -11185.8, -2102.4, 31.2392, 100.0, 0), +(@PATH, 19, -11175.0, -2103.68, 31.2392, 100.0, 0), +(@PATH, 20, -11194.7, -2101.89, 31.2392, 100.0, 0), +(@PATH, 21, -11185.3, -2103.35, 31.2392, 100.0, 0), +(@PATH, 22, -11183.6, -2075.87, 35.5054, 100.0, 0), +(@PATH, 23, -11173.6, -2076.92, 35.5054, 100.0, 0), +(@PATH, 24, -11192.5, -2075.51, 35.5054, 100.0, 0); + + + +/* Green Recluse - GUID 4241 */ + + +SET @NPC := 4241; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -10963.0, `position_y` = 472.957, `position_z` = 41.2228, `orientation` = 3.66559 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -10963.0, 472.957, 41.2228, 100.0, 0), +(@PATH, 2, -10982.5, 454.528, 39.7546, 100.0, 0), +(@PATH, 3, -10994.2, 429.068, 38.7282, 100.0, 0), +(@PATH, 4, -11027.2, 412.812, 33.6053, 100.0, 0), +(@PATH, 5, -11033.6, 389.422, 34.703, 100.0, 0), +(@PATH, 6, -11050.3, 372.899, 31.9925, 100.0, 0), +(@PATH, 7, -11062.5, 352.555, 29.4821, 100.0, 0), +(@PATH, 8, -11051.4, 336.537, 32.0397, 100.0, 0), +(@PATH, 9, -11029.6, 327.061, 27.7174, 100.0, 0), +(@PATH, 10, -11007.0, 325.887, 34.4693, 100.0, 0), +(@PATH, 11, -10988.5, 353.52, 34.1904, 100.0, 0), +(@PATH, 12, -10975.6, 363.202, 35.3692, 100.0, 0), +(@PATH, 13, -10915.2, 396.127, 44.635, 100.0, 0), +(@PATH, 14, -10902.3, 439.368, 45.3285, 100.0, 0), +(@PATH, 15, -10907.2, 454.818, 44.8949, 100.0, 0), +(@PATH, 16, -10934.8, 471.136, 42.0589, 100.0, 0); + + +/* Bone Chewer - GUID 4401 */ + + +SET @NPC := 4401; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -10228.7, `position_y` = 351.048, `position_z` = 9.63406, `orientation` = 0.107699 WHERE `guid` = @NPC; + +UPDATE `creature_addon` set `path_id` = @PATH WHERE `guid` = @NPC; +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -10228.7, 351.048, 9.63406, 100.0, 0), +(@PATH, 2, -10220.9, 343.408, 8.31477, 100.0, 0), +(@PATH, 3, -10208.7, 343.188, 8.91591, 100.0, 0), +(@PATH, 4, -10196.6, 351.738, 8.76319, 100.0, 0), +(@PATH, 5, -10185.2, 352.423, 10.7034, 100.0, 0), +(@PATH, 6, -10176.9, 348.391, 9.77995, 100.0, 0), +(@PATH, 7, -10168.9, 339.213, 8.52578, 100.0, 0), +(@PATH, 8, -10165.7, 330.467, 7.31532, 100.0, 0), +(@PATH, 9, -10169.3, 322.305, 6.54894, 100.0, 0), +(@PATH, 10, -10180.0, 318.602, 6.77051, 100.0, 0), +(@PATH, 11, -10191.2, 314.034, 7.17364, 100.0, 0), +(@PATH, 12, -10198.5, 308.553, 5.12256, 100.0, 0), +(@PATH, 13, -10197.0, 294.262, 2.72569, 100.0, 0), +(@PATH, 14, -10194.3, 283.135, 2.02693, 100.0, 0), +(@PATH, 15, -10196.5, 292.286, 2.58085, 100.0, 0), +(@PATH, 16, -10199.8, 304.583, 3.86606, 100.0, 0), +(@PATH, 17, -10197.7, 309.325, 5.48173, 100.0, 0), +(@PATH, 18, -10187.4, 316.383, 7.23757, 100.0, 0), +(@PATH, 19, -10175.7, 318.966, 6.44419, 100.0, 0), +(@PATH, 20, -10166.8, 326.153, 6.87309, 100.0, 0), +(@PATH, 21, -10167.0, 334.818, 7.94311, 100.0, 0), +(@PATH, 22, -10171.3, 343.1, 9.22542, 100.0, 0), +(@PATH, 23, -10180.8, 350.711, 10.2878, 100.0, 0), +(@PATH, 24, -10192.7, 353.604, 9.31527, 100.0, 0), +(@PATH, 25, -10202.0, 346.365, 7.84645, 100.0, 0), +(@PATH, 26, -10216.3, 342.358, 8.45914, 100.0, 0), +(@PATH, 27, -10225.1, 345.221, 8.72192, 100.0, 0), +(@PATH, 28, -10229.0, 354.197, 9.80023, 100.0, 0); + + +/* Skeletal Warder - GUID 4402 */ + + +SET @NPC := 4402; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -10414.1, `position_y` = 403.54, `position_z` = 47.7959, `orientation` = 3.0298 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -10414.1, 403.54, 47.7959, 100.0, 0), +(@PATH, 2, -10411.0, 415.171, 40.1772, 100.0, 0), +(@PATH, 3, -10392.9, 416.29, 29.1068, 100.0, 0), +(@PATH, 4, -10379.0, 412.91, 29.0842, 100.0, 0), +(@PATH, 5, -10348.1, 405.259, 15.9644, 100.0, 0), +(@PATH, 6, -10320.1, 398.071, 15.8847, 100.0, 0), +(@PATH, 7, -10285.7, 389.61, 15.6853, 100.0, 0), +(@PATH, 8, -10313.8, 396.488, 15.7496, 100.0, 0), +(@PATH, 9, -10345.2, 404.513, 16.0038, 100.0, 0), +(@PATH, 10, -10371.0, 410.878, 27.9095, 100.0, 0), +(@PATH, 11, -10384.4, 414.328, 29.0818, 100.0, 0), +(@PATH, 12, -10406.5, 418.847, 38.4252, 100.0, 0); + + +/* Skeletal Raider - GUID 4889 */ + + +SET @NPC := 4889; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -10317.6, `position_y` = 464.207, `position_z` = 15.8576, `orientation` = 3.84139 WHERE `guid` = @NPC; + +UPDATE `creature_addon` set `path_id` = @PATH WHERE `guid` = @NPC; +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -10317.6, 464.207, 15.8576, 100.0, 0), +(@PATH, 2, -10319.5, 457.095, 15.8678, 100.0, 0), +(@PATH, 3, -10322.1, 450.572, 15.8676, 100.0, 0), +(@PATH, 4, -10334.2, 443.355, 15.8676, 100.0, 0), +(@PATH, 5, -10336.5, 434.0, 15.8676, 100.0, 0), +(@PATH, 6, -10332.8, 424.144, 15.8676, 100.0, 0), +(@PATH, 7, -10333.8, 410.908, 16.0555, 100.0, 0), +(@PATH, 8, -10329.5, 401.654, 15.9962, 100.0, 0), +(@PATH, 9, -10306.3, 394.629, 15.6852, 100.0, 0), +(@PATH, 10, -10292.3, 395.424, 15.6853, 100.0, 0), +(@PATH, 11, -10278.6, 399.561, 15.6853, 100.0, 0), +(@PATH, 12, -10262.0, 397.602, 11.9738, 100.0, 0), +(@PATH, 13, -10256.8, 393.674, 10.4135, 100.0, 0), +(@PATH, 14, -10251.9, 389.152, 10.4135, 100.0, 0), +(@PATH, 15, -10250.8, 381.205, 10.4135, 100.0, 0), +(@PATH, 16, -10248.4, 376.254, 10.4135, 100.0, 0), +(@PATH, 17, -10239.5, 379.492, 10.4135, 100.0, 0), +(@PATH, 18, -10230.3, 378.412, 10.4135, 100.0, 0), +(@PATH, 19, -10218.9, 364.708, 10.4135, 100.0, 0), +(@PATH, 20, -10224.9, 373.694, 10.4135, 100.0, 0), +(@PATH, 21, -10233.3, 379.872, 10.4135, 100.0, 0), +(@PATH, 22, -10242.3, 377.349, 10.4135, 100.0, 0), +(@PATH, 23, -10248.3, 376.22, 10.4135, 100.0, 0), +(@PATH, 24, -10249.8, 384.505, 10.4135, 100.0, 0), +(@PATH, 25, -10251.7, 389.067, 10.4135, 100.0, 0), +(@PATH, 26, -10256.7, 393.442, 10.4135, 100.0, 0), +(@PATH, 27, -10270.8, 400.448, 15.6855, 100.0, 0), +(@PATH, 28, -10284.4, 397.469, 15.6853, 100.0, 0), +(@PATH, 29, -10299.2, 394.302, 15.6853, 100.0, 0), +(@PATH, 30, -10324.0, 397.968, 15.9209, 100.0, 0), +(@PATH, 31, -10333.4, 407.719, 16.0532, 100.0, 0), +(@PATH, 32, -10331.2, 417.762, 15.898, 100.0, 0), +(@PATH, 33, -10334.3, 427.185, 15.8676, 100.0, 0), +(@PATH, 34, -10336.4, 437.439, 15.8676, 100.0, 0), +(@PATH, 35, -10327.6, 446.085, 15.8676, 100.0, 0), +(@PATH, 36, -10322.2, 450.505, 15.8676, 100.0, 0); + + +/* Black Widow Hatchling - GUID 4902 */ + + +SET @NPC := 4902; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -10301.6, `position_y` = 0.194063, `position_z` = 46.3445, `orientation` = 2.2823 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -10301.6, 0.194063, 46.3445, 100.0, 0), +(@PATH, 2, -10308.1, 26.6428, 47.8693, 100.0, 0), +(@PATH, 3, -10331.9, 39.0091, 47.9571, 100.0, 0), +(@PATH, 4, -10360.0, 41.4104, 50.7178, 100.0, 0), +(@PATH, 5, -10365.2, 36.9746, 51.8405, 100.0, 0), +(@PATH, 6, -10359.5, 23.8917, 51.019, 100.0, 0), +(@PATH, 7, -10332.1, -75.3978, 42.2366, 100.0, 0), +(@PATH, 8, -10299.8, -99.7262, 42.2065, 100.0, 0), +(@PATH, 9, -10303.5, -55.9479, 42.5999, 100.0, 0), +(@PATH, 10, -10308.6, -36.9398, 41.8928, 100.0, 0), +(@PATH, 11, -10308.8, -20.8141, 42.7561, 100.0, 0); + + +/* Splinter Fist Warrior - GUID 5073 */ + + +SET @NPC := 5073; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -11110.0, `position_y` = -155.95, `position_z` = 11.7778, `orientation` = 0.459474 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -11110.0, -155.95, 11.7778, 100.0, 0), +(@PATH, 2, -11108.8, -148.036, 13.2968, 100.0, 0), +(@PATH, 3, -11118.4, -131.875, 12.0047, 100.0, 0), +(@PATH, 4, -11121.8, -106.117, 11.5575, 100.0, 0), +(@PATH, 5, -11121.7, -122.171, 12.0564, 100.0, 0), +(@PATH, 6, -11109.8, -141.866, 12.9087, 100.0, 0); + + +/* Skeletal Warder - GUID 5094 */ + + +SET @NPC := 5094; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -10355.1, `position_y` = 352.33, `position_z` = 15.9736, `orientation` = 6.04304 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -10355.1, 352.33, 15.9736, 100.0, 0), +(@PATH, 2, -10347.7, 352.817, 15.9736, 100.0, 0), +(@PATH, 3, -10345.5, 354.638, 15.9736, 100.0, 0), +(@PATH, 4, -10344.5, 361.763, 15.9736, 100.0, 0), +(@PATH, 5, -10348.3, 366.464, 15.9736, 100.0, 0), +(@PATH, 6, -10351.5, 375.142, 15.9736, 100.0, 0), +(@PATH, 7, -10344.1, 382.128, 15.9736, 100.0, 0), +(@PATH, 8, -10344.5, 392.092, 15.9908, 100.0, 0), +(@PATH, 9, -10345.4, 402.749, 16.0175, 100.0, 0), +(@PATH, 10, -10369.4, 410.928, 26.8698, 100.0, 0), +(@PATH, 11, -10378.6, 414.903, 29.0807, 100.0, 0), +(@PATH, 12, -10379.9, 424.817, 29.0795, 100.0, 0), +(@PATH, 13, -10386.0, 432.277, 29.0795, 100.0, 0), +(@PATH, 14, -10387.2, 440.174, 24.8359, 100.0, 0), +(@PATH, 15, -10380.7, 448.117, 24.834, 100.0, 0), +(@PATH, 16, -10371.5, 455.446, 25.0028, 100.0, 0), +(@PATH, 17, -10367.0, 467.777, 25.0028, 100.0, 0), +(@PATH, 18, -10371.6, 481.233, 24.834, 100.0, 0), +(@PATH, 19, -10363.2, 481.035, 24.8734, 100.0, 0), +(@PATH, 20, -10367.5, 449.085, 24.834, 100.0, 0), +(@PATH, 21, -10367.7, 437.808, 24.834, 100.0, 0), +(@PATH, 22, -10368.1, 431.91, 27.4331, 100.0, 0), +(@PATH, 23, -10374.8, 425.168, 29.0795, 100.0, 0), +(@PATH, 24, -10381.9, 417.368, 29.0795, 100.0, 0), +(@PATH, 25, -10385.8, 406.396, 29.0795, 100.0, 0), +(@PATH, 26, -10379.2, 396.033, 29.0795, 100.0, 0), +(@PATH, 27, -10377.8, 390.704, 27.058, 100.0, 0), +(@PATH, 28, -10386.2, 381.035, 24.3922, 100.0, 0), +(@PATH, 29, -10398.7, 368.109, 24.3969, 100.0, 0), +(@PATH, 30, -10406.9, 352.263, 24.8339, 100.0, 0), +(@PATH, 31, -10394.3, 343.694, 24.8339, 100.0, 0), +(@PATH, 32, -10386.3, 368.522, 24.506, 100.0, 0), +(@PATH, 33, -10395.6, 381.512, 24.3923, 100.0, 0), +(@PATH, 34, -10397.7, 394.416, 25.9037, 100.0, 0), +(@PATH, 35, -10389.8, 402.244, 29.0795, 100.0, 0), +(@PATH, 36, -10393.0, 400.646, 29.0795, 100.0, 0), +(@PATH, 37, -10398.1, 387.175, 24.8339, 100.0, 0), +(@PATH, 38, -10389.0, 376.263, 24.3921, 100.0, 0), +(@PATH, 39, -10391.3, 347.907, 24.5479, 100.0, 0), +(@PATH, 40, -10404.2, 347.843, 24.442, 100.0, 0), +(@PATH, 41, -10392.0, 375.448, 24.3937, 100.0, 0), +(@PATH, 42, -10381.3, 385.024, 24.8339, 100.0, 0), +(@PATH, 43, -10377.9, 390.278, 26.6428, 100.0, 0), +(@PATH, 44, -10384.3, 400.086, 29.0795, 100.0, 0), +(@PATH, 45, -10384.3, 412.797, 29.0795, 100.0, 0), +(@PATH, 46, -10378.7, 421.913, 29.0795, 100.0, 0), +(@PATH, 47, -10373.1, 426.184, 29.0795, 100.0, 0), +(@PATH, 48, -10368.5, 430.843, 28.5664, 100.0, 0), +(@PATH, 49, -10368.2, 443.341, 24.834, 100.0, 0), +(@PATH, 50, -10379.0, 449.525, 24.8433, 100.0, 0), +(@PATH, 51, -10384.5, 444.873, 24.834, 100.0, 0), +(@PATH, 52, -10387.8, 436.284, 27.8481, 100.0, 0), +(@PATH, 53, -10382.0, 429.461, 29.0795, 100.0, 0), +(@PATH, 54, -10380.0, 419.797, 29.0795, 100.0, 0), +(@PATH, 55, -10377.4, 414.224, 29.0795, 100.0, 0), +(@PATH, 56, -10347.2, 405.139, 15.9772, 100.0, 0), +(@PATH, 57, -10345.5, 399.519, 16.0451, 100.0, 0), +(@PATH, 58, -10343.1, 385.361, 15.9725, 100.0, 0), +(@PATH, 59, -10349.5, 378.241, 15.9736, 100.0, 0), +(@PATH, 60, -10351.6, 372.054, 15.9736, 100.0, 0), +(@PATH, 61, -10348.9, 366.719, 15.9736, 100.0, 0), +(@PATH, 62, -10344.5, 362.374, 15.9736, 100.0, 0), +(@PATH, 63, -10345.4, 355.239, 15.9736, 100.0, 0); + + +/* Rabid Dire Wolf - GUID 5150 */ + + +SET @NPC := 5150; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -10177.6, `position_y` = 222.201, `position_z` = 23.1674, `orientation` = 2.62509 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -10177.6, 222.201, 23.1674, 100.0, 0), +(@PATH, 2, -10168.8, 240.326, 22.6847, 100.0, 0), +(@PATH, 3, -10166.9, 276.071, 23.1022, 100.0, 0), +(@PATH, 4, -10178.8, 282.327, 23.6412, 100.0, 0), +(@PATH, 5, -10202.2, 288.041, 26.1563, 100.0, 0), +(@PATH, 6, -10219.9, 283.841, 32.6592, 100.0, 0), +(@PATH, 7, -10232.2, 264.566, 33.3733, 100.0, 0), +(@PATH, 8, -10232.0, 240.734, 31.767, 100.0, 0), +(@PATH, 9, -10249.2, 236.713, 31.0763, 100.0, 0), +(@PATH, 10, -10260.4, 213.571, 29.0039, 100.0, 0), +(@PATH, 11, -10257.2, 190.051, 32.6815, 100.0, 0), +(@PATH, 12, -10242.9, 161.452, 32.9415, 100.0, 0), +(@PATH, 13, -10227.4, 148.997, 31.5172, 100.0, 0), +(@PATH, 14, -10213.1, 134.704, 30.9467, 100.0, 0), +(@PATH, 15, -10197.6, 139.533, 29.8189, 100.0, 0), +(@PATH, 16, -10185.2, 154.721, 26.5017, 100.0, 0), +(@PATH, 17, -10176.7, 177.115, 24.2734, 100.0, 0), +(@PATH, 18, -10241.7, 159.204, 32.9059, 100.0, 0); + + +/* Plague Spreader - GUID 5969 */ + + +SET @NPC := 5969; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -10342.1, `position_y` = 173.163, `position_z` = 16.1488, `orientation` = 4.31581 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -10342.1, 173.163, 16.1488, 100.0, 0), +(@PATH, 2, -10344.3, 191.582, 25.7489, 100.0, 0), +(@PATH, 3, -10342.7, 178.137, 18.1823, 100.0, 0), +(@PATH, 4, -10338.8, 147.441, 3.48252, 100.0, 0), +(@PATH, 5, -10340.9, 138.639, 4.90493, 100.0, 0), +(@PATH, 6, -10360.4, 134.447, 2.25113, 100.0, 0), +(@PATH, 7, -10342.9, 133.15, 5.46266, 100.0, 0), +(@PATH, 8, -10335.7, 128.401, 3.961, 100.0, 0), +(@PATH, 9, -10331.1, 107.815, 1.7015, 100.0, 0), +(@PATH, 10, -10333.2, 137.227, 3.82124, 100.0, 0), +(@PATH, 11, -10286.2, 147.016, 2.79024, 100.0, 0), +(@PATH, 12, -10329.6, 139.619, 2.96308, 100.0, 0); + + +/* Nightbane Worgen - GUID 6063 */ + + +SET @NPC := 6063; +SET @PATH := @NPC * 10; + +UPDATE `creature` SET `position_x` = -10288.3, `position_y` = -785.67, `position_z` = 48.9806, `orientation` = 1.26872 WHERE `guid` = @NPC; + +DELETE FROM `creature_addon` WHERE `guid` = @NPC; +INSERT INTO `creature_addon` (`guid`, `path_id`) VALUES (@NPC, @PATH); +UPDATE `creature` SET `MovementType` = 2 WHERE `guid` = @NPC; + +DELETE FROM `waypoint_data` where `id` = @PATH; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`) VALUES +(@PATH, 1, -10288.3, -785.67, 48.9806, 100.0, 0), +(@PATH, 2, -10328.0, -811.732, 45.3941, 100.0, 0), +(@PATH, 3, -10339.0, -811.817, 46.3963, 100.0, 0), +(@PATH, 4, -10351.8, -803.15, 49.1603, 100.0, 0), +(@PATH, 5, -10369.9, -799.214, 53.3723, 100.0, 0), +(@PATH, 6, -10379.8, -803.096, 50.8648, 100.0, 0), +(@PATH, 7, -10399.0, -822.987, 47.6148, 100.0, 0), +(@PATH, 8, -10400.4, -838.233, 49.7322, 100.0, 0), +(@PATH, 9, -10384.2, -854.297, 45.8654, 100.0, 0), +(@PATH, 10, -10358.5, -879.575, 42.8552, 100.0, 0), +(@PATH, 11, -10339.7, -905.276, 38.3699, 100.0, 0), +(@PATH, 12, -10321.3, -910.707, 38.4765, 100.0, 0), +(@PATH, 13, -10305.2, -895.979, 39.7254, 100.0, 0), +(@PATH, 14, -10290.0, -867.965, 40.6098, 100.0, 0), +(@PATH, 15, -10266.6, -848.708, 41.6361, 100.0, 0), +(@PATH, 16, -10252.6, -829.123, 42.5013, 100.0, 0), +(@PATH, 17, -10242.0, -811.97, 41.2834, 100.0, 0), +(@PATH, 18, -10257.8, -798.468, 44.4208, 100.0, 0), +(@PATH, 19, -10275.7, -782.271, 46.6242, 100.0, 0), +(@PATH, 20, -10278.7, -771.588, 47.5163, 100.0, 0), +(@PATH, 21, -10288.4, -785.682, 48.9411, 100.0, 0); From e7299c6e36b46f8cc3f4cbfa07d3bc1c0be97b66 Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 04:10:54 +0000 Subject: [PATCH 11/57] chore(DB): import pending files Referenced commit(s): 2fd47728314cfeb26d3eb14ea46738fc2a50fb39 --- .../2022_03_27_03.sql} | 26 +++++++++++++++++++ .../2022_03_27_04.sql} | 26 +++++++++++++++++++ 2 files changed, 52 insertions(+) rename data/sql/updates/{pending_db_world/rev_1647450466526877000.sql => db_world/2022_03_27_03.sql} (96%) rename data/sql/updates/{pending_db_world/rev_1648294393927803100.sql => db_world/2022_03_27_04.sql} (54%) diff --git a/data/sql/updates/pending_db_world/rev_1647450466526877000.sql b/data/sql/updates/db_world/2022_03_27_03.sql similarity index 96% rename from data/sql/updates/pending_db_world/rev_1647450466526877000.sql rename to data/sql/updates/db_world/2022_03_27_03.sql index 1d89376d8..c087a959e 100644 --- a/data/sql/updates/pending_db_world/rev_1647450466526877000.sql +++ b/data/sql/updates/db_world/2022_03_27_03.sql @@ -1,3 +1,19 @@ +-- DB update 2022_03_27_02 -> 2022_03_27_03 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_02'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_02 2022_03_27_03 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647450466526877000'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647450466526877000'); /* Unliving Resident - GUID 4025 */ @@ -523,3 +539,13 @@ INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `positio (@PATH, 19, -10275.7, -782.271, 46.6242, 100.0, 0), (@PATH, 20, -10278.7, -771.588, 47.5163, 100.0, 0), (@PATH, 21, -10288.4, -785.682, 48.9411, 100.0, 0); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_03' WHERE sql_rev = '1647450466526877000'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/pending_db_world/rev_1648294393927803100.sql b/data/sql/updates/db_world/2022_03_27_04.sql similarity index 54% rename from data/sql/updates/pending_db_world/rev_1648294393927803100.sql rename to data/sql/updates/db_world/2022_03_27_04.sql index 4d99f441b..4895d51ad 100644 --- a/data/sql/updates/pending_db_world/rev_1648294393927803100.sql +++ b/data/sql/updates/db_world/2022_03_27_04.sql @@ -1,3 +1,19 @@ +-- DB update 2022_03_27_03 -> 2022_03_27_04 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_03'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_03 2022_03_27_04 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1648294393927803100'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648294393927803100'); DELETE FROM `linked_respawn` WHERE `guid` BETWEEN 2000009 AND 2000049; @@ -43,3 +59,13 @@ INSERT INTO `linked_respawn` (`guid`, `linkedGuid`, `linkType`) VALUES (2000047,84387,0), (2000048,84387,0), (2000049,84387,0); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_04' WHERE sql_rev = '1648294393927803100'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; From df89bbafe481ae6c5f93b4fa630a561de6612343 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Sun, 27 Mar 2022 06:16:12 +0200 Subject: [PATCH 12/57] =?UTF-8?q?fix(Scripts/Vehicles):=20The=20next=20pla?= =?UTF-8?q?yer=20entering=20Salvaged=20Siege=20Engine=E2=80=A6=20(#10987)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … should control turret if it's not occupied. --- .../rev_1647104625347732100.sql | 3 ++ src/server/game/AI/CreatureAI.h | 2 ++ src/server/game/Entities/Unit/Unit.cpp | 10 ++++++- .../Northrend/Ulduar/Ulduar/ulduar.cpp | 29 +++++++++++++++++++ 4 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 data/sql/updates/pending_db_world/rev_1647104625347732100.sql diff --git a/data/sql/updates/pending_db_world/rev_1647104625347732100.sql b/data/sql/updates/pending_db_world/rev_1647104625347732100.sql new file mode 100644 index 000000000..726202c8a --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1647104625347732100.sql @@ -0,0 +1,3 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647104625347732100'); + +UPDATE `creature_template` SET `ScriptName`='npc_salvaged_siege_engine' WHERE `entry`=33060; diff --git a/src/server/game/AI/CreatureAI.h b/src/server/game/AI/CreatureAI.h index 2f5880287..a9a82989f 100644 --- a/src/server/game/AI/CreatureAI.h +++ b/src/server/game/AI/CreatureAI.h @@ -177,6 +177,8 @@ public: /// == Fields ======================================= virtual void PassengerBoarded(Unit* /*passenger*/, int8 /*seatId*/, bool /*apply*/) {} + virtual bool BeforeSpellClick(Unit* /*clicker*/) { return true; } + virtual void OnSpellClick(Unit* /*clicker*/, bool& /*result*/) { } virtual bool CanSeeAlways(WorldObject const* /*obj*/) { return false; } diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 450449991..38c03c210 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -18899,6 +18899,15 @@ void Unit::JumpTo(WorldObject* obj, float speedZ) bool Unit::HandleSpellClick(Unit* clicker, int8 seatId) { + Creature* creature = ToCreature(); + if (creature && creature->IsAIEnabled) + { + if (!creature->AI()->BeforeSpellClick(clicker)) + { + return false; + } + } + bool result = false; uint32 spellClickEntry = GetVehicleKit() ? GetVehicleKit()->GetCreatureEntry() : GetEntry(); SpellClickInfoMapBounds clickPair = sObjectMgr->GetSpellClickInfoMapBounds(spellClickEntry); @@ -18967,7 +18976,6 @@ bool Unit::HandleSpellClick(Unit* clicker, int8 seatId) result = true; } - Creature* creature = ToCreature(); if (creature && creature->IsAIEnabled) creature->AI()->OnSpellClick(clicker, result); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp index 6e7dfad7a..2d7e31a2d 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.cpp @@ -16,12 +16,14 @@ */ #include "ulduar.h" +#include "CombatAI.h" #include "Player.h" #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "ScriptedGossip.h" #include "SpellAuraEffects.h" #include "SpellScript.h" +#include "Vehicle.h" class npc_ulduar_keeper : public CreatureScript { @@ -423,6 +425,31 @@ public: } }; +struct npc_salvaged_siege_engine : public VehicleAI +{ + npc_salvaged_siege_engine(Creature* creature) : VehicleAI(creature) { } + + bool BeforeSpellClick(Unit* clicker) override + { + if (Vehicle* vehicle = me->GetVehicleKit()) + { + if (vehicle->IsVehicleInUse()) + { + if (Unit* turret = vehicle->GetPassenger(7)) + { + if (!turret->GetVehicleKit()->IsVehicleInUse()) + { + turret->HandleSpellClick(clicker); + return false; + } + } + } + } + + return true; + } +}; + void AddSC_ulduar() { new npc_ulduar_keeper(); @@ -435,4 +462,6 @@ void AddSC_ulduar() new AreaTrigger_at_celestial_planetarium_enterance(); new go_call_tram(); + + RegisterCreatureAI(npc_salvaged_siege_engine); } From 2a46be4e44b079d06514368069f85c9eb2e58100 Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 04:17:57 +0000 Subject: [PATCH 13/57] chore(DB): import pending files Referenced commit(s): df89bbafe481ae6c5f93b4fa630a561de6612343 --- data/sql/updates/db_world/2022_03_27_05.sql | 29 +++++++++++++++++++ .../rev_1647104625347732100.sql | 3 -- 2 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 data/sql/updates/db_world/2022_03_27_05.sql delete mode 100644 data/sql/updates/pending_db_world/rev_1647104625347732100.sql diff --git a/data/sql/updates/db_world/2022_03_27_05.sql b/data/sql/updates/db_world/2022_03_27_05.sql new file mode 100644 index 000000000..61dcfe679 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_05.sql @@ -0,0 +1,29 @@ +-- DB update 2022_03_27_04 -> 2022_03_27_05 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_04'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_04 2022_03_27_05 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647104625347732100'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647104625347732100'); + +UPDATE `creature_template` SET `ScriptName`='npc_salvaged_siege_engine' WHERE `entry`=33060; + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_05' WHERE sql_rev = '1647104625347732100'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/pending_db_world/rev_1647104625347732100.sql b/data/sql/updates/pending_db_world/rev_1647104625347732100.sql deleted file mode 100644 index 726202c8a..000000000 --- a/data/sql/updates/pending_db_world/rev_1647104625347732100.sql +++ /dev/null @@ -1,3 +0,0 @@ -INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647104625347732100'); - -UPDATE `creature_template` SET `ScriptName`='npc_salvaged_siege_engine' WHERE `entry`=33060; From a5cb2742224d6ba36fde2a5b0de71e788cffda5b Mon Sep 17 00:00:00 2001 From: IntelligentQuantum Date: Sun, 27 Mar 2022 08:49:26 +0430 Subject: [PATCH 14/57] Core/Packet: MIRROR_TIMER (#10885) --- src/server/game/Entities/Player/Player.cpp | 13 +----- .../game/Server/Packets/MiscPackets.cpp | 27 +++++++++++++ src/server/game/Server/Packets/MiscPackets.h | 40 +++++++++++++++++++ 3 files changed, 69 insertions(+), 11 deletions(-) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 30c2c1616..82b4b18c1 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -737,22 +737,13 @@ void Player::SendMirrorTimer(MirrorTimerType Type, uint32 MaxValue, uint32 Curre StopMirrorTimer(Type); return; } - WorldPacket data(SMSG_START_MIRROR_TIMER, (21)); - data << (uint32)Type; - data << CurrentValue; - data << MaxValue; - data << Regen; - data << (uint8)0; - data << (uint32)0; // spell id - GetSession()->SendPacket(&data); + SendDirectMessage(WorldPackets::Misc::StartMirrorTimer(Type, CurrentValue, MaxValue, Regen, 0, 0).Write()); } void Player::StopMirrorTimer(MirrorTimerType Type) { m_MirrorTimer[Type] = DISABLED_MIRROR_TIMER; - WorldPacket data(SMSG_STOP_MIRROR_TIMER, 4); - data << (uint32)Type; - GetSession()->SendPacket(&data); + SendDirectMessage(WorldPackets::Misc::StopMirrorTimer(Type).Write()); } bool Player::IsImmuneToEnvironmentalDamage() diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp index cf192ade6..052f1700a 100644 --- a/src/server/game/Server/Packets/MiscPackets.cpp +++ b/src/server/game/Server/Packets/MiscPackets.cpp @@ -83,6 +83,33 @@ WorldPacket const* WorldPackets::Misc::RandomRoll::Write() return &_worldPacket; } +WorldPacket const* WorldPackets::Misc::StartMirrorTimer::Write() +{ + _worldPacket << uint32(Timer); + _worldPacket << uint32(Value); + _worldPacket << uint32(MaxValue); + _worldPacket << int32(Scale); + _worldPacket << uint8(Paused); + _worldPacket << uint32(SpellID); + + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Misc::PauseMirrorTimer::Write() +{ + _worldPacket << uint32(Timer); + _worldPacket << uint8(Paused); + + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Misc::StopMirrorTimer::Write() +{ + _worldPacket << uint32(Timer); + + return &_worldPacket; +} + WorldPacket const* WorldPackets::Misc::CrossedInebriationThreshold::Write() { _worldPacket << Guid; diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h index d708654e4..1a6b4e66b 100644 --- a/src/server/game/Server/Packets/MiscPackets.h +++ b/src/server/game/Server/Packets/MiscPackets.h @@ -114,6 +114,46 @@ namespace WorldPackets ObjectGuid Roller; }; + class StartMirrorTimer final : public ServerPacket + { + public: + StartMirrorTimer() : ServerPacket(SMSG_START_MIRROR_TIMER, 21) { } + StartMirrorTimer(uint32 timer, uint32 value, uint32 maxValue, int32 scale, bool paused, uint32 spellID) : + ServerPacket(SMSG_START_MIRROR_TIMER, 21), Timer(timer), Value(value), MaxValue(maxValue), Scale(scale), Paused(paused), SpellID(spellID) { } + + WorldPacket const* Write() override; + + uint32 Timer = 0; + uint32 Value = 0; + uint32 MaxValue = 0; + int32 Scale = 0; + bool Paused = false; + uint32 SpellID = 0; + }; + + class PauseMirrorTimer final : public ServerPacket + { + public: + PauseMirrorTimer() : ServerPacket(SMSG_PAUSE_MIRROR_TIMER, 5) { } + PauseMirrorTimer(uint32 timer, bool paused) : ServerPacket(SMSG_PAUSE_MIRROR_TIMER, 5), Timer(timer), Paused(paused) { } + + WorldPacket const* Write() override; + + uint32 Timer = 0; + bool Paused = true; + }; + + class StopMirrorTimer final : public ServerPacket + { + public: + StopMirrorTimer() : ServerPacket(SMSG_STOP_MIRROR_TIMER, 4) { } + StopMirrorTimer(uint32 timer) : ServerPacket(SMSG_STOP_MIRROR_TIMER, 4), Timer(timer) { } + + WorldPacket const* Write() override; + + uint32 Timer = 0; + }; + class DurabilityDamageDeath final : public ServerPacket { public: From 7796cdee3303a182953b10a1d15fc0a4d03d295e Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Sun, 27 Mar 2022 06:22:29 +0200 Subject: [PATCH 15/57] fix(Core/Spells): Fixed implementation of CAST_FLAG_POWER_LEFT_SELF flag. (#10908) --- src/server/game/Entities/Unit/Unit.cpp | 29 ++++++++++++++------------ src/server/game/Entities/Unit/Unit.h | 4 ++-- src/server/game/Spells/Spell.cpp | 19 ++++++++++------- 3 files changed, 30 insertions(+), 22 deletions(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 38c03c210..51cac6623 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -10724,15 +10724,15 @@ void Unit::SendEnergizeSpellLog(Unit* victim, uint32 spellID, uint32 damage, Pow void Unit::EnergizeBySpell(Unit* victim, uint32 spellID, uint32 damage, Powers powerType) { - SendEnergizeSpellLog(victim, spellID, damage, powerType); - // needs to be called after sending spell log - victim->ModifyPower(powerType, damage); + victim->ModifyPower(powerType, damage, false); if (powerType != POWER_HAPPINESS) { SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellID); victim->getHostileRefMgr().threatAssist(this, float(damage) * 0.5f, spellInfo); } + + SendEnergizeSpellLog(victim, spellID, damage, powerType); } float Unit::SpellPctDamageModsDone(Unit* victim, SpellInfo const* spellProto, DamageEffectType damagetype) @@ -13422,7 +13422,7 @@ int32 Unit::GetHealthGain(int32 dVal) } // returns negative amount on power reduction -int32 Unit::ModifyPower(Powers power, int32 dVal) +int32 Unit::ModifyPower(Powers power, int32 dVal, bool withPowerUpdate /*= true*/) { if (dVal == 0) return 0; @@ -13434,7 +13434,7 @@ int32 Unit::ModifyPower(Powers power, int32 dVal) int32 val = dVal + curPower; if (val <= 0) { - SetPower(power, 0); + SetPower(power, 0, withPowerUpdate); return -curPower; } @@ -13442,12 +13442,12 @@ int32 Unit::ModifyPower(Powers power, int32 dVal) if (val < maxPower) { - SetPower(power, val); + SetPower(power, val, withPowerUpdate); gain = val - curPower; } else if (curPower != maxPower) { - SetPower(power, maxPower); + SetPower(power, maxPower, withPowerUpdate); gain = maxPower - curPower; } @@ -14814,7 +14814,7 @@ void Unit::SetMaxHealth(uint32 val) SetHealth(val); } -void Unit::SetPower(Powers power, uint32 val) +void Unit::SetPower(Powers power, uint32 val, bool withPowerUpdate /*= true*/) { if (GetPower(power) == val) return; @@ -14825,11 +14825,14 @@ void Unit::SetPower(Powers power, uint32 val) SetStatInt32Value(static_cast(UNIT_FIELD_POWER1) + power, val); - WorldPacket data(SMSG_POWER_UPDATE); - data << GetPackGUID(); - data << uint8(power); - data << uint32(val); - SendMessageToSet(&data, GetTypeId() == TYPEID_PLAYER); + if (withPowerUpdate) + { + WorldPacket data(SMSG_POWER_UPDATE); + data << GetPackGUID(); + data << uint8(power); + data << uint32(val); + SendMessageToSet(&data, GetTypeId() == TYPEID_PLAYER); + } // group update if (GetTypeId() == TYPEID_PLAYER) diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 59c8adf04..6b100ceda 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1416,10 +1416,10 @@ public: void setPowerType(Powers power); [[nodiscard]] uint32 GetPower(Powers power) const { return GetUInt32Value(static_cast(UNIT_FIELD_POWER1) + power); } [[nodiscard]] uint32 GetMaxPower(Powers power) const { return GetUInt32Value(static_cast(UNIT_FIELD_MAXPOWER1) + power); } - void SetPower(Powers power, uint32 val); + void SetPower(Powers power, uint32 val, bool withPowerUpdate = true); void SetMaxPower(Powers power, uint32 val); // returns the change in power - int32 ModifyPower(Powers power, int32 val); + int32 ModifyPower(Powers power, int32 val, bool withPowerUpdate = true); int32 ModifyPowerPct(Powers power, float pct, bool apply = true); [[nodiscard]] uint32 GetAttackTime(WeaponAttackType att) const diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 594b59e4d..5aae2c6f0 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -4461,10 +4461,12 @@ void Spell::SendSpellStart() if (m_spellInfo->HasAttribute(SPELL_ATTR0_USES_RANGED_SLOT) || m_spellInfo->HasAttribute(SPELL_ATTR0_CU_NEEDS_AMMO_DATA)) castFlags |= CAST_FLAG_PROJECTILE; - if ((m_caster->GetTypeId() == TYPEID_PLAYER || - (m_caster->GetTypeId() == TYPEID_UNIT && m_caster->IsPet())) - && m_spellInfo->PowerType != POWER_HEALTH) + + if ((m_caster->GetTypeId() == TYPEID_PLAYER || (m_caster->GetTypeId() == TYPEID_UNIT && m_caster->IsPet())) + && m_spellInfo->PowerType != POWER_HEALTH && m_powerCost != 0) + { castFlags |= CAST_FLAG_POWER_LEFT_SELF; + } if (m_spellInfo->RuneCostID && m_spellInfo->PowerType == POWER_RUNE) castFlags |= CAST_FLAG_NO_GCD; // not needed, but Blizzard sends it @@ -4518,10 +4520,11 @@ void Spell::SendSpellGo() if (m_spellInfo->HasAttribute(SPELL_ATTR0_USES_RANGED_SLOT) || m_spellInfo->HasAttribute(SPELL_ATTR0_CU_NEEDS_AMMO_DATA)) castFlags |= CAST_FLAG_PROJECTILE; // arrows/bullets visual - if ((m_caster->GetTypeId() == TYPEID_PLAYER || - (m_caster->GetTypeId() == TYPEID_UNIT && m_caster->IsPet())) - && m_spellInfo->PowerType != POWER_HEALTH) - castFlags |= CAST_FLAG_POWER_LEFT_SELF; // should only be sent to self, but the current messaging doesn't make that possible + if ((m_caster->GetTypeId() == TYPEID_PLAYER || (m_caster->GetTypeId() == TYPEID_UNIT && m_caster->IsPet())) + && m_spellInfo->PowerType != POWER_HEALTH && m_powerCost != 0) // should only be sent to self, but the current messaging doesn't make that possible + { + castFlags |= CAST_FLAG_POWER_LEFT_SELF; + } if ((m_caster->GetTypeId() == TYPEID_PLAYER) && (m_caster->getClass() == CLASS_DEATH_KNIGHT) @@ -5052,7 +5055,9 @@ void Spell::TakePower() // Set the five second timer if (PowerType == POWER_MANA && m_powerCost > 0) + { m_caster->SetLastManaUse(GameTime::GetGameTimeMS().count()); + } } void Spell::TakeAmmo() From 62dfeeef25ef583b321bcc1348b42930181cbd21 Mon Sep 17 00:00:00 2001 From: Kosiak Date: Sun, 27 Mar 2022 05:25:20 +0100 Subject: [PATCH 16/57] fix(DB/SAI): Raze Direhorn Post! (#10985) --- .../pending_db_world/rev_1647097838805578400.sql | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1647097838805578400.sql diff --git a/data/sql/updates/pending_db_world/rev_1647097838805578400.sql b/data/sql/updates/pending_db_world/rev_1647097838805578400.sql new file mode 100644 index 000000000..ac1dd94b2 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1647097838805578400.sql @@ -0,0 +1,13 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647097838805578400'); + +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (23751, 23752, 23753); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(23751, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 15, 182817, 30, 0, 0, 0, 0, 0, 0, 'North Tent - On Spellhit - Despawn Flames'), +(23751, 0, 0, 1, 8, 0, 100, 0, 42356, 0, 0, 0, 0, 33, 23751, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'North Tent - On Spellhit - Kill Credit'), +(23751, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 50, 182817, 60, 0, 0, 0, 0, 20, 186310, 40, 0, 0, 0, 0, 5, 0, 'North Tent - On Spellhit - Summon GameObject'), +(23752, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 15, 182817, 30, 0, 0, 0, 0, 0, 0, 'Northeast Tent - On Spellhit - Despawn Flames'), +(23752, 0, 0, 1, 8, 0, 100, 0, 42356, 0, 0, 0, 0, 33, 23752, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Northeast Tent - On Spellhit - Kill Credit'), +(23752, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 50, 182817, 60, 0, 0, 0, 0, 20, 186310, 40, 0, 0, 0, 0, 5, 0, 'Northeast Tent - On Spellhit - Summon GameObject'), +(23753, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 15, 182817, 30, 0, 0, 0, 0, 0, 0, 'East Tent - On Spellhit - Despawn Flames'), +(23753, 0, 0, 1, 8, 0, 100, 0, 42356, 0, 0, 0, 0, 33, 23753, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'East Tent - On Spellhit - Kill Credit'), +(23753, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 50, 182817, 60, 0, 0, 0, 0, 20, 186310, 40, 0, 0, 0, 0, 5, 0, 'East Tent - On Spellhit - Summon GameObject'); From 325b1c73bdf66d02063eda421d808d90d6a64eab Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 04:27:16 +0000 Subject: [PATCH 17/57] chore(DB): import pending files Referenced commit(s): 62dfeeef25ef583b321bcc1348b42930181cbd21 --- .../2022_03_27_06.sql} | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) rename data/sql/updates/{pending_db_world/rev_1647097838805578400.sql => db_world/2022_03_27_06.sql} (70%) diff --git a/data/sql/updates/pending_db_world/rev_1647097838805578400.sql b/data/sql/updates/db_world/2022_03_27_06.sql similarity index 70% rename from data/sql/updates/pending_db_world/rev_1647097838805578400.sql rename to data/sql/updates/db_world/2022_03_27_06.sql index ac1dd94b2..bbc009e28 100644 --- a/data/sql/updates/pending_db_world/rev_1647097838805578400.sql +++ b/data/sql/updates/db_world/2022_03_27_06.sql @@ -1,3 +1,19 @@ +-- DB update 2022_03_27_05 -> 2022_03_27_06 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_05'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_05 2022_03_27_06 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647097838805578400'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647097838805578400'); DELETE FROM `smart_scripts` WHERE `entryorguid` IN (23751, 23752, 23753); @@ -11,3 +27,13 @@ INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_ (23753, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 15, 182817, 30, 0, 0, 0, 0, 0, 0, 'East Tent - On Spellhit - Despawn Flames'), (23753, 0, 0, 1, 8, 0, 100, 0, 42356, 0, 0, 0, 0, 33, 23753, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'East Tent - On Spellhit - Kill Credit'), (23753, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 50, 182817, 60, 0, 0, 0, 0, 20, 186310, 40, 0, 0, 0, 0, 5, 0, 'East Tent - On Spellhit - Summon GameObject'); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_06' WHERE sql_rev = '1647097838805578400'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; From 546c4f8942f8aa511012599bf4161f582861d735 Mon Sep 17 00:00:00 2001 From: SilentCLD Date: Sun, 27 Mar 2022 05:28:41 +0100 Subject: [PATCH 18/57] feat(Core/Scripts): Spirit towers reset to neutral 6 hours after capture and save WorldState (#11030) --- .../scripts/OutdoorPvP/OutdoorPvPTF.cpp | 122 ++++++++++++++++-- src/server/scripts/OutdoorPvP/OutdoorPvPTF.h | 20 ++- 2 files changed, 132 insertions(+), 10 deletions(-) diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp index cb611c3ec..6cc2876fd 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.cpp @@ -20,17 +20,18 @@ #include "MapMgr.h" #include "ObjectMgr.h" #include "OutdoorPvP.h" -#include "OutdoorPvPMgr.h" #include "Player.h" #include "ScriptMgr.h" #include "World.h" #include "WorldPacket.h" +#include "GameTime.h" OutdoorPvPTF::OutdoorPvPTF() { m_TypeId = OUTDOOR_PVP_TF; m_IsLocked = false; + m_JustLocked = false; m_LockTimer = TF_LOCK_TIME; m_LockTimerUpdate = 0; @@ -105,6 +106,71 @@ void OutdoorPvPTF::SendRemoveWorldStates(Player* player) } } +void OutdoorPvPTF::SaveRequiredWorldStates() const +{ + sWorld->setWorldState(TF_UI_TOWER_COUNT_H, m_HordeTowersControlled); + sWorld->setWorldState(TF_UI_TOWER_COUNT_A, m_AllianceTowersControlled); + + sWorld->setWorldState(TF_UI_TOWERS_CONTROLLED_DISPLAY, m_IsLocked); + + // Save expiry as unix + uint32 const lockExpireTime = GameTime::GetGameTime().count() + (m_LockTimer / IN_MILLISECONDS); + sWorld->setWorldState(TF_UI_LOCKED_TIME_HOURS, lockExpireTime); +} + +void OutdoorPvPTF::ResetZoneToTeamControlled(TeamId team) +{ + switch (team) + { + case TEAM_HORDE: + m_HordeTowersControlled = TF_TOWER_NUM; + m_AllianceTowersControlled = 0; + break; + case TEAM_ALLIANCE: + m_HordeTowersControlled = 0; + m_AllianceTowersControlled = TF_TOWER_NUM; + break; + case TEAM_NEUTRAL: + m_HordeTowersControlled = 0; + m_AllianceTowersControlled = 0; + break; + } + + for (auto& [guid, tower] : m_capturePoints) + { + dynamic_cast(tower)->ResetToTeamControlled(team); + } + + SendUpdateWorldState(TF_UI_TOWER_COUNT_H, m_HordeTowersControlled); + SendUpdateWorldState(TF_UI_TOWER_COUNT_A, m_AllianceTowersControlled); +} + +void OPvPCapturePointTF::ResetToTeamControlled(TeamId team) +{ + switch (team) + { + case TEAM_HORDE: + m_State = OBJECTIVESTATE_HORDE; + m_OldState = OBJECTIVESTATE_HORDE; + m_team = TEAM_HORDE; + break; + case TEAM_ALLIANCE: + m_State = OBJECTIVESTATE_ALLIANCE; + m_OldState = OBJECTIVESTATE_ALLIANCE; + m_team = TEAM_ALLIANCE; + break; + case TEAM_NEUTRAL: + m_State = OBJECTIVESTATE_NEUTRAL; + m_OldState = OBJECTIVESTATE_NEUTRAL; + m_team = TEAM_NEUTRAL; + break; + } + + m_value = 0.0f; + ChangeState(); + SendChangePhase(); +} + void OPvPCapturePointTF::UpdateTowerState() { m_PvP->SendUpdateWorldState(uint32(TFTowerWorldStates[m_TowerType].n), uint32(bool(m_TowerState & TF_TOWERSTATE_N))); @@ -141,6 +207,7 @@ bool OutdoorPvPTF::Update(uint32 diff) { TeamApplyBuff(TEAM_ALLIANCE, TF_CAPTURE_BUFF); m_IsLocked = true; + m_JustLocked = true; SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_NEUTRAL, uint32(0)); SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_HORDE, uint32(0)); SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_ALLIANCE, uint32(1)); @@ -150,6 +217,7 @@ bool OutdoorPvPTF::Update(uint32 diff) { TeamApplyBuff(TEAM_HORDE, TF_CAPTURE_BUFF); m_IsLocked = true; + m_JustLocked = true; SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_NEUTRAL, uint32(0)); SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_HORDE, uint32(1)); SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_ALLIANCE, uint32(0)); @@ -160,17 +228,29 @@ bool OutdoorPvPTF::Update(uint32 diff) TeamCastSpell(TEAM_ALLIANCE, -TF_CAPTURE_BUFF); TeamCastSpell(TEAM_HORDE, -TF_CAPTURE_BUFF); } + SendUpdateWorldState(TF_UI_TOWER_COUNT_A, m_AllianceTowersControlled); SendUpdateWorldState(TF_UI_TOWER_COUNT_H, m_HordeTowersControlled); } + if (m_IsLocked) { + if (m_JustLocked) + { + m_JustLocked = false; + SaveRequiredWorldStates(); + } + // lock timer is down, release lock if (m_LockTimer < diff) { m_LockTimer = TF_LOCK_TIME; m_LockTimerUpdate = 0; m_IsLocked = false; + + ResetZoneToTeamControlled(TEAM_NEUTRAL); + SaveRequiredWorldStates(); + SendUpdateWorldState(TF_UI_TOWERS_CONTROLLED_DISPLAY, uint32(1)); SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_NEUTRAL, uint32(0)); SendUpdateWorldState(TF_UI_LOCKED_DISPLAY_HORDE, uint32(0)); @@ -182,20 +262,21 @@ bool OutdoorPvPTF::Update(uint32 diff) if (m_LockTimerUpdate < diff) { m_LockTimerUpdate = TF_LOCK_TIME_UPDATE; - uint32 minutes_left = m_LockTimer / 60000; - hours_left = minutes_left / 60; - minutes_left -= hours_left * 60; - second_digit = minutes_left % 10; - first_digit = minutes_left / 10; + RecalculateClientUILockTime(); SendUpdateWorldState(TF_UI_LOCKED_TIME_MINUTES_FIRST_DIGIT, first_digit); SendUpdateWorldState(TF_UI_LOCKED_TIME_MINUTES_SECOND_DIGIT, second_digit); SendUpdateWorldState(TF_UI_LOCKED_TIME_HOURS, hours_left); } - else m_LockTimerUpdate -= diff; + else + { + m_LockTimerUpdate -= diff; + } + m_LockTimer -= diff; } } + return changed; } @@ -251,7 +332,8 @@ bool OutdoorPvPTF::SetupOutdoorPvP() m_AllianceTowersControlled = 0; m_HordeTowersControlled = 0; - m_IsLocked = false; + m_IsLocked = bool(sWorld->getWorldState(TF_UI_TOWERS_CONTROLLED_DISPLAY)); + m_JustLocked = false; m_LockTimer = TF_LOCK_TIME; m_LockTimerUpdate = 0; hours_left = 6; @@ -270,6 +352,30 @@ bool OutdoorPvPTF::SetupOutdoorPvP() AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_SE)); AddCapturePoint(new OPvPCapturePointTF(this, TF_TOWER_S)); + if (m_IsLocked) + { + // Core shutdown while locked -- init from latest known data in WorldState + // Convert from unix + int32 const lockRemainingTime = int32((sWorld->getWorldState(TF_UI_LOCKED_TIME_HOURS) - GameTime::GetGameTime().count()) * IN_MILLISECONDS); + if (lockRemainingTime > 0) + { + m_LockTimer = lockRemainingTime; + RecalculateClientUILockTime(); + + uint32 const hordeTowers = uint32(sWorld->getWorldState(TF_UI_TOWER_COUNT_H)); + uint32 const allianceTowers = uint32(sWorld->getWorldState(TF_UI_TOWER_COUNT_A)); + TeamId const controllingTeam = hordeTowers > allianceTowers ? TEAM_HORDE : TEAM_ALLIANCE; + + ResetZoneToTeamControlled(controllingTeam); + } + else + { + // Lock expired while core was offline + m_IsLocked = false; + SaveRequiredWorldStates(); + } + } + return true; } diff --git a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h index c91f6a3be..9900c644b 100644 --- a/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h +++ b/src/server/scripts/OutdoorPvP/OutdoorPvPTF.h @@ -32,10 +32,10 @@ const uint32 OutdoorPvPTFBuffZones[OutdoorPvPTFBuffZonesNum] = }; // locked for 6 hours after capture -const uint32 TF_LOCK_TIME = 3600 * 6 * 1000; +const uint32 TF_LOCK_TIME = 6 * HOUR * IN_MILLISECONDS; // update lock timer every 1/4 minute (overkill, but this way it's sure the timer won't "jump" 2 minutes at once.) -const uint32 TF_LOCK_TIME_UPDATE = 15000; +const uint32 TF_LOCK_TIME_UPDATE = 15 * IN_MILLISECONDS; // blessing of auchindoun #define TF_CAPTURE_BUFF 33377 @@ -138,6 +138,8 @@ public: bool HandlePlayerEnter(Player* player) override; void HandlePlayerLeave(Player* player) override; + void ResetToTeamControlled(TeamId team); + void UpdateTowerState(); protected: @@ -162,6 +164,19 @@ public: void SendRemoveWorldStates(Player* player) override; + void SaveRequiredWorldStates() const; + + void ResetZoneToTeamControlled(TeamId team); + + void RecalculateClientUILockTime() + { + uint32 minutes_left = m_LockTimer / 60000; + hours_left = minutes_left / 60; + minutes_left -= hours_left * 60; + second_digit = minutes_left % 10; + first_digit = minutes_left / 10; + } + uint32 GetAllianceTowersControlled() const; void SetAllianceTowersControlled(uint32 count); @@ -172,6 +187,7 @@ public: private: bool m_IsLocked; + bool m_JustLocked; uint32 m_LockTimer; uint32 m_LockTimerUpdate; From 66f301bceaaab91ec2cf72b25c4c71e5c687629a Mon Sep 17 00:00:00 2001 From: IntelligentQuantum Date: Sun, 27 Mar 2022 09:01:21 +0430 Subject: [PATCH 19/57] feat(Core/Packets): SMSG_WORLD_STATE_UI_TIMER_UPDATE (#11047) --- src/server/game/Handlers/MiscHandler.cpp | 7 ++++--- src/server/game/Server/Packets/MiscPackets.cpp | 7 +++++++ src/server/game/Server/Packets/MiscPackets.h | 10 ++++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index dc3c426f2..c4ccb3208 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -35,6 +35,7 @@ #include "Log.h" #include "LootMgr.h" #include "MapMgr.h" +#include "MiscPackets.h" #include "Object.h" #include "ObjectAccessor.h" #include "ObjectMgr.h" @@ -1570,9 +1571,9 @@ void WorldSession::HandleWorldStateUITimerUpdate(WorldPacket& /*recv_data*/) // empty opcode LOG_DEBUG("network", "WORLD: CMSG_WORLD_STATE_UI_TIMER_UPDATE"); - WorldPacket data(SMSG_WORLD_STATE_UI_TIMER_UPDATE, 4); - data << uint32(GameTime::GetGameTime().count()); - SendPacket(&data); + WorldPackets::Misc::UITime response; + response.Time = GameTime::GetGameTime().count(); + SendPacket(response.Write()); } void WorldSession::HandleReadyForAccountDataTimes(WorldPacket& /*recv_data*/) diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp index 052f1700a..a418a517e 100644 --- a/src/server/game/Server/Packets/MiscPackets.cpp +++ b/src/server/game/Server/Packets/MiscPackets.cpp @@ -118,3 +118,10 @@ WorldPacket const* WorldPackets::Misc::CrossedInebriationThreshold::Write() return &_worldPacket; } + +WorldPacket const* WorldPackets::Misc::UITime::Write() +{ + _worldPacket << uint32(Time); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h index 1a6b4e66b..7097596ad 100644 --- a/src/server/game/Server/Packets/MiscPackets.h +++ b/src/server/game/Server/Packets/MiscPackets.h @@ -174,6 +174,16 @@ namespace WorldPackets uint32 ItemID = 0; }; + + class UITime final : public ServerPacket + { + public: + UITime() : ServerPacket(SMSG_WORLD_STATE_UI_TIMER_UPDATE, 4) { } + + WorldPacket const* Write() override; + + uint32 Time = 0; + }; } } From e81b8cf703d579dfadd74483495f0f6246402602 Mon Sep 17 00:00:00 2001 From: Nefertumm Date: Sun, 27 Mar 2022 01:34:36 -0300 Subject: [PATCH 20/57] fix(DB/Spells): Rogue Armor Energize proc (#11048) --- data/sql/updates/pending_db_world/rev_1647426130709105800.sql | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1647426130709105800.sql diff --git a/data/sql/updates/pending_db_world/rev_1647426130709105800.sql b/data/sql/updates/pending_db_world/rev_1647426130709105800.sql new file mode 100644 index 000000000..f7faffb3d --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1647426130709105800.sql @@ -0,0 +1,3 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647426130709105800'); + +UPDATE `spell_proc_event` SET `ppmRate` = 1 WHERE `entry` = 27787; From ee1021b09341d49e07bf072fd7a45179b18bc3fe Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 04:36:39 +0000 Subject: [PATCH 21/57] chore(DB): import pending files Referenced commit(s): e81b8cf703d579dfadd74483495f0f6246402602 --- data/sql/updates/db_world/2022_03_27_07.sql | 29 +++++++++++++++++++ .../rev_1647426130709105800.sql | 3 -- 2 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 data/sql/updates/db_world/2022_03_27_07.sql delete mode 100644 data/sql/updates/pending_db_world/rev_1647426130709105800.sql diff --git a/data/sql/updates/db_world/2022_03_27_07.sql b/data/sql/updates/db_world/2022_03_27_07.sql new file mode 100644 index 000000000..792f78e49 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_07.sql @@ -0,0 +1,29 @@ +-- DB update 2022_03_27_06 -> 2022_03_27_07 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_06'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_06 2022_03_27_07 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647426130709105800'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647426130709105800'); + +UPDATE `spell_proc_event` SET `ppmRate` = 1 WHERE `entry` = 27787; + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_07' WHERE sql_rev = '1647426130709105800'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/pending_db_world/rev_1647426130709105800.sql b/data/sql/updates/pending_db_world/rev_1647426130709105800.sql deleted file mode 100644 index f7faffb3d..000000000 --- a/data/sql/updates/pending_db_world/rev_1647426130709105800.sql +++ /dev/null @@ -1,3 +0,0 @@ -INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647426130709105800'); - -UPDATE `spell_proc_event` SET `ppmRate` = 1 WHERE `entry` = 27787; From 5b50f04c5cb017a58aaa17ea47627737a431d967 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Sun, 27 Mar 2022 06:37:27 +0200 Subject: [PATCH 22/57] fix(Scripts/Ulduar): The Flame Leviathan's main gate should be closed during the fight. (#11083) --- .../scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp index 01f6830c7..22197c24c 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp @@ -268,6 +268,11 @@ public: BindPlayers(); me->SetInCombatWithZone(); + + if (!_startTimer) + { + TurnGates(true, false); + } } void InitializeAI() override From 69616e5d6df733cdee8f2602b2c2cd7802c2e5a2 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Sun, 27 Mar 2022 06:38:06 +0200 Subject: [PATCH 23/57] fix(Scripts/Ulduar): Open the chamber door on Kologarn's death. (#11085) --- .../Northrend/Ulduar/Ulduar/boss_kologarn.cpp | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp index 9776efdc6..036cbdd54 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp @@ -242,17 +242,19 @@ public: summons.DespawnAll(); if (m_pInstance) + { m_pInstance->SetData(TYPE_KOLOGARN, NOT_STARTED); + // Open the door inside Kologarn chamber + if (GameObject* door = m_pInstance->instance->GetGameObject(m_pInstance->GetGuidData(GO_KOLOGARN_DOORS))) + door->SetGoState(GO_STATE_ACTIVE); + } + AttachLeftArm(); AttachRightArm(); // Reset breath on pull breathReady = false; - - // Open the door inside Kologarn chamber - if (GameObject* door = me->FindNearestGameObject(GO_KOLOGARN_DOORS, 100.0f)) - door->SetGoState(GO_STATE_ACTIVE); } void DoAction(int32 param) override @@ -301,6 +303,13 @@ public: Talk(SAY_DEATH); + if (m_pInstance) + { + // Open the door inside Kologarn chamber + if (GameObject* door = m_pInstance->instance->GetGameObject(m_pInstance->GetGuidData(GO_KOLOGARN_DOORS))) + door->SetGoState(GO_STATE_ACTIVE); + } + if (GameObject* bridge = me->FindNearestGameObject(GO_KOLOGARN_BRIDGE, 100)) bridge->SetGoState(GO_STATE_READY); @@ -384,8 +393,13 @@ public: me->setActive(true); // Close the door inside Kologarn chamber - if (GameObject* door = me->FindNearestGameObject(GO_KOLOGARN_DOORS, 100.0f)) - door->SetGoState(GO_STATE_READY); + if (m_pInstance) + { + if (GameObject* door = m_pInstance->instance->GetGameObject(m_pInstance->GetGuidData(GO_KOLOGARN_DOORS))) + { + door->SetGoState(GO_STATE_READY); + } + } } void UpdateAI(uint32 diff) override From c6dcf7787f34eb0c085f2027acc79cc277855508 Mon Sep 17 00:00:00 2001 From: Kosiak Date: Sun, 27 Mar 2022 05:38:42 +0100 Subject: [PATCH 24/57] fix(DB/npc_text): The Stone Watcher (#11077) --- .../updates/pending_db_world/rev_1647644720221305200.sql | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1647644720221305200.sql diff --git a/data/sql/updates/pending_db_world/rev_1647644720221305200.sql b/data/sql/updates/pending_db_world/rev_1647644720221305200.sql new file mode 100644 index 000000000..b06bca4a9 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1647644720221305200.sql @@ -0,0 +1,6 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647644720221305200'); + +DELETE FROM `npc_text` WHERE `ID` IN (1675,1676); +INSERT INTO `npc_text` (`ID`, `text0_0`, `text0_1`, `BroadcastTextID0`, `lang0`, `Probability0`, `em0_0`, `em0_1`, `em0_2`, `em0_3`, `em0_4`, `em0_5`, `text1_0`, `text1_1`, `BroadcastTextID1`, `lang1`, `Probability1`, `em1_0`, `em1_1`, `em1_2`, `em1_3`, `em1_4`, `em1_5`, `text2_0`, `text2_1`, `BroadcastTextID2`, `lang2`, `Probability2`, `em2_0`, `em2_1`, `em2_2`, `em2_3`, `em2_4`, `em2_5`, `text3_0`, `text3_1`, `BroadcastTextID3`, `lang3`, `Probability3`, `em3_0`, `em3_1`, `em3_2`, `em3_3`, `em3_4`, `em3_5`, `text4_0`, `text4_1`, `BroadcastTextID4`, `lang4`, `Probability4`, `em4_0`, `em4_1`, `em4_2`, `em4_3`, `em4_4`, `em4_5`, `text5_0`, `text5_1`, `BroadcastTextID5`, `lang5`, `Probability5`, `em5_0`, `em5_1`, `em5_2`, `em5_3`, `em5_4`, `em5_5`, `text6_0`, `text6_1`, `BroadcastTextID6`, `lang6`, `Probability6`, `em6_0`, `em6_1`, `em6_2`, `em6_3`, `em6_4`, `em6_5`, `text7_0`, `text7_1`, `BroadcastTextID7`, `lang7`, `Probability7`, `em7_0`, `em7_1`, `em7_2`, `em7_3`, `em7_4`, `em7_5`, `VerifiedBuild`) VALUES +(1676, 'The Plates of Uldum are discs synthesized by the Creators that allow access into the Uldum compound. These discs house and store specific data related to the Creators\' activities here.$B$BPhysically, they are nearly identical in circumference to the disc set you currently possess. Their markings, however, are directly related to information on Uldum as opposed to the Uldaman complex.', '', 4061, 0, 1, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 11723), +(1675, 'My purpose is to regulate access to the Uldum complex for the Creators. I allow entry into the compound only when the solicitor exhibits for access the proper sequencing discs.$B$BYour disc set currently does not contain the Plates of Uldum, the primary prerequisite for entry. Access is not granted unless the Plates of Uldum are present.', '', 4055, 0, 1, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 11723); From ce3c413873f80c02bb105428d982184151824c9b Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 04:40:35 +0000 Subject: [PATCH 25/57] chore(DB): import pending files Referenced commit(s): c6dcf7787f34eb0c085f2027acc79cc277855508 --- .../2022_03_27_08.sql} | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) rename data/sql/updates/{pending_db_world/rev_1647644720221305200.sql => db_world/2022_03_27_08.sql} (74%) diff --git a/data/sql/updates/pending_db_world/rev_1647644720221305200.sql b/data/sql/updates/db_world/2022_03_27_08.sql similarity index 74% rename from data/sql/updates/pending_db_world/rev_1647644720221305200.sql rename to data/sql/updates/db_world/2022_03_27_08.sql index b06bca4a9..9857301ce 100644 --- a/data/sql/updates/pending_db_world/rev_1647644720221305200.sql +++ b/data/sql/updates/db_world/2022_03_27_08.sql @@ -1,6 +1,32 @@ +-- DB update 2022_03_27_07 -> 2022_03_27_08 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_07'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_07 2022_03_27_08 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647644720221305200'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647644720221305200'); DELETE FROM `npc_text` WHERE `ID` IN (1675,1676); INSERT INTO `npc_text` (`ID`, `text0_0`, `text0_1`, `BroadcastTextID0`, `lang0`, `Probability0`, `em0_0`, `em0_1`, `em0_2`, `em0_3`, `em0_4`, `em0_5`, `text1_0`, `text1_1`, `BroadcastTextID1`, `lang1`, `Probability1`, `em1_0`, `em1_1`, `em1_2`, `em1_3`, `em1_4`, `em1_5`, `text2_0`, `text2_1`, `BroadcastTextID2`, `lang2`, `Probability2`, `em2_0`, `em2_1`, `em2_2`, `em2_3`, `em2_4`, `em2_5`, `text3_0`, `text3_1`, `BroadcastTextID3`, `lang3`, `Probability3`, `em3_0`, `em3_1`, `em3_2`, `em3_3`, `em3_4`, `em3_5`, `text4_0`, `text4_1`, `BroadcastTextID4`, `lang4`, `Probability4`, `em4_0`, `em4_1`, `em4_2`, `em4_3`, `em4_4`, `em4_5`, `text5_0`, `text5_1`, `BroadcastTextID5`, `lang5`, `Probability5`, `em5_0`, `em5_1`, `em5_2`, `em5_3`, `em5_4`, `em5_5`, `text6_0`, `text6_1`, `BroadcastTextID6`, `lang6`, `Probability6`, `em6_0`, `em6_1`, `em6_2`, `em6_3`, `em6_4`, `em6_5`, `text7_0`, `text7_1`, `BroadcastTextID7`, `lang7`, `Probability7`, `em7_0`, `em7_1`, `em7_2`, `em7_3`, `em7_4`, `em7_5`, `VerifiedBuild`) VALUES (1676, 'The Plates of Uldum are discs synthesized by the Creators that allow access into the Uldum compound. These discs house and store specific data related to the Creators\' activities here.$B$BPhysically, they are nearly identical in circumference to the disc set you currently possess. Their markings, however, are directly related to information on Uldum as opposed to the Uldaman complex.', '', 4061, 0, 1, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 11723), (1675, 'My purpose is to regulate access to the Uldum complex for the Creators. I allow entry into the compound only when the solicitor exhibits for access the proper sequencing discs.$B$BYour disc set currently does not contain the Plates of Uldum, the primary prerequisite for entry. Access is not granted unless the Plates of Uldum are present.', '', 4055, 0, 1, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, 11723); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_08' WHERE sql_rev = '1647644720221305200'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; From ea55c15aab59e58e41b26e0c42cda5890e9d04a2 Mon Sep 17 00:00:00 2001 From: SilentCLD Date: Sun, 27 Mar 2022 05:42:59 +0100 Subject: [PATCH 26/57] feat(Core/Wintergrasp): Save win/loss totals for faction (#11056) --- .../game/Battlefield/Zones/BattlefieldWG.cpp | 17 ++++++++++++++++- .../game/Battlefield/Zones/BattlefieldWG.h | 6 +++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp index e9eae1f61..d07c35d6a 100644 --- a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp +++ b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp @@ -476,9 +476,19 @@ void BattlefieldWG::OnBattleEnd(bool endByTimer) m_PlayersInWar[TEAM_HORDE].clear(); if (!endByTimer) // win alli/horde + { + uint32 const worldStateId = GetDefenderTeam() == TEAM_ALLIANCE ? WORLDSTATE_ALLIANCE_KEEP_CAPTURED : WORLDSTATE_HORDE_KEEP_CAPTURED; + sWorld->setWorldState(worldStateId, sWorld->getWorldState(worldStateId) + 1); + SendWarning((GetDefenderTeam() == TEAM_ALLIANCE) ? BATTLEFIELD_WG_TEXT_WIN_KEEP : (BATTLEFIELD_WG_TEXT_WIN_KEEP + 2)); + } else // defend alli/horde + { + uint32 const worldStateId = GetDefenderTeam() == TEAM_ALLIANCE ? WORLDSTATE_ALLIANCE_KEEP_DEFENDED : WORLDSTATE_HORDE_KEEP_DEFENDED; + sWorld->setWorldState(worldStateId, sWorld->getWorldState(worldStateId) + 1); + SendWarning((GetDefenderTeam() == TEAM_ALLIANCE) ? BATTLEFIELD_WG_TEXT_DEFEND_KEEP : (BATTLEFIELD_WG_TEXT_DEFEND_KEEP + 2)); + } } // ******************************************************* @@ -898,6 +908,11 @@ void BattlefieldWG::FillInitialWorldStates(WorldPacket& data) data << uint32(BATTLEFIELD_WG_WORLD_STATE_VEHICLE_A) << uint32(GetData(BATTLEFIELD_WG_DATA_VEHICLE_A)); data << uint32(BATTLEFIELD_WG_WORLD_STATE_MAX_VEHICLE_A) << GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_A); + data << uint32(WORLDSTATE_HORDE_KEEP_CAPTURED) << uint32(sWorld->getWorldState(WORLDSTATE_HORDE_KEEP_CAPTURED)); + data << uint32(WORLDSTATE_HORDE_KEEP_DEFENDED) << uint32(sWorld->getWorldState(WORLDSTATE_HORDE_KEEP_DEFENDED)); + data << uint32(WORLDSTATE_ALLIANCE_KEEP_CAPTURED) << uint32(sWorld->getWorldState(WORLDSTATE_ALLIANCE_KEEP_CAPTURED)); + data << uint32(WORLDSTATE_ALLIANCE_KEEP_DEFENDED) << uint32(sWorld->getWorldState(WORLDSTATE_ALLIANCE_KEEP_DEFENDED)); + for (GameObjectBuilding::const_iterator itr = BuildingsInZone.begin(); itr != BuildingsInZone.end(); ++itr) data << (*itr)->m_WorldState << (*itr)->m_State; @@ -913,7 +928,7 @@ void BattlefieldWG::SendInitWorldStatesTo(Player* player) data << uint32(m_MapId); data << uint32(m_ZoneId); data << uint32(0); - data << uint16(10 + BuildingsInZone.size() + WorkshopsList.size()); // Number of fields + data << uint16(14 + BuildingsInZone.size() + WorkshopsList.size()); // Number of fields FillInitialWorldStates(data); diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.h b/src/server/game/Battlefield/Zones/BattlefieldWG.h index 162bd6299..d0058d9a9 100644 --- a/src/server/game/Battlefield/Zones/BattlefieldWG.h +++ b/src/server/game/Battlefield/Zones/BattlefieldWG.h @@ -523,7 +523,11 @@ enum WintergraspWorldstates WORLDSTATE_WORKSHOP_SE = 3703, WORLDSTATE_WORKSHOP_SW = 3702, WORLDSTATE_WORKSHOP_K_W = 3698, - WORLDSTATE_WORKSHOP_K_E = 3699 + WORLDSTATE_WORKSHOP_K_E = 3699, + WORLDSTATE_HORDE_KEEP_CAPTURED = 4022, + WORLDSTATE_HORDE_KEEP_DEFENDED = 4024, + WORLDSTATE_ALLIANCE_KEEP_CAPTURED = 4023, + WORLDSTATE_ALLIANCE_KEEP_DEFENDED = 4025, }; // TODO: Handle this with creature_text ? From ae30154d119aff1cb06e4fd21201980b004bf677 Mon Sep 17 00:00:00 2001 From: "Bogir[rus]" Date: Sun, 27 Mar 2022 09:44:30 +0500 Subject: [PATCH 27/57] fix(DB/Locale/ruRU): Add missing item_template_locale (#11114) --- .../rev_1647998826935283089.sql | 286 ++++++++++++++++++ 1 file changed, 286 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1647998826935283089.sql diff --git a/data/sql/updates/pending_db_world/rev_1647998826935283089.sql b/data/sql/updates/pending_db_world/rev_1647998826935283089.sql new file mode 100644 index 000000000..a764cde83 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1647998826935283089.sql @@ -0,0 +1,286 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647998826935283089'); + +REPLACE INTO `item_template_locale` (`ID`, `locale`, `Name`, `Description`, `VerifiedBuild`) VALUES +(886, 'ruRU', 'Черный металлический короткий меч', '', 0), +(997, 'ruRU', 'Огненный меч Увечья', '', 0), +(1029, 'ruRU', 'Табличка Тотема змея', '', 0), +(1057, 'ruRU', 'Табличка Восстановления III', '', 0), +(1133, 'ruRU', 'Рог снежного волка', '', 0), +(1134, 'ruRU', 'Рог Серого волка', '', 0), +(1146, 'ruRU', 'Манускрипт: Воскрешение', '', 0), +(1254, 'ruRU', 'Малый камень огня', '', 0), +(1623, 'ruRU', 'Мешочек из кожи ящера', '', 0), +(1977, 'ruRU', 'Сумка на 20 ячеек', '', 0), +(2021, 'ruRU', 'Зеленый панцирный щит', '', 0), +(2410, 'ruRU', 'Дымный факел', '', 0), +(2413, 'ruRU', 'Игреневая лошадь', '', 0), +(2415, 'ruRU', 'Белый жеребец', '', 0), +(2556, 'ruRU', 'Рецепт: эликсир наречий', '', 0), +(2719, 'ruRU', 'Маленький латунный ключ', '', 0), +(2920, 'ruRU', 'Священная реликвия', '', 0), +(2921, 'ruRU', 'Благословенная реликвия', '', 0), +(2922, 'ruRU', 'Реликвия духа', '', 0), +(2929, 'ruRU', 'Могильная гниль', 'Используется разбойниками при изготовлении яда.', 0), +(2932, 'ruRU', 'Лоза Мучений', 'Используется разбойниками при изготовлении яда.', 0), +(3003, 'ruRU', 'Реликвия Ока', '', 0), +(3004, 'ruRU', 'Реликвия Мертвых', '', 0), +(3005, 'ruRU', 'Реликвия Истины', '', 0), +(3144, 'ruRU', 'Гримуар пылающего духа II', '', 0), +(3227, 'ruRU', 'Посох Ночной Погибели', '', 0), +(3467, 'ruRU', 'Матовый железный ключ', '', 0), +(3499, 'ruRU', 'Отполированный золотой ключ', '', 0), +(3675, 'ruRU', 'Догоревший факел', '', 0), +(3704, 'ruRU', 'Ржавый железный ключ', '', 0), +(3762, 'ruRU', 'Сумка библиотекаря', '', 0), +(4143, 'ruRU', 'Фолиант сотворения пищи II', '', 0), +(4273, 'ruRU', 'Кодекс Исцеления', '', 0), +(4882, 'ruRU', 'Ключ Бенедикта', '', 0), +(4930, 'ruRU', 'Кожаная сумка ручной работы', '', 0), +(4959, 'ruRU', 'Сломанный метательный томагавк', '', 0), +(4981, 'ruRU', 'Поясной мешочек Агмонда', '', 0), +(4988, 'ruRU', 'Горящее обсидиановое кольцо', '', 0), +(5004, 'ruRU', 'Знак Кирин-Тора', '', 0), +(5005, 'ruRU', 'Подвеска Неостывших углей', '', 0), +(5008, 'ruRU', 'Кольцо Ртути', '', 0), +(5013, 'ruRU', 'Свежая луковица', '', 0), +(5105, 'ruRU', 'Разрывной патрон', '', 0), +(5150, 'ruRU', 'Книга Целительного прикосновения III', '', 0), +(5229, 'ruRU', 'Пустой усиленный кровавый камень', '', 0), +(5330, 'ruRU', 'Реликтовая эльфийская чаша', '', 0), +(5396, 'ruRU', 'Ключ от Тлеющего ущелья', '', 0), +(5397, 'ruRU', 'Порох Братства Справедливости', '', 0), +(5517, 'ruRU', 'Крошечный бронзовый ключ', 'Реактив для заклинаний магов', 0), +(5518, 'ruRU', 'Крошечный железный ключ', 'Реактив для заклинаний магов', 0), +(5522, 'ruRU', 'Камень чар', '', 0), +(5603, 'ruRU', 'Джутовый мешок Визбанга', '', 0), +(5657, 'ruRU', 'Рецепт: быстродействующая отрава', '', 0), +(5660, 'ruRU', 'Манускрипт печати праведности', '', 0), +(5663, 'ruRU', 'Рог Красного Волка', '', 0), +(5823, 'ruRU', 'Ядовитый гриб', '', 0), +(5858, 'ruRU', 'Призовой сундучок гоблинов', 'Открой и получишь приз!', 0), +(5874, 'ruRU', 'Сбруя: черный баран', '', 0), +(5875, 'ruRU', 'Сбруя: синий баран', '', 0), +(6130, 'ruRU', 'Рубашка зверолова', '', 0), +(6182, 'ruRU', 'Тусклый факел', '', 0), +(6183, 'ruRU', 'Незажженный плохой факел', '', 0), +(6216, 'ruRU', 'Таинственный порошок', 'Используется зачаровывателями для наложения некоторых чар.', 0), +(6276, 'ruRU', 'Заплесневелая записка', '', 0), +(6277, 'ruRU', 'Заплесневелый пергамент', '', 0), +(6278, 'ruRU', 'Заплесневелый свиток', '', 0), +(6279, 'ruRU', 'Заплесневелое письмо', '', 0), +(6280, 'ruRU', 'Заплесневелое послание', '', 0), +(6295, 'ruRU', '15-фунтовый илистый луциан', '', 0), +(6345, 'ruRU', 'Формула: укрепить плащ - охрана', 'Обучает применению к плащу постоянных чар, усиливающих броню на 10.', 0), +(6374, 'ruRU', 'Зачарованный порошок', 'Используется зачаровывателями для наложения некоторых чар.', 0), +(6376, 'ruRU', 'Формула чар для обуви: выносливость I', 'Обучает применению к обуви постоянных чар, повышающих выносливость на 1.', 0), +(6490, 'ruRU', 'Темный пергамент', '', 0), +(6491, 'ruRU', 'Тяжелый пергамент', '', 0), +(6492, 'ruRU', 'Закопченый пергамент', '', 0), +(6495, 'ruRU', 'Потрепанный пергамент', '', 0), +(6496, 'ruRU', 'Подробный пергамент', '', 0), +(6497, 'ruRU', 'Записка на пергаменте', '', 0), +(6544, 'ruRU', 'Свиток призыва демона Бездны', '', 0), +(6589, 'ruRU', 'Иридиевое кольцо', '', 0), +(6619, 'ruRU', 'Учебник: путь защиты', '', 0), +(6623, 'ruRU', 'Свиток призыва суккуба', '', 0), +(6648, 'ruRU', 'Свиток тотема каменной кожи', '', 0), +(6649, 'ruRU', 'Свиток опаляющего тотема', '', 0), +(6754, 'ruRU', 'Большой кошель', '', 0), +(6891, 'ruRU', 'Рецепт: яйцо с травами', 'Обучает приготовлению яйца с травами.', 0), +(6988, 'ruRU', 'Свиток призыва охотника Скверны', '', 0), +(7192, 'ruRU', 'Чертеж: гоблинские реактивные сапоги', 'Обучает изготовлению гоблинских реактивных сапог.', 0), +(7426, 'ruRU', 'Небесно-голубое кольцо', '', 0), +(7427, 'ruRU', 'Лазурный талисман', '', 0), +(7466, 'ruRU', 'Киноварное кольцо', '', 0), +(7467, 'ruRU', 'Киноварное ожерелье', '', 0), +(7497, 'ruRU', 'Кольцо из слоновой кости', '', 0), +(7547, 'ruRU', 'Ониксовое кольцо', '', 0), +(7548, 'ruRU', 'Ониксовое колье', '', 0), +(7550, 'ruRU', 'Честь Воителя', '', 0), +(7681, 'ruRU', 'Осколок обсидианового голема', '', 0), +(7716, 'ruRU', 'Поврежденное ожерелье', '', 0), +(7923, 'ruRU', 'Ключ от Башни Братства Справедливости', '', 0), +(7986, 'ruRU', 'Чертеж: изысканная мифриловая кираса', '', 0), +(7987, 'ruRU', 'Чертеж: изысканный мифриловый шлем', '', 0), +(7988, 'ruRU', 'Чертеж: изысканные мифриловые сапоги', '', 0), +(7994, 'ruRU', 'Чертеж: орочьи боевые поножи', '', 0), +(8072, 'ruRU', 'Ключ башни Силиксиза', '', 0), +(8147, 'ruRU', 'Крошечный медный ключ', 'Реактив для заклинаний магов', 0), +(8546, 'ruRU', 'Мощные ароматические соли', '', 0), +(8583, 'ruRU', 'Рог ездового коня-скелета', '', 0), +(8589, 'ruRU', 'Старый свисток бежевого ящера', '', 0), +(8590, 'ruRU', 'Старый свисток обсидианового ящера', '', 0), +(8628, 'ruRU', 'Поводья пятнистого ночного саблезуба', '', 0), +(8630, 'ruRU', 'Поводья бенгальского тигра', '', 0), +(8633, 'ruRU', 'Поводья леопарда', '', 0), +(8840, 'ruRU', 'Фолиант Сотворения самоцвета маны II', '', 0), +(8964, 'ruRU', 'Кодекс быстрого исцеления', '', 0), +(9299, 'ruRU', 'Код от сейфа Термоштепселя', '', 0), +(9311, 'ruRU', 'Обычные письменные принадлежности', '', 0), +(9417, 'ruRU', 'Архиаэдский осколок', '', 0), +(9443, 'ruRU', 'Использованный препарат тканей монстра', '', 0), +(9489, 'ruRU', 'Гироматический генератор льда', '', 0), +(10460, 'ruRU', 'Кровь Хаккари', '', 0), +(10580, 'ruRU', 'Гоблинская "коробка с сюрпризом"', '', 0), +(10683, 'ruRU', 'Ранец исследователя', '', 0), +(10719, 'ruRU', 'Передвижная сирена', '', 0), +(10723, 'ruRU', 'Любительское радио гномов', '', 0), +(10757, 'ruRU', 'Оберег Осквернителя', 'Полный амулет Рак\'лиха', 0), +(11079, 'ruRU', 'Отрубленная голова Гор\'теша', 'Отрубленная голова Гор\'теша насажена на пику.', 0), +(12144, 'ruRU', 'Яйцехладоскоп', '', 0), +(12947, 'ruRU', 'Кольцо отваги Алекса', '', 0), +(13065, 'ruRU', 'Жезл Аллистария', '', 0), +(13302, 'ruRU', 'Ключ от почтового ящика в торговом ряду', '', 0), +(13303, 'ruRU', 'Ключ от почтового ящика на Площади рыцарей', '', 0), +(13304, 'ruRU', 'Ключ от почтового ящика на Праздничной улице', '', 0), +(13305, 'ruRU', 'Ключ от почтового ящика на Площади старейшины', '', 0), +(13306, 'ruRU', 'Ключ от почтового ящика на Королевской площали', '', 0), +(13307, 'ruRU', 'Ключ от почтового ящика Эзры Гримма', '', 0), +(13602, 'ruRU', 'Большой камень чар', '', 0), +(13603, 'ruRU', 'Крупный камень чар', '', 0), +(13699, 'ruRU', 'Камень огня', '', 0), +(13700, 'ruRU', 'Большой камень огня', '', 0), +(13701, 'ruRU', 'Крупный камень огня', '', 0), +(13812, 'ruRU', 'Кольцо Рассвета', '', 0), +(13873, 'ruRU', 'Ключ от смотровой', '', 0), +(14062, 'ruRU', 'Верховой кодо', '', 0), +(14100, 'ruRU', 'Одеяние из яркой ткани', '', 0), +(14104, 'ruRU', 'Штаны из яркой ткани', '', 0), +(15054, 'ruRU', 'Вулканические поножи', '', 0), +(15068, 'ruRU', 'Мундир из кожи ледопарда', '', 0), +(15069, 'ruRU', 'Поножи из кожи ледопарда', '', 0), +(15070, 'ruRU', 'Перчатки из кожи ледопарда', '', 0), +(15071, 'ruRU', 'Сапоги из кожи ледопарда', '', 0), +(15072, 'ruRU', 'Химерические поножи', '', 0), +(15074, 'ruRU', 'Химерические перчатки', '', 0), +(15075, 'ruRU', 'Химерический жилет', '', 0), +(16057, 'ruRU', 'Ранец исследователя', '', 0), +(16085, 'ruRU', 'Искусник первой помощи: исцели себя сам', '', 0), +(16315, 'ruRU', 'Накидка старшины', '', 0), +(16336, 'ruRU', 'Накидка старшины', '', 0), +(16337, 'ruRU', 'Накидка старшины', '', 0), +(16339, 'ruRU', 'Скакун командора', '', 0), +(17242, 'ruRU', 'Ключ от сундука Салема', 'Открывает сундук темного священника Салема.', 0), +(17262, 'ruRU', 'Ключ Джеймса', 'Открывает сундук, украденный из Собора Света.', 0), +(17323, 'ruRU', 'Маяк Малверика', '', 0), +(17325, 'ruRU', 'Маяк Джезтора', '', 0), +(17362, 'ruRU', 'Маяк Рисона', '', 0), +(17363, 'ruRU', 'Маяк Рисона', '', 0), +(17384, 'ruRU', 'Портативный резак Зинфиззлекса', '', 0), +(17410, 'ruRU', 'Портативный резак Зинфиззлекса', '', 0), +(17505, 'ruRU', 'Маяк Ичмена', '', 0), +(17506, 'ruRU', 'Маяк Змейера', '', 0), +(17782, 'ruRU', 'Талисман Соединения Осколков', '', 0), +(17967, 'ruRU', 'Очищенная чешуя ониксии', '', 0), +(18154, 'ruRU', 'Письменные принадлежности Близзарда', '', 0), +(18266, 'ruRU', 'Ключ от внутреннего двора клана Гордок', '', 0), +(18268, 'ruRU', 'Ключ от внутренней двери клана Гордок', '', 0), +(18964, 'ruRU', 'Черепашье яйцо (головастая морская черепаха)', 'Призыв и освобождение хрустогрыза по щелчку правой кнопкой мыши.', 0), +(19322, 'ruRU', 'Почетный знак Песни Войны', 'Знак за победу в Ущелье Песни Войны.', 0), +(20364, 'ruRU', 'Тестовый снарядный ящик', '', 0), +(20591, 'ruRU', 'Прочная мужская маска дворфа', '', 0), +(20596, 'ruRU', 'Прочная мужская маска таурена', '', 0), +(20819, 'ruRU', 'Ограненный малахит', '', 0), +(20822, 'ruRU', 'Ограненный тигровый глаз', '', 0), +(20825, 'ruRU', 'Ограненный камень теней', '', 0), +(20829, 'ruRU', 'Ограненный лунный камень', '', 0), +(20952, 'ruRU', 'Ограненный агат', '', 0), +(20953, 'ruRU', 'Ограненный нефрит', '', 0), +(20956, 'ruRU', 'Подвеска серебряной розы', '', 0), +(20962, 'ruRU', 'Ограненный аквамарин', '', 0), +(20965, 'ruRU', 'Ограненный рубин', '', 0), +(21691, 'ruRU', 'Испорченные грязью рукавицы', '', 0), +(21761, 'ruRU', 'Ключ от сундука Скарабея', '', 0), +(21762, 'ruRU', 'Ключ от большого сундука Скарабея', '', 0), +(21772, 'ruRU', 'Ограненный сапфир', '', 0), +(21773, 'ruRU', 'Ограненный опал', '', 0), +(21785, 'ruRU', 'Ограненный изумруд', '', 0), +(21786, 'ruRU', 'Ограненный азеротский алмаз', '', 0), +(21793, 'ruRU', 'Подвеска из арканитового меча', '', 0), +(22058, 'ruRU', 'Портрет ко дню Святого Валентина', '', 0), +(22095, 'ruRU', 'Наручники Пяти Громов', '', 0), +(22096, 'ruRU', 'Сапоги Пяти Громов', '', 0), +(22097, 'ruRU', 'Капюшон Пяти Громов', '', 0), +(22098, 'ruRU', 'Шнурованный ремень Пяти Громов', '', 0), +(22099, 'ruRU', 'Рукавицы Пяти Громов', '', 0), +(22100, 'ruRU', 'Килт Пяти Громов', '', 0), +(22101, 'ruRU', 'Наплечье Пяти Громов', '', 0), +(22102, 'ruRU', 'Жилет Пяти Громов', '', 0), +(22128, 'ruRU', 'Великий камень огня', '', 0), +(22646, 'ruRU', 'Мастерский камень чар', '', 0), +(22736, 'ruRU', 'Адонис, Жнец душ', 'Это пространственный клинок. Иногда он выпадает с этого уровня реальности.', 0), +(22896, 'ruRU', 'Исцеляющий кристалл', '', 0), +(23233, 'ruRU', 'Красный брианит Силы - материал', '', 0), +(23234, 'ruRU', 'Синий брианит Ловкости', '', 0), +(23235, 'ruRU', 'Желтый брианит выносливости', '', 0), +(23462, 'ruRU', 'Фолиант верховного вождя: Разрушение', '', 0), +(23578, 'ruRU', 'Диетическое зелье Максоуса', 'Пища для Ума', 0), +(23579, 'ruRU', 'Классическое зелье Максоуса', 'Оригинал.', 0), +(23683, 'ruRU', 'Пастилка от кашля из кристальных пластинок', '', 0), +(23684, 'ruRU', 'Бинты Хрустального дара', '', 0), +(23754, 'ruRU', 'Шкура щетинистого копытня', '', 0), +(23831, 'ruRU', 'Гоблинский пульт управления танком', '', 0), +(23832, 'ruRU', 'Гномский пульт управления танком', '', 0), +(23840, 'ruRU', 'Удаленный почтовый терминал', '', 0), +(23855, 'ruRU', 'Огненная чароткань', '', 0), +(24269, 'ruRU', 'Тяжелая сеть из ткани Пустоты', '', 0), +(25580, 'ruRU', 'QR 9867 Поножи воина', '', 0), +(25581, 'ruRU', 'QR 9867 Охотничьи перчатки', '', 0), +(25582, 'ruRU', 'QR 9867 Друидический пояс лунного совуха', '', 0), +(25627, 'ruRU', 'QR 9922 Щит', '', 0), +(25684, 'ruRU', 'Талисман Кокорека', '', 0), +(25706, 'ruRU', 'Приказы Луанги', '', 0), +(25747, 'ruRU', '(Испорчено) Чертеж мана-бомбы, стр. 1', '', 0), +(25748, 'ruRU', '(Испорчено) Чертеж мана-бомбы, стр. 2', '', 0), +(25749, 'ruRU', '(Испорчено) Чертеж мана-бомбы, стр. 3', '', 0), +(25750, 'ruRU', '(Испорчено) Чертеж мана-бомбы, стр. 4', '', 0), +(25840, 'ruRU', 'Экстракт посмертия', '', 0), +(25884, 'ruRU', 'Изначальная каменная статуя', '', 0), +(28043, 'ruRU', 'Подвеска ловчего демонов', '', 0), +(28044, 'ruRU', 'Кольцо ловчего демонов', '', 0), +(28046, 'ruRU', 'Послание Легиона', 'Запечатано печатью Араззиуса.', 0), +(28107, 'ruRU', 'Послание Легиона', 'Запечатано печатью Араззиуса.', 0), +(28110, 'ruRU', 'Толстый гном и Тощий эльф', '', 0), +(28131, 'ruRU', 'Разбойничий гранатомет', '', 0), +(28598, 'ruRU', 'Инструкция по созданию сквернобота', '', 0), +(29311, 'ruRU', 'Инструкция по созданию сквернобота', '', 0), +(29790, 'ruRU', 'Разрушительные заряды', '', 0), +(29887, 'ruRU', 'Коробка для боеприпасов "Охотник-150"', '', 0), +(30438, 'ruRU', 'Ключ от склада Легиона', '', 0), +(30630, 'ruRU', 'Энергетическая матрица сквернобота', '', 0), +(30717, 'ruRU', 'Подвеска Вестника', '', 0), +(30805, 'ruRU', 'Утолщенные перчатки незапятнанности', '', 0), +(30845, 'ruRU', 'Знак Всемагической Защиты', '', 0), +(31665, 'ruRU', 'Игрушечный ДУ танк-миномет', 'Заметка: Безопасно для детей. Не стреляет.', 0), +(31704, 'ruRU', 'Ключ Урагана', 'Прозрачный ключ, который будто бы связан лучами света.', 0), +(32595, 'ruRU', 'Реагент - пыль Оргелы', '', 0), +(32642, 'ruRU', 'Изначальная темная руна', 'Энергия Скверны заполняет пространство вокруг руны.', 0), +(32972, 'ruRU', 'Пивные очки', '', 0), +(33063, 'ruRU', 'Очень черствый хлеб', 'Несъедобно, но сойдет, чтобы отстоять вашу выпивку.', 0), +(35517, 'ruRU', 'Выкройка: наручники молниеносной реакции', '', 0), +(35518, 'ruRU', 'Выкройка: наручи сообразительности', '', 0), +(35519, 'ruRU', 'Выкройка: наручи обновленной жизни', '', 0), +(35520, 'ruRU', 'Выкройка: наручники живой земли', '', 0), +(35521, 'ruRU', 'Выкройка: наплечники живой земли', '', 0), +(35522, 'ruRU', 'Выкройка: мантия сообразительности', '', 0), +(35523, 'ruRU', 'Выкройка: наплечные пластины обновленной жизни', '', 0), +(35524, 'ruRU', 'Выкройка: наплечники молниеносной реакции', '', 0), +(35525, 'ruRU', 'Выкройка: мантия быстрого исцеления', '', 0), +(35526, 'ruRU', 'Выкройка: повязки быстрого исцеления', '', 0), +(35527, 'ruRU', 'Выкройка: наручи молниеносного удара', '', 0), +(35529, 'ruRU', 'Чертеж: наручи рассветной стали', '', 0), +(35531, 'ruRU', 'Чертеж: наручи из быстростали', '', 0), +(35533, 'ruRU', 'Эскиз: амулет бьющего ключа', 'Обучает изготовлению амулета бьющего ключа.', 0), +(35535, 'ruRU', 'Эскиз: колье из закаленного кория', '', 0), +(35537, 'ruRU', 'Эскиз: подвеска солнечного огня', '', 0), +(35538, 'ruRU', 'Эскиз: кольцо бьющего ключа', '', 0), +(35539, 'ruRU', 'Выкройка: панцирь Солнца и Тени', '', 0), +(35541, 'ruRU', 'Выкройка: стрелецкие перчатки Феникса', '', 0), +(35544, 'ruRU', 'Выкройка: перчатки вечного света', '', 0), +(35545, 'ruRU', 'Выкройка: кожаный нагрудный доспех солнца', '', 0), +(35546, 'ruRU', 'Выкройка: кожаные рукавицы Солнца', '', 0), +(35548, 'ruRU', 'Выкройка: одеяние вечного света', '', 0), +(35549, 'ruRU', 'Выкройка: пронизанный солнцем нагрудный доспех', '', 0), +(35550, 'ruRU', 'Выкройка: пронизанные солнцем чешуйчатые перчатки', '', 0), +(35551, 'ruRU', 'Выкройка: повязки солнечного огня', '', 0), +(35553, 'ruRU', 'Чертеж: кулачные перчатки из закаленного кория', '', 0); From 90a23ed8e95d901ee69ca3c9355e1166b3ef5063 Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 04:46:26 +0000 Subject: [PATCH 28/57] chore(DB): import pending files Referenced commit(s): ae30154d119aff1cb06e4fd21201980b004bf677 --- .../2022_03_27_09.sql} | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) rename data/sql/updates/{pending_db_world/rev_1647998826935283089.sql => db_world/2022_03_27_09.sql} (96%) diff --git a/data/sql/updates/pending_db_world/rev_1647998826935283089.sql b/data/sql/updates/db_world/2022_03_27_09.sql similarity index 96% rename from data/sql/updates/pending_db_world/rev_1647998826935283089.sql rename to data/sql/updates/db_world/2022_03_27_09.sql index a764cde83..179617415 100644 --- a/data/sql/updates/pending_db_world/rev_1647998826935283089.sql +++ b/data/sql/updates/db_world/2022_03_27_09.sql @@ -1,3 +1,19 @@ +-- DB update 2022_03_27_08 -> 2022_03_27_09 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_08'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_08 2022_03_27_09 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647998826935283089'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647998826935283089'); REPLACE INTO `item_template_locale` (`ID`, `locale`, `Name`, `Description`, `VerifiedBuild`) VALUES @@ -284,3 +300,13 @@ REPLACE INTO `item_template_locale` (`ID`, `locale`, `Name`, `Description`, `Ver (35550, 'ruRU', 'Выкройка: пронизанные солнцем чешуйчатые перчатки', '', 0), (35551, 'ruRU', 'Выкройка: повязки солнечного огня', '', 0), (35553, 'ruRU', 'Чертеж: кулачные перчатки из закаленного кория', '', 0); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_09' WHERE sql_rev = '1647998826935283089'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; From 63f17d3c3966741eae87b94926cf5e88813ffe2f Mon Sep 17 00:00:00 2001 From: "Bogir[rus]" Date: Sun, 27 Mar 2022 09:46:54 +0500 Subject: [PATCH 29/57] fix(DB/Locale/ruRU): Add missing gameobject_template_locale (#11115) --- .../rev_1647999537361228262.sql | 293 ++++++++++++++++++ 1 file changed, 293 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1647999537361228262.sql diff --git a/data/sql/updates/pending_db_world/rev_1647999537361228262.sql b/data/sql/updates/pending_db_world/rev_1647999537361228262.sql new file mode 100644 index 000000000..9908bd77a --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1647999537361228262.sql @@ -0,0 +1,293 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647999537361228262'); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(176005, 'ruRU', 'Скамейка подземки', '', 0), +(176006, 'ruRU', 'Скамейка подземки', '', 0), +(176007, 'ruRU', 'Скамейка подземки', '', 0), +(176008, 'ruRU', 'Скамейка подземки', '', 0), +(176009, 'ruRU', 'Скамейка подземки', '', 0), +(176010, 'ruRU', 'Скамейка подземки', '', 0), +(176011, 'ruRU', 'Скамейка подземки', '', 0), +(176012, 'ruRU', 'Скамейка подземки', '', 0), +(176013, 'ruRU', 'Скамейка подземки', '', 0), +(176014, 'ruRU', 'Скамейка подземки', '', 0), +(176015, 'ruRU', 'Скамейка подземки', '', 0), +(176016, 'ruRU', 'Скамейка подземки', '', 0), +(176017, 'ruRU', 'Скамейка подземки', '', 0), +(176018, 'ruRU', 'Скамейка подземки', '', 0), +(176019, 'ruRU', 'Скамейка подземки', '', 0), +(176020, 'ruRU', 'Скамейка подземки', '', 0), +(176021, 'ruRU', 'Скамейка подземки', '', 0), +(176022, 'ruRU', 'Скамейка подземки', '', 0), +(176023, 'ruRU', 'Скамейка подземки', '', 0), +(176024, 'ruRU', 'Скамейка подземки', '', 0), +(176025, 'ruRU', 'Скамейка подземки', '', 0), +(176026, 'ruRU', 'Скамейка подземки', '', 0), +(176027, 'ruRU', 'Скамейка подземки', '', 0), +(176028, 'ruRU', 'Скамейка подземки', '', 0), +(176029, 'ruRU', 'Скамейка подземки', '', 0), +(176030, 'ruRU', 'Скамейка подземки', '', 0), +(176031, 'ruRU', 'Скамейка подземки', '', 0), +(176032, 'ruRU', 'Скамейка подземки', '', 0), +(176033, 'ruRU', 'Скамейка подземки', '', 0), +(176034, 'ruRU', 'Скамейка подземки', '', 0), +(176035, 'ruRU', 'Скамейка подземки', '', 0), +(176036, 'ruRU', 'Скамейка подземки', '', 0), +(176037, 'ruRU', 'Скамейка подземки', '', 0), +(176038, 'ruRU', 'Скамейка подземки', '', 0), +(176039, 'ruRU', 'Скамейка подземки', '', 0), +(176040, 'ruRU', 'Скамейка подземки', '', 0), +(176041, 'ruRU', 'Скамейка подземки', '', 0), +(176042, 'ruRU', 'Скамейка подземки', '', 0), +(176043, 'ruRU', 'Скамейка подземки', '', 0), +(176044, 'ruRU', 'Скамейка подземки', '', 0), +(176045, 'ruRU', 'Скамейка подземки', '', 0), +(176046, 'ruRU', 'Скамейка подземки', '', 0), +(176047, 'ruRU', 'Скамейка подземки', '', 0), +(176048, 'ruRU', 'Скамейка подземки', '', 0), +(176049, 'ruRU', 'Скамейка подземки', '', 0), +(176050, 'ruRU', 'Скамейка подземки', '', 0), +(176051, 'ruRU', 'Скамейка подземки', '', 0), +(176052, 'ruRU', 'Скамейка подземки', '', 0), +(176053, 'ruRU', 'Скамейка подземки', '', 0), +(176054, 'ruRU', 'Скамейка подземки', '', 0), +(176055, 'ruRU', 'Скамейка подземки', '', 0), +(176056, 'ruRU', 'Скамейка подземки', '', 0), +(176057, 'ruRU', 'Скамейка подземки', '', 0), +(176058, 'ruRU', 'Скамейка подземки', '', 0), +(176059, 'ruRU', 'Скамейка подземки', '', 0), +(176060, 'ruRU', 'Скамейка подземки', '', 0), +(176061, 'ruRU', 'Скамейка подземки', '', 0), +(176062, 'ruRU', 'Скамейка подземки', '', 0), +(176063, 'ruRU', 'Скамейка подземки', '', 0), +(176064, 'ruRU', 'Скамейка подземки', '', 0), +(176065, 'ruRU', 'Скамейка подземки', '', 0), +(176066, 'ruRU', 'Скамейка подземки', '', 0), +(176067, 'ruRU', 'Скамейка подземки', '', 0), +(176068, 'ruRU', 'Скамейка подземки', '', 0), +(176069, 'ruRU', 'Скамейка подземки', '', 0), +(176070, 'ruRU', 'Скамейка подземки', '', 0), +(176071, 'ruRU', 'Скамейка подземки', '', 0), +(176072, 'ruRU', 'Скамейка подземки', '', 0), +(176073, 'ruRU', 'Скамейка подземки', '', 0), +(176074, 'ruRU', 'Скамейка подземки', '', 0), +(176075, 'ruRU', 'Скамейка подземки', '', 0), +(176076, 'ruRU', 'Скамейка подземки', '', 0), +(176077, 'ruRU', 'Скамейка подземки', '', 0), +(176078, 'ruRU', 'Скамейка подземки', '', 0), +(176079, 'ruRU', 'Скамейка подземки', '', 0), +(176098, 'ruRU', 'Скамейка подземки', '', 0), +(176099, 'ruRU', 'Скамейка подземки', '', 0), +(176100, 'ruRU', 'Скамейка подземки', '', 0), +(176101, 'ruRU', 'Скамейка подземки', '', 0), +(176102, 'ruRU', 'Скамейка подземки', '', 0), +(176103, 'ruRU', 'Скамейка подземки', '', 0), +(176104, 'ruRU', 'Скамейка подземки', '', 0), +(176105, 'ruRU', 'Скамейка подземки', '', 0), +(176106, 'ruRU', 'Скамейка подземки', '', 0), +(176107, 'ruRU', 'Скамейка подземки', '', 0), +(176108, 'ruRU', 'Скамейка подземки', '', 0), +(176109, 'ruRU', 'Скамейка подземки', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(57748, 'ruRU', 'Фонарный столб', '', 0), +(82139, 'ruRU', 'Фонарный столб', '', 0), +(82140, 'ruRU', 'Фонарный столб', '', 0), +(57709, 'ruRU', 'Фонарный столб', '', 0), +(57710, 'ruRU', 'Фонарный столб', '', 0), +(57725, 'ruRU', 'Фонарный столб', '', 0), +(57726, 'ruRU', 'Фонарный столб', '', 0), +(57727, 'ruRU', 'Фонарный столб', '', 0), +(57749, 'ruRU', 'Фонарный столб', '', 0), +(57750, 'ruRU', 'Фонарный столб', '', 0), +(57751, 'ruRU', 'Фонарный столб', '', 0), +(57752, 'ruRU', 'Фонарный столб', '', 0), +(57753, 'ruRU', 'Фонарный столб', '', 0), +(70518, 'ruRU', 'Фонарный столб', '', 0), +(70519, 'ruRU', 'Фонарный столб', '', 0), +(70520, 'ruRU', 'Фонарный столб', '', 0), +(70521, 'ruRU', 'Фонарный столб', '', 0), +(70522, 'ruRU', 'Фонарный столб', '', 0), +(70523, 'ruRU', 'Фонарный столб', '', 0), +(70524, 'ruRU', 'Фонарный столб', '', 0), +(70525, 'ruRU', 'Фонарный столб', '', 0), +(70526, 'ruRU', 'Фонарный столб', '', 0), +(70527, 'ruRU', 'Фонарный столб', '', 0), +(70528, 'ruRU', 'Фонарный столб', '', 0), +(70530, 'ruRU', 'Фонарный столб', '', 0), +(70531, 'ruRU', 'Фонарный столб', '', 0), +(70532, 'ruRU', 'Фонарный столб', '', 0), +(70533, 'ruRU', 'Фонарный столб', '', 0), +(70534, 'ruRU', 'Фонарный столб', '', 0), +(70535, 'ruRU', 'Фонарный столб', '', 0), +(70536, 'ruRU', 'Фонарный столб', '', 0), +(70537, 'ruRU', 'Фонарный столб', '', 0), +(70538, 'ruRU', 'Фонарный столб', '', 0), +(70539, 'ruRU', 'Фонарный столб', '', 0), +(70540, 'ruRU', 'Фонарный столб', '', 0), +(70541, 'ruRU', 'Фонарный столб', '', 0), +(70542, 'ruRU', 'Фонарный столб', '', 0), +(70543, 'ruRU', 'Фонарный столб', '', 0), +(70544, 'ruRU', 'Фонарный столб', '', 0), +(70545, 'ruRU', 'Фонарный столб', '', 0), +(70546, 'ruRU', 'Фонарный столб', '', 0), +(70547, 'ruRU', 'Фонарный столб', '', 0), +(70548, 'ruRU', 'Фонарный столб', '', 0), +(70549, 'ruRU', 'Фонарный столб', '', 0), +(70551, 'ruRU', 'Фонарный столб', '', 0), +(70552, 'ruRU', 'Фонарный столб', '', 0), +(70553, 'ruRU', 'Фонарный столб', '', 0), +(70554, 'ruRU', 'Фонарный столб', '', 0), +(70555, 'ruRU', 'Фонарный столб', '', 0), +(70556, 'ruRU', 'Фонарный столб', '', 0), +(70557, 'ruRU', 'Фонарный столб', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(142111, 'ruRU', 'Почтовый ящик', '', 0), +(143987, 'ruRU', 'Почтовый ящик', '', 0), +(143988, 'ruRU', 'Почтовый ящик', '', 0), +(143989, 'ruRU', 'Почтовый ящик', '', 0), +(143990, 'ruRU', 'Почтовый ящик', '', 0), +(144570, 'ruRU', 'Почтовый ящик', '', 0), +(153578, 'ruRU', 'Почтовый ящик', '', 0), +(163313, 'ruRU', 'Почтовый ящик', '', 0), +(185471, 'ruRU', 'Почтовый ящик', '', 0), +(142119, 'ruRU', 'Почтовый ящик', '', 0), +(175864, 'ruRU', 'Почтовый ящик', '', 0), +(181639, 'ruRU', 'Почтовый ящик', '', 0), +(187260, 'ruRU', 'Почтовый ящик', '', 0), +(195629, 'ruRU', 'Почтовый ящик', '', 0), +(195624, 'ruRU', 'Почтовый ящик', '', 0), +(195625, 'ruRU', 'Почтовый ящик', '', 0), +(195626, 'ruRU', 'Почтовый ящик', '', 0), +(195628, 'ruRU', 'Почтовый ящик', '', 0), +(195627, 'ruRU', 'Почтовый ящик', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(28611, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(28612, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(171648, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(171649, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(35577, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(35578, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(35580, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(35581, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(35588, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(35589, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(37474, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(37475, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(37480, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(37481, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(37483, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(37484, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(37492, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(37493, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(38024, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0), +(38025, 'ruRU', 'Дворфийский стул с высокой спинкой', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(172943, 'ruRU', 'Могучее пламя', '', 0), +(172998, 'ruRU', 'Могучее пламя', '', 0), +(173000, 'ruRU', 'Могучее пламя', '', 0), +(173124, 'ruRU', 'Могучее пламя', '', 0), +(173201, 'ruRU', 'Могучее пламя', '', 0), +(172999, 'ruRU', 'Могучее пламя', '', 0), +(173001, 'ruRU', 'Могучее пламя', '', 0), +(173002, 'ruRU', 'Могучее пламя', '', 0), +(173003, 'ruRU', 'Могучее пламя', '', 0), +(173004, 'ruRU', 'Могучее пламя', '', 0), +(173126, 'ruRU', 'Могучее пламя', '', 0), +(173228, 'ruRU', 'Могучее пламя', '', 0), +(173229, 'ruRU', 'Могучее пламя', '', 0), +(173230, 'ruRU', 'Могучее пламя', '', 0), +(173231, 'ruRU', 'Могучее пламя', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(32367, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32370, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32396, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32397, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32398, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32399, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32402, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32405, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32410, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32411, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32430, 'ruRU', 'Главные ворота Стальгорна', '', 0), +(32440, 'ruRU', 'Главные ворота Стальгорна', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(142947, 'ruRU', 'Каменный стул', '', 0), +(171674, 'ruRU', 'Каменный стул', '', 0), +(142948, 'ruRU', 'Каменный стул', '', 0), +(171567, 'ruRU', 'Каменный стул', '', 0), +(171568, 'ruRU', 'Каменный стул', '', 0), +(171675, 'ruRU', 'Каменный стул', '', 0), +(171676, 'ruRU', 'Каменный стул', '', 0), +(171677, 'ruRU', 'Каменный стул', '', 0), +(171718, 'ruRU', 'Каменный стул', '', 0), +(171719, 'ruRU', 'Каменный стул', '', 0), +(171720, 'ruRU', 'Каменный стул', '', 0), +(171721, 'ruRU', 'Каменный стул', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(32356, 'ruRU', 'Зал Исследователей', '', 0), +(32360, 'ruRU', 'Зал Исследователей', '', 0), +(32363, 'ruRU', 'Зал Исследователей', '', 0), +(32371, 'ruRU', 'Зал Исследователей', '', 0), +(32408, 'ruRU', 'Зал Исследователей', '', 0), +(32413, 'ruRU', 'Зал Исследователей', '', 0), +(32418, 'ruRU', 'Зал Исследователей', '', 0), +(32421, 'ruRU', 'Зал Исследователей', '', 0), +(32423, 'ruRU', 'Зал Исследователей', '', 0), +(32786, 'ruRU', 'Зал Исследователей', '', 0), +(32788, 'ruRU', 'Зал Исследователей', '', 0), +(32793, 'ruRU', 'Зал Исследователей', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(32372, 'ruRU', 'Великая Кузня', '', 0), +(32373, 'ruRU', 'Великая Кузня', '', 0), +(32374, 'ruRU', 'Великая Кузня', '', 0), +(32375, 'ruRU', 'Великая Кузня', '', 0), +(32378, 'ruRU', 'Великая Кузня', '', 0), +(32379, 'ruRU', 'Великая Кузня', '', 0), +(32392, 'ruRU', 'Великая Кузня', '', 0), +(32395, 'ruRU', 'Великая Кузня', '', 0), +(32436, 'ruRU', 'Великая Кузня', '', 0), +(32789, 'ruRU', 'Великая Кузня', '', 0), +(32790, 'ruRU', 'Великая Кузня', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(19522, 'ruRU', 'Котел', '', 0), +(59529, 'ruRU', 'Котел', '', 0), +(59530, 'ruRU', 'Котел', '', 0), +(177244, 'ruRU', 'Котел', '', 0), +(20878, 'ruRU', 'Котел', '', 0), +(74077, 'ruRU', 'Котел', '', 0), +(141845, 'ruRU', 'Котел', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(188130, 'ruRU', 'Камень Льда', '', 0), +(188134, 'ruRU', 'Камень Льда', '', 0), +(188135, 'ruRU', 'Камень Льда', '', 0), +(188139, 'ruRU', 'Камень Льда', '', 0), +(188145, 'ruRU', 'Камень Льда', '', 0), +(188146, 'ruRU', 'Камень Льда', '', 0), +(188147, 'ruRU', 'Камень Льда', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(9847, 'ruRU', 'Очаг для приготовления пищи', '', 0), +(10388, 'ruRU', 'Очаг для приготовления пищи', '', 0), +(175592, 'ruRU', 'Очаг для приготовления пищи', '', 0), +(175600, 'ruRU', 'Очаг для приготовления пищи', '', 0), +(175604, 'ruRU', 'Очаг для приготовления пищи', '', 0), +(175605, 'ruRU', 'Очаг для приготовления пищи', '', 0), +(184618, 'ruRU', 'Очаг для приготовления пищи', '', 0); + +REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES +(176080, 'ruRU', 'Подземка', '', 0), +(176081, 'ruRU', 'Подземка', '', 0), +(176082, 'ruRU', 'Подземка', '', 0), +(176083, 'ruRU', 'Подземка', '', 0), +(176084, 'ruRU', 'Подземка', '', 0), +(176085, 'ruRU', 'Подземка', '', 0); From 7f4ff537b129b95980842de69ef137aca578c8cf Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 04:48:40 +0000 Subject: [PATCH 30/57] chore(DB): import pending files Referenced commit(s): 63f17d3c3966741eae87b94926cf5e88813ffe2f --- .../2022_03_27_10.sql} | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) rename data/sql/updates/{pending_db_world/rev_1647999537361228262.sql => db_world/2022_03_27_10.sql} (95%) diff --git a/data/sql/updates/pending_db_world/rev_1647999537361228262.sql b/data/sql/updates/db_world/2022_03_27_10.sql similarity index 95% rename from data/sql/updates/pending_db_world/rev_1647999537361228262.sql rename to data/sql/updates/db_world/2022_03_27_10.sql index 9908bd77a..c0170189e 100644 --- a/data/sql/updates/pending_db_world/rev_1647999537361228262.sql +++ b/data/sql/updates/db_world/2022_03_27_10.sql @@ -1,3 +1,19 @@ +-- DB update 2022_03_27_09 -> 2022_03_27_10 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_09'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_09 2022_03_27_10 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647999537361228262'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647999537361228262'); REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCaption`, `VerifiedBuild`) VALUES @@ -291,3 +307,13 @@ REPLACE INTO `gameobject_template_locale` (`entry`, `locale`, `name`, `castBarCa (176083, 'ruRU', 'Подземка', '', 0), (176084, 'ruRU', 'Подземка', '', 0), (176085, 'ruRU', 'Подземка', '', 0); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_10' WHERE sql_rev = '1647999537361228262'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; From d195c09f56586ada3bdb01ca05d36a86697b3984 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Sun, 27 Mar 2022 06:50:29 +0200 Subject: [PATCH 31/57] fix(Core/Spells): Fixed an issue with Premeditation removing itself. (#11093) Co-authored-by: Treeston --- src/server/game/Entities/Unit/Unit.cpp | 4 ---- src/server/game/Spells/Spell.cpp | 7 +++++++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 51cac6623..f81c04b5e 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -16288,10 +16288,6 @@ void Unit::AddComboPoints(Unit* target, int8 count) return; } - // remove Premed-like effects - // (NB: this Aura removes the already-added CP when it expires from duration - now that we've added CP, this shouldn't happen anymore) - RemoveAurasByType(SPELL_AURA_RETAIN_COMBO_POINTS); - if (target && target != m_comboTarget) { if (m_comboTarget) diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 5aae2c6f0..86c876c0a 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -4039,6 +4039,13 @@ void Spell::_handle_finish_phase() // Real add combo points from effects if (m_comboTarget && m_comboPointGain) { + // remove Premed-like effects unless they were caused by ourselves + // (this Aura removes the already-added CP when it expires from duration - now that we've added CP, this shouldn't happen anymore!) + if (!m_spellInfo->HasAura(SPELL_AURA_RETAIN_COMBO_POINTS)) + { + m_caster->RemoveAurasByType(SPELL_AURA_RETAIN_COMBO_POINTS); + } + m_caster->AddComboPoints(m_comboTarget, m_comboPointGain); } From 5719e4623661be8704f91a6dfdca18a8cfe4cb4d Mon Sep 17 00:00:00 2001 From: IntelligentQuantum Date: Sun, 27 Mar 2022 09:23:16 +0430 Subject: [PATCH 32/57] feat(Core/Spells): Move spell_item_runic_healing_injector to spell scripts (#11088) --- .../rev_1647761424947662456.sql | 5 ++++ src/server/game/Spells/SpellEffects.cpp | 7 ------ src/server/scripts/Spells/spell_item.cpp | 23 +++++++++++++++++++ 3 files changed, 28 insertions(+), 7 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1647761424947662456.sql diff --git a/data/sql/updates/pending_db_world/rev_1647761424947662456.sql b/data/sql/updates/pending_db_world/rev_1647761424947662456.sql new file mode 100644 index 000000000..e9804551f --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1647761424947662456.sql @@ -0,0 +1,5 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647761424947662456'); + +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_item_runic_healing_injector'; +INSERT INTO `spell_script_names` VALUES +(67489,'spell_item_runic_healing_injector'); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index fd383e71b..1e09f3cc9 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -1516,13 +1516,6 @@ void Spell::EffectHeal(SpellEffIndex /*effIndex*/) addhealth += damageAmount; } - // Runic Healing Injector (heal increased by 25% for engineers - 3.2.0 patch change) - else if (m_spellInfo->Id == 67489) - { - if (Player* player = m_caster->ToPlayer()) - if (player->HasSkill(SKILL_ENGINEERING)) - AddPct(addhealth, 25); - } // Swiftmend - consumes Regrowth or Rejuvenation else if (m_spellInfo->TargetAuraState == AURA_STATE_SWIFTMEND && unitTarget->HasAuraState(AURA_STATE_SWIFTMEND, m_spellInfo, m_caster)) { diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index cc052f3ba..4d047dbcd 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -3184,6 +3184,28 @@ class spell_item_rocket_boots : public SpellScript } }; +class spell_item_runic_healing_injector : public SpellScript +{ + PrepareSpellScript(spell_item_runic_healing_injector); + + bool Load() override + { + return GetCaster()->GetTypeId() == TYPEID_PLAYER; + } + + void HandleHeal(SpellEffIndex /*effIndex*/) + { + if (Player* caster = GetCaster()->ToPlayer()) + if (caster->HasSkill(SKILL_ENGINEERING)) + SetHitHeal(GetHitHeal() * 1.25f); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_item_runic_healing_injector::HandleHeal, EFFECT_0, SPELL_EFFECT_HEAL); + } +}; + enum PygmyOil { SPELL_PYGMY_OIL_PYGMY_AURA = 53806, @@ -3612,6 +3634,7 @@ void AddSC_item_spell_scripts() RegisterSpellScript(spell_item_nitro_boots); RegisterSpellScript(spell_item_teach_language); RegisterSpellScript(spell_item_rocket_boots); + RegisterSpellScript(spell_item_runic_healing_injector); RegisterSpellScript(spell_item_pygmy_oil); RegisterSpellScript(spell_item_unusual_compass); RegisterSpellScript(spell_item_chicken_cover); From a4e68e681efc573e24d22a0c99d5a07492c4c4e0 Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 04:55:08 +0000 Subject: [PATCH 33/57] chore(DB): import pending files Referenced commit(s): 5719e4623661be8704f91a6dfdca18a8cfe4cb4d --- data/sql/updates/db_world/2022_03_27_11.sql | 31 +++++++++++++++++++ .../rev_1647761424947662456.sql | 5 --- 2 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 data/sql/updates/db_world/2022_03_27_11.sql delete mode 100644 data/sql/updates/pending_db_world/rev_1647761424947662456.sql diff --git a/data/sql/updates/db_world/2022_03_27_11.sql b/data/sql/updates/db_world/2022_03_27_11.sql new file mode 100644 index 000000000..59ce132f5 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_11.sql @@ -0,0 +1,31 @@ +-- DB update 2022_03_27_10 -> 2022_03_27_11 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_10'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_10 2022_03_27_11 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647761424947662456'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647761424947662456'); + +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_item_runic_healing_injector'; +INSERT INTO `spell_script_names` VALUES +(67489,'spell_item_runic_healing_injector'); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_11' WHERE sql_rev = '1647761424947662456'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/pending_db_world/rev_1647761424947662456.sql b/data/sql/updates/pending_db_world/rev_1647761424947662456.sql deleted file mode 100644 index e9804551f..000000000 --- a/data/sql/updates/pending_db_world/rev_1647761424947662456.sql +++ /dev/null @@ -1,5 +0,0 @@ -INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647761424947662456'); - -DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_item_runic_healing_injector'; -INSERT INTO `spell_script_names` VALUES -(67489,'spell_item_runic_healing_injector'); From 7410f1a3cb6f401c3ecce9dbb0d7d5926ae671f9 Mon Sep 17 00:00:00 2001 From: IntelligentQuantum Date: Sun, 27 Mar 2022 09:25:59 +0430 Subject: [PATCH 34/57] feat(Core/Spells): Move Spell pri lightwell to spell scripts (#11089) --- .../rev_1647762029984921289.sql | 5 ++ src/server/game/Spells/SpellEffects.cpp | 42 -------------- src/server/scripts/Spells/spell_priest.cpp | 55 +++++++++++++++++++ 3 files changed, 60 insertions(+), 42 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1647762029984921289.sql diff --git a/data/sql/updates/pending_db_world/rev_1647762029984921289.sql b/data/sql/updates/pending_db_world/rev_1647762029984921289.sql new file mode 100644 index 000000000..9387b78c5 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1647762029984921289.sql @@ -0,0 +1,5 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647762029984921289'); + +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_pri_lightwell'); +INSERT INTO `spell_script_names` VALUES +(60123,'spell_pri_lightwell'); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 1e09f3cc9..2cd05ebbe 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -4114,48 +4114,6 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) else unitTarget->CastSpell(unitTarget, 59314, true); - return; - } - case 60123: // Lightwell - { - if (m_caster->GetTypeId() != TYPEID_UNIT || !m_caster->ToCreature()->IsSummon()) - return; - - uint32 spell_heal; - - switch (m_caster->GetEntry()) - { - case 31897: - spell_heal = 7001; - break; - case 31896: - spell_heal = 27873; - break; - case 31895: - spell_heal = 27874; - break; - case 31894: - spell_heal = 28276; - break; - case 31893: - spell_heal = 48084; - break; - case 31883: - spell_heal = 48085; - break; - default: - LOG_ERROR("spells.effect", "Unknown Lightwell spell caster {}", m_caster->GetEntry()); - return; - } - - // proc a spellcast - if (Aura* chargesAura = m_caster->GetAura(59907)) - { - m_caster->CastSpell(unitTarget, spell_heal, true, nullptr, nullptr, m_caster->ToTempSummon()->GetSummonerGUID()); - if (chargesAura->ModCharges(-1)) - m_caster->ToTempSummon()->UnSummon(); - } - return; } // Stoneclaw Totem diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index d2fa4932f..f5b9cfb26 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -27,6 +27,7 @@ #include "SpellAuraEffects.h" #include "SpellMgr.h" #include "SpellScript.h" +#include "TemporarySummon.h" enum PriestSpells { @@ -37,6 +38,7 @@ enum PriestSpells SPELL_PRIEST_GLYPH_OF_PRAYER_OF_HEALING_HEAL = 56161, SPELL_PRIEST_GUARDIAN_SPIRIT_HEAL = 48153, SPELL_PRIEST_ITEM_EFFICIENCY = 37595, + SPELL_PRIEST_LIGHTWELL_CHARGES = 59907, SPELL_PRIEST_MANA_LEECH_PROC = 34650, SPELL_PRIEST_PENANCE_R1 = 47540, SPELL_PRIEST_PENANCE_R1_DAMAGE = 47758, @@ -61,6 +63,16 @@ enum PriestSpellIcons PRIEST_ICON_ID_PAIN_AND_SUFFERING = 2874, }; +enum Mics +{ + PRIEST_LIGHTWELL_NPC_1 = 31897, + PRIEST_LIGHTWELL_NPC_2 = 31896, + PRIEST_LIGHTWELL_NPC_3 = 31895, + PRIEST_LIGHTWELL_NPC_4 = 31894, + PRIEST_LIGHTWELL_NPC_5 = 31893, + PRIEST_LIGHTWELL_NPC_6 = 31883 +}; + class spell_pri_shadowfiend_scaling : public AuraScript { PrepareAuraScript(spell_pri_shadowfiend_scaling); @@ -359,6 +371,48 @@ class spell_pri_item_greater_heal_refund : public AuraScript } }; +// 60123 - Lightwell +class spell_pri_lightwell : public SpellScript +{ + PrepareSpellScript(spell_pri_lightwell); + + bool Load() override + { + return GetCaster()->GetTypeId() == TYPEID_UNIT; + } + + void HandleScriptEffect(SpellEffIndex /* effIndex */) + { + Creature* caster = GetCaster()->ToCreature(); + if (!caster || !caster->IsSummon()) + return; + + uint32 lightwellRenew = 0; + switch (caster->GetEntry()) + { + case PRIEST_LIGHTWELL_NPC_1: lightwellRenew = 7001; break; + case PRIEST_LIGHTWELL_NPC_2: lightwellRenew = 27873; break; + case PRIEST_LIGHTWELL_NPC_3: lightwellRenew = 27874; break; + case PRIEST_LIGHTWELL_NPC_4: lightwellRenew = 28276; break; + case PRIEST_LIGHTWELL_NPC_5: lightwellRenew = 48084; break; + case PRIEST_LIGHTWELL_NPC_6: lightwellRenew = 48085; break; + } + + // proc a spellcast + if (Aura* chargesAura = caster->GetAura(SPELL_PRIEST_LIGHTWELL_CHARGES)) + { + caster->CastSpell(GetHitUnit(), lightwellRenew, caster->ToTempSummon()->GetSummonerGUID()); + if (chargesAura->ModCharges(-1)) + caster->ToTempSummon()->UnSummon(); + } + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_pri_lightwell::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + // -7001 - Lightwell Renew class spell_pri_lightwell_renew : public AuraScript { @@ -854,6 +908,7 @@ void AddSC_priest_spell_scripts() RegisterSpellScript(spell_pri_guardian_spirit); RegisterSpellScript(spell_pri_hymn_of_hope); RegisterSpellScript(spell_pri_item_greater_heal_refund); + RegisterSpellScript(spell_pri_lightwell); RegisterSpellScript(spell_pri_lightwell_renew); RegisterSpellScript(spell_pri_mana_burn); RegisterSpellScript(spell_pri_mana_leech); From 17f9b6625529a10cfc34151e5c949d9229cf24ae Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 04:57:48 +0000 Subject: [PATCH 35/57] chore(DB): import pending files Referenced commit(s): 7410f1a3cb6f401c3ecce9dbb0d7d5926ae671f9 --- data/sql/updates/db_world/2022_03_27_12.sql | 31 +++++++++++++++++++ .../rev_1647762029984921289.sql | 5 --- 2 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 data/sql/updates/db_world/2022_03_27_12.sql delete mode 100644 data/sql/updates/pending_db_world/rev_1647762029984921289.sql diff --git a/data/sql/updates/db_world/2022_03_27_12.sql b/data/sql/updates/db_world/2022_03_27_12.sql new file mode 100644 index 000000000..f523b8046 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_12.sql @@ -0,0 +1,31 @@ +-- DB update 2022_03_27_11 -> 2022_03_27_12 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_11'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_11 2022_03_27_12 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647762029984921289'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647762029984921289'); + +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_pri_lightwell'); +INSERT INTO `spell_script_names` VALUES +(60123,'spell_pri_lightwell'); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_12' WHERE sql_rev = '1647762029984921289'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/pending_db_world/rev_1647762029984921289.sql b/data/sql/updates/pending_db_world/rev_1647762029984921289.sql deleted file mode 100644 index 9387b78c5..000000000 --- a/data/sql/updates/pending_db_world/rev_1647762029984921289.sql +++ /dev/null @@ -1,5 +0,0 @@ -INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647762029984921289'); - -DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_pri_lightwell'); -INSERT INTO `spell_script_names` VALUES -(60123,'spell_pri_lightwell'); From d1ecdc8f617271f5bb4720bc728eef3174bab10c Mon Sep 17 00:00:00 2001 From: IntelligentQuantum Date: Sun, 27 Mar 2022 09:28:58 +0430 Subject: [PATCH 36/57] feat(Core/Spells): Move Spell item dimensional ripper area52 to spell scripts (#11099) --- .../rev_1647861814144531389.sql | 4 ++ src/server/game/Spells/SpellEffects.cpp | 33 ----------- src/server/scripts/Spells/spell_item.cpp | 56 +++++++++++++++++++ 3 files changed, 60 insertions(+), 33 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1647861814144531389.sql diff --git a/data/sql/updates/pending_db_world/rev_1647861814144531389.sql b/data/sql/updates/pending_db_world/rev_1647861814144531389.sql new file mode 100644 index 000000000..a2708bb39 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1647861814144531389.sql @@ -0,0 +1,4 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647861814144531389'); + +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_item_dimensional_ripper_area52'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES (36890,'spell_item_dimensional_ripper_area52'); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 2cd05ebbe..a06c04af0 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -1287,39 +1287,6 @@ void Spell::EffectTeleportUnits(SpellEffIndex /*effIndex*/) } return; } - // Dimensional Ripper - Area 52 - case 36890: - { - if (roll_chance_i(50)) // 50% success - { - int32 rand_eff = urand(1, 4); - switch (rand_eff) - { - case 1: - // soul split - evil - m_caster->CastSpell(m_caster, 36900, true); - break; - case 2: - // soul split - good - m_caster->CastSpell(m_caster, 36901, true); - break; - case 3: - // Increase the size - m_caster->CastSpell(m_caster, 36895, true); - break; - case 4: - // Transform - { - if (m_caster->ToPlayer()->GetTeamId() == TEAM_ALLIANCE) - m_caster->CastSpell(m_caster, 36897, true); - else - m_caster->CastSpell(m_caster, 36899, true); - break; - } - } - } - return; - } } } diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index 4d047dbcd..f6199dba1 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -2101,6 +2101,61 @@ class spell_item_scroll_of_recall : public SpellScript } }; +// 36890 - Dimensional Ripper - Area 52 +enum DimensionalRipperArea52 +{ + SPELL_TRANSPORTER_MALFUNCTION = 36895, + SPELL_TRANSFORM_HORDE = 36897, + SPELL_TRANSFORM_ALLIANCE = 36899, + SPELL_SOUL_SPLIT_EVIL = 36900, + SPELL_SOUL_SPLIT_GOOD = 36901 +}; + +class spell_item_dimensional_ripper_area52 : public SpellScript +{ + PrepareSpellScript(spell_item_dimensional_ripper_area52); + + bool Load() override + { + return GetCaster()->GetTypeId() == TYPEID_PLAYER; + } + + void HandleScript(SpellEffIndex /* effIndex */) + { + if (!roll_chance_i(50)) // 50% success + return; + + Unit* caster = GetCaster(); + + uint32 spellId = 0; + switch (urand(0, 3)) + { + case 0: + spellId = SPELL_TRANSPORTER_MALFUNCTION; + break; + case 1: + spellId = SPELL_SOUL_SPLIT_EVIL; + break; + case 2: + spellId = SPELL_SOUL_SPLIT_GOOD; + break; + case 3: + if (caster->ToPlayer()->GetTeamId() == TEAM_ALLIANCE) + spellId = SPELL_TRANSFORM_HORDE; + else + spellId = SPELL_TRANSFORM_ALLIANCE; + break; + } + + caster->CastSpell(caster, spellId, true); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_item_dimensional_ripper_area52::HandleScript, EFFECT_0, SPELL_EFFECT_TELEPORT_UNITS); + } +}; + // 71169 - Shadow's Fate (Shadowmourne questline) enum ShadowsFate { @@ -3607,6 +3662,7 @@ void AddSC_item_spell_scripts() RegisterSpellScript(spell_item_piccolo_of_the_flaming_fire); RegisterSpellScript(spell_item_savory_deviate_delight); RegisterSpellScript(spell_item_scroll_of_recall); + RegisterSpellScript(spell_item_dimensional_ripper_area52); RegisterSpellScript(spell_item_unsated_craving); RegisterSpellScript(spell_item_shadows_fate); RegisterSpellScript(spell_item_shadowmourne); From ab97efdce93fe0b11a9ecdf86ce247ab3f9db153 Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 05:00:43 +0000 Subject: [PATCH 37/57] chore(DB): import pending files Referenced commit(s): d1ecdc8f617271f5bb4720bc728eef3174bab10c --- data/sql/updates/db_world/2022_03_27_13.sql | 30 +++++++++++++++++++ .../rev_1647861814144531389.sql | 4 --- 2 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 data/sql/updates/db_world/2022_03_27_13.sql delete mode 100644 data/sql/updates/pending_db_world/rev_1647861814144531389.sql diff --git a/data/sql/updates/db_world/2022_03_27_13.sql b/data/sql/updates/db_world/2022_03_27_13.sql new file mode 100644 index 000000000..f9b965cf6 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_13.sql @@ -0,0 +1,30 @@ +-- DB update 2022_03_27_12 -> 2022_03_27_13 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_12'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_12 2022_03_27_13 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647861814144531389'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647861814144531389'); + +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_item_dimensional_ripper_area52'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES (36890,'spell_item_dimensional_ripper_area52'); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_13' WHERE sql_rev = '1647861814144531389'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/pending_db_world/rev_1647861814144531389.sql b/data/sql/updates/pending_db_world/rev_1647861814144531389.sql deleted file mode 100644 index a2708bb39..000000000 --- a/data/sql/updates/pending_db_world/rev_1647861814144531389.sql +++ /dev/null @@ -1,4 +0,0 @@ -INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647861814144531389'); - -DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_item_dimensional_ripper_area52'; -INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES (36890,'spell_item_dimensional_ripper_area52'); From a704aa3005c0115bea527598fda807914eb8a25e Mon Sep 17 00:00:00 2001 From: IntelligentQuantum Date: Sun, 27 Mar 2022 09:32:17 +0430 Subject: [PATCH 38/57] feat(Core/Spells): Move Spell death knight initiate visual to spell scripts (#11103) --- .../rev_1647924729405978168.sql | 5 ++ src/server/game/Spells/SpellEffects.cpp | 78 ------------------- .../ScarletEnclave/chapter1.cpp | 48 ++++++++++++ 3 files changed, 53 insertions(+), 78 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1647924729405978168.sql diff --git a/data/sql/updates/pending_db_world/rev_1647924729405978168.sql b/data/sql/updates/pending_db_world/rev_1647924729405978168.sql new file mode 100644 index 000000000..a710c28ae --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1647924729405978168.sql @@ -0,0 +1,5 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647924729405978168'); + +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_death_knight_initiate_visual'); +INSERT INTO `spell_script_names` VALUES +(51519, 'spell_death_knight_initiate_visual'); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index a06c04af0..1749fb28b 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -3934,84 +3934,6 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) m_caster->TextEmote(buf); break; } - // Death Knight Initiate Visual - case 51519: - { - if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT) - return; - - uint32 iTmpSpellId = 0; - switch (unitTarget->GetDisplayId()) - { - case 25369: - iTmpSpellId = 51552; - break; // bloodelf female - case 25373: - iTmpSpellId = 51551; - break; // bloodelf male - case 25363: - iTmpSpellId = 51542; - break; // draenei female - case 25357: - iTmpSpellId = 51541; - break; // draenei male - case 25361: - iTmpSpellId = 51537; - break; // dwarf female - case 25356: - iTmpSpellId = 51538; - break; // dwarf male - case 25372: - iTmpSpellId = 51550; - break; // forsaken female - case 25367: - iTmpSpellId = 51549; - break; // forsaken male - case 25362: - iTmpSpellId = 51540; - break; // gnome female - case 25359: - iTmpSpellId = 51539; - break; // gnome male - case 25355: - iTmpSpellId = 51534; - break; // human female - case 25354: - iTmpSpellId = 51520; - break; // human male - case 25360: - iTmpSpellId = 51536; - break; // nightelf female - case 25358: - iTmpSpellId = 51535; - break; // nightelf male - case 25368: - iTmpSpellId = 51544; - break; // orc female - case 25364: - iTmpSpellId = 51543; - break; // orc male - case 25371: - iTmpSpellId = 51548; - break; // tauren female - case 25366: - iTmpSpellId = 51547; - break; // tauren male - case 25370: - iTmpSpellId = 51545; - break; // troll female - case 25365: - iTmpSpellId = 51546; - break; // troll male - default: - return; - } - - unitTarget->CastSpell(unitTarget, iTmpSpellId, true); - Creature* npc = unitTarget->ToCreature(); - npc->LoadEquipment(); - return; - } // Deathbolt from Thalgran Blightbringer // reflected by Freya's Ward // Retribution by Sevenfold Retribution diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index 965c537c2..dbee1f0bb 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -1171,6 +1171,52 @@ public: } }; +class spell_death_knight_initiate_visual : public SpellScript +{ + PrepareSpellScript(spell_death_knight_initiate_visual); + + void HandleScriptEffect(SpellEffIndex /* effIndex */) + { + Creature* target = GetHitCreature(); + if (!target) + return; + + uint32 spellId; + switch (target->GetDisplayId()) + { + case 25369: spellId = 51552; break; // bloodelf female + case 25373: spellId = 51551; break; // bloodelf male + case 25363: spellId = 51542; break; // draenei female + case 25357: spellId = 51541; break; // draenei male + case 25361: spellId = 51537; break; // dwarf female + case 25356: spellId = 51538; break; // dwarf male + case 25372: spellId = 51550; break; // forsaken female + case 25367: spellId = 51549; break; // forsaken male + case 25362: spellId = 51540; break; // gnome female + case 25359: spellId = 51539; break; // gnome male + case 25355: spellId = 51534; break; // human female + case 25354: spellId = 51520; break; // human male + case 25360: spellId = 51536; break; // nightelf female + case 25358: spellId = 51535; break; // nightelf male + case 25368: spellId = 51544; break; // orc female + case 25364: spellId = 51543; break; // orc male + case 25371: spellId = 51548; break; // tauren female + case 25366: spellId = 51547; break; // tauren male + case 25370: spellId = 51545; break; // troll female + case 25365: spellId = 51546; break; // troll male + default: return; + } + + target->CastSpell(target, spellId, true); + target->LoadEquipment(); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_death_knight_initiate_visual::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + void AddSC_the_scarlet_enclave_c1() { // Ours @@ -1191,4 +1237,6 @@ void AddSC_the_scarlet_enclave_c1() new npc_scarlet_miner(); new npc_scarlet_miner_cart(); new go_inconspicuous_mine_car(); + + RegisterSpellScript(spell_death_knight_initiate_visual); } From b18dcb7b804a16a259884b12d65c5e4847c8b467 Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 05:04:11 +0000 Subject: [PATCH 39/57] chore(DB): import pending files Referenced commit(s): a704aa3005c0115bea527598fda807914eb8a25e --- data/sql/updates/db_world/2022_03_27_14.sql | 31 +++++++++++++++++++ .../rev_1647924729405978168.sql | 5 --- 2 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 data/sql/updates/db_world/2022_03_27_14.sql delete mode 100644 data/sql/updates/pending_db_world/rev_1647924729405978168.sql diff --git a/data/sql/updates/db_world/2022_03_27_14.sql b/data/sql/updates/db_world/2022_03_27_14.sql new file mode 100644 index 000000000..3b47b446d --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_14.sql @@ -0,0 +1,31 @@ +-- DB update 2022_03_27_13 -> 2022_03_27_14 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_13'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_13 2022_03_27_14 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647924729405978168'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647924729405978168'); + +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_death_knight_initiate_visual'); +INSERT INTO `spell_script_names` VALUES +(51519, 'spell_death_knight_initiate_visual'); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_14' WHERE sql_rev = '1647924729405978168'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/pending_db_world/rev_1647924729405978168.sql b/data/sql/updates/pending_db_world/rev_1647924729405978168.sql deleted file mode 100644 index a710c28ae..000000000 --- a/data/sql/updates/pending_db_world/rev_1647924729405978168.sql +++ /dev/null @@ -1,5 +0,0 @@ -INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647924729405978168'); - -DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_death_knight_initiate_visual'); -INSERT INTO `spell_script_names` VALUES -(51519, 'spell_death_knight_initiate_visual'); From d1ac62ff6e4c1fe83d4bae1be7d5f5b9c0ebc937 Mon Sep 17 00:00:00 2001 From: IntelligentQuantum Date: Sun, 27 Mar 2022 09:36:23 +0430 Subject: [PATCH 40/57] feat(Core/Spells): Move Spell q1846 bending shinbone to spell scripts (#11106) --- .../rev_1647923874715608181.sql | 5 ++++ src/server/game/Spells/SpellEffects.cpp | 11 -------- src/server/scripts/Spells/spell_quest.cpp | 28 +++++++++++++++++++ 3 files changed, 33 insertions(+), 11 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1647923874715608181.sql diff --git a/data/sql/updates/pending_db_world/rev_1647923874715608181.sql b/data/sql/updates/pending_db_world/rev_1647923874715608181.sql new file mode 100644 index 000000000..5c6872626 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1647923874715608181.sql @@ -0,0 +1,5 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647923874715608181'); + +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_q1846_bending_shinbone'); +INSERT INTO `spell_script_names` VALUES +(8856, 'spell_q1846_bending_shinbone'); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 1749fb28b..ef5dd6579 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -3782,17 +3782,6 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex) { switch (m_spellInfo->Id) { - // Bending Shinbone - case 8856: - { - if (!itemTarget && m_caster->GetTypeId() != TYPEID_PLAYER) - return; - - uint32 spell_id = roll_chance_i(20) ? 8854 : 8855; - - m_caster->CastSpell(m_caster, spell_id, true, nullptr); - return; - } // Brittle Armor - need remove one 24575 Brittle Armor aura case 24590: unitTarget->RemoveAuraFromStack(24575); diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index 04131ea79..8cd052331 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -840,6 +840,33 @@ public: } }; +enum BendingShinbone +{ + SPELL_BENDING_SHINBONE1 = 8854, + SPELL_BENDING_SHINBONE2 = 8855 +}; + +class spell_q1846_bending_shinbone : public SpellScript +{ + PrepareSpellScript(spell_q1846_bending_shinbone); + + void HandleScriptEffect(SpellEffIndex /* effIndex */) + { + Item* target = GetHitItem(); + Unit* caster = GetCaster(); + if (!target && caster->GetTypeId() != TYPEID_PLAYER) + return; + + uint32 const spellId = roll_chance_i(20) ? SPELL_BENDING_SHINBONE1 : SPELL_BENDING_SHINBONE2; + caster->CastSpell(caster, spellId, true); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_q1846_bending_shinbone::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + // 9712 - Thaumaturgy Channel enum ThaumaturgyChannel { @@ -2400,6 +2427,7 @@ void AddSC_quest_spell_scripts() RegisterSpellScript(spell_q10985_light_of_the_naaru); RegisterSpellScript(spell_q9718_crow_transform); new spell_q55_sacred_cleansing(); + RegisterSpellScript(spell_q1846_bending_shinbone); RegisterSpellScript(spell_q2203_thaumaturgy_channel); RegisterSpellScript(spell_q5206_test_fetid_skull); RegisterSpellScript(spell_q6124_6129_apply_salve); From 580c9319e33ec028f7a6e827cf6a8dcf8ab0bc5f Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 05:08:15 +0000 Subject: [PATCH 41/57] chore(DB): import pending files Referenced commit(s): d1ac62ff6e4c1fe83d4bae1be7d5f5b9c0ebc937 --- data/sql/updates/db_world/2022_03_27_15.sql | 31 +++++++++++++++++++ .../rev_1647923874715608181.sql | 5 --- 2 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 data/sql/updates/db_world/2022_03_27_15.sql delete mode 100644 data/sql/updates/pending_db_world/rev_1647923874715608181.sql diff --git a/data/sql/updates/db_world/2022_03_27_15.sql b/data/sql/updates/db_world/2022_03_27_15.sql new file mode 100644 index 000000000..c9ab8ac2b --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_15.sql @@ -0,0 +1,31 @@ +-- DB update 2022_03_27_14 -> 2022_03_27_15 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_14'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_14 2022_03_27_15 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1647923874715608181'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647923874715608181'); + +DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_q1846_bending_shinbone'); +INSERT INTO `spell_script_names` VALUES +(8856, 'spell_q1846_bending_shinbone'); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_15' WHERE sql_rev = '1647923874715608181'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/pending_db_world/rev_1647923874715608181.sql b/data/sql/updates/pending_db_world/rev_1647923874715608181.sql deleted file mode 100644 index 5c6872626..000000000 --- a/data/sql/updates/pending_db_world/rev_1647923874715608181.sql +++ /dev/null @@ -1,5 +0,0 @@ -INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1647923874715608181'); - -DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_q1846_bending_shinbone'); -INSERT INTO `spell_script_names` VALUES -(8856, 'spell_q1846_bending_shinbone'); From 3a69d36a99f07f5a1ebc1358ac52fabcf494b47c Mon Sep 17 00:00:00 2001 From: Nefertumm Date: Sun, 27 Mar 2022 07:53:13 -0300 Subject: [PATCH 42/57] fix(Core/BWL): Victor Nefarius encounter not resetting properly (#11145) --- .../BlackwingLair/boss_nefarian.cpp | 2 ++ .../BlackwingLair/instance_blackwing_lair.cpp | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp index 2b366aadc..79d0a6fa3 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp @@ -468,6 +468,8 @@ public: me->SetUInt32Value(UNIT_NPC_FLAGS, 0); me->SetStandState(UNIT_STAND_STATE_STAND); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE); + // Due to Nefarius despawning himself on Vael, we need to update the guid on instance to prevent unwanted behaviours as encounter not resetting at all. + instance->SetGuidData(DATA_LORD_VICTOR_NEFARIUS, me->GetGUID()); } } 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 679039671..1d4b0ead8 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp @@ -357,6 +357,18 @@ public: return ObjectGuid::Empty; } + void SetGuidData(uint32 type, ObjectGuid data) override + { + switch (type) + { + case DATA_LORD_VICTOR_NEFARIUS: + victorNefariusGUID = data; + break; + default: + break; + } + } + void OnUnitDeath(Unit* unit) override { switch (unit->GetEntry()) From 540b5fcaa46d61cf32e40d8baada6f9d35f3bf4c Mon Sep 17 00:00:00 2001 From: Nefertumm Date: Sun, 27 Mar 2022 07:55:07 -0300 Subject: [PATCH 43/57] fix(DB/Core/Misc): More adjustments to BWL (#11154) --- .../updates/pending_db_world/rev_1648289846118024900.sql | 8 ++++++++ src/server/game/Spells/SpellInfoCorrections.cpp | 5 +++++ .../BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp | 4 ++-- 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1648289846118024900.sql diff --git a/data/sql/updates/pending_db_world/rev_1648289846118024900.sql b/data/sql/updates/pending_db_world/rev_1648289846118024900.sql new file mode 100644 index 000000000..96fbdcc31 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1648289846118024900.sql @@ -0,0 +1,8 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648289846118024900'); + +-- Fix selectable doors +UPDATE `gameobject_template_addon` SET `faction` = 114, `flags` = `flags`|32 WHERE `entry` IN (176964, 179117, 179365); +UPDATE `gameobject_template_addon` SET `flags` = `flags`|4 WHERE `entry` = 179115; + +-- Fix Blackwing technicians spawn time +UPDATE `creature` SET `spawntimesecs` = 604800 WHERE `id1` = 13996; diff --git a/src/server/game/Spells/SpellInfoCorrections.cpp b/src/server/game/Spells/SpellInfoCorrections.cpp index a90200076..c7f494b15 100644 --- a/src/server/game/Spells/SpellInfoCorrections.cpp +++ b/src/server/game/Spells/SpellInfoCorrections.cpp @@ -4168,6 +4168,11 @@ void SpellMgr::LoadSpellInfoCorrections() spellInfo->AttributesEx2 |= SPELL_ATTR2_IGNORE_LINE_OF_SIGHT; }); + ApplySpellFix({ 22247 }, [](SpellInfo* spellInfo) + { + spellInfo->AttributesCu |= SPELL_ATTR0_CU_DONT_BREAK_STEALTH; + }); + // Manastorm ApplySpellFix({ 21097 }, [](SpellInfo* spellInfo) { diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp index 6208ef50f..736c99ed7 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp @@ -124,7 +124,7 @@ public: events.ScheduleEvent(EVENT_CLEAVE, 10000); events.ScheduleEvent(EVENT_FLAME_BREATH, 15000); - events.ScheduleEvent(EVENT_FIRE_NOVA, 20000); + events.ScheduleEvent(EVENT_FIRE_NOVA, 5000); events.ScheduleEvent(EVENT_TAIL_SWEEP, 11000); events.ScheduleEvent(EVENT_BURNING_ADRENALINE, 15000); } @@ -220,7 +220,7 @@ public: break; case EVENT_FIRE_NOVA: DoCastVictim(SPELL_FIRE_NOVA); - events.ScheduleEvent(EVENT_FIRE_NOVA, 15000); + events.ScheduleEvent(EVENT_FIRE_NOVA, urand(3000, 5000)); break; case EVENT_TAIL_SWEEP: DoCastAOE(SPELL_TAIL_SWEEP); From 9f1d306de202f602a1bd2c716eab66917046a5da Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 10:57:01 +0000 Subject: [PATCH 44/57] chore(DB): import pending files Referenced commit(s): 540b5fcaa46d61cf32e40d8baada6f9d35f3bf4c --- data/sql/updates/db_world/2022_03_27_16.sql | 34 +++++++++++++++++++ .../rev_1648289846118024900.sql | 8 ----- 2 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 data/sql/updates/db_world/2022_03_27_16.sql delete mode 100644 data/sql/updates/pending_db_world/rev_1648289846118024900.sql diff --git a/data/sql/updates/db_world/2022_03_27_16.sql b/data/sql/updates/db_world/2022_03_27_16.sql new file mode 100644 index 000000000..01220df54 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_16.sql @@ -0,0 +1,34 @@ +-- DB update 2022_03_27_15 -> 2022_03_27_16 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_15'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_15 2022_03_27_16 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1648289846118024900'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648289846118024900'); + +-- Fix selectable doors +UPDATE `gameobject_template_addon` SET `faction` = 114, `flags` = `flags`|32 WHERE `entry` IN (176964, 179117, 179365); +UPDATE `gameobject_template_addon` SET `flags` = `flags`|4 WHERE `entry` = 179115; + +-- Fix Blackwing technicians spawn time +UPDATE `creature` SET `spawntimesecs` = 604800 WHERE `id1` = 13996; + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_16' WHERE sql_rev = '1648289846118024900'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/pending_db_world/rev_1648289846118024900.sql b/data/sql/updates/pending_db_world/rev_1648289846118024900.sql deleted file mode 100644 index 96fbdcc31..000000000 --- a/data/sql/updates/pending_db_world/rev_1648289846118024900.sql +++ /dev/null @@ -1,8 +0,0 @@ -INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648289846118024900'); - --- Fix selectable doors -UPDATE `gameobject_template_addon` SET `faction` = 114, `flags` = `flags`|32 WHERE `entry` IN (176964, 179117, 179365); -UPDATE `gameobject_template_addon` SET `flags` = `flags`|4 WHERE `entry` = 179115; - --- Fix Blackwing technicians spawn time -UPDATE `creature` SET `spawntimesecs` = 604800 WHERE `id1` = 13996; From 3bc1c1cd96e8a6eddb40c972fcf58586d8e3d359 Mon Sep 17 00:00:00 2001 From: Nefertumm Date: Sun, 27 Mar 2022 08:03:42 -0300 Subject: [PATCH 45/57] fix(DB/Loot): Remove wrongly added ring from Ragnaros loot (#11144) --- data/sql/updates/pending_db_world/rev_1648255016918528600.sql | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1648255016918528600.sql diff --git a/data/sql/updates/pending_db_world/rev_1648255016918528600.sql b/data/sql/updates/pending_db_world/rev_1648255016918528600.sql new file mode 100644 index 000000000..082a74698 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1648255016918528600.sql @@ -0,0 +1,3 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648255016918528600'); + +DELETE FROM `creature_loot_template` WHERE `Entry` = 11502 AND `Item` = 17982; From 9bcc192fc0fdb07e63c88ce34eaba621eedc2fed Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 11:05:27 +0000 Subject: [PATCH 46/57] chore(DB): import pending files Referenced commit(s): 3bc1c1cd96e8a6eddb40c972fcf58586d8e3d359 --- data/sql/updates/db_world/2022_03_27_17.sql | 29 +++++++++++++++++++ .../rev_1648255016918528600.sql | 3 -- 2 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 data/sql/updates/db_world/2022_03_27_17.sql delete mode 100644 data/sql/updates/pending_db_world/rev_1648255016918528600.sql diff --git a/data/sql/updates/db_world/2022_03_27_17.sql b/data/sql/updates/db_world/2022_03_27_17.sql new file mode 100644 index 000000000..1b602702e --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_17.sql @@ -0,0 +1,29 @@ +-- DB update 2022_03_27_16 -> 2022_03_27_17 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_16'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_16 2022_03_27_17 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1648255016918528600'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648255016918528600'); + +DELETE FROM `creature_loot_template` WHERE `Entry` = 11502 AND `Item` = 17982; + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_17' WHERE sql_rev = '1648255016918528600'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/pending_db_world/rev_1648255016918528600.sql b/data/sql/updates/pending_db_world/rev_1648255016918528600.sql deleted file mode 100644 index 082a74698..000000000 --- a/data/sql/updates/pending_db_world/rev_1648255016918528600.sql +++ /dev/null @@ -1,3 +0,0 @@ -INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648255016918528600'); - -DELETE FROM `creature_loot_template` WHERE `Entry` = 11502 AND `Item` = 17982; From c171dadf8a0283cca2b3c64e316a70042bef53b5 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Sun, 27 Mar 2022 13:06:44 +0200 Subject: [PATCH 47/57] fix(DB/Spawns): Some improvements to Death Talon Hatcher spawns: (#11157) --- .../rev_1648309713111396700.sql | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1648309713111396700.sql diff --git a/data/sql/updates/pending_db_world/rev_1648309713111396700.sql b/data/sql/updates/pending_db_world/rev_1648309713111396700.sql new file mode 100644 index 000000000..03ac82582 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1648309713111396700.sql @@ -0,0 +1,123 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648309713111396700'); + +SET @CGUID := 2000060; +DELETE FROM `creature_addon` WHERE `guid` BETWEEN 84556 AND 84566; +DELETE FROM `linked_respawn` WHERE `guid` BETWEEN 84556 AND 84566; +DELETE FROM `linked_respawn` WHERE `guid` IN (85788,85793,85797,85798,85799,85802,85805); +DELETE FROM `creature` WHERE `id1`=12468; +INSERT INTO `creature` (`guid`, `id1`, `map`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`) VALUES +(@CGUID,12468,469,1,1,1,-7655.51,-1100.16,449.243,3.54007,600,0,0,1,0,2,0,0,0,''), +(@CGUID+1,12468,469,1,1,1,-7592.86,-1075.23,449.246,2.65568,600,0,0,1,0,2,0,0,0,''), +(@CGUID+2,12468,469,1,1,1,-7673.25,-1039.96,440.28,2.46326,600,0,0,1,0,2,0,0,0,''), +(@CGUID+3,12468,469,1,1,1,-7649.78,-1057.55,449.247,5.57555,600,0,0,1,0,2,0,0,0,''), +(@CGUID+4,12468,469,1,1,1,-7668.59,-986.566,440.329,5.74399,600,0,0,1,0,2,0,0,0,''), +(@CGUID+5,12468,469,1,1,1,-7624.29,-1035.04,449.244,4.62018,600,0,0,1,0,2,0,0,0,''), +(@CGUID+6,12468,469,1,1,1,-7639.27,-968.392,440.092,5.84041,600,0,0,1,0,2,0,0,0,''), +(@CGUID+7,12468,469,1,1,1,-7620.51,-998.365,440.319,2.62407,600,0,0,1,0,2,0,0,0,''), +(@CGUID+8,12468,469,1,1,1,-7695.27,-1005.48,440.297,5.80156,600,0,0,1,0,2,0,0,0,''), +(@CGUID+9,12468,469,1,1,1,-7630.35,-1101.33,449.246,1.63947,600,0,0,1,0,2,0,0,0,''), +(@CGUID+10,12468,469,1,1,1,-7649.74,-1019.88,440.318,2.38942,600,0,0,1,0,2,0,0,0,''); + +DELETE FROM `creature_addon` WHERE `guid` BETWEEN @CGUID AND @CGUID+10; +INSERT INTO `creature_addon` (`guid`, `path_id`, `bytes2`) VALUES +(@CGUID,@CGUID*10,1), +(@CGUID+1,(@CGUID+1)*10,1), +(@CGUID+2,(@CGUID+2)*10,1), +(@CGUID+3,(@CGUID+3)*10,1), +(@CGUID+4,(@CGUID+4)*10,1), +(@CGUID+5,(@CGUID+5)*10,1), +(@CGUID+6,(@CGUID+6)*10,1), +(@CGUID+7,(@CGUID+7)*10,1), +(@CGUID+8,(@CGUID+8)*10,1), +(@CGUID+9,(@CGUID+9)*10,1), +(@CGUID+10,(@CGUID+10)*10,1); + +SET @PATH_ID := @CGUID*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7680.62,-1110.73,449.126,100,0,0,0,100,0), +(@PATH_ID,2,-7648.96,-1087.89,449.164,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+1)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7633.58,-1053.72,449.164,100,0,0,0,100,0), +(@PATH_ID,2,-7591.82,-1076.51,449.164,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+2)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7705.59,-1013.9,440.401,100,0,0,0,100,0), +(@PATH_ID,2,-7670.4,-1038.78,440.197,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+3)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7624.98,-1078.78,449.164,100,0,0,0,100,0), +(@PATH_ID,2,-7609.39,-1084.48,449.164,100,0,0,0,100,0), +(@PATH_ID,3,-7624.98,-1078.78,449.164,100,0,0,0,100,0), +(@PATH_ID,4,-7651.04,-1056.83,449.172,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+4)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7633.23,-1007.72,440.262,100,0,0,0,100,0), +(@PATH_ID,2,-7667.67,-987.11,439.986,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+5)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7625.61,-1049.31,449.164,100,0,0,0,100,0), +(@PATH_ID,2,-7608.66,-1082.75,449.164,100,0,0,0,100,0), +(@PATH_ID,3,-7625.61,-1049.31,449.164,100,0,0,0,100,0), +(@PATH_ID,4,-7624.89,-1036.41,449.164,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+6)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7605.95,-984.189,440.111,100,0,0,0,100,0), +(@PATH_ID,2,-7640.56,-967.494,440.29,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+7)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7653.81,-979.409,440.263,100,0,0,0,100,0), +(@PATH_ID,2,-7619.22,-999.321,440.287,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+8)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7676.08,-1015.52,439.983,100,0,0,0,100,0), +(@PATH_ID,2,-7668.89,-1020.34,440.279,100,0,0,0,100,0), +(@PATH_ID,3,-7676.08,-1015.52,439.983,100,0,0,0,100,0), +(@PATH_ID,4,-7696.82,-1004.11,440.216,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+9)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7631.94,-1078.19,449.164,100,0,0,0,100,0), +(@PATH_ID,2,-7642.19,-1059.9,449.165,100,0,0,0,100,0), +(@PATH_ID,3,-7631.94,-1078.19,449.164,100,0,0,0,100,0), +(@PATH_ID,4,-7629.75,-1102.86,449.164,100,0,0,0,100,0); + +SET @PATH_ID := (@CGUID+10)*10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH_ID; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(@PATH_ID,1,-7664.98,-1005.61,440.254,100,0,0,0,100,0), +(@PATH_ID,2,-7684.11,-996.917,440.204,100,0,0,0,100,0), +(@PATH_ID,3,-7664.98,-1005.61,440.254,100,0,0,0,100,0), +(@PATH_ID,4,-7647.92,-1020.32,440.232,100,0,0,0,100,0); + +DELETE FROM `linked_respawn` WHERE `guid` BETWEEN @CGUID AND @CGUID+10; +INSERT INTO `linked_respawn` (`guid`, `linkedGuid`, `linkType`) VALUES +(@CGUID,84387,0), +(@CGUID+1,84387,0), +(@CGUID+2,84387,0), +(@CGUID+3,84387,0), +(@CGUID+4,84387,0), +(@CGUID+5,84387,0), +(@CGUID+6,84387,0), +(@CGUID+7,84387,0), +(@CGUID+8,84387,0), +(@CGUID+9,84387,0), +(@CGUID+10,84387,0); From 627fb80d54d65babe5654f8cf6820ba9ff5d4c16 Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 11:08:36 +0000 Subject: [PATCH 48/57] chore(DB): import pending files Referenced commit(s): c171dadf8a0283cca2b3c64e316a70042bef53b5 --- .../2022_03_27_18.sql} | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) rename data/sql/updates/{pending_db_world/rev_1648309713111396700.sql => db_world/2022_03_27_18.sql} (89%) diff --git a/data/sql/updates/pending_db_world/rev_1648309713111396700.sql b/data/sql/updates/db_world/2022_03_27_18.sql similarity index 89% rename from data/sql/updates/pending_db_world/rev_1648309713111396700.sql rename to data/sql/updates/db_world/2022_03_27_18.sql index 03ac82582..955a60bbc 100644 --- a/data/sql/updates/pending_db_world/rev_1648309713111396700.sql +++ b/data/sql/updates/db_world/2022_03_27_18.sql @@ -1,3 +1,19 @@ +-- DB update 2022_03_27_17 -> 2022_03_27_18 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_17'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_17 2022_03_27_18 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1648309713111396700'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648309713111396700'); SET @CGUID := 2000060; @@ -121,3 +137,13 @@ INSERT INTO `linked_respawn` (`guid`, `linkedGuid`, `linkType`) VALUES (@CGUID+8,84387,0), (@CGUID+9,84387,0), (@CGUID+10,84387,0); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_18' WHERE sql_rev = '1648309713111396700'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; From dfa2198d983c141223df88215277e173a300dd95 Mon Sep 17 00:00:00 2001 From: IntelligentQuantum Date: Sun, 27 Mar 2022 17:49:27 +0430 Subject: [PATCH 49/57] feat(Core/SmartScripts): SMART_EVENT_ACCEPTED_QUEST, SMART_EVENT_REWARD_QUEST (#10210) --- .../updates/pending_db_world/rev_1642567672467945212.sql | 4 ++++ src/server/game/AI/SmartScripts/SmartScript.cpp | 1 + src/server/game/AI/SmartScripts/SmartScriptMgr.cpp | 7 +++++++ src/server/game/AI/SmartScripts/SmartScriptMgr.h | 6 ++++-- 4 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1642567672467945212.sql diff --git a/data/sql/updates/pending_db_world/rev_1642567672467945212.sql b/data/sql/updates/pending_db_world/rev_1642567672467945212.sql new file mode 100644 index 000000000..63c5a168a --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1642567672467945212.sql @@ -0,0 +1,4 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1642567672467945212'); + +UPDATE `smart_scripts` SET `event_param2`=0 WHERE `entryorguid`=17215 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param2`=0 WHERE `entryorguid`=17214 AND `source_type`=0 AND `id`=0 AND `link`=0; diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 76c6d2edd..40e8b8952 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -4400,6 +4400,7 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui { if (e.event.quest.quest && var0 != e.event.quest.quest) return; + RecalcTimer(e, e.event.quest.cooldownMin, e.event.quest.cooldownMax); ProcessAction(e, unit, var0); break; } diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp index 2aca121e6..7e2ca667c 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp @@ -1009,7 +1009,14 @@ bool SmartAIMgr::IsEventValid(SmartScriptHolder& e) case SMART_EVENT_ACCEPTED_QUEST: case SMART_EVENT_REWARD_QUEST: if (e.event.quest.quest && !IsQuestValid(e, e.event.quest.quest)) + { return false; + } + + if (!IsMinMaxValid(e, e.event.quest.cooldownMin, e.event.quest.cooldownMax)) + { + return false; + } break; case SMART_EVENT_RECEIVE_EMOTE: { diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h index 208975359..5a17d4ce7 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h @@ -123,8 +123,8 @@ enum SMART_EVENT SMART_EVENT_FRIENDLY_MISSING_BUFF = 16, // SpellId, Radius, RepeatMin, RepeatMax SMART_EVENT_SUMMONED_UNIT = 17, // CreatureId(0 all), CooldownMin, CooldownMax SMART_EVENT_TARGET_MANA_PCT = 18, // ManaMin%, ManaMax%, RepeatMin, RepeatMax - SMART_EVENT_ACCEPTED_QUEST = 19, // QuestID(0any) - SMART_EVENT_REWARD_QUEST = 20, // QuestID(0any) + SMART_EVENT_ACCEPTED_QUEST = 19, // QuestID (0 = any), CooldownMin, CooldownMax + SMART_EVENT_REWARD_QUEST = 20, // QuestID (0 = any), CooldownMin, CooldownMax SMART_EVENT_REACHED_HOME = 21, // NONE SMART_EVENT_RECEIVE_EMOTE = 22, // EmoteId, CooldownMin, CooldownMax, condition, val1, val2, val3 SMART_EVENT_HAS_AURA = 23, // Param1 = SpellID, Param2 = Stack amount, Param3/4 RepeatMin, RepeatMax @@ -293,6 +293,8 @@ struct SmartEvent struct { uint32 quest; + uint32 cooldownMin; + uint32 cooldownMax; } quest; struct From d44ef8e0d28afd4fe6bcfe4a20c9aeff72c42eaa Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 13:21:26 +0000 Subject: [PATCH 50/57] chore(DB): import pending files Referenced commit(s): dfa2198d983c141223df88215277e173a300dd95 --- data/sql/updates/db_world/2022_03_27_19.sql | 30 +++++++++++++++++++ .../rev_1642567672467945212.sql | 4 --- 2 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 data/sql/updates/db_world/2022_03_27_19.sql delete mode 100644 data/sql/updates/pending_db_world/rev_1642567672467945212.sql diff --git a/data/sql/updates/db_world/2022_03_27_19.sql b/data/sql/updates/db_world/2022_03_27_19.sql new file mode 100644 index 000000000..a13753a21 --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_19.sql @@ -0,0 +1,30 @@ +-- DB update 2022_03_27_18 -> 2022_03_27_19 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_18'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_18 2022_03_27_19 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1642567672467945212'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1642567672467945212'); + +UPDATE `smart_scripts` SET `event_param2`=0 WHERE `entryorguid`=17215 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param2`=0 WHERE `entryorguid`=17214 AND `source_type`=0 AND `id`=0 AND `link`=0; + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_19' WHERE sql_rev = '1642567672467945212'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/pending_db_world/rev_1642567672467945212.sql b/data/sql/updates/pending_db_world/rev_1642567672467945212.sql deleted file mode 100644 index 63c5a168a..000000000 --- a/data/sql/updates/pending_db_world/rev_1642567672467945212.sql +++ /dev/null @@ -1,4 +0,0 @@ -INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1642567672467945212'); - -UPDATE `smart_scripts` SET `event_param2`=0 WHERE `entryorguid`=17215 AND `source_type`=0 AND `id`=2 AND `link`=0; -UPDATE `smart_scripts` SET `event_param2`=0 WHERE `entryorguid`=17214 AND `source_type`=0 AND `id`=0 AND `link`=0; From ccf7cf82d1d72522f55122ee38647d06e304668c Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Sun, 27 Mar 2022 16:12:29 +0200 Subject: [PATCH 51/57] fix(Core/Objects): Fixed typo in `m_visibilityDistanceOverride` initialization (#11170) Fixes #9870 Fixes #11127 --- src/server/game/Entities/Object/Object.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 4dba85af0..f92af6694 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -1045,7 +1045,7 @@ void MovementInfo::OutDebug() } WorldObject::WorldObject(bool isWorldObject) : WorldLocation(), - LastUsedScriptID(0), m_name(""), m_isActive(false), m_visibilityDistanceOverride(false), m_isWorldObject(isWorldObject), m_zoneScript(nullptr), + LastUsedScriptID(0), m_name(""), m_isActive(false), m_visibilityDistanceOverride(), m_isWorldObject(isWorldObject), m_zoneScript(nullptr), _zoneId(0), _areaId(0), _floorZ(INVALID_HEIGHT), _outdoors(false), _liquidData(), _updatePositionData(false), m_transport(nullptr), m_currMap(nullptr), m_InstanceId(0), m_phaseMask(PHASEMASK_NORMAL), m_useCombinedPhases(true), m_notifyflags(0), m_executed_notifies(0) { From 1e1754a6a30aca741a4f44cb0ad5c72596985df3 Mon Sep 17 00:00:00 2001 From: LannyE <65646022+LannyE@users.noreply.github.com> Date: Sun, 27 Mar 2022 08:19:10 -0600 Subject: [PATCH 52/57] fix(SAI): Fix Stormwind citizens to be more Blizzlike in their behavior (#11121) * fix(SAI): Fix Stormwind citizens to be more Blizzlike in their behavior Fixes: Reginald Windsor is dead. I saw it with my own eyes - Removed Adam and Billy - Talk fomation and Waypoints Removed Extra Guard outside trade district Justin, Brandon, and Roman - Talk fomration and Waypoints Miss Danna and students - Talk formation and waypoints Donna and William - Formation and waypoint fix Closes #9144 Janey, Suzanne, and Lisan - Talk formation and waypoints Orphanage/Matron - Waypoints and permanent placement Karlee, Paige, Gil, and Fizzles - Talk formation and waypoints Lil' Timmy - Talk formation waypoints and despawn/disappear timer Closes #6565 Underwater Construction Worker - Removed (gone in WOTLK) Defias Prisoner and Guards - Formation fix Closes #10060 Sewer Beast - Creature Pool and spawn locations These changes were made with as much info as I can gather from wowhead, youtube and other sources. May not be 100% Blizzlike. Any existing waypoints were preserved with only slight modifications due to bridge swallowing children and following NPCs getting stuck. Some infomation was pulled from the Trinitycore database * fix(DB): Remove extra line * fix(DB): Remove comment at end of file and update lil timmy inventory refresh * fix(db): Refurbished Steam Tank fix * fix(db): Line Break Co-authored-by: BuildTools Co-authored-by: acidmanifesto --- .../rev_1648089119541675100.sql | 1194 +++++++++++++++++ 1 file changed, 1194 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1648089119541675100.sql diff --git a/data/sql/updates/pending_db_world/rev_1648089119541675100.sql b/data/sql/updates/pending_db_world/rev_1648089119541675100.sql new file mode 100644 index 000000000..97b3f28b0 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1648089119541675100.sql @@ -0,0 +1,1194 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648089119541675100'); + +/* Fixes/Changes: Reginald Windosr/Adam and Billy/Extra Guard/Justin Brandon and Roman/Miss Danna/Donna and William/Janey Suzanne and Lisan/ +Orphanage/Karlee Chaddis, Paige, Gil, and Fizzles/Lil' Timmy/Sewer Beast/Underwater Construction Worker/Defias Prisoner */ + +-- ----------------------------------------Reginald Windsor---------------------------------------------------------------------- + +-- Reginald is dead in WOTLK +DELETE FROM `creature` WHERE `guid` = 86900; +DELETE FROM `creature_addon` WHERE `guid` = 86900; +DELETE FROM `waypoint_data` WHERE `id` = 869000; + +-- Refurbished Steam Tank Fix -- Removing Reginald's creature table entry breaks model 25289 for the tank +UPDATE `creature_template` SET `modelid1` = 25341, `modelid2` = 0 WHERE `entry` = 29144; + +-- ----------------------------------------End Reginald Windsor------------------------------------------------------------------ +-- ----------------------------------------Adam and Billy------------------------------------------------------------------------ + +DELETE FROM `creature` WHERE `guid` in (120700,120702); -- Remove duplicate Adam and Billy creatures + +DELETE FROM `creature_addon` WHERE `guid` in (79700,79702,120700,120702); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES +(79700,0,0,0,1,0,0,NULL), +(79702,0,0,0,1,0,0,NULL); + +UPDATE `creature_template` SET `AIName` = "SmartAI" WHERE `entry` in (1366,1367); + +DELETE FROM `smart_scripts` WHERE `entryorguid` in (1366,1367,136600,136601,136602,136700,136701); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(1366,0,0,1,1,0,100,1,15000,15000,0,0,0,53,0,1366,1,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - OOC (No Repeat) - Start Waypoint'), +(1366,0,1,0,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - Linked - Set Data 1 0 \'Billy\''), +(1366,0,2,0,40,0,100,0,1,1366,0,0,0,80,136600,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Waypoint 1 Reached - Run Script'), +(1366,0,3,0,40,0,100,0,20,1366,0,0,0,45,1,10,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Waypoint 20 Reached - Set Data 1 10 \'Billy\''), +(1366,0,4,0,40,0,100,0,22,1366,0,0,0,80,136601,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Waypoint 22 Reached - Run Script'), +(1366,0,5,0,40,0,100,0,37,1366,0,0,0,45,1,10,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Waypoint 37 Reached - Set Data 1 10 \'Billy\''), +(1366,0,6,0,40,0,100,0,39,1366,0,0,0,80,136602,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Waypoint 39 Reached - Run Script'), +(1366,0,7,0,40,0,100,0,113,1366,0,0,0,45,1,10,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Waypoint 113 Reached - Set Data 1 10 \'Billy\''), +(1366,0,8,0,38,0,100,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Data Set 1 1 - Say Random 0'), + +(1367,0,0,0,38,0,100,0,1,0,0,0,0,29,0,330,0,0,0,0,10,79702,1366,0,0,0,0,0,0,'Billy - On Data Set 1 0 - Set Follow'), +(1367,0,1,0,38,0,100,0,1,2,0,0,0,69,0,0,0,0,0,0,1,0,0,0,0,-8746.148,534.447,96.338,0.942478,'Billy - On Data Set 1 2 - Move to POS'), +(1367,0,2,0,38,0,100,0,1,4,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0.942478,'Billy - On Data Set 1 4 - Set Orientation'), +(1367,0,3,0,38,0,100,0,1,3,0,0,0,69,0,0,0,0,0,0,1,0,0,0,0,-8793.934,771.825,96.338,1.6493,'Billy - On Data Set 1 3 - Move to POS'), +(1367,0,4,0,38,0,100,0,1,5,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1.6493,'Billy - On Data Set 1 5 - Set Orientation'), +(1367,0,5,0,38,0,100,0,1,6,0,0,0,69,0,0,0,0,0,0,1,0,0,0,0,-8842.04,956.97,96.338,5.40947,'Billy - On Data Set 1 6 - Move to POS'), +(1367,0,6,0,38,0,100,0,1,7,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,5.40947,'Billy - On Data Set 1 7 - Set Orientation'), +(1367,0,7,0,38,0,100,0,1,8,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Billy - On Data Set 1 8 - Set Phase 1'), +(1367,0,8,0,38,0,100,0,1,9,0,0,0,22,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Billy - On Data Set 1 9 - Set Phase 0'), +(1367,0,9,0,38,0,100,0,1,10,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Billy - On Data Set 1 10 - Say Line 1'), +(1367,0,10,0,1,0,100,0,30000,30000,90000,160000,0,80,136700,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Billy - OOC - Run Script'), +(1367,0,11,0,1,1,20,0,8000,8000,90000,150000,0,80,136701,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Billy - OOC - Run Script (Phase 1)'), + +-- Billy talk without the boot story and are there any fish dialogue +(136700,9,0,0,0,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Billy - On Script - Say Random 0'), +(136700,9,1,0,0,0,100,0,8000,12000,0,0,0,45,1,1,0,0,0,0,10,79702,1366,0,0,0,0,0,0,'Billy - On Script - Set Data 1 1 \'Adam\''), +(136700,9,2,0,0,0,100,0,8000,8000,0,0,0,59,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Billy - On Script - Set Run Off (Pause)'), + +-- Billy talk about him catching an old boot can say it only when he is at a dock +(136701,9,0,0,0,0,100,0,0,0,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Billy - On Script - Say Line 2'), +(136701,9,1,0,0,0,100,0,11000,11000,0,0,0,45,1,1,0,0,0,0,10,79702,1366,0,0,0,0,0,0,'Billy - On Script - Set Data 1 1 \'Adam\''), +(136701,9,2,0,0,0,100,0,8000,8000,0,0,0,59,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Billy - On Script - Set Run Off (Pause)'), + +-- Starting Dock +(136600,9,0,0,0,0,100,0,0,0,0,0,0,54,2300000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Script - Pause Waypoint'), +(136600,9,1,0,0,0,100,0,0,0,0,0,0,45,1,8,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 8 \'Billy\''), +(136600,9,2,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1.01889,'Adam - On Script - Set Orientation'), +(136600,9,3,0,0,0,100,0,0,0,0,0,0,45,1,2,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 2 \'Billy\''), +(136600,9,4,0,0,0,100,0,3000,3000,0,0,0,45,1,4,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 4 \'Billy\''), +(136600,9,5,0,0,0,100,0,1800000,2280000,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Script - Say Line 1'), +(136600,9,6,0,0,0,100,0,2000,2000,0,0,0,65,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Script - Resume Waypoint'), +(136600,9,7,0,0,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 0 \'Billy\''), +(136600,9,8,0,0,0,100,0,0,0,0,0,0,45,1,9,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 9 \'Billy\''), + +-- Second Dock +(136601,9,0,0,0,0,100,0,0,0,0,0,0,54,2300000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Script - Pause Waypoint'), +(136601,9,1,0,0,0,100,0,0,0,0,0,0,45,1,8,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 8 \'Billy\''), +(136601,9,2,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1.68,'Adam - On Script - Set Orientation'), +(136601,9,3,0,0,0,100,0,0,0,0,0,0,45,1,3,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 3 \'Billy\''), +(136601,9,4,0,0,0,100,0,3000,3000,0,0,0,45,1,5,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 5 \'Billy\''), +(136601,9,5,0,0,0,100,0,1800000,2280000,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Script - Say Line 1'), +(136601,9,6,0,0,0,100,0,2000,2000,0,0,0,65,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Script - Resume Waypoint'), +(136601,9,7,0,0,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 0 \'Billy\''), +(136601,9,8,0,0,0,100,0,0,0,0,0,0,45,1,9,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 9 \'Billy\''), + +-- Third Dock +(136602,9,0,0,0,0,100,0,0,0,0,0,0,54,2300000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Script - Pause Waypoint'), +(136602,9,1,0,0,0,100,0,0,0,0,0,0,45,1,8,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 8 \'Billy\''), +(136602,9,2,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,5.4067,'Adam - On Script - Set Orientation'), +(136602,9,3,0,0,0,100,0,0,0,0,0,0,45,1,6,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 6 \'Billy\''), +(136602,9,4,0,0,0,100,0,3000,3000,0,0,0,45,1,7,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 7 \'Billy\''), +(136602,9,5,0,0,0,100,0,1800000,2280000,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Script - Say Line 1'), +(136602,9,6,0,0,0,100,0,2000,2000,0,0,0,65,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Adam - On Script - Resume Waypoint'), +(136602,9,7,0,0,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 0 \'Billy\''), +(136602,9,8,0,0,0,100,0,0,0,0,0,0,45,1,9,0,0,0,0,10,79700,1367,0,0,0,0,0,0,'Adam - On Script - Set Data 1 9 \'Billy\''); + +DELETE FROM `creature_text` WHERE `CreatureID` in (1367,1366); +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(1367,0,0,'I heard that there are these huge fish that can walk on land to hunt, and eat people!',12,7,100,1,0,0,139,0,'Billy - Talk'), +(1367,0,1,'My daddy says that in the ocean, there are fish so big they could swallow a whole ship.',12,7,100,1,0,0,133,0,'Billy - Talk'), +(1367,0,2,'I heard a story about this golden fish, and if you caught it you would get three wishes!',12,7,100,1,0,0,141,0,'Billy - Talk'), +(1367,0,3,'And one time, at camp, I caught a fish that was bigger than I am!!',12,7,100,1,0,0,140,0,'Billy - Talk'), +(1367,0,4,'I caught a big one last week, it had three eyes!',12,7,100,1,0,0,132,0,'Billy - Talk'), +(1367,0,5,'My daddy can catch more fish than your daddy!',12,7,100,1,0,0,134,0,'Billy - Talk'), +(1367,1,0,'Think there are any fish in here?',12,7,100,1,0,0,131,0,'Billy - Talk'), +(1367,2,0,'Look! Look! I caught something! Aww....it\'s just a stinky ol\' boot.',12,7,100,1,0,0,135,0,'Billy - Talk'), + +(1366,0,0,'You\'re making that up.',12,7,100,1,0,0,144,0,'Adam - Talk'), +(1366,0,1,'Shhh! You\'re scaring the fish away.',12,7,100,1,0,0,143,0,'Adam - Talk'), +(1366,0,2,'Really?',12,7,100,1,0,0,147,0,'Adam - Talk'), +(1366,0,3,'Nuh uh.',12,7,100,1,0,0,136,0,'Adam - Talk'), +(1366,0,4,'Maybe we should go to the bridge and fish.',12,7,100,1,0,0,146,0,'Adam - Talk'), +(1366,0,5,'Liar!',12,7,100,1,0,0,138,0,'Adam - Talk'), +(1366,0,6,'If you fished as well as you talked the ocean wouldn\'t have any fish left.',12,7,100,1,0,0,142,0,'Adam - Talk'), +(1366,0,7,'If you could catch a fish big enough for your mouth we\'d never be hungry again.',12,7,100,1,0,0,145,0,'Adam - Talk'), +(1366,1,0,'C\'mon, let\'s try somewhere else.',12,7,100,1,0,0,1086,0,'Adam - Talk'); + +DELETE FROM `waypoints` WHERE `entry` = 1366; +INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`point_comment`) VALUES +(1366,1,-8747.28,535.483,96.338,0,0,'Adam'), +(1366,2,-8753.812,529.035,96.339,0,0,'Adam'), +(1366,3,-8763.095,535.144,97.396,0,0,'Adam'), +(1366,4,-8762.947,547.032,97.396,0,0,'Adam'), +(1366,5,-8752.085,560.404,97.398,0,0,'Adam'), +(1366,6,-8746.01,564.915,97.4001,0,0,'Adam'), +(1366,7,-8729.92,581.294,97.6775,0,0,'Adam'), +(1366,8,-8719.58,591.033,98.4713,0,0,'Adam'), +(1366,9,-8712.04,594.001,98.6079,0,0,'Adam'), +(1366,10,-8707.26,600.676,98.9982,0,0,'Adam'), +(1366,11,-8704.46,616.407,100.215,0,0,'Adam'), +(1366,12,-8705.6,629.078,100.477,0,0,'Adam'), +(1366,13,-8708.67,645.787,99.9994,0,0,'Adam'), +(1366,14,-8716.46,666.585,98.8681,0,0,'Adam'), +(1366,15,-8724.09,676.482,98.6317,0,0,'Adam'), +(1366,16,-8728.54,684.167,98.7324,0,0,'Adam'), +(1366,17,-8733.47,695.151,98.723,0,0,'Adam'), +(1366,18,-8743.6,709.876,98.2678,0,0,'Adam'), +(1366,19,-8762.525,732.975,98.74,0,0,'Adam'), +(1366,20,-8781.188,743.14,99.253,0,0,'Adam'), +(1366,21,-8794.655,752.188,97.432,0,0,'Adam'), +(1366,22,-8795.867,771.807,96.338,0,0,'Adam'), +(1366,23,-8794.655,752.188,97.432,0,0,'Adam'), +(1366,24,-8798.565,744.748,97.620,0,0,'Adam'), +(1366,25,-8845.016,722.505,97.193,0,0,'Adam'), +(1366,26,-8851.771,733.43,99.925,0,0,'Adam'), +(1366,27,-8860.571,747.201,99.95,0,0,'Adam'), +(1366,28,-8869.517,760.847,96.742,0,0,'Adam'), +(1366,29,-8863.425,769.865,96.77,0,0,'Adam'), +(1366,30,-8829.957,794.505,96.72,0,0,'Adam'), +(1366,31,-8820.471,843.081,98.95,0,0,'Adam'), +(1366,32,-8829.243,895.12,98.128,0,0,'Adam'), +(1366,33,-8850.94,928.807,102.017,0,0,'Adam'), +(1366,34,-8843.91,933.491,104.097,0,0,'Adam'), +(1366,35,-8816.65,953.442,100.743,0,0,'Adam'), +(1366,36,-8828.869,972.542,98.555,0,0,'Adam'), +(1366,37,-8838.333,972.233,97.846,0,0,'Adam'), +(1366,38,-8846.433,965.744,96.338,0,0,'Adam'), +(1366,39,-8840.67,958.553,96.338,0,0,'Adam'), +(1366,40,-8846.433,965.744,96.338,0,0,'Adam'), +(1366,41,-8838.333,972.233,97.846,0,0,'Adam'), +(1366,42,-8828.869,972.542,98.555,0,0,'Adam'), +(1366,43,-8816.65,953.442,100.743,0,0,'Adam'), +(1366,44,-8767.52,895.508,101.256,0,0,'Adam'), +(1366,45,-8753.45,892,101.896,0,0,'Adam'), +(1366,46,-8740.3,893.588,101.375,0,0,'Adam'), +(1366,47,-8726.64,877.216,102.712,0,0,'Adam'), +(1366,48,-8711.78,859.391,96.9622,0,0,'Adam'), +(1366,49,-8709.601,858.748,96.993,0,0,'Adam'), +(1366,50,-8712.475,853.661,96.86,0,0,'Adam'), +(1366,51,-8718.147,846.137,96.43,0,0,'Adam'), +(1366,52,-8727.39,831.585,96.2625,0,0,'Adam'), +(1366,53,-8726.35,812.836,97.0629,0,0,'Adam'), +(1366,54,-8717.01,798.201,97.1855,0,0,'Adam'), +(1366,55,-8717.02,792.913,97.1566,0,0,'Adam'), +(1366,56,-8728.06,775.333,98.0319,0,0,'Adam'), +(1366,57,-8733.64,764.22,97.9501,0,0,'Adam'), +(1366,58,-8722.22,747.857,98.0333,0,0,'Adam'), +(1366,59,-8711.9,732.893,97.8112,0,0,'Adam'), +(1366,60,-8698.59,714.268,97.0168,0,0,'Adam'), +(1366,61,-8691.63,704.794,97.1053,0,0,'Adam'), +(1366,62,-8683.28,695.683,97.8567,0,0,'Adam'), +(1366,63,-8671.771,683.623,98.876,0,0,'Adam'), +(1366,64,-8669.76,678.045,99.3877,0,0,'Adam'), +(1366,65,-8662.717,666.586,100.377,0,0,'Adam'), +(1366,66,-8654.11,660.351,100.865,0,0,'Adam'), +(1366,67,-8639.43,656.589,101.082,0,0,'Adam'), +(1366,68,-8631.83,655.639,100.63,0,0,'Adam'), +(1366,69,-8620.59,654.378,99.1946,0,0,'Adam'), +(1366,70,-8597.947,657.882,98.377,0,0,'Adam'), +(1366,71,-8593.052,656.774,98.221,0,0,'Adam'), +(1366,72,-8578.838,662.088,97.607,0,0,'Adam'), +(1366,73,-8561.86,674.735,97.0168,0,0,'Adam'), +(1366,74,-8556.46,676.784,97.0168,0,0,'Adam'), +(1366,75,-8542.79,686.774,97.6239,0,0,'Adam'), +(1366,76,-8532.769,688.506,97.661,0,0,'Adam'), +(1366,77,-8528.005,682.699,99.567,0,0,'Adam'), +(1366,78,-8522.24,670.618,102.794,0,0,'Adam'), +(1366,79,-8519.8,666.4,102.615,0,0,'Adam'), +(1366,80,-8512.94,656.648,100.901,0,0,'Adam'), +(1366,81,-8513.15,648.714,100.292,0,0,'Adam'), +(1366,82,-8518.18,642.361,100.092,0,0,'Adam'), +(1366,83,-8538.04,630.723,100.404,0,0,'Adam'), +(1366,84,-8554.03,617.81,102.053,0,0,'Adam'), +(1366,85,-8564.5,613.48,102.435,0,0,'Adam'), +(1366,86,-8576.12,601.799,103.26,0,0,'Adam'), +(1366,87,-8582.44,589.572,103.691,0,0,'Adam'), +(1366,88,-8586.68,575.605,102.985,0,0,'Adam'), +(1366,89,-8585.96,565.941,102.26,0,0,'Adam'), +(1366,90,-8578.9,545.988,101.779,0,0,'Adam'), +(1366,91,-8581.73,541.012,102.09,0,0,'Adam'), +(1366,92,-8590.09,533.912,104.76,0,0,'Adam'), +(1366,93,-8598.32,527.164,106.399,0,0,'Adam'), +(1366,94,-8605.67,520.882,105.748,0,0,'Adam'), +(1366,95,-8610.26,515.735,103.79,0,0,'Adam'), +(1366,96,-8613.43,514.684,103.401,0,0,'Adam'), +(1366,97,-8618.8,518.794,103.068,0,0,'Adam'), +(1366,98,-8635.17,535.152,99.9833,0,0,'Adam'), +(1366,99,-8647.39,546.721,97.8568,0,0,'Adam'), +(1366,100,-8655.78,552.938,96.9435,0,0,'Adam'), +(1366,101,-8671.86,552.874,97.2037,0,0,'Adam'), +(1366,102,-8679.66,549.654,97.5031,0,0,'Adam'), +(1366,103,-8689.63,540.268,97.828,0,0,'Adam'), +(1366,104,-8698.98,530.295,97.7173,0,0,'Adam'), +(1366,105,-8712.64,520.242,97.2398,0,0,'Adam'), +(1366,106,-8715.24,521.571,97.4039,0,0,'Adam'), +(1366,107,-8720.77,528.729,99.1496,0,0,'Adam'), +(1366,108,-8729.84,539.87,101.105,0,0,'Adam'), +(1366,109,-8735.95,547.101,100.845,0,0,'Adam'), +(1366,110,-8745.79,557.737,97.7107,0,0,'Adam'), +(1366,111,-8755.938,556.376,97.396,0,0,'Adam'), +(1366,112,-8762.947,547.032,97.396,0,0,'Adam'), +(1366,113,-8763.095,535.144,97.396,0,0,'Adam'), +(1366,114,-8753.812,529.035,96.339,0,0,'Adam'); + +-- ---------------------------------------------End Adam and Billy---------------------------------------------------------- +-- -----------------------------------------Canals Extra Guard Cleanup------------------------------------------------------ + +-- Duplicate Solidier just randomly moving around another stationary guard +DELETE FROM `creature` WHERE `guid` = 120682; +DELETE FROM `creature_addon` WHERE `guid` = 120682; + +-- -----------------------------------------End Canals Extra Guard Cleanup--------------------------------------------------- +-- -------------------------------------------Justin, Brandon, and Roman----------------------------------------------------- + +UPDATE `creature` SET `MovementType` = 0 WHERE `guid` in (79815,79816,79817); +UPDATE `creature_addon` SET `path_id` = 0,`bytes2` = 1 WHERE `guid` in (79815,79816,79817); +UPDATE `creature_template` SET `AIName` = "SmartAI" WHERE `entry` in (1368,1370,1371); + +DELETE FROM `smart_scripts` WHERE `entryorguid` in (1368,1370,1371,136800,137000,137001); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(1368,0,0,0,38,0,100,0,1,0,0,0,0,29,0,75,0,0,0,0,10,79817,1370,0,0,0,0,0,0,'Justin - On Data Set 1 0 - Set Follow'), +(1368,0,1,0,38,0,100,0,1,2,0,0,0,69,0,0,0,0,0,0,1,0,0,0,0,-8582.03,633.634,96.3386,5.0381,'Justin - On Data Set 1 2 - Move to POS'), +(1368,0,2,0,38,0,100,0,1,4,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,5.0381,'Justin - On Data Set 1 4 - Set Orientation'), +(1368,0,3,0,38,0,100,0,1,3,0,0,0,69,0,0,0,0,0,0,1,0,0,0,0,-8675.673,909.057,96.338,3.768,'Justin - On Data Set 1 3 - Move to POS'), +(1368,0,4,0,38,0,100,0,1,5,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3.768,'Justin - On Data Set 1 5 - Set Orientation'), +(1368,0,5,0,1,0,100,0,30000,30000,80000,160000,0,80,136800,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Justin - OOC - Run Script'), + +(1371,0,0,0,38,0,100,0,1,0,0,0,0,29,0,285,0,0,0,0,10,79817,1370,0,0,0,0,0,0,'Roman - On Data Set 1 0 - Set Follow'), +(1371,0,1,0,38,0,100,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Roman - On Data Set 1 1 - Say Random 0'), +(1371,0,2,0,38,0,100,0,1,2,0,0,0,69,0,0,0,0,0,0,1,0,0,0,0,-8583.88,633.127,96.3386,5.0381,'Roman - On Data Set 1 2 - Move to POS'), +(1371,0,3,0,38,0,100,0,1,4,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,5.0381,'Roman - On Data Set 1 4 - Set Orientation'), +(1371,0,4,0,38,0,100,0,1,3,0,0,0,69,0,0,0,0,0,0,1,0,0,0,0,-8673.55,912.143,96.338,2.282,'Roman - On Data Set 1 3 - Move to POS'), +(1371,0,5,0,38,0,100,0,1,5,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2.282,'Roman - On Data Set 1 5 - Set Orientation'), + +(1370,0,0,1,1,0,100,1,25000,25000,0,0,0,53,0,1370,1,0,0,0,1,0,0,0,0,0,0,0,0,'Brandon - OOC (No Repeat) - Start Waypoint'), +(1370,0,1,2,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79815,1368,0,0,0,0,0,0,'Brandon - Linked - Set Data 1 0 \'Justin\''), +(1370,0,2,0,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79816,1371,0,0,0,0,0,0,'Brandon - Linked - Set Data 1 0 \'Roman\''), +(1370,0,3,0,40,0,100,0,1,1370,0,0,0,80,137000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Brandon - On Waypoint 1 Reached - Run Script'), +(1370,0,4,0,40,0,100,0,32,1370,0,0,0,80,137001,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Brandon - On Waypoint 32 Reached - Run Script'), +(1370,0,5,0,38,0,100,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Brandon - On Data Set 1 1 - Say Random 0'), + +(136800,9,0,0,0,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Justin - On Script - Say Random 0'), +(136800,9,1,0,0,0,100,0,4000,8000,0,0,0,45,1,1,0,0,0,0,10,79817,1370,0,0,0,0,0,0,'Justin - On Script - Set Data 1 1 \'Brandon\''), +(136800,9,2,0,0,0,100,0,6000,9000,0,0,0,45,1,1,0,0,0,0,10,79816,1371,0,0,0,0,0,0,'Justin - On Script - Set Data 1 1 \'Roman\''), + +-- Starting Dock +(137000,9,0,0,0,0,100,0,0,0,0,0,0,54,4520000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Brandon - On Script - Pause Waypoint'), +(137000,9,1,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0.2961,'Brandon - On Script - Set Orientation'), +(137000,9,2,0,0,0,100,0,0,0,0,0,0,45,1,2,0,0,0,0,10,79816,1371,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 2 \'Roman\''), +(137000,9,3,0,0,0,100,0,0,0,0,0,0,45,1,2,0,0,0,0,10,79815,1368,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 2 \'Justin\''), +(137000,9,4,0,0,0,100,0,3000,3000,0,0,0,45,1,4,0,0,0,0,10,79816,1371,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 4 \'Roman\''), +(137000,9,5,0,0,0,100,0,0,0,0,0,0,45,1,4,0,0,0,0,10,79815,1368,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 4 \'Justin\''), +(137000,9,6,0,0,0,100,0,3600000,4500000,0,0,0,65,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Brandon - On Script - Resume Waypoint'), +(137000,9,7,0,0,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79815,1368,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 0 \'Justin\''), +(137000,9,8,0,0,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79816,1371,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 0 \'Roman\''), + +-- Second Dock +(137001,9,0,0,0,0,100,0,0,0,0,0,0,54,4520000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Brandon - On Script - Pause Waypoint'), +(137001,9,1,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,2.282,'Brandon - On Script - Set Orientation'), +(137001,9,2,0,0,0,100,0,0,0,0,0,0,45,1,3,0,0,0,0,10,79816,1371,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 3 \'Roman\''), +(137001,9,3,0,0,0,100,0,0,0,0,0,0,45,1,3,0,0,0,0,10,79815,1368,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 3 \'Justin\''), +(137001,9,4,0,0,0,100,0,3000,3000,0,0,0,45,1,5,0,0,0,0,10,79816,1371,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 5 \'Roman\''), +(137001,9,5,0,0,0,100,0,0,0,0,0,0,45,1,5,0,0,0,0,10,79815,1368,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 5 \'Justin\''), +(137001,9,6,0,0,0,100,0,3600000,4500000,0,0,0,65,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Brandon - On Script - Resume Waypoint'), +(137001,9,7,0,0,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79815,1368,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 0 \'Justin\''), +(137001,9,8,0,0,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,79816,1371,0,0,0,0,0,0,'Brandon - On Script - Set Data 1 0 \'Roman\''); + +DELETE FROM `creature_text` WHERE `CreatureID` in (1368,1370,1371); +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(1368,0,0,'And so the knights stood before the charging Horde and held their ground as a thousand berserk orcs came through the valley.',12,7,100,1,0,0,150,0,'Justin - Talk'), +(1368,0,1,'And that\'s how Lothar killed thirty six orcs with his bare hands!',12,7,100,1,0,0,149,0,'Justin - Talk'), +(1368,0,2,'And then the rabbit just bit his head off... I swear.',12,7,100,1,0,0,155,0,'Justin - Talk'), +(1368,0,3,'They say he can turn into a raven sometimes.',12,7,100,1,0,0,151,0,'Justin - Talk'), +(1368,0,4,'You know there are crocolisks in the Canals. They were brought from the swamp as pets, but got thrown in the canals.',12,7,100,1,0,0,156,0,'Justin - Talk'), +(1368,0,5,'You know why orc eyes glow red? It\'s because they drink blood!',12,7,100,1,0,0,152,0,'Justin - Talk'), +(1368,0,6,'I swear, people have actually seen them. Pandaren really do exist!',12,7,100,1,0,0,154,0,'Justin - Talk'), +(1368,0,7,'There is no spoon.',12,7,100,1,0,0,153,0,'Justin - Talk'), + +(1370,0,0,'My father says that\'s just a story.',12,7,100,1,0,0,168,0,'Brandon - Talk'), +(1370,0,1,'Can you imagine?',12,7,100,1,0,0,169,0,'Brandon - Talk'), +(1370,0,2,'Oh c\'mon, that\'s not true.',12,7,100,1,0,0,166,0,'Brandon - Talk'), +(1370,0,3,'Oh yeah, I heard about that.',12,7,100,1,0,0,158,0,'Brandon - Talk'), +(1370,0,4,'Really?',12,7,100,1,0,0,147,0,'Brandon - Talk'), +(1370,0,5,'Sounds kinda like one of Billy\'s fish stories to me.',12,7,100,1,0,0,170,0,'Brandon - Talk'), +(1370,0,6,'That\'s neat.',12,7,100,1,0,0,167,0,'Brandon - Talk'), +(1370,0,7,'Wow.',12,7,100,1,0,0,157,0,'Brandon - Talk'), + +(1371,0,0,'Eww... that\'s not a fish!',12,7,100,1,0,0,173,0,'Roman - Talk'), +(1371,0,1,'I don\'t think there\'s any fish in these canals.',12,7,100,1,0,0,177,0,'Roman - Talk'), +(1371,0,2,'I got worm guts on my shoes.',12,7,100,1,0,0,174,0,'Roman - Talk'), +(1371,0,3,'I hope that was a fish!',12,7,100,1,0,0,176,0,'Roman - Talk'), +(1371,0,4,'I think I see something.',12,7,100,1,0,0,172,0,'Roman - Talk'), +(1371,0,5,'Something smells funny.',12,7,100,1,0,0,175,0,'Roman - Talk'), +(1371,0,6,'Worm goes on the hook, hook goes in the water. Fish is in the water, our fish.',12,7,100,1,0,0,178,0,'Roman - Talk'), +(1371,0,7,'I thought I heard something.',12,7,100,1,0,0,171,0,'Roman - Talk'); + +DELETE FROM `waypoint_scripts` WHERE `id` >= 285 and `id` <= 307; +DELETE FROM `waypoint_data` WHERE `id` in (798150,798160,798170); + +DELETE FROM `waypoints` WHERE `entry` = 1370; +INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`point_comment`) VALUES +(1370,1,-8580.51,635.108,96.3386,0,0,'Brandon'), +(1370,2,-8582.773,635.572,96.338,0,0,'Brandon'), +(1370,3,-8593.052,656.774,98.221,0,0,'Brandon'), +(1370,4,-8597.947,657.882,98.377,0,0,'Brandon'), +(1370,5,-8620.59,654.378,99.1946,0,0,'Brandon'), +(1370,6,-8631.83,655.639,100.63,0,0,'Brandon'), +(1370,7,-8639.43,656.589,101.082,0,0,'Brandon'), +(1370,8,-8654.11,660.351,100.865,0,0,'Brandon'), +(1370,9,-8662.717,666.586,100.377,0,0,'Brandon'), +(1370,10,-8669.76,678.045,99.3877,0,0,'Brandon'), +(1370,11,-8671.771,683.623,98.876,0,0,'Brandon'), +(1370,12,-8683.28,695.683,97.8567,0,0,'Brandon'), +(1370,13,-8691.63,704.794,97.1053,0,0,'Brandon'), +(1370,14,-8698.59,714.268,97.0168,0,0,'Brandon'), +(1370,15,-8711.9,732.893,97.8112,0,0,'Brandon'), +(1370,16,-8722.22,747.857,98.0333,0,0,'Brandon'), +(1370,17,-8733.64,764.22,97.9501,0,0,'Brandon'), +(1370,18,-8728.06,775.333,98.0319,0,0,'Brandon'), +(1370,19,-8717.02,792.913,97.1566,0,0,'Brandon'), +(1370,20,-8717.01,798.201,97.1855,0,0,'Brandon'), +(1370,21,-8726.35,812.836,97.0629,0,0,'Brandon'), +(1370,22,-8727.39,831.585,96.2625,0,0,'Brandon'), +(1370,23,-8718.147,846.137,96.43,0,0,'Brandon'), +(1370,24,-8712.475,853.661,96.86,0,0,'Brandon'), +(1370,25,-8709.601,858.748,96.993,0,0,'Brandon'), +(1370,26,-8705.86,860.48,97.0867,0,0,'Brandon'), +(1370,27,-8692.29,871.475,97.0226,0,0,'Brandon'), +(1370,28,-8682.01,878.208,97.0173,0,0,'Brandon'), +(1370,29,-8658.599,900.099,97.549,0,0,'Brandon'), +(1370,30,-8663.312,909.099,96.958,0,0,'Brandon'), +(1370,31,-8667.227,911.786,96.338,0,0,'Brandon'), +(1370,32,-8674.834,911.015,96.338,0,0,'Brandon'), +(1370,33,-8667.227,911.786,96.338,0,0,'Brandon'), +(1370,34,-8663.312,909.099,96.958,0,0,'Brandon'), +(1370,35,-8658.599,900.099,97.549,0,0,'Brandon'), +(1370,36,-8682.01,878.208,97.0173,0,0,'Brandon'), +(1370,37,-8692.29,871.475,97.0226,0,0,'Brandon'), +(1370,38,-8705.86,860.48,97.0867,0,0,'Brandon'), +(1370,39,-8709.601,858.748,96.993,0,0,'Brandon'), +(1370,40,-8712.475,853.661,96.86,0,0,'Brandon'), +(1370,41,-8718.147,846.137,96.43,0,0,'Brandon'), +(1370,42,-8727.39,831.585,96.2625,0,0,'Brandon'), +(1370,43,-8726.35,812.836,97.0629,0,0,'Brandon'), +(1370,44,-8717.01,798.201,97.1855,0,0,'Brandon'), +(1370,45,-8717.02,792.913,97.1566,0,0,'Brandon'), +(1370,46,-8728.06,775.333,98.0319,0,0,'Brandon'), +(1370,47,-8733.64,764.22,97.9501,0,0,'Brandon'), +(1370,48,-8722.22,747.857,98.0333,0,0,'Brandon'), +(1370,49,-8711.9,732.893,97.8112,0,0,'Brandon'), +(1370,50,-8698.59,714.268,97.0168,0,0,'Brandon'), +(1370,51,-8691.63,704.794,97.1053,0,0,'Brandon'), +(1370,52,-8683.28,695.683,97.8567,0,0,'Brandon'), +(1370,53,-8671.771,683.623,98.876,0,0,'Brandon'), +(1370,54,-8669.76,678.045,99.3877,0,0,'Brandon'), +(1370,55,-8662.717,666.586,100.377,0,0,'Brandon'), +(1370,56,-8654.11,660.351,100.865,0,0,'Brandon'), +(1370,57,-8639.43,656.589,101.082,0,0,'Brandon'), +(1370,58,-8631.83,655.639,100.63,0,0,'Brandon'), +(1370,59,-8620.59,654.378,99.1946,0,0,'Brandon'), +(1370,60,-8597.947,657.882,98.377,0,0,'Brandon'), +(1370,61,-8593.052,656.774,98.221,0,0,'Brandon'), +(1370,62,-8582.773,635.572,96.338,0,0,'Brandon'); + +-- --------------------------------------------------End Justin, Brandon, and Roman------------------------------------------------ +-- ---------------------------------------------------Miss Danna and students------------------------------------------------------ + +DELETE FROM `creature` WHERE `guid` = 87023; +INSERT INTO `creature` (`guid`,`id1`,`id2`,`id3`,`map`,`zoneId`,`areaId`,`spawnMask`,`phaseMask`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`wander_distance`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`,`ScriptName`,`VerifiedBuild`) VALUES +(87023,3509,0,0,0,0,0,1,1,0,-8838.52,670.28,98.0987,0.553153,300,0,0,1,0,0,0,0,0,'',0); + +UPDATE `creature` SET `MovementType` = 0 WHERE `guid` in (87092,87088,87090,87089,87082,87091,84028); +UPDATE `creature_addon` SET `path_id` = 0 WHERE `guid` in (87092,87088,87090,87089,87082,87091,84028); + +DELETE FROM `waypoint_data` WHERE `id` in (870920,870880,870900,870890,870820,870910,840280); +DELETE FROM `waypoint_scripts` WHERE `id` >= 315 and `id` <= 328 or `id` in (413,414,415); + +UPDATE `creature_template` SET `AIName` = "SmartAI" WHERE `entry` in (3505,3507,3508,3509,3510,3511,3512,3513); + +DELETE FROM `creature_text` WHERE `CreatureID` in (3511,3512,3513); +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(3511,0,0,'Why do we have to learn this stuff anyway?',12,7,100,1,0,0,1130,0,'Steven - Talk'), +(3511,0,1,'It\'s better than the drawings in the history tomes.',12,7,100,1,0,0,1131,0,'Steven - Talk'), +(3511,0,2,'Teacher, when are we gonna see the sparkly Mage Tower?',12,7,100,1,0,0,1133,0,'Steven - Talk'), +(3511,0,3,'Teacher, I have to pee!',12,7,100,1,0,0,1136,0,'Steven - Talk'), +(3511,0,4,'Teacher are there night elves in Stormwind? I\'ve never seen a night elf before.',12,7,100,1,0,0,1138,0,'Steven - Talk'), +(3511,0,5,'Teacher, he keeps poking me!',12,7,100,1,0,0,1139,0,'Steven - Talk'), +(3511,0,6,'I heard there are still orcs buried underneath it.',12,7,100,1,0,0,1134,0,'Steven - Talk'), +(3511,0,7,'I wanna see the dragon skeleton in the great library.',12,7,100,1,0,0,1132,0,'Steven - Talk'), +(3512,0,0,'Is it true that the paladins train here?',12,7,100,1,0,0,1153,0,'Jimmy - Talk'), +(3513,0,0,'Here we have the Cathedral of Light, the center of spiritual enlightenment here in Stormwind.',12,7,100,1,0,0,1129,0,'Miss Danna - Talk'), +(3513,1,0,'Here we have Stormwind Keep. Built upon the ruins of Stormwind Castle, which was destroyed by the Horde in the first Great War.',12,7,100,1,0,0,1140,0,'Miss Danna - Talk'), +(3513,2,0,'Yes, that is true. Paladins and priests alike train their skills and research great truths behind the walls of the Cathedral.',12,7,100,1,0,0,1154,0,'Miss Danna - Talk'), +(3513,3,0,'Children if you would please follow me, we will now be going to see the keep where King Varian Wrynn himself sits on his throne.',12,7,100,1,0,0,1155,0,'Miss Danna - Talk'), +(3513,4,0,'When the Horde was shattered, men returned here and began to rebuild the once great city as a testament to our own survival.',12,7,100,1,0,0,1161,0,'Miss Danna - Talk'), +(3513,5,0,'Yes, well...let\'s head on to the monument dedicated to the heroes of the two Great Wars, the Valley of Heroes. Follow me.',12,7,100,1,0,0,1162,0,'Miss Danna - Talk'), +(3513,6,0,'Isn\'t it amazing, children? All who enter the city must walk beneath the watchful eyes of the greatest heroes of our lands.',12,7,100,1,0,0,1163,0,'Miss Danna - Talk'), +(3513,7,0,'Breathtaking. Children, when we return to the school, you will each give an oral report on one of these legendary people.',12,7,100,1,0,0,1165,0,'Miss Danna - Talk'), +(3513,8,0,'Now, take another long look before we make our way to the Holy District and the great Cathedral of Light.',12,7,100,1,0,0,1166,0,'Miss Danna - Talk'); + +DELETE FROM `smart_scripts` WHERE `entryorguid` in (3505,3507,3508,3509,3510,3511,3512,3513,351300,351301,351302); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(3505,0,0,0,38,0,100,0,1,0,0,0,0,29,1,240,0,0,0,0,10,84028,3513,0,0,0,0,0,0,'Pat - On Data Set 1 0 - Set Follow'), +(3507,0,0,0,38,0,100,0,1,0,0,0,0,29,1,220,0,0,0,0,10,84028,3513,0,0,0,0,0,0,'Andi - On Data Set 1 0 - Set Follow'), +(3508,0,0,0,38,0,100,0,1,0,0,0,0,29,1,160,0,0,0,0,10,84028,3513,0,0,0,0,0,0,'Mikey - On Data Set 1 0 - Set Follow'), +(3509,0,0,0,38,0,100,0,1,0,0,0,0,29,1,120,0,0,0,0,10,84028,3513,0,0,0,0,0,0,'Geoff - On Data Set 1 0 - Set Follow'), +(3510,0,0,0,38,0,100,0,1,0,0,0,0,29,1,200,0,0,0,0,10,84028,3513,0,0,0,0,0,0,'Twain - On Data Set 1 0 - Set Follow'), +(3511,0,0,0,38,0,100,0,1,0,0,0,0,29,1,180,0,0,0,0,10,84028,3513,0,0,0,0,0,0,'Steven - On Data Set 1 0 - Set Follow'), +(3511,0,1,0,38,0,100,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Steven - On Data Set 1 1 - Say 0 0'), +(3512,0,0,0,38,0,100,0,1,0,0,0,0,29,1,140,0,0,0,0,10,84028,3513,0,0,0,0,0,0,'Jimmy - On Data Set 1 0 - Set Follow'), +(3512,0,1,0,38,0,100,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Jimmy - On Data Set 1 1 - Say 0 0'), +(3513,0,0,0,40,0,100,0,21,3513,0,0,0,80,351300,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Waypoint 21 Reached - Run Script'), +(3513,0,1,0,40,0,100,0,37,3513,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Waypoint 37 Reached - Say 1 0'), +(3513,0,2,0,40,0,100,0,38,3513,0,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Waypoint 38 Reached - Say 4 0'), +(3513,0,3,0,40,0,100,0,39,3513,0,0,0,80,351301,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Waypoint 39 Reached - Run Script'), +(3513,0,4,0,40,0,100,0,53,3513,0,0,0,1,6,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Waypoint 53 Reached - Say 6 0'), +(3513,0,5,0,40,0,100,0,54,3513,0,0,0,1,7,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Waypoint 54 Reached - Say 7 0'), +(3513,0,6,0,40,0,100,0,55,3513,0,0,0,80,351302,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Waypoint 55 Reached - Run Script'), +(3513,0,7,8,1,0,100,1,25000,25000,0,0,0,53,0,3513,1,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - OOC (No Repeat) - Start Waypoint'), +(3513,0,8,9,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,87082,3512,0,0,0,0,0,0,'Miss Danna - Linked - Set Data 1 0 \'Jimmy\''), +(3513,0,9,10,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,87089,3511,0,0,0,0,0,0,'Miss Danna - Linked - Set Data 1 0 \'Steven\''), +(3513,0,10,11,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,87090,3510,0,0,0,0,0,0,'Miss Danna - Linked - Set Data 1 0 \'Twain\''), +(3513,0,11,12,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,87023,3509,0,0,0,0,0,0,'Miss Danna - Linked - Set Data 1 0 \'Geoff\''), +(3513,0,12,13,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,87088,3508,0,0,0,0,0,0,'Miss Danna - Linked - Set Data 1 0 \'Mikey\''), +(3513,0,13,14,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,87091,3507,0,0,0,0,0,0,'Miss Danna - Linked - Set Data 1 0 \'Andi\''), +(3513,0,14,0,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,87092,3505,0,0,0,0,0,0,'Miss Danna - Linked - Set Data 1 0 \'Pat\''), +(3513,0,15,0,40,0,100,0,11,3513,0,0,0,54,1500,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Waypoint 11 Reached - Pause Waypoint'), + +(351300,9,0,0,0,0,100,0,0,0,0,0,0,54,44000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Pause Waypoint'), +(351300,9,1,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0.663,'Miss Danna - On Script - Set Orientation'), +(351300,9,2,0,0,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Say 0 0'), +(351300,9,3,0,0,0,100,0,11000,11000,0,0,0,5,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Emote Talk'), +(351300,9,4,0,0,0,100,0,10000,10000,0,0,0,45,1,1,0,0,0,0,10,87082,3512,0,0,0,0,0,0,'Miss Danna - On Script - Set Data 1 1 \'Jimmy\''), +(351300,9,5,0,0,0,100,0,8000,8000,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Say 2 0'), +(351300,9,6,0,0,0,100,0,11000,11000,0,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Say 3 0'), + +(351301,9,0,0,0,0,100,0,0,0,0,0,0,54,45000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Pause Waypoint'), +(351301,9,1,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,5.433,'Miss Danna - On Script - Set Orientation'), +(351301,9,2,0,0,0,100,0,0,0,0,0,0,5,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Emote Talk'), +(351301,9,3,0,0,0,100,0,16000,16000,0,0,0,45,1,1,0,0,0,0,10,87089,3511,0,0,0,0,0,0,'Miss Danna - On Script - Set Data 1 1 \'Steven\''), +(351301,9,4,0,0,0,100,0,10000,10000,0,0,0,1,5,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Say 5 0'), +(351301,9,5,0,0,0,100,0,18000,18000,0,0,0,5,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Emote Talk'), + +(351302,9,0,0,0,0,100,0,0,0,0,0,0,54,19000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Pause Waypoint'), +(351302,9,1,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,3.589,'Miss Danna - On Script - Set Orientation'), +(351302,9,2,0,0,0,100,0,0,0,0,0,0,1,8,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Say 8 0'), +(351302,9,3,0,0,0,100,0,9000,9000,0,0,0,5,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Emote Talk'), +(351302,9,4,0,0,0,100,0,8000,8000,0,0,0,5,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Miss Danna - On Script - Emote Talk'); + +-- Miss Danna Waypoints +DELETE FROM `waypoints` WHERE `entry` = 3513; +INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`point_comment`) VALUES +(3513,1,-8824.65,677.359,97.6724,0,0,'Miss Danna'), +(3513,2,-8844.06,721.315,97.3127,0,0,'Miss Danna'), +(3513,3,-8794.66,745.738,97.8358,0,0,'Miss Danna'), +(3513,4,-8765.71,737.339,98.9571,0,0,'Miss Danna'), +(3513,5,-8744.1,711.742,98.1589,0,0,'Miss Danna'), +(3513,6,-8736.13,717.57,101.035,0,0,'Miss Danna'), +(3513,7,-8714.09,735.726,97.8129,0,0,'Miss Danna'), +(3513,8,-8698.83,714.642,97.0168,0,0,'Miss Danna'), +(3513,9,-8657.55,748.029,96.6892,0,0,'Miss Danna'), +(3513,10,-8658.68,767.899,96.6925,0,0,'Miss Danna'), +(3513,11,-8634.49,787.411,96.6512,0,0,'Miss Danna'), +(3513,12,-8662.17,821.239,96.6386,0,0,'Miss Danna'), +(3513,13,-8653.53,826.735,96.5285,0,0,'Miss Danna'), +(3513,14,-8608.62,861.791,96.6798,0,0,'Miss Danna'), +(3513,15,-8600.32,850.058,96.6911,0,0,'Miss Danna'), +(3513,16,-8616.11,837.915,96.7385,0,0,'Miss Danna'), +(3513,17,-8637.49,816.942,96.6393,0,0,'Miss Danna'), +(3513,18,-8629.56,781.904,96.6514,0,0,'Miss Danna'), +(3513,19,-8623.89,774.974,96.6518,0,0,'Miss Danna'), +(3513,20,-8623.29,775.529,96.6512,0,0,'Miss Danna'), +(3513,21,-8621.904,776.592,96.6512,0,0,'Miss Danna'), +(3513,22,-8594.06,757.656,96.6537,0,0,'Miss Danna'), +(3513,23,-8578.89,737.947,96.6719,0,0,'Miss Danna'), +(3513,24,-8596.77,717.424,96.6572,0,0,'Miss Danna'), +(3513,25,-8562.25,673.301,97.0168,0,0,'Miss Danna'), +(3513,26,-8536.52,690.402,97.6668,0,0,'Miss Danna'), +(3513,27,-8532.456,688.688,97.657,0,0,'Miss Danna'), +(3513,28,-8528.005,682.699,99.567,0,0,'Miss Danna'), +(3513,29,-8522.24,670.618,102.794,0,0,'Miss Danna'), +(3513,30,-8508.77,650.151,100.292,0,0,'Miss Danna'), +(3513,31,-8557.68,615.023,102.352,0,0,'Miss Danna'), +(3513,32,-8568.14,613.353,102.382,0,0,'Miss Danna'), +(3513,33,-8581.15,593.053,103.562,0,0,'Miss Danna'), +(3513,34,-8585.6,562.85,101.927,0,0,'Miss Danna'), +(3513,35,-8573.45,540.833,101.757,0,0,'Miss Danna'), +(3513,36,-8535.68,488.072,101.081,0,0,'Miss Danna'), +(3513,37,-8538.69,479.398,102.572,0,0,'Miss Danna'), +(3513,38,-8548.29,467.484,104.514,0,0,'Miss Danna'), +(3513,39,-8544.94,464.148,104.414,0,0,'Miss Danna'), +(3513,40,-8564.17,466.02,104.524,0,0,'Miss Danna'), +(3513,41,-8583.28,480.99,104.214,0,0,'Miss Danna'), +(3513,42,-8606.08,504.922,103.722,0,0,'Miss Danna'), +(3513,43,-8633.15,534.792,100.272,0,0,'Miss Danna'), +(3513,44,-8655.92,552.797,96.9437,0,0,'Miss Danna'), +(3513,45,-8671.53,554.116,97.1805,0,0,'Miss Danna'), +(3513,46,-8713.5,519.816,97.1699,0,0,'Miss Danna'), +(3513,47,-8731.17,541.957,101.124,0,0,'Miss Danna'), +(3513,48,-8749.98,561.766,97.3988,0,0,'Miss Danna'), +(3513,49,-8736.87,574.559,97.3823,0,0,'Miss Danna'), +(3513,50,-8770.53,609.421,97.2463,0,0,'Miss Danna'), +(3513,51,-8795.9,587.923,97.3792,0,0,'Miss Danna'), +(3513,52,-8827.8,624.687,93.8494,0,0,'Miss Danna'), +(3513,53,-8928.94,540.519,94.3157,0,0,'Miss Danna'), +(3513,54,-8907.67,509.135,93.8416,0,0,'Miss Danna'), +(3513,55,-8933.21,488.088,93.8429,0,0,'Miss Danna'), +(3513,56,-8911.65,505.615,93.8585,0,0,'Miss Danna'), +(3513,57,-8925.24,543.334,94.268,0,0,'Miss Danna'), +(3513,58,-8833.34,620.843,93.4683,0,0,'Miss Danna'), +(3513,59,-8854.67,660.036,96.8874,0,0,'Miss Danna'), +(3513,60,-8838.52,670.28,98.0987,0,0,'Miss Danna'); + +-- ---------------------------------------End Miss Danna and students------------------------------------------------------ +-- ---------------------------------------Donna and William---------------------------------------------------------------- + +DELETE FROM `creature_formations` WHERE `leaderGUID` = 79720; +INSERT INTO `creature_formations` (`leaderGUID`,`memberGUID`,`dist`,`angle`,`groupAI`,`point_1`,`point_2`) VALUES +(79720,79721,3,180,515,0,0), +(79720,79720,0,0,515,0,0); + +DELETE FROM `waypoint_data` WHERE `id` = 797200; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(797200,1,-8731.58,541.932,101.111,0,0,1,0,100,0), +(797200,2,-8720.52,529.999,99.3708,0,0,1,0,100,0), +(797200,3,-8716.57,522.528,97.612,0,0,1,0,100,0), +(797200,4,-8710.38,522.662,97.4771,0,0,1,0,100,0), +(797200,5,-8703.03,528.912,97.669,0,0,1,0,100,0), +(797200,6,-8685.83,539.951,97.7841,0,0,1,0,100,0), +(797200,7,-8679.19,551.407,97.4845,0,0,1,0,100,0), +(797200,8,-8663.87,554.612,96.8751,0,0,1,0,100,0), +(797200,9,-8651.75,548.373,96.9836,0,0,1,0,100,0), +(797200,10,-8638.92,537.941,99.4104,0,0,1,0,100,0), +(797200,11,-8629.57,534.889,100.717,0,0,1,0,100,0), +(797200,12,-8616.79,517.027,103.246,0,0,1,0,100,0), +(797200,13,-8610.89,516.332,103.775,0,0,1,0,100,0), +(797200,14,-8600.68,525.372,106.517,0,0,1,0,100,0), +(797200,15,-8582.68,540.197,102.279,0,0,1,0,100,0), +(797200,16,-8582.6,557.728,101.851,0,0,1,0,100,0), +(797200,17,-8588.54,571.377,102.515,0,0,1,0,100,0), +(797200,18,-8582.75,582.445,103.492,0,0,1,0,100,0), +(797200,19,-8581.09,596.986,103.326,0,0,1,0,100,0), +(797200,20,-8572.61,609.681,102.628,0,0,1,0,100,0), +(797200,21,-8554.31,617.579,102.079,0,0,1,0,100,0), +(797200,22,-8547.34,628.095,100.969,0,0,1,0,100,0), +(797200,23,-8524.76,636.519,99.995,0,0,1,0,100,0), +(797200,24,-8514.57,643.758,100.198,0,0,1,0,100,0), +(797200,25,-8512.06,652.878,100.291,0,0,1,0,100,0), +(797200,26,-8521.83,666.528,102.661,0,0,1,0,100,0), +(797200,27,-8527.96,675.59,101.776,0,0,1,0,100,0), +(797200,28,-8544.53,685.475,97.5076,0,0,1,0,100,0), +(797200,29,-8564.66,672.461,97.0156,0,0,1,0,100,0), +(797200,30,-8573.9,661.108,97.5108,0,0,1,0,100,0), +(797200,31,-8592.18,657.221,98.1965,0,0,1,0,100,0), +(797200,32,-8604.52,656.575,98.7059,0,0,1,0,100,0), +(797200,33,-8620.36,652.313,99.1877,0,0,1,0,100,0), +(797200,34,-8644.6,658.89,101.207,0,0,1,0,100,0), +(797200,35,-8655.94,660.699,100.858,0,0,1,0,100,0), +(797200,36,-8668.29,676.294,99.6044,0,0,1,0,100,0), +(797200,37,-8671.98,683.76,98.8546,0,0,1,0,100,0), +(797200,38,-8705.22,725.675,97.1356,0,0,1,0,100,0), +(797200,39,-8714.54,732.607,97.8152,0,0,1,0,100,0), +(797200,40,-8729.44,723.121,101.552,0,0,1,0,100,0), +(797200,41,-8742.16,710.686,98.2678,0,0,1,0,100,0), +(797200,42,-8738.48,700.884,98.718,0,0,1,0,100,0), +(797200,43,-8752.58,688.263,100.448,0,0,1,0,100,0), +(797200,44,-8773.14,671.75,103.092,0,0,1,0,100,0), +(797200,45,-8774.24,667.734,103.092,0,0,1,0,100,0), +(797200,46,-8762.72,649.633,103.733,0,0,1,0,100,0), +(797200,47,-8759.08,635.326,102.912,0,0,1,0,100,0), +(797200,48,-8758.8,629.108,102.25,0,0,1,0,100,0), +(797200,49,-8761.79,618.03,99.275,0,0,1,0,100,0), +(797200,50,-8792.64,593.169,97.6035,0,0,1,0,100,0), +(797200,51,-8801.18,592.338,97.3394,0,0,1,0,100,0), +(797200,52,-8816.1,613.304,95.2455,0,0,1,0,100,0), +(797200,53,-8828.86,627.785,94.0444,0,0,1,0,100,0), +(797200,54,-8826.57,637.878,94.243,0,0,1,0,100,0), +(797200,55,-8818.02,645.358,94.2658,0,0,1,0,100,0), +(797200,56,-8811.9,638.996,94.2287,0,0,1,0,100,0), +(797200,57,-8812.1,630.047,94.2287,0,0,1,0,100,0), +(797200,58,-8824.53,623.322,93.8413,0,0,1,0,100,0), +(797200,59,-8837.91,642.898,95.4907,0,0,1,0,100,0), +(797200,60,-8851.59,652.393,96.44,0,0,1,0,100,0), +(797200,61,-8847.92,662.602,97.4256,0,0,1,0,100,0), +(797200,62,-8830.06,673.308,98.2819,0,0,1,0,100,0), +(797200,63,-8826.73,680.102,97.2982,0,0,1,0,100,0), +(797200,64,-8833.85,697.773,97.5546,0,0,1,0,100,0), +(797200,65,-8840.86,711.403,97.5683,0,0,1,0,100,0), +(797200,66,-8840.99,722.775,97.3683,0,0,1,0,100,0), +(797200,67,-8826.64,729.331,98.4387,0,0,1,0,100,0), +(797200,68,-8816.81,738.407,97.9223,0,0,1,0,100,0), +(797200,69,-8793.3,743.694,98.3306,0,0,1,0,100,0), +(797200,70,-8768.96,740.105,99.1632,0,0,1,0,100,0), +(797200,71,-8759.32,727.137,98.2857,0,0,1,0,100,0), +(797200,72,-8731.58,697.112,98.6319,0,0,1,0,100,0), +(797200,73,-8730.4,687.347,98.7743,0,0,1,0,100,0), +(797200,74,-8723.18,673.754,98.6213,0,0,1,0,100,0), +(797200,75,-8714.73,664.722,98.9638,0,0,1,0,100,0), +(797200,76,-8706.44,635.994,100.299,0,0,1,0,100,0), +(797200,77,-8705.95,611.391,99.9666,0,0,1,0,100,0), +(797200,78,-8711.1,594.366,98.6165,0,0,1,0,100,0), +(797200,79,-8720.06,591.749,98.5704,0,0,1,0,100,0), +(797200,80,-8734.96,576.142,97.4009,0,0,1,0,100,0), +(797200,81,-8743.7,570.146,97.382,0,0,1,0,100,0), +(797200,82,-8747.05,560.624,97.4024,0,0,1,0,100,0); + +-- -----------------------------------------------------------End Donna and William---------------------------------------------------------------- +-- -----------------------------------------------------------Janey, Suzanne, and Lisan------------------------------------------------------------- + +UPDATE `creature` SET `MovementType` = 0 WHERE `guid` in (86596,89294,86597); +UPDATE `creature_addon` SET `path_id` = 0 WHERE `guid` in (86596,89294,86597); +UPDATE `creature_template` SET `AIName` = "SmartAI" WHERE `entry` in (1413,1414,1415); + +DELETE FROM `smart_scripts` WHERE `entryorguid` in (1413,1414,1415,141300,141500); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(1414,0,0,0,38,0,100,0,1,0,0,0,0,29,1,200,0,0,0,0,10,86596,1413,0,0,0,0,0,0,'Lisan Pierce - On Data Set 1 0 - Set Follow'), +(1414,0,1,0,38,0,100,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Lisan Pierce - On Data Set 1 1 - Say Random 0'), +(1414,0,2,0,38,0,100,0,1,2,0,0,0,90,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Lisan Pierce - On Data Set 1 2 - Set UNIT_STAND_STATE_SIT'), +(1414,0,3,0,38,0,100,0,1,3,0,0,0,91,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Lisan Pierce - On Data Set 1 3 - Remove UNIT_STAND_STATE_SIT'), +(1414,0,4,0,38,0,100,0,1,4,0,0,0,69,0,0,0,0,0,0,1,0,0,0,0,-8989.59,858.133,105.605,3.46022,'Lisan Pierce - On Data Set 1 5 - Move to POS'), + +(1415,0,0,0,38,0,100,0,1,0,0,0,0,29,0,160,0,0,0,0,10,86596,1413,0,0,0,0,0,0,'Suzanne - On Data Set 1 0 - Set Follow'), +(1415,0,1,0,38,0,100,0,1,2,0,0,0,90,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Suzanne - On Data Set 1 2 - Set UNIT_STAND_STATE_SIT'), +(1415,0,2,0,38,0,100,0,1,3,0,0,0,91,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Suzanne - On Data Set 1 3 - Remove UNIT_STAND_STATE_SIT'), +(1415,0,3,0,38,0,100,0,1,4,0,0,0,69,0,0,0,0,0,0,1,0,0,0,0,-8992.66,856.234,105.775,0.595873,'Suzanne - On Data Set 1 5 - Move to POS'), +(1415,0,4,0,1,0,100,0,35000,35000,60000,120000,0,80,141500,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Suzanne - OOC - Run Script'), + +(1413,0,0,1,1,0,100,1,20000,20000,0,0,0,53,0,1413,1,0,0,0,1,0,0,0,0,0,0,0,0,'Janey Anship - OOC (No Repeat) - Start Waypoint'), +(1413,0,1,2,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,86597,1414,0,0,0,0,0,0,'Janey Anship - Linked - Set Data 1 0 \'Lisan Pierce\''), +(1413,0,2,0,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,89294,1415,0,0,0,0,0,0,'Janey Anship - Linked - Set Data 1 0 \'Suzanne\''), +(1413,0,3,0,40,0,100,0,56,1413,0,0,0,80,141300,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Janey Anship - On Waypoint 56 Reached - Run Script'), +(1413,0,4,0,38,0,100,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Janey Anship - On Data Set 1 1 - Say Random 0'), + +(141500,9,0,0,0,0,100,0,0,0,0,0,0,45,1,1,0,0,0,0,10,86596,1413,0,0,0,0,0,0,'Suzanne - On Script - Set Data 1 1 \'Janey Anship\''), +(141500,9,1,0,0,0,100,0,14000,15000,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Suzanne - On Script - Say 0 0'), +(141500,9,2,0,0,0,100,0,14000,15000,0,0,0,45,1,1,0,0,0,0,10,86597,1414,0,0,0,0,0,0,'Suzanne - On Script - Set Data 1 1 \'Lisan Pierce\''), + +(141300,9,0,0,0,0,100,0,0,0,0,0,0,54,310000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Janey Anship - On Script - Pause Waypoint'), +(141300,9,1,0,0,0,100,0,2000,2000,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,5.06,'Janey Anship - On Script - Set Orientation'), +(141300,9,2,0,0,0,100,0,1000,1000,0,0,0,45,1,4,0,0,0,0,10,86597,1414,0,0,0,0,0,0,'Janey Anship - On Script - Set Data 1 4 \'Lisan Pierce\''), +(141300,9,3,0,0,0,100,0,0,0,0,0,0,45,1,4,0,0,0,0,10,89294,1415,0,0,0,0,0,0,'Janey Anship - On Script - Set Data 1 4 \'Suzanne\''), +(141300,9,4,0,0,0,100,0,1000,1000,0,0,0,90,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Janey Anship - On Script - Set UNIT_STAND_STATE_SIT'), +(141300,9,5,0,0,0,100,0,1000,2000,0,0,0,45,1,2,0,0,0,0,10,86597,1414,0,0,0,0,0,0,'Janey Anship - On Script - Set Data 1 2 \'Lisan Pierce\''), +(141300,9,6,0,0,0,100,0,1000,2000,0,0,0,45,1,2,0,0,0,0,10,89294,1415,0,0,0,0,0,0,'Janey Anship - On Script - Set Data 1 2 \'Suzanne\''), +(141300,9,7,0,0,0,100,0,240000,290000,0,0,0,5,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Janey Anship - On Script - Emote Talk'), +(141300,9,8,0,0,0,100,0,1000,1000,0,0,0,91,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Janey Anship - On Script - Remove UNIT_STAND_STATE_SIT'), +(141300,9,9,0,0,0,100,0,2000,2000,0,0,0,45,1,3,0,0,0,0,10,86597,1414,0,0,0,0,0,0,'Janey Anship - On Script - Set Data 1 3 \'Lisan Pierce\''), +(141300,9,10,0,0,0,100,0,2000,3000,0,0,0,45,1,3,0,0,0,0,10,89294,1415,0,0,0,0,0,0,'Janey Anship - On Script - Set Data 1 3 \'Suzanne\''), +(141300,9,11,0,0,0,100,0,2000,2000,0,0,0,65,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Janey Anship - On Script - Resume Waypoint'), +(141300,9,12,0,0,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,89294,1415,0,0,0,0,0,0,'Janey Anship - On Script - Set Data 1 0 \'Suzanne\''), +(141300,9,13,0,0,0,100,0,1000,1000,0,0,0,45,1,0,0,0,0,0,10,86597,1414,0,0,0,0,0,0,'Janey Anship - On Script - Set Data 1 0 \'Lisan Pierce\''); + +DELETE FROM `creature_text` WHERE `CreatureID` in (1413,1414,1415); +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(1413,0,0,'If we reverse the Essence flows perhaps we can alter the polarity.',12,7,100,1,0,0,201,0,'Janey Anship - Talk'), +(1413,0,1,'So then the array of magics would cascade into a chain reaction of positively charged energies.',12,7,100,1,0,0,203,0,'Janey Anship - Talk'), +(1413,0,2,'The portal will shift slightly, at this point if you cast a binding cantrip you will solidify it in place.',12,7,100,1,0,0,204,0,'Janey Anship - Talk'), +(1413,0,3,'When the positively aligned energies collide with the negatively charged energies, they don\'t negate one another.',12,7,100,1,0,0,205,0,'Janey Anship - Talk'), +(1413,0,4,'Maginor says that twisting alternating flows of positive energy actually creates a much more stable flow.',12,7,100,1,0,0,206,0,'Janey Anship - Talk'), +(1413,0,5,'The magical wards at that point should be supported enough by the energy flux to contain the entity.',12,7,100,1,0,0,207,0,'Janey Anship - Talk'), +(1413,0,6,'Why can\'t we just shift the array to compensate for the variance in the flux?',12,7,100,1,0,0,208,0,'Janey Anship - Talk'), +(1413,0,7,'Putting in twelve centers of focus might allow the magical energies to form more solidly, adding the necessary stability.',12,7,100,1,0,0,209,0,'Janey Anship - Talk'), + +(1414,0,0,'But what if the resulting frequency shift were to send magical feedback up the flows?',12,7,100,1,0,0,210,0,'Lisan Pierce - Talk'), +(1414,0,1,'Wouldn\'t that cause the weave to unravel if not properly anchored before starting the casting?',12,7,100,1,0,0,211,0,'Lisan Pierce - Talk'), +(1414,0,2,'But wouldn\'t that mean crossing the streams? Isn\'t that really bad?',12,7,100,1,0,0,212,0,'Lisan Pierce - Talk'), +(1414,0,3,'The resultant energies could collapse though, and that could cause an energy flux that would give you a migraine for weeks.',12,7,100,1,0,0,213,0,'Lisan Pierce - Talk'), +(1414,0,4,'But isn\'t that what caused the initial problems with Adept Syleria\'s magical formulae?',12,7,100,1,0,0,214,0,'Lisan Pierce - Talk'), +(1414,0,5,'I think not, I don\'t need to be blown up again.',12,7,100,1,0,0,215,0,'Lisan Pierce - Talk'), +(1414,0,6,'That will unbalance the magical focus, though, and cause a reverse vibration in the ether.',12,7,100,1,0,0,216,0,'Lisan Pierce - Talk'), +(1414,0,7,'I suppose that could work, if we had twenty people to cast it with.',12,7,100,1,0,0,217,0,'Lisan Pierce - Talk'), + +(1415,0,0,'What if we used three focuses in Tyrean pattern? That should solve it.',12,7,100,1,0,0,218,0,'Suzanne - Talk'), +(1415,0,1,'But if we stabilize it with an anchor thread at the appropriate energy crux then it should work.',12,7,100,1,0,0,219,0,'Suzanne - Talk'), +(1415,0,2,'Always so negative. The chances of that happening are between zero and none.',12,7,100,1,0,0,220,0,'Suzanne - Talk'), +(1415,0,3,'If we use the appropriate sequence we should be ok. Will just take some serious studying before we start.',12,7,100,1,0,0,221,0,'Suzanne - Talk'), +(1415,0,4,'Wow, all of this for a love potion. Hope he\'s worth it.',12,7,100,1,0,0,222,0,'Suzanne - Talk'), +(1415,0,5,'If we use the Surian theory, then yes, but not if we go with the Y\'serian approach.',12,7,100,1,0,0,223,0,'Suzanne - Talk'), +(1415,0,6,'At least we wouldn\'t be around to have to clean it up.',12,7,100,1,0,0,224,0,'Suzanne - Talk'), +(1415,0,7,'Only if we didn\'t follow the proper initialization procedures.',12,7,100,1,0,0,225,0,'Suzanne - Talk'); + +DELETE FROM `waypoint_scripts` WHERE `id` >= 385 and `id` <= 426 and `id` not in (413,414,415); +DELETE FROM `waypoint_data` WHERE `id` in (865960,892940,865970); + +DELETE FROM `waypoints` WHERE `entry` = 1413; +INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`point_comment`) VALUES +(1413,1,-8953.9,862.547,104.957,0,0,'Janey Anship'), +(1413,2,-8932.12,857.927,100.803,0,0,'Janey Anship'), +(1413,3,-8909.04,850.187,96.281,0,0,'Janey Anship'), +(1413,4,-8896.57,865.822,96.8556,0,0,'Janey Anship'), +(1413,5,-8890.18,881.888,101.184,0,0,'Janey Anship'), +(1413,6,-8888.17,893.701,104.619,0,0,'Janey Anship'), +(1413,7,-8890.076,901.395,107.355,0,0,'Janey Anship'), +(1413,8,-8890.792,903.77,107.813,0,0,'Janey Anship'), +(1413,9,-8894.17,909.79,110.395,0,0,'Janey Anship'), +(1413,10,-8890.685,911.816,110.63,0,0,'Janey Anship'), +(1413,11,-8870.31,923.272,105.91,0,0,'Janey Anship'), +(1413,12,-8855.94,931.187,101.845,0,0,'Janey Anship'), +(1413,13,-8843.91,933.491,104.097,0,0,'Janey Anship'), +(1413,14,-8835.285,938.716,105.319,0,0,'Janey Anship'), +(1413,15,-8824.983,946.589,102.938,0,0,'Janey Anship'), +(1413,16,-8816.65,953.442,100.743,0,0,'Janey Anship'), +(1413,17,-8767.52,895.508,101.256,0,0,'Janey Anship'), +(1413,18,-8753.45,892,101.896,0,0,'Janey Anship'), +(1413,19,-8740.3,893.588,101.375,0,0,'Janey Anship'), +(1413,20,-8726.64,877.216,102.712,0,0,'Janey Anship'), +(1413,21,-8719.896,868.748,101.591,0,0,'Janey Anship'), +(1413,22,-8711.78,859.391,96.9622,0,0,'Janey Anship'), +(1413,23,-8714.17,851.672,96.7801,0,0,'Janey Anship'), +(1413,24,-8724.59,835.118,96.1396,0,0,'Janey Anship'), +(1413,25,-8727.53,820.133,97.0495,0,0,'Janey Anship'), +(1413,26,-8723.35,807.987,97.2959,0,0,'Janey Anship'), +(1413,27,-8717.8,795.688,96.9682,0,0,'Janey Anship'), +(1413,28,-8720.86,784.235,97.7513,0,0,'Janey Anship'), +(1413,29,-8730.39,769.812,98.1267,0,0,'Janey Anship'), +(1413,30,-8729.96,761.621,98.2494,0,0,'Janey Anship'), +(1413,31,-8726.06,753.976,98.2668,0,0,'Janey Anship'), +(1413,32,-8714.42,737.952,97.8087,0,0,'Janey Anship'), +(1413,33,-8728.74,725.086,101.267,0,0,'Janey Anship'), +(1413,34,-8738.14,715.533,100.152,0,0,'Janey Anship'), +(1413,35,-8742.74,709.527,98.3091,0,0,'Janey Anship'), +(1413,36,-8737.21,700.627,98.6984,0,0,'Janey Anship'), +(1413,37,-8776.23,670.457,103.093,0,0,'Janey Anship'), +(1413,38,-8760.45,646.994,103.883,0,0,'Janey Anship'), +(1413,39,-8759.11,627.771,101.892,0,0,'Janey Anship'), +(1413,40,-8763.21,616.245,98.6119,0,0,'Janey Anship'), +(1413,41,-8779.99,602.334,97.3893,0,0,'Janey Anship'), +(1413,42,-8793.37,590.39,97.5755,0,0,'Janey Anship'), +(1413,43,-8817.337,614.697,95.094,0,0,'Janey Anship'), +(1413,44,-8849.81,659.507,97.1312,0,0,'Janey Anship'), +(1413,45,-8834.43,672.377,98.2964,0,0,'Janey Anship'), +(1413,46,-8825.5,677.093,97.6638,0,0,'Janey Anship'), +(1413,47,-8838.31,708.928,97.6485,0,0,'Janey Anship'), +(1413,48,-8851.32,736.847,100.505,0,0,'Janey Anship'), +(1413,49,-8870.66,759.965,96.6871,0,0,'Janey Anship'), +(1413,50,-8880.96,756.982,96.1098,0,0,'Janey Anship'), +(1413,51,-8909.67,790.199,87.4738,0,0,'Janey Anship'), +(1413,52,-8918.12,784.468,87.4199,0,0,'Janey Anship'), +(1413,53,-8930.34,773.156,87.9818,0,0,'Janey Anship'), +(1413,54,-8961.17,770.851,93.8524,0,0,'Janey Anship'), +(1413,55,-8980.98,783.189,98.0365,0,0,'Janey Anship'), +(1413,56,-8990.43,800.731,102.354,0,0,'Janey Anship'), +(1413,57,-8994.98,823.243,104.806,0,0,'Janey Anship'), +(1413,58,-8990.49,849.74,105.812,0,0,'Janey Anship'), +(1413,59,-8992.48,859.067,105.647,0,0,'Janey Anship'); + +-- ---------------------------------------------------------------End Janey, Suzanne, and Lisan---------------------------------------------------------------------- +-- ---------------------------------------------------------------Orphanage----------------------------------------------------------------------------------------- + +-- Matron Nightingale is always shown - Not event specific +DELETE FROM `game_event_creature` WHERE `eventEntry` = 10 and `guid` = 79806; + +-- Shellene +UPDATE `creature_template` SET `AIName` = "SmartAI" WHERE `entry` = 14497; +DELETE FROM `smart_scripts` WHERE `entryorguid` in (14497); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(14497,0,0,0,1,0,100,0,30000,30000,160000,240000,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Shellene - OOC - Say Random 0'); + +-- Orphans +UPDATE `creature` SET `wander_distance` = 3 WHERE `guid` = 79813; +UPDATE `creature` SET `position_x` = -8614.1933, `position_y` = 739.778, `position_z` = 101.902, `orientation` = 0.55, `MovementType` = 2, `wander_distance` = 0 WHERE `guid` = 79812; + +DELETE FROM `creature_addon` WHERE `guid` in (79803,79804,79812); +INSERT INTO `creature_addon` (`guid`,`path_id`,`mount`,`bytes1`,`bytes2`,`emote`,`visibilityDistanceType`,`auras`) VALUES +(79803,0,0,0,0,0,0,NULL), +(79804,0,0,0,0,0,0,NULL), +(79812,798120,0,0,0,0,0,NULL); + +DELETE FROM `creature_formations` WHERE `leaderGUID` = 79812; +INSERT INTO `creature_formations` (`leaderGUID`,`memberGUID`,`dist`,`angle`,`groupAI`,`point_1`,`point_2`) VALUES +(79812,79804,2,190,515,0,0), +(79812,79803,1,160,515,0,0), +(79812,79812,0,0,515,0,0); + +DELETE FROM `waypoint_data` WHERE `id` = 798120; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(798120,1,-8611.855,741.819,101.902,0,0,1,0,100,0), +(798120,2,-8607.328,736.029,101.902,0,0,1,0,100,0), +(798120,3,-8607.453,731.481,101.906,0,0,1,0,100,0), +(798120,4,-8611.104,730.951,101.904,0,0,1,0,100,0), +(798120,5,-8611.386,732.98,101.902,0,0,1,0,100,0), +(798120,6,-8601.168,740.864,101.948,0,0,1,0,100,0), +(798120,7,-8597.565,740.674,101.904,0,0,1,0,100,0), +(798120,8,-8598.909,736.516,101.904,0,0,1,0,100,0), +(798120,9,-8601.760,733.618,101.904,0,0,1,0,100,0), +(798120,10,-8602.194,730.622,101.904,0,0,1,0,100,0), +(798120,11,-8605.554,727.392,101.904,0,0,1,0,100,0), +(798120,12,-8614.076,727.354,101.904,0,0,1,0,100,0), +(798120,13,-8617.707,733.004,101.896,0,0,1,0,100,0), +(798120,14,-8614.648,735.352,101.901,0,1000,1,0,100,0), +(798120,15,-8611.297,733.998,101.899,0,0,1,0,100,0), +(798120,16,-8610.278,727.638,101.904,0,0,1,0,100,0), +(798120,17,-8603.662,730.019,101.904,0,0,1,0,100,0), +(798120,18,-8601.92,730.248,101.904,0,0,1,0,100,0), +(798120,19,-8602.384,740.663,101.904,0,0,1,0,100,0), +(798120,20,-8598.212,741.582,101.904,0,0,1,0,100,0), +(798120,21,-8596.861,738.872,101.904,0,0,1,0,100,0), +(798120,22,-8603.715,733.69,101.903,0,0,1,0,100,0), +(798120,23,-8611.728,734.924,101.896,0,0,1,0,100,0), +(798120,24,-8613.419,737.851,101.901,0,0,1,0,100,0), +(798120,25,-8611.855,741.819,101.902,0,0,1,0,100,0), +(798120,26,-8614.002,744.876,101.626,0,0,1,0,100,0), +(798120,27,-8618.105,749.692,96.723,0,0,1,0,100,0), +(798120,28,-8615.264,754.488,96.688,0,0,1,0,100,0), +(798120,29,-8610.971,756.185,96.77,0,0,1,0,100,0), +(798120,30,-8604.835,754.705,96.784,0,0,1,0,100,0), +(798120,31,-8599.902,756.884,96.792,0,0,1,0,100,0), +(798120,32,-8601.771,761.891,96.723,0,0,1,0,100,0), +(798120,33,-8607.014,764.106,96.718,0,0,1,0,100,0), +(798120,34,-8610.498,760.02,96.736,0,0,1,0,100,0), +(798120,35,-8612.114,753.82,96.729,0,0,1,0,100,0), +(798120,36,-8609.295,752.037,96.765,0,0,1,0,100,0), +(798120,37,-8607.304,752.856,96.786,0,0,1,0,100,0), +(798120,38,-8605.813,756.485,96.769,0,0,1,0,100,0), +(798120,39,-8607.552,759.231,96.745,0,0,1,0,100,0), +(798120,40,-8612.130,758.924,96.751,0,0,1,0,100,0), +(798120,41,-8616.762,757.048,96.684,0,0,1,0,100,0), +(798120,42,-8625.063,751.401,96.777,0,0,1,0,100,0), +(798120,43,-8623.744,744.051,96.771,0,0,1,0,100,0), +(798120,44,-8624.977,739.424,96.777,0,0,1,0,100,0), +(798120,45,-8630.463,736.526,96.835,0,0,1,0,100,0), +(798120,46,-8634.493,736.914,96.768,0,0,1,0,100,0), +(798120,47,-8635.064,740.133,96.936,0,0,1,0,100,0), +(798120,48,-8632.448,744.383,96.891,0,0,1,0,100,0), +(798120,49,-8627.866,747.073,96.806,0,0,1,0,100,0), +(798120,50,-8624.17,748.017,96.793,0,0,1,0,100,0), +(798120,51,-8618.105,749.692,96.723,0,0,1,0,100,0), +(798120,52,-8614.002,744.876,101.626,0,0,1,0,100,0); + +-- --------------------------------------------------------End Orphanage----------------------------------------------------------------------------------------- +-- --------------------------------------------------------Karlee Chaddis, Paige, Gil and Fizzles---------------------------------------------------------------- + +UPDATE `creature` SET `MovementType` = 0 WHERE `guid` in (90439,90440,90443); +UPDATE `creature_addon` SET `path_id` = 0 WHERE `guid` in (90439,90440,90443); + +DELETE FROM `waypoint_data` WHERE `id` in (904390,904400,904430); +DELETE FROM `waypoint_scripts` WHERE `id` in (427,428,429,430,431); + +UPDATE `creature_template` SET `AIName` = "SmartAI" WHERE `entry` in (2330,2331); + +DELETE FROM `creature_text` WHERE `CreatureID` in (3504,2330,2331); +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(3504,0,0,'Is it true? Are there really crocolisks in the canals?',12,7,100,0,0,0,1098,0,'Gil'), +(3504,0,1,'My feet hurt.',12,7,100,0,0,0,1099,0,'Gil'), +(3504,0,2,'Are we there yet?',12,0,100,0,0,0,2223,0,'Gil'), +(3504,0,3,'Why are we goin\' this way?',12,0,100,0,0,0,1093,0,'Gil'), +(3504,0,4,'I wanna see the Mage Tower.',12,7,100,0,0,0,1097,0,'Gil'), +(3504,0,5,'Where we goin\'?',12,7,100,0,0,0,1094,0,'Gil'), +(3504,0,6,'Why do we always go the same way?',12,7,100,0,0,0,1100,0,'Gil'), +(3504,0,7,'I need to pee.',12,0,100,0,0,0,1095,0,'Gil'), +(3504,1,0,'Billy says Fizzles used to be a great wizard. But he got turned into a rabbit when one of his spells went bad.',12,0,100,0,0,0,1091,0,'Gil'), +(2330,0,0,'Hello, Charys. I have my list, could you get me all of that, especially the last ingredient.',12,7,100,0,0,0,587,0,'Karlee Chaddis'), +(2330,1,0,'Sure, Paige. Just be gentle.',12,7,100,0,0,0,589,0,'Karlee Chaddis'), +(2330,2,0,'Thanks, Charys. C\'mon Paige, sweetie.',12,0,100,0,0,0,590,0,'Karlee Chaddis'), +(2331,0,0,'Mommy? Can I pet Fizzles?',12,0,100,0,0,0,588,0,'Paige Chaddis'); + +DELETE FROM `smart_scripts` WHERE `entryorguid` in (3504,2330,2331,233000); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(3504,0,0,0,1,0,100,0,60000,60000,180000,200000,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Gil - Out of Combat - Say Random 0 (No Repeat)'), +(3504,0,1,0,38,0,100,0,1,0,0,0,0,29,0,160,0,0,0,0,10,90439,2330,0,0,0,0,0,0,'Gil - On Data Set 1 0 - Set Follow'), +(3504,0,2,0,38,0,100,0,1,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Gil - On Data Set 1 1 - Say Line 1'), + +(2331,0,0,0,38,0,100,0,1,0,0,0,0,29,0,200,0,0,0,0,10,90439,2330,0,0,0,0,0,0,'Paige Chaddis - On Data Set 1 0 - Set Follow'), +(2331,0,1,0,38,0,100,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Paige Chaddis - On Data Set 1 1 - Say Line 0'), + +(2330,0,0,1,1,0,100,1,25000,25000,0,0,0,53,0,2330,1,0,0,0,1,0,0,0,0,0,0,0,0,'Karlee Chaddis - OOC (No Repeat) - Start Waypoint'), +(2330,0,1,2,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,90443,3504,0,0,0,0,0,0,'Karlee Chaddis - Linked - Set Data 1 0 \'Gil\''), +(2330,0,2,0,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,90440,2331,0,0,0,0,0,0,'Karlee Chaddis - Linked - Set Data 1 0 \'Paige Chaddis\''), +(2330,0,3,0,40,0,100,0,28,2330,0,0,0,80,233000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Karlee Chaddis - On Waypoint 28 Reached - Run Script'), + +(233000,9,0,0,0,0,100,0,0,0,0,0,0,54,60000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Karlee Chaddis - On Script - Pause Waypoint'), +(233000,9,1,0,0,0,100,0,0,0,0,0,0,66,0,0,0,0,0,0,8,0,0,0,0,0,0,0,1.074,'Karlee Chaddis- On Script - Set Orientation'), +(233000,9,2,0,0,0,100,0,1000,1000,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Karlee Chaddis- On Script - Say Line 0'), +(233000,9,3,0,0,0,100,0,14000,14000,0,0,0,45,1,1,0,0,0,0,10,90440,2331,0,0,0,0,0,0,'Karlee Chaddis- On Script - Set Data 1 1 \'Paige Chaddis\''), +(233000,9,4,0,0,0,100,0,8000,8000,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Karlee Chaddis- On Script - Say Line 1'), +(233000,9,5,0,0,0,100,0,10000,10000,0,0,0,45,1,1,0,0,0,0,10,90443,3504,0,0,0,0,0,0,'Karlee Chaddis- On Script - Set Data 1 1 \'Gil\''), +(233000,9,6,0,0,0,100,0,20000,20000,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Karlee Chaddis- On Script - Say Line 2'), +(233000,9,7,0,0,0,100,0,4000,4000,0,0,0,5,3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Karlee Chaddis - On Script - Emote Wave'); + +DELETE FROM `waypoints` WHERE `entry` = 2330; +INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`point_comment`) VALUES +(2330,1,-8856.26,741.91,100.666,0,0,'Karlee Chaddis'), +(2330,2,-8860.26,747.938,99.9222,0,0,'Karlee Chaddis'), +(2330,3,-8866.15,756.326,97.8264,0,0,'Karlee Chaddis'), +(2330,4,-8870.51,760.372,96.7027,0,0,'Karlee Chaddis'), +(2330,5,-8879.54,756.138,96.2687,0,0,'Karlee Chaddis'), +(2330,6,-8883.45,758.191,95.4731,0,0,'Karlee Chaddis'), +(2330,7,-8907.48,788.261,87.7863,0,0,'Karlee Chaddis'), +(2330,8,-8906.29,794.423,87.3173,0,0,'Karlee Chaddis'), +(2330,9,-8899.1,801.189,87.6105,0,0,'Karlee Chaddis'), +(2330,10,-8899.88,815.041,89.3389,0,0,'Karlee Chaddis'), +(2330,11,-8899.09,826.687,92.5864,0,0,'Karlee Chaddis'), +(2330,12,-8905.65,841.38,95.4271,0,0,'Karlee Chaddis'), +(2330,13,-8905.3,845.868,95.7969,0,0,'Karlee Chaddis'), +(2330,14,-8898.15,863.912,96.2546,0,0,'Karlee Chaddis'), +(2330,15,-8893.39,873.065,98.9773,0,0,'Karlee Chaddis'), +(2330,16,-8888.58,889.208,102.944,0,0,'Karlee Chaddis'), +(2330,17,-8888.8,897.531,105.943,0,0,'Karlee Chaddis'), +(2330,18,-8896.33,913.303,110.988,0,0,'Karlee Chaddis'), +(2330,19,-8904.33,926.304,114.899,0,0,'Karlee Chaddis'), +(2330,20,-8919.41,948.481,117.337,0,0,'Karlee Chaddis'), +(2330,21,-8966.43,954.028,117.362,0,0,'Karlee Chaddis'), +(2330,22,-8982.42,966.381,116.043,0,0,'Karlee Chaddis'), +(2330,23,-8999.42,964.996,116.326,0,0,'Karlee Chaddis'), +(2330,24,-9012.36,953.626,116.256,0,0,'Karlee Chaddis'), +(2330,25,-9008.41,945.283,116.895,0,0,'Karlee Chaddis'), +(2330,26,-9000.86,940.914,117.094,0,0,'Karlee Chaddis'), +(2330,27,-8998.38,939.901,117.094,0,0,'Karlee Chaddis'), +(2330,28,-8996.34,945.169,117.097,0,0,'Karlee Chaddis'), +(2330,29,-8999.05,940.572,117.096,0,0,'Karlee Chaddis'), +(2330,30,-9002.62,941.706,117.095,0,0,'Karlee Chaddis'), +(2330,31,-9012.38,947.61,116.227,0,0,'Karlee Chaddis'), +(2330,32,-9012.45,951.694,116.246,0,0,'Karlee Chaddis'), +(2330,33,-9004.83,961.988,116.276,0,0,'Karlee Chaddis'), +(2330,34,-8998.64,965.802,116.292,0,0,'Karlee Chaddis'), +(2330,35,-8983.94,966.422,116.028,0,0,'Karlee Chaddis'), +(2330,36,-8980.01,965.284,116.256,0,0,'Karlee Chaddis'), +(2330,37,-8971.05,960.59,117.158,0,0,'Karlee Chaddis'), +(2330,38,-8957.87,953.377,117.299,0,0,'Karlee Chaddis'), +(2330,39,-8920.67,947.641,117.337,0,0,'Karlee Chaddis'), +(2330,40,-8908.711,932.625,116.370,0,0,'Karlee Chaddis'), +(2330,41,-8903.206,925.242,114.615,0,0,'Karlee Chaddis'), +(2330,42,-8899.662,918.715,112.635,0,0,'Karlee Chaddis'), +(2330,43,-8894.54,911.478,110.762,0,0,'Karlee Chaddis'), +(2330,44,-8877.53,920.808,107.603,0,0,'Karlee Chaddis'), +(2330,45,-8854.97,933.374,101.999,0,0,'Karlee Chaddis'), +(2330,46,-8848.88,930.711,102.495,0,0,'Karlee Chaddis'), +(2330,47,-8834.61,940.936,105.143,0,0,'Karlee Chaddis'), +(2330,48,-8818.28,953.205,100.678,0,0,'Karlee Chaddis'), +(2330,49,-8815.14,952.722,100.867,0,0,'Karlee Chaddis'), +(2330,50,-8804.01,942.261,101.241,0,0,'Karlee Chaddis'), +(2330,51,-8802.37,936.981,101.242,0,0,'Karlee Chaddis'), +(2330,52,-8777.24,909.299,100.262,0,0,'Karlee Chaddis'), +(2330,53,-8766.76,893.892,101.386,0,0,'Karlee Chaddis'), +(2330,54,-8737.03,892.761,101.221,0,0,'Karlee Chaddis'), +(2330,55,-8731.93,886.272,101.744,0,0,'Karlee Chaddis'), +(2330,56,-8723.13,875.04,102.678,0,0,'Karlee Chaddis'), +(2330,57,-8712.31,861.661,97.2752,0,0,'Karlee Chaddis'), +(2330,58,-8712.2,853.618,96.8655,0,0,'Karlee Chaddis'), +(2330,59,-8725.87,834.533,96.149,0,0,'Karlee Chaddis'), +(2330,60,-8726.58,813.587,97.0276,0,0,'Karlee Chaddis'), +(2330,61,-8717.15,795.784,97.0391,0,0,'Karlee Chaddis'), +(2330,62,-8721.79,782.622,97.8839,0,0,'Karlee Chaddis'), +(2330,63,-8732.2,766.047,98.0898,0,0,'Karlee Chaddis'), +(2330,64,-8724.93,751.443,98.2043,0,0,'Karlee Chaddis'), +(2330,65,-8713.3,732.548,97.8146,0,0,'Karlee Chaddis'), +(2330,66,-8699.05,715.705,97.0168,0,0,'Karlee Chaddis'), +(2330,67,-8661.63,744.699,96.6531,0,0,'Karlee Chaddis'), +(2330,68,-8660.26,765.872,96.6997,0,0,'Karlee Chaddis'), +(2330,69,-8634.36,787.361,96.6525,0,0,'Karlee Chaddis'), +(2330,70,-8632.43,787.372,96.6512,0,0,'Karlee Chaddis'), +(2330,71,-8606.16,761.17,96.7387,0,0,'Karlee Chaddis'), +(2330,72,-8592.08,756.77,96.651,0,0,'Karlee Chaddis'), +(2330,73,-8579.7,737.671,96.7114,0,0,'Karlee Chaddis'), +(2330,74,-8594.53,717.706,96.6514,0,0,'Karlee Chaddis'), +(2330,75,-8581.67,697.638,97.0168,0,0,'Karlee Chaddis'), +(2330,76,-8561.08,673.827,97.0168,0,0,'Karlee Chaddis'), +(2330,77,-8536.53,690.079,97.6665,0,0,'Karlee Chaddis'), +(2330,78,-8530.805,685.554,97.8444,0,0,'Karlee Chaddis'), +(2330,79,-8528.41,679.123,100.793,0,0,'Karlee Chaddis'), +(2330,80,-8517.6,662.84,102.123,0,0,'Karlee Chaddis'), +(2330,81,-8510.36,651.605,100.292,0,0,'Karlee Chaddis'), +(2330,82,-8516.68,643.439,100.134,0,0,'Karlee Chaddis'), +(2330,83,-8557.25,615.273,102.337,0,0,'Karlee Chaddis'), +(2330,84,-8563.65,615.408,102.278,0,0,'Karlee Chaddis'), +(2330,85,-8583.79,586.194,103.594,0,0,'Karlee Chaddis'), +(2330,86,-8584.4,560.743,101.871,0,0,'Karlee Chaddis'), +(2330,87,-8578.23,543.501,101.782,0,0,'Karlee Chaddis'), +(2330,88,-8593.35,530.953,105.659,0,0,'Karlee Chaddis'), +(2330,89,-8609.85,515.571,103.841,0,0,'Karlee Chaddis'), +(2330,90,-8616.86,517.629,103.218,0,0,'Karlee Chaddis'), +(2330,91,-8657.5,553.006,96.9502,0,0,'Karlee Chaddis'), +(2330,92,-8673.57,552.873,97.2864,0,0,'Karlee Chaddis'), +(2330,93,-8713.67,519.808,97.1597,0,0,'Karlee Chaddis'), +(2330,94,-8717.22,524.985,98.1892,0,0,'Karlee Chaddis'), +(2330,95,-8724.539,533.765,100.2637,0,0,'Karlee Chaddis'), +(2330,96,-8734.436,545.427,101.1412,0,0,'Karlee Chaddis'), +(2330,97,-8745.36,557.023,97.6718,0,0,'Karlee Chaddis'), +(2330,98,-8745,566.133,97.4006,0,0,'Karlee Chaddis'), +(2330,99,-8738.14,576.508,97.5043,0,0,'Karlee Chaddis'), +(2330,100,-8769.94,608.175,97.1405,0,0,'Karlee Chaddis'), +(2330,101,-8795.54,589.658,97.4546,0,0,'Karlee Chaddis'), +(2330,102,-8832.6,630.401,94.0918,0,0,'Karlee Chaddis'), +(2330,103,-8851.55,661.112,97.1319,0,0,'Karlee Chaddis'), +(2330,104,-8824.74,678.622,97.5366,0,0,'Karlee Chaddis'), +(2330,105,-8847.34,726.835,97.6974,0,0,'Karlee Chaddis'); + +-- Fizzles +DELETE FROM `creature` WHERE `guid` = 79379; +INSERT INTO `creature` (`guid`,`id1`,`map`,`zoneId`,`areaId`,`spawnMask`,`phaseMask`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`wander_distance`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`,`ScriptName`,`VerifiedBuild`) VALUES +(79379,1419,0,0,0,1,1,0,-8994.19,947.069,118.348,4.29351,300,0,0,8,0,0,0,0,0,'',0); + +-- --------------------------------------------------------Karlee Chaddis, Paige, Gil and Fizzles------------------------------------------------------------------- +-- --------------------------------------------------------Lil' Timmy----------------------------------------------------------------------------------------------- + +DELETE FROM `creature_formations` WHERE `leaderGUID` = 45501; + +UPDATE `creature_addon` SET `path_id` = 0 WHERE `guid` in (45501); +UPDATE `creature_template` SET `AIName` = "SmartAI" WHERE `entry` in (8666,7386); +UPDATE `creature` SET `MovementType` = 0 WHERE `guid` = 45501; +UPDATE `npc_vendor` SET `incrtime` = 3600 WHERE `entry` = 8666 and `item` = 8489; + +DELETE FROM `smart_scripts` WHERE `entryorguid` in (8666,866600,7386); +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(8666,0,0,0,1,1,100,0,30000,30000,120000,180000,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Lil Timmy - Out of Combat - Say Random 0 (Phase 1)'), +(8666,0,1,2,1,0,100,1,10000,10000,0,0,0,53,0,8666,1,0,0,0,1,0,0,0,0,0,0,0,0,'Lil Timmy - OOC (No Repeat) - Start Waypoint'), +(8666,0,2,3,61,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,23427,7386,0,0,0,0,0,0,'Lil Timmy - Linked - Set Data 1 0 \'White Kitten\''), +(8666,0,3,4,61,0,100,0,0,0,0,0,0,45,1,2,0,0,0,0,10,23427,7386,0,0,0,0,0,0,'Lil Timmy - Linked - Set Data 1 2 \'White Kitten\''), +(8666,0,4,0,61,0,100,0,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Lil Timmy - Linked - Set Event Phase 1'), +(8666,0,5,0,40,0,100,0,91,8666,0,0,0,80,866600,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Lil Timmy - On Waypoint 91 Reached - Run Script'), + +(7386,0,0,0,38,0,100,0,1,0,0,0,0,29,0,180,0,0,0,0,10,45501,8666,0,0,0,0,0,0,'White Kitten - On Data Set 1 0 - Set Follow'), +(7386,0,1,2,38,0,100,0,1,1,0,0,0,18,2,1,0,0,0,0,1,0,0,0,0,0,0,0,0,"White Kitten - On Data Set 1 1 - Set Unit_flags2 (Hide)"), +(7386,0,2,0,61,0,100,0,0,0,0,0,0,18,33554432,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"White Kitten - Linked - Set Unit_flags (Not_Selectable)"), +(7386,0,3,4,38,0,100,0,1,2,0,0,0,19,2,1,0,0,0,0,1,0,0,0,0,0,0,0,0,"White Kitten - On Data Set 1 2 - Set Unit_flags2 (Unhide)"), +(7386,0,4,0,61,0,100,0,0,0,0,0,0,19,33554432,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"White Kitten - Linked - Set Unit_flags (Selectable)"), + +(866600,9,0,0,0,0,100,0,0,0,0,0,0,54,10802000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Lil Timmy - On Script - Pause Waypoint'), +(866600,9,1,0,0,0,100,0,1000,1000,0,0,0,45,1,1,0,0,0,0,10,23427,7386,0,0,0,0,0,0,'Lil Timmy - On Script - Set Data 1 1 \'White Kitten\''), +(866600,9,2,0,0,0,100,0,0,0,0,0,0,18,2,1,0,0,0,0,1,0,0,0,0,0,0,0,0,"Lil Timmy - On Script - Set Unit_flags2 (Hide)"), +(866600,9,3,0,0,0,100,0,0,0,0,0,0,18,33554432,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Lil Timmy - On Script - Set Unit_flags (Not_Selectable)"), +(866600,9,4,0,0,0,100,0,0,0,0,0,0,22,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Lil Timmy - On Script - Set Event Phase 2'), +(866600,9,5,0,0,0,100,0,5400000,10800000,0,0,0,19,2,1,0,0,0,0,1,0,0,0,0,0,0,0,0,"Lil Timmy - On Script - Set Unit_flags2 (Unhide)"), +(866600,9,6,0,0,0,100,0,0,0,0,0,0,19,33554432,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Lil Timmy - On Script - Set Unit_flags (Selectable)"), +(866600,9,7,0,0,0,100,0,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Lil Timmy - On Script - Set Event Phase 1'), +(866600,9,8,0,0,0,100,0,0,0,0,0,0,53,0,8666,1,0,0,0,1,0,0,0,0,0,0,0,0,'Lil Timmy - On Script - Start Waypoint'), +(866600,9,9,0,0,0,100,0,0,0,0,0,0,45,1,0,0,0,0,0,10,23427,7386,0,0,0,0,0,0,'Lil Timmy - On Script - Set Data 1 0 \'White Kitten\''), +(866600,9,10,0,0,0,100,0,0,0,0,0,0,45,1,2,0,0,0,0,10,23427,7386,0,0,0,0,0,0,'Lil Timmy - On Script - Set Data 1 2 \'White Kitten\''); + +DELETE FROM `waypoint_data` WHERE `id` = 455010; +DELETE FROM `waypoints` WHERE `entry` = 8666; +INSERT INTO `waypoints` (`entry`,`pointid`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`point_comment`) VALUES +(8666,1,-8641.4,912.342,99.1397,0,0,'Lil Timmy'), +(8666,2,-8661.71,894.74,97.6239,0,0,'Lil Timmy'), +(8666,3,-8679.15,880.967,97.0168,0,0,'Lil Timmy'), +(8666,4,-8681.12,877.654,97.0168,0,0,'Lil Timmy'), +(8666,5,-8679.29,873.082,97.0168,0,0,'Lil Timmy'), +(8666,6,-8659.98,849.329,97.0168,0,0,'Lil Timmy'), +(8666,7,-8639.96,825.073,96.6251,0,0,'Lil Timmy'), +(8666,8,-8636.74,813.025,96.6486,0,0,'Lil Timmy'), +(8666,9,-8634,793.001,96.6508,0,0,'Lil Timmy'), +(8666,10,-8635.94,785.58,96.6515,0,0,'Lil Timmy'), +(8666,11,-8651.43,775.162,96.6714,0,0,'Lil Timmy'), +(8666,12,-8661.39,764.974,96.6998,0,0,'Lil Timmy'), +(8666,13,-8662.58,758.134,96.6947,0,0,'Lil Timmy'), +(8666,14,-8647.73,738.576,96.6965,0,0,'Lil Timmy'), +(8666,15,-8630.74,726.606,96.7377,0,0,'Lil Timmy'), +(8666,16,-8618.88,711.997,96.7248,0,0,'Lil Timmy'), +(8666,17,-8614.67,709.545,96.7549,0,0,'Lil Timmy'), +(8666,18,-8606.13,711.345,96.7382,0,0,'Lil Timmy'), +(8666,19,-8598.07,712.945,96.6746,0,0,'Lil Timmy'), +(8666,20,-8588.25,706.887,97.0168,0,0,'Lil Timmy'), +(8666,21,-8566.09,678.512,97.0168,0,0,'Lil Timmy'), +(8666,22,-8561.86,674.735,97.0168,0,0,'Lil Timmy'), +(8666,23,-8556.46,676.784,97.0168,0,0,'Lil Timmy'), +(8666,24,-8542.79,686.774,97.6239,0,0,'Lil Timmy'), +(8666,25,-8532.769,688.506,97.661,0,0,'Lil Timmy'), +(8666,26,-8528.005,682.699,99.567,0,0,'Lil Timmy'), +(8666,27,-8522.24,670.618,102.794,0,0,'Lil Timmy'), +(8666,28,-8519.8,666.4,102.615,0,0,'Lil Timmy'), +(8666,29,-8512.94,656.648,100.901,0,0,'Lil Timmy'), +(8666,30,-8513.15,648.714,100.292,0,0,'Lil Timmy'), +(8666,31,-8518.18,642.361,100.092,0,0,'Lil Timmy'), +(8666,32,-8538.04,630.723,100.404,0,0,'Lil Timmy'), +(8666,33,-8554.03,617.81,102.053,0,0,'Lil Timmy'), +(8666,34,-8564.5,613.48,102.435,0,0,'Lil Timmy'), +(8666,35,-8576.12,601.799,103.26,0,0,'Lil Timmy'), +(8666,36,-8582.44,589.572,103.691,0,0,'Lil Timmy'), +(8666,37,-8586.68,575.605,102.985,0,0,'Lil Timmy'), +(8666,38,-8585.96,565.941,102.26,0,0,'Lil Timmy'), +(8666,39,-8578.9,545.988,101.779,0,0,'Lil Timmy'), +(8666,40,-8581.73,541.012,102.09,0,0,'Lil Timmy'), +(8666,41,-8590.09,533.912,104.76,0,0,'Lil Timmy'), +(8666,42,-8598.32,527.164,106.399,0,0,'Lil Timmy'), +(8666,43,-8605.67,520.882,105.748,0,0,'Lil Timmy'), +(8666,44,-8610.26,515.735,103.79,0,0,'Lil Timmy'), +(8666,45,-8613.43,514.684,103.401,0,0,'Lil Timmy'), +(8666,46,-8618.8,518.794,103.068,0,0,'Lil Timmy'), +(8666,47,-8635.17,535.152,99.9833,0,0,'Lil Timmy'), +(8666,48,-8647.39,546.721,97.8568,0,0,'Lil Timmy'), +(8666,49,-8655.78,552.938,96.9435,0,0,'Lil Timmy'), +(8666,50,-8671.86,552.874,97.2037,0,0,'Lil Timmy'), +(8666,51,-8679.66,549.654,97.5031,0,0,'Lil Timmy'), +(8666,52,-8689.63,540.268,97.828,0,0,'Lil Timmy'), +(8666,53,-8698.98,530.295,97.7173,0,0,'Lil Timmy'), +(8666,54,-8712.64,520.242,97.2398,0,0,'Lil Timmy'), +(8666,55,-8715.24,521.571,97.4039,0,0,'Lil Timmy'), +(8666,56,-8720.77,528.729,99.1496,0,0,'Lil Timmy'), +(8666,57,-8729.84,539.87,101.105,0,0,'Lil Timmy'), +(8666,58,-8735.95,547.101,100.845,0,0,'Lil Timmy'), +(8666,59,-8745.79,557.737,97.7107,0,0,'Lil Timmy'), +(8666,60,-8746.01,564.915,97.4001,0,0,'Lil Timmy'), +(8666,61,-8729.92,581.294,97.6775,0,0,'Lil Timmy'), +(8666,62,-8719.58,591.033,98.4713,0,0,'Lil Timmy'), +(8666,63,-8712.04,594.001,98.6079,0,0,'Lil Timmy'), +(8666,64,-8707.26,600.676,98.9982,0,0,'Lil Timmy'), +(8666,65,-8704.46,616.407,100.215,0,0,'Lil Timmy'), +(8666,66,-8705.6,629.078,100.477,0,0,'Lil Timmy'), +(8666,67,-8708.67,645.787,99.9994,0,0,'Lil Timmy'), +(8666,68,-8716.46,666.585,98.8681,0,0,'Lil Timmy'), +(8666,69,-8724.09,676.482,98.6317,0,0,'Lil Timmy'), +(8666,70,-8728.54,684.167,98.7324,0,0,'Lil Timmy'), +(8666,71,-8733.47,695.151,98.723,0,0,'Lil Timmy'), +(8666,72,-8743.6,709.876,98.2678,0,0,'Lil Timmy'), +(8666,73,-8741.08,714.561,98.9815,0,0,'Lil Timmy'), +(8666,74,-8734.46,720.119,101.647,0,0,'Lil Timmy'), +(8666,75,-8726.79,726.231,100.924,0,0,'Lil Timmy'), +(8666,76,-8718.09,733.687,97.9511,0,0,'Lil Timmy'), +(8666,77,-8716.42,737.269,97.7782,0,0,'Lil Timmy'), +(8666,78,-8721.01,746.752,97.9693,0,0,'Lil Timmy'), +(8666,79,-8730.96,759.107,98.1572,0,0,'Lil Timmy'), +(8666,80,-8731.99,769.385,98.0161,0,0,'Lil Timmy'), +(8666,81,-8724.64,778.108,98.0604,0,0,'Lil Timmy'), +(8666,82,-8717.55,792.762,97.1197,0,0,'Lil Timmy'), +(8666,83,-8728.3,817.744,96.9777,0,0,'Lil Timmy'), +(8666,84,-8726.79,830.504,96.3102,0,0,'Lil Timmy'), +(8666,85,-8723.42,841.35,96.0764,0,0,'Lil Timmy'), +(8666,86,-8709.57,857.779,96.978,0,0,'Lil Timmy'), +(8666,87,-8692.38,870.557,97.0284,0,0,'Lil Timmy'), +(8666,88,-8679.35,880.974,97.0167,0,0,'Lil Timmy'), +(8666,89,-8661.22,896.239,97.5968,0,0,'Lil Timmy'), +(8666,90,-8643.7,912.233,98.9288,0,0,'Lil Timmy'), +(8666,91,-8634.58,918.926,99.3551,0,0,'Lil Timmy'); + +-- --------------------------------------------------------End Lil' Timmy----------------------------------------------------------------------------------------------- +-- --------------------------------------------------------Sewer Beast-------------------------------------------------------------------------------------------------- + +UPDATE `creature` SET `spawntimesecs` = 87180 WHERE `guid` in (86300,86301); +DELETE FROM `creature` WHERE `guid` in (300492,300493,300494,300495); +INSERT INTO `creature` (`guid`,`id1`,`id2`,`id3`,`map`,`zoneId`,`areaId`,`spawnMask`,`phaseMask`,`equipment_id`,`position_x`,`position_y`,`position_z`,`orientation`,`spawntimesecs`,`wander_distance`,`currentwaypoint`,`curhealth`,`curmana`,`MovementType`,`npcflag`,`unit_flags`,`dynamicflags`,`ScriptName`,`VerifiedBuild`) VALUES +(300492,3581,0,0,0,0,0,1,1,0,-8479.075,709.373,85.894,3.7941,87180,0,0,17720,0,0,0,0,0,'',0), +(300493,3581,0,0,0,0,0,1,1,0,-8648.995,927.668,85.894,3.854,87180,0,0,17720,0,0,0,0,0,'',0), +(300494,3581,0,0,0,0,0,1,1,0,-8860.171,965.54,85.893,5.484,87180,0,0,17720,0,0,0,0,0,'',0), +(300495,3581,0,0,0,0,0,1,1,0,-8906.125,709.376,85.892,0.7132,87180,0,0,17720,0,0,0,0,0,'',0); + +DELETE FROM `pool_creature` WHERE `pool_entry` = 86300; +INSERT INTO `pool_creature` (`guid`,`pool_entry`,`chance`,`description`) VALUES +(86300,86300,0,'Sewer Beast (86300)'), +(86301,86300,0,'Sewer Beast (86301)'), +(300492,86300,0,'Sewer Beast (300492)'), +(300493,86300,0,'Sewer Beast (300493)'), +(300494,86300,0,'Sewer Beast (300494)'), +(300495,86300,0,'Sewer Beast (300495)'); + +DELETE FROM `pool_template` WHERE `entry` = 86300; +INSERT INTO `pool_template` (`entry`,`max_limit`,`description`) VALUES +(86300,1,'Sewer Beast Pool'); + +-- -------------------------------------------------End Sewer Beast-------------------------------------------------------------------------------------------------------- +-- ------------------------------------------------Underwater Construction Worker------------------------------------------------------------------------------------------ + +DELETE FROM `creature` WHERE `guid` = 85178; -- Remove the underwater construction worker; WOTLK expansion removed them +DELETE FROM `creature_addon` WHERE `guid` = 85178; +DELETE FROM `waypoint_data` WHERE `id` = 851780; +DELETE FROM `waypoint_scripts` WHERE `id` in (334,335); + +-- ------------------------------------------------ End Underwater Construction Worker--------------------------------------------------------------------------------------- +-- -------------------------------------------------Defias Prisoner Escort--------------------------------------------------------------------------------------------------- + +DELETE FROM smart_scripts WHERE `entryorguid` = 37063; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(37063,0,0,0,38,0,100,0,1,0,0,0,0,29,0,50,0,0,0,0,12,2,0,0,0,0,0,0,0,'Stormwind City Guard - On Data Set - Set Follow'), +(37063,0,1,0,38,0,100,0,2,0,0,0,0,29,0,160,0,0,0,0,12,2,0,0,0,0,0,0,0,'Stormwind City Guard - On Data Set - Set Follow'), +(37063,0,2,0,38,0,100,0,3,0,0,0,0,29,0,200,0,0,0,0,12,2,0,0,0,0,0,0,0,'Stormwind City Guard - On Data Set - Set Follow'), +(37063,0,3,0,38,0,100,0,4,0,0,0,0,29,0,310,0,0,0,0,12,2,0,0,0,0,0,0,0,'Stormwind City Guard - On Data Set - Set Follow'); From 7187aae5319d34fed42dd35631862a3e5a07fd54 Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 14:21:06 +0000 Subject: [PATCH 53/57] chore(DB): import pending files Referenced commit(s): 1e1754a6a30aca741a4f44cb0ad5c72596985df3 --- .../2022_03_27_20.sql} | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) rename data/sql/updates/{pending_db_world/rev_1648089119541675100.sql => db_world/2022_03_27_20.sql} (99%) diff --git a/data/sql/updates/pending_db_world/rev_1648089119541675100.sql b/data/sql/updates/db_world/2022_03_27_20.sql similarity index 99% rename from data/sql/updates/pending_db_world/rev_1648089119541675100.sql rename to data/sql/updates/db_world/2022_03_27_20.sql index 97b3f28b0..aad8952f3 100644 --- a/data/sql/updates/pending_db_world/rev_1648089119541675100.sql +++ b/data/sql/updates/db_world/2022_03_27_20.sql @@ -1,3 +1,19 @@ +-- DB update 2022_03_27_19 -> 2022_03_27_20 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_19'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_19 2022_03_27_20 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1648089119541675100'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648089119541675100'); /* Fixes/Changes: Reginald Windosr/Adam and Billy/Extra Guard/Justin Brandon and Roman/Miss Danna/Donna and William/Janey Suzanne and Lisan/ @@ -1192,3 +1208,13 @@ INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type (37063,0,1,0,38,0,100,0,2,0,0,0,0,29,0,160,0,0,0,0,12,2,0,0,0,0,0,0,0,'Stormwind City Guard - On Data Set - Set Follow'), (37063,0,2,0,38,0,100,0,3,0,0,0,0,29,0,200,0,0,0,0,12,2,0,0,0,0,0,0,0,'Stormwind City Guard - On Data Set - Set Follow'), (37063,0,3,0,38,0,100,0,4,0,0,0,0,29,0,310,0,0,0,0,12,2,0,0,0,0,0,0,0,'Stormwind City Guard - On Data Set - Set Follow'); + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_20' WHERE sql_rev = '1648089119541675100'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; From b5344b638f6886c7ef108a8e20310cd6874c4b9d Mon Sep 17 00:00:00 2001 From: TheDdraig <62179779+TheDdraig@users.noreply.github.com> Date: Sun, 27 Mar 2022 16:03:41 +0100 Subject: [PATCH 54/57] fix(DB/SpellProcEvent) Hand of Justice Fix (#11172) --- data/sql/updates/pending_db_world/rev_1648383353183302321.sql | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1648383353183302321.sql diff --git a/data/sql/updates/pending_db_world/rev_1648383353183302321.sql b/data/sql/updates/pending_db_world/rev_1648383353183302321.sql new file mode 100644 index 000000000..c9e01eb0f --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1648383353183302321.sql @@ -0,0 +1,3 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648383353183302321'); +-- This updates the existing proc to allow trinket to pop on any melee damage including melee spells +UPDATE `spell_proc_event` SET `SchoolMask`='1' AND `ProcFlags`='20' WHERE `entry`='15600'; From c9377a244fa99f564e316810d1f629d2c210876c Mon Sep 17 00:00:00 2001 From: AzerothCoreBot Date: Sun, 27 Mar 2022 15:05:38 +0000 Subject: [PATCH 55/57] chore(DB): import pending files Referenced commit(s): b5344b638f6886c7ef108a8e20310cd6874c4b9d --- data/sql/updates/db_world/2022_03_27_21.sql | 29 +++++++++++++++++++ .../rev_1648383353183302321.sql | 3 -- 2 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 data/sql/updates/db_world/2022_03_27_21.sql delete mode 100644 data/sql/updates/pending_db_world/rev_1648383353183302321.sql diff --git a/data/sql/updates/db_world/2022_03_27_21.sql b/data/sql/updates/db_world/2022_03_27_21.sql new file mode 100644 index 000000000..836ddaf6a --- /dev/null +++ b/data/sql/updates/db_world/2022_03_27_21.sql @@ -0,0 +1,29 @@ +-- DB update 2022_03_27_20 -> 2022_03_27_21 +DROP PROCEDURE IF EXISTS `updateDb`; +DELIMITER // +CREATE PROCEDURE updateDb () +proc:BEGIN DECLARE OK VARCHAR(100) DEFAULT 'FALSE'; +SELECT COUNT(*) INTO @COLEXISTS +FROM information_schema.COLUMNS +WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'version_db_world' AND COLUMN_NAME = '2022_03_27_20'; +IF @COLEXISTS = 0 THEN LEAVE proc; END IF; +START TRANSACTION; +ALTER TABLE version_db_world CHANGE COLUMN 2022_03_27_20 2022_03_27_21 bit; +SELECT sql_rev INTO OK FROM version_db_world WHERE sql_rev = '1648383353183302321'; IF OK <> 'FALSE' THEN LEAVE proc; END IF; +-- +-- START UPDATING QUERIES +-- + +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648383353183302321'); +-- This updates the existing proc to allow trinket to pop on any melee damage including melee spells +UPDATE `spell_proc_event` SET `SchoolMask`='1' AND `ProcFlags`='20' WHERE `entry`='15600'; + +-- +-- END UPDATING QUERIES +-- +UPDATE version_db_world SET date = '2022_03_27_21' WHERE sql_rev = '1648383353183302321'; +COMMIT; +END // +DELIMITER ; +CALL updateDb(); +DROP PROCEDURE IF EXISTS `updateDb`; diff --git a/data/sql/updates/pending_db_world/rev_1648383353183302321.sql b/data/sql/updates/pending_db_world/rev_1648383353183302321.sql deleted file mode 100644 index c9e01eb0f..000000000 --- a/data/sql/updates/pending_db_world/rev_1648383353183302321.sql +++ /dev/null @@ -1,3 +0,0 @@ -INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1648383353183302321'); --- This updates the existing proc to allow trinket to pop on any melee damage including melee spells -UPDATE `spell_proc_event` SET `SchoolMask`='1' AND `ProcFlags`='20' WHERE `entry`='15600'; From 9c0c9254330e1f94a52242839b63da1f1efce1c2 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Sun, 27 Mar 2022 17:08:18 +0200 Subject: [PATCH 56/57] fix(Core/Combat): Improved extra attacks handling. Author: @trickerer (#11169) Fixes #9423 Fixes #11138 --- src/server/game/Entities/Player/Player.cpp | 4 -- src/server/game/Entities/Unit/Unit.cpp | 83 +++++++++++++++++++--- src/server/game/Entities/Unit/Unit.h | 14 +++- src/server/game/Spells/Spell.cpp | 8 ++- src/server/game/Spells/SpellEffects.cpp | 13 ++-- 5 files changed, 98 insertions(+), 24 deletions(-) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 82b4b18c1..980c1e2c2 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -7121,10 +7121,6 @@ void Player::CastItemCombatSpell(Unit* target, WeaponAttackType attType, uint32 continue; } - // not allow proc extra attack spell at extra attack - if (m_extraAttacks && spellInfo->HasEffect(SPELL_EFFECT_ADD_EXTRA_ATTACKS)) - return; - float chance = (float)spellInfo->ProcChance; if (spellData.SpellPPMRate) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index f81c04b5e..1886709c7 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -230,7 +230,6 @@ Unit::Unit(bool isWorldObject) : WorldObject(isWorldObject), m_modAttackSpeedPct[OFF_ATTACK] = 1.0f; m_modAttackSpeedPct[RANGED_ATTACK] = 1.0f; - m_extraAttacks = 0; m_canDualWield = false; m_rootTimes = 0; @@ -315,6 +314,8 @@ Unit::Unit(bool isWorldObject) : WorldObject(isWorldObject), _lastLiquid = nullptr; _oldFactionId = 0; + + _lastExtraAttackSpell = 0; } //////////////////////////////////////////////////////////// @@ -429,6 +430,23 @@ void Unit::Update(uint32 p_time) } } + _lastDamagedTargetGuid = ObjectGuid::Empty; + if (_lastExtraAttackSpell) + { + while (!extraAttacksTargets.empty()) + { + auto itr = extraAttacksTargets.begin(); + ObjectGuid targetGuid = itr->first; + uint32 count = itr->second; + extraAttacksTargets.erase(itr); + if (Unit* victim = ObjectAccessor::GetUnit(*this, targetGuid)) + { + HandleProcExtraAttackFor(victim, count); + } + } + _lastExtraAttackSpell = 0; + } + // not implemented before 3.0.2 // xinef: if attack time > 0, reduce by diff // if on next update, attack time < 0 assume player didnt attack - set to 0 @@ -2285,8 +2303,15 @@ void Unit::CalcHealAbsorb(HealInfo& healInfo) void Unit::AttackerStateUpdate(Unit* victim, WeaponAttackType attType, bool extra) { - if (HasUnitState(UNIT_STATE_CANNOT_AUTOATTACK) || HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED)) + if (HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED)) + { return; + } + + if (HasUnitState(UNIT_STATE_CANNOT_AUTOATTACK) && !extra) + { + return; + } if (!victim->IsAlive()) return; @@ -2303,6 +2328,11 @@ void Unit::AttackerStateUpdate(Unit* victim, WeaponAttackType attType, bool extr if (attType != BASE_ATTACK && attType != OFF_ATTACK) return; // ignore ranged case + if (!extra && _lastExtraAttackSpell) + { + _lastExtraAttackSpell = 0; + } + bool meleeAttack = true; // melee attack spell casted at main hand attack only - no normal melee dmg dealt @@ -2344,6 +2374,8 @@ void Unit::AttackerStateUpdate(Unit* victim, WeaponAttackType attType, bool extr //TriggerAurasProcOnEvent(damageInfo); + _lastDamagedTargetGuid = victim->GetGUID(); + DealMeleeDamage(&damageInfo, true); DamageInfo dmgInfo(damageInfo); @@ -2456,15 +2488,31 @@ bool Unit::GetMeleeAttackPoint(Unit* attacker, Position& pos) return true; } -void Unit::HandleProcExtraAttackFor(Unit* victim) +void Unit::HandleProcExtraAttackFor(Unit* victim, uint32 count) { - while (m_extraAttacks) + while (count) { + --count; AttackerStateUpdate(victim, BASE_ATTACK, true); - --m_extraAttacks; } } +void Unit::AddExtraAttacks(uint32 count) +{ + ObjectGuid targetGUID = _lastDamagedTargetGuid; + if (!targetGUID) + { + if (ObjectGuid selection = GetTarget()) + { + targetGUID = selection; // Spell was cast directly (not triggered by aura) + } + else + return; + } + + extraAttacksTargets[targetGUID] += count; +} + MeleeHitOutcome Unit::RollMeleeOutcomeAgainst(Unit const* victim, WeaponAttackType attType) const { // This is only wrapper @@ -8417,7 +8465,7 @@ bool Unit::HandleAuraProc(Unit* victim, uint32 damage, Aura* triggeredByAura, Sp return false; } -bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* triggeredByAura, SpellInfo const* procSpell, uint32 procFlags, uint32 procEx, uint32 cooldown, uint32 procPhase) +bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* triggeredByAura, SpellInfo const* procSpell, uint32 procFlags, uint32 procEx, uint32 cooldown, uint32 procPhase, ProcEventInfo& eventInfo) { // Get triggered aura spell info SpellInfo const* auraSpellInfo = triggeredByAura->GetSpellInfo(); @@ -8903,8 +8951,23 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg } // not allow proc extra attack spell at extra attack - if (m_extraAttacks && triggerEntry->HasEffect(SPELL_EFFECT_ADD_EXTRA_ATTACKS)) - return false; + if (triggerEntry->HasEffect(SPELL_EFFECT_ADD_EXTRA_ATTACKS)) + { + uint32 lastExtraAttackSpell = eventInfo.GetActor()->GetLastExtraAttackSpell(); + + // Patch 1.12.0(?) extra attack abilities can no longer chain proc themselves + if (lastExtraAttackSpell == trigger_spell_id) + { + return false; + } + + // Patch 2.2.0 Sword Specialization (Warrior, Rogue) extra attack can no longer proc additional extra attacks + // 3.3.5 Sword Specialization (Warrior), Hack and Slash (Rogue) + if (lastExtraAttackSpell == 16459 || lastExtraAttackSpell == 66923) + { + return false; + } + } // Custom requirements (not listed in procEx) Warning! damage dealing after this // Custom triggered spells @@ -15826,7 +15889,7 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit* target, uint32 procFlag, u { LOG_DEBUG("spells.aura", "ProcDamageAndSpell: casting spell {} (triggered by {} aura of spell {})", spellInfo->Id, (isVictim ? "a victim's" : "an attacker's"), triggeredByAura->GetId()); // Don`t drop charge or add cooldown for not started trigger - if (HandleProcTriggerSpell(target, damage, triggeredByAura, procSpellInfo, procFlag, procExtra, cooldown, procPhase)) + if (HandleProcTriggerSpell(target, damage, triggeredByAura, procSpellInfo, procFlag, procExtra, cooldown, procPhase, eventInfo)) takeCharges = true; break; } @@ -15885,7 +15948,7 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit* target, uint32 procFlag, u { LOG_DEBUG("spells.aura", "ProcDamageAndSpell: casting spell {} (triggered with value by {} aura of spell {})", spellInfo->Id, (isVictim ? "a victim's" : "an attacker's"), triggeredByAura->GetId()); - if (HandleProcTriggerSpell(target, damage, triggeredByAura, procSpellInfo, procFlag, procExtra, cooldown, procPhase)) + if (HandleProcTriggerSpell(target, damage, triggeredByAura, procSpellInfo, procFlag, procExtra, cooldown, procPhase, eventInfo)) takeCharges = true; break; } diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 6b100ceda..e97d21ee3 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -1506,7 +1506,13 @@ public: void CalculateMeleeDamage(Unit* victim, uint32 damage, CalcDamageInfo* damageInfo, WeaponAttackType attackType = BASE_ATTACK, const bool sittingVictim = false); void DealMeleeDamage(CalcDamageInfo* damageInfo, bool durabilityLoss); - void HandleProcExtraAttackFor(Unit* victim); + + void HandleProcExtraAttackFor(Unit* victim, uint32 count); + void SetLastExtraAttackSpell(uint32 spellId) { _lastExtraAttackSpell = spellId; } + [[nodiscard]] uint32 GetLastExtraAttackSpell() const { return _lastExtraAttackSpell; } + void AddExtraAttacks(uint32 count); + void SetLastDamagedTargetGuid(ObjectGuid const& guid) { _lastDamagedTargetGuid = guid; } + [[nodiscard]] ObjectGuid const& GetLastDamagedTargetGuid() const { return _lastDamagedTargetGuid; } void CalculateSpellDamageTaken(SpellNonMeleeDamage* damageInfo, int32 damage, SpellInfo const* spellInfo, WeaponAttackType attackType = BASE_ATTACK, bool crit = false); void DealSpellDamage(SpellNonMeleeDamage* damageInfo, bool durabilityLoss, Spell const* spell = nullptr); @@ -2467,7 +2473,7 @@ private: bool IsTriggeredAtSpellProcEvent(Unit* victim, Aura* aura, WeaponAttackType attType, bool isVictim, bool active, SpellProcEventEntry const*& spellProcEvent, ProcEventInfo const& eventInfo); bool HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggeredByAura, SpellInfo const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown); bool HandleAuraProc(Unit* victim, uint32 damage, Aura* triggeredByAura, SpellInfo const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown, bool* handled); - bool HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* triggeredByAura, SpellInfo const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown, uint32 procPhase); + bool HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* triggeredByAura, SpellInfo const* procSpell, uint32 procFlag, uint32 procEx, uint32 cooldown, uint32 procPhase, ProcEventInfo& eventInfo); bool HandleOverrideClassScriptAuraProc(Unit* victim, uint32 damage, AuraEffect* triggeredByAura, SpellInfo const* procSpell, uint32 cooldown); bool HandleAuraRaidProcFromChargeWithValue(AuraEffect* triggeredByAura); bool HandleAuraRaidProcFromCharge(AuraEffect* triggeredByAura); @@ -2511,6 +2517,10 @@ private: uint32 _oldFactionId; ///< faction before charm [[nodiscard]] float processDummyAuras(float TakenTotalMod) const; + + uint32 _lastExtraAttackSpell; + std::unordered_map extraAttacksTargets; + ObjectGuid _lastDamagedTargetGuid; }; namespace Acore diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 86c876c0a..dddaf542e 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -2605,6 +2605,8 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target) // Do damage and triggers else if (m_damage > 0) { + caster->SetLastDamagedTargetGuid(unitTarget->GetGUID()); + // Fill base damage struct (unitTarget - is real spell target) SpellNonMeleeDamage damageInfo(caster, unitTarget, m_spellInfo, m_spellSchoolMask); @@ -4049,8 +4051,10 @@ void Spell::_handle_finish_phase() m_caster->AddComboPoints(m_comboTarget, m_comboPointGain); } - if (m_caster->m_extraAttacks && GetSpellInfo()->HasEffect(SPELL_EFFECT_ADD_EXTRA_ATTACKS)) - m_caster->HandleProcExtraAttackFor(m_caster->GetVictim()); + if (m_spellInfo->HasEffect(SPELL_EFFECT_ADD_EXTRA_ATTACKS)) + { + m_caster->SetLastExtraAttackSpell(m_spellInfo->Id); + } if (!IsAutoRepeat() && !IsNextMeleeSwingSpell()) if (m_caster->GetCharmerOrOwnerPlayerOrPlayerItself()) diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index ef5dd6579..300f4c466 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -4664,17 +4664,18 @@ void Spell::EffectResurrect(SpellEffIndex effIndex) void Spell::EffectAddExtraAttacks(SpellEffIndex effIndex) { if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET) + { return; + } - if (!unitTarget || !unitTarget->IsAlive() || !unitTarget->GetVictim()) + if (!unitTarget || !unitTarget->IsAlive()) + { return; + } - if (unitTarget->m_extraAttacks) - return; + unitTarget->AddExtraAttacks(damage); - unitTarget->m_extraAttacks = damage; - - ExecuteLogEffectExtraAttacks(effIndex, unitTarget->GetVictim(), damage); + ExecuteLogEffectExtraAttacks(effIndex, unitTarget, damage); } void Spell::EffectParry(SpellEffIndex /*effIndex*/) From dec0081f6c000f5a643df247eb4469a23c4bc208 Mon Sep 17 00:00:00 2001 From: IntelligentQuantum Date: Sun, 27 Mar 2022 20:04:36 +0430 Subject: [PATCH 57/57] fix (Core/SmartScripts): allow to start waypoint movement for a creature that is in combat --- src/server/game/AI/SmartScripts/SmartAI.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp index 36314010b..2ca681a87 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.cpp +++ b/src/server/game/AI/SmartScripts/SmartAI.cpp @@ -179,12 +179,6 @@ void SmartAI::GenerateWayPointArray(Movement::PointsArray* points) void SmartAI::StartPath(bool run, uint32 path, bool repeat, Unit* invoker) { - if (me->IsInCombat())// no wp movement in combat - { - LOG_ERROR("scripts.ai.sai", "SmartAI::StartPath: Creature entry {} wanted to start waypoint movement while in combat, ignoring.", me->GetEntry()); - return; - } - if (HasEscortState(SMART_ESCORT_ESCORTING)) StopPath();