diff options
-rw-r--r-- | sql/updates/world/master/2022_01_06_08_world_2020_05_19_03_world.sql | 26 | ||||
-rw-r--r-- | src/server/scripts/World/go_scripts.cpp | 144 |
2 files changed, 26 insertions, 144 deletions
diff --git a/sql/updates/world/master/2022_01_06_08_world_2020_05_19_03_world.sql b/sql/updates/world/master/2022_01_06_08_world_2020_05_19_03_world.sql new file mode 100644 index 00000000000..ebeb29d81f9 --- /dev/null +++ b/sql/updates/world/master/2022_01_06_08_world_2020_05_19_03_world.sql @@ -0,0 +1,26 @@ +-- Everything else is done and works well +UPDATE `conditions` SET `SourceEntry` = 10921, `NegativeCondition` = 1 WHERE `SourceTypeOrReferenceId` = 14 AND `SourceGroup` = 8677; + +-- Fel Crystalforge SAI (Source: Current script & https://www.youtube.com/watch?v=WUEOrClIEX8) +SET @ID := 185919; +UPDATE `gameobject_template` SET `AIName` = "SmartGameObjectAI", `ScriptName` = "" WHERE `entry` = @ID; +DELETE FROM `smart_scripts` WHERE `entryorguid` = @ID AND `source_type` = 1; +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,1,0,0,62,0,100,0,8672,0,0,0,0,85,40964,0,0,0,0,0,7,0,0,0,0,0,0,0,0,"Fel Crystalforge - On Gossip Option 0 Selected - Invoker Cast 'Fel Crystalforge: Create 1 Flask'"), +(@ID,1,1,0,62,0,100,0,8672,1,0,0,0,85,40965,0,0,0,0,0,7,0,0,0,0,0,0,0,0,"Fel Crystalforge - On Gossip Option 1 Selected - Invoker Cast 'Fel Crystalforge: Create 5 Flasks'"); + +-- Fel Crystalforge SAI (Source: Current script & https://www.youtube.com/watch?v=WUEOrClIEX8) +SET @ID := 185920; +UPDATE `gameobject_template` SET `AIName` = "SmartGameObjectAI", `ScriptName` = "" WHERE `entry` = @ID; +DELETE FROM `smart_scripts` WHERE `entryorguid` = @ID AND `source_type` = 1; +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,1,0,0,62,0,100,0,8672,0,0,0,0,85,40964,0,0,0,0,0,7,0,0,0,0,0,0,0,0,"Fel Crystalforge - On Gossip Option 0 Selected - Invoker Cast 'Fel Crystalforge: Create 1 Flask'"), +(@ID,1,1,0,62,0,100,0,8672,1,0,0,0,85,40965,0,0,0,0,0,7,0,0,0,0,0,0,0,0,"Fel Crystalforge - On Gossip Option 1 Selected - Invoker Cast 'Fel Crystalforge: Create 5 Flasks'"); + +-- Bash'ir Crystalforge SAI (Source: Current script & https://www.youtube.com/watch?v=opp2STjJq4s) +SET @ID := 185921; +UPDATE `gameobject_template` SET `AIName` = "SmartGameObjectAI", `ScriptName` = "" WHERE `entry` = @ID; +DELETE FROM `smart_scripts` WHERE `entryorguid` = @ID AND `source_type` = 1; +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,1,0,0,62,0,100,0,8677,0,0,0,0,85,40968,0,0,0,0,0,7,0,0,0,0,0,0,0,0,"Bash'ir Crystalforge - On Gossip Option 0 Selected - Invoker Cast 'Bash'ir Crystalforge: Create 1 Flask'"), +(@ID,1,1,0,62,0,100,0,8677,1,0,0,0,85,40970,0,0,0,0,0,7,0,0,0,0,0,0,0,0,"Bash'ir Crystalforge - On Gossip Option 1 Selected - Invoker Cast 'Bash'ir Crystalforge: Create 5 Flasks'"); diff --git a/src/server/scripts/World/go_scripts.cpp b/src/server/scripts/World/go_scripts.cpp index 0390938200b..6bb54ed3e18 100644 --- a/src/server/scripts/World/go_scripts.cpp +++ b/src/server/scripts/World/go_scripts.cpp @@ -29,8 +29,6 @@ go_scourge_cage go_jotunheim_cage go_table_theka go_soulwell -go_bashir_crystalforge -go_soulwell go_dragonflayer_cage go_amberpine_outhouse go_hive_pod @@ -481,146 +479,6 @@ public: }; /*###### -## go_fel_crystalforge -######*/ - -#define GOSSIP_FEL_CRYSTALFORGE_TEXT 31000 -#define GOSSIP_FEL_CRYSTALFORGE_ITEM_TEXT_RETURN 31001 -#define GOSSIP_FEL_CRYSTALFORGE_ITEM_1 "Purchase 1 Unstable Flask of the Beast for the cost of 10 Apexis Shards" -#define GOSSIP_FEL_CRYSTALFORGE_ITEM_5 "Purchase 5 Unstable Flask of the Beast for the cost of 50 Apexis Shards" -#define GOSSIP_FEL_CRYSTALFORGE_ITEM_RETURN "Use the fel crystalforge to make another purchase." - -enum FelCrystalforge -{ - SPELL_CREATE_1_FLASK_OF_BEAST = 40964, - SPELL_CREATE_5_FLASK_OF_BEAST = 40965, -}; - -class go_fel_crystalforge : public GameObjectScript -{ -public: - go_fel_crystalforge() : GameObjectScript("go_fel_crystalforge") { } - - struct go_fel_crystalforgeAI : public GameObjectAI - { - go_fel_crystalforgeAI(GameObject* go) : GameObjectAI(go) { } - - bool GossipHello(Player* player) override - { - if (me->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER) /* != GAMEOBJECT_TYPE_QUESTGIVER) */ - player->PrepareQuestMenu(me->GetGUID()); /* return true*/ - - AddGossipItemFor(player, GossipOptionIcon::None, GOSSIP_FEL_CRYSTALFORGE_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); - AddGossipItemFor(player, GossipOptionIcon::None, GOSSIP_FEL_CRYSTALFORGE_ITEM_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - - SendGossipMenuFor(player, GOSSIP_FEL_CRYSTALFORGE_TEXT, me->GetGUID()); - - return true; - } - - bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override - { - uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId); - ClearGossipMenuFor(player); - switch (action) - { - case GOSSIP_ACTION_INFO_DEF: - player->CastSpell(player, SPELL_CREATE_1_FLASK_OF_BEAST, false); - AddGossipItemFor(player, GossipOptionIcon::None, GOSSIP_FEL_CRYSTALFORGE_ITEM_RETURN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); - SendGossipMenuFor(player, GOSSIP_FEL_CRYSTALFORGE_ITEM_TEXT_RETURN, me->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 1: - player->CastSpell(player, SPELL_CREATE_5_FLASK_OF_BEAST, false); - AddGossipItemFor(player, GossipOptionIcon::None, GOSSIP_FEL_CRYSTALFORGE_ITEM_RETURN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); - SendGossipMenuFor(player, GOSSIP_FEL_CRYSTALFORGE_ITEM_TEXT_RETURN, me->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 2: - AddGossipItemFor(player, GossipOptionIcon::None, GOSSIP_FEL_CRYSTALFORGE_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); - AddGossipItemFor(player, GossipOptionIcon::None, GOSSIP_FEL_CRYSTALFORGE_ITEM_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - SendGossipMenuFor(player, GOSSIP_FEL_CRYSTALFORGE_TEXT, me->GetGUID()); - break; - } - return true; - } - }; - - GameObjectAI* GetAI(GameObject* go) const override - { - return new go_fel_crystalforgeAI(go); - } -}; - -/*###### -## go_bashir_crystalforge -######*/ - -#define GOSSIP_BASHIR_CRYSTALFORGE_TEXT 31100 -#define GOSSIP_BASHIR_CRYSTALFORGE_ITEM_TEXT_RETURN 31101 -#define GOSSIP_BASHIR_CRYSTALFORGE_ITEM_1 "Purchase 1 Unstable Flask of the Sorcerer for the cost of 10 Apexis Shards" -#define GOSSIP_BASHIR_CRYSTALFORGE_ITEM_5 "Purchase 5 Unstable Flask of the Sorcerer for the cost of 50 Apexis Shards" -#define GOSSIP_BASHIR_CRYSTALFORGE_ITEM_RETURN "Use the bashir crystalforge to make another purchase." - -enum BashirCrystalforge -{ - SPELL_CREATE_1_FLASK_OF_SORCERER = 40968, - SPELL_CREATE_5_FLASK_OF_SORCERER = 40970, -}; - -class go_bashir_crystalforge : public GameObjectScript -{ -public: - go_bashir_crystalforge() : GameObjectScript("go_bashir_crystalforge") { } - - struct go_bashir_crystalforgeAI : public GameObjectAI - { - go_bashir_crystalforgeAI(GameObject* go) : GameObjectAI(go) { } - - bool GossipHello(Player* player) override - { - if (me->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER) /* != GAMEOBJECT_TYPE_QUESTGIVER) */ - player->PrepareQuestMenu(me->GetGUID()); /* return true*/ - - AddGossipItemFor(player, GossipOptionIcon::None, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); - AddGossipItemFor(player, GossipOptionIcon::None, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - - SendGossipMenuFor(player, GOSSIP_BASHIR_CRYSTALFORGE_TEXT, me->GetGUID()); - - return true; - } - - bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override - { - uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId); - ClearGossipMenuFor(player); - switch (action) - { - case GOSSIP_ACTION_INFO_DEF: - player->CastSpell(player, SPELL_CREATE_1_FLASK_OF_SORCERER, false); - AddGossipItemFor(player, GossipOptionIcon::None, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_RETURN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); - SendGossipMenuFor(player, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_TEXT_RETURN, me->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 1: - player->CastSpell(player, SPELL_CREATE_5_FLASK_OF_SORCERER, false); - AddGossipItemFor(player, GossipOptionIcon::None, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_RETURN, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); - SendGossipMenuFor(player, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_TEXT_RETURN, me->GetGUID()); - break; - case GOSSIP_ACTION_INFO_DEF + 2: - AddGossipItemFor(player, GossipOptionIcon::None, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); - AddGossipItemFor(player, GossipOptionIcon::None, GOSSIP_BASHIR_CRYSTALFORGE_ITEM_5, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - SendGossipMenuFor(player, GOSSIP_BASHIR_CRYSTALFORGE_TEXT, me->GetGUID()); - break; - } - return true; - } - }; - - GameObjectAI* GetAI(GameObject* go) const override - { - return new go_bashir_crystalforgeAI(go); - } -}; - -/*###### ## matrix_punchograph ######*/ @@ -1880,8 +1738,6 @@ void AddSC_go_scripts() new go_resonite_cask(); new go_tele_to_dalaran_crystal(); new go_tele_to_violet_stand(); - new go_fel_crystalforge(); - new go_bashir_crystalforge(); new go_matrix_punchograph(); new go_scourge_cage(); new go_arcane_prison(); |