diff options
author | offl <offl@users.noreply.github.com> | 2020-11-11 04:25:54 +0200 |
---|---|---|
committer | offl <offl@users.noreply.github.com> | 2020-11-11 04:25:54 +0200 |
commit | ed8bf7f0e2e67ca1eb65ffa05518fe29df526642 (patch) | |
tree | e43746998aece5cc2ac2edb9770da657e96ba483 | |
parent | 05fa1a46b36f81c177a503f7f5de14eb34830208 (diff) |
DB/Creature: Convert & update support for Tonk Mine to SAI
-rw-r--r-- | sql/updates/world/3.3.5/2020_11_11_00_world.sql | 33 | ||||
-rw-r--r-- | src/server/scripts/World/npcs_special.cpp | 54 |
2 files changed, 33 insertions, 54 deletions
diff --git a/sql/updates/world/3.3.5/2020_11_11_00_world.sql b/sql/updates/world/3.3.5/2020_11_11_00_world.sql new file mode 100644 index 00000000000..26b2a56a4b9 --- /dev/null +++ b/sql/updates/world/3.3.5/2020_11_11_00_world.sql @@ -0,0 +1,33 @@ +-- Tonk Mine SAI +SET @ID := 15368; +UPDATE `creature_template` SET `speed_run` = 1, `AIName` = "SmartAI", `ScriptName` = "" WHERE `entry` = @ID; +DELETE FROM `smart_scripts` WHERE `entryorguid` = @ID AND `source_type` = 0; +DELETE FROM `smart_scripts` WHERE `entryorguid` = @ID*100+0 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 +(@ID,0,0,0,54,0,100,0,0,0,0,0,0,80,@ID*100+0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Tonk Mine - On Just Summoned - Run Script"), +(@ID,0,1,2,31,0,100,0,28000,0,0,0,0,11,25099,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Tonk Mine - On Target Spellhit 'Land Mine Trigger' - Cast 'Detonation'"), +(@ID,0,2,3,61,0,100,0,0,0,0,0,0,28,27999,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Tonk Mine - On Link - Remove Aura 'Land Mine Periodic'"), +(@ID,0,3,0,61,0,100,0,0,0,0,0,0,41,2000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Tonk Mine - On Link - Despawn (2000)"), + +(@ID*100+0,9,0,0,0,0,100,0,0,0,0,0,0,11,11816,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Tonk Mine - On Script - Cast 'Land Mine Arming'"), +(@ID*100+0,9,1,0,0,0,100,0,2000,2000,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Tonk Mine - On Script - Say Line 0"), +(@ID*100+0,9,2,0,0,0,100,0,3000,3000,0,0,0,28,11816,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Tonk Mine - On Script - Remove Aura 'Land Mine Arming'"), +(@ID*100+0,9,3,0,0,0,100,0,0,0,0,0,0,11,27999,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Tonk Mine - On Script - Cast 'Land Mine Periodic'"), +(@ID*100+0,9,4,0,0,0,100,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Tonk Mine - On Script - Say Line 1"); + +DELETE FROM `creature_text` WHERE `CreatureID` = @ID; +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(@ID,0,0,"%s will be armed in 3 seconds!",16,0,100,0,0,0,10894,0,"Tonk Mine"), +(@ID,1,0,"%s is now armed!",16,0,100,0,0,0,3543,0,"Tonk Mine"); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 13 AND `SourceEntry` IN (25099,28000); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES +(13,1,25099,0,0,31,0,3,19405,0,0,0,0,"","Group 0: Spell 'Land Mine Trigger' (Effect 0) targets creature 'Steam Tonk'"), +-- Dunno if owner should be affected or not +(13,1,28000,0,0,31,0,3,19405,0,0,0,0,"","Group 0: Spell 'Detonation' (Effect 0) targets creature 'Steam Tonk'"); + +-- Missing spells for tonk +DELETE FROM `creature_template_spell` WHERE `CreatureID` = 19405 AND `Index` IN (1,2); +INSERT INTO `creature_template_spell` (`CreatureID`,`Index`,`Spell`,`VerifiedBuild`) VALUES +(19405,1,25003,0), +(19405,2,25024,0); diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index 1313af583d9..c22887dfd9b 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -1184,59 +1184,6 @@ public: } }; -enum TonkMine -{ - SPELL_TONK_MINE_DETONATE = 25099 -}; - -class npc_tonk_mine : public CreatureScript -{ -public: - npc_tonk_mine() : CreatureScript("npc_tonk_mine") { } - - struct npc_tonk_mineAI : public ScriptedAI - { - npc_tonk_mineAI(Creature* creature) : ScriptedAI(creature) - { - Initialize(); - me->SetReactState(REACT_PASSIVE); - } - - void Initialize() - { - ExplosionTimer = 3000; - } - - uint32 ExplosionTimer; - - void Reset() override - { - Initialize(); - } - - void JustEngagedWith(Unit* /*who*/) override { } - void AttackStart(Unit* /*who*/) override { } - void MoveInLineOfSight(Unit* /*who*/) override { } - - - void UpdateAI(uint32 diff) override - { - if (ExplosionTimer <= diff) - { - DoCast(me, SPELL_TONK_MINE_DETONATE, true); - me->setDeathState(DEAD); // unsummon it - } - else - ExplosionTimer -= diff; - } - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_tonk_mineAI(creature); - } -}; - enum TournamentPennantSpells { SPELL_PENNANT_STORMWIND_ASPIRANT = 62595, @@ -2680,7 +2627,6 @@ void AddSC_npcs_special() new npc_garments_of_quests(); new npc_guardian(); new npc_steam_tonk(); - new npc_tonk_mine(); new npc_tournament_mount(); new npc_brewfest_reveler(); RegisterCreatureAI(npc_training_dummy); |