diff options
-rw-r--r-- | sql/updates/world/3.3.5/2021_04_02_06_world.sql | 67 | ||||
-rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 19 | ||||
-rw-r--r-- | src/server/scripts/Spells/spell_quest.cpp | 47 |
3 files changed, 133 insertions, 0 deletions
diff --git a/sql/updates/world/3.3.5/2021_04_02_06_world.sql b/sql/updates/world/3.3.5/2021_04_02_06_world.sql new file mode 100644 index 00000000000..2a9c8d7ad36 --- /dev/null +++ b/sql/updates/world/3.3.5/2021_04_02_06_world.sql @@ -0,0 +1,67 @@ +-- Based on old script & https://www.youtube.com/watch?v=3XA4PS0mSZA & small pieces of event in sniffs +DELETE FROM `spell_script_names` WHERE `spell_id` IN (73835,73836,73725,73837,73886) AND `ScriptName` = "spell_q25199_emote"; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(73835,"spell_q25199_emote"), +(73836,"spell_q25199_emote"), +(73725,"spell_q25199_emote"), +(73837,"spell_q25199_emote"), +(73886,"spell_q25199_emote"); + +UPDATE `creature_template` SET `AIName` = "" WHERE `entry` = 39349; +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (39368,39349) AND `source_type` = 0; +DELETE FROM `smart_scripts` WHERE `entryorguid` = 3936800 AND `source_type` = 9; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`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 +-- Ideally action list should be re-started inside action list 10 seconds after last action +(39368,0,0,0,60,0,100,0,10000,10000,95000,95000,0,80,3936800,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Update - Run Script"), +(39368,0,1,0,22,0,100,0,78,0,0,0,0,11,73771,2,0,0,0,0,7,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Emote Received 'Salute' - Cast '[DND] Salute Quest Credit'"), +(39368,0,2,0,22,0,100,0,75,0,0,0,0,11,73832,2,0,0,0,0,7,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Emote Received 'Roar' - Cast '[DND] Roar Quest Credit'"), +(39368,0,3,0,22,0,100,0,21,0,0,0,0,11,73833,2,0,0,0,0,7,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Emote Received 'Cheer' - Cast '[DND] Cheer Quest Credit'"), +(39368,0,4,0,22,0,100,0,34,0,0,0,0,11,73830,2,0,0,0,0,7,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Emote Received 'Dance' - Cast '[DND] Dance Quest Credit'"), + +(3936800,9,0,0,0,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 0"), +(3936800,9,1,0,0,0,100,0,4000,4000,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 1"), +(3936800,9,2,0,0,0,100,0,3000,3000,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 2"), +(3936800,9,3,0,0,0,100,0,4000,4000,0,0,0,1,3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 3"), +(3936800,9,4,0,0,0,100,0,4000,4000,0,0,0,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 4"), +(3936800,9,5,0,0,0,100,0,0,0,0,0,0,11,73770,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Cast '[DND] Salute Quest Valid'"), +(3936800,9,6,0,0,0,100,0,1500,1500,0,0,0,11,73835,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Cast '[DND] Test Salute'"), +(3936800,9,7,0,0,0,100,0,5000,5000,0,0,0,1,5,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 5"), +(3936800,9,8,0,0,0,100,0,5000,5000,0,0,0,1,6,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 6"), +(3936800,9,9,0,0,0,100,0,4000,4000,0,0,0,1,7,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 7"), +(3936800,9,10,0,0,0,100,0,4000,4000,0,0,0,1,8,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 8"), +(3936800,9,11,0,0,0,100,0,0,0,0,0,0,11,73831,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Cast '[DND] Roar Quest Valid'"), +(3936800,9,12,0,0,0,100,0,1000,1000,0,0,0,5,15,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Play Emote 15"), +(3936800,9,13,0,0,0,100,0,1500,1500,0,0,0,11,73836,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Cast '[DND] Test Roar'"), +(3936800,9,14,0,0,0,100,0,5000,5000,0,0,0,1,9,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 9"), +(3936800,9,15,0,0,0,100,0,5000,5000,0,0,0,1,10,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 10"), +(3936800,9,16,0,0,0,100,0,4000,4000,0,0,0,1,11,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 11"), +(3936800,9,17,0,0,0,100,0,4000,4000,0,0,0,1,12,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 12"), +(3936800,9,18,0,0,0,100,0,0,0,0,0,0,11,73834,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Cast '[DND] Cheer Quest Valid'"), +(3936800,9,19,0,0,0,100,0,1000,1000,0,0,0,5,4,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Play Emote 4"), +(3936800,9,20,0,0,0,100,0,1500,1500,0,0,0,11,73725,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Cast '[DND] Test Cheer'"), +(3936800,9,21,0,0,0,100,0,5000,5000,0,0,0,1,13,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 13"), +(3936800,9,22,0,0,0,100,0,5000,5000,0,0,0,1,14,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 14"), +(3936800,9,23,0,0,0,100,0,4000,4000,0,0,0,1,15,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 15"), +(3936800,9,24,0,0,0,100,0,4000,4000,0,0,0,1,16,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 16"), +(3936800,9,25,0,0,0,100,0,0,0,0,0,0,11,73829,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Cast '[DND] Dance Quest Valid'"), +(3936800,9,26,0,0,0,100,0,1000,1000,0,0,0,17,10,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Set Emote State 10"), +(3936800,9,27,0,0,0,100,0,1000,1000,0,0,0,11,73837,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Cast '[DND] Test Dance'"), +(3936800,9,28,0,0,0,100,0,5000,5000,0,0,0,1,17,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 17"), +(3936800,9,29,0,0,0,100,0,0,0,0,0,0,17,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Set Emote State 0"), +(3936800,9,30,0,0,0,100,0,0,0,0,0,0,11,73886,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Cast '[DND] Test Stop Dance'"), +(3936800,9,31,0,0,0,100,0,5000,5000,0,0,0,1,18,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Drill Sergeant Steamcrank - On Script - Say Line 18"); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 22 AND `SourceEntry` = 39368 AND `SourceId` = 0; +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(22,2,39368,0,0,1,1,73770,0,0,0,0,0,"","Group 0: Execute SAI (Action 1) if creature does have aura '[DND] Salute Quest Valid'"), +(22,3,39368,0,0,1,1,73831,0,0,0,0,0,"","Group 0: Execute SAI (Action 2) if creature does have aura '[DND] Roar Quest Valid'"), +(22,4,39368,0,0,1,1,73834,0,0,0,0,0,"","Group 0: Execute SAI (Action 3) if creature does have aura '[DND] Cheer Quest Valid'"), +(22,5,39368,0,0,1,1,73829,0,0,0,0,0,"","Group 0: Execute SAI (Action 4) if creature does have aura '[DND] Dance Quest Valid'"); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 13 AND `SourceEntry` IN (73835,73836,73725,73837,73886); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(13,1,73835,0,0,31,0,3,39349,0,0,0,0,"","Group 0: Spell '[DND] Test Salute' (Effect 0) targets creature 'Gnomeregan Trainee'"), +(13,1,73836,0,0,31,0,3,39349,0,0,0,0,"","Group 0: Spell '[DND] Test Roar' (Effect 0) targets creature 'Gnomeregan Trainee'"), +(13,1,73725,0,0,31,0,3,39349,0,0,0,0,"","Group 0: Spell '[DND] Test Cheer' (Effect 0) targets creature 'Gnomeregan Trainee'"), +(13,1,73837,0,0,31,0,3,39349,0,0,0,0,"","Group 0: Spell '[DND] Test Dance' (Effect 0) targets creature 'Gnomeregan Trainee'"), +(13,1,73886,0,0,31,0,3,39349,0,0,0,0,"","Group 0: Spell '[DND] Test Stop Dance' (Effect 0) targets creature 'Gnomeregan Trainee'"); diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index b9188c17662..8255495e497 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -3536,6 +3536,25 @@ void SpellMgr::LoadSpellInfoCorrections() spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_7_YARDS); }); + // In sniff caster hits multiple targets + ApplySpellFix({ + 73725, // [DND] Test Cheer + 73835, // [DND] Test Salute + 73836 // [DND] Test Roar + }, [](SpellInfo* spellInfo) + { + spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50_YARDS); // 50yd + }); + + // In sniff caster hits multiple targets + ApplySpellFix({ + 73837, // [DND] Test Dance + 73886 // [DND] Test Stop Dance + }, [](SpellInfo* spellInfo) + { + spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_150_YARDS); // 150yd + }); + // Master Shapeshifter: missing stance data for forms other than bear - bear version has correct data // To prevent aura staying on target after talent unlearned ApplySpellFix({ 48420 }, [](SpellInfo* spellInfo) diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index ea2808ca930..86b0acba785 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -2300,6 +2300,52 @@ class spell_q12308_escape_from_silverbrook_summon_worgen : public SpellScriptLoa } }; +enum BasicOrdersEmote +{ + SPELL_TEST_SALUTE = 73835, + SPELL_TEST_ROAR = 73836, + SPELL_TEST_CHEER = 73725, + SPELL_TEST_DANCE = 73837, + SPELL_TEST_STOP_DANCE = 73886 +}; + +class spell_q25199_emote : public AuraScript +{ + PrepareAuraScript(spell_q25199_emote); + + void HandlePeriodic(AuraEffect const* /*aurEff*/) + { + Unit* target = GetTarget(); + + switch (GetSpellInfo()->Id) + { + case SPELL_TEST_SALUTE: + target->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE); + break; + case SPELL_TEST_ROAR: + target->HandleEmoteCommand(EMOTE_ONESHOT_ROAR); + break; + case SPELL_TEST_CHEER: + target->HandleEmoteCommand(EMOTE_ONESHOT_CHEER); + break; + case SPELL_TEST_DANCE: + target->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_DANCE); + break; + case SPELL_TEST_STOP_DANCE: + target->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); + break; + default: + return; + } + Remove(); + } + + void Register() override + { + OnEffectPeriodic += AuraEffectPeriodicFn(spell_q25199_emote::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY); + } +}; + enum DeathComesFromOnHigh { SPELL_FORGE_CREDIT = 51974, @@ -2968,6 +3014,7 @@ void AddSC_quest_spell_scripts() RegisterSpellScript(spell_q11896_weakness_to_lightning_46444); new spell_q12308_escape_from_silverbrook_summon_worgen(); new spell_q12308_escape_from_silverbrook(); + RegisterSpellScript(spell_q25199_emote); new spell_q12641_death_comes_from_on_high(); new spell_q12641_recall_eye_of_acherus(); new spell_q12619_emblazon_runeblade(); |