From b9275f314bbda751c6774bfee15ddac4b4af4b92 Mon Sep 17 00:00:00 2001 From: luis Date: Sun, 15 Mar 2026 10:52:47 -0300 Subject: [PATCH] new undead zone scripts --- .../world/master/2026_03_15_00_world.sql | 654 ++++++++++++++++++ src/server/game/Entities/Player/Player.cpp | 18 + src/server/game/Entities/Player/Player.h | 3 + src/server/game/Scripting/ScriptMgr.h | 14 + .../EasternKingdoms/zone_tirisfal_glades.cpp | 288 +++++++- 5 files changed, 945 insertions(+), 32 deletions(-) create mode 100644 sql/updates/world/master/2026_03_15_00_world.sql diff --git a/sql/updates/world/master/2026_03_15_00_world.sql b/sql/updates/world/master/2026_03_15_00_world.sql new file mode 100644 index 000000000..687c16a79 --- /dev/null +++ b/sql/updates/world/master/2026_03_15_00_world.sql @@ -0,0 +1,654 @@ +DELETE FROM `smart_scripts` WHERE `entryorguid`=49337; +DELETE FROM `smart_scripts` WHERE `entryorguid`=49340; + +UPDATE `creature_template` SET `AIName`='', `ScriptName`='npc_scarlet_corpse' WHERE `entry`=49340; +UPDATE `creature_template` SET `AIName`='', `ScriptName`='npc_darnell_deathknell_corpse' WHERE `entry`=49337; + +-- --- Adam (1366) — fishing with Billy, responds to Billy's stories --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=1366; +DELETE FROM smart_scripts WHERE entryorguid=1366 AND source_type=0; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(1366, 0, 0, 0, '', 11, 0, 100, 0, 0, 0, 0, 0, 0, '', 5, 92, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Adam - On Respawn - Set Emote State Use Standing (Fishing)'), +(1366, 0, 1, 0, '', 1, 0, 100, 0, 120000, 360000, 120000, 360000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Adam - OOC 2-6min - Say Line 0'), +(1366, 0, 2, 0, '', 1, 0, 30, 0, 60000, 180000, 60000, 180000, 0, '', 10, 10, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Adam - OOC 1-3min 30% - Play Emote Laugh'); + + +-- --- Billy (1367) — fishing with Adam, tells tall tales --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=1367; +DELETE FROM smart_scripts WHERE entryorguid=1367 AND source_type=0; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(1367, 0, 0, 0, '', 11, 0, 100, 0, 0, 0, 0, 0, 0, '', 5, 92, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Billy - On Respawn - Set Emote State Use Standing (Fishing)'), +(1367, 0, 1, 0, '', 1, 0, 100, 0, 120000, 360000, 120000, 360000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Billy - OOC 2-6min - Say Line 0'), +(1367, 0, 2, 0, '', 1, 0, 20, 0, 300000, 600000, 300000, 600000, 0, '', 1, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Billy - OOC 5-10min 20% - Say Line 1 (Lets go elsewhere)'), +(1367, 0, 3, 0, '', 1, 0, 30, 0, 60000, 180000, 60000, 180000, 0, '', 10, 4, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Billy - OOC 1-3min 30% - Play Emote Cheer'); + +-- --- Justin (1368) — storyteller of the trio --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=1368; +DELETE FROM smart_scripts WHERE entryorguid=1368; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(1368, 0, 0, 0, '', 1, 0, 100, 0, 120000, 300000, 120000, 300000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Justin - OOC 2-5min - Say Line 0 (Tell a story)'), +(1368, 0, 1, 0, '', 1, 0, 40, 0, 60000, 120000, 60000, 120000, 0, '', 10, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Justin - OOC 1-2min 40% - Play Emote Talk'), +(1368, 0, 2, 0, '', 1, 0, 20, 0, 90000, 240000, 90000, 240000, 0, '', 10, 25, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Justin - OOC 1.5-4min 20% - Play Emote Point'); + + +-- --- Brandon (1370) — listener, reacts to Justin's stories --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=1370; +DELETE FROM smart_scripts WHERE entryorguid=1370; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(1370, 0, 0, 0, '', 1, 0, 100, 0, 150000, 360000, 150000, 360000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Brandon - OOC 2.5-6min - Say Line 0 (React to stories)'), +(1370, 0, 1, 0, '', 1, 0, 30, 0, 60000, 180000, 60000, 180000, 0, '', 10, 10, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Brandon - OOC 1-3min 30% - Play Emote Laugh'), +(1370, 0, 2, 0, '', 1, 0, 20, 0, 90000, 240000, 90000, 240000, 0, '', 10, 4, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Brandon - OOC 1.5-4min 20% - Play Emote Cheer'); + + +-- --- Roman (1371) — the cautious one, hears things --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=1371; +DELETE FROM smart_scripts WHERE entryorguid=1371; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(1371, 0, 0, 0, '', 1, 0, 100, 0, 150000, 360000, 150000, 360000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Roman - OOC 2.5-6min - Say Line 0 (Cautious observations)'), +(1371, 0, 1, 0, '', 1, 0, 25, 0, 60000, 180000, 60000, 180000, 0, '', 10, 26, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Roman - OOC 1-3min 25% - Play Emote Shy'), +(1371, 0, 2, 0, '', 1, 0, 20, 0, 120000, 300000, 120000, 300000, 0, '', 10, 33, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Roman - OOC 2-5min 20% - Play Emote Cry (dramatic)'); + +-- --- William (2533) — playing alone, chasing his gorilla toy --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=2533; +DELETE FROM smart_scripts WHERE entryorguid=2533 AND source_type=0; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(2533, 0, 0, 0, '', 1, 0, 100, 0, 90000, 300000, 90000, 300000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'William - OOC 1.5-5min - Say Line 0 (Crying about gorilla)'), +(2533, 0, 1, 0, '', 1, 0, 40, 0, 60000, 180000, 60000, 180000, 0, '', 10, 33, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'William - OOC 1-3min 40% - Play Emote Cry'), +(2533, 0, 2, 0, '', 1, 0, 20, 0, 120000, 360000, 120000, 360000, 0, '', 1, 3, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'William - OOC 2-6min 20% - Say Line 3 (WAAAHHH)'); + +-- Set wander_distance for children so they move around a little +UPDATE creature SET wander_distance=3, MovementType=1 WHERE guid=314222 AND id=1366; -- Adam +UPDATE creature SET wander_distance=3, MovementType=1 WHERE guid=314223 AND id=1367; -- Billy +UPDATE creature SET wander_distance=4, MovementType=1 WHERE guid=313762 AND id=1368; -- Justin +UPDATE creature SET wander_distance=4, MovementType=1 WHERE guid=313761 AND id=1370; -- Brandon +UPDATE creature SET wander_distance=4, MovementType=1 WHERE guid=313763 AND id=1371; -- Roman +UPDATE creature SET wander_distance=5, MovementType=1 WHERE guid=252244 AND id=2533; -- William + + + +-- --- Ironforge Blastsmith (108895) — 9 spawns at the harbor construction --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=108895; +DELETE FROM smart_scripts WHERE entryorguid=108895 AND source_type=0; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(108895, 0, 0, 0, '', 11, 0, 100, 0, 0, 0, 0, 0, 0, '', 5, 273, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Ironforge Blastsmith - On Respawn - Set Emote State Work Smith'), +(108895, 0, 1, 0, '', 1, 0, 100, 0, 180000, 480000, 180000, 480000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Ironforge Blastsmith - OOC 3-8min - Say Line 0'), +(108895, 0, 2, 0, '', 22, 0, 100, 0, 101, 15000, 15000, 0, 0, '', 10, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Ironforge Blastsmith - On Receive Wave - Play Emote Talk'); + +DELETE FROM creature_text WHERE CreatureID=108895; +INSERT INTO creature_text (CreatureID, GroupID, ID, Text, Type, Language, Probability, Emote, Duration, Sound, SoundPlayType, BroadcastTextId, TextRange, comment) VALUES +(108895, 0, 0, 'This iron''s got good grain. Bronzebeard stock, no doubt.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Ironforge Blastsmith'), +(108895, 0, 1, 'Steady heat, steady hammer. That''s how me da taught it.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Ironforge Blastsmith'), +(108895, 0, 2, 'Hah! Perfect fold on that one. Almost too pretty to rivet.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Ironforge Blastsmith'), +(108895, 0, 3, 'Whoever ordered steel plate this thick is expectin'' trouble.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Ironforge Blastsmith'), +(108895, 0, 4, 'Just need to quench this last piece...', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Ironforge Blastsmith'), +(108895, 0, 5, 'Could use a pint after this shift. Harbor work''s thirsty business.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Ironforge Blastsmith'), +(108895, 0, 6, 'These hull plates won''t shape themselves!', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Ironforge Blastsmith'); + +-- --- Dracthyr Smith (198383) — 3 spawns, Obsidian Warders --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=198383; +DELETE FROM smart_scripts WHERE entryorguid=198383 AND source_type=0; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(198383, 0, 0, 0, '', 11, 0, 100, 0, 0, 0, 0, 0, 0, '', 5, 273, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Dracthyr Smith - On Respawn - Set Emote State Work Smith'), +(198383, 0, 1, 0, '', 1, 0, 100, 0, 180000, 600000, 180000, 600000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Dracthyr Smith - OOC 3-10min - Say Line 0'), +(198383, 0, 2, 0, '', 22, 0, 100, 0, 101, 15000, 15000, 0, 0, '', 10, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Dracthyr Smith - On Receive Wave - Play Emote Talk'); + +DELETE FROM creature_text WHERE CreatureID=198383; +INSERT INTO creature_text (CreatureID, GroupID, ID, Text, Type, Language, Probability, Emote, Duration, Sound, SoundPlayType, BroadcastTextId, TextRange, comment) VALUES +(198383, 0, 0, 'The forge burns hot today. Good conditions for shaping adamant.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Dracthyr Smith'), +(198383, 0, 1, 'In the Forbidden Reach, we had no choice but to craft our own weapons. Here, it is a pleasure.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Dracthyr Smith'), +(198383, 0, 2, 'Fascinating technique, this human tempering. Crude, but surprisingly effective.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Dracthyr Smith'), +(198383, 0, 3, 'Dragonfire would heat this faster, but the humans get nervous when I breathe near their forges.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Dracthyr Smith'), +(198383, 0, 4, 'Another blade finished. Neltharion would have demanded perfection. I demand it of myself.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Dracthyr Smith'), +(198383, 0, 5, 'The Alliance smiths were skeptical at first. Now they ask for tips.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Dracthyr Smith'); + + +-- ============================================================================ +-- CATEGORY 3: COOKS & BAKERS (3 entries, 3 spawns) +-- ============================================================================ + +-- --- Thomas Miller (3518) — Baker, already has creature_text --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=3518; +DELETE FROM smart_scripts WHERE entryorguid=3518 AND source_type=0; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(3518, 0, 0, 0, '', 11, 0, 100, 0, 0, 0, 0, 0, 0, '', 5, 274, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Thomas Miller - On Respawn - Set Emote State Work'), +(3518, 0, 1, 0, '', 1, 0, 100, 0, 120000, 300000, 120000, 300000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Thomas Miller - OOC 2-5min - Say Line 0 (Fresh bread!)'), +(3518, 0, 2, 0, '', 22, 0, 100, 0, 101, 15000, 15000, 0, 0, '', 10, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Thomas Miller - On Receive Wave - Play Emote Talk'); + +-- --- Connor Rivers (5081) — Apprentice Chef --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=5081; +DELETE FROM smart_scripts WHERE entryorguid=5081 AND source_type=0; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(5081, 0, 0, 0, '', 11, 0, 100, 0, 0, 0, 0, 0, 0, '', 5, 274, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Connor Rivers - On Respawn - Set Emote State Work'), +(5081, 0, 1, 0, '', 1, 0, 100, 0, 180000, 480000, 180000, 480000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Connor Rivers - OOC 3-8min - Say Line 0'), +(5081, 0, 2, 0, '', 1, 0, 30, 0, 60000, 180000, 60000, 180000, 0, '', 10, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Connor Rivers - OOC 1-3min 30% - Play Emote Talk'); + +DELETE FROM creature_text WHERE CreatureID=5081; +INSERT INTO creature_text (CreatureID, GroupID, ID, Text, Type, Language, Probability, Emote, Duration, Sound, SoundPlayType, BroadcastTextId, TextRange, comment) VALUES +(5081, 0, 0, 'Hmm, needs more seasoning... I think.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Connor Rivers'), +(5081, 0, 1, 'Chef Angus says presentation is half the meal. The other half is not burning it.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Connor Rivers'), +(5081, 0, 2, 'One day I''ll have my own inn. Connor''s Kitchen... no, that''s terrible.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Connor Rivers'), +(5081, 0, 3, 'Stir, don''t stab, stir, don''t stab... there we go.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Connor Rivers'), +(5081, 0, 4, 'I wonder if Pandaren spices would work in boar stew...', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Connor Rivers'), +(5081, 0, 5, 'The trick to a good broth is patience. And not letting it boil over. Again.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Connor Rivers'); + +-- --- Kendor Kabonka (340) — Master of Cooking Recipes (vendor, but add personality) --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=340; +DELETE FROM smart_scripts WHERE entryorguid=340 AND source_type=0; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(340, 0, 0, 0, '', 1, 0, 100, 0, 240000, 600000, 240000, 600000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Kendor Kabonka - OOC 4-10min - Say Line 0'), +(340, 0, 1, 0, '', 1, 0, 30, 0, 120000, 300000, 120000, 300000, 0, '', 10, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Kendor Kabonka - OOC 2-5min 30% - Play Emote Talk'); + +DELETE FROM creature_text WHERE CreatureID=340; +INSERT INTO creature_text (CreatureID, GroupID, ID, Text, Type, Language, Probability, Emote, Duration, Sound, SoundPlayType, BroadcastTextId, TextRange, comment) VALUES +(340, 0, 0, 'I have recipes from every corner of Azeroth! Well, most corners. I''m working on it.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Kendor Kabonka'), +(340, 0, 1, 'Fifty years behind the stove and I still learn something new every season.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Kendor Kabonka'), +(340, 0, 2, 'You haven''t lived until you''ve tasted Westfall stew made with fresh thyme.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Kendor Kabonka'), +(340, 0, 3, 'The secret to a good recipe? Knowing when to follow it and when to improvise.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Kendor Kabonka'), +(340, 0, 4, 'A dwarf once traded me a recipe for Dark Iron stout cake. Worth every copper.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Kendor Kabonka'); + + +-- ============================================================================ +-- CATEGORY 4: PRIESTS & HEALERS (3 entries, 6 spawns) +-- ============================================================================ + +-- --- Stormwind Priest (141508) — 4 spawns near wounded refugees, healing/tending --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=141508; +DELETE FROM smart_scripts WHERE entryorguid=141508 AND source_type=0; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(141508, 0, 0, 0, '', 11, 0, 100, 0, 0, 0, 0, 0, 0, '', 5, 28, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Stormwind Priest - On Respawn - Set Emote State Kneel'), +(141508, 0, 1, 0, '', 1, 0, 100, 0, 180000, 420000, 180000, 420000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Stormwind Priest - OOC 3-7min - Say Line 0'), +(141508, 0, 2, 0, '', 1, 0, 40, 0, 90000, 240000, 90000, 240000, 0, '', 10, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Stormwind Priest - OOC 1.5-4min 40% - Play Emote Talk'); + +DELETE FROM creature_text WHERE CreatureID=141508; +INSERT INTO creature_text (CreatureID, GroupID, ID, Text, Type, Language, Probability, Emote, Duration, Sound, SoundPlayType, BroadcastTextId, TextRange, comment) VALUES +(141508, 0, 0, 'The Light will mend you. Be still.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Stormwind Priest'), +(141508, 0, 1, 'Rest now. You are safe within these walls.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Stormwind Priest'), +(141508, 0, 2, 'By the grace of the Light, your wounds will heal.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Stormwind Priest'), +(141508, 0, 3, 'Drink this. It will ease the pain.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Stormwind Priest'), +(141508, 0, 4, 'Teldrassil may be lost, but your spirit endures.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Stormwind Priest'), +(141508, 0, 5, 'There now... the fever is breaking. You''ll be all right.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Stormwind Priest'); + +-- --- Bishop Farthing (1212) — 1 spawn, pious leader --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=1212; +DELETE FROM smart_scripts WHERE entryorguid=1212 AND source_type=0; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(1212, 0, 0, 0, '', 1, 0, 100, 0, 240000, 600000, 240000, 600000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Bishop Farthing - OOC 4-10min - Say Line 0'), +(1212, 0, 1, 0, '', 1, 0, 30, 0, 120000, 360000, 120000, 360000, 0, '', 10, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Bishop Farthing - OOC 2-6min 30% - Play Emote Talk'), +(1212, 0, 2, 0, '', 22, 0, 100, 0, 17, 15000, 15000, 0, 0, '', 10, 2, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Bishop Farthing - On Receive Bow - Play Emote Bow'); + +DELETE FROM creature_text WHERE CreatureID=1212; +INSERT INTO creature_text (CreatureID, GroupID, ID, Text, Type, Language, Probability, Emote, Duration, Sound, SoundPlayType, BroadcastTextId, TextRange, comment) VALUES +(1212, 0, 0, 'The Light watches over Stormwind. Of this, I am certain.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Bishop Farthing'), +(1212, 0, 1, 'In these troubled times, faith is our greatest shield.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Bishop Farthing'), +(1212, 0, 2, 'The Cathedral stands as it always has. A beacon for the faithful.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Bishop Farthing'), +(1212, 0, 3, 'May the Light grant us the wisdom to weather what lies ahead.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Bishop Farthing'), +(1212, 0, 4, 'We must tend to the refugees. Their need is great.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Bishop Farthing'); + +-- --- Brother Benjamin (5484) — Priest Trainer, 1 spawn --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=5484; +DELETE FROM smart_scripts WHERE entryorguid=5484 AND source_type=0; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(5484, 0, 0, 0, '', 1, 0, 100, 0, 240000, 600000, 240000, 600000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Brother Benjamin - OOC 4-10min - Say Line 0'), +(5484, 0, 1, 0, '', 1, 0, 25, 0, 90000, 300000, 90000, 300000, 0, '', 10, 28, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Brother Benjamin - OOC 1.5-5min 25% - Play Emote Kneel (Praying)'), +(5484, 0, 2, 0, '', 22, 0, 100, 0, 17, 15000, 15000, 0, 0, '', 10, 2, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Brother Benjamin - On Receive Bow - Play Emote Bow'); + +DELETE FROM creature_text WHERE CreatureID=5484; +INSERT INTO creature_text (CreatureID, GroupID, ID, Text, Type, Language, Probability, Emote, Duration, Sound, SoundPlayType, BroadcastTextId, TextRange, comment) VALUES +(5484, 0, 0, 'The path of the Light is not an easy one, but it is always rewarding.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Brother Benjamin'), +(5484, 0, 1, 'To heal is to serve. To serve is to know the Light.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Brother Benjamin'), +(5484, 0, 2, 'Prayer and discipline. The foundations of all who channel the Light.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Brother Benjamin'), +(5484, 0, 3, 'Even in darkness, a single candle can illuminate the way.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Brother Benjamin'); + + +-- ============================================================================ +-- CATEGORY 5: STABLE KEEPER (1 entry, 1 spawn) +-- ============================================================================ + +-- --- Valarian (198579) — Stable Keeper, near the stables --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=198579; +DELETE FROM smart_scripts WHERE entryorguid=198579 AND source_type=0; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(198579, 0, 0, 0, '', 1, 0, 100, 0, 180000, 480000, 180000, 480000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Valarian - OOC 3-8min - Say Line 0'), +(198579, 0, 1, 0, '', 1, 0, 30, 0, 90000, 240000, 90000, 240000, 0, '', 10, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Valarian - OOC 1.5-4min 30% - Play Emote Talk'), +(198579, 0, 2, 0, '', 22, 0, 100, 0, 101, 15000, 15000, 0, 0, '', 10, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Valarian - On Receive Wave - Play Emote Talk'); + +DELETE FROM creature_text WHERE CreatureID=198579; +INSERT INTO creature_text (CreatureID, GroupID, ID, Text, Type, Language, Probability, Emote, Duration, Sound, SoundPlayType, BroadcastTextId, TextRange, comment) VALUES +(198579, 0, 0, 'Easy there, girl. You''ll get your oats soon enough.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Valarian'), +(198579, 0, 1, 'These mounts have seen more battles than most soldiers. They deserve proper care.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Valarian'), +(198579, 0, 2, 'A well-groomed steed is a loyal companion on any road.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Valarian'), +(198579, 0, 3, 'The horses get restless before a storm. Must be one coming.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Valarian'), +(198579, 0, 4, 'Good hay, clean water, and a kind hand. That''s all they ask for.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Valarian'), +(198579, 0, 5, 'Shhh, steady now... that''s it.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Valarian'); + + +-- ============================================================================ +-- CATEGORY 6: CONVERSATION PAIRS (4 entries, 4 spawns) +-- Uses timed action lists (source_type=9) for synchronized dialogue +-- ============================================================================ + +-- ---- PAIR A: Harriet Mura (176234) & Anna Taki (176231) ---- +-- Two women chatting in the Trade District +-- Harriet initiates the conversation via action list + +UPDATE creature_template SET AIName='SmartAI' WHERE entry=176234; +UPDATE creature_template SET AIName='SmartAI' WHERE entry=176231; + +DELETE FROM smart_scripts WHERE entryorguid=176234 AND source_type=0; +DELETE FROM smart_scripts WHERE entryorguid=176231 AND source_type=0; +DELETE FROM smart_scripts WHERE entryorguid IN (17623400, 17623401) AND source_type=9; + +-- Harriet Mura: triggers timed action list conversations periodically +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(176234, 0, 0, 0, '', 1, 0, 100, 0, 300000, 600000, 300000, 600000, 0, '', 80, 17623400, 17623401, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Harriet Mura - OOC 5-10min - Run Random Action List'), +(176234, 0, 1, 0, '', 1, 0, 30, 0, 90000, 240000, 90000, 240000, 0, '', 10, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Harriet Mura - OOC 1.5-4min 30% - Play Emote Talk'); + +-- Anna Taki: ambient emotes between conversations +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(176231, 0, 0, 0, '', 1, 0, 30, 0, 120000, 300000, 120000, 300000, 0, '', 10, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Anna Taki - OOC 2-5min 30% - Play Emote Talk'), +(176231, 0, 1, 0, '', 1, 0, 20, 0, 180000, 420000, 180000, 420000, 0, '', 10, 10, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Anna Taki - OOC 3-7min 20% - Play Emote Laugh'); + +-- Action List: Conversation about the market +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(17623400, 9, 0, 0, '', 0, 0, 100, 0, 0, 0, 0, 0, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Harriet Mura - Action List - Say Line 0'), +(17623400, 9, 1, 0, '', 0, 0, 100, 0, 5000, 0, 0, 0, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 19, 176231, 0, 0, 0, NULL, 0, 0, 0, 0, 'Harriet Mura - Action List - Anna Taki Say Line 0'), +(17623400, 9, 2, 0, '', 0, 0, 100, 0, 6000, 0, 0, 0, 0, '', 1, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Harriet Mura - Action List - Say Line 1'), +(17623400, 9, 3, 0, '', 0, 0, 100, 0, 5000, 0, 0, 0, 0, '', 1, 1, 0, 0, 0, 0, 0, 0, NULL, 19, 176231, 0, 0, 0, NULL, 0, 0, 0, 0, 'Harriet Mura - Action List - Anna Taki Say Line 1'); + +-- Action List: Conversation about the refugees +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(17623401, 9, 0, 0, '', 0, 0, 100, 0, 0, 0, 0, 0, 0, '', 1, 2, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Harriet Mura - Action List 2 - Say Line 2'), +(17623401, 9, 1, 0, '', 0, 0, 100, 0, 6000, 0, 0, 0, 0, '', 1, 2, 0, 0, 0, 0, 0, 0, NULL, 19, 176231, 0, 0, 0, NULL, 0, 0, 0, 0, 'Harriet Mura - Action List 2 - Anna Taki Say Line 2'), +(17623401, 9, 2, 0, '', 0, 0, 100, 0, 5000, 0, 0, 0, 0, '', 1, 3, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Harriet Mura - Action List 2 - Say Line 3'); + +DELETE FROM creature_text WHERE CreatureID IN (176234, 176231); +INSERT INTO creature_text (CreatureID, GroupID, ID, Text, Type, Language, Probability, Emote, Duration, Sound, SoundPlayType, BroadcastTextId, TextRange, comment) VALUES +-- Harriet Mura +(176234, 0, 0, 'Have you seen the prices at the Auction House lately? Outrageous!', 12, 0, 100, 1, 0, 0, 0, 0, 0, 'Harriet Mura - Market chat 1'), +(176234, 1, 0, 'I heard the Gilnean merchants are setting up shop near the canals.', 12, 0, 100, 1, 0, 0, 0, 0, 0, 'Harriet Mura - Market chat 2'), +(176234, 2, 0, 'Those poor night elf refugees. Losing their home like that...', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Harriet Mura - Refugee chat 1'), +(176234, 3, 0, 'The Cathedral has been doing what it can. We all should help where we''re able.', 12, 0, 100, 1, 0, 0, 0, 0, 0, 'Harriet Mura - Refugee chat 2'), +-- Anna Taki +(176231, 0, 0, 'Tell me about it! A simple linen bolt cost me three gold yesterday.', 12, 0, 100, 1, 0, 0, 0, 0, 0, 'Anna Taki - Market reply 1'), +(176231, 1, 0, 'That''s good news. Competition keeps the prices honest, I say.', 12, 0, 100, 1, 0, 0, 0, 0, 0, 'Anna Taki - Market reply 2'), +(176231, 2, 0, 'I know. My neighbor took in a family of three. They have almost nothing.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Anna Taki - Refugee reply'); + + +-- ---- PAIR B: Chris Miller (50525) & Kyle Radue (50523) ---- +-- Two men hanging out in the city, near the canals + +UPDATE creature_template SET AIName='SmartAI' WHERE entry=50525; +UPDATE creature_template SET AIName='SmartAI' WHERE entry=50523; + +DELETE FROM smart_scripts WHERE entryorguid=50525 AND source_type=0; +DELETE FROM smart_scripts WHERE entryorguid=50523 AND source_type=0; +DELETE FROM smart_scripts WHERE entryorguid IN (5052500, 5052501) AND source_type=9; + +-- Chris Miller: initiates conversations +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(50525, 0, 0, 0, '', 1, 0, 100, 0, 300000, 600000, 300000, 600000, 0, '', 80, 5052500, 5052501, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Chris Miller - OOC 5-10min - Run Random Action List'), +(50525, 0, 1, 0, '', 1, 0, 25, 0, 90000, 240000, 90000, 240000, 0, '', 10, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Chris Miller - OOC 1.5-4min 25% - Play Emote Talk'); + +-- Kyle Radue: ambient +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(50523, 0, 0, 0, '', 1, 0, 25, 0, 120000, 300000, 120000, 300000, 0, '', 10, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Kyle Radue - OOC 2-5min 25% - Play Emote Talk'), +(50523, 0, 1, 0, '', 1, 0, 15, 0, 180000, 420000, 180000, 420000, 0, '', 10, 10, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Kyle Radue - OOC 3-7min 15% - Play Emote Laugh'); + +-- Action List: Conversation about life in Stormwind +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(5052500, 9, 0, 0, '', 0, 0, 100, 0, 0, 0, 0, 0, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Chris Miller - Action List - Say Line 0'), +(5052500, 9, 1, 0, '', 0, 0, 100, 0, 5000, 0, 0, 0, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 19, 50523, 0, 0, 0, NULL, 0, 0, 0, 0, 'Chris Miller - Action List - Kyle Radue Say Line 0'), +(5052500, 9, 2, 0, '', 0, 0, 100, 0, 6000, 0, 0, 0, 0, '', 1, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Chris Miller - Action List - Say Line 1'), +(5052500, 9, 3, 0, '', 0, 0, 100, 0, 5000, 0, 0, 0, 0, '', 1, 1, 0, 0, 0, 0, 0, 0, NULL, 19, 50523, 0, 0, 0, NULL, 0, 0, 0, 0, 'Chris Miller - Action List - Kyle Radue Say Line 1'); + +-- Action List: Conversation about adventures +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(5052501, 9, 0, 0, '', 0, 0, 100, 0, 0, 0, 0, 0, 0, '', 1, 2, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Chris Miller - Action List 2 - Say Line 2'), +(5052501, 9, 1, 0, '', 0, 0, 100, 0, 6000, 0, 0, 0, 0, '', 1, 2, 0, 0, 0, 0, 0, 0, NULL, 19, 50523, 0, 0, 0, NULL, 0, 0, 0, 0, 'Chris Miller - Action List 2 - Kyle Radue Say Line 2'), +(5052501, 9, 2, 0, '', 0, 0, 100, 0, 5000, 0, 0, 0, 0, '', 1, 3, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Chris Miller - Action List 2 - Say Line 3'), +(5052501, 9, 3, 0, '', 0, 0, 100, 0, 6000, 0, 0, 0, 0, '', 1, 3, 0, 0, 0, 0, 0, 0, NULL, 19, 50523, 0, 0, 0, NULL, 0, 0, 0, 0, 'Chris Miller - Action List 2 - Kyle Radue Say Line 3'); + +DELETE FROM creature_text WHERE CreatureID IN (50525, 50523); +INSERT INTO creature_text (CreatureID, GroupID, ID, Text, Type, Language, Probability, Emote, Duration, Sound, SoundPlayType, BroadcastTextId, TextRange, comment) VALUES +-- Chris Miller +(50525, 0, 0, 'You know what I could go for right now? A pint at the Pig and Whistle.', 12, 0, 100, 1, 0, 0, 0, 0, 0, 'Chris Miller - City life 1'), +(50525, 1, 0, 'My wife wants to move to Goldshire. Says the city is too crowded now.', 12, 0, 100, 1, 0, 0, 0, 0, 0, 'Chris Miller - City life 2'), +(50525, 2, 0, 'Did you hear? Some adventurer cleared out the Deadmines again. Third time this month.', 12, 0, 100, 1, 0, 0, 0, 0, 0, 'Chris Miller - Adventures 1'), +(50525, 3, 0, 'I tell you, Kyle, sometimes I wonder what it would be like to just... go. See the world.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Chris Miller - Adventures 2'), +-- Kyle Radue +(50523, 0, 0, 'Now you''re talking. Reese brews the best stout this side of Ironforge.', 12, 0, 100, 1, 0, 0, 0, 0, 0, 'Kyle Radue - City life reply 1'), +(50523, 1, 0, 'Goldshire? With the gnolls? Rather take my chances with the crowds.', 12, 0, 100, 1, 0, 0, 0, 0, 0, 'Kyle Radue - City life reply 2'), +(50523, 2, 0, 'Those Defias types never learn. You''d think they''d find a new hideout by now.', 12, 0, 100, 1, 0, 0, 0, 0, 0, 'Kyle Radue - Adventures reply 1'), +(50523, 3, 0, 'And get eaten by a dragon? No thanks. I''ll stick to the canals, where it''s safe.', 12, 0, 100, 1, 0, 0, 0, 0, 0, 'Kyle Radue - Adventures reply 2'); + + +-- ============================================================================ +-- CATEGORY 7: RESEARCHERS & EXPLORERS (2 entries, 12 spawns) +-- Near the harbor expedition area +-- ============================================================================ + +-- --- Brave Researcher (187193) — 6 spawns, studying expedition findings --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=187193; +DELETE FROM smart_scripts WHERE entryorguid=187193 AND source_type=0; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(187193, 0, 0, 0, '', 1, 0, 100, 0, 180000, 480000, 180000, 480000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Brave Researcher - OOC 3-8min - Say Line 0'), +(187193, 0, 1, 0, '', 1, 0, 30, 0, 60000, 180000, 60000, 180000, 0, '', 10, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Brave Researcher - OOC 1-3min 30% - Play Emote Talk'), +(187193, 0, 2, 0, '', 1, 0, 20, 0, 90000, 300000, 90000, 300000, 0, '', 10, 25, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Brave Researcher - OOC 1.5-5min 20% - Play Emote Point'); + +DELETE FROM creature_text WHERE CreatureID=187193; +INSERT INTO creature_text (CreatureID, GroupID, ID, Text, Type, Language, Probability, Emote, Duration, Sound, SoundPlayType, BroadcastTextId, TextRange, comment) VALUES +(187193, 0, 0, 'These Dragon Isles samples are unlike anything in our archives.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Brave Researcher'), +(187193, 0, 1, 'If my calculations are correct, this artifact predates the Sundering.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Brave Researcher'), +(187193, 0, 2, 'Fascinating. The crystalline structure matches nothing in known geology.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Brave Researcher'), +(187193, 0, 3, 'I need more ink. And more parchment. And possibly more coffee.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Brave Researcher'), +(187193, 0, 4, 'The expedition reports mention a proto-drake nesting ground. We must study it further.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Brave Researcher'), +(187193, 0, 5, 'Cross-referencing with the Explorers'' League records... ah, there it is.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Brave Researcher'); + +-- --- Cataloguing Enthusiast (193786) — 6 spawns, excitable researcher --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=193786; +DELETE FROM smart_scripts WHERE entryorguid=193786 AND source_type=0; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(193786, 0, 0, 0, '', 1, 0, 100, 0, 180000, 480000, 180000, 480000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Cataloguing Enthusiast - OOC 3-8min - Say Line 0'), +(193786, 0, 1, 0, '', 1, 0, 25, 0, 60000, 180000, 60000, 180000, 0, '', 10, 4, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Cataloguing Enthusiast - OOC 1-3min 25% - Play Emote Cheer'), +(193786, 0, 2, 0, '', 1, 0, 30, 0, 90000, 240000, 90000, 240000, 0, '', 10, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Cataloguing Enthusiast - OOC 1.5-4min 30% - Play Emote Talk'); + +DELETE FROM creature_text WHERE CreatureID=193786; +INSERT INTO creature_text (CreatureID, GroupID, ID, Text, Type, Language, Probability, Emote, Duration, Sound, SoundPlayType, BroadcastTextId, TextRange, comment) VALUES +(193786, 0, 0, 'Oh! Item seven hundred and twelve! A fossilized... hmm, what IS this?', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Cataloguing Enthusiast'), +(193786, 0, 1, 'Must categorize, must catalogue, must... ooh, is that a new specimen?!', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Cataloguing Enthusiast'), +(193786, 0, 2, 'The Explorers'' League will be thrilled when they see my notes!', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Cataloguing Enthusiast'), +(193786, 0, 3, 'Genus: unknown. Species: unknown. Excitement level: VERY HIGH.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Cataloguing Enthusiast'), +(193786, 0, 4, 'I''ve catalogued three hundred items today and I''m just getting started!', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Cataloguing Enthusiast'), +(193786, 0, 5, 'Now where did I put ledger number nine... ah, I''m sitting on it.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Cataloguing Enthusiast'); + + +-- ============================================================================ +-- CATEGORY 8: ADDITIONAL AMBIENT NPCS +-- ============================================================================ + +-- --- Attentive Child (151249) — near the Mage Tower, watching Jordan Meier --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=151249; +DELETE FROM smart_scripts WHERE entryorguid=151249 AND source_type=0; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(151249, 0, 0, 0, '', 1, 0, 100, 0, 180000, 480000, 180000, 480000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Attentive Child - OOC 3-8min - Say Line 0'), +(151249, 0, 1, 0, '', 1, 0, 30, 0, 60000, 180000, 60000, 180000, 0, '', 10, 4, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Attentive Child - OOC 1-3min 30% - Play Emote Cheer'), +(151249, 0, 2, 0, '', 1, 0, 20, 0, 120000, 300000, 120000, 300000, 0, '', 10, 10, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Attentive Child - OOC 2-5min 20% - Play Emote Laugh'); + +DELETE FROM creature_text WHERE CreatureID=151249; +INSERT INTO creature_text (CreatureID, GroupID, ID, Text, Type, Language, Probability, Emote, Duration, Sound, SoundPlayType, BroadcastTextId, TextRange, comment) VALUES +(151249, 0, 0, 'Do it again! Do it again!', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Attentive Child'), +(151249, 0, 1, 'Wow! I wanna be a mage when I grow up!', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Attentive Child'), +(151249, 0, 2, 'Can you make a dragon?! Please?!', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Attentive Child'), +(151249, 0, 3, 'How do you make the sparkly lights?', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Attentive Child'); + +-- --- Jordan Meier (151251) — near Mage Tower, performing magic for children --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=151251; +DELETE FROM smart_scripts WHERE entryorguid=151251 AND source_type=0; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(151251, 0, 0, 0, '', 1, 0, 100, 0, 180000, 480000, 180000, 480000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Jordan Meier - OOC 3-8min - Say Line 0'), +(151251, 0, 1, 0, '', 1, 0, 30, 0, 60000, 180000, 60000, 180000, 0, '', 10, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Jordan Meier - OOC 1-3min 30% - Play Emote Talk'), +(151251, 0, 2, 0, '', 22, 0, 100, 0, 101, 15000, 15000, 0, 0, '', 10, 2, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Jordan Meier - On Receive Wave - Play Emote Bow'); + +DELETE FROM creature_text WHERE CreatureID=151251; +INSERT INTO creature_text (CreatureID, GroupID, ID, Text, Type, Language, Probability, Emote, Duration, Sound, SoundPlayType, BroadcastTextId, TextRange, comment) VALUES +(151251, 0, 0, 'Watch closely now... nothing up my sleeve...', 12, 0, 100, 1, 0, 0, 0, 0, 0, 'Jordan Meier'), +(151251, 0, 1, 'And for my next trick, a conjured butterfly!', 12, 0, 100, 1, 0, 0, 0, 0, 0, 'Jordan Meier'), +(151251, 0, 2, 'The arcane arts aren''t just for battle. Sometimes, they''re for wonder.', 12, 0, 100, 1, 0, 0, 0, 0, 0, 'Jordan Meier'), +(151251, 0, 3, 'Every great mage started by watching someone else make sparks.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Jordan Meier'); + +-- --- Shauna Strattonmeier (151247) — Librarian near the Mage Tower --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=151247; +DELETE FROM smart_scripts WHERE entryorguid=151247 AND source_type=0; +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(151247, 0, 0, 0, '', 1, 0, 100, 0, 240000, 600000, 240000, 600000, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Shauna Strattonmeier - OOC 4-10min - Say Line 0'), +(151247, 0, 1, 0, '', 1, 0, 20, 0, 90000, 300000, 90000, 300000, 0, '', 10, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Shauna Strattonmeier - OOC 1.5-5min 20% - Play Emote Talk'); + +DELETE FROM creature_text WHERE CreatureID=151247; +INSERT INTO creature_text (CreatureID, GroupID, ID, Text, Type, Language, Probability, Emote, Duration, Sound, SoundPlayType, BroadcastTextId, TextRange, comment) VALUES +(151247, 0, 0, 'Please keep your voices down. This is a place of study.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Shauna Strattonmeier'), +(151247, 0, 1, 'I have a new shipment of tomes from Dalaran. Quite fascinating.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Shauna Strattonmeier'), +(151247, 0, 2, 'The history section is particularly comprehensive. Five Ages of Azeroth, all documented.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Shauna Strattonmeier'), +(151247, 0, 3, 'Books are the foundation of knowledge. Well, books and not setting them on fire.', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Shauna Strattonmeier'); + +-- --- SI:7 Agent (198885) & Defias Thief (198886) — interrogation scene --- +UPDATE creature_template SET AIName='SmartAI' WHERE entry=198885; +UPDATE creature_template SET AIName='SmartAI' WHERE entry=198886; + +DELETE FROM smart_scripts WHERE entryorguid=198885 AND source_type=0; +DELETE FROM smart_scripts WHERE entryorguid=198886 AND source_type=0; +DELETE FROM smart_scripts WHERE entryorguid IN (19888500, 19888501) AND source_type=9; + +-- SI:7 Agent: triggers interrogation conversations +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(198885, 0, 0, 0, '', 1, 0, 100, 0, 300000, 600000, 300000, 600000, 0, '', 80, 19888500, 19888501, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'SI:7 Agent - OOC 5-10min - Run Random Action List'), +(198885, 0, 1, 0, '', 11, 0, 100, 0, 0, 0, 0, 0, 0, '', 5, 381, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'SI:7 Agent - On Respawn - Set Emote State Stand Guard'); + +-- Defias Thief: cowering +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(198886, 0, 0, 0, '', 11, 0, 100, 0, 0, 0, 0, 0, 0, '', 5, 28, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Defias Thief - On Respawn - Set Emote State Kneel'), +(198886, 0, 1, 0, '', 1, 0, 30, 0, 120000, 360000, 120000, 360000, 0, '', 10, 26, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Defias Thief - OOC 2-6min 30% - Play Emote Shy (Cower)'); + +-- Action List: Interrogation about the Brotherhood +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(19888500, 9, 0, 0, '', 0, 0, 100, 0, 0, 0, 0, 0, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'SI:7 Agent - Action List - Say Line 0'), +(19888500, 9, 1, 0, '', 0, 0, 100, 0, 5000, 0, 0, 0, 0, '', 1, 0, 0, 0, 0, 0, 0, 0, NULL, 19, 198886, 0, 0, 0, NULL, 0, 0, 0, 0, 'SI:7 Agent - Action List - Defias Thief Say Line 0'), +(19888500, 9, 2, 0, '', 0, 0, 100, 0, 5000, 0, 0, 0, 0, '', 1, 1, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'SI:7 Agent - Action List - Say Line 1'); + +-- Action List: Threatening +INSERT INTO smart_scripts (entryorguid, source_type, id, link, Difficulties, event_type, event_phase_mask, event_chance, event_flags, event_param1, event_param2, event_param3, event_param4, event_param5, event_param_string, action_type, action_param1, action_param2, action_param3, action_param4, action_param5, action_param6, action_param7, action_param_string, target_type, target_param1, target_param2, target_param3, target_param4, target_param_string, target_x, target_y, target_z, target_o, comment) VALUES +(19888501, 9, 0, 0, '', 0, 0, 100, 0, 0, 0, 0, 0, 0, '', 1, 2, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'SI:7 Agent - Action List 2 - Say Line 2'), +(19888501, 9, 1, 0, '', 0, 0, 100, 0, 5000, 0, 0, 0, 0, '', 1, 1, 0, 0, 0, 0, 0, 0, NULL, 19, 198886, 0, 0, 0, NULL, 0, 0, 0, 0, 'SI:7 Agent - Action List 2 - Defias Thief Say Line 1'), +(19888501, 9, 2, 0, '', 0, 0, 100, 0, 5000, 0, 0, 0, 0, '', 1, 3, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'SI:7 Agent - Action List 2 - Say Line 3'); + +DELETE FROM creature_text WHERE CreatureID IN (198885, 198886); +INSERT INTO creature_text (CreatureID, GroupID, ID, Text, Type, Language, Probability, Emote, Duration, Sound, SoundPlayType, BroadcastTextId, TextRange, comment) VALUES +-- SI:7 Agent +(198885, 0, 0, 'Talk. Who''s running the Brotherhood now?', 12, 0, 100, 25, 0, 0, 0, 0, 0, 'SI:7 Agent - Interrogation 1'), +(198885, 1, 0, 'Shaw wants answers by sundown. I suggest you cooperate.', 12, 0, 100, 1, 0, 0, 0, 0, 0, 'SI:7 Agent - Interrogation 2'), +(198885, 2, 0, 'We found the safehouse in Moonbrook. Your friends already talked.', 12, 0, 100, 25, 0, 0, 0, 0, 0, 'SI:7 Agent - Threat 1'), +(198885, 3, 0, 'Last chance. The Stockade isn''t known for its hospitality.', 12, 0, 100, 1, 0, 0, 0, 0, 0, 'SI:7 Agent - Threat 2'), +-- Defias Thief +(198886, 0, 0, 'I... I don''t know anything! I was just a lookout!', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Defias Thief - Plea 1'), +(198886, 1, 0, 'Please... I have a family in Westfall. I was desperate for coin!', 12, 0, 100, 0, 0, 0, 0, 0, 0, 'Defias Thief - Plea 2'); + + + +-- ============================================================ +-- 1. Enable SmartAI on all target entries +-- ============================================================ +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry` IN (29712, 100449, 29152, 251797, 246154, 246155, 42421, 194437, 141504, 198461, 193812) AND `AIName`=''; + +-- ============================================================ +-- 2. SMART_SCRIPTS +-- ============================================================ +-- TextEmote IDs (verified from Guard 68 / Elly Langston 1328): +-- 5=Applaud, 17=Bow, 22=Chicken, 34=Dance, 41=Flex, 58=Kiss, +-- 77=Rude, 78=Salute, 84=Shy, 101=Wave +-- Emote animation IDs: +-- 1=TALK, 2=BOW, 4=CHEER, 25=POINT, 26=SHY, 33=CRY, 66=SALUTE, +-- 69=READY_UNARMED, 92=USE_STANDING, 274=WORK_NOPRE, 381=STAND_GUARD, 393=SIT_GROUND + +-- ── Stormwind Harbor Guard (29712) — 85 spawns ── +-- Stand at attention, respond to /salute, periodic vigilance +DELETE FROM `smart_scripts` WHERE `entryorguid`=29712 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 +(29712, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 5, 381, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Stormwind Harbor Guard - On Respawn - Set Emote State Stand Guard'), +(29712, 0, 1, 0, 22, 0, 100, 0, 78, 15000, 15000, 0, 0, 10, 66, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Stormwind Harbor Guard - On Receive Salute - Play Emote Salute'), +(29712, 0, 2, 0, 22, 0, 100, 0, 78, 15000, 15000, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Stormwind Harbor Guard - On Receive Salute - Say Line 0'), +(29712, 0, 3, 0, 1, 0, 100, 0, 120000, 300000, 120000, 300000, 0, 10, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Stormwind Harbor Guard - OOC 2-5min - Play Emote Talk'), +(29712, 0, 4, 0, 1, 0, 30, 0, 180000, 600000, 180000, 600000, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Stormwind Harbor Guard - OOC 3-10min 30% - Say Line 1'); + +-- ── Stormwind Royal Guard (100449) — 35 spawns ── +-- Stoic, respond to /salute and /bow +DELETE FROM `smart_scripts` WHERE `entryorguid`=100449 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 +(100449, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 5, 381, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Stormwind Royal Guard - On Respawn - Set Emote State Stand Guard'), +(100449, 0, 1, 0, 22, 0, 100, 0, 78, 15000, 15000, 0, 0, 10, 66, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Stormwind Royal Guard - On Receive Salute - Play Emote Salute'), +(100449, 0, 2, 0, 22, 0, 100, 0, 17, 15000, 15000, 0, 0, 10, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Stormwind Royal Guard - On Receive Bow - Play Emote Bow'); + +-- ── Stormwind Dock Worker (29152) — 46 spawns ── +-- Working animation, periodic labor commentary +DELETE FROM `smart_scripts` WHERE `entryorguid`=29152 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 +(29152, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 5, 274, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Stormwind Dock Worker - On Respawn - Set Emote State Work'), +(29152, 0, 1, 0, 1, 0, 100, 0, 180000, 600000, 180000, 600000, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Stormwind Dock Worker - OOC 3-10min - Say Line 0'), +(29152, 0, 2, 0, 22, 0, 100, 0, 101, 15000, 15000, 0, 0, 10, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Stormwind Dock Worker - On Receive Wave - Play Emote Talk'); + +-- ── Interested Citizen (251797) — 49 spawns ── +-- Animated townsfolk, periodic gossip and emotes +DELETE FROM `smart_scripts` WHERE `entryorguid`=251797 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 +(251797, 0, 0, 0, 1, 0, 100, 0, 60000, 180000, 60000, 180000, 0, 10, 25, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Interested Citizen - OOC 1-3min - Play Emote Point'), +(251797, 0, 1, 0, 1, 0, 100, 0, 90000, 240000, 90000, 240000, 0, 10, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Interested Citizen - OOC 1.5-4min - Play Emote Talk'), +(251797, 0, 2, 0, 1, 0, 50, 0, 180000, 600000, 180000, 600000, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Interested Citizen - OOC 3-10min 50% - Say Line 0'), +(251797, 0, 3, 0, 1, 0, 30, 0, 120000, 360000, 120000, 360000, 0, 10, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Interested Citizen - OOC 2-6min 30% - Play Emote Cheer'); + +-- ── Suspicious Citizen (246154) — 25 spawns ── +-- Shifty behavior, nervous emotes +DELETE FROM `smart_scripts` WHERE `entryorguid`=246154 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 +(246154, 0, 0, 0, 1, 0, 100, 0, 60000, 180000, 60000, 180000, 0, 10, 26, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Suspicious Citizen - OOC 1-3min - Play Emote Shy'), +(246154, 0, 1, 0, 1, 0, 50, 0, 180000, 600000, 180000, 600000, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Suspicious Citizen - OOC 3-10min 50% - Say Line 0'), +(246154, 0, 2, 0, 1, 0, 100, 0, 90000, 240000, 90000, 240000, 0, 10, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Suspicious Citizen - OOC 1.5-4min - Play Emote Talk'); + +-- ── Suspicious Citizen (246155) — 25 spawns ── +DELETE FROM `smart_scripts` WHERE `entryorguid`=246155 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 +(246155, 0, 0, 0, 1, 0, 100, 0, 60000, 180000, 60000, 180000, 0, 10, 26, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Suspicious Citizen - OOC 1-3min - Play Emote Shy'), +(246155, 0, 1, 0, 1, 0, 50, 0, 180000, 600000, 180000, 600000, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Suspicious Citizen - OOC 3-10min 50% - Say Line 0'), +(246155, 0, 2, 0, 1, 0, 100, 0, 90000, 240000, 90000, 240000, 0, 10, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Suspicious Citizen - OOC 1.5-4min - Play Emote Talk'); + +-- ── Stormwind Fisherman (42421) — 14 spawns ── +-- Fishing animation, periodic fishing talk +DELETE FROM `smart_scripts` WHERE `entryorguid`=42421 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 +(42421, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 5, 92, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Stormwind Fisherman - On Respawn - Set Emote State Use Standing'), +(42421, 0, 1, 0, 1, 0, 100, 0, 120000, 360000, 120000, 360000, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Stormwind Fisherman - OOC 2-6min - Say Line 0'); + +-- ── Salty Deckhand (194437) — 25 spawns ── +-- Working animation, sailor commentary +DELETE FROM `smart_scripts` WHERE `entryorguid`=194437 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 +(194437, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 5, 274, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Salty Deckhand - On Respawn - Set Emote State Work'), +(194437, 0, 1, 0, 1, 0, 100, 0, 180000, 600000, 180000, 600000, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Salty Deckhand - OOC 3-10min - Say Line 0'); + +-- ── Wounded Refugee (141504) — 15 spawns ── +-- Sitting on ground, periodic crying +DELETE FROM `smart_scripts` WHERE `entryorguid`=141504 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 +(141504, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 5, 393, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Wounded Refugee - On Respawn - Set Emote State Sit Ground'), +(141504, 0, 1, 0, 1, 0, 100, 0, 60000, 180000, 60000, 180000, 0, 10, 33, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Wounded Refugee - OOC 1-3min - Play Emote Cry'), +(141504, 0, 2, 0, 1, 0, 50, 0, 180000, 600000, 180000, 600000, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Wounded Refugee - OOC 3-10min 50% - Say Line 0'); + +-- ── Curious Dracthyr (198461) — 9 spawns ── +-- Pointing at landmarks, marveling at Stormwind +DELETE FROM `smart_scripts` WHERE `entryorguid`=198461 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 +(198461, 0, 0, 0, 1, 0, 100, 0, 60000, 180000, 60000, 180000, 0, 10, 25, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Curious Dracthyr - OOC 1-3min - Play Emote Point'), +(198461, 0, 1, 0, 1, 0, 100, 0, 90000, 300000, 90000, 300000, 0, 10, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Curious Dracthyr - OOC 1.5-5min - Play Emote Talk'), +(198461, 0, 2, 0, 1, 0, 100, 0, 120000, 420000, 120000, 420000, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Curious Dracthyr - OOC 2-7min - Say Line 0'), +(198461, 0, 3, 0, 22, 0, 100, 0, 101, 15000, 15000, 0, 0, 10, 101, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Curious Dracthyr - On Receive Wave - Play Emote Wave'); + +-- ── Expedition Trainee (193812) — 9 spawns ── +-- Combat practice stance, periodic training emotes +DELETE FROM `smart_scripts` WHERE `entryorguid`=193812 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 +(193812, 0, 0, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 5, 69, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Expedition Trainee - On Respawn - Set Emote State Ready Unarmed'), +(193812, 0, 1, 0, 1, 0, 100, 0, 45000, 120000, 45000, 120000, 0, 10, 36, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Expedition Trainee - OOC 45s-2min - Play Emote Attack 2H'), +(193812, 0, 2, 0, 1, 0, 50, 0, 180000, 600000, 180000, 600000, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Expedition Trainee - OOC 3-10min 50% - Say Line 0'), +(193812, 0, 3, 0, 22, 0, 100, 0, 78, 15000, 15000, 0, 0, 10, 66, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Expedition Trainee - On Receive Salute - Play Emote Salute'); + +-- ============================================================ +-- 3. CREATURE_TEXT — ambient dialogue +-- ============================================================ +-- Type: 0=SAY, 2=TEXT_EMOTE, 6=EMOTE (yellow italic) + +-- Harbor Guard (29712) +DELETE FROM `creature_text` WHERE `CreatureID`=29712; +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`SoundPlayType`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(29712, 0, 0, 'Citizen.', 0, 0, 100, 0, 0, 0, 0, 0, 0, 'Stormwind Harbor Guard - Salute response'), +(29712, 1, 0, 'All clear.', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Stormwind Harbor Guard - Periodic 1'), +(29712, 1, 1, 'Stay vigilant.', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Stormwind Harbor Guard - Periodic 2'), +(29712, 1, 2, 'Keep your eyes on the water.', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Stormwind Harbor Guard - Periodic 3'), +(29712, 1, 3, 'Nothing to report.', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Stormwind Harbor Guard - Periodic 4'); + +-- Dock Worker (29152) +DELETE FROM `creature_text` WHERE `CreatureID`=29152; +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`SoundPlayType`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(29152, 0, 0, 'These crates aren''t going to move themselves.', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Stormwind Dock Worker - Periodic 1'), +(29152, 0, 1, 'Another shipment from Kul Tiras.', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Stormwind Dock Worker - Periodic 2'), +(29152, 0, 2, 'Watch your step on the docks.', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Stormwind Dock Worker - Periodic 3'), +(29152, 0, 3, 'The harbor master wants this done by sundown.', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Stormwind Dock Worker - Periodic 4'), +(29152, 0, 4, 'Heavy load today...', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Stormwind Dock Worker - Periodic 5'); + +-- Interested Citizen (251797) +DELETE FROM `creature_text` WHERE `CreatureID`=251797; +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`SoundPlayType`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(251797, 0, 0, 'Did you hear the latest news from the keep?', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Interested Citizen - Periodic 1'), +(251797, 0, 1, 'Times are changing around here.', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Interested Citizen - Periodic 2'), +(251797, 0, 2, 'I heard adventurers have been pouring in from all over.', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Interested Citizen - Periodic 3'), +(251797, 0, 3, 'Have you seen those dragon folk? Remarkable!', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Interested Citizen - Periodic 4'), +(251797, 0, 4, 'The trade district has been busier than ever.', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Interested Citizen - Periodic 5'); + +-- Suspicious Citizen (246154) +DELETE FROM `creature_text` WHERE `CreatureID`=246154; +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`SoundPlayType`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(246154, 0, 0, 'Mind your own business.', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Suspicious Citizen - Periodic 1'), +(246154, 0, 1, 'I''m just... passing through.', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Suspicious Citizen - Periodic 2'), +(246154, 0, 2, 'Don''t look at me like that.', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Suspicious Citizen - Periodic 3'), +(246154, 0, 3, 'Nothing to see here. Move along.', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Suspicious Citizen - Periodic 4'); + +-- Suspicious Citizen (246155) +DELETE FROM `creature_text` WHERE `CreatureID`=246155; +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`SoundPlayType`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(246155, 0, 0, 'Keep walking, friend.', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Suspicious Citizen - Periodic 1'), +(246155, 0, 1, 'You didn''t see anything.', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Suspicious Citizen - Periodic 2'), +(246155, 0, 2, 'I have my reasons for being here.', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Suspicious Citizen - Periodic 3'), +(246155, 0, 3, 'The guards ask too many questions...', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Suspicious Citizen - Periodic 4'); + +-- Fisherman (42421) +DELETE FROM `creature_text` WHERE `CreatureID`=42421; +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`SoundPlayType`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(42421, 0, 0, 'I think I got a bite!', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Stormwind Fisherman - Periodic 1'), +(42421, 0, 1, 'Nothing biting today...', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Stormwind Fisherman - Periodic 2'), +(42421, 0, 2, 'The fish aren''t what they used to be.', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Stormwind Fisherman - Periodic 3'), +(42421, 0, 3, 'Patience... patience...', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Stormwind Fisherman - Periodic 4'), +(42421, 0, 4, 'Should''ve brought more bait.', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Stormwind Fisherman - Periodic 5'); + +-- Salty Deckhand (194437) +DELETE FROM `creature_text` WHERE `CreatureID`=194437; +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`SoundPlayType`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(194437, 0, 0, 'Heave ho!', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Salty Deckhand - Periodic 1'), +(194437, 0, 1, 'Mind the rigging!', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Salty Deckhand - Periodic 2'), +(194437, 0, 2, 'She''s a fine vessel, she is.', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Salty Deckhand - Periodic 3'), +(194437, 0, 3, 'The sea calls to me...', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Salty Deckhand - Periodic 4'), +(194437, 0, 4, 'Stow that cargo below deck!', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Salty Deckhand - Periodic 5'); + +-- Wounded Refugee (141504) +DELETE FROM `creature_text` WHERE `CreatureID`=141504; +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`SoundPlayType`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(141504, 0, 0, 'The pain... it won''t stop.', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Wounded Refugee - Periodic 1'), +(141504, 0, 1, 'I just want to go home.', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Wounded Refugee - Periodic 2'), +(141504, 0, 2, 'We lost everything...', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Wounded Refugee - Periodic 3'), +(141504, 0, 3, 'Is anyone coming to help us?', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Wounded Refugee - Periodic 4'); + +-- Curious Dracthyr (198461) +DELETE FROM `creature_text` WHERE `CreatureID`=198461; +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`SoundPlayType`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(198461, 0, 0, 'Remarkable architecture!', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Curious Dracthyr - Periodic 1'), +(198461, 0, 1, 'How do they build so tall without wings?', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Curious Dracthyr - Periodic 2'), +(198461, 0, 2, 'So many different races all in one place...', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Curious Dracthyr - Periodic 3'), +(198461, 0, 3, 'I must document this for the Weyrn.', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Curious Dracthyr - Periodic 4'), +(198461, 0, 4, 'The energy of this city is invigorating!', 0, 0, 20, 0, 0, 0, 0, 0, 0, 'Curious Dracthyr - Periodic 5'); + +-- Expedition Trainee (193812) +DELETE FROM `creature_text` WHERE `CreatureID`=193812; +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`SoundPlayType`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(193812, 0, 0, 'One more set!', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Expedition Trainee - Periodic 1'), +(193812, 0, 1, 'I''ll be ready for whatever''s out there.', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Expedition Trainee - Periodic 2'), +(193812, 0, 2, 'Hah! Take that!', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Expedition Trainee - Periodic 3'), +(193812, 0, 3, 'Focus... breathe... strike!', 0, 0, 25, 0, 0, 0, 0, 0, 0, 'Expedition Trainee - Periodic 4'); + +UPDATE `creature_template` SET `AIName`='', `ScriptName`='npc_deathguard_saltain' WHERE `entry`=1740; +DELETE FROM `smart_scripts` WHERE `entryorguid`=1740; + diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 6557ec83d..90d99b622 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -32576,4 +32576,22 @@ void Player::AddMoveImpulse(Position direction) impulse.Direction = direction; SendMessageToSet(impulse.Write(), true); } + +bool Player::HasQuest(uint32 questID) const +{ + if (questID == 0) + return false; + try + { + for (uint8 itr = 0; itr < MAX_QUEST_LOG_SIZE; ++itr) + if (GetQuestSlotQuestId(itr) == questID) + return true; + } + catch (...) + { + + } + + return false; +} //WowCommunity diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 3ac2a64a6..e04b6b007 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -3423,6 +3423,9 @@ class TC_GAME_API Player final : public Unit, public GridObject void CancelPendingCastRequest(); bool CanRequestSpellCast(SpellInfo const* spell, Unit const* castingUnit) const; + //WowCommunity + bool HasQuest(uint32 questID) const; + //WowCommunity private: std::unique_ptr _pendingSpellCastRequest; void ExecutePendingSpellCastRequest(); diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 6343a089a..1a0c72dd2 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -449,6 +449,14 @@ public: // Called when a CreatureAI object is needed for the creature. virtual CreatureAI* GetAI(Creature* creature) const = 0; + + //WowCommunity + // Called when a player completes a quest and is rewarded, opt is the selected item's index or 0 + virtual bool OnQuestReward(Player* /*player*/, Creature* /*creature*/, Quest const* /*quest*/, uint32 /*opt*/) { return false; } + + // Called when a player accepts a quest from the creature. + virtual bool OnQuestAccept(Player* /*player*/, Creature* /*creature*/, Quest const* /*quest*/) { return false; } + //WowCommunity }; class TC_GAME_API GameObjectScript : public ScriptObject @@ -1342,6 +1350,12 @@ private: ScriptLoaderCallbackType _script_loader_callback; std::string _currentContext; + + //Wowcommunity + public: + bool OnQuestAccept(Player* player, Creature* creature, Quest const* quest); + bool OnQuestReward(Player* player, Creature* creature, Quest const* quest, uint32 opt); + //Wowcommunity }; namespace Trinity::SpellScripts diff --git a/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp b/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp index 639a96f7d..78606b702 100644 --- a/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp +++ b/src/server/scripts/EasternKingdoms/zone_tirisfal_glades.cpp @@ -18,6 +18,34 @@ #include "ScriptMgr.h" #include "Player.h" #include "PlayerChoice.h" +#include "AreaTrigger.h" +#include "AreaTriggerAI.h" +#include "CellImpl.h" +#include "CombatAI.h" +#include "Containers.h" +#include "Conversation.h" +#include "ConversationAI.h" +#include "CreatureAIImpl.h" +#include "EventProcessor.h" +#include "GridNotifiersImpl.h" +#include "MapUtils.h" +#include "MotionMaster.h" +#include "ObjectAccessor.h" +#include "PathGenerator.h" +#include "PassiveAI.h" +#include "PhasingHandler.h" +#include "ScriptedCreature.h" +#include "ScriptedGossip.h" +#include "SpellAuras.h" +#include "SpellMgr.h" +#include "SpellScript.h" +#include "TemporarySummon.h" +#include "Log.h" + +#define QUEST_THE_SHADOW_GRAVE 28608 +#define QUEST_BEYOND_THE_GRAVE 25089 +#define NPC_DARNEL 49141 +#define NPC_DARNEL_2 49337 enum ALegendYouCanHoldPriest { @@ -63,47 +91,241 @@ public: } }; -// npc_scarlet_corpse_49340 -class npc_scarlet_corpse_49340 : public CreatureScript +// npc_deathguard_saltain +class npc_deathguard_saltain : public CreatureScript { public: - npc_scarlet_corpse_49340() : CreatureScript("npc_scarlet_corpse_49340") {} + npc_deathguard_saltain() : CreatureScript("npc_deathguard_saltain") {} - struct npc_scarlet_corpse_49340AI : public ScriptedAI + struct npc_deathguard_saltainAI : public ScriptedAI { - npc_scarlet_corpse_49340AI(Creature* creature) : ScriptedAI(creature) - { - me->SetReactState(REACT_PASSIVE); - } - - void SpellHit(WorldObject* caster, SpellInfo const* /*spellInfo*/) override - { - if (Player* player = caster->ToPlayer()) - if (player->GetQuestStatus(26800) == QUEST_STATUS_INCOMPLETE) - if (Creature* darnell = GetDarnell(player)) - { - darnell->AI()->SetGUID(me->GetGUID(), me->GetEntry()); - darnell->AI()->DoAction(1); - } - } - - Creature* GetDarnell(Player* player) - { - for (Unit::ControlList::const_iterator itr = player->m_Controlled.begin(); itr != player->m_Controlled.end(); ++itr) - if ((*itr)->GetEntry() == 49337) - return (*itr)->ToCreature(); - - return nullptr; - } - + npc_deathguard_saltainAI(Creature* creature) : ScriptedAI(creature) {} }; - CreatureAI* GetAI(Creature* creature) const override + CreatureAI* GetAI(Creature* creature) const override { - return new npc_scarlet_corpse_49340AI(creature); + return new npc_deathguard_saltainAI(creature); + } + + bool OnQuestAccept(Player* player, Creature* /*creature*/, Quest const* quest) override + { + if (quest->GetQuestId() == 26800) + { + if (player && !player->IsInWorld()) + return true; + + player->CastSpell(player, 91938, true); + } + return true; + } + + bool OnQuestReward(Player* player, Creature* /*creature*/, Quest const* quest, uint32 /*opt*/) override + { + if (quest->GetQuestId() == 26800) + { + if (Creature* darnell = GetDarnell(player)) + { + if (Vehicle* kit = darnell->GetVehicleKit()) + kit->RemoveAllPassengers(); + + darnell->DespawnOrUnsummon(1000ms); + } + } + return true; } }; +static Creature* GetDarnell(Player* player) +{ + if (!player) + return nullptr; + + for (Unit::ControlList::const_iterator itr = player->m_Controlled.begin(); itr != player->m_Controlled.end(); ++itr) + { + if (*itr && (*itr)->GetEntry() == NPC_DARNEL_2) + return (*itr)->ToCreature(); + } + return nullptr; +} + +// 49337 - Darnell for quest 25089 and 26800 +struct npc_darnell_deathknell_corpse : public VehicleAI +{ + npc_darnell_deathknell_corpse(Creature* c) : VehicleAI(c) + { + isWaitingForTurnIn = false; + eventTriggered = false; + m_seat = 0; + m_scarletGUID.Clear(); + } + + ObjectGuid playerGUID; + ObjectGuid m_scarletGUID; + uint8 m_seat; + bool isWaitingForTurnIn; + bool eventTriggered; + + void Reset() override + { + isWaitingForTurnIn = false; + eventTriggered = false; + m_seat = 0; + m_scarletGUID.Clear(); + me->SetReactState(REACT_PASSIVE); + } + + void IsSummonedBy(WorldObject* summoner) override + { + if (!summoner) + return; + + Player* player = nullptr; + + if (summoner->IsPlayer()) + player = summoner->ToPlayer(); + else + { + Unit* owner = me->GetCharmerOrOwner(); + if (owner && owner->IsPlayer()) + player = owner->ToPlayer(); + } + + if (!player) + { + me->DespawnOrUnsummon(100ms); + return; + } + + playerGUID = player->GetGUID(); + + bool hasQuest26800 = player->HasQuest(26800); + bool hasQuest25089 = player->HasQuest(25089); + + if (hasQuest26800 || hasQuest25089) + { + Talk(0); + } + else + { + me->DespawnOrUnsummon(100ms); + } + } + + void PassengerBoarded(Unit* passenger, int8 /*seatId*/, bool apply) override + { + if (!apply) + { + if (Creature* scarlet = passenger->ToCreature()) + { + scarlet->SetDisableGravity(false); + scarlet->DespawnOrUnsummon(500ms); + } + } + } + + void SetGUID(ObjectGuid const& guid, int32 id) override + { + if (id == 49340) + m_scarletGUID = guid; + } + + void DoAction(int32 param) override + { + if (param == 1) + { + if (Creature* scarlet = ObjectAccessor::GetCreature(*me, m_scarletGUID)) + { + me->CastSpell(scarlet, 91945, true); + scarlet->AddAura(46598, scarlet); + scarlet->SetDisableGravity(true); + scarlet->EnterVehicle(me, m_seat); + m_seat++; + me->CastSpell(scarlet, 91935, true); + me->CastSpell(scarlet, 193710, true); + } + } + } + + void UpdateAI(uint32 diff) override + { + VehicleAI::UpdateAI(diff); + + Player* player = ObjectAccessor::GetPlayer(*me, playerGUID); + if (!player) + return; + + if (isWaitingForTurnIn) + { + QuestStatus status26800 = player->GetQuestStatus(26800); + QuestStatus status25089 = player->GetQuestStatus(QUEST_BEYOND_THE_GRAVE); + + if (status26800 != QUEST_STATUS_INCOMPLETE && status25089 != QUEST_STATUS_INCOMPLETE && status25089 != QUEST_STATUS_FAILED && status26800 != QUEST_STATUS_FAILED) + { + me->DespawnOrUnsummon(); + } + return; + } + + if (!eventTriggered) + { + if (player->IsWithinDist3d(1816.332f, 1589.852f, 96.523f, 3.0f)) + { + if (player->GetQuestStatus(QUEST_BEYOND_THE_GRAVE) == QUEST_STATUS_COMPLETE) + { + eventTriggered = true; + isWaitingForTurnIn = true; + + Talk(2); + + me->StopMoving(); + me->GetMotionMaster()->Clear(); + me->GetMotionMaster()->MoveIdle(); + + me->GetMotionMaster()->MovePoint(1, 1864.78f, 1604.89f, 94.606f); + } + } + } + } + + void MovementInform(uint32 moveType, uint32 pointId) override + { + if (moveType != POINT_MOTION_TYPE) + return; + + if (pointId == 1) + { + Talk(3); + + me->StopMoving(); + me->GetMotionMaster()->Clear(); + me->GetMotionMaster()->MoveIdle(); + } + } +}; + +// npc_scarlet_corpse_49340 +struct npc_scarlet_corpse : public ScriptedAI +{ + npc_scarlet_corpse(Creature* c) : ScriptedAI(c) {} + + void SpellHit(WorldObject* caster, SpellInfo const* /*spell*/) override + { + if (Player* player = caster->ToPlayer()) + { + if (player->GetQuestStatus(26800) == QUEST_STATUS_INCOMPLETE) + { + if (Creature* darnell = GetDarnell(player)) + { + darnell->AI()->SetGUID(me->GetGUID(), me->GetEntry()); + darnell->CastSpell(darnell, 91935, true); + darnell->AI()->DoAction(1); + } + } + } + } +}; + + void AddSC_tirisfal_glades() { // Playerchoice @@ -113,5 +335,7 @@ void AddSC_tirisfal_glades() new quest_a_legend_you_can_hold(); //Npc - new npc_scarlet_corpse_49340(); + new npc_deathguard_saltain(); + RegisterCreatureAI(npc_darnell_deathknell_corpse); + RegisterCreatureAI(npc_scarlet_corpse); }