Skip to content

Commit ec84a53

Browse files
authored
Merge branch 'azerothcore:master' into master
2 parents 9fdd453 + c1400db commit ec84a53

File tree

5 files changed

+190
-1
lines changed

5 files changed

+190
-1
lines changed
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
-- DB update 2026_02_18_07 -> 2026_02_18_08
2+
-- Fix Slaves to Saronite RP scripting (Issue #24157)
3+
-- https://github.com/azerothcore/azerothcore-wotlk/issues/24157
4+
--
5+
-- This PR was created with AI assistance (Windsurf/Cascade).
6+
--
7+
-- Current behavior:
8+
-- - Script 3139700: Slave runs to freedom (working correctly)
9+
-- - Script 3139701: Slave yells and attacks (yelling is wrong per blizzlike)
10+
--
11+
-- Blizzlike behavior per 2009 video evidence (https://www.youtube.com/watch?v=QeW_q-24Z28):
12+
-- 1. Slave silently runs to freedom
13+
-- 2. Slave emotes "goes into a frenzy!" and becomes hostile (NO yelling)
14+
-- 3. Slave yells one of their quotes and runs to pit to jump (NEW)
15+
--
16+
-- Changes:
17+
-- 1. Gossip: cast 5429 on player; NpcFlags/EmoteState reset on respawn (template)
18+
-- 2. Add third random outcome (pit-jumping with yell); three pit waypoints per sniffs
19+
-- 3. Fix hostile behavior to use emote instead of yell
20+
-- 4. Fix /say messages language from Orcish to Universal
21+
-- 5. Add unknown voice whispers in Saronite Mines (spell_area 27769, area 4514)
22+
-- 6. Freedom path and pit coordinates from in-game research (Gultask)
23+
-- 7. Workaround (Gultask): run random script on gossip first, then cast 5429 on link;
24+
-- pit outcome sets phase 1 and UPDATE (event 60) picks random pit (no actionlist overlap).
25+
26+
-- ============================================================================
27+
-- 1. Gossip: Run random script first, then cast 5429 on link (fixes actionlist overlap).
28+
-- MovementInform (event 34, pointId 1/2/3): jump then despawn 4000ms.
29+
-- MovementInform pointId 4: freedom reached, despawn instant.
30+
-- UPDATE phase 1: run random pit (3139703/4/5) so 1/3 chance without nested actionlist.
31+
-- ============================================================================
32+
DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 31397);
33+
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
34+
(31397, 0, 0, 1, 62, 0, 100, 512, 10137, 0, 0, 0, 0, 0, 87, 3139700, 3139701, 3139702, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Saronite Mine Slave - On Gossip Option Selected - Run Random Script'),
35+
(31397, 0, 1, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 5429, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Saronite Mine Slave - On Link - Cast 5429 on Player'),
36+
(31397, 0, 2, 0, 0, 0, 100, 0, 1000, 1000, 14000, 14000, 0, 0, 11, 3148, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Saronite Mine Slave - IC - Cast Head Crack'),
37+
(31397, 0, 3, 0, 1, 0, 15, 0, 10000, 30000, 50000, 70000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Saronite Mine Slave - OOC - Say text2'),
38+
(31397, 0, 4, 5, 34, 0, 100, 0, 8, 1, 0, 0, 0, 0, 97, 15, 15, 0, 0, 0, 0, 1, 0, 0, 0, 0, 6966.75, 2067.58, 482.553, 0, 'Saronite Mine Slave - On Reached Pit 1 - Jump To Pos'),
39+
(31397, 0, 5, 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, 'Saronite Mine Slave - On Reached Pit 1 - Despawn In 4000 ms'),
40+
(31397, 0, 6, 7, 34, 0, 100, 0, 8, 2, 0, 0, 0, 0, 97, 15, 15, 0, 0, 0, 0, 1, 0, 0, 0, 0, 6904.17, 2026.23, 482.964, 0, 'Saronite Mine Slave - On Reached Pit 2 - Jump To Pos'),
41+
(31397, 0, 7, 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, 'Saronite Mine Slave - On Reached Pit 2 - Despawn In 4000 ms'),
42+
(31397, 0, 8, 9, 34, 0, 100, 0, 8, 3, 0, 0, 0, 0, 97, 15, 15, 0, 0, 0, 0, 1, 0, 0, 0, 0, 6911.13, 1969.18, 488.24, 0, 'Saronite Mine Slave - On Reached Pit 3 - Jump To Pos'),
43+
(31397, 0, 9, 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, 'Saronite Mine Slave - On Reached Pit 3 - Despawn In 4000 ms'),
44+
(31397, 0, 10, 0, 60, 1, 100, 0, 1200, 1200, 0, 0, 0, 0, 87, 3139703, 3139704, 3139705, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Saronite Mine Slave - On Update Phase 1 - Run to Random Pit'),
45+
(31397, 0, 11, 0, 34, 0, 100, 0, 8, 4, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Saronite Mine Slave - On Reached Freedom - Despawn Instant');
46+
47+
-- ============================================================================
48+
-- 2a. Freedom path: move to PointId 4 (7026.46, 1877.16, 533.62); MovementInform 4 despawns (31397 id 11).
49+
-- ============================================================================
50+
DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 3139700);
51+
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
52+
(3139700, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Saronite Mine Slave - Actionlist - Close Gossip'),
53+
(3139700, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Saronite Mine Slave - Actionlist - Remove Npc Flags Gossip'),
54+
(3139700, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 33, 31866, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 'Saronite Mine Slave - Actionlist - Quest Credit Slaves to Saronite'),
55+
(3139700, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 69, 4, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 7026.46, 1877.16, 533.627, 0, 'Saronite Mine Slave - Actionlist - Move To Freedom PointId 4');
56+
57+
-- ============================================================================
58+
-- 2b. Pit outcome: yell, set phase 1 (no quest credit; UPDATE event 60 on 31397 runs random pit).
59+
-- ============================================================================
60+
DELETE FROM `smart_scripts` WHERE `entryorguid`=3139702 AND `source_type`=9;
61+
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
62+
(3139702,9,0,0,0,0,100,0,0,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,'Saronite Mine Slave - On Script - Close Gossip'),
63+
(3139702,9,1,0,0,0,100,0,0,0,0,0,0,0,83,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Saronite Mine Slave - On Script - Remove NPC Flag'),
64+
(3139702,9,2,0,0,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,'Saronite Mine Slave - On Script - Yell (GroupID 0)'),
65+
(3139702,9,3,0,0,0,100,0,0,0,0,0,0,0,59,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Saronite Mine Slave - On Script - Set Run On'),
66+
(3139702,9,4,0,0,0,100,0,0,0,0,0,0,0,22,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Saronite Mine Slave - On Script - Set Event Phase 1');
67+
68+
-- Pit scripts: only Move to Pos with PointId; MovementInform on 31397 handles jump + despawn
69+
DELETE FROM `smart_scripts` WHERE `entryorguid` IN (3139703,3139704,3139705) AND `source_type`=9;
70+
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
71+
(3139703,9,0,0,0,0,100,0,0,0,0,0,0,0,69,1,0,0,0,0,0,8,0,0,0,0,6966.371,2050.5237,519.42505,0,'Pit 1 - Move to pos PointId 1'),
72+
(3139704,9,0,0,0,0,100,0,0,0,0,0,0,0,69,2,0,0,0,0,0,8,0,0,0,0,6915.9272,2025.5466,518.6113,0,'Pit 2 - Move to pos PointId 2'),
73+
(3139705,9,0,0,0,0,100,0,0,0,0,0,0,0,69,3,0,0,0,0,0,8,0,0,0,0,6921.0854,1972.6857,523.33716,0,'Pit 3 - Move to pos PointId 3');
74+
75+
-- ============================================================================
76+
-- 3. Fix hostile behavior: emote "goes into a frenzy!" instead of yelling
77+
-- ============================================================================
78+
79+
-- Add emote text (Type 16 = CHAT_MSG_MONSTER_EMOTE)
80+
DELETE FROM `creature_text` WHERE `CreatureID`=31397 AND `GroupID`=2;
81+
INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES
82+
(31397,2,0,'%s goes into a frenzy!',16,0,100,0,0,0,36719,0,'Saronite Mine Slave - Frenzy Emote');
83+
84+
-- Update hostile script to use emote (GroupID 2) instead of yell (GroupID 0)
85+
DELETE FROM `smart_scripts` WHERE `entryorguid`=3139701 AND `source_type`=9;
86+
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
87+
(3139701,9,0,0,0,0,100,0,0,0,0,0,0,0,72,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,'Saronite Mine Slave - On Script - Close Gossip'),
88+
(3139701,9,1,0,0,0,100,0,0,0,0,0,0,0,2,14,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Saronite Mine Slave - On Script - Set Faction Hostile'),
89+
(3139701,9,2,0,0,0,100,0,0,0,0,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Saronite Mine Slave - On Script - Emote (GroupID 2 - frenzy)'),
90+
(3139701,9,3,0,0,0,100,0,0,0,0,0,0,0,49,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,'Saronite Mine Slave - On Script - Attack'),
91+
(3139701,9,4,0,0,0,100,0,0,0,0,0,0,0,11,8599,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Saronite Mine Slave - On Script - Cast Enrage');
92+
93+
-- ============================================================================
94+
-- 4. Fix /say messages language from Orcish (1) to Universal (0)
95+
-- ============================================================================
96+
UPDATE `creature_text` SET `Language`=0 WHERE `CreatureID`=31397 AND `GroupID`=1;
97+
98+
-- ============================================================================
99+
-- 5. Unknown voice whispers in Saronite Mines (same as Whisper Gulch)
100+
-- ============================================================================
101+
DELETE FROM `spell_area` WHERE `spell` = 27769 AND `area` = 4514;
102+
INSERT INTO `spell_area` (`spell`,`area`,`quest_start`,`quest_end`,`aura_spell`,`racemask`,`gender`,`autocast`,`quest_start_status`,`quest_end_status`) VALUES
103+
(27769,4514,0,0,0,0,2,1,64,11);
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
-- DB update 2026_02_18_08 -> 2026_02_19_00
2+
-- Update gameobject 'InnTableTiny' with sniffed values
3+
-- updated spawns
4+
DELETE FROM `gameobject` WHERE (`id` IN (180885)) AND (`guid` IN (240279, 240280, 240281, 240282, 240283, 240284));
5+
INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `ScriptName`, `VerifiedBuild`, `Comment`) VALUES
6+
(240279, 180885, 0, 0, 0, 1, 1, 1805.888916015625, 217.1336822509765625, 60.60018539428710937, 1.518436193466186523, 0, 0, 0.6883544921875, 0.725374460220336914, 120, 255, 1, "", 51943, NULL),
7+
(240280, 180885, 1, 0, 0, 1, 1, 10050.326171875, 2118.060791015625, 1329.939697265625, 0.750490784645080566, 0, 0, 0.3665008544921875, 0.93041771650314331, 120, 255, 1, "", 51943, NULL),
8+
(240281, 180885, 0, 0, 0, 1, 1, -5149.5244140625, -854.9305419921875, 508.43206787109375, 0.750490784645080566, 0, 0, 0.3665008544921875, 0.93041771650314331, 120, 255, 1, "", 51943, NULL),
9+
(240282, 180885, 0, 0, 0, 1, 1, -9331.4423828125, 181.9913177490234375, 61.6300048828125, 0.750490784645080566, 0, 0, 0.3665008544921875, 0.93041771650314331, 120, 255, 1, "", 51943, NULL),
10+
(240283, 180885, 1, 0, 0, 1, 1, 1176.8541259765625, -4464.08837890625, 21.34675025939941406, 0.750490784645080566, 0, 0, 0.3665008544921875, 0.93041771650314331, 120, 255, 1, "", 51943, NULL),
11+
(240284, 180885, 1, 0, 0, 1, 1, -980.32989501953125, -71.845489501953125, 19.58780288696289062, 0.750490784645080566, 0, 0, 0.3665008544921875, 0.93041771650314331, 120, 255, 1, "", 46368, NULL);
12+
13+
-- Day of the Dead
14+
DELETE FROM `game_event_gameobject` WHERE (`eventEntry` = 51) AND (`guid` IN (240279, 240280, 240281, 240282, 240283, 240284));
15+
INSERT INTO `game_event_gameobject` (`eventEntry`,`guid`) VALUES
16+
(51, 240279),
17+
(51, 240280),
18+
(51, 240281),
19+
(51, 240282),
20+
(51, 240283),
21+
(51, 240284);
22+
23+
-- new spawns
24+
DELETE FROM `gameobject` WHERE (`id` IN (180885)) AND (`guid` IN (184, 185, 186, 187));
25+
INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `ScriptName`, `VerifiedBuild`, `Comment`) VALUES
26+
(184, 180885, 0, 0, 0, 1, 1, 1647.7454833984375, 233.8232421875, 62.59157180786132812, 2.321286916732788085, 0, 0, 0.917059898376464843, 0.398749500513076782, 120, 255, 1, "", 47612, NULL),
27+
(185, 180885, 530, 0, 0, 1, 1, -4318.9775390625, -12442.326171875, 17.2803955078125, 0.750490784645080566, 0, 0, 0.3665008544921875, 0.93041771650314331, 120, 255, 1, "", 51943, NULL),
28+
(186, 180885, 530, 0, 0, 1, 1, 9411.2724609375, -6838.46533203125, 16.24826431274414062, 1.518436193466186523, 0, 0, 0.6883544921875, 0.725374460220336914, 120, 255, 1, "", 51943, NULL),
29+
(187, 180885, 571, 0, 0, 1, 1, 5848.79345703125, 767.888916015625, 640.4781494140625, 0.750490784645080566, 0, 0, 0.3665008544921875, 0.93041771650314331, 120, 255, 1, "", 46248, NULL);
30+
31+
-- Lunar Festival
32+
DELETE FROM `game_event_gameobject` WHERE (`eventEntry` = 7) AND (`guid` IN (184));
33+
INSERT INTO `game_event_gameobject` (`eventEntry`,`guid`) VALUES
34+
(7, 184);
35+
36+
-- Day of the Dead
37+
DELETE FROM `game_event_gameobject` WHERE (`eventEntry` = 51) AND (`guid` IN (185, 186, 187));
38+
INSERT INTO `game_event_gameobject` (`eventEntry`,`guid`) VALUES
39+
(51, 185),
40+
(51, 186),
41+
(51, 187);

0 commit comments

Comments
 (0)