aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2022_01_26_05_world_2020_08_03_02_world.sql24
-rw-r--r--src/server/scripts/Outland/zone_netherstorm.cpp97
2 files changed, 24 insertions, 97 deletions
diff --git a/sql/updates/world/master/2022_01_26_05_world_2020_08_03_02_world.sql b/sql/updates/world/master/2022_01_26_05_world_2020_08_03_02_world.sql
new file mode 100644
index 00000000000..49026de3e54
--- /dev/null
+++ b/sql/updates/world/master/2022_01_26_05_world_2020_08_03_02_world.sql
@@ -0,0 +1,24 @@
+--
+-- Captain Tyralius's Prison SAI
+UPDATE `gameobject` SET `spawntimesecs` = 60 WHERE `id` = 184588 AND `guid` = 25412;
+UPDATE `gameobject_template` SET `AIName` = "SmartGameObjectAI", `ScriptName` = "" WHERE `entry` = 184588;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = 184588 AND `source_type` = 1;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = 18458800 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
+(184588, 1,0,0,11,0,100,0,0,0,0,0,0,12, 20787,8,0,0,0,0, 1, 0,0,0,0,0,0,0,0,"Captain Tyralius's Prison - On Respawn - Summon Creature 'Captain Tyralius'"),
+(184588, 1,1,0,11,0,100,0,0,0,0,0,0,12, 20825,8,0,0,0,0, 1, 0,0,0,0,0,0,0,0,"Captain Tyralius's Prison - On Respawn - Summon Creature 'Ethereum Prisoner (Tyralius)'"),
+(184588, 1,2,0,64,0,100,0,1,0,0,0,0,80,18458800,0,0,0,0,0, 1, 0,0,0,0,0,0,0,0,"Captain Tyralius's Prison - On Gossip Hello - Run Script"),
+(18458800,9,0,0, 0,0,100,0,0,0,0,0,0,99, 3,0,0,0,0,0, 1, 0,0,0,0,0,0,0,0,"Captain Tyralius's Prison - On Script - Set Lootstate Deactivated"),
+(18458800,9,1,0, 0,0,100,0,0,0,0,0,0,33, 20787,0,0,0,0,0, 7, 0,0,0,0,0,0,0,0,"Captain Tyralius's Prison - On Script - Quest Credit 'Captain Tyralius'"),
+(18458800,9,2,0, 0,0,100,0,0,0,0,0,0, 1, 0,0,0,0,0,0,19,20787,5,0,0,0,0,0,0,"Captain Tyralius's Prison - On Script - Say Line 0 (Captain Tyralius)"),
+(18458800,9,3,0, 0,0,100,0,0,0,0,0,0,41, 0,0,0,0,0,0,19,20825,5,0,0,0,0,0,0,"Captain Tyralius's Prison - On Script - Despawn (0) (Ethereum Prisoner (Tyralius))"),
+(18458800,9,4,0, 0,0,100,0,0,0,0,0,0,45, 0,1,0,0,0,0,19,20787,5,0,0,0,0,0,0,"Captain Tyralius's Prison - On Script - Set Data 0 1 (Captain Tyralius)");
+
+-- Captain Tyralius SAI
+UPDATE `creature_template` SET `AIName` = "SmartAI", `ScriptName` = "" WHERE `entry` = 20787;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = 20787 AND `source_type` = 0;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = 2078700 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
+(20787, 0,0,0,38,0,100,0, 0, 1,0,0,0,80,2078700,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Captain Tyralius - On Data Set 0 1 - Run Script"),
+(2078700,9,0,0, 0,0,100,0,5000,5000,0,0,0,11, 51347,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Captain Tyralius - On Script - Cast 'Teleport Visual Only'"),
+(2078700,9,1,0, 0,0,100,0, 0, 0,0,0,0,41, 2000,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Captain Tyralius - On Script - Despawn (2000)");
diff --git a/src/server/scripts/Outland/zone_netherstorm.cpp b/src/server/scripts/Outland/zone_netherstorm.cpp
index 7e2e4905614..7e42aaa562f 100644
--- a/src/server/scripts/Outland/zone_netherstorm.cpp
+++ b/src/server/scripts/Outland/zone_netherstorm.cpp
@@ -24,7 +24,6 @@ EndScriptData */
/* ContentData
npc_commander_dawnforge
-go_captain_tyralius_prison
EndContentData */
#include "ScriptMgr.h"
@@ -462,105 +461,9 @@ public:
};
};
-/*######
-## go_captain_tyralius_prison
-######*/
-
-enum CaptainTyralius
-{
- NPC_CAPTAIN_TYRALIUS = 20787,
- NPC_ETHEREUM_PRISONER = 20825,
- SPELL_TELEPORT_VISUAL = 51347,
- SAY_FREE = 0,
- ACTION_FREED = 0,
- EVENT_TELEPORT = 1
-};
-
-class go_captain_tyralius_prison : public GameObjectScript
-{
- public:
- go_captain_tyralius_prison() : GameObjectScript("go_captain_tyralius_prison") { }
-
- struct go_captain_tyralius_prisonAI : public GameObjectAI
- {
- go_captain_tyralius_prisonAI(GameObject* go) : GameObjectAI(go) { }
-
- void Reset() override
- {
- me->SummonCreature(NPC_CAPTAIN_TYRALIUS, me->GetPosition(), TEMPSUMMON_MANUAL_DESPAWN);
- me->SummonCreature(NPC_ETHEREUM_PRISONER, me->GetPosition(), TEMPSUMMON_MANUAL_DESPAWN);
- }
-
- bool GossipHello(Player* player) override
- {
- me->SetRespawnTime(60);
- me->SetLootState(GO_JUST_DEACTIVATED);
-
- if (Creature* tyralius = me->FindNearestCreature(NPC_CAPTAIN_TYRALIUS, 1.0f))
- {
- player->KilledMonsterCredit(NPC_CAPTAIN_TYRALIUS);
- tyralius->AI()->DoAction(ACTION_FREED);
- }
-
- if (Creature* prisoner = me->FindNearestCreature(NPC_ETHEREUM_PRISONER, 1.0f))
- prisoner->DespawnOrUnsummon();
-
- return true;
- }
- };
-
- GameObjectAI* GetAI(GameObject* go) const override
- {
- return new go_captain_tyralius_prisonAI(go);
- }
-};
-
-class npc_captain_tyralius : public CreatureScript
-{
-public:
- npc_captain_tyralius() : CreatureScript("npc_captain_tyralius") { }
-
- CreatureAI* GetAI(Creature* creature) const override
- {
- return new npc_captain_tyraliusAI(creature);
- }
-
- struct npc_captain_tyraliusAI : public ScriptedAI
- {
- npc_captain_tyraliusAI(Creature* creature) : ScriptedAI(creature) { }
-
- void DoAction(int32 /*action*/) override
- {
- Talk(SAY_FREE);
- _events.ScheduleEvent(EVENT_TELEPORT, 5s);
- }
-
- void UpdateAI(uint32 diff) override
- {
- _events.Update(diff);
-
- if (uint32 eventId = _events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_TELEPORT:
- DoCastSelf(SPELL_TELEPORT_VISUAL);
- me->DespawnOrUnsummon(Seconds(2));
- break;
- }
- }
- }
-
- private:
- EventMap _events;
- };
-};
-
void AddSC_netherstorm()
{
new npc_commander_dawnforge();
new at_commander_dawnforge();
new npc_phase_hunter();
- new go_captain_tyralius_prison();
- new npc_captain_tyralius();
}