Skip to content

Instantly share code, notes, and snippets.

@elecyb
Created January 10, 2016 06:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save elecyb/78fb41f78f6940466350 to your computer and use it in GitHub Desktop.
Save elecyb/78fb41f78f6940466350 to your computer and use it in GitHub Desktop.
Core/Script: Implemented Book "Soothsaying for dummies", change of engineering and leatherworking specs
From d964454c2f349a7847237bcf615ff539ec2ee4a4 Mon Sep 17 00:00:00 2001
From: elecyb <elecyb@hotmail.com>
Date: Sun, 10 Jan 2016 02:35:19 -0300
Subject: [PATCH] Core/Script: Implemented Book "Soothsaying for dummies",
change of engineering and leatherworking specs possible!
Authors: @elecyb, @ariel-
---
sql/updates/world/2016_MM_DD_NN_world.sql | 194 +++++++++++++++++++++++++++
src/server/scripts/World/npc_professions.cpp | 100 +++++++++++++-
2 files changed, 289 insertions(+), 5 deletions(-)
create mode 100644 sql/updates/world/2016_MM_DD_NN_world.sql
diff --git a/sql/updates/world/2016_MM_DD_NN_world.sql b/sql/updates/world/2016_MM_DD_NN_world.sql
new file mode 100644
index 0000000..7b128eb
--- /dev/null
+++ b/sql/updates/world/2016_MM_DD_NN_world.sql
@@ -0,0 +1,194 @@
+SET @ENTRY := 177226;
+SET @GOSSIP_ID := 7058;
+SET @NPC_TEXT_UNLEARN := 8321;
+SET @NPC_TEXT_LEARN_ENGINEERING := 6;
+SET @NPC_TEXT_LEARN_LEATHERWORK := 7;
+UPDATE `gameobject_template` SET `ScriptName`='go_soothsaying_for_dummies' WHERE `entry`=@ENTRY;
+-- Missing gossip text
+DELETE FROM `npc_text` WHERE `ID` IN (@NPC_TEXT_LEARN_ENGINEERING, @NPC_TEXT_LEARN_LEATHERWORK);
+INSERT INTO `npc_text` (`ID`,`text0_0`,`text0_1`,`BroadcastTextID0`,`lang0`,`Probability0`,`em0_0`,`em0_1`,`em0_2`,`em0_3`,`em0_4`,`em0_5`,`text1_0`,`text1_1`,`BroadcastTextID1`,`lang1`,`Probability1`,`em1_0`,`em1_1`,`em1_2`,`em1_3`,`em1_4`,`em1_5`,`text2_0`,`text2_1`,`BroadcastTextID2`,`lang2`,`Probability2`,`em2_0`,`em2_1`,`em2_2`,`em2_3`,`em2_4`,`em2_5`,`text3_0`,`text3_1`,`BroadcastTextID3`,`lang3`,`Probability3`,`em3_0`,`em3_1`,`em3_2`,`em3_3`,`em3_4`,`em3_5`,`text4_0`,`text4_1`,`BroadcastTextID4`,`lang4`,`Probability4`,`em4_0`,`em4_1`,`em4_2`,`em4_3`,`em4_4`,`em4_5`,`text5_0`,`text5_1`,`BroadcastTextID5`,`lang5`,`Probability5`,`em5_0`,`em5_1`,`em5_2`,`em5_3`,`em5_4`,`em5_5`,`text6_0`,`text6_1`,`BroadcastTextID6`,`lang6`,`Probability6`,`em6_0`,`em6_1`,`em6_2`,`em6_3`,`em6_4`,`em6_5`,`text7_0`,`text7_1`,`BroadcastTextID7`,`lang7`,`Probability7`,`em7_0`,`em7_1`,`em7_2`,`em7_3`,`em7_4`,`em7_5`,`VerifiedBuild`) VALUES
+(@NPC_TEXT_LEARN_ENGINEERING,'Hundreds of various diagrams and schematics begin to take shape on the pages of the book. You recognize some of the diagrams while others remain foreign but familiar.','Hundreds of various diagrams and schematics begin to take shape on the pages of the book. You recognize some of the diagrams while others remain foreign but familiar.',11875,0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,0,0),
+(@NPC_TEXT_LEARN_LEATHERWORK,'The assortment of images, shapes, and markings come together before your eyes. The book seems to know your skill with leatherworking and offers you a choice - but be warned - you may only select one and once you have done so, may not change your mind!:','The assortment of images, shapes, and markings come together before your eyes. The book seems to know your skill with leatherworking and offers you a choice - but be warned - you may only select one and once you have done so, may not change your mind!:',11892,0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,0,'','',0,0,0,0,0,0,0,0,0,0);
+-- Link gossip to menu
+DELETE FROM `gossip_menu` WHERE `entry`=@GOSSIP_ID AND `text_id` IN (@NPC_TEXT_LEARN_ENGINEERING, @NPC_TEXT_LEARN_LEATHERWORK);
+INSERT INTO `gossip_menu` (`entry`,`text_id`) VALUES
+(@GOSSIP_ID, @NPC_TEXT_LEARN_ENGINEERING),
+(@GOSSIP_ID, @NPC_TEXT_LEARN_LEATHERWORK);
+
+DELETE FROM `gossip_menu_option` WHERE `menu_id`=@GOSSIP_ID;
+INSERT INTO `gossip_menu_option` (`menu_id`,`id`,`option_icon`,`option_text`,`OptionBroadcastTextID`,`option_id`,`npc_option_npcflag`,`action_menu_id`,`action_poi_id`,`box_coded`,`box_money`,`box_text`,`BoxBroadcastTextID`) VALUES
+(@GOSSIP_ID,0,0,'I wish to unlearn my Gnomish Engineering specialization!',36143,1,0,0,0,0,1500000,'Do you really want to unlearn your Gnomish Engineering specialization and lose all associated recipes?',36144),
+(@GOSSIP_ID,1,0,'I wish to unlearn my Goblin Engineering specialization!',36146,1,0,0,0,0,1500000,'Do you really want to unlearn your Goblin Engineering specialization and lose all associated recipes?',36145),
+(@GOSSIP_ID,2,0,'I am 100% confident that I wish to learn in the ways of gnomish engineering.',11878,1,0,0,0,0,0,'',0),
+(@GOSSIP_ID,3,0,'I am 100% confident that I wish to learn in the ways of goblin engineering.',11876,1,0,0,0,0,0,'',0),
+(@GOSSIP_ID,4,0,'I am absolutely certain that I want to learn dragonscale leatherworking.',11889,1,0,0,0,0,0,'',0),
+(@GOSSIP_ID,5,0,'I am absolutely certain that I want to learn elemental leatherworking.',11890,1,0,0,0,0,0,'',0),
+(@GOSSIP_ID,6,0,'I am absolutely certain that I want to learn tribal leatherworking.',11891,1,0,0,0,0,0,'',0);
+
+-- Conditions
+DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` IN (14,15) AND `SourceGroup`=@GOSSIP_ID;
+INSERT INTO `conditions` (`SourceTypeOrReferenceId`,`SourceGroup`,`SourceEntry`,`SourceId`,`ElseGroup`,`ConditionTypeOrReference`,`ConditionTarget`,`ConditionValue1`,`ConditionValue2`,`ConditionValue3`,`NegativeCondition`,`ErrorType`,`ErrorTextId`,`ScriptName`,`Comment`) VALUES
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_ENGINEERING,0,0,7,0,202,200,0,0,0,0,'','Show this menu if player has engineering'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_ENGINEERING,0,0,8,0,3639,0,0,0,0,0,'','Show this menu if player has rewarded Show your Work [Goblin]'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_ENGINEERING,0,0,25,0,20219,0,0,1,0,0,'','Show this menu if player doesn''t have Gnomish Engineering'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_ENGINEERING,0,0,25,0,20222,0,0,1,0,0,'','Show this menu if player doesn''t have Goblin Engineering'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_ENGINEERING,0,1,7,0,202,200,0,0,0,0,'','Show this menu if player has engineering'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_ENGINEERING,0,1,8,0,3641,0,0,0,0,0,'','Show this menu if player has rewarded Show your Work [Alliance]'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_ENGINEERING,0,1,25,0,20219,0,0,1,0,0,'','Show this menu if player doesn''t have Gnomish Engineering'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_ENGINEERING,0,1,25,0,20222,0,0,1,0,0,'','Show this menu if player doesn''t have Goblin Engineering'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_ENGINEERING,0,2,7,0,202,200,0,0,0,0,'','Show this menu if player has engineering'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_ENGINEERING,0,2,8,0,3643,0,0,0,0,0,'','Show this menu if player has rewarded Show your Work [Horde]'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_ENGINEERING,0,2,25,0,20219,0,0,1,0,0,'','Show this menu if player doesn''t have Gnomish Engineering'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_ENGINEERING,0,2,25,0,20222,0,0,1,0,0,'','Show this menu if player doesn''t have Goblin Engineering'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,3,7,0,165,225,0,0,0,0,'','Show this menu if player has leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,3,8,0,5141,0,0,0,0,0,'','Show this menu if player has rewarded Dragonscale Leatherworking [Alliance]'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,3,25,0,10656,0,0,1,0,0,'','Show this menu if player doesn''t have Dragonscale Leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,3,25,0,10658,0,0,1,0,0,'','Show this menu if player doesn''t have Elemental Leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,3,25,0,10660,0,0,1,0,0,'','Show this menu if player doesn''t have Tribal Leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,4,7,0,165,225,0,0,0,0,'','Show this menu if player has leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,4,8,0,5145,0,0,0,0,0,'','Show this menu if player has rewarded Dragonscale Leatherworking [Horde]'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,4,25,0,10656,0,0,1,0,0,'','Show this menu if player doesn''t have Dragonscale Leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,4,25,0,10658,0,0,1,0,0,'','Show this menu if player doesn''t have Elemental Leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,4,25,0,10660,0,0,1,0,0,'','Show this menu if player doesn''t have Tribal Leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,5,7,0,165,225,0,0,0,0,'','Show this menu if player has leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,5,8,0,5144,0,0,0,0,0,'','Show this menu if player has rewarded Elemental Leatherworking [Alliance]'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,5,25,0,10656,0,0,1,0,0,'','Show this menu if player doesn''t have Dragonscale Leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,5,25,0,10658,0,0,1,0,0,'','Show this menu if player doesn''t have Elemental Leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,5,25,0,10660,0,0,1,0,0,'','Show this menu if player doesn''t have Tribal Leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,6,7,0,165,225,0,0,0,0,'','Show this menu if player has leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,6,8,0,5146,0,0,0,0,0,'','Show this menu if player has rewarded Elemental Leatherworking [Horde]'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,6,25,0,10656,0,0,1,0,0,'','Show this menu if player doesn''t have Dragonscale Leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,6,25,0,10658,0,0,1,0,0,'','Show this menu if player doesn''t have Elemental Leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,6,25,0,10660,0,0,1,0,0,'','Show this menu if player doesn''t have Tribal Leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,7,7,0,165,225,0,0,0,0,'','Show this menu if player has leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,7,8,0,5143,0,0,0,0,0,'','Show this menu if player has rewarded Tribal Leatherworking [Alliance]'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,7,25,0,10656,0,0,1,0,0,'','Show this menu if player doesn''t have Dragonscale Leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,7,25,0,10658,0,0,1,0,0,'','Show this menu if player doesn''t have Elemental Leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,7,25,0,10660,0,0,1,0,0,'','Show this menu if player doesn''t have Tribal Leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,8,7,0,165,225,0,0,0,0,'','Show this menu if player has leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,8,8,0,5148,0,0,0,0,0,'','Show this menu if player has rewarded Tribal Leatherworking [Horde]'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,8,25,0,10656,0,0,1,0,0,'','Show this menu if player doesn''t have Dragonscale Leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,8,25,0,10658,0,0,1,0,0,'','Show this menu if player doesn''t have Elemental Leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_LEARN_LEATHERWORK,0,8,25,0,10660,0,0,1,0,0,'','Show this menu if player doesn''t have Tribal Leatherworking'),
+(14,@GOSSIP_ID,@NPC_TEXT_UNLEARN,0,0,7,0,202,200,0,0,0,0,'','Show this menu if player has engineering'),
+(14,@GOSSIP_ID,@NPC_TEXT_UNLEARN,0,0,25,0,20219,0,0,0,0,0,'','Show this menu if player does have Gnomish Engineering'),
+(14,@GOSSIP_ID,@NPC_TEXT_UNLEARN,0,1,7,0,202,200,0,0,0,0,'','Show this menu if player has engineering'),
+(14,@GOSSIP_ID,@NPC_TEXT_UNLEARN,0,1,25,0,20222,0,0,0,0,0,'','Show this menu if player does have Goblin Engineering'),
+(15,@GOSSIP_ID,0,0,0,7,0,202,200,0,0,0,0,'','Show option if player has engineering'),
+(15,@GOSSIP_ID,0,0,0,25,0,20219,0,0,0,0,0,'','Show option if player does have Gnomish Engineering'),
+(15,@GOSSIP_ID,1,0,0,7,0,202,200,0,0,0,0,'','Show option if player has engineering'),
+(15,@GOSSIP_ID,1,0,0,25,0,20222,0,0,0,0,0,'','Show option if player does have Gnomish Engineering'),
+(15,@GOSSIP_ID,2,0,0,7,0,202,200,0,0,0,0,'','Show option if player has engineering'),
+(15,@GOSSIP_ID,2,0,0,8,0,3639,0,0,0,0,0,'','Show option if player has rewarded Show your Work [Goblin]'),
+(15,@GOSSIP_ID,2,0,0,25,0,20219,0,0,1,0,0,'','Show option if player doesn''t have Gnomish Engineering'),
+(15,@GOSSIP_ID,2,0,0,25,0,20222,0,0,1,0,0,'','Show option if player doesn''t have Goblin Engineering'),
+(15,@GOSSIP_ID,2,0,1,7,0,202,200,0,0,0,0,'','Show option if player has engineering'),
+(15,@GOSSIP_ID,2,0,1,8,0,3641,0,0,0,0,0,'','Show option if player has rewarded Show your Work [Alliance]'),
+(15,@GOSSIP_ID,2,0,1,25,0,20219,0,0,1,0,0,'','Show option if player doesn''t have Gnomish Engineering'),
+(15,@GOSSIP_ID,2,0,1,25,0,20222,0,0,1,0,0,'','Show option if player doesn''t have Goblin Engineering'),
+(15,@GOSSIP_ID,2,0,2,7,0,202,200,0,0,0,0,'','Show option if player has engineering'),
+(15,@GOSSIP_ID,2,0,2,8,0,3643,0,0,0,0,0,'','Show option if player has rewarded Show your Work [Horde]'),
+(15,@GOSSIP_ID,2,0,2,25,0,20219,0,0,1,0,0,'','Show option if player doesn''t have Gnomish Engineering'),
+(15,@GOSSIP_ID,2,0,2,25,0,20222,0,0,1,0,0,'','Show option if player doesn''t have Goblin Engineering'),
+(15,@GOSSIP_ID,3,0,0,7,0,202,200,0,0,0,0,'','Show option if player has engineering'),
+(15,@GOSSIP_ID,3,0,0,8,0,3639,0,0,0,0,0,'','Show option if player has rewarded Show your Work [Goblin]'),
+(15,@GOSSIP_ID,3,0,0,25,0,20219,0,0,1,0,0,'','Show option if player doesn''t have Gnomish Engineering'),
+(15,@GOSSIP_ID,3,0,0,25,0,20222,0,0,1,0,0,'','Show option if player doesn''t have Goblin Engineering'),
+(15,@GOSSIP_ID,3,0,1,7,0,202,200,0,0,0,0,'','Show option if player has engineering'),
+(15,@GOSSIP_ID,3,0,1,8,0,3641,0,0,0,0,0,'','Show option if player has rewarded Show your Work [Alliance]'),
+(15,@GOSSIP_ID,3,0,1,25,0,20219,0,0,1,0,0,'','Show option if player doesn''t have Gnomish Engineering'),
+(15,@GOSSIP_ID,3,0,1,25,0,20222,0,0,1,0,0,'','Show option if player doesn''t have Goblin Engineering'),
+(15,@GOSSIP_ID,3,0,2,7,0,202,200,0,0,0,0,'','Show option if player has engineering'),
+(15,@GOSSIP_ID,3,0,2,8,0,3643,0,0,0,0,0,'','Show option if player has rewarded Show your Work [Horde]'),
+(15,@GOSSIP_ID,3,0,2,25,0,20219,0,0,1,0,0,'','Show option if player doesn''t have Gnomish Engineering'),
+(15,@GOSSIP_ID,3,0,2,25,0,20222,0,0,1,0,0,'','Show option if player doesn''t have Goblin Engineering'),
+(15,@GOSSIP_ID,4,0,0,7,0,165,225,0,0,0,0,'','Show option if player has leatherworking'),
+(15,@GOSSIP_ID,4,0,0,8,0,5141,0,0,0,0,0,'','Show option if player has rewarded Dragonscale Leatherworking [Alliance]'),
+(15,@GOSSIP_ID,4,0,0,25,0,10656,0,0,1,0,0,'','Show option if player doesn''t have Dragonscale Leatherworking'),
+(15,@GOSSIP_ID,4,0,0,25,0,10658,0,0,1,0,0,'','Show option if player doesn''t have Elemental Leatherworking'),
+(15,@GOSSIP_ID,4,0,0,25,0,10660,0,0,1,0,0,'','Show option if player doesn''t have Tribal Leatherworking'),
+(15,@GOSSIP_ID,4,0,1,7,0,165,225,0,0,0,0,'','Show option if player has leatherworking'),
+(15,@GOSSIP_ID,4,0,1,8,0,5145,0,0,0,0,0,'','Show option if player has rewarded Dragonscale Leatherworking [Horde]'),
+(15,@GOSSIP_ID,4,0,1,25,0,10656,0,0,1,0,0,'','Show option if player doesn''t have Dragonscale Leatherworking'),
+(15,@GOSSIP_ID,4,0,1,25,0,10658,0,0,1,0,0,'','Show option if player doesn''t have Elemental Leatherworking'),
+(15,@GOSSIP_ID,4,0,1,25,0,10660,0,0,1,0,0,'','Show option if player doesn''t have Tribal Leatherworking'),
+(15,@GOSSIP_ID,4,0,2,7,0,165,225,0,0,0,0,'','Show option if player has leatherworking'),
+(15,@GOSSIP_ID,4,0,2,8,0,5144,0,0,0,0,0,'','Show option if player has rewarded Elemental Leatherworking [Alliance]'),
+(15,@GOSSIP_ID,4,0,2,25,0,10656,0,0,1,0,0,'','Show option if player doesn''t have Dragonscale Leatherworking'),
+(15,@GOSSIP_ID,4,0,2,25,0,10658,0,0,1,0,0,'','Show option if player doesn''t have Elemental Leatherworking'),
+(15,@GOSSIP_ID,4,0,2,25,0,10660,0,0,1,0,0,'','Show option if player doesn''t have Tribal Leatherworking'),
+(15,@GOSSIP_ID,4,0,3,7,0,165,225,0,0,0,0,'','Show option if player has leatherworking'),
+(15,@GOSSIP_ID,4,0,3,8,0,5146,0,0,0,0,0,'','Show option if player has rewarded Elemental Leatherworking [Horde]'),
+(15,@GOSSIP_ID,4,0,3,25,0,10656,0,0,1,0,0,'','Show option if player doesn''t have Dragonscale Leatherworking'),
+(15,@GOSSIP_ID,4,0,3,25,0,10658,0,0,1,0,0,'','Show option if player doesn''t have Elemental Leatherworking'),
+(15,@GOSSIP_ID,4,0,3,25,0,10660,0,0,1,0,0,'','Show option if player doesn''t have Tribal Leatherworking'),
+(15,@GOSSIP_ID,4,0,4,7,0,165,225,0,0,0,0,'','Show option if player has leatherworking'),
+(15,@GOSSIP_ID,4,0,4,8,0,5143,0,0,0,0,0,'','Show option if player has rewarded Tribal Leatherworking [Alliance]'),
+(15,@GOSSIP_ID,4,0,4,25,0,10656,0,0,1,0,0,'','Show option if player doesn''t have Dragonscale Leatherworking'),
+(15,@GOSSIP_ID,4,0,4,25,0,10658,0,0,1,0,0,'','Show option if player doesn''t have Elemental Leatherworking'),
+(15,@GOSSIP_ID,4,0,4,25,0,10660,0,0,1,0,0,'','Show option if player doesn''t have Tribal Leatherworking'),
+(15,@GOSSIP_ID,4,0,5,7,0,165,225,0,0,0,0,'','Show option if player has leatherworking'),
+(15,@GOSSIP_ID,4,0,5,8,0,5148,0,0,0,0,0,'','Show option if player has rewarded Tribal Leatherworking [Horde]'),
+(15,@GOSSIP_ID,4,0,5,25,0,10656,0,0,1,0,0,'','Show option if player doesn''t have Dragonscale Leatherworking'),
+(15,@GOSSIP_ID,4,0,5,25,0,10658,0,0,1,0,0,'','Show option if player doesn''t have Elemental Leatherworking'),
+(15,@GOSSIP_ID,4,0,5,25,0,10660,0,0,1,0,0,'','Show option if player doesn''t have Tribal Leatherworking'),
+(15,@GOSSIP_ID,5,0,0,7,0,165,225,0,0,0,0,'','Show option if player has leatherworking'),
+(15,@GOSSIP_ID,5,0,0,8,0,5141,0,0,0,0,0,'','Show option if player has rewarded Dragonscale Leatherworking [Alliance]'),
+(15,@GOSSIP_ID,5,0,0,25,0,10656,0,0,1,0,0,'','Show option if player doesn''t have Dragonscale Leatherworking'),
+(15,@GOSSIP_ID,5,0,0,25,0,10658,0,0,1,0,0,'','Show option if player doesn''t have Elemental Leatherworking'),
+(15,@GOSSIP_ID,5,0,0,25,0,10660,0,0,1,0,0,'','Show option if player doesn''t have Tribal Leatherworking'),
+(15,@GOSSIP_ID,5,0,1,7,0,165,225,0,0,0,0,'','Show option if player has leatherworking'),
+(15,@GOSSIP_ID,5,0,1,8,0,5145,0,0,0,0,0,'','Show option if player has rewarded Dragonscale Leatherworking [Horde]'),
+(15,@GOSSIP_ID,5,0,1,25,0,10656,0,0,1,0,0,'','Show option if player doesn''t have Dragonscale Leatherworking'),
+(15,@GOSSIP_ID,5,0,1,25,0,10658,0,0,1,0,0,'','Show option if player doesn''t have Elemental Leatherworking'),
+(15,@GOSSIP_ID,5,0,1,25,0,10660,0,0,1,0,0,'','Show option if player doesn''t have Tribal Leatherworking'),
+(15,@GOSSIP_ID,5,0,2,7,0,165,225,0,0,0,0,'','Show option if player has leatherworking'),
+(15,@GOSSIP_ID,5,0,2,8,0,5144,0,0,0,0,0,'','Show option if player has rewarded Elemental Leatherworking [Alliance]'),
+(15,@GOSSIP_ID,5,0,2,25,0,10656,0,0,1,0,0,'','Show option if player doesn''t have Dragonscale Leatherworking'),
+(15,@GOSSIP_ID,5,0,2,25,0,10658,0,0,1,0,0,'','Show option if player doesn''t have Elemental Leatherworking'),
+(15,@GOSSIP_ID,5,0,2,25,0,10660,0,0,1,0,0,'','Show option if player doesn''t have Tribal Leatherworking'),
+(15,@GOSSIP_ID,5,0,3,7,0,165,225,0,0,0,0,'','Show option if player has leatherworking'),
+(15,@GOSSIP_ID,5,0,3,8,0,5146,0,0,0,0,0,'','Show option if player has rewarded Elemental Leatherworking [Horde]'),
+(15,@GOSSIP_ID,5,0,3,25,0,10656,0,0,1,0,0,'','Show option if player doesn''t have Dragonscale Leatherworking'),
+(15,@GOSSIP_ID,5,0,3,25,0,10658,0,0,1,0,0,'','Show option if player doesn''t have Elemental Leatherworking'),
+(15,@GOSSIP_ID,5,0,3,25,0,10660,0,0,1,0,0,'','Show option if player doesn''t have Tribal Leatherworking'),
+(15,@GOSSIP_ID,5,0,4,7,0,165,225,0,0,0,0,'','Show option if player has leatherworking'),
+(15,@GOSSIP_ID,5,0,4,8,0,5143,0,0,0,0,0,'','Show option if player has rewarded Tribal Leatherworking [Alliance]'),
+(15,@GOSSIP_ID,5,0,4,25,0,10656,0,0,1,0,0,'','Show option if player doesn''t have Dragonscale Leatherworking'),
+(15,@GOSSIP_ID,5,0,4,25,0,10658,0,0,1,0,0,'','Show option if player doesn''t have Elemental Leatherworking'),
+(15,@GOSSIP_ID,5,0,4,25,0,10660,0,0,1,0,0,'','Show option if player doesn''t have Tribal Leatherworking'),
+(15,@GOSSIP_ID,5,0,5,7,0,165,225,0,0,0,0,'','Show option if player has leatherworking'),
+(15,@GOSSIP_ID,5,0,5,8,0,5148,0,0,0,0,0,'','Show option if player has rewarded Tribal Leatherworking [Horde]'),
+(15,@GOSSIP_ID,5,0,5,25,0,10656,0,0,1,0,0,'','Show option if player doesn''t have Dragonscale Leatherworking'),
+(15,@GOSSIP_ID,5,0,5,25,0,10658,0,0,1,0,0,'','Show option if player doesn''t have Elemental Leatherworking'),
+(15,@GOSSIP_ID,5,0,5,25,0,10660,0,0,1,0,0,'','Show option if player doesn''t have Tribal Leatherworking'),
+(15,@GOSSIP_ID,6,0,0,7,0,165,225,0,0,0,0,'','Show option if player has leatherworking'),
+(15,@GOSSIP_ID,6,0,0,8,0,5141,0,0,0,0,0,'','Show option if player has rewarded Dragonscale Leatherworking [Alliance]'),
+(15,@GOSSIP_ID,6,0,0,25,0,10656,0,0,1,0,0,'','Show option if player doesn''t have Dragonscale Leatherworking'),
+(15,@GOSSIP_ID,6,0,0,25,0,10658,0,0,1,0,0,'','Show option if player doesn''t have Elemental Leatherworking'),
+(15,@GOSSIP_ID,6,0,0,25,0,10660,0,0,1,0,0,'','Show option if player doesn''t have Tribal Leatherworking'),
+(15,@GOSSIP_ID,6,0,1,7,0,165,225,0,0,0,0,'','Show option if player has leatherworking'),
+(15,@GOSSIP_ID,6,0,1,8,0,5145,0,0,0,0,0,'','Show option if player has rewarded Dragonscale Leatherworking [Horde]'),
+(15,@GOSSIP_ID,6,0,1,25,0,10656,0,0,1,0,0,'','Show option if player doesn''t have Dragonscale Leatherworking'),
+(15,@GOSSIP_ID,6,0,1,25,0,10658,0,0,1,0,0,'','Show option if player doesn''t have Elemental Leatherworking'),
+(15,@GOSSIP_ID,6,0,1,25,0,10660,0,0,1,0,0,'','Show option if player doesn''t have Tribal Leatherworking'),
+(15,@GOSSIP_ID,6,0,2,7,0,165,225,0,0,0,0,'','Show option if player has leatherworking'),
+(15,@GOSSIP_ID,6,0,2,8,0,5144,0,0,0,0,0,'','Show option if player has rewarded Elemental Leatherworking [Alliance]'),
+(15,@GOSSIP_ID,6,0,2,25,0,10656,0,0,1,0,0,'','Show option if player doesn''t have Dragonscale Leatherworking'),
+(15,@GOSSIP_ID,6,0,2,25,0,10658,0,0,1,0,0,'','Show option if player doesn''t have Elemental Leatherworking'),
+(15,@GOSSIP_ID,6,0,2,25,0,10660,0,0,1,0,0,'','Show option if player doesn''t have Tribal Leatherworking'),
+(15,@GOSSIP_ID,6,0,3,7,0,165,225,0,0,0,0,'','Show option if player has leatherworking'),
+(15,@GOSSIP_ID,6,0,3,8,0,5146,0,0,0,0,0,'','Show option if player has rewarded Elemental Leatherworking [Horde]'),
+(15,@GOSSIP_ID,6,0,3,25,0,10656,0,0,1,0,0,'','Show option if player doesn''t have Dragonscale Leatherworking'),
+(15,@GOSSIP_ID,6,0,3,25,0,10658,0,0,1,0,0,'','Show option if player doesn''t have Elemental Leatherworking'),
+(15,@GOSSIP_ID,6,0,3,25,0,10660,0,0,1,0,0,'','Show option if player doesn''t have Tribal Leatherworking'),
+(15,@GOSSIP_ID,6,0,4,7,0,165,225,0,0,0,0,'','Show option if player has leatherworking'),
+(15,@GOSSIP_ID,6,0,4,8,0,5143,0,0,0,0,0,'','Show option if player has rewarded Tribal Leatherworking [Alliance]'),
+(15,@GOSSIP_ID,6,0,4,25,0,10656,0,0,1,0,0,'','Show option if player doesn''t have Dragonscale Leatherworking'),
+(15,@GOSSIP_ID,6,0,4,25,0,10658,0,0,1,0,0,'','Show option if player doesn''t have Elemental Leatherworking'),
+(15,@GOSSIP_ID,6,0,4,25,0,10660,0,0,1,0,0,'','Show option if player doesn''t have Tribal Leatherworking'),
+(15,@GOSSIP_ID,6,0,5,7,0,165,225,0,0,0,0,'','Show option if player has leatherworking'),
+(15,@GOSSIP_ID,6,0,5,8,0,5148,0,0,0,0,0,'','Show option if player has rewarded Tribal Leatherworking [Horde]'),
+(15,@GOSSIP_ID,6,0,5,25,0,10656,0,0,1,0,0,'','Show option if player doesn''t have Dragonscale Leatherworking'),
+(15,@GOSSIP_ID,6,0,5,25,0,10658,0,0,1,0,0,'','Show option if player doesn''t have Elemental Leatherworking'),
+(15,@GOSSIP_ID,6,0,5,25,0,10660,0,0,1,0,0,'','Show option if player doesn''t have Tribal Leatherworking');
diff --git a/src/server/scripts/World/npc_professions.cpp b/src/server/scripts/World/npc_professions.cpp
index 4dca55d..8e58def 100644
--- a/src/server/scripts/World/npc_professions.cpp
+++ b/src/server/scripts/World/npc_professions.cpp
@@ -19,26 +19,25 @@
/* ScriptData
SDName: Npc_Professions
SD%Complete: 80
-SDComment: Provides learn/unlearn/relearn-options for professions. Not supported: Unlearn engineering, re-learn engineering, re-learn leatherworking.
-SDCategory: NPCs
+SDComment: Provides learn/unlearn/relearn-options for professions.
+SDCategory: NPCs/GOBs
EndScriptData */
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
+#include "GameObjectAI.h"
#include "Player.h"
#include "SpellInfo.h"
#include "WorldSession.h"
/*
A few notes for future developement:
-- A full implementation of gossip for GO's is required. They must have the same scripting capabilities as creatures. Basically,
-there is no difference here (except that default text is chosen with `gameobject_template`.`data3` (for GO type2, different dataN for a few others)
- It's possible blacksmithing still require some tweaks and adjustments due to the way we _have_ to use reputation.
*/
/*###
-# to be removed from here (->ncp_text). This is data for database projects.
+# to be removed from here (->npc_text). This is data for database projects.
###*/
#define TALK_MUST_UNLEARN_WEAPON "You must forget your weapon type specialty before I can help you. Go to Everlook in Winterspring and seek help there."
@@ -153,6 +152,9 @@ enum ProfessionSpells
S_LEARN_GOBLIN = 20221,
S_LEARN_GNOMISH = 20220,
+ S_UNLEARN_GOBLIN = 68334,
+ S_UNLEARN_GNOMISH = 68333,
+
S_SPELLFIRE = 26797,
S_MOONCLOTH = 26798,
S_SHADOWEAVE = 26801,
@@ -376,6 +378,27 @@ void ProfessionUnlearnSpells(Player* player, uint32 type)
player->RemoveSpell(36075); // Wildfeather Leggings
player->RemoveSpell(36078); // Living Crystal Breastplate
break;
+ case S_UNLEARN_GOBLIN: // S_UNLEARN_GOBLIN
+ player->RemoveSpell(30565); // Foreman's Enchanted Helmet
+ player->RemoveSpell(30566); // Foreman's Reinforced Helmet
+ player->RemoveSpell(30563); // Goblin Rocket Launcher
+ player->RemoveSpell(56514); // Global Thermal Sapper Charge
+ player->RemoveSpell(36954); // Dimensional Ripper - Area 52
+ player->RemoveSpell(23486); // Dimensional Ripper - Everlook
+ player->RemoveSpell(23078); // Goblin Jumper Cables XL
+ player->RemoveSpell(72952); // Shatter Rounds
+ break;
+ case S_UNLEARN_GNOMISH: // S_UNLEARN_GNOMISH
+ player->RemoveSpell(30575); // Gnomish Battle Goggles
+ player->RemoveSpell(30574); // Gnomish Power Goggles
+ player->RemoveSpell(56473); // Gnomish X-Ray Specs
+ player->RemoveSpell(30569); // Gnomish Poultryizer
+ player->RemoveSpell(30563); // Ultrasafe Transporter - Toshley's Station
+ player->RemoveSpell(23489); // Ultrasafe Transporter - Gadgetzan
+ player->RemoveSpell(23129); // World Enlarger
+ player->RemoveSpell(23096); // Gnomish Alarm-o-Bot
+ player->RemoveSpell(72953); // Iceblade Arrow
+ break;
case S_UNLEARN_SPELLFIRE: // S_UNLEARN_SPELLFIRE
player->RemoveSpell(26752); // Spellfire Belt
player->RemoveSpell(26753); // Spellfire Gloves
@@ -923,6 +946,72 @@ public:
}
};
+// Object ID - 177226
+// Book "Soothsaying for dummies"
+enum SoothsayingForDummies
+{
+ GOSSIP_ID = 7058,
+ OPTION_UNLEARN_GNOMISH = 0,
+ OPTION_UNLEARN_GOBLIN = 1,
+ OPTION_LEARN_GNOMISH = 2,
+ OPTION_LEARN_GOBLIN = 3,
+ OPTION_LEARN_DRAGON = 4,
+ OPTION_LEARN_ELEMENTAL = 5,
+ OPTION_LEARN_TRIBAL = 6
+};
+
+class go_soothsaying_for_dummies : public GameObjectScript
+{
+ public:
+ go_soothsaying_for_dummies() : GameObjectScript("go_soothsaying_for_dummies") { }
+
+ struct go_soothsaying_for_dummiesAI : public GameObjectAI
+ {
+ go_soothsaying_for_dummiesAI(GameObject* go) : GameObjectAI(go) { }
+
+ bool GossipSelect(Player* player, uint32 menuId, uint32 gossipListId) override
+ {
+ if (menuId != GOSSIP_ID)
+ return false;
+
+ switch (gossipListId)
+ {
+ case OPTION_UNLEARN_GNOMISH:
+ ProcessUnlearnAction(player, nullptr, S_UNLEARN_GNOMISH, 0, 0); // cost is handled by gossip code
+ break;
+ case OPTION_UNLEARN_GOBLIN:
+ ProcessUnlearnAction(player, nullptr, S_UNLEARN_GOBLIN, 0, 0);
+ break;
+ case OPTION_LEARN_GNOMISH:
+ player->CastSpell(player, S_LEARN_GNOMISH, true);
+ break;
+ case OPTION_LEARN_GOBLIN:
+ player->CastSpell(player, S_LEARN_GOBLIN, true);
+ break;
+ case OPTION_LEARN_DRAGON:
+ player->CastSpell(player, S_LEARN_DRAGON, true);
+ break;
+ case OPTION_LEARN_ELEMENTAL:
+ player->CastSpell(player, S_LEARN_ELEMENTAL, true);
+ break;
+ case OPTION_LEARN_TRIBAL:
+ player->CastSpell(player, S_LEARN_TRIBAL, true);
+ break;
+ default:
+ return false;
+ }
+
+ player->CLOSE_GOSSIP_MENU();
+ return true; // prevent further processing
+ }
+ };
+
+ GameObjectAI* GetAI(GameObject* go) const override
+ {
+ return new go_soothsaying_for_dummiesAI(go);
+ }
+};
+
/*###
# start menues leatherworking
###*/
@@ -1212,6 +1301,7 @@ void AddSC_npc_professions()
new npc_prof_alchemy();
new npc_prof_blacksmith();
new npc_engineering_tele_trinket();
+ new go_soothsaying_for_dummies();
new npc_prof_leather();
new npc_prof_tailor();
}
--
1.9.5.msysgit.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment