From 8376f73bcb6bced6f44dbe04f2acfddf9013e9c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E4=BD=A9=E8=8C=B9?= Date: Tue, 21 Jun 2022 17:48:31 -0600 Subject: [PATCH] Profession fixes, some phasing improvements --- sql/world/base/ipp_aware_npcs.sql | 2 + sql/world/base/professions.sql | 344 +++++++++++++++++++++- sql/world/base/quest_missing_diplomat.sql | 13 +- sql/world/base/quest_the_masquerade.sql | 15 +- sql/world/base/quest_xp_table.sql | 2 +- sql/world/base/zone_orgrimmar.sql | 3 + src/IndividualProgression.cpp | 27 ++ 7 files changed, 394 insertions(+), 12 deletions(-) diff --git a/sql/world/base/ipp_aware_npcs.sql b/sql/world/base/ipp_aware_npcs.sql index 0d9ec83..0910d82 100644 --- a/sql/world/base/ipp_aware_npcs.sql +++ b/sql/world/base/ipp_aware_npcs.sql @@ -2,4 +2,6 @@ UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_tbc' WHERE `entry` IN (16 UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_aq' WHERE `entry` IN (15293,15270,15306,15191,15181,15182,15306,15599,15282,15183,15194,15176,15270,16091,15701,15612,15613,15609,15540,15704,15693,15431,15903,15610,15180, 15499); +UPDATE `creature_template` SET `ScriptName` = 'npc_ipp_wotlk' WHERE `entry` IN (29611); + UPDATE `gameobject_template` SET `ScriptName` = 'gobject_ipp_tbc' WHERE `entry` IN (195141); \ No newline at end of file diff --git a/sql/world/base/professions.sql b/sql/world/base/professions.sql index 3caacad..75b6afd 100644 --- a/sql/world/base/professions.sql +++ b/sql/world/base/professions.sql @@ -131,6 +131,19 @@ INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSki INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (300001, 7837, 1000, 171, 130, 0); INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (300001, 7845, 3000, 171, 140, 0); +-- Expert Alchemist +DELETE FROM `npc_trainer` WHERE `ID`=300002; +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (300002, 3448, 5000, 171, 165, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (300002, 3450, 6000, 171, 175, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (300002, 3452, 5000, 171, 160, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (300002, 3465, 5000, 171, 125, 20, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (300002, 7181, 5000, 171, 155, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (300002, 11449, 6500, 171, 185, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (300002, 11450, 7500, 171, 195, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (300002, 53042, 10000, 171, 50, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (300002, 63732, 2000, 171, 135, 0, 0); + + -- Apprentice Blacksmith DELETE FROM `npc_trainer` WHERE `ID`=310000; INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (310000, 2020, 10, 0, 0, 5); @@ -533,7 +546,336 @@ INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSki INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (450000, 33391, 9000000, 762, 75, 60); -- First Aid -DELETE FROM `npc_trainer` WHERE `entry`=12939; +DELETE FROM `npc_trainer` WHERE `ID`=12939; INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (12939, 10843, 0, 129, 240, 0, 0); INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (12939, 18631, 0, 129, 260, 35, 0); INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (12939, 18632, 0, 129, 290, 35, 0); +UPDATE `creature_template` SET `npcflag` = `npcflag` | 16 | 64, `trainer_type` = 2 WHERE `entry` = 12939; + +DELETE FROM `npc_trainer` WHERE `ID`=12920; +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (12920, 10843, 0, 129, 240, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (12920, 18631, 0, 129, 260, 35, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (12920, 18632, 0, 129, 290, 35, 0); +UPDATE `creature_template` SET `npcflag` = `npcflag` | 16 | 64, `trainer_type` = 2 WHERE `entry` = 12920; + + +-- Blacksmith Trainers +DELETE FROM `npc_trainer` WHERE `ID` IN (1241, 3136, 3557, 6299, 55356, 4596, 4258, 16583, 16669, 16724, 16823, 17245, 19341, 26564, 26904, 26952, 26981, 26988, 27034, 28694, 29924, 33591, 33609, 33631, 33675); +-- Journeyman Blacksmith +UPDATE `creature_template` SET `subname` = 'Journeyman Blacksmith' WHERE `entry`=16583; +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (1241, -310000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (3557, -310000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (6299, -310000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16583, -310000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (17245, -310000, 0, 0, 0, 0); + +-- Expert Blacksmith +UPDATE `creature_template` SET `subname` = 'Expert Blacksmith' WHERE `entry`=16669; +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (3136, -310000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (3136, -310001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4596, -310000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4596, -310001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16669, -310000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16669, -310001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16724, -310000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16724, -310001, 0, 0, 0, 0); + +-- Artisan Blacksmith +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4258, -310000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4258, -310001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4258, -310002, 0, 0, 0, 0); + +-- Master Blacksmithing Trainer +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (16583, -201005, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (16823, -201005, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (19341, -201005, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (33609, -201005, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (33631, -201005, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (33675, -201005, 0, 0, 0, 0, 0); + +-- Grandmaster Blacksmithing Trainer +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (26564, -201006, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (26904, -201006, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (26952, -201006, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (26981, -201006, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (26988, -201006, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (27034, -201006, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (28694, -201006, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (29924, -201006, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (33591, -201006, 0, 0, 0, 0, 0); + + + +-- Alchemy Trainers +DELETE FROM `npc_trainer` WHERE `ID` IN (1470, 2391, 2837, 3603, 3964, 4160, 4611, 4900, 5177, 16161, 16588, 16642, 16723, 18802, 19052, 27023, 27029, 33608, 33630, 33674); +-- Journeyman Alchemy +UPDATE `creature_template` SET `subname` = 'Journeyman Alchemist' WHERE `entry`=16161; +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (1470, -300000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (3603, -300000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16161, -300000, 0, 0, 0, 0); + +-- Expert Alchemy +UPDATE `creature_template` SET `subname` = 'Expert Alchemist' WHERE `entry` IN (16642, 16723); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (2391, -300000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (2391, -300001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (2837, -300000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (2837, -300001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (3964, -300000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (3964, -300001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4900, -300000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4900, -300001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (5177, -300000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (5177, -300001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16642, -300000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16642, -300001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16723, -300000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16723, -300001, 0, 0, 0, 0); + +-- Artisan Alchemy +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4160, -300000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4160, -300001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4160, -300002, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4611, -300000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4611, -300001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4611, -300002, 0, 0, 0, 0); + +-- Master Alchemy Trainer +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (16588, -201002, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (18802, -201002, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (19052, -201002, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (27023, -201002, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (27029, -201002, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (33608, -201002, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (33630, -201002, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (33674, -201002, 0, 0, 0, 0, 0); + +-- Grandmaster Alchemy Trainer +-- Grandmaster Alchemy Trainers already have their own unique template + + +-- Enchanting Trainers +DELETE FROM `npc_trainer` WHERE `ID` IN (3606, 4213, 4616, 5157, 7949, 11074, 16160, 16633, 16725, 18753, 18773, 19251, 19252, 19540, 33610, 33633, 33676); +-- Journeyman Enchanting +UPDATE `creature_template` SET `subname` = 'Journeyman Enchanter' WHERE `entry`=16160; +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (3606, -330000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16160, -330000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (19251, -330000, 0, 0, 0, 0); + +-- Expert Enchanting +UPDATE `creature_template` SET `subname` = 'Expert Enchanter' WHERE `entry`=16633; +UPDATE `creature_template` SET `subname` = 'Expert Enchanter' WHERE `entry`=16725; +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4213, -330000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4213, -330001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4616, -330000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4616, -330001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (5157, -330000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (5157, -330001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (7949, -330000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (7949, -330001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16633, -330000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16633, -330001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16725, -330000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16725, -330001, 0, 0, 0, 0); + +-- Artisan Enchanting +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (11074, -330000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (11074, -330001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (11074, -330002, 0, 0, 0, 0); + +-- Master Enchanting Trainer +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (18753, -201010, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (18773, -201010, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (19252, -201010, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (19540, -201010, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (33610, -201010, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (33633, -201010, 0, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`, `ReqSpell`) VALUES (33676, -201010, 0, 0, 0, 0, 0); + +-- Grandmaster Enchanting Trainer +-- Grandmaster Enchanting Trainers already have their own unique template + + +-- Engineering Trainers +DELETE FROM `npc_trainer` WHERE `ID` IN (1676, 1702, 3290, 5174, 11031, 11037, 16667, 16726, 17222, 25277, 26907, 26955, 26991, 28697, 33586, 33611, 33634, 33677); +-- Journeyman Engineering +UPDATE `creature_template` SET `subname` = 'Journeyman Engineer' WHERE `entry`=17222; +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (1702, -340000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (3290, -340000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (11037, -340000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (17222, -340000, 0, 0, 0, 0); + +-- Expert Engineering +UPDATE `creature_template` SET `subname` = 'Expert Engineer' WHERE `entry`=1676; +UPDATE `creature_template` SET `subname` = 'Expert Engineer' WHERE `entry`=16667; +UPDATE `creature_template` SET `subname` = 'Expert Engineer' WHERE `entry`=16726; +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (1676, -340000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (1676, -340001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (11031, -340000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (11031, -340001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16667, -340000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16667, -340001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16726, -340000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16726, -340001, 0, 0, 0, 0); + +-- Artisan Engineering +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (5174, -340000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (5174, -340001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (5174, -340002, 0, 0, 0, 0); + +-- Master Engineering Trainer +DELETE FROM `npc_trainer` WHERE `ID`=17634 AND `SpellID`=-201012; +DELETE FROM `npc_trainer` WHERE `ID`=17637 AND `SpellID`=-201012; +DELETE FROM `npc_trainer` WHERE `ID`=18752 AND `SpellID`=-201012; +DELETE FROM `npc_trainer` WHERE `ID`=18775 AND `SpellID`=-201012; +DELETE FROM `npc_trainer` WHERE `ID`=19576 AND `SpellID`=-201012; +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (33611, -201013, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (33634, -201013, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (33677, -201013, 0, 0, 0, 0); + + +-- Grandmaster Engineering Trainer +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (25277, -201014, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (26907, -201014, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (26955, -201014, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (26991, -201014, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (28697, -201014, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (33586, -201014, 0, 0, 0, 0); + + + +-- Tailoring Trainers +DELETE FROM `npc_trainer` WHERE `ID` IN (2627, 3523, 4159, 4193, 4576, 5153, 16366, 16640, 16729, 17487, 18749, 18772, 26914, 26964, 26969, 27001, 28699, 33580, 33613, 33636, 33684); + +-- Journeyman Tailoring +UPDATE `creature_template` SET `subname` = 'Journeyman Tailor' WHERE `entry`=16366; +UPDATE `creature_template` SET `subname` = 'Journeyman Tailor' WHERE `entry`=17487; +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (3523, -410000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4193, -410000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16366, -410000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (17487, -410000, 0, 0, 0, 0); + +-- Expert Tailoring +UPDATE `creature_template` SET `subname` = 'Expert Tailor' WHERE `entry`=16640; +UPDATE `creature_template` SET `subname` = 'Expert Tailor' WHERE `entry`=16729; +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (2627, -410000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (2627, -410001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4159, -410000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4159, -410001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (5153, -410000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (5153, -410001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16640, -410000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16640, -410001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16729, -410000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16729, -410001, 0, 0, 0, 0); + +-- Artisan Tailoring +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4576, -410000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4576, -410001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4576, -410002, 0, 0, 0, 0); + +-- Master Tailoring Trainer +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (18749, -201040, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (18772, -201040, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (33613, -201040, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (33636, -201040, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (33684, -201040, 0, 0, 0, 0); + +-- Grandmaster Tailoring Trainer +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (26914, -201041, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (26964, -201041, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (26969, -201041, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (27001, -201041, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (28699, -201041, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (33580, -201041, 0, 0, 0, 0); + + + + +-- Leatherworking Trainers +DELETE FROM `npc_trainer` WHERE `ID` IN (1385, 3605, 3967, 4212, 4588, 5127, 8153, 16278, 16688, 16728, 17442, 18754, 18771, 19187, 21087, 26996, 33612, 33635, 33681); + +-- Journeyman Leatherworking +UPDATE `creature_template` SET `subname` = 'Journeyman Leatherworker' WHERE `entry`=16278; +UPDATE `creature_template` SET `subname` = 'Journeyman Leatherworker' WHERE `entry`=17442; +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (3605, -380000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16278, -380000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (17442, -380000, 0, 0, 0, 0); + +-- Expert Leatherworking +UPDATE `creature_template` SET `subname` = 'Expert Leatherworker' WHERE `entry`=16688; +UPDATE `creature_template` SET `subname` = 'Expert Leatherworker' WHERE `entry`=16728; +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (1385, -380000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (1385, -380001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (3967, -380000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (3967, -380001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4588, -380000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4588, -380001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (5127, -380000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (5127, -380001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (8153, -380000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (8153, -380001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16688, -380000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16688, -380001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16728, -380000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (16728, -380001, 0, 0, 0, 0); + +-- Artisan Leatherworking +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4212, -380000, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4212, -380001, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (4212, -380002, 0, 0, 0, 0); + +-- Master Leatherworking Trainer +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (18754, -201028, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (18771, -201028, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (19187, -201028, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (21087, -201028, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (33612, -201028, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (33635, -201028, 0, 0, 0, 0); +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (33681, -201028, 0, 0, 0, 0); + +-- Grandmaster Leatherworking Trainer +INSERT INTO `npc_trainer` (`ID`, `SpellID`, `MoneyCost`, `ReqSkillLine`, `ReqSkillRank`, `ReqLevel`) VALUES (26996, -201029, 0, 0, 0, 0); + + + + +-- Optional - delete TBC trainers added in WotLK 3.1 +DELETE FROM creature WHERE `id1` IN (33676, + 33680, + 33682, + 33674, + 33678, + 33675, + 33677, + 33683, + 33684, + 33681, + 33640, + 33637, + 33633, + 33631, + 33634, + 33635, + 33636, + 33641, + 33608, + 33609, + 33610, + 33611, + 33612, + 33613, + 33614, + 33615, + 33616, + 33617, + 33618, + 33619, + 33621, + 33623, + 33630, + 33639, + 35099, + 35101); + +-- Delete added riding trainers +DELETE FROM creature WHERE `id1` IN (35093, 35100); \ No newline at end of file diff --git a/sql/world/base/quest_missing_diplomat.sql b/sql/world/base/quest_missing_diplomat.sql index 54281d0..dfde12d 100644 --- a/sql/world/base/quest_missing_diplomat.sql +++ b/sql/world/base/quest_missing_diplomat.sql @@ -14,12 +14,19 @@ DELETE FROM creature_questender WHERE id = 4968 and quest = 11223; INSERT INTO creature_questender(id, quest) VALUES (1748, 11222); INSERT INTO creature_questender(id, quest) VALUES (4968, 11223); -# UPDATE creature_questender SET id=1748 WHERE quest=396; +DELETE FROM creature_questender WHERE quest=396; +INSERT INTO creature_questender (`id`, `quest`) VALUES +(1749, 396), # Lady Prestor is the Vanilla ender for this quest +(29611, 396); # Also allow King Wrynn to complete the quest in person if he is back + UPDATE creature_questender SET id=1748 WHERE quest=6186; UPDATE creature_questender SET id=1748 WHERE quest=6187; UPDATE creature_questender SET id=1748 WHERE quest=7781; -# UPDATE creature_queststarter SET id=1748 WHERE quest=396; -# UPDATE creature_queststarter SET id=1748 WHERE quest=6182; +DELETE FROM `creature_queststarter` WHERE `quest`=6182; +INSERT INTO `creature_queststarter` (`id`, `quest`) VALUES +(1748, 6182), # Bolver is Vanilla starter for this quest +(29611, 6182); # Also allow King Wrynn to end it in person + UPDATE creature_queststarter SET id=1748 WHERE quest=6187; # UPDATE creature_queststarter SET id=1748 WHERE quest=7782; diff --git a/sql/world/base/quest_the_masquerade.sql b/sql/world/base/quest_the_masquerade.sql index 18adf3b..9a47fa5 100644 --- a/sql/world/base/quest_the_masquerade.sql +++ b/sql/world/base/quest_the_masquerade.sql @@ -258,20 +258,21 @@ DELETE FROM `creature` WHERE `guid` = 500800 AND `id1` = 1749; INSERT INTO `creature` (`guid`, `id1`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`) VALUES (500800, 1749, 0, 0, 0, 1, 1, 1, -8435, 335.559, 122.163, 2.56468, 300, 0, 3497, 2568, 0, 0, 0, 0, '', 0); -DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 30 AND `SourceEntry` = 1749; -INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES -(30, 0, 1749, 0, 0, 47, 0, 4182, 64, 0, 0, 0, 0, '', 'Lady Katrana Prestor - Visibility - Require quest Dragonkin Menace rewarded.'), -(30, 0, 1749, 0, 0, 47, 0, 6403, 64, 0, 1, 0, 0, '', 'Lady Katrana Prestor - Visibility - Require quest The Great Masquerade NOT rewarded.'); +# DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 30 AND `SourceEntry` = 1749; +# INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +# (30, 0, 1749, 0, 0, 47, 0, 4182, 64, 0, 0, 0, 0, '', 'Lady Katrana Prestor - Visibility - Require quest Dragonkin Menace rewarded.'), +# (30, 0, 1749, 0, 0, 47, 0, 6403, 64, 0, 1, 0, 0, '', 'Lady Katrana Prestor - Visibility - Require quest The Great Masquerade NOT rewarded.'); UPDATE `item_template` SET `startquest` = 4264 WHERE `entry` = 11446; -- A crumpled up note +-- Spawn Bolvar DELETE FROM `creature` WHERE `guid` = 500801 AND `id1` = 1748; INSERT INTO `creature` (`guid`, `id1`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`) VALUES (500801, 1748, 0, 0, 0, 1, 1, 1, -8445.01, 329.85, 122.163, 2.12562, 300, 0, 1055700, 67740, 0, 0, 0, 0, '', 0); -DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 30 AND `SourceEntry` = 1748; -INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES -(30, 0, 1748, 0, 0, 47, 0, 4182, 64, 0, 0, 0, 0, '', 'Highlord Bolvar Fordring - Visibility - Require quest Dragonkin Menace rewarded.'); +# DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 30 AND `SourceEntry` = 1748; +# INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +# (30, 0, 1748, 0, 0, 47, 0, 4182, 64, 0, 0, 0, 0, '', 'Highlord Bolvar Fordring - Visibility - Require quest Dragonkin Menace rewarded.'); DELETE FROM `script_waypoint` WHERE `entry` = 9023; INSERT INTO `script_waypoint` (`entry`, `pointid`, `location_x`, `location_y`, `location_z`, `waittime`, `point_comment`) VALUES diff --git a/sql/world/base/quest_xp_table.sql b/sql/world/base/quest_xp_table.sql index 8d818a8..adb4aff 100644 --- a/sql/world/base/quest_xp_table.sql +++ b/sql/world/base/quest_xp_table.sql @@ -3,7 +3,7 @@ CREATE TABLE IF NOT EXISTS `custom_quest_xp` ( `entry` int(9) unsigned NOT NULL, `xpValue` int(9) unsigned NOT NULL, PRIMARY KEY (`entry`) -) ENGINE=InnoDB DEFAULT CHARSET=latin0; +) ENGINE=InnoDB; INSERT INTO `custom_quest_xp` (`entry`, `xpValue`) VALUES diff --git a/sql/world/base/zone_orgrimmar.sql b/sql/world/base/zone_orgrimmar.sql index da43e30..0f203c4 100644 --- a/sql/world/base/zone_orgrimmar.sql +++ b/sql/world/base/zone_orgrimmar.sql @@ -618,3 +618,6 @@ INSERT INTO `npc_vendor` (`entry`, `item`, `ExtendedCost`) VALUES (14581, 23466, INSERT INTO `npc_vendor` (`entry`, `item`, `ExtendedCost`) VALUES (14581, 23467, 2291); INSERT INTO `npc_vendor` (`entry`, `item`, `ExtendedCost`) VALUES (14581, 23468, 2291); INSERT INTO `npc_vendor` (`entry`, `item`, `ExtendedCost`) VALUES (14581, 23469, 2291); + +-- Nogg Quest Flags fix +UPDATE `creature_template` SET `npcflag` = `npcflag` | 2 WHERE `entry` = 3412; diff --git a/src/IndividualProgression.cpp b/src/IndividualProgression.cpp index 98e4c0b..76567f9 100644 --- a/src/IndividualProgression.cpp +++ b/src/IndividualProgression.cpp @@ -85,6 +85,32 @@ public: } }; +class npc_ipp_wotlk : public CreatureScript +{ +public: + npc_ipp_wotlk() : CreatureScript("npc_ipp_wotlk") { } + + struct npc_ipp_wotlkAI: ScriptedAI + { + npc_ipp_wotlkAI(Creature* creature) : ScriptedAI(creature) { }; + + bool CanBeSeen(Player const* player) override + { + if (player->IsGameMaster() || !enabled) + { + return true; + } + Player* target = ObjectAccessor::FindConnectedPlayer(player->GetGUID()); + return target->GetPlayerSetting("mod-individual-progression", SETTING_PROGRESSION_STATE).value >= PROGRESSION_TBC_TIER_5; + } + }; + + CreatureAI* GetAI(Creature* creature) const override + { + return new npc_ipp_wotlkAI(creature); + } +}; + class npc_ipp_aq : public CreatureScript { public: @@ -555,6 +581,7 @@ void AddSC_mod_individual_progression() new IndividualPlayerProgression_PetScript(); new npc_ipp_aq(); new npc_ipp_tbc(); + new npc_ipp_wotlk(); new gobject_ipp_tbc(); new gobject_ipp_wotlk(); }