diff --git a/apps/installer/includes/os_configs/windows.sh b/apps/installer/includes/os_configs/windows.sh index c25e93116..b99c2bfeb 100644 --- a/apps/installer/includes/os_configs/windows.sh +++ b/apps/installer/includes/os_configs/windows.sh @@ -8,10 +8,10 @@ # microsoft-build-tools # mysql -INSTALL_ARGS="" +INSTALL_ARGS=() if [[ $CONTINUOUS_INTEGRATION ]]; then - INSTALL_ARGS=" --no-progress " + INSTALL_ARGS+=(--no-progress) else { # try choco uninstall -y -n cmake.install cmake # needed to make sure that following install set the env properly @@ -19,12 +19,12 @@ else echo "nothing to do" } - choco install -y --skip-checksums $INSTALL_ARGS git visualstudio2022community + choco install -y --skip-checksums "${INSTALL_ARGS[@]}" git visualstudio2022community fi -choco install -y --skip-checksums $INSTALL_ARGS cmake.install -y --installargs 'ADD_CMAKE_TO_PATH=System' -choco install -y --skip-checksums $INSTALL_ARGS visualstudio2022-workload-nativedesktop -choco install -y --skip-checksums $INSTALL_ARGS openssl --force --version=3.5.2 -choco install -y --skip-checksums $INSTALL_ARGS boost-msvc-14.3 --force --version=1.87.0 -choco install -y --skip-checksums $INSTALL_ARGS mysql --force --version=8.4.4 +choco install -y --skip-checksums "${INSTALL_ARGS[@]}" cmake.install -y --installargs 'ADD_CMAKE_TO_PATH=System' +choco install -y --skip-checksums "${INSTALL_ARGS[@]}" visualstudio2022-workload-nativedesktop +choco install -y --skip-checksums "${INSTALL_ARGS[@]}" openssl --force --version=3.5.3 +choco install -y --skip-checksums "${INSTALL_ARGS[@]}" boost-msvc-14.3 --force --version=1.87.0 +choco install -y --skip-checksums "${INSTALL_ARGS[@]}" mysql --force --version=8.4.4 diff --git a/data/sql/updates/db_world/2025_09_19_00.sql b/data/sql/updates/db_world/2025_09_19_00.sql new file mode 100644 index 000000000..10ef965f8 --- /dev/null +++ b/data/sql/updates/db_world/2025_09_19_00.sql @@ -0,0 +1,75 @@ +-- DB update 2025_09_17_00 -> 2025_09_19_00 +-- +DELETE FROM `waypoints` WHERE `entry`=25742; +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES +(25742, 1, 3511.336426, 4519.295898, -11.937509, 'Alluvius'); + +DELETE FROM `waypoints` WHERE `entry`=25652; +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES +(25652, 1, 3509.71, 4510.5, -14.6752, 'Nerub\'ar Scarab'), +(25652, 2, 3515.16, 4512.57, -13.4052, 'Nerub\'ar Scarab'), +(25652, 3, 3520.58, 4511.77, -12.5632, 'Nerub\'ar Scarab'), +(25652, 4, 3530.14, 4507.88, -12.9948, 'Nerub\'ar Scarab'), +(25652, 5, 3536.34, 4508.6, -12.9948, 'Nerub\'ar Scarab'), +(25652, 6, 3553.48, 4510.25, -12.9948, 'Nerub\'ar Scarab'); + +DELETE FROM `event_scripts` WHERE `id` IN (17084, 16929); +INSERT INTO `event_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) VALUES +(17084, 0, 10, 25794, 180000, 0, 3521.26, 4550.4, -12.8893, 3.95449), +(17084, 10, 8, 25794, 0, 0, 0.0, 0.0, 0.0, 0.0), +(17084, 15, 10, 25629, 180000, 0, 3454.72, 4511.48, -12.9969, 1.45063), +(16929, 7, 8, 25742, 0, 0, 0.0, 0.0, 0.0, 0.0), +(16929, 0, 10, 25742, 180000, 0, 3517.29, 4538.78, -12.9837, 4.42876), +(16929, 13, 10, 25629, 180000, 0, 3454.72, 4511.48, -12.9969, 1.45063), +(16929, 7, 10, 25652, 360000, 0, 3507.67, 4509.3, -14.7929, 0.94582), +(16929, 7, 10, 25652, 360000, 0, 3505.95, 4506.93, -14.8176, 0.94582), +(16929, 7, 10, 25652, 360000, 0, 3505.3, 4506.02, -14.8372, 0.94582), +(16929, 7, 10, 25652, 360000, 0, 3504.33, 4504.68, -14.8372, 0.94582); + +DELETE FROM `waypoints` WHERE `entry`=25629; +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES +(25629, 1, 3456.838379, 4512.561523, -13.007453, 'Lord Kryxix'), +(25629, 2, 3460.417725, 4529.125488, -12.949759, 'Lord Kryxix'), +(25629, 3, 3470.703613, 4542.340332, -12.984859, 'Lord Kryxix'), +(25629, 4, 3480.046143, 4548.960938, -12.982792, 'Lord Kryxix'), +(25629, 5, 3492.488525, 4548.432617, -12.966542, 'Lord Kryxix'), +(25629, 6, 3498.693604, 4544.571777, -12.983426, 'Lord Kryxix'); + +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 25652; +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 25652); +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`, `event_param6`, `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 +(25652, 0, 0, 0, 38, 0, 100, 0, 1, 1, 0, 0, 0, 0, 53, 0, 25652, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Nerub\'ar Scarab - On Data Set 1 1 - Start Waypoint Path 25652'), +(25652, 0, 1, 0, 40, 0, 100, 0, 6, 25652, 0, 0, 0, 0, 41, 1000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Nerub\'ar Scarab - On Point 6 of Path 25652 Reached - Despawn In 1000 ms'); + +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (25629, 25794, 25742) AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (2574200, 2574201) AND `source_type`=9; +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`, `event_param6`, `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 +(25629, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 0, 0, 53, 0, 25629, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Lord Kryxix - On Just Summoned - Start Waypoint Path 25629'), +(25629, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 18, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Lord Kryxix - On Just Summoned - Set Flags Immune To Players & Immune To NPC\'s'), +(25629, 0, 2, 3, 40, 0, 100, 0, 6, 25629, 0, 0, 0, 0, 19, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Lord Kryxix - On Point 6 of Path 25629 Reached - Remove Flags Immune To Players & Immune To NPC\'s'), +(25629, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 21, 40, 0, 0, 0, 0, 0, 0, 0, 'Lord Kryxix - On Point 6 of Path 25629 Reached - Start Attacking'), +(25629, 0, 4, 0, 7, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Lord Kryxix - On Evade - Despawn Instant'), +(25794, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Shake-n-Quake 5000 - On Just Summoned - Set Run Off'), +(25794, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 3496.31, 4539.46, -12.9751, 4.49483, 'Shake-n-Quake 5000 - On Just Summoned - Move To Position'), +(25794, 0, 2, 0, 1, 0, 100, 1, 30000, 30000, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Shake-n-Quake 5000 - Out of Combat - Despawn Instant (No Repeat)'), +(25794, 0, 3, 0, 34, 0, 100, 0, 8, 1, 0, 0, 0, 0, 17, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Shake-n-Quake 5000 - On Reached Point 1 - Set Emote State 35'), +(25794, 0, 4, 0, 1, 0, 100, 1, 17000, 17000, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 19, 25629, 0, 0, 0, 0, 0, 0, 0, 'Shake-n-Quake 5000 - Out of Combat - Say Line 1 (No Repeat)'), +(25742, 0, 0, 0, 54, 0, 100, 512, 0, 0, 0, 0, 0, 0, 53, 0, 25742, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Alluvius - On Just Summoned - Start Waypoint Path 25742'), +(25742, 0, 1, 0, 40, 0, 100, 512, 1, 25742, 0, 0, 0, 0, 80, 2574200, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Alluvius - On Point 1 of Path 25742 Reached - Run Script'), +(2574200, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 17, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Alluvius - Actionlist - Set Emote State 35'), +(2574200, 9, 1, 0, 0, 0, 100, 0, 4000, 4000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 25629, 0, 0, 0, 0, 0, 0, 0, 'Alluvius - Actionlist - Say Line 0'), +(2574200, 9, 2, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 0, 0, 45, 1, 1, 0, 0, 0, 0, 9, 25652, 0, 25, 0, 0, 0, 0, 0, 'Alluvius - Actionlist - Set Data 1 1'), +(2574200, 9, 3, 0, 0, 0, 100, 0, 6000, 6000, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Alluvius - Actionlist - Despawn Instant'); + +DELETE FROM `creature_text` WHERE `CreatureID`=25629 AND `GroupID`=1; +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(25629, 1, 0, 'Feebleminded tinkerer, do you really think your pathetic creation can stop me?', 14, 0, 100, 0, 0, 0, 24998, 0, 'Lord Kryxix'); + +DELETE FROM `conditions` WHERE `SourceEntry` IN (46017,45942) AND `SourceTypeOrReferenceId`=17; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`, `ErrorType`, `ErrorTextId`,`ScriptName`,`Comment`) VALUES +(17, 0, 46017, 0, 0, 29, 0, 25629, 70, 0, 1, 0, 0, '', ''), +(17, 0, 46017, 0, 0, 29, 0, 25794, 70, 0, 1, 0, 0, '', ''), +(17, 0, 46017, 0, 0, 29, 0, 25742, 70, 0, 1, 0, 0, '', ''), +(17, 0, 45942, 0, 0, 29, 0, 25629, 70, 0, 1, 0, 0, '', ''), +(17, 0, 45942, 0, 0, 29, 0, 25794, 70, 0, 1, 0, 0, '', ''), +(17, 0, 45942, 0, 0, 29, 0, 25742, 70, 0, 1, 0, 0, '', ''); diff --git a/data/sql/updates/db_world/2025_09_19_01.sql b/data/sql/updates/db_world/2025_09_19_01.sql new file mode 100644 index 000000000..c16a436c7 --- /dev/null +++ b/data/sql/updates/db_world/2025_09_19_01.sql @@ -0,0 +1,4 @@ +-- DB update 2025_09_19_00 -> 2025_09_19_01 +-- +DELETE FROM `achievement_criteria_data` WHERE `criteria_id`=4112 AND `type`=15; +INSERT INTO `achievement_criteria_data` (`criteria_id`, `type`, `value1`, `value2`, `ScriptName`) VALUES (4112, 15, 3, 0, ''); diff --git a/data/sql/updates/db_world/2025_09_19_02.sql b/data/sql/updates/db_world/2025_09_19_02.sql new file mode 100644 index 000000000..ab809a4eb --- /dev/null +++ b/data/sql/updates/db_world/2025_09_19_02.sql @@ -0,0 +1,17 @@ +-- DB update 2025_09_19_01 -> 2025_09_19_02 +-- +DELETE FROM `areatrigger_scripts` WHERE `entry` IN (4946,4947,4948); +INSERT INTO `areatrigger_scripts` (`entry`, `ScriptName`) VALUES +(4946, 'SmartTrigger'), +(4947, 'SmartTrigger'), +(4948, 'SmartTrigger'); + +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (4946,4947,4948) AND `source_type`=2; +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 +(4946, 2, 0, 0, 46, 0, 100, 0, 4946, 0, 0, 0, 0, 33, 26468, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, "Areatrigger - On Trigger - Quest Credit 'Uncovering the Tunnels' (North Building)"), +(4948, 2, 0, 0, 46, 0, 100, 0, 4948, 0, 0, 0, 0, 33, 26469, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, "Areatrigger - On Trigger - Quest Credit 'Uncovering the Tunnels' (South Building)"), +(4947, 2, 0, 0, 46, 0, 100, 0, 4947, 0, 0, 0, 0, 33, 26470, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, "Areatrigger - On Trigger - Quest Credit 'Uncovering the Tunnels' (East Building)"); + +UPDATE `creature_template` SET `AIName`='' WHERE `entry` IN (26468,26469,26470); + +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (26468,26469,26470) AND `source_type`=0; diff --git a/data/sql/updates/db_world/2025_09_19_03.sql b/data/sql/updates/db_world/2025_09_19_03.sql new file mode 100644 index 000000000..747d41bd6 --- /dev/null +++ b/data/sql/updates/db_world/2025_09_19_03.sql @@ -0,0 +1,17 @@ +-- DB update 2025_09_19_02 -> 2025_09_19_03 +-- +DELETE FROM `areatrigger_scripts` WHERE `entry` IN (5174, 5175, 5176); +INSERT INTO `areatrigger_scripts` (`entry`, `ScriptName`) VALUES +(5174, 'SmartTrigger'), +(5175, 'SmartTrigger'), +(5176, 'SmartTrigger'); + +DELETE FROM `smart_scripts` WHERE `entryorguid`IN (5174, 5175, 5176) AND `source_type`=2; +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 +(5174, 2, 0, 0, 46, 0, 100, 0, 5174, 0, 0, 0, 0, 33, 29455, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, "Areatrigger - On Trigger - Quest Credit 'That's What Friends Are For...' (Gerk)"), +(5175, 2, 0, 0, 46, 0, 100, 0, 5175, 0, 0, 0, 0, 33, 29454, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, "Areatrigger - On Trigger - Quest Credit 'That's What Friends Are For...' (Burr)"), +(5176, 2, 0, 0, 46, 0, 100, 0, 5176, 0, 0, 0, 0, 33, 29468, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, "Areatrigger - On Trigger - Quest Credit 'That's What Friends Are For...' (Crusader Dargoth)"); + +UPDATE `creature_template` SET `AIName`='' WHERE `entry` IN (29455, 29454, 29468); + +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (29455, 29454, 29468) AND `source_type`=0; diff --git a/data/sql/updates/db_world/2025_09_19_04.sql b/data/sql/updates/db_world/2025_09_19_04.sql new file mode 100644 index 000000000..8921e23c1 --- /dev/null +++ b/data/sql/updates/db_world/2025_09_19_04.sql @@ -0,0 +1,17 @@ +-- DB update 2025_09_19_03 -> 2025_09_19_04 +-- +DELETE FROM `areatrigger_scripts` WHERE `entry` IN (4725, 4724, 4726); +INSERT INTO `areatrigger_scripts` (`entry`, `ScriptName`) VALUES +(4725, 'SmartTrigger'), +(4724, 'SmartTrigger'), +(4726, 'SmartTrigger'); + +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (4725,4724,4726) AND `source_type`=2; +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 +(4725, 2, 0, 0, 46, 0, 100, 0, 4725, 0, 0, 0, 0, 33, 23814, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, "Areatrigger - On Trigger - Quest Credit 'X Marks... Your Doom!'' (Zul'Aman - Eagle God Invisman)"), +(4726, 2, 0, 0, 46, 0, 100, 0, 4726, 0, 0, 0, 0, 33, 23815, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, "Areatrigger - On Trigger - Quest Credit 'X Marks... Your Doom!'' (Zul'Aman - Lynx God Invisman)"), +(4724, 2, 0, 0, 46, 0, 100, 0, 4724, 0, 0, 0, 0, 33, 23813, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, "Areatrigger - On Trigger - Quest Credit 'X Marks... Your Doom!' (Zul'Aman - Dragonhawk God Invisman)"); + +UPDATE `creature_template` SET `AIName`='' WHERE `entry` IN (23814, 23815, 23813); + +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (23814, 23815, 23813) AND `source_type`=0; diff --git a/data/sql/updates/db_world/2025_09_19_05.sql b/data/sql/updates/db_world/2025_09_19_05.sql new file mode 100644 index 000000000..d9e6ffe53 --- /dev/null +++ b/data/sql/updates/db_world/2025_09_19_05.sql @@ -0,0 +1,83 @@ +-- DB update 2025_09_19_04 -> 2025_09_19_05 +-- +UPDATE `creature_template` SET `unit_flags`=`unit_flags` | (256 | 512 | 33554432) WHERE `entry`IN (25458, 25769); +UPDATE `creature_template` SET `unit_flags`=`unit_flags` | (256 | 512 | 32768 | 33554432) WHERE `entry` IN (25457); +UPDATE `creature_template` SET `unit_flags`=`unit_flags` | (256 | 32768 | 33554432) WHERE `entry` IN (25456, 25424); + +UPDATE `creature_template` SET `AIName`= 'SmartAI' WHERE `entry` IN (25769, 24730, 25456, 25457, 25458); +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (25769, 24730, 25456, 25457, 25458) AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (2574201, 2473000, 2545600, 2545800) AND `source_type`=9; +DELETE FROM `smart_scripts` WHERE `entryorguid`=30886 AND `source_type`=0 AND `id`=1; +DELETE FROM `smart_scripts` WHERE `entryorguid`=25742 AND `source_type`=0 AND `id`=2; +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`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(24730, 0, 0, 0, 20, 0, 100, 0, 11695, 0, 0, 0, 80, 2473000, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Wind Tamer Barah - On Quest Reward (The Horn of Elemental Fury) - Run Script'), +(25769, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 11, 45979, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Small Elemental - On Just Summoned - Cast Elemental Beam'), +(25769, 0, 1, 2, 1, 0, 100, 1, 8000, 8000, 0, 0, 28, 45979, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Small Elemental - OOC (8 Sec) - Remove Aura'), +(25769, 0, 2, 0, 61, 0, 100, 1, 0, 0, 0, 0, 90, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Small Elemental - OOC (8 Sec) - Set Bytes 1'), +(25742, 0, 2, 0, 54, 0, 100, 1, 0, 0, 0, 0, 80, 2574201, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Alluvius - On Just Summoned - Run Script 2'), +(2574201, 9, 0, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 5, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Alluvius - Script 2 - Play emote OneShotAttackUnarmed'), +(2574201, 9, 1, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 24730, 0, 0, 0, 0, 0, 0, 'Alluvius - Script 2 - Say Line 0'), +(2473000, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Wind Tamer Barah - Script - Set NPC Flags'), +(2473000, 9, 1, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 11, 43320, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Wind Tamer Barah - Script - Cast Windwarden Channeling'), +(2473000, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 12, 25771, 1, 12000, 0, 0, 0, 8, 0, 0, 0, 3526.857, 4215.892, 16.89778, 0.9599311, 'Wind Tamer Barah - Script - Summon Ice Elemental Target'), +(2473000, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 12, 25769, 1, 10000, 0, 0, 0, 8, 0, 0, 0, 3526.76, 4208.782, 12.51583, 0.9599311, 'Wind Tamer Barah - Script - Summon Small Elemental'), +(2473000, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 12, 25769, 1, 10000, 0, 0, 0, 8, 0, 0, 0, 3530.082, 4210.271, 12.5575, 1.029744, 'Wind Tamer Barah - Script - Summon Small Elemental'), +(2473000, 9, 5, 0, 0, 0, 100, 0, 0, 0, 0, 0, 12, 25769, 1, 10000, 0, 0, 0, 8, 0, 0, 0, 3533.227, 4213.772, 12.55055, 2.80998, 'Wind Tamer Barah - Script - Summon Small Elemental'), +(2473000, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 12, 25769, 1, 10000, 0, 0, 0, 8, 0, 0, 0, 3531.661, 4218.423, 12.57833, 0.9250245, 'Wind Tamer Barah - Script - Summon Small Elemental'), +(2473000, 9, 7, 0, 0, 0, 100, 0, 0, 0, 0, 0, 12, 25769, 1, 10000, 0, 0, 0, 8, 0, 0, 0, 3528.847, 4221.306, 12.52278, 2.75762, 'Wind Tamer Barah - Script - Summon Small Elemental'), +(2473000, 9, 8, 0, 0, 0, 100, 0, 0, 0, 0, 0, 12, 25769, 1, 10000, 0, 0, 0, 8, 0, 0, 0, 3524.509, 4220.787, 12.59916, 3.630285, 'Wind Tamer Barah - Script - Summon Small Elemental'), +(2473000, 9, 9, 0, 0, 0, 100, 0, 8000, 8000, 0, 0, 12, 25742, 1, 7000, 0, 0, 0, 8, 0, 0, 0, 3526.815, 4215.751, 13.3075, 3.752458, 'Wind Tamer Barah - Script - Summon Alluvius'), +(2473000, 9, 10, 0, 0, 0, 100, 0, 0, 0, 0, 0, 92,0, 43320, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Wind Tamer Barah - Script - Remove Aura'), +(2473000, 9, 11, 0, 0, 0, 100, 0, 0, 0, 0, 0, 81, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Wind Tamer Barah - Script - Set NPC Flags'), +(25458, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 53, 0, 25458, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Vision of Farseer Grimwalkers Spirit - On Just Summoned - Start WP'), +(25458, 0, 1, 0, 40, 0, 100, 0, 2, 25458, 0, 0, 80, 2545800, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Vision of Farseer Grimwalkers Spirit - On Reached WP2 - Run Script'), +(25457, 0, 0, 0, 38, 0, 100, 0, 1, 1, 0, 0, 11, 45581, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Vision of Magmoth Shaman - On Data Set - Cast Spirit Shackle'), +(25456, 0, 0, 2, 54, 0, 100, 0, 0, 0, 0, 0, 53, 0, 25456, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Vision of Kaganishu - On Just Summoned - Start WP'), +(25456, 0, 1, 0, 40, 0, 100, 0, 2, 25456, 0, 0, 80, 2545600, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Vision of Kaganishu - On Reached WP2 - Run Script'), +(25456, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 50, 187679, 14, 0, 0, 0, 0, 8, 0, 0, 0, 4528.167, 5678.6, 82.23339, 0.6283169, 'Vision of Kaganishu - On Just Summoned - Spawn Blue aura, short column, scale 6'), +(2545600, 9, 0, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 11, 45595, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Vision of Kaganishu - Script - Cast Fireball'), +(2545600, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Vision of Kaganishu - Script - Say'), +(2545800, 9, 0, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 45, 1, 1, 0, 0, 0, 0, 9, 25457, 0, 40, 0, 0, 0, 0, 'Vision of Farseer Grimwalkers Spirit - Script - Set Data on Vision of Magmoth Shaman'), -- 21:09:47.563 +(2545800, 9, 1, 0, 0, 0, 100, 0, 500, 500, 0, 0, 17, 383, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Vision of Farseer Grimwalkers Spirit - Script - Set Emote State'), -- 21:09:47.563 +(2545800, 9, 2, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 19, 25339, 0, 0, 0, 0, 0, 0, 'Vision of Farseer Grimwalkers Spirit - Script - Say Line 0'), -- 21:09:44.297 +(2545800, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 11, 45605, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Vision of Farseer Grimwalkers Spirit - Script - Cast Vision of Air: Kill Credit'), -- 21:09:57.953 +(30886, 0, 1, 0, 54, 0, 100, 0, 0, 0, 0, 0, 29, 0, 0, 30232, 0, 1, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Subjugated Iskalder - Out of Combat - Start Follow Invoker'); + +DELETE FROM `creature_text` WHERE `CreatureID` IN (24730, 25339, 25456); +INSERT INTO `creature_text` (`CreatureID`, `groupid`, `id`, `text`, `type`, `language`, `probability`, `emote`, `duration`, `sound`, `BroadcastTextID`, `comment`) VALUES +(24730, 0, 0, 'With the power of the horn, I bind you to its wielder''s will!', 12, 0, 100, 0, 0, 0, 24963, 'Wind Tamer Barah to Player'), +(25339, 0, 0, 'Oh no... they''ve shackled his spirit!', 12, 1, 100, 5, 0, 0, 24683, 'Spirit Talker Snarlfang'), +(25456, 0, 0, 'KAGANISHU!', 12, 0, 100, 0, 0, 0, 24658, 'Vision of Kaganishu'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry` IN (45979, 45581); +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=22 AND `SourceEntry`=25742; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(13, 1, 45979, 0, 0, 31, 0, 3, 25771, 0, 0, 0, 0, '', 'Elemental Beam only targets Ice Elemental Target'), +(13, 1, 45581, 0, 0, 31, 0, 3, 25458, 0, 0, 0, 0, '', 'Spirit Shackle only targets Vision of Farseer Grimwalkers Spirit'), +(22, 1, 25742, 0, 0, 23, 1, 4037, 0, 0, 1, 0, 0, '', 'Alluvius - Only Run SAI if not summoned in Taunka le village'), +(22, 4, 25742, 0, 0, 23, 1, 4037, 0, 0, 0, 0, 0, '', 'Alluvius - Only Run SAI if summoned in Taunka le village'); + +DELETE FROM `waypoints` WHERE `entry` IN (25456, 25458); +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES +(25456, 1, 4525.928, 5677.233, 81.70667, 'Vision of Kaganishu'), +(25456, 2, 4527.502, 5678.359, 81.88042, 'Vision of Kaganishu'), +(25458, 1, 4528.928, 5679.599, 81.99405, 'Vision of Farseer Grimwalkers Spirit'), +(25458, 2, 4528.823, 5679.591, 83.10519, 'Vision of Farseer Grimwalkers Spirit'); + +DELETE FROM `event_scripts` WHERE `id`=16716; +INSERT INTO `event_scripts` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) VALUES +(16716, 5, 10, 25424, 16000, 0, 4529.002, 5679.642, 82.36562, 3.769911), +(16716, 6, 10, 25457, 15000, 0, 4528.024, 5680.72, 82.29639, 5.497787), +(16716, 6, 10, 25457, 15000, 0, 4530.323, 5680.649, 82.45662, 3.769911), +(16716, 6, 10, 25457, 15000, 0, 4529.922, 5678.596, 82.38788, 2.286381), +(16716, 7, 10, 25456, 14000, 0, 4525.962, 5677.239, 82.14642, 0.6290413), +(16716, 12, 10,25458, 9000, 0, 4528.883, 5679.529, 82.23911, 0.6290413); + +DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` = 1) AND (`SourceEntry` = 45595) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 31) AND (`ConditionTarget` = 0) AND (`ConditionValue1` = 3) AND (`ConditionValue2` = 25424) AND (`ConditionValue3` = 0); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(13, 1, 45595, 0, 0, 31, 0, 3, 25424, 0, 0, 0, 0, '', '45595 Fireball requires target entry 25424'); + +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 25424; +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 25424); +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`, `event_param6`, `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 +(25424, 0, 0, 0, 8, 0, 100, 0, 45595, 0, 0, 0, 0, 0, 11, 58951, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vision of Farseer Grimwalker - On Spellhit \'Fireball\' - Cast \'Permanent Feign Death\''); diff --git a/data/sql/updates/db_world/2025_09_19_06.sql b/data/sql/updates/db_world/2025_09_19_06.sql new file mode 100644 index 000000000..2fc578b50 --- /dev/null +++ b/data/sql/updates/db_world/2025_09_19_06.sql @@ -0,0 +1,424 @@ +-- DB update 2025_09_19_05 -> 2025_09_19_06 + +-- First Cleaning +DELETE FROM `creature_addon` WHERE (`guid` IN (111316)); +DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 22) AND (`SourceGroup` IN (1, 2, 3)) AND (`SourceEntry` = 25760) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 1) AND (`ConditionTarget` = 1) AND (`ConditionValue1` = 43671) AND (`ConditionValue2` = 1) AND (`ConditionValue3` = 0); +DELETE FROM `creature_addon` WHERE (`guid` IN (106032, 106033, 106034, 106060, 106061, 106062, 106063, 106064, 106070, 106075, 106076, 106077, 106078, 106081, 106082, 106085, 106086, 106087, 106088, 106089, 106090, 106091, 106092, 106093, 106094, 106095, 106096, 106097, 106098, 106099, 203098, 203099, 203100, 203101, 203102, 203103, 203104, 203105, 203106, 203107, 203108, 203109, 203110, 203111, 203112, 203113, 203114, 203115, 203116, 203117, 203118, 203119, 203120, 203121)); + +-- Add Waypoints (Kaskala Defender) +DELETE FROM `waypoint_data` WHERE `id` IN (11134200, 11131800); +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(11134200, 1, 3149.4033, 4925.049, 18.674778, NULL, 0, 1, 0, 100, 0), +(11134200, 2, 3146.1138, 4895.7217, 4.376553, NULL, 0, 1, 0, 100, 0), +(11134200, 3, 3136.9417, 4873.775, 2.3298535, NULL, 10000, 1, 0, 100, 0), +(11134200, 4, 3146.1138, 4895.7217, 4.376553, NULL, 0, 1, 0, 100, 0), +(11134200, 5, 3149.4033, 4925.049, 18.674778, NULL, 0, 1, 0, 100, 0), +(11134200, 6, 3151.7776, 4945.129, 23.179853, NULL, 0, 1, 0, 100, 0), +(11131800, 1, 3146.3132, 4707.9873, 5.4270196, NULL, 0, 1, 0, 100, 0), +(11131800, 2, 3132.9802, 4716.07, 5.6354103, NULL, 0, 1, 0, 100, 0), +(11131800, 3, 3106.4517, 4719.3823, 2.3187456, NULL, 0, 1, 0, 100, 0), +(11131800, 4, 3090.6516, 4722.042, 1.052222, NULL, 0, 1, 0, 100, 0); + +-- Set Waypoints (Vrykul Landing Ship) +DELETE FROM `waypoints` WHERE (`entry` IN (11126800, 11126900, 11127000, 11127100, 11127200, 11127400, 11127600, 11127700, 11130000, 11135100, 11135200, 11135400, 11135600, 11135800)); +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `orientation`, `point_comment`) VALUES +(11126800, 1, 2579.2214, 4823.605, -0.8203597, NULL, 'Vrykul Landing Ship 1'), +(11126800, 2, 2649.6462, 4835.24, -0.433506, NULL, 'Vrykul Landing Ship 1'), +(11126800, 3, 2669.8997, 4841.373, -0.433506, NULL, 'Vrykul Landing Ship 1'), +(11126800, 4, 2701.5034, 4845.5366, -0.433506, NULL, 'Vrykul Landing Ship 1'), +(11126800, 5, 2750.7495, 4839.2134, 0.038716, NULL, 'Vrykul Landing Ship 1'), +(11126800, 6, 2791.695, 4833.7173, 0.594272, NULL, 'Vrykul Landing Ship 1'), +(11126800, 7, 2809.8044, 4840.325, -0.433506, NULL, 'Vrykul Landing Ship 1'), +(11126800, 8, 2816.759, 4842.016, 0.949364, NULL, 'Vrykul Landing Ship 1'), +(11126800, 9, 2816.759, 4842.016, 0.949364, NULL, 'Vrykul Landing Ship 1'), +(11126900, 1, 2457.191, 4594.963, 0.6052653, NULL, 'Vrykul Landing Ship 2'), +(11126900, 2, 2488.26, 4597.3145, 0.427169, NULL, 'Vrykul Landing Ship 2'), +(11126900, 3, 2528.3638, 4602.974, 0.427169, NULL, 'Vrykul Landing Ship 2'), +(11126900, 4, 2553.9846, 4612.133, 0.427169, NULL, 'Vrykul Landing Ship 2'), +(11126900, 5, 2585.0964, 4627.964, 0.427169, NULL, 'Vrykul Landing Ship 2'), +(11126900, 6, 2624.1934, 4650.108, 0.732726, NULL, 'Vrykul Landing Ship 2'), +(11126900, 7, 2639.6719, 4657.288, 2.011442, NULL, 'Vrykul Landing Ship 2'), +(11126900, 8, 2659.1223, 4657.5166, 2.150331, NULL, 'Vrykul Landing Ship 2'), +(11126900, 9, 2673.8782, 4657.5664, 0.678108, NULL, 'Vrykul Landing Ship 2'), +(11126900, 10, 2673.8782, 4657.5664, 0.678108, NULL, 'Vrykul Landing Ship 2'), +(11127000, 1, 2511.4326, 4744.4766, -6.511777, NULL, 'Vrykul Landing Ship 3'), +(11127000, 2, 2534.8718, 4743.6357, -6.511777, NULL, 'Vrykul Landing Ship 3'), +(11127000, 3, 2557.533, 4747.338, -6.511777, NULL, 'Vrykul Landing Ship 3'), +(11127000, 4, 2588.6963, 4751.527, -0.59511, NULL, 'Vrykul Landing Ship 3'), +(11127000, 5, 2625.817, 4763.9854, -0.59511, NULL, 'Vrykul Landing Ship 3'), +(11127000, 6, 2646.1028, 4806.517, -0.59511, NULL, 'Vrykul Landing Ship 3'), +(11127000, 7, 2666.5676, 4826.0933, -0.59511, NULL, 'Vrykul Landing Ship 3'), +(11127000, 8, 2686.9749, 4839.009, -0.59511, NULL, 'Vrykul Landing Ship 3'), +(11127000, 9, 2727.317, 4831.3906, -0.59511, NULL, 'Vrykul Landing Ship 3'), +(11127000, 10, 2766.0833, 4817.311, -0.59511, NULL, 'Vrykul Landing Ship 3'), +(11127000, 11, 2801.9817, 4813.31, -0.59511, NULL, 'Vrykul Landing Ship 3'), +(11127000, 12, 2832.4382, 4810.035, -0.59511, NULL, 'Vrykul Landing Ship 3'), +(11127000, 13, 2859.8577, 4811.1816, -0.59511, NULL, 'Vrykul Landing Ship 3'), +(11127000, 14, 2885.0713, 4823.6157, -0.59511, NULL, 'Vrykul Landing Ship 3'), +(11127000, 15, 2911.754, 4830.464, 0.228774, NULL, 'Vrykul Landing Ship 3'), +(11127100, 1, 2628.6475, 4845.346, -0.429038, NULL, 'Vrykul Landing Ship 4'), +(11127100, 2, 2665.852, 4851.7734, -0.429038, NULL, 'Vrykul Landing Ship 4'), +(11127100, 3, 2699.2297, 4844.348, -0.429038, NULL, 'Vrykul Landing Ship 4'), +(11127100, 4, 2740.8428, 4848.6406, 0.043184, NULL, 'Vrykul Landing Ship 4'), +(11127100, 5, 2759.4998, 4846.9707, 1.146761, NULL, 'Vrykul Landing Ship 4'), +(11127100, 6, 2773.8762, 4838.8735, 1.146761, NULL, 'Vrykul Landing Ship 4'), +(11127200, 1, 2490.6191, 4705.7686, 0.038361, NULL, 'Vrykul Landing Ship 5'), +(11127200, 2, 2531.235, 4728.648, 0.038361, NULL, 'Vrykul Landing Ship 5'), +(11127200, 3, 2565.2295, 4741.6284, 0.038361, NULL, 'Vrykul Landing Ship 5'), +(11127200, 4, 2598.793, 4750.8213, 0.038361, NULL, 'Vrykul Landing Ship 5'), +(11127200, 5, 2632.165, 4750.868, 0.038361, NULL, 'Vrykul Landing Ship 5'), +(11127200, 6, 2660.028, 4750.592, 0.038361, NULL, 'Vrykul Landing Ship 5'), +(11127200, 7, 2689.5083, 4752.8315, 3.371695, NULL, 'Vrykul Landing Ship 5'), +(11127200, 8, 2700.8555, 4753.103, 2.566139, NULL, 'Vrykul Landing Ship 5'), +(11127400, 1, 2445.257, 4662.1006, 0.026706334, NULL, 'Vrykul Landing Ship 7'), +(11127400, 2, 2490.6191, 4705.7686, 0.038361, NULL, 'Vrykul Landing Ship 7'), +(11127400, 3, 2531.235, 4728.648, 0.038361, NULL, 'Vrykul Landing Ship 7'), +(11127400, 4, 2565.2295, 4741.6284, 0.038361, NULL, 'Vrykul Landing Ship 7'), +(11127400, 5, 2598.793, 4750.8213, 0.038361, NULL, 'Vrykul Landing Ship 7'), +(11127400, 6, 2619.515, 4742.1113, 0.038361, NULL, 'Vrykul Landing Ship 7'), +(11127400, 7, 2647.256, 4737.366, 0.038361, NULL, 'Vrykul Landing Ship 7'), +(11127400, 8, 2677.861, 4734.383, 3.371695, NULL, 'Vrykul Landing Ship 7'), +(11127400, 9, 2699.568, 4734.7446, 2.566139, NULL, 'Vrykul Landing Ship 7'), +(11127400, 10, 2699.568, 4734.7446, 2.566139, NULL, 'Vrykul Landing Ship 7'), +(11127600, 1, 2478.6301, 4746.223, 1.0363294, NULL, 'Vrykul Landing Ship 9'), +(11127600, 2, 2511.4326, 4744.4766, -6.511777, NULL, 'Vrykul Landing Ship 9'), +(11127600, 3, 2534.8718, 4743.6357, -6.511777, NULL, 'Vrykul Landing Ship 9'), +(11127600, 4, 2557.533, 4747.338, -6.511777, NULL, 'Vrykul Landing Ship 9'), +(11127600, 5, 2588.6963, 4751.527, -0.59511, NULL, 'Vrykul Landing Ship 9'), +(11127600, 6, 2625.817, 4763.9854, -0.59511, NULL, 'Vrykul Landing Ship 9'), +(11127600, 7, 2646.1028, 4806.517, -0.59511, NULL, 'Vrykul Landing Ship 9'), +(11127600, 8, 2666.5676, 4826.0933, -0.59511, NULL, 'Vrykul Landing Ship 9'), +(11127600, 9, 2686.9749, 4839.009, -0.59511, NULL, 'Vrykul Landing Ship 9'), +(11127600, 10, 2727.317, 4831.3906, -0.59511, NULL, 'Vrykul Landing Ship 9'), +(11127600, 11, 2766.0833, 4817.311, -0.59511, NULL, 'Vrykul Landing Ship 9'), +(11127600, 12, 2801.9817, 4813.31, -0.59511, NULL, 'Vrykul Landing Ship 9'), +(11127600, 13, 2832.4382, 4810.035, -0.59511, NULL, 'Vrykul Landing Ship 9'), +(11127600, 14, 2859.277, 4813.8745, -0.59511, NULL, 'Vrykul Landing Ship 9'), +(11127600, 15, 2891.7354, 4825.067, -0.59511, NULL, 'Vrykul Landing Ship 9'), +(11127600, 16, 2910.1626, 4827.48, 0.228774, NULL, 'Vrykul Landing Ship 9'), +(11127600, 17, 2910.1626, 4827.48, 0.228774, NULL, 'Vrykul Landing Ship 9'), +(11127700, 1, 2517.355, 4530.788, 1.1790904, NULL, 'Vrykul Landing Ship 10'), +(11127700, 2, 2662.2183, 4535.325, -0.678829, NULL, 'Vrykul Landing Ship 10'), +(11127700, 3, 2691.806, 4529.086, -0.512162, NULL, 'Vrykul Landing Ship 10'), +(11127700, 4, 2736.0542, 4526.4854, -0.623273, NULL, 'Vrykul Landing Ship 10'), +(11127700, 5, 2778.212, 4529.0156, -0.678829, NULL, 'Vrykul Landing Ship 10'), +(11127700, 6, 2800.9548, 4541.9863, -0.539939, NULL, 'Vrykul Landing Ship 10'), +(11127700, 7, 2803.291, 4565.0054, -0.512162, NULL, 'Vrykul Landing Ship 10'), +(11127700, 8, 2788.7795, 4592.891, 0.594683, NULL, 'Vrykul Landing Ship 10'), +(11127700, 9, 2788.7795, 4592.891, 0.594683, NULL, 'Vrykul Landing Ship 10'), +(11130000, 1, 2456.4739, 4596.568, 0.41908133, NULL, 'Vrykul Landing Ship 11'), +(11130000, 2, 2488.2063, 4607.034, 0.107297, NULL, 'Vrykul Landing Ship 11'), +(11130000, 3, 2511.7375, 4608.8145, -0.031591, NULL, 'Vrykul Landing Ship 11'), +(11130000, 4, 2549.549, 4609.5674, -0.253813, NULL, 'Vrykul Landing Ship 11'), +(11130000, 5, 2581.1257, 4614.378, -0.170479, NULL, 'Vrykul Landing Ship 11'), +(11130000, 6, 2617.1423, 4625.0347, -0.17048, NULL, 'Vrykul Landing Ship 11'), +(11130000, 7, 2651.4731, 4637.1606, 0.551742, NULL, 'Vrykul Landing Ship 11'), +(11130000, 8, 2671.6572, 4640.0513, 0.440631, NULL, 'Vrykul Landing Ship 11'), +(11130000, 9, 2671.6572, 4640.0513, 0.440631, NULL, 'Vrykul Landing Ship 11'), +(11135100, 1, 2641.808, 4495.941, 0.8720563, NULL, 'Vrykul Landing Ship 12'), +(11135100, 2, 2675.1506, 4500.2935, -0.10489, NULL, 'Vrykul Landing Ship 12'), +(11135100, 3, 2704.5142, 4505.4575, -0.577112, NULL, 'Vrykul Landing Ship 12'), +(11135100, 4, 2730.1506, 4507.737, -0.577112, NULL, 'Vrykul Landing Ship 12'), +(11135100, 5, 2764.201, 4507.409, -0.577112, NULL, 'Vrykul Landing Ship 12'), +(11135100, 6, 2797.065, 4507.117, -0.577112, NULL, 'Vrykul Landing Ship 12'), +(11135100, 7, 2830.0627, 4511.0356, -0.577112, NULL, 'Vrykul Landing Ship 12'), +(11135100, 8, 2859.387, 4517.4766, -0.577112, NULL, 'Vrykul Landing Ship 12'), +(11135100, 9, 2891.6492, 4555.0947, -0.577112, NULL, 'Vrykul Landing Ship 12'), +(11135100, 10, 2918.3743, 4593.6196, -0.577112, NULL, 'Vrykul Landing Ship 12'), +(11135100, 11, 2937.4097, 4629.699, -0.577112, NULL, 'Vrykul Landing Ship 12'), +(11135100, 12, 2975.9182, 4654.743, -0.577112, NULL, 'Vrykul Landing Ship 12'), +(11135100, 13, 2999.4114, 4675.8364, 0.283999, NULL, 'Vrykul Landing Ship 12'), +(11135100, 14, 3009.7444, 4699.436, 0.407588, NULL, 'Vrykul Landing Ship 12'), +(11135100, 15, 3009.7444, 4699.436, 0.407588, NULL, 'Vrykul Landing Ship 12'), +(11135200, 1, 2743.4175, 4409.3403, -0.572061, NULL, 'Vrykul Landing Ship 13'), +(11135200, 2, 2773.2158, 4421.914, -0.544283, NULL, 'Vrykul Landing Ship 13'), +(11135200, 3, 2810.513, 4442.2505, -1.294283, NULL, 'Vrykul Landing Ship 13'), +(11135200, 4, 2835.199, 4455.702, -0.266505, NULL, 'Vrykul Landing Ship 13'), +(11135200, 5, 2871.379, 4476.3145, -1.044283, NULL, 'Vrykul Landing Ship 13'), +(11135200, 6, 2893.4014, 4502.4224, -0.516505, NULL, 'Vrykul Landing Ship 13'), +(11135200, 7, 2913.0557, 4526.5293, -0.822061, NULL, 'Vrykul Landing Ship 13'), +(11135200, 8, 2930.0562, 4552.5845, -0.71095, NULL, 'Vrykul Landing Ship 13'), +(11135200, 9, 2953.5923, 4561.147, 0.650161, NULL, 'Vrykul Landing Ship 13'), +(11135200, 10, 2966.1594, 4570.092, 0.650161, NULL, 'Vrykul Landing Ship 13'), +(11135200, 11, 2970.8586, 4581.6016, 0.650161, NULL, 'Vrykul Landing Ship 13'), +(11135400, 1, 2746.8481, 4402.444, -1.403634, NULL, 'Vrykul Landing Ship 15'), +(11135400, 2, 2774.7322, 4408.6597, -0.792523, NULL, 'Vrykul Landing Ship 15'), +(11135400, 3, 2797.6406, 4423.191, -1.264745, NULL, 'Vrykul Landing Ship 15'), +(11135400, 4, 2814.326, 4443.4546, -0.264745, NULL, 'Vrykul Landing Ship 15'), +(11135400, 5, 2824.8604, 4466.13, -0.375856, NULL, 'Vrykul Landing Ship 15'), +(11135400, 6, 2848.289, 4483.9434, -0.153634, NULL, 'Vrykul Landing Ship 15'), +(11135400, 7, 2882.9192, 4509.3228, -0.736968, NULL, 'Vrykul Landing Ship 15'), +(11135400, 8, 2927.0059, 4576.246, -0.264745, NULL, 'Vrykul Landing Ship 15'), +(11135400, 9, 2945.938, 4594.45, -0.264745, NULL, 'Vrykul Landing Ship 15'), +(11135400, 10, 2962.0256, 4595.068, -0.264745, NULL, 'Vrykul Landing Ship 15'), +(11135400, 11, 2977.9758, 4587.138, 0.396201, NULL, 'Vrykul Landing Ship 15'), +(11135600, 1, 2675.1506, 4500.2935, -0.10489, NULL, 'Vrykul Landing Ship 17'), +(11135600, 2, 2704.5142, 4505.4575, -0.577112, NULL, 'Vrykul Landing Ship 17'), +(11135600, 3, 2730.1506, 4507.737, -0.577112, NULL, 'Vrykul Landing Ship 17'), +(11135600, 4, 2764.201, 4507.409, -0.577112, NULL, 'Vrykul Landing Ship 17'), +(11135600, 5, 2797.065, 4507.117, -0.577112, NULL, 'Vrykul Landing Ship 17'), +(11135600, 6, 2830.0627, 4511.0356, -0.577112, NULL, 'Vrykul Landing Ship 17'), +(11135600, 7, 2859.387, 4517.4766, -0.577112, NULL, 'Vrykul Landing Ship 17'), +(11135600, 8, 2891.6492, 4555.0947, -0.577112, NULL, 'Vrykul Landing Ship 17'), +(11135600, 9, 2918.3743, 4593.6196, -0.577112, NULL, 'Vrykul Landing Ship 17'), +(11135600, 10, 2937.4097, 4629.699, -0.577112, NULL, 'Vrykul Landing Ship 17'), +(11135600, 11, 2975.9182, 4654.743, -0.577112, NULL, 'Vrykul Landing Ship 17'), +(11135600, 12, 2999.4114, 4675.8364, 0.283999, NULL, 'Vrykul Landing Ship 17'), +(11135600, 13, 3009.7444, 4699.436, 0.407588, NULL, 'Vrykul Landing Ship 17'), +(11135800, 1, 2517.355, 4530.788, 1.1790904, NULL, 'Vrykul Landing Ship 19'), +(11135800, 2, 2662.2183, 4535.325, -0.678829, NULL, 'Vrykul Landing Ship 19'), +(11135800, 3, 2691.806, 4529.086, -0.512162, NULL, 'Vrykul Landing Ship 19'), +(11135800, 4, 2736.0542, 4526.4854, -0.623273, NULL, 'Vrykul Landing Ship 19'), +(11135800, 5, 2778.212, 4529.0156, -0.678829, NULL, 'Vrykul Landing Ship 19'), +(11135800, 6, 2800.9548, 4541.9863, -0.539939, NULL, 'Vrykul Landing Ship 19'), +(11135800, 7, 2803.291, 4565.0054, -0.512162, NULL, 'Vrykul Landing Ship 19'), +(11135800, 8, 2788.7795, 4592.891, 0.594683, NULL, 'Vrykul Landing Ship 19'); + +-- Set New Sniffed Positions (Invisible Stalker) +DELETE FROM `creature` WHERE (`id1` = 15214) AND (`guid` IN (106032, 106033, 106034, 106060, 106061, 106062, 106063, 106064, 106070, 106073, 106075, 106076, 106077, 106078, 106081, 106082, 106085, 106086, 106087, 106088, 106089, 106090, 106091, 106092, 106093, 106094, 106095, 106096, 106097, 106098, 106099, 106118, 106239, 106245, 106246, 106248, 106252, 106253, 106254, 106262, 106263, 106264, 106289, 106290, 106291, 106292, 106293, 106294, 106297, 106298, 106299, 106300, 106301, 106324, 106325, 106327, 203098, 203099, 203100, 203101, 203102, 203103, 203104, 203105, 203106, 203107, 203108, 203109, 203110, 203111, 203112, 203113, 203114, 203115, 203116, 203117, 203118, 203119, 203120, 203121)); +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`, `CreateObject`, `Comment`) VALUES +(106034, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2755.0852, 4742.599, 2.3212762, 0.191986218094825744, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106060, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 3008.941, 4599.6206, 2.1306531, 2.897246599197387695, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106061, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2938.7031, 4875.4907, 2.0749023, 0.78539818525314331, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106062, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 3023.54, 4606.253, 1.7510604, 1.745329260826110839, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106063, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2821.165, 4926.5005, 4.6839943, 0.174532920122146606, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106064, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2835.2612, 4597.1157, 0.8757513, 1.815142393112182617, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106070, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2939.2075, 4883.593, 2.5826552, 0.645771801471710205, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106073, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2832.2065, 4899.838, 2.1563613, 2.042035102844238281, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106075, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2849.2083, 4621.674, 2.1250663, 5.515240192413330078, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106076, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 3047.9187, 4703.313, 2.2478793, 6.108652114868164062, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106077, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2694.7415, 4664.8535, 2.2670112, 0.087266460061073303, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106078, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 3050.384, 4686.487, 1.3181744, 0.157079637050628662, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106081, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2948.3308, 4866.5376, 12.758318, 0.994837641716003417, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106082, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2804.895, 4906.14, 2.3081713, 0.191986218094825744, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106085, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2817.889, 4889.3984, 2.1925852, 0.680678427219390869, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106086, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2810.5696, 4897.5894, 2.6599483, 0.418879032135009765, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106087, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 3060.5608, 4663.612, 2.2584462, 2.897246599197387695, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106088, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2709.876, 4637.5303, 2.7416093, 0.209439516067504882, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106089, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2744.467, 4719.54, 2.2597532, 1.256637096405029296, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106090, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2826.9426, 4603.791, 2.2887514, 1.745329260826110839, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106091, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 3022.279, 4586.688, 2.2484403, 0.959931075572967529, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106092, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 3034.5913, 4593.6494, 3.3587472, 0.261799395084381103, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106093, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 3043.0408, 4675.3228, 2.1848934, 0.279252678155899047, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106094, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2738.4011, 4738.856, 2.4203303, 6.056292533874511718, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106095, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2814.5776, 4907.915, 2.2460773, 0.122173048555850982, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106096, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2826.9934, 4913.141, 3.1964502, 1.850049018859863281, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106097, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 3016.3809, 4597.211, 2.2484412, 0.680678427219390869, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106098, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2819.717, 4897.249, 2.6421874, 0.436332315206527709, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106099, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2733.2517, 4750.836, 2.2410471, 6.021385669708251953, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106118, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 3042.0256, 4695.1597, 2.2245243, 0.03490658476948738, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106239, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2708.9678, 4675.8745, 3.0319462, 5.235987663269042968, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106245, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2929.033, 4882.354, 2.0690703, 0.558505356311798095, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106246, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 3056.257, 4714.889, 1.9892974, 0.01745329238474369, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106248, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 3014.9797, 4585.7505, 2.1538482, 0.767944872379302978, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106252, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2817.4055, 4620.799, 2.6320562, 5.305800914764404296, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106253, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 3060.8704, 4685.509, 1.6020634, 1.832595705986022949, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106254, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2821.139, 4596.5723, 1.5409213, 1.535889744758605957, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106262, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2714.1633, 4657.097, 2.4941273, 6.213372230529785156, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106263, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2844.2961, 4603.9707, 2.1391072, 2.007128715515136718, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106264, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2723.718, 4718.1685, 1.0884504, 6.195918560028076171, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106289, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2739.7275, 4755.5063, 1.9139163, 5.811946392059326171, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106290, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2693.6763, 4650.237, 0.7284773, 0.383972436189651489, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106291, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2831.1287, 4626.383, 2.6451013, 2.967059612274169921, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106292, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 3038.4434, 4581.772, 3.4078982, 5.689773082733154296, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106293, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 3042.3196, 4709.4272, 1.7194544, 6.056292533874511718, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106294, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 3018.3083, 4574.904, 1.7760314, 1.01229095458984375, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106297, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2686.1104, 4641.651, -20.670849, 0.628318548202514648, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106298, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2755.3047, 4761.354, -3.4140208, 1.745329260826110839, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106299, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2686.6675, 4653.5, -10.140621, 0.349065840244293212, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106300, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2851.3213, 4594.52, -16.771849, 2.0245819091796875, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106301, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2736.534, 4774.134, -28.26523, 5.846852779388427734, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106324, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2956.3013, 4886.6865, -2.0390227, 0.767944872379302978, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106325, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2684.8638, 4670.7993, -4.7964025, 0.05235987901687622, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(106327, 15214, 0, 0, 571, 0, 0, 1, 1, 0, 2949.212, 4876.7275, -8.52945, 0.942477762699127197, 300, 0, 0, 42, 0, 0, 0, 0, 0, '', 63163, 0, NULL); + +-- Set Sniffed Spawn Points (Kaskala Defender) +DELETE FROM `creature` WHERE (`id1` = 25764); +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`, `CreateObject`, `Comment`) VALUES +(111308, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 3037.59, 4629.62, 2.13786, 3.94885, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111309, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 3035.48, 4618.12, 2.16514, 3.95177, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111311, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 3048.47, 4619.47, 2.25314, 3.83972, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111312, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 3046.69, 4600.73, 3.93274, 3.63028, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111313, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 3057.07, 4597.14, 4.3861, 3.52557, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111314, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 3078.33, 4675.24, 3.89469, 3.11459, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111315, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 3068.94, 4688.15, 2.28964, 3.20822, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111316, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 3064.92, 4709.9, 4.00302, 3.48657, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111317, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 3070.62, 4718.25, 3.80401, 3.42621, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111318, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 3175.9, 4669.2, 22.6548, 3.19005, 300, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, 'has Personal Guid SAI'), +(111319, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 50.09, 4886.41, 0.38546, 3.50821, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111320, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2994.07, 4895.5, 0.38546, 3.56937, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111321, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2989.02, 4903.15, 0.38546, 3.48502, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111322, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2981.65, 4891.59, 0.38546, 3.33918, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111323, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2987.91, 4881.26, 0.38546, 3.24536, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111324, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2855.88, 4905.78, 2.53962, 3.61862, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111326, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2843.35, 4907.04, 2.53962, 4.53385, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111327, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2851.05, 4921.85, 3.95757, 3.31613, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111328, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2838.84, 4926.24, 3.8605, 3.80017, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111329, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2841.76, 4938.74, 8.04621, 3.63028, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111330, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2763.58, 4750.18, 1.77093, 3.08923, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111331, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2761.95, 4730.99, 2.67132, 2.60948, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111332, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2784.12, 4742.42, 2.09133, 2.97769, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111333, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2756.13, 4711.84, 3.06065, 2.00713, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111334, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2732.32, 4698.7, 1.82571, 3.68794, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111335, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2721.01, 4670.86, 3.2553, 2.1483, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111336, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2746.15, 4654.56, 1.79192, 3.17537, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111337, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2726.38, 4640.3, 2.84543, 2.80998, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111338, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2856.99, 4646.32, 0.166819, 4.46804, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111339, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2842.3, 4635.77, 0.166823, 4.5204, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111340, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2827.27, 4649.5, 2.2274, 4.67748, 5, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111341, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 3189.55, 4800.98, 6.62891, 3.87871, 300, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, 'has Personal Guid SAI'), +(111342, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 3151.78, 4945.13, 23.1799, 1.36632, 300, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, 'has Personal Guid SAI'), +(111343, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 3183.29, 4810.61, 6.98174, 3.90506, 300, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, 'has Personal Guid SAI'), +(111344, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 3192.11, 4809.09, 7.67296, 3.58353, 300, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, 'has Personal Guid SAI'), +(111345, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 3189.7, 4728.45, 10.5094, 2.6449, 300, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, 'has Personal Guid SAI'), +(111346, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 3175.52, 4711.81, 9.79975, 2.46624, 300, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, 'has Personal Guid SAI'), +(111347, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2930.59, 4963.30, 6.44193, 5.03641, 300, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, 'has Personal Guid SAI'), +(111348, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 2916.24, 4974.90, 9.78873, 5.13855, 300, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, 'has Personal Guid SAI'), +(111349, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 3014.35, 4925.72, 1.12581, 3.73361, 300, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, 'has Personal Guid SAI'), +(111350, 25764, 0, 0, 571, 0, 0, 1, 1, 1, 3035.20, 4925.79, 2.69066, 4.95899, 300, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, 'has Personal Guid SAI'); + +-- Set Extra Flags and SmartAI (Kaskala Defender) +UPDATE `creature_template` SET `flags_extra` = `flags_extra` |134217728, `AIName` = 'SmartAI' WHERE (`entry` = 25764); + +-- Set General SmartAI (Kaskala Defender) +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 25764); +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`, `event_param6`, `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 +(25764, 0, 0, 0, 0, 0, 100, 0, 0, 2000, 8000, 12000, 0, 0, 11, 38556, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Kaskala Defender - In Combat - Cast \'Throw\''); + +-- Set Personal SmartAI (Kaskala Defender) +DELETE FROM `smart_scripts` WHERE (`source_type` = 0) AND (`entryorguid` IN (-111318, -111341, -111342, -111343, -111344, -111345, -111346, -111347, -111348, -111349, -111350)); +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`, `event_param6`, `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 +(-111318, 0, 1, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 11131800, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Kaskala Defender - On Respawn - Start Path 11131800'), +(-111318, 0, 2, 0, 1, 0, 100, 1, 90000, 90000, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Kaskala Defender - Out of Combat - Despawn Instant (No Repeat)'), +(-111341, 0, 1, 2, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 3171.17, 4785.69, 6.7834, 0, 'Kaskala Defender - On Respawn - Move To Position'), +(-111341, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 3171.17, 4785.69, 6.7834, -2.4477, 'Kaskala Defender - On Respawn - Set Home Position'), +(-111341, 0, 3, 0, 1, 0, 100, 1, 90000, 90000, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Kaskala Defender - Out of Combat - Despawn Instant (No Repeat)'), +(-111342, 0, 1, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 232, 11134200, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Kaskala Defender - On Respawn - Start Path 11134200'), +(-111343, 0, 1, 2, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 3165.35, 4803.14, 4.8427, 0, 'Kaskala Defender - On Respawn - Move To Position'), +(-111343, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 3165.35, 4803.14, 4.8427, -2.7471, 'Kaskala Defender - On Respawn - Set Home Position'), +(-111343, 0, 3, 0, 1, 0, 100, 1, 90000, 90000, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Kaskala Defender - Out of Combat - Despawn Instant (No Repeat)'), +(-111344, 0, 1, 2, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 3161.40, 4796.13, 5.9756, 0, 'Kaskala Defender - On Respawn - Move To Position'), +(-111344, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 3161.40, 4796.13, 5.9756, -2.7423, 'Kaskala Defender - On Respawn - Set Home Position'), +(-111344, 0, 3, 0, 1, 0, 100, 1, 90000, 90000, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Kaskala Defender - Out of Combat - Despawn Instant (No Repeat)'), +(-111345, 0, 1, 2, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 3175.69, 4736.03, 8.9181, 0, 'Kaskala Defender - On Respawn - Move To Position'), +(-111345, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 3175.69, 4736.03, 8.9181, 2.6456, 'Kaskala Defender - On Respawn - Set Home Position'), +(-111345, 0, 3, 0, 1, 0, 100, 1, 90000, 90000, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Kaskala Defender - Out of Combat - Despawn Instant (No Repeat)'), +(-111346, 0, 1, 2, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 3163.81, 4721.18, 8.3387, 0, 'Kaskala Defender - On Respawn - Move To Position'), +(-111346, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 3163.81, 4721.18, 8.3387, 2.4666, 'Kaskala Defender - On Respawn - Set Home Position'), +(-111346, 0, 3, 0, 1, 0, 100, 1, 90000, 90000, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Kaskala Defender - Out of Combat - Despawn Instant (No Repeat)'), +(-111347, 0, 1, 2, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 2933.7798, 4953.8257, 5.445045, 0, 'Kaskala Defender - On Respawn - Move To Position'), +(-111347, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 2933.7798, 4953.8257, 5.445045, 0, 'Kaskala Defender - On Respawn - Set Home Position'), +(-111347, 0, 3, 0, 1, 0, 100, 1, 90000, 90000, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Kaskala Defender - Out of Combat - Despawn Instant (No Repeat)'), +(-111348, 0, 1, 2, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 2920.374, 4965.801, 6.8121896, 0, 'Kaskala Defender - On Respawn - Move To Position'), +(-111348, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 2920.374, 4965.801, 6.8121896, 0, 'Kaskala Defender - On Respawn - Set Home Position'), +(-111348, 0, 3, 0, 1, 0, 100, 1, 90000, 90000, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Kaskala Defender - Out of Combat - Despawn Instant (No Repeat)'), +(-111349, 0, 1, 2, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 3023.6384, 4906.197, 0.38545987, 0, 'Kaskala Defender - On Respawn - Move To Position'), +(-111349, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 3023.6384, 4906.197, 0.38545987, 0, 'Kaskala Defender - On Respawn - Set Home Position'), +(-111349, 0, 3, 0, 1, 0, 100, 1, 90000, 90000, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Kaskala Defender - Out of Combat - Despawn Instant (No Repeat)'), +(-111350, 0, 1, 2, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 3037.3958, 4903.987, 0.38545987, 0, 'Kaskala Defender - On Respawn - Move To Position'), +(-111350, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 3037.3958, 4903.987, 0.38545987, 0, 'Kaskala Defender - On Respawn - Set Home Position'), +(-111350, 0, 3, 0, 1, 0, 100, 1, 90000, 90000, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Kaskala Defender - Out of Combat - Despawn Instant (No Repeat)'); + +-- Remove some old Spawn Points and add new Sniffed Ones (Kvaldir Raider) +DELETE FROM `creature` WHERE (`id1` = 25760); +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`, `CreateObject`, `Comment`) VALUES +(111085, 25760, 0, 0, 571, 0, 0, 1, 1, 1, 3060, 4836.07, 3.91526, 0.959931, 300, 0, 0, 6986, 0, 0, 0, 0, 0, '', 0, 0, NULL), +(111086, 25760, 0, 0, 571, 0, 0, 1, 1, 1, 2897.68, 4942.04, 3.53865, 1.11701, 300, 0, 0, 6986, 0, 0, 0, 0, 0, '', 0, 0, NULL), +(111087, 25760, 0, 0, 571, 0, 0, 1, 1, 1, 3084.78, 4855.13, 2.81800, 1.02974, 300, 0, 0, 6986, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111088, 25760, 0, 0, 571, 0, 0, 1, 1, 1, 2912.81, 4934.55, 2.64507, 1.29154, 300, 0, 0, 6986, 0, 0, 0, 0, 0, '', 0, 0, NULL), +(111089, 25760, 0, 0, 571, 0, 0, 1, 1, 1, 3133.86, 4850.70, 2.66834, 1.50098, 300, 0, 0, 6986, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111090, 25760, 0, 0, 571, 0, 0, 1, 1, 1, 3136.90, 4792.21, 7.50673, 0.45378, 300, 0, 0, 6986, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111091, 25760, 0, 0, 571, 0, 0, 1, 1, 1, 3145.12, 4822.77, 3.12138, 0.226893, 300, 0, 0, 6986, 0, 0, 0, 0, 0, '', 0, 0, NULL), +(111093, 25760, 0, 0, 571, 0, 0, 1, 1, 1, 3110.95, 4860.54, 1.89937, 1.16937, 300, 0, 0, 6986, 0, 0, 0, 0, 0, '', 0, 0, NULL), +(111094, 25760, 0, 0, 571, 0, 0, 1, 1, 1, 3057.03, 4810.47, 1.49686, 5.70723, 300, 0, 0, 6986, 0, 0, 0, 0, 0, '', 0, 0, NULL), +(111095, 25760, 0, 0, 571, 0, 0, 1, 1, 1, 3050.00, 4729.65, 1.93729, 5.89921, 300, 0, 0, 6986, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111096, 25760, 0, 0, 571, 0, 0, 1, 1, 1, 3025.91, 4888.23, 0.38545, 1.57079, 300, 0, 0, 6986, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111097, 25760, 0, 0, 571, 0, 0, 1, 1, 1, 3040.02, 4880.30, 0.47953, 1.60570, 300, 0, 0, 6986, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111098, 25760, 0, 0, 571, 0, 0, 1, 1, 1, 3150.36, 4771.95, 8.24230, 0.73303, 300, 0, 0, 6986, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111099, 25760, 0, 0, 571, 0, 0, 1, 1, 1, 3158.45, 4746.22, 8.73309, 5.77704, 300, 0, 0, 6986, 0, 0, 0, 0, 0, '', 63163, 0, NULL); + +-- Set Sniffed Spawn Points (Vrykul Landing Ship) +DELETE FROM `creature` WHERE (`id1` = 25762); +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`, `CreateObject`, `Comment`) VALUES +(111268, 25762, 0, 0, 571, 0, 0, 1, 1, 0, 2508.7966, 4811.9697, -1.2072134, 0.162541, 120, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111269, 25762, 0, 0, 571, 0, 0, 1, 1, 0, 2426.1218, 4592.6113, 0.7833616, 0.117604, 120, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111270, 25762, 0, 0, 571, 0, 0, 1, 1, 0, 2459.87, 4744.31, 1.30339, 6.17847, 120, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111271, 25762, 0, 0, 571, 0, 0, 1, 1, 0, 2580.42, 4824.25, 0.127685, 6.05629, 120, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111272, 25762, 0, 0, 571, 0, 0, 1, 1, 0, 2445.84, 4663.31, -0.189209, 0.0698132, 120, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111274, 25762, 0, 0, 571, 0, 0, 1, 1, 0, 2399.895, 4618.4326, 0.015051667, 0.374673, 120, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111276, 25762, 0, 0, 571, 0, 0, 1, 1, 0, 2445.8276, 4747.9697, 8.584435, 6.23142, 120, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111277, 25762, 0, 0, 571, 0, 0, 1, 1, 0, 2372.4917, 4526.251, 3.0370097, 0.0383349, 120, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111300, 25762, 0, 0, 571, 0, 0, 1, 1, 0, 2424.7415, 4586.1016, 0.73086566, 0.19501, 120, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111351, 25762, 0, 0, 571, 0, 0, 1, 1, 0, 2608.4656, 4491.5884, 1.8490026, 0.051814436912536621, 120, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111352, 25762, 0, 0, 571, 0, 0, 1, 1, 0, 2680.11, 4381.92, 0.664347, 0.349066, 120, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111354, 25762, 0, 0, 571, 0, 0, 1, 1, 0, 2681.62, 4382.21, 0.688408, 0.383972, 120, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111356, 25762, 0, 0, 571, 0, 0, 1, 1, 0, 2641.81, 4495.94, 0.872056, 0.0872665, 120, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL), +(111358, 25762, 0, 0, 571, 0, 0, 1, 1, 0, 2372.4917, 4526.251, 3.0370097, 0.718615174293518066, 120, 0, 0, 8982, 0, 0, 0, 0, 0, '', 63163, 0, NULL); + +-- Update vehicle_template_accessory (Vrykul Landing Ship) +UPDATE `vehicle_template_accessory` SET `minion` = 0, `summontype` = 8 WHERE `entry` = 25762; + +-- Set General SmartAI (Vrykul Landing Ship) +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 25762; + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 25762); +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`, `event_param6`, `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 +(25762, 0, 0, 1, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 80, 2576200, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vrykul Landing Ship - On Respawn - Run Script'), +(25762, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 48, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vrykul Landing Ship - On Respawn - Set Active On'), +(25762, 0, 2, 3, 58, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 120000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vrykul Landing Ship - On Path 0 Finished - Despawn In 120000 ms'), +(25762, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 0, 1, 0, 0, 0, 0, 204, 25760, 0, 0, 0, 0, 0, 0, 0, 'Vrykul Landing Ship - On Path 0 Finished - Set Data 0 1'); + +-- Set Action List (Vrykul Landing Ship) +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2576200); +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`, `event_param6`, `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 +(2576200, 9, 0, 0, 0, 0, 100, 0, 10000, 10000, 0, 0, 0, 0, 53, 1, 11126800, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vrykul Landing Ship - Actionlist - Start Waypoint Path 11126800'), +(2576200, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 53, 1, 11126900, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vrykul Landing Ship - Actionlist - Start Waypoint Path 11126900'), +(2576200, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 53, 1, 11127000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vrykul Landing Ship - Actionlist - Start Waypoint Path 11127000'), +(2576200, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 53, 1, 11127200, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vrykul Landing Ship - Actionlist - Start Waypoint Path 11127200'), +(2576200, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 53, 1, 11127700, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vrykul Landing Ship - Actionlist - Start Waypoint Path 11127700'), +(2576200, 9, 5, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 53, 1, 11135100, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vrykul Landing Ship - Actionlist - Start Waypoint Path 11135100'), +(2576200, 9, 6, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 53, 1, 11135200, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vrykul Landing Ship - Actionlist - Start Waypoint Path 11135200'), +(2576200, 9, 7, 0, 0, 0, 100, 0, 120000, 120000, 0, 0, 0, 0, 53, 1, 11127400, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vrykul Landing Ship - Actionlist - Start Waypoint Path 11127400'), +(2576200, 9, 8, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 53, 1, 11127600, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vrykul Landing Ship - Actionlist - Start Waypoint Path 11127600'), +(2576200, 9, 9, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 53, 1, 11135800, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vrykul Landing Ship - Actionlist - Start Waypoint Path 11135800'), +(2576200, 9, 10, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 53, 1, 11127100, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vrykul Landing Ship - Actionlist - Start Waypoint Path 11127100'), +(2576200, 9, 11, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 53, 1, 11135400, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vrykul Landing Ship - Actionlist - Start Waypoint Path 11135400'), +(2576200, 9, 12, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 53, 1, 11130000, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vrykul Landing Ship - Actionlist - Start Waypoint Path 11130000'), +(2576200, 9, 13, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 53, 1, 11135600, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Vrykul Landing Ship - Actionlist - Start Waypoint Path 11135600'); + +-- Set Conditions (Vrykul Landing Ship Waypoints) +DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 22) AND (`SourceGroup` IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)) AND (`SourceEntry` = 2576200) AND (`SourceId` = 9) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 31) AND (`ConditionTarget` = 1) AND (`ConditionValue1` = 3) AND (`ConditionValue2` = 25762) AND (`ConditionValue3` IN (111268, 111269, 111270, 111272, 111277, 111351, 111352, 111274, 111276, 111358, 111271, 111354, 111300, 111356)); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(22, 1, 2576200, 9, 0, 31, 1, 3, 25762, 111268, 0, 0, 0, '', 'Vrykul Landing Ship - GUID 1'), +(22, 2, 2576200, 9, 0, 31, 1, 3, 25762, 111269, 0, 0, 0, '', 'Vrykul Landing Ship - GUID 2'), +(22, 3, 2576200, 9, 0, 31, 1, 3, 25762, 111270, 0, 0, 0, '', 'Vrykul Landing Ship - GUID 3'), +(22, 4, 2576200, 9, 0, 31, 1, 3, 25762, 111272, 0, 0, 0, '', 'Vrykul Landing Ship - GUID 4'), +(22, 5, 2576200, 9, 0, 31, 1, 3, 25762, 111277, 0, 0, 0, '', 'Vrykul Landing Ship - GUID 5'), +(22, 6, 2576200, 9, 0, 31, 1, 3, 25762, 111351, 0, 0, 0, '', 'Vrykul Landing Ship - GUID 6'), +(22, 7, 2576200, 9, 0, 31, 1, 3, 25762, 111352, 0, 0, 0, '', 'Vrykul Landing Ship - GUID 7'), +(22, 8, 2576200, 9, 0, 31, 1, 3, 25762, 111274, 0, 0, 0, '', 'Vrykul Landing Ship - GUID 8'), +(22, 9, 2576200, 9, 0, 31, 1, 3, 25762, 111276, 0, 0, 0, '', 'Vrykul Landing Ship - GUID 9'), +(22, 10, 2576200, 9, 0, 31, 1, 3, 25762, 111358, 0, 0, 0, '', 'Vrykul Landing Ship - GUID 10'), +(22, 11, 2576200, 9, 0, 31, 1, 3, 25762, 111271, 0, 0, 0, '', 'Vrykul Landing Ship - GUID 11'), +(22, 12, 2576200, 9, 0, 31, 1, 3, 25762, 111354, 0, 0, 0, '', 'Vrykul Landing Ship - GUID 12'), +(22, 13, 2576200, 9, 0, 31, 1, 3, 25762, 111300, 0, 0, 0, '', 'Vrykul Landing Ship - GUID 13'), +(22, 14, 2576200, 9, 0, 31, 1, 3, 25762, 111356, 0, 0, 0, '', 'Vrykul Landing Ship - GUID 14'); + +-- Set State Emote (Kvaldir Raider) +UPDATE `creature_template_addon` SET `emote` = 375 WHERE (`entry` = 25760); + +-- Set SmartAI (Kvaldir Raider) +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 25760; + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 25760); +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`, `event_param6`, `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 +(25760, 0, 0, 1, 38, 0, 100, 0, 0, 1, 0, 0, 0, 0, 80, 2576000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Kvaldir Raider - On Data Set 0 1 - Run Script'), +(25760, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 120000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Kvaldir Raider - On Data Set 0 1 - Despawn In 120000 ms'), +(25760, 0, 2, 3, 34, 0, 100, 0, 0, 1, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Kvaldir Raider - On Reached Point 1 - Set Home Position'), +(25760, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 9, 25764, 0, 50, 0, 0, 0, 0, 0, 'Kvaldir Raider - On Reached Point 1 - Start Attacking'); + +-- Set Action List (Kvaldir Raider) +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2576000); +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`, `event_param6`, `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 +(2576000, 9, 0, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 0, 0, 203, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Kvaldir Raider - Actionlist - Exit vehicle'), +(2576000, 9, 1, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 0, 0, 69, 1, 0, 1, 0, 0, 0, 11, 15214, 100, 0, 0, 0, 0, 0, 0, 'Kvaldir Raider - Actionlist - Move To Closest Creature \'Invisible Stalker\''); diff --git a/data/sql/updates/db_world/2025_09_20_00.sql b/data/sql/updates/db_world/2025_09_20_00.sql new file mode 100644 index 000000000..eb7795906 --- /dev/null +++ b/data/sql/updates/db_world/2025_09_20_00.sql @@ -0,0 +1,52 @@ +-- DB update 2025_09_19_06 -> 2025_09_20_00 +-- +SET @CGUID := 125408; + +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=27047; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=31702; + +DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+7 AND `id1`IN(27047,31731); +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`, `VerifiedBuild`) VALUES +(@CGUID+0, 31731, 571, 0, 0, 1, 1, 0, 7899.34814453125, 896.13922119140625, 454.79254150390625, 1.954768776893615722, 300, 0, 0, 0, 0, 0, 0, 0, 0, 14007), -- 31731 (Area: -1 - Difficulty: 0) +(@CGUID+1, 31731, 571, 0, 0, 1, 1, 0, 7907.4541015625, 910.4288330078125, 454.8382568359375, 3.193952560424804687, 300, 0, 0, 0, 0, 0, 0, 0, 0, 14007), -- 31731 (Area: -1 - Difficulty: 0) +(@CGUID+2, 31731, 571, 0, 0, 1, 1, 0, 7885.07275390625, 897.81597900390625, 453.8397216796875, 0.942477762699127197, 300, 0, 0, 0, 0, 0, 0, 0, 0, 14007), -- 31731 (Area: -1 - Difficulty: 0) +(@CGUID+3, 31731, 571, 0, 0, 1, 1, 0, 7885.8046875, 923.5858154296875, 453.180999755859375, 5.201081275939941406, 300, 0, 0, 0, 0, 0, 0, 0, 0, 14007), -- 31731 (Area: -1 - Difficulty: 0) +(@CGUID+4, 31731, 571, 0, 0, 1, 1, 0, 7878.15380859375, 911.84918212890625, 453.214508056640625, 6.143558979034423828, 300, 0, 0, 0, 0, 0, 0, 0, 0, 14007), -- 31731 (Area: -1 - Difficulty: 0) +(@CGUID+5, 27047, 571, 0, 0, 1, 1, 0, 7891.8447265625, 910.00311279296875, 451.374847412109375, 3.420845270156860351, 300, 0, 0, 0, 0, 0, 0, 0, 0, 14007), -- 27047 (Area: -1 - Difficulty: 0) +(@CGUID+6, 27047, 571, 0, 0, 1, 1, 0, 7885.470703125, 910.68682861328125, 451.404388427734375, 0.767944872379302978, 300, 0, 0, 0, 0, 0, 0, 0, 0, 14007), -- 27047 (Area: -1 - Difficulty: 0) +(@CGUID+7, 27047, 571, 0, 0, 1, 1, 0, 7896.4130859375, 902.90802001953125, 451.40155029296875, 5.98647928237915039, 300, 0, 0, 0, 0, 0, 0, 0, 0, 14007); -- 27047 (Area: -1 - Difficulty: 0) + +DELETE FROM `creature_template_addon` WHERE `entry`=31702; +INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`, `visibilityDistanceType`) VALUES +(31702, 0, 0, 50331648, 1, 0, NULL, 0); + +DELETE FROM `disables` WHERE `sourceType`=0 AND `entry`=59661; +INSERT INTO `disables` (`sourceType`, `entry`, `flags`, `params_0`, `params_1`, `comment`) VALUES +(0, 59661, 64, '', '', 'Icecrown Purple Beam (Ignore Los)'); + +DELETE FROM `smart_scripts` WHERE `entryorguid`=31731 AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid`=31702 AND `source_type`=0; +DELETE FROM `smart_scripts` WHERE `entryorguid`=3170200 AND `source_type`=9; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN(-123663, -123665, -123667, -123662, -123669, -123666, -123668, -123660, -@CGUID-5, -@CGUID-6, -@CGUID-7) AND `source_type`=0; +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`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(31731, 0, 0, 0, 0, 0, 100, 0, 5000, 9000, 15000, 15000, 11, 32063, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Wyrm Reanimator - IC - Cast Corruption'), +(31731, 0, 1, 0, 0, 0, 100, 0, 1000, 1000, 3000, 4000, 11, 9613, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Wyrm Reanimator - IC CMC - Cast Shadowbolt'), +(31731, 0, 2, 0, 0, 0, 100, 0, 4000, 7000, 16000, 22000, 11, 11443, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 'Wyrm Reanimator - IC - Cast Cripple'), +(31731, 0, 3, 0, 25, 0, 100, 0, 0, 0, 0, 0, 11, 59661, 0, 0, 0, 0, 0, 19, 27047, 0, 0, 0, 0, 0, 0, 'Wyrm Reanimator - On Reset - Cast Icecrown Purple Beam'), +(31731, 0, 4, 5, 38, 0, 100, 0, 1, 1, 0, 0, 92, 0, 59661, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Wyrm Reanimator - On Data Set - Interupt Cast'), +(31731, 0, 5, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, 52385, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Wyrm Reanimator - On Data Set - Cast Periodic Cower Effect'), +(31702, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 19, 31731, 0, 0, 0, 0, 0, 0, 'Frostbrood Spawn - On Just Summoned - Store Targetlist'), +(31702, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 60, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Frostbrood Spawn - On Just Summoned - Set Fly On'), +(31702, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 80, 3170200, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Frostbrood Spawn - On Just Summoned - Run Script'), +(31702, 0, 4, 5, 34, 0, 100, 0, 0, 1, 0, 0, 11, 36380, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Frostbrood Spawn - On Reached Point 1 - Cast \'Special Unarmed\''), +(31702, 0, 5, 6, 61, 0, 100, 0, 0, 0, 0, 0, 86, 52391, 2, 12, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Frostbrood Spawn - On Reached Point 1 - Cross Cast \'Ride Vehicle\''), +(31702, 0, 6, 0, 61, 0, 100, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 7326.43, 1289.52, 611.652, 0, 'Frostbrood Spawn - On Reached Point 1 - Move To Position'), +(3170200, 9, 1, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 45, 1, 1, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Frost Brood Spawn - Script - Set Data 1 1'), +(3170200, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 48, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Frost Brood Spawn - Script - Set Active'), +(3170200, 9, 3, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 69, 1, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Frost Brood Spawn - Script - Move to positiom'), +(3170200, 9, 4, 0, 0, 0, 100, 0, 15000, 15000, 0, 0, 41, 0, 0, 0, 0, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 'Frost Brood Spawn - Script - Despawn Wyrm reanimator'), +(3170200, 9, 5, 0, 0, 0, 100, 0, 110000, 110000, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Frost Brood Spawn - Script - Despawn'), +(-@CGUID-6, 0, 0, 0, 1, 0, 100, 0, 180000, 300000, 660000, 900000, 12, 31702, 1, 120000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invisible Stalker (Floating Only) - OOC - Summon Frost Brood Spawn'), +(-123660, 0, 0, 0, 1, 0, 100, 0, 180000, 300000, 660000, 900000, 12, 31702, 1, 120000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invisible Stalker (Floating Only) - OOC - Summon Frost Brood Spawn'), +(-123669, 0, 0, 0, 1, 0, 100, 0, 180000, 300000, 660000, 900000, 12, 31702, 1, 120000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invisible Stalker (Floating Only) - OOC - Summon Frost Brood Spawn'), +(-123663, 0, 0, 0, 1, 0, 100, 0, 180000, 300000, 660000, 900000, 12, 31702, 1, 120000, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Invisible Stalker (Floating Only) - OOC - Summon Frost Brood Spawn'); diff --git a/data/sql/updates/db_world/2025_09_20_01.sql b/data/sql/updates/db_world/2025_09_20_01.sql new file mode 100644 index 000000000..487710c87 --- /dev/null +++ b/data/sql/updates/db_world/2025_09_20_01.sql @@ -0,0 +1,14 @@ +-- DB update 2025_09_20_00 -> 2025_09_20_01 +-- Update gossip option 0 to show after completing quest The Frostborn King 12873 +UPDATE `conditions` SET `ConditionTypeOrReference` = 8, `ConditionValue1` = 12873, `Comment` = 'Show frostborn test gossip only after completing quest The Frostborn King 12873' WHERE `SourceTypeOrReferenceId` = 15 AND `SourceGroup` = 9891 AND `SourceEntry` = 0 AND `ConditionValue1` = 12874; + +-- Add new condition for gossip option 1 to show after accepting quest Pushed too Far 12869 +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 15 AND `SourceGroup` = 9891 AND `SourceEntry` = 1; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) +VALUES (15, 9891, 1, 0, 0, 9, 0, 12869, 0, 0, 0, 0, 0, '', 'Show wyrm battle gossip only after accepting quest Pushed too Far 12869'); + +-- Smart script to cast mount spell when player clicks "wyrm battle" gossip option +-- This makes the gossip behave the same as accepting quest 12869 (auto-mount on bird) +DELETE FROM `smart_scripts` WHERE `entryorguid` = 29732 AND `source_type` = 0 AND `id` = 4; +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`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) +VALUES (29732, 0, 4, 0, 62, 0, 100, 0, 9891, 1, 0, 0, 11, 57049, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 'Fjorlin Frostbrow - On Gossip Select Option 1 (Wyrm Battle) - Forcecast Summon Battle Eagle 57049'); diff --git a/data/sql/updates/db_world/2025_09_20_02.sql b/data/sql/updates/db_world/2025_09_20_02.sql new file mode 100644 index 000000000..eb5ca868a --- /dev/null +++ b/data/sql/updates/db_world/2025_09_20_02.sql @@ -0,0 +1,17 @@ +-- DB update 2025_09_20_01 -> 2025_09_20_02 +-- +DELETE FROM `creature_template_addon` WHERE `entry` = 25494; +INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES +(25494, 0, 0, 0, 0, 0, 0, '45655'); + +DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` = 1) AND (`SourceEntry` = 45656); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(13, 1, 45656, 0, 0, 31, 0, 3, 25493, 0, 0, 0, 0, '', 'Cauldron Purification hit West En\'kilah Cauldron'), +(13, 1, 45656, 0, 1, 31, 0, 3, 25490, 0, 0, 0, 0, '', 'Cauldron Purification hit East En\'kilah Cauldron'), +(13, 1, 45656, 0, 2, 31, 0, 3, 25492, 0, 0, 0, 0, '', 'Cauldron Purification hit Central En\'kilah Cauldron'); + +UPDATE `creature` SET `position_x` = 4022.822, `position_y` = 3604.8394, `position_z` = 104.910614, `orientation` = 1.675516128540039062 WHERE `id1` = 25492; + +DELETE FROM `creature_template_movement` WHERE `CreatureID` = 25492; +INSERT INTO `creature_template_movement` (`CreatureID`, `Ground`, `Swim`, `Flight`) VALUES +(25492, 1, 0, 1); diff --git a/data/sql/updates/db_world/2025_09_20_03.sql b/data/sql/updates/db_world/2025_09_20_03.sql new file mode 100644 index 000000000..7ee1cb9f7 --- /dev/null +++ b/data/sql/updates/db_world/2025_09_20_03.sql @@ -0,0 +1,6 @@ +-- DB update 2025_09_20_02 -> 2025_09_20_03 + +-- Deactive "Force Destination" +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 2576000) AND (`source_type` = 9) AND (`id` IN (1)); +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`, `event_param6`, `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 +(2576000, 9, 1, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 0, 0, 69, 1, 0, 1, 0, 0, 1, 11, 15214, 100, 0, 0, 0, 0, 0, 0, 'Kvaldir Raider - Actionlist - Move To Closest Creature \'Invisible Stalker\''); diff --git a/data/sql/updates/db_world/2025_09_20_04.sql b/data/sql/updates/db_world/2025_09_20_04.sql new file mode 100644 index 000000000..139412f14 --- /dev/null +++ b/data/sql/updates/db_world/2025_09_20_04.sql @@ -0,0 +1,3 @@ +-- DB update 2025_09_20_03 -> 2025_09_20_04 +-- +UPDATE `creature_template` SET `mechanic_immune_mask` = `mechanic_immune_mask` &~ 33554432 WHERE `entry` IN (29311, 31464); diff --git a/data/sql/updates/db_world/2025_09_20_05.sql b/data/sql/updates/db_world/2025_09_20_05.sql new file mode 100644 index 000000000..c63826d08 --- /dev/null +++ b/data/sql/updates/db_world/2025_09_20_05.sql @@ -0,0 +1,26 @@ +-- DB update 2025_09_20_04 -> 2025_09_20_05 +-- +-- Frostbrood Spawn +DELETE FROM `smart_scripts` WHERE `entryorguid` = 31702 AND `source_type` = 0 AND `id` = 7; +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`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(31702, 0, 7, 0, 0, 0, 100, 0, 0, 5000, 5000, 15000, 11, 60667, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, "Frostbrood Spawn - In Combat - Cast 'Frost Breath'"); + +-- Savage Proto-Drake +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 31265; +DELETE FROM `smart_scripts` WHERE `entryorguid` = 31265 AND `source_type` = 0; +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 +(31265, 0, 0, 0, 0, 0, 100, 0, 5000, 10000, 10000, 15000, 0, 11, 51219, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, "Savage Proto-Drake - In Combat - Cast 'Flame Breath'"), +(31265, 0, 1, 0, 0, 0, 100, 0, 10000, 15000, 15000, 25000, 0, 11, 41572, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "Savage Proto-Drake - In Combat - Cast 'Wing Buffet'"); + +-- Skoll +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 35189; +DELETE FROM `smart_scripts` WHERE `entryorguid` = 35189 AND `source_type` = 0; +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 +(35189, 0, 0, 0, 0, 0, 100, 0, 3000, 7000, 12000, 15000, 0, 11, 61184, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, "Skoll - In Combat - Cast 'Pounce'"), +(35189, 0, 1, 0, 0, 0, 100, 0, 5000, 9000, 8000, 13000, 0, 11, 61186, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, "Skoll - In Combat - Cast 'Frozen Bite'"); + +-- Loque'nahak +DELETE FROM `smart_scripts` WHERE `entryorguid` = 32517 AND `source_type` = 0; +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 +(32517, 0, 0, 0, 0, 0, 100, 0, 3000, 7000, 12000, 15000, 0, 11, 61184, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, "Loque'nahak - In Combat - Cast 'Pounce'"), +(32517, 0, 1, 0, 0, 0, 100, 0, 5000, 9000, 8000, 13000, 0, 11, 61186, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, "Loque'nahak - In Combat - Cast 'Frozen Bite'"); diff --git a/data/sql/updates/db_world/2025_09_20_06.sql b/data/sql/updates/db_world/2025_09_20_06.sql new file mode 100644 index 000000000..dc9751b7b --- /dev/null +++ b/data/sql/updates/db_world/2025_09_20_06.sql @@ -0,0 +1,10 @@ +-- DB update 2025_09_20_05 -> 2025_09_20_06 +-- +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 26321); +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`, `event_param6`, `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 +(26321, 0, 0, 1, 8, 0, 100, 512, 47530, 0, 0, 0, 0, 0, 33, 26321, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Lothalor Ancient - On Spellhit \'Bark of the Walkers\' - Quest Credit \'null\''), +(26321, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Lothalor Ancient - On Spellhit \'Bark of the Walkers\' - Say Line 0'), +(26321, 0, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 28, 47044, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Lothalor Ancient - On Spellhit \'Bark of the Walkers\' - Remove Aura \'Cosmetic - Confused State Visual (Big)\''), +(26321, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 4000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Lothalor Ancient - On Spellhit \'Bark of the Walkers\' - Despawn In 4000 ms'); + +DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_q12096_q12092_bark'; diff --git a/src/server/apps/worldserver/worldserver.conf.dist b/src/server/apps/worldserver/worldserver.conf.dist index 836111af9..8b3b7df5d 100644 --- a/src/server/apps/worldserver/worldserver.conf.dist +++ b/src/server/apps/worldserver/worldserver.conf.dist @@ -3002,6 +3002,15 @@ ListenRange.TextEmote = 40 ListenRange.Yell = 300 +# +# Creature.RepositionAgainstNpcs +# Description: Enables circling and backwards repositioning during NPC versus NPC combat. +# Set to 0 to keep the legacy optimization that disables these moves for NPCs. +# Default: 1 - (Enabled, uses more CPU, but looks better) +# 0 - (Disabled, uses less CPU) + +Creature.RepositionAgainstNpcs = 1 + # # Creature.MovingStopTimeForPlayer # Description: Time (in milliseconds) during which creature will not move after diff --git a/src/server/game/AI/CreatureAI.cpp b/src/server/game/AI/CreatureAI.cpp index 0f7487700..12698c35d 100644 --- a/src/server/game/AI/CreatureAI.cpp +++ b/src/server/game/AI/CreatureAI.cpp @@ -27,6 +27,7 @@ #include "Player.h" #include "ScriptMgr.h" #include "TemporarySummon.h" +#include "World.h" #include "Vehicle.h" #include "ZoneScript.h" #include @@ -364,13 +365,18 @@ void CreatureAI::MoveCircleChecks() if ( !victim || !me->IsFreeToMove() || me->HasUnitMovementFlag(MOVEMENTFLAG_ROOT) || - !me->IsWithinMeleeRange(victim) || me == victim->GetVictim() || - (!victim->IsPlayer() && !victim->IsPet()) // only player & pets to save CPU + !me->IsWithinMeleeRange(victim) || me == victim->GetVictim() ) { return; } + /** + * optimization, disable circling movement for NPC vs NPC combat + */ + if (!sWorld->getBoolConfig(CONFIG_CREATURE_REPOSITION_AGAINST_NPCS) && !victim->IsPlayer() && !victim->IsPet()) + return; + me->GetMotionMaster()->MoveCircleTarget(me->GetVictim()); } @@ -378,8 +384,13 @@ void CreatureAI::MoveBackwardsChecks() { Unit *victim = me->GetVictim(); - if (!victim || !me->IsFreeToMove() || me->HasUnitMovementFlag(MOVEMENTFLAG_ROOT) || - (!victim->IsPlayer() && !victim->IsPet())) + if (!victim || !me->IsFreeToMove() || me->HasUnitMovementFlag(MOVEMENTFLAG_ROOT)) + return; + + /** + * optimization, disable backwards movement for NPC vs NPC combat + */ + if (!sWorld->getBoolConfig(CONFIG_CREATURE_REPOSITION_AGAINST_NPCS) && !victim->IsPlayer() && !victim->IsPet()) { return; } diff --git a/src/server/game/AI/CreatureAI.h b/src/server/game/AI/CreatureAI.h index 4672a8791..5374858a4 100644 --- a/src/server/game/AI/CreatureAI.h +++ b/src/server/game/AI/CreatureAI.h @@ -29,6 +29,7 @@ class Unit; class Creature; class Player; class SpellInfo; +enum SpellFinishReason : uint8; typedef std::vector CreatureBoundary; @@ -146,6 +147,9 @@ public: // Called when spell hits a target virtual void SpellHitTarget(Unit* /*target*/, SpellInfo const* /*spell*/) {} + // Called when a spell either finishes, interrupts or cancels a spell cast + virtual void OnSpellCastFinished(SpellInfo const* /*spell*/, SpellFinishReason /*reason*/) {} + // Called when the creature is target of hostile action: swing, hostile spell landed, fear/etc) virtual void AttackedBy(Unit* /*attacker*/) {} virtual bool IsEscorted() { return false; } diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 377910258..ffedcdcf6 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -1846,6 +1846,8 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u WorldObject* target = nullptr; + SAIBool isForced = !e.action.moveToPos.disableForceDestination; + switch (e.GetTargetType()) { case SMART_TARGET_POSITION: @@ -1855,7 +1857,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u if (TransportBase* trans = me->GetDirectTransport()) trans->CalculatePassengerPosition(dest.x, dest.y, dest.z); - me->GetMotionMaster()->MovePoint(e.action.moveToPos.pointId, dest.x, dest.y, dest.z, true, true, + me->GetMotionMaster()->MovePoint(e.action.moveToPos.pointId, dest.x, dest.y, dest.z, true, isForced, isControlled ? MOTION_SLOT_CONTROLLED : MOTION_SLOT_ACTIVE, e.target.o); break; @@ -1873,7 +1875,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u randomPoint.m_positionY, randomPoint.m_positionZ, true, - true, + isForced, isControlled ? MOTION_SLOT_CONTROLLED : MOTION_SLOT_ACTIVE ); @@ -1898,7 +1900,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u else if (e.action.moveToPos.ContactDistance) target->GetNearPoint(me, x, y, z, e.action.moveToPos.ContactDistance, 0, target->GetAngle(me)); - me->GetMotionMaster()->MovePoint(e.action.moveToPos.pointId, x + e.target.x, y + e.target.y, z + e.target.z, true, true, isControlled ? MOTION_SLOT_CONTROLLED : MOTION_SLOT_ACTIVE); + me->GetMotionMaster()->MovePoint(e.action.moveToPos.pointId, x + e.target.x, y + e.target.y, z + e.target.z, true, isForced, isControlled ? MOTION_SLOT_CONTROLLED : MOTION_SLOT_ACTIVE); break; } @@ -1912,8 +1914,10 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u { if (IsCreature(target)) { + SAIBool isForced = !e.action.moveToPosTarget.disableForceDestination; + Creature* ctarget = target->ToCreature(); - ctarget->GetMotionMaster()->MovePoint(e.action.moveToPos.pointId, e.target.x, e.target.y, e.target.z, true, true, isControlled ? MOTION_SLOT_CONTROLLED : MOTION_SLOT_ACTIVE); + ctarget->GetMotionMaster()->MovePoint(e.action.moveToPosTarget.pointId, e.target.x, e.target.y, e.target.z, true, isForced, isControlled ? MOTION_SLOT_CONTROLLED : MOTION_SLOT_ACTIVE); } } diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp index 9185f77ac..6db3e4cb2 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp @@ -855,7 +855,7 @@ bool SmartAIMgr::CheckUnusedActionParams(SmartScriptHolder const& e) case SMART_ACTION_SET_HOVER: return sizeof(SmartAction::setHover); case SMART_ACTION_SET_HEALTH_PCT: return sizeof(SmartAction::setHealthPct); // case SMART_ACTION_CREATE_CONVERSATION: return sizeof(SmartAction::raw); - case SMART_ACTION_MOVE_TO_POS_TARGET: return sizeof(SmartAction::moveToPos); + case SMART_ACTION_MOVE_TO_POS_TARGET: return sizeof(SmartAction::moveToPosTarget); case SMART_ACTION_EXIT_VEHICLE: return NO_PARAMS; case SMART_ACTION_SET_UNIT_MOVEMENT_FLAGS: return sizeof(SmartAction::movementFlag); case SMART_ACTION_SET_COMBAT_DISTANCE: return sizeof(SmartAction::combatDistance); diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h index 9260b9ab4..c8b96a926 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h @@ -1216,8 +1216,15 @@ struct SmartAction uint32 controlled; uint32 ContactDistance; uint32 combatReach; + SAIBool disableForceDestination; } moveToPos; + struct + { + uint32 pointId; + SAIBool disableForceDestination; + } moveToPosTarget; + struct { uint32 gossipMenuId; diff --git a/src/server/game/Entities/Item/ItemTemplate.h b/src/server/game/Entities/Item/ItemTemplate.h index b30959528..53b5f661f 100644 --- a/src/server/game/Entities/Item/ItemTemplate.h +++ b/src/server/game/Entities/Item/ItemTemplate.h @@ -692,7 +692,6 @@ struct ItemTemplate uint32 MinMoneyLoot; uint32 MaxMoneyLoot; ItemFlagsCustom FlagsCu; - WorldPacket queryData; // pussywizard // helpers [[nodiscard]] bool HasSignature() const @@ -828,8 +827,6 @@ struct ItemTemplate [[nodiscard]] bool HasFlag(ItemFlags flag) const { return (Flags & flag) != 0; } [[nodiscard]] bool HasFlag2(ItemFlags2 flag) const { return (Flags2 & flag) != 0; } [[nodiscard]] bool HasFlagCu(ItemFlagsCustom flag) const { return (FlagsCu & flag) != 0; } - - void InitializeQueryData(); }; // Benchmarked: Faster than std::map (insert/find) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 62d148312..be2e864c2 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -4138,6 +4138,9 @@ void Unit::InterruptSpell(CurrentSpellTypes spellType, bool withDelayed, bool wi if (ai->CanChaseOnInterrupt()) ai->SetCombatMove(true); } + + if (IsCreature() && IsAIEnabled) + ToCreature()->AI()->OnSpellCastFinished(spell->GetSpellInfo(), SPELL_FINISHED_CANCELED); } } diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index d6cecdc5d..c532f5fe7 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -3443,9 +3443,6 @@ void ObjectMgr::LoadItemTemplates() } } - for (ItemTemplateContainer::iterator itr = _itemTemplateStore.begin(); itr != _itemTemplateStore.end(); ++itr) - itr->second.InitializeQueryData(); - // Check if item templates for DBC referenced character start outfit are present std::set notFoundOutfit; for (uint32 i = 1; i < sCharStartOutfitStore.GetNumRows(); ++i) diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp index ce5ca1081..880440a3d 100644 --- a/src/server/game/Handlers/ItemHandler.cpp +++ b/src/server/game/Handlers/ItemHandler.cpp @@ -385,135 +385,6 @@ bool ItemTemplate::HasSpellPowerStat() const return invalid; } -void ItemTemplate::InitializeQueryData() -{ - queryData.Initialize(SMSG_ITEM_QUERY_SINGLE_RESPONSE, 1); - - queryData << ItemId; - queryData << Class; - queryData << SubClass; - queryData << SoundOverrideSubclass; - queryData << Name1; - queryData << uint8(0x00); //pProto->Name2; // blizz not send name there, just uint8(0x00); <-- \0 = empty string = empty name... - queryData << uint8(0x00); //pProto->Name3; // blizz not send name there, just uint8(0x00); - queryData << uint8(0x00); //pProto->Name4; // blizz not send name there, just uint8(0x00); - queryData << DisplayInfoID; - queryData << Quality; - queryData << Flags; - queryData << Flags2; - queryData << BuyPrice; - queryData << SellPrice; - queryData << InventoryType; - queryData << AllowableClass; - queryData << AllowableRace; - queryData << ItemLevel; - queryData << RequiredLevel; - queryData << RequiredSkill; - queryData << RequiredSkillRank; - queryData << RequiredSpell; - queryData << RequiredHonorRank; - queryData << RequiredCityRank; - queryData << RequiredReputationFaction; - queryData << RequiredReputationRank; - queryData << int32(MaxCount); - queryData << int32(Stackable); - queryData << ContainerSlots; - queryData << StatsCount; // item stats count - for (uint32 i = 0; i < StatsCount; ++i) - { - queryData << ItemStat[i].ItemStatType; - queryData << ItemStat[i].ItemStatValue; - } - queryData << ScalingStatDistribution; // scaling stats distribution - queryData << ScalingStatValue; // some kind of flags used to determine stat values column - for (int i = 0; i < MAX_ITEM_PROTO_DAMAGES; ++i) - { - queryData << Damage[i].DamageMin; - queryData << Damage[i].DamageMax; - queryData << Damage[i].DamageType; - } - - // resistances (7) - queryData << Armor; - queryData << HolyRes; - queryData << FireRes; - queryData << NatureRes; - queryData << FrostRes; - queryData << ShadowRes; - queryData << ArcaneRes; - - queryData << Delay; - queryData << AmmoType; - queryData << RangedModRange; - - for (int s = 0; s < MAX_ITEM_PROTO_SPELLS; ++s) - { - // send DBC data for cooldowns in same way as it used in Spell::SendSpellCooldown - // use `item_template` or if not set then only use spell cooldowns - SpellInfo const* spell = sSpellMgr->GetSpellInfo(Spells[s].SpellId); - if (spell) - { - bool db_data = Spells[s].SpellCooldown >= 0 || Spells[s].SpellCategoryCooldown >= 0; - - queryData << Spells[s].SpellId; - queryData << Spells[s].SpellTrigger; - queryData << int32(Spells[s].SpellCharges); - - if (db_data) - { - queryData << uint32(Spells[s].SpellCooldown); - queryData << uint32(Spells[s].SpellCategory); - queryData << uint32(Spells[s].SpellCategoryCooldown); - } - else - { - queryData << uint32(spell->RecoveryTime); - queryData << uint32(spell->GetCategory()); - queryData << uint32(spell->CategoryRecoveryTime); - } - } - else - { - queryData << uint32(0); - queryData << uint32(0); - queryData << uint32(0); - queryData << uint32(-1); - queryData << uint32(0); - queryData << uint32(-1); - } - } - queryData << Bonding; - queryData << Description; - queryData << PageText; - queryData << LanguageID; - queryData << PageMaterial; - queryData << StartQuest; - queryData << LockID; - queryData << int32(Material); - queryData << Sheath; - queryData << RandomProperty; - queryData << RandomSuffix; - queryData << Block; - queryData << ItemSet; - queryData << MaxDurability; - queryData << Area; - queryData << Map; // Added in 1.12.x & 2.0.1 client branch - queryData << BagFamily; - queryData << TotemCategory; - for (int s = 0; s < MAX_ITEM_PROTO_SOCKETS; ++s) - { - queryData << Socket[s].Color; - queryData << Socket[s].Content; - } - queryData << socketBonus; - queryData << GemProperties; - queryData << RequiredDisenchantSkill; - queryData << ArmorDamageModifier; - queryData << Duration; // added in 2.4.2.8209, duration (seconds) - queryData << ItemLimitCategory; // WotLK, ItemLimitCategory - queryData << HolidayId; // Holiday.dbc? -} - // Only _static_ data send in this packet !!! void WorldSession::HandleItemQuerySingleOpcode(WorldPacket& recvData) { diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 9ad08dd7b..daddbe9dd 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -4112,6 +4112,12 @@ void Spell::_cast(bool skipCheck) sScriptMgr->OnSpellCast(this, m_caster, m_spellInfo, skipCheck); SetExecutedCurrently(false); + + // Call CreatureAI hook OnSpellCastFinished + if (m_originalCaster) + if (Creature* caster = m_originalCaster->ToCreature()) + if (caster->IsAIEnabled) + caster->AI()->OnSpellCastFinished(GetSpellInfo(), SPELL_FINISHED_SUCCESSFUL_CAST); } void Spell::handle_immediate() @@ -4463,6 +4469,11 @@ void Spell::update(uint32 difftime) SendChannelUpdate(0); finish(); + + // We call the hook here instead of in Spell::finish because we only want to call it for completed channeling. Everything else is handled by interrupts + if (Creature* creatureCaster = m_caster->ToCreature()) + if (creatureCaster->IsAIEnabled) + creatureCaster->AI()->OnSpellCastFinished(m_spellInfo, SPELL_FINISHED_CHANNELING_COMPLETE); } // Xinef: Dont update channeled target list on last tick, allow auras to update duration properly // Xinef: Added this strange check because of diffrent update routines for players / creatures diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h index d5e9f26c8..bb8f2cb7b 100644 --- a/src/server/game/Spells/Spell.h +++ b/src/server/game/Spells/Spell.h @@ -92,6 +92,13 @@ enum SpellRangeFlag SPELL_RANGE_RANGED = 2, //hunter range and ranged weapon }; +enum SpellFinishReason : uint8 +{ + SPELL_FINISHED_SUCCESSFUL_CAST = 0, // spell has sucessfully launched + SPELL_FINISHED_CANCELED = 1, // spell has been canceled (interrupts) + SPELL_FINISHED_CHANNELING_COMPLETE = 2 // spell channeling has been finished +}; + struct SpellDestination { SpellDestination(); diff --git a/src/server/game/World/WorldConfig.cpp b/src/server/game/World/WorldConfig.cpp index 99fd8b0d4..afcede3af 100644 --- a/src/server/game/World/WorldConfig.cpp +++ b/src/server/game/World/WorldConfig.cpp @@ -459,6 +459,7 @@ void WorldConfig::BuildConfigCache() SetConfigValue(CONFIG_ARENA_QUEUE_ANNOUNCER_DETAIL, "Arena.QueueAnnouncer.Detail", 3); SetConfigValue(CONFIG_OFFHAND_CHECK_AT_SPELL_UNLEARN, "OffhandCheckAtSpellUnlearn", true); + SetConfigValue(CONFIG_CREATURE_REPOSITION_AGAINST_NPCS, "Creature.RepositionAgainstNpcs", true); SetConfigValue(CONFIG_CREATURE_STOP_FOR_PLAYER, "Creature.MovingStopTimeForPlayer", 180000); SetConfigValue(CONFIG_WATER_BREATH_TIMER, "WaterBreath.Timer", 180000, ConfigValueCache::Reloadable::Yes, [](uint32 const& value) { return value > 0; }, "> 0"); diff --git a/src/server/game/World/WorldConfig.h b/src/server/game/World/WorldConfig.h index c06dd52f9..2760faad1 100644 --- a/src/server/game/World/WorldConfig.h +++ b/src/server/game/World/WorldConfig.h @@ -78,6 +78,7 @@ enum ServerConfigs CONFIG_ARENA_QUEUE_ANNOUNCER_ENABLE, CONFIG_ARENA_QUEUE_ANNOUNCER_PLAYERONLY, CONFIG_OFFHAND_CHECK_AT_SPELL_UNLEARN, + CONFIG_CREATURE_REPOSITION_AGAINST_NPCS, CONFIG_VMAP_INDOOR_CHECK, CONFIG_PET_LOS, CONFIG_START_CUSTOM_SPELLS, diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp index 982f5bf96..e1f50f3cd 100644 --- a/src/server/scripts/Northrend/zone_dragonblight.cpp +++ b/src/server/scripts/Northrend/zone_dragonblight.cpp @@ -2033,12 +2033,8 @@ enum StrengthenAncientsMisc { SAY_WALKER_FRIENDLY = 0, SAY_WALKER_ENEMY = 1, - SAY_LOTHALOR = 0, SPELL_CREATE_ITEM_BARK = 47550, - SPELL_CONFUSED = 47044, - - NPC_LOTHALOR = 26321 }; class spell_q12096_q12092_dummy : public SpellScript @@ -2082,27 +2078,6 @@ class spell_q12096_q12092_dummy : public SpellScript } }; -class spell_q12096_q12092_bark : public SpellScript -{ - PrepareSpellScript(spell_q12096_q12092_bark); - - void HandleDummy(SpellEffIndex /*effIndex*/) - { - Creature* lothalor = GetHitCreature(); - if (!lothalor || lothalor->GetEntry() != NPC_LOTHALOR) - return; - - lothalor->AI()->Talk(SAY_LOTHALOR); - lothalor->RemoveAura(SPELL_CONFUSED); - lothalor->DespawnOrUnsummon(4000); - } - - void Register() override - { - OnEffectHitTarget += SpellEffectFn(spell_q12096_q12092_bark::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); - } -}; - /*##### # npc_torturer_lecraft #####*/ @@ -2320,7 +2295,6 @@ void AddSC_dragonblight() new npc_spiritual_insight(); new npc_commander_eligor_dawnbringer(); RegisterSpellScript(spell_q12096_q12092_dummy); - RegisterSpellScript(spell_q12096_q12092_bark); new npc_torturer_lecraft(); RegisterSpellScript(spell_dragonblight_corrosive_spit); RegisterSpellScript(spell_handover_reins);