1. enum Enchants
  2. {
  3. ENCHANT_WEP_BERSERKING = 3789,
  4. ENCHANT_WEP_BLADE_WARD = 3869,
  5. ENCHANT_WEP_BLOOD_DRAINING = 3870,
  6. ENCHANT_WEP_ACCURACY = 3788,
  7. ENCHANT_WEP_AGILITY_1H = 1103,
  8. ENCHANT_WEP_SPIRIT = 3844,
  9. ENCHANT_WEP_BATTLEMASTER = 2675,
  10. ENCHANT_WEP_BLACK_MAGIC = 3790,
  11. ENCHANT_WEP_ICEBREAKER = 3239,
  12. ENCHANT_WEP_LIFEWARD = 3241,
  13. ENCHANT_WEP_MIGHTY_SPELL_POWER = 3834, // One-hand
  14. ENCHANT_WEP_EXECUTIONER = 3225,
  15. ENCHANT_WEP_POTENCY = 3833,
  16. ENCHANT_WEP_TITANGUARD = 3851,
  17. ENCHANT_2WEP_MASSACRE = 3827,
  18. ENCHANT_2WEP_SCOURGEBANE = 3247,
  19. ENCHANT_2WEP_GIANT_SLAYER = 3251,
  20. ENCHANT_2WEP_GREATER_SPELL_POWER = 3854,
  21. ENCHANT_2WEP_AGILITY = 2670,
  22. ENCHANT_2WEP_MONGOOSE = 2673,
  23. ENCHANT_SHIELD_DEFENSE = 1952,
  24. ENCHANT_SHIELD_INTELLECT = 1128,
  25. ENCHANT_SHIELD_RESILIENCE = 3229,
  26. ENCHANT_SHIELD_BLOCK = 2655,
  27. ENCHANT_SHIELD_STAMINA = 1071,
  28. ENCHANT_SHIELD_TOUGHSHIELD = 2653,
  29. ENCHANT_SHIELD_TITANIUM_PLATING = 3849,
  30. ENCHANT_HEAD_BLISSFUL_MENDING = 3819,
  31. ENCHANT_HEAD_BURNING_MYSTERIES = 3820,
  32. ENCHANT_HEAD_DOMINANCE = 3796,
  33. ENCHANT_HEAD_SAVAGE_GLADIATOR = 3842,
  34. ENCHANT_HEAD_STALWART_PROTECTOR = 3818,
  35. ENCHANT_HEAD_TORMENT = 3817,
  36. ENCHANT_HEAD_TRIUMPH = 3795,
  37. ENCHANT_HEAD_ECLIPSED_MOON = 3815,
  38. ENCHANT_HEAD_FLAME_SOUL = 3816,
  39. ENCHANT_HEAD_FLEEING_SHADOW = 3814,
  40. ENCHANT_HEAD_FROSTY_SOUL = 3812,
  41. ENCHANT_HEAD_TOXIC_WARDING = 3813,
  42. ENCHANT_SHOULDER_MASTERS_AXE = 3835,
  43. ENCHANT_SHOULDER_MASTERS_CRAG = 3836,
  44. ENCHANT_SHOULDER_MASTERS_PINNACLE = 3837,
  45. ENCHANT_SHOULDER_MASTERS_STORM = 3838,
  46. ENCHANT_SHOULDER_GREATER_AXE = 3808,
  47. ENCHANT_SHOULDER_GREATER_CRAG = 3809,
  48. ENCHANT_SHOULDER_GREATER_GLADIATOR = 3852,
  49. ENCHANT_SHOULDER_GREATER_PINNACLE = 3811,
  50. ENCHANT_SHOULDER_GREATER_STORM = 3810,
  51. ENCHANT_SHOULDER_DOMINANCE = 3794,
  52. ENCHANT_SHOULDER_TRIUMPH = 3793,
  53. ENCHANT_CLOAK_DARKGLOW_EMBROIDERY = 3728,
  54. ENCHANT_CLOAK_SWORDGUARD_EMBROIDERY = 3730,
  55. ENCHANT_CLOAK_LIGHTWEAVE_EMBROIDERY = 3722,
  56. ENCHANT_CLOAK_SPRINGY_ARACHNOWEAVE = 3859,
  57. ENCHANT_CLOAK_WISDOM = 3296,
  58. ENCHANT_CLOAK_TITANWEAVE = 1951,
  59. ENCHANT_CLOAK_SPELL_PIERCING = 3243,
  60. ENCHANT_CLOAK_SHADOW_ARMOR = 3256,
  61. ENCHANT_CLOAK_MIGHTY_ARMOR = 3294,
  62. ENCHANT_CLOAK_MAJOR_AGILITY = 1099,
  63. ENCHANT_CLOAK_GREATER_SPEED = 3831,
  64. ENCHANT_LEG_EARTHEN = 3853,
  65. ENCHANT_LEG_FROSTHIDE = 3822,
  66. ENCHANT_LEG_ICESCALE = 3823,
  67. ENCHANT_LEG_BRILLIANT_SPELLTHREAD = 3719,
  68. ENCHANT_LEG_SAPPHIRE_SPELLTHREAD = 3721,
  69. ENCHANT_LEG_DRAGONSCALE = 3331,
  70. ENCHANT_LEG_WYRMSCALE = 3332,
  71. ENCHANT_GLOVES_GREATER_BLASTING = 3249,
  72. ENCHANT_GLOVES_ARMSMAN = 3253,
  73. ENCHANT_GLOVES_CRUSHER = 1603,
  74. ENCHANT_GLOVES_AGILITY = 3222,
  75. ENCHANT_GLOVES_PRECISION = 3234,
  76. ENCHANT_GLOVES_EXPERTISE = 3231,
  77. ENCHANT_BRACERS_MAJOR_STAMINA = 3850,
  78. ENCHANT_BRACERS_SUPERIOR_SP = 2332,
  79. ENCHANT_BRACERS_GREATER_ASSUALT = 3845,
  80. ENCHANT_BRACERS_MAJOR_SPIRT = 1147,
  81. ENCHANT_BRACERS_EXPERTISE = 3231,
  82. ENCHANT_BRACERS_GREATER_STATS = 2661,
  83. ENCHANT_BRACERS_INTELLECT = 1119,
  84. ENCHANT_BRACERS_FURL_ARCANE = 3763,
  85. ENCHANT_BRACERS_FURL_FIRE = 3759,
  86. ENCHANT_BRACERS_FURL_FROST = 3760,
  87. ENCHANT_BRACERS_FURL_NATURE = 3762,
  88. ENCHANT_BRACERS_FURL_SHADOW = 3761,
  89. ENCHANT_BRACERS_FURL_ATTACK = 3756,
  90. ENCHANT_BRACERS_FURL_STAMINA = 3757,
  91. ENCHANT_BRACERS_FURL_SPELLPOWER = 3758,
  92. ENCHANT_CHEST_POWERFUL_STATS = 3832,
  93. ENCHANT_CHEST_SUPER_HEALTH = 3297,
  94. ENCHANT_CHEST_GREATER_MAINA_REST = 2381,
  95. ENCHANT_CHEST_EXCEPTIONAL_RESIL = 3245,
  96. ENCHANT_CHEST_GREATER_DEFENSE = 1953,
  97. ENCHANT_BOOTS_GREATER_ASSULT = 1597,
  98. ENCHANT_BOOTS_TUSKARS_VITLIATY = 3232,
  99. ENCHANT_BOOTS_SUPERIOR_AGILITY = 983,
  100. ENCHANT_BOOTS_GREATER_SPIRIT = 1147,
  101. ENCHANT_BOOTS_GREATER_VITALITY = 3244,
  102. ENCHANT_BOOTS_ICEWALKER = 3826,
  103. ENCHANT_BOOTS_GREATER_FORTITUDE = 1075,
  104. ENCHANT_BOOTS_NITRO_BOOTS = 3606,
  105. ENCHANT_BOOTS_PYRO_ROCKET = 3603,
  106. ENCHANT_BOOTS_HYPERSPEED = 3604,
  107. ENCHANT_BOOTS_ARMOR_WEBBING = 3860,
  108. ENCHANT_RING_ASSULT = 3839,
  109. ENCHANT_RING_GREATER_SP = 3840,
  110. ENCHANT_RING_STAMINA = 3791,
  111. };
  112. #include "ScriptPCH.h"
  113. void Enchant(Player* player, Item* item, uint32 enchantid)
  114. {
  115. if (!item)
  116. {
  117. player->GetSession()->SendNotification("You must first equip the item you are trying to enchant in order to enchant it!");
  118. return;
  119. }
  120. if (!enchantid)
  121. {
  122. player->GetSession()->SendNotification("Something went wrong in the code. It has been logged for developers and will be looked into, sorry for the inconvenience.");
  123. return;
  124. }
  125. item->ClearEnchantment(PERM_ENCHANTMENT_SLOT);
  126. item->SetEnchantment(PERM_ENCHANTMENT_SLOT, enchantid, 0, 0);
  127. player->GetSession()->SendNotification("|cff0000FF%s |cffFF0000succesfully enchanted!", item->GetTemplate()->Name1.c_str());
  128. }
  129. class npc_enchantment : public CreatureScript
  130. {
  131. public:
  132. npc_enchantment() : CreatureScript("npc_enchantment") { }
  133. bool OnGossipHello(Player* player, Creature* creature)
  134. {
  135. player->ADD_GOSSIP_ITEM(1, "[Welcome to the enchanting NPC!]", GOSSIP_SENDER_MAIN, 0);
  136. player->ADD_GOSSIP_ITEM(1, "[Enchant Weapon]", GOSSIP_SENDER_MAIN, 1);
  137. player->ADD_GOSSIP_ITEM(1, "[Enchant 2H Weapon]", GOSSIP_SENDER_MAIN, 2);
  138. player->ADD_GOSSIP_ITEM(1, "[Enchant Shield]", GOSSIP_SENDER_MAIN, 3);
  139. player->ADD_GOSSIP_ITEM(1, "[Enchant Head]", GOSSIP_SENDER_MAIN, 4);
  140. player->ADD_GOSSIP_ITEM(1, "[Enchant Shoulders]", GOSSIP_SENDER_MAIN, 5);
  141. player->ADD_GOSSIP_ITEM(1, "[Enchant Cloak]", GOSSIP_SENDER_MAIN, 6);
  142. player->ADD_GOSSIP_ITEM(1, "[Enchant Chest]", GOSSIP_SENDER_MAIN, 7);
  143. player->ADD_GOSSIP_ITEM(1, "[Enchant Bracers]", GOSSIP_SENDER_MAIN, 8);
  144. player->ADD_GOSSIP_ITEM(1, "[Enchant Gloves]", GOSSIP_SENDER_MAIN, 9);
  145. player->ADD_GOSSIP_ITEM(1, "[Enchant Legs]", GOSSIP_SENDER_MAIN, 10);
  146. player->ADD_GOSSIP_ITEM(1, "[Enchant Feet]", GOSSIP_SENDER_MAIN, 11);
  147. if (player->HasSkill(SKILL_ENCHANTING) && player->GetSkillValue(SKILL_ENCHANTING) == 450)
  148. player->ADD_GOSSIP_ITEM(1, "[Enchant Rings]", GOSSIP_SENDER_MAIN, 12);
  149. player->PlayerTalkClass->SendGossipMenu(100001, creature->GetGUID());
  150. return true;
  151. }
  152. bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
  153. {
  154. Item * item;
  155. player->PlayerTalkClass->ClearMenus();
  156. switch (action)
  157. {
  158. case 0: //Welcome message on click
  159. player->GetSession()->SendAreaTriggerMessage("|cffFF0000Hello there, I will be enchanting your gear!");
  160. {
  161. player->ADD_GOSSIP_ITEM(1, "[Welcome to the enchanting NPC!]", GOSSIP_SENDER_MAIN, 0);
  162. player->ADD_GOSSIP_ITEM(1, "[Enchant Weapon]", GOSSIP_SENDER_MAIN, 1);
  163. player->ADD_GOSSIP_ITEM(1, "[Enchant 2H Weapon]", GOSSIP_SENDER_MAIN, 2);
  164. player->ADD_GOSSIP_ITEM(1, "[Enchant Shield]", GOSSIP_SENDER_MAIN, 3);
  165. player->ADD_GOSSIP_ITEM(1, "[Enchant Head]", GOSSIP_SENDER_MAIN, 4);
  166. player->ADD_GOSSIP_ITEM(1, "[Enchant Shoulders]", GOSSIP_SENDER_MAIN, 5);
  167. player->ADD_GOSSIP_ITEM(1, "[Enchant Cloak-]", GOSSIP_SENDER_MAIN, 6);
  168. player->ADD_GOSSIP_ITEM(1, "[Enchant Chest]", GOSSIP_SENDER_MAIN, 7);
  169. player->ADD_GOSSIP_ITEM(1, "[Enchant Bracers]", GOSSIP_SENDER_MAIN, 8);
  170. player->ADD_GOSSIP_ITEM(1, "[Enchant Gloves]", GOSSIP_SENDER_MAIN, 9);
  171. player->ADD_GOSSIP_ITEM(1, "[Enchant Legs]", GOSSIP_SENDER_MAIN, 10);
  172. player->ADD_GOSSIP_ITEM(1, "[Enchant Feet]", GOSSIP_SENDER_MAIN, 11);
  173. if (player->HasSkill(SKILL_ENCHANTING) && player->GetSkillValue(SKILL_ENCHANTING) == 450)
  174. player->ADD_GOSSIP_ITEM(1, "[Enchant Rings]", GOSSIP_SENDER_MAIN, 12);
  175. player->PlayerTalkClass->SendGossipMenu(100001, creature->GetGUID());
  176. return true;
  177. break;
  178. }
  179. case 1: // Enchant Weapon
  180. if (player->HasSkill(SKILL_ENCHANTING) && player->GetSkillValue(SKILL_ENCHANTING) == 450)
  181. {
  182. player->ADD_GOSSIP_ITEM(1, "Blade Ward", GOSSIP_SENDER_MAIN, 102);
  183. player->ADD_GOSSIP_ITEM(1, "Blood Draining", GOSSIP_SENDER_MAIN, 103);
  184. }
  185. player->ADD_GOSSIP_ITEM(1, "Exceptional Agility", GOSSIP_SENDER_MAIN, 100);
  186. player->ADD_GOSSIP_ITEM(1, "Exceptional Spirit", GOSSIP_SENDER_MAIN, 101);
  187. player->ADD_GOSSIP_ITEM(1, "Berserking", GOSSIP_SENDER_MAIN, 104);
  188. player->ADD_GOSSIP_ITEM(1, "Accuracy", GOSSIP_SENDER_MAIN, 105);
  189. player->ADD_GOSSIP_ITEM(1, "Black Magic", GOSSIP_SENDER_MAIN, 106);
  190. player->ADD_GOSSIP_ITEM(1, "Battlemaster", GOSSIP_SENDER_MAIN, 107);
  191. player->ADD_GOSSIP_ITEM(1, "Icebreaker", GOSSIP_SENDER_MAIN, 108);
  192. player->ADD_GOSSIP_ITEM(1, "Lifeward", GOSSIP_SENDER_MAIN, 109);
  193. player->ADD_GOSSIP_ITEM(1, "Titanguard", GOSSIP_SENDER_MAIN, 110);
  194. player->ADD_GOSSIP_ITEM(1, "Superior Potency", GOSSIP_SENDER_MAIN, 111);
  195. player->ADD_GOSSIP_ITEM(1, "Mighty Spellpower", GOSSIP_SENDER_MAIN, 112);
  196. player->ADD_GOSSIP_ITEM(1, "Mongoose", GOSSIP_SENDER_MAIN, 113);
  197. player->ADD_GOSSIP_ITEM(1, "Executioner", GOSSIP_SENDER_MAIN, 114);
  198. player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  199. player->PlayerTalkClass->SendGossipMenu(100002, creature->GetGUID());
  200. return true;
  201. break;
  202. case 2: // Enchant 2H Weapon
  203. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND);
  204. if (!item)
  205. {
  206. creature->MonsterWhisper("This enchant needs a 2H weapon equiped.", player->GetGUID());
  207. player->CLOSE_GOSSIP_MENU();
  208. return false;
  209. }
  210. if(item->GetTemplate()->InventoryType == INVTYPE_2HWEAPON)
  211. {
  212. player->ADD_GOSSIP_ITEM(1, "Berserking", GOSSIP_SENDER_MAIN, 104);
  213. player->ADD_GOSSIP_ITEM(1, "Mongoose", GOSSIP_SENDER_MAIN, 113);
  214. player->ADD_GOSSIP_ITEM(1, "Executioner", GOSSIP_SENDER_MAIN, 114);
  215. player->ADD_GOSSIP_ITEM(1, "Greater Spellpower", GOSSIP_SENDER_MAIN, 115);
  216. player->ADD_GOSSIP_ITEM(1, "Major Agility", GOSSIP_SENDER_MAIN, 116);
  217. player->ADD_GOSSIP_ITEM(1, "Massacre", GOSSIP_SENDER_MAIN, 117);
  218. player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  219. }
  220. else
  221. {
  222. creature->MonsterWhisper("This enchant needs a 2H weapon equiped.", player->GetGUID());
  223. player->CLOSE_GOSSIP_MENU();
  224. }
  225. player->PlayerTalkClass->SendGossipMenu(100003, creature->GetGUID());
  226. return true;
  227. break;
  228. case 3: // Enchant Shield
  229. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  230. if (!item)
  231. {
  232. creature->MonsterWhisper("This enchant needs a shield equiped.", player->GetGUID());
  233. player->CLOSE_GOSSIP_MENU();
  234. return false;
  235. }
  236. if (item->GetTemplate()->InventoryType == INVTYPE_SHIELD)
  237. {
  238. player->ADD_GOSSIP_ITEM(1, "Defense", GOSSIP_SENDER_MAIN, 118);
  239. player->ADD_GOSSIP_ITEM(1, "Greater Intellect", GOSSIP_SENDER_MAIN, 119);
  240. player->ADD_GOSSIP_ITEM(1, "Resilience", GOSSIP_SENDER_MAIN, 120);
  241. player->ADD_GOSSIP_ITEM(1, "Titanium Plating", GOSSIP_SENDER_MAIN, 121);
  242. player->ADD_GOSSIP_ITEM(1, "Major Stamina", GOSSIP_SENDER_MAIN, 122);
  243. player->ADD_GOSSIP_ITEM(1, "Tough Shield", GOSSIP_SENDER_MAIN, 123);
  244. player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  245. }
  246. else
  247. {
  248. creature->MonsterWhisper("This enchant needs a shield equiped.", player->GetGUID());
  249. player->CLOSE_GOSSIP_MENU();
  250. }
  251. player->PlayerTalkClass->SendGossipMenu(100004, creature->GetGUID());
  252. return true;
  253. break;
  254. case 4: // Enchant Head
  255. player->ADD_GOSSIP_ITEM(1, "Arcanum of Blissful Mending", GOSSIP_SENDER_MAIN, 124);
  256. player->ADD_GOSSIP_ITEM(1, "Arcanum of Burning Mysteries", GOSSIP_SENDER_MAIN, 125);
  257. player->ADD_GOSSIP_ITEM(1, "Arcanum of Dominance", GOSSIP_SENDER_MAIN, 126);
  258. player->ADD_GOSSIP_ITEM(1, "Arcanum of The Savage Gladiator", GOSSIP_SENDER_MAIN, 127);
  259. player->ADD_GOSSIP_ITEM(1, "Arcanum of The Stalwart Protector", GOSSIP_SENDER_MAIN, 128);
  260. player->ADD_GOSSIP_ITEM(1, "Arcanum of Torment", GOSSIP_SENDER_MAIN, 129);
  261. player->ADD_GOSSIP_ITEM(1, "Arcanum of Triumph", GOSSIP_SENDER_MAIN, 130);
  262. player->ADD_GOSSIP_ITEM(1, "Arcanum of Eclipsed Moon", GOSSIP_SENDER_MAIN, 131);
  263. player->ADD_GOSSIP_ITEM(1, "Arcanum of the Flame's Soul", GOSSIP_SENDER_MAIN, 132);
  264. player->ADD_GOSSIP_ITEM(1, "Arcanum of the Fleeing Shadow", GOSSIP_SENDER_MAIN, 133);
  265. player->ADD_GOSSIP_ITEM(1, "Arcanum of the Frosty Soul", GOSSIP_SENDER_MAIN, 134);
  266. player->ADD_GOSSIP_ITEM(1, "Arcanum of Toxic Warding", GOSSIP_SENDER_MAIN, 135);
  267. player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  268. player->PlayerTalkClass->SendGossipMenu(100005, creature->GetGUID());
  269. return true;
  270. break;
  271. case 5: // Enchant Shoulders
  272. if (player->HasSkill(SKILL_INSCRIPTION) && player->GetSkillValue(SKILL_INSCRIPTION) == 450)
  273. {
  274. player->ADD_GOSSIP_ITEM(1, "Master's Inscription of the Axe", GOSSIP_SENDER_MAIN, 136);
  275. player->ADD_GOSSIP_ITEM(1, "Master's Inscription of the Crag", GOSSIP_SENDER_MAIN, 137);
  276. player->ADD_GOSSIP_ITEM(1, "Master's Inscription of the Pinnacle", GOSSIP_SENDER_MAIN, 138);
  277. player->ADD_GOSSIP_ITEM(1, "Master's Inscription of the Storm", GOSSIP_SENDER_MAIN, 139);
  278. }
  279. player->ADD_GOSSIP_ITEM(1, "Greater Inscription of the Axe", GOSSIP_SENDER_MAIN, 140);
  280. player->ADD_GOSSIP_ITEM(1, "Greater Inscription of the Crag", GOSSIP_SENDER_MAIN, 141);
  281. player->ADD_GOSSIP_ITEM(1, "Greater Inscription of the Pinnacle", GOSSIP_SENDER_MAIN, 142);
  282. player->ADD_GOSSIP_ITEM(1, "Greater Inscription of the Gladiator", GOSSIP_SENDER_MAIN, 143);
  283. player->ADD_GOSSIP_ITEM(1, "Greater Inscription of the Storm", GOSSIP_SENDER_MAIN, 144);
  284. player->ADD_GOSSIP_ITEM(1, "Inscription of Dominance", GOSSIP_SENDER_MAIN, 145);
  285. player->ADD_GOSSIP_ITEM(1, "Inscription of Triumph", GOSSIP_SENDER_MAIN, 146);
  286. player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  287. player->PlayerTalkClass->SendGossipMenu(100006, creature->GetGUID());
  288. return true;
  289. break;
  290. case 6: // Enchant Cloak
  291. if (player->HasSkill(SKILL_TAILORING) && player->GetSkillValue(SKILL_TAILORING) == 450)
  292. {
  293. player->ADD_GOSSIP_ITEM(1, "Darkglow Embroidery", GOSSIP_SENDER_MAIN, 149);
  294. player->ADD_GOSSIP_ITEM(1, "Lightweave Embroidery", GOSSIP_SENDER_MAIN, 150);
  295. player->ADD_GOSSIP_ITEM(1, "Swordguard Embroidery", GOSSIP_SENDER_MAIN, 151);
  296. }
  297. if (player->HasSkill(SKILL_ENGINEERING) && player->GetSkillValue(SKILL_ENGINEERING) == 450)
  298. {
  299. player->ADD_GOSSIP_ITEM(1, "Springy Arachnoweave", GOSSIP_SENDER_MAIN, 147);
  300. }
  301. player->ADD_GOSSIP_ITEM(1, "Shadow Armor", GOSSIP_SENDER_MAIN, 148);
  302. player->ADD_GOSSIP_ITEM(1, "Wisdom", GOSSIP_SENDER_MAIN, 152);
  303. player->ADD_GOSSIP_ITEM(1, "Titanweave", GOSSIP_SENDER_MAIN, 153);
  304. player->ADD_GOSSIP_ITEM(1, "Spell Piercing", GOSSIP_SENDER_MAIN, 154);
  305. player->ADD_GOSSIP_ITEM(1, "Mighty Armor", GOSSIP_SENDER_MAIN, 155);
  306. player->ADD_GOSSIP_ITEM(1, "Major Agility", GOSSIP_SENDER_MAIN, 156);
  307. player->ADD_GOSSIP_ITEM(1, "Greater Speed", GOSSIP_SENDER_MAIN, 157);
  308. player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  309. player->PlayerTalkClass->SendGossipMenu(100007, creature->GetGUID());
  310. return true;
  311. break;
  312. case 7: //Enchant chest
  313. player->ADD_GOSSIP_ITEM(1, "Powerful Stats", GOSSIP_SENDER_MAIN, 158);
  314. player->ADD_GOSSIP_ITEM(1, "Super Health", GOSSIP_SENDER_MAIN, 159);
  315. player->ADD_GOSSIP_ITEM(1, "Greater Mana Restoration", GOSSIP_SENDER_MAIN, 160);
  316. player->ADD_GOSSIP_ITEM(1, "Exceptional Resilience", GOSSIP_SENDER_MAIN, 161);
  317. player->ADD_GOSSIP_ITEM(1, "Greater Defense", GOSSIP_SENDER_MAIN, 162);
  318. player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  319. player->PlayerTalkClass->SendGossipMenu(100008, creature->GetGUID());
  320. return true;
  321. break;
  322. case 8: //Enchant Bracers
  323. player->ADD_GOSSIP_ITEM(1, "Major Stamina", GOSSIP_SENDER_MAIN, 163);
  324. player->ADD_GOSSIP_ITEM(1, "Superior Spell Power", GOSSIP_SENDER_MAIN, 164);
  325. player->ADD_GOSSIP_ITEM(1, "Greater Assult", GOSSIP_SENDER_MAIN, 165);
  326. player->ADD_GOSSIP_ITEM(1, "Major Spirit", GOSSIP_SENDER_MAIN, 166);
  327. player->ADD_GOSSIP_ITEM(1, "Expertise", GOSSIP_SENDER_MAIN, 167);
  328. player->ADD_GOSSIP_ITEM(1, "Greater Stats", GOSSIP_SENDER_MAIN, 168);
  329. player->ADD_GOSSIP_ITEM(1, "Exceptional Intellect", GOSSIP_SENDER_MAIN, 169);
  330. if (player->HasSkill(SKILL_LEATHERWORKING) && player->GetSkillValue(SKILL_LEATHERWORKING) == 450)
  331. {
  332. player->ADD_GOSSIP_ITEM(1, "Fur Lining - Arcane Resist", GOSSIP_SENDER_MAIN, 170);
  333. player->ADD_GOSSIP_ITEM(1, "Fur Lining - Fire Resist", GOSSIP_SENDER_MAIN, 171);
  334. player->ADD_GOSSIP_ITEM(1, "Fur Lining - Frost Resist", GOSSIP_SENDER_MAIN, 172);
  335. player->ADD_GOSSIP_ITEM(1, "Fur Lining - Nature Resist", GOSSIP_SENDER_MAIN, 173);
  336. player->ADD_GOSSIP_ITEM(1, "Fur Lining - Shadow Resist", GOSSIP_SENDER_MAIN, 174);
  337. player->ADD_GOSSIP_ITEM(1, "Fur Lining - Attack power", GOSSIP_SENDER_MAIN, 175);
  338. player->ADD_GOSSIP_ITEM(1, "Fur Lining - Stamina", GOSSIP_SENDER_MAIN, 176);
  339. player->ADD_GOSSIP_ITEM(1, "Fur Lining - Spellpower", GOSSIP_SENDER_MAIN, 177);
  340. }
  341. player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  342. player->PlayerTalkClass->SendGossipMenu(100009, creature->GetGUID());
  343. return true;
  344. break;
  345. case 9: //Enchant Gloves
  346. if (player->HasSkill(SKILL_ENGINEERING) && player->GetSkillValue(SKILL_ENGINEERING) == 450)
  347. {
  348. player->ADD_GOSSIP_ITEM(1, "Greater Blasting", GOSSIP_SENDER_MAIN, 178);
  349. }
  350. player->ADD_GOSSIP_ITEM(1, "Armsman", GOSSIP_SENDER_MAIN, 179);
  351. player->ADD_GOSSIP_ITEM(1, "Crusher", GOSSIP_SENDER_MAIN, 180);
  352. player->ADD_GOSSIP_ITEM(1, "Agility", GOSSIP_SENDER_MAIN, 181);
  353. player->ADD_GOSSIP_ITEM(1, "Precision", GOSSIP_SENDER_MAIN, 182);
  354. player->ADD_GOSSIP_ITEM(1, "Expertise", GOSSIP_SENDER_MAIN, 183);
  355. player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  356. player->PlayerTalkClass->SendGossipMenu(100010, creature->GetGUID());
  357. return true;
  358. break;
  359. case 10: //Enchant legs
  360. player->ADD_GOSSIP_ITEM(1, "Earthen Leg Armor", GOSSIP_SENDER_MAIN, 184);
  361. player->ADD_GOSSIP_ITEM(1, "Frosthide Leg Armor", GOSSIP_SENDER_MAIN, 185);
  362. player->ADD_GOSSIP_ITEM(1, "Icescale Leg Armor", GOSSIP_SENDER_MAIN, 186);
  363. player->ADD_GOSSIP_ITEM(1, "Brilliant Spellthread", GOSSIP_SENDER_MAIN, 187);
  364. player->ADD_GOSSIP_ITEM(1, "Sapphire Spellthread", GOSSIP_SENDER_MAIN, 188);
  365. player->ADD_GOSSIP_ITEM(1, "Dragonscale Leg Armor", GOSSIP_SENDER_MAIN, 189);
  366. player->ADD_GOSSIP_ITEM(1, "Wyrmscale Leg Armor", GOSSIP_SENDER_MAIN, 190);
  367. player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  368. player->PlayerTalkClass->SendGossipMenu(100011, creature->GetGUID());
  369. return true;
  370. break;
  371. case 11: //Enchant feet
  372. player->ADD_GOSSIP_ITEM(1, "Greater Assult", GOSSIP_SENDER_MAIN, 191);
  373. player->ADD_GOSSIP_ITEM(1, "Tuskars Vitliaty", GOSSIP_SENDER_MAIN, 192);
  374. player->ADD_GOSSIP_ITEM(1, "Superior Agility", GOSSIP_SENDER_MAIN, 193);
  375. player->ADD_GOSSIP_ITEM(1, "Greater Spirit", GOSSIP_SENDER_MAIN, 194);
  376. player->ADD_GOSSIP_ITEM(1, "Greater Vitality", GOSSIP_SENDER_MAIN, 195);
  377. player->ADD_GOSSIP_ITEM(1, "Icewalker", GOSSIP_SENDER_MAIN, 196);
  378. player->ADD_GOSSIP_ITEM(1, "Greater Fortitude", GOSSIP_SENDER_MAIN, 197);
  379. if (player->HasSkill(SKILL_ENGINEERING) && player->GetSkillValue(SKILL_ENGINEERING) == 450)
  380. {
  381. player->ADD_GOSSIP_ITEM(1, "Nitro Boots", GOSSIP_SENDER_MAIN, 198);
  382. player->ADD_GOSSIP_ITEM(1, "Hand-Mounted Pyro Rocket", GOSSIP_SENDER_MAIN, 199);
  383. player->ADD_GOSSIP_ITEM(1, "Hyperspeed Accedlerators", GOSSIP_SENDER_MAIN, 200);
  384. player->ADD_GOSSIP_ITEM(1, "Reticulated Armor Webbing", GOSSIP_SENDER_MAIN, 201);
  385. }
  386. player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  387. player->PlayerTalkClass->SendGossipMenu(100012, creature->GetGUID());
  388. return true;
  389. break;
  390. case 12: //Enchant rings
  391. player->ADD_GOSSIP_ITEM(1, "Assult", GOSSIP_SENDER_MAIN, 202);
  392. player->ADD_GOSSIP_ITEM(1, "Greater Spell Power", GOSSIP_SENDER_MAIN, 203);
  393. player->ADD_GOSSIP_ITEM(1, "Stamina", GOSSIP_SENDER_MAIN, 204);
  394. player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  395. player->PlayerTalkClass->SendGossipMenu(100013, creature->GetGUID());
  396. return true;
  397. break;
  398. case 100:
  399. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_AGILITY_1H);
  400. player->PlayerTalkClass->SendCloseGossip();
  401. break;
  402. case 101:
  403. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_SPIRIT);
  404. player->PlayerTalkClass->SendCloseGossip();
  405. break;
  406. case 102:
  407. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_BLADE_WARD);
  408. player->PlayerTalkClass->SendCloseGossip();
  409. break;
  410. case 103:
  411. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_BLOOD_DRAINING);
  412. player->PlayerTalkClass->SendCloseGossip();
  413. break;
  414. case 104:
  415. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_BERSERKING);
  416. player->PlayerTalkClass->SendCloseGossip();
  417. break;
  418. case 105:
  419. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_ACCURACY);
  420. player->PlayerTalkClass->SendCloseGossip();
  421. break;
  422. case 106:
  423. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_BLACK_MAGIC);
  424. player->PlayerTalkClass->SendCloseGossip();
  425. break;
  426. case 107:
  427. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_BATTLEMASTER);
  428. player->PlayerTalkClass->SendCloseGossip();
  429. break;
  430. case 108:
  431. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_ICEBREAKER);
  432. player->PlayerTalkClass->SendCloseGossip();
  433. break;
  434. case 109:
  435. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_LIFEWARD);
  436. player->PlayerTalkClass->SendCloseGossip();
  437. break;
  438. case 110:
  439. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_TITANGUARD);
  440. player->PlayerTalkClass->SendCloseGossip();
  441. break;
  442. case 111:
  443. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_POTENCY);
  444. player->PlayerTalkClass->SendCloseGossip();
  445. break;
  446. case 112:
  447. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_MIGHTY_SPELL_POWER);
  448. player->PlayerTalkClass->SendCloseGossip();
  449. break;
  450. case 113:
  451. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_2WEP_MONGOOSE);
  452. player->PlayerTalkClass->SendCloseGossip();
  453. break;
  454. case 114:
  455. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_EXECUTIONER);
  456. player->PlayerTalkClass->SendCloseGossip();
  457. break;
  458. case 115:
  459. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_2WEP_GREATER_SPELL_POWER);
  460. player->PlayerTalkClass->SendCloseGossip();
  461. break;
  462. case 116:
  463. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_2WEP_AGILITY);
  464. player->PlayerTalkClass->SendCloseGossip();
  465. break;
  466. case 117:
  467. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_2WEP_MASSACRE);
  468. player->PlayerTalkClass->SendCloseGossip();
  469. break;
  470. case 118:
  471. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_SHIELD_DEFENSE);
  472. player->PlayerTalkClass->SendCloseGossip();
  473. break;
  474. case 119:
  475. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_SHIELD_INTELLECT);
  476. player->PlayerTalkClass->SendCloseGossip();
  477. break;
  478. case 120:
  479. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_SHIELD_RESILIENCE);
  480. player->PlayerTalkClass->SendCloseGossip();
  481. break;
  482. case 121:
  483. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_SHIELD_TITANIUM_PLATING);
  484. player->PlayerTalkClass->SendCloseGossip();
  485. break;
  486. case 122:
  487. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_SHIELD_STAMINA);
  488. player->PlayerTalkClass->SendCloseGossip();
  489. break;
  490. case 123:
  491. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_SHIELD_TOUGHSHIELD);
  492. player->PlayerTalkClass->SendCloseGossip();
  493. break;
  494. case 124:
  495. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_BLISSFUL_MENDING);
  496. player->PlayerTalkClass->SendCloseGossip();
  497. break;
  498. case 125:
  499. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_BURNING_MYSTERIES);
  500. player->PlayerTalkClass->SendCloseGossip();
  501. break;
  502. case 126:
  503. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_DOMINANCE);
  504. player->PlayerTalkClass->SendCloseGossip();
  505. break;
  506. case 127:
  507. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_SAVAGE_GLADIATOR);
  508. player->PlayerTalkClass->SendCloseGossip();
  509. break;
  510. case 128:
  511. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_STALWART_PROTECTOR);
  512. player->PlayerTalkClass->SendCloseGossip();
  513. break;
  514. case 129:
  515. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_TORMENT);
  516. player->PlayerTalkClass->SendCloseGossip();
  517. break;
  518. case 130:
  519. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_TRIUMPH);
  520. player->PlayerTalkClass->SendCloseGossip();
  521. break;
  522. case 131:
  523. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_ECLIPSED_MOON);
  524. player->PlayerTalkClass->SendCloseGossip();
  525. break;
  526. case 132:
  527. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_FLAME_SOUL);
  528. player->PlayerTalkClass->SendCloseGossip();
  529. break;
  530. case 133:
  531. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_FLEEING_SHADOW);
  532. player->PlayerTalkClass->SendCloseGossip();
  533. break;
  534. case 134:
  535. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_FROSTY_SOUL);
  536. player->PlayerTalkClass->SendCloseGossip();
  537. break;
  538. case 135:
  539. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_TOXIC_WARDING);
  540. player->PlayerTalkClass->SendCloseGossip();
  541. break;
  542. case 136:
  543. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_MASTERS_AXE);
  544. player->PlayerTalkClass->SendCloseGossip();
  545. break;
  546. case 137:
  547. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_MASTERS_CRAG);
  548. player->PlayerTalkClass->SendCloseGossip();
  549. break;
  550. case 138:
  551. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_MASTERS_PINNACLE);
  552. player->PlayerTalkClass->SendCloseGossip();
  553. break;
  554. case 139:
  555. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_MASTERS_STORM);
  556. player->PlayerTalkClass->SendCloseGossip();
  557. break;
  558. case 140:
  559. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_GREATER_AXE);
  560. player->PlayerTalkClass->SendCloseGossip();
  561. break;
  562. case 141:
  563. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_GREATER_CRAG);
  564. player->PlayerTalkClass->SendCloseGossip();
  565. break;
  566. case 142:
  567. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_GREATER_GLADIATOR);
  568. player->PlayerTalkClass->SendCloseGossip();
  569. break;
  570. case 143:
  571. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_GREATER_PINNACLE);
  572. player->PlayerTalkClass->SendCloseGossip();
  573. break;
  574. case 144:
  575. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_GREATER_STORM);
  576. player->PlayerTalkClass->SendCloseGossip();
  577. break;
  578. case 145:
  579. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_DOMINANCE);
  580. player->PlayerTalkClass->SendCloseGossip();
  581. break;
  582. case 146:
  583. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_TRIUMPH);
  584. player->PlayerTalkClass->SendCloseGossip();
  585. break;
  586. case 147:
  587. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_SPRINGY_ARACHNOWEAVE);
  588. player->PlayerTalkClass->SendCloseGossip();
  589. break;
  590. case 148:
  591. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_SHADOW_ARMOR);
  592. player->PlayerTalkClass->SendCloseGossip();
  593. break;
  594. case 149:
  595. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_DARKGLOW_EMBROIDERY);
  596. player->PlayerTalkClass->SendCloseGossip();
  597. break;
  598. case 150:
  599. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_LIGHTWEAVE_EMBROIDERY);
  600. player->PlayerTalkClass->SendCloseGossip();
  601. break;
  602. case 151:
  603. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_SWORDGUARD_EMBROIDERY);
  604. player->PlayerTalkClass->SendCloseGossip();
  605. break;
  606. case 152:
  607. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_WISDOM);
  608. player->PlayerTalkClass->SendCloseGossip();
  609. break;
  610. case 153:
  611. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_TITANWEAVE);
  612. player->PlayerTalkClass->SendCloseGossip();
  613. break;
  614. case 154:
  615. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_SPELL_PIERCING);
  616. player->PlayerTalkClass->SendCloseGossip();
  617. break;
  618. case 155:
  619. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_MIGHTY_ARMOR);
  620. player->PlayerTalkClass->SendCloseGossip();
  621. break;
  622. case 156:
  623. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_MAJOR_AGILITY);
  624. player->PlayerTalkClass->SendCloseGossip();
  625. break;
  626. case 157:
  627. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_GREATER_SPEED);
  628. player->PlayerTalkClass->SendCloseGossip();
  629. break;
  630. case 158:
  631. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_CHEST), ENCHANT_CHEST_POWERFUL_STATS);
  632. player->PlayerTalkClass->SendCloseGossip();
  633. break;
  634. case 159:
  635. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_CHEST), ENCHANT_CHEST_SUPER_HEALTH);
  636. player->PlayerTalkClass->SendCloseGossip();
  637. break;
  638. case 160:
  639. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_CHEST), ENCHANT_CHEST_GREATER_MAINA_REST);
  640. player->PlayerTalkClass->SendCloseGossip();
  641. break;
  642. case 161:
  643. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_CHEST), ENCHANT_CHEST_EXCEPTIONAL_RESIL);
  644. player->PlayerTalkClass->SendCloseGossip();
  645. break;
  646. case 162:
  647. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_CHEST), ENCHANT_CHEST_GREATER_DEFENSE);
  648. player->PlayerTalkClass->SendCloseGossip();
  649. break;
  650. case 163:
  651. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_MAJOR_STAMINA);
  652. player->PlayerTalkClass->SendCloseGossip();
  653. break;
  654. case 164:
  655. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_SUPERIOR_SP);
  656. player->PlayerTalkClass->SendCloseGossip();
  657. break;
  658. case 165:
  659. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_GREATER_ASSUALT);
  660. player->PlayerTalkClass->SendCloseGossip();
  661. break;
  662. case 166:
  663. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_MAJOR_SPIRT);
  664. player->PlayerTalkClass->SendCloseGossip();
  665. break;
  666. case 167:
  667. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_EXPERTISE);
  668. player->PlayerTalkClass->SendCloseGossip();
  669. break;
  670. case 168:
  671. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_GREATER_STATS);
  672. player->PlayerTalkClass->SendCloseGossip();
  673. break;
  674. case 169:
  675. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_INTELLECT);
  676. player->PlayerTalkClass->SendCloseGossip();
  677. break;
  678. case 170:
  679. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_FURL_ARCANE);
  680. player->PlayerTalkClass->SendCloseGossip();
  681. break;
  682. case 171:
  683. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_FURL_FIRE);
  684. player->PlayerTalkClass->SendCloseGossip();
  685. break;
  686. case 172:
  687. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_FURL_FROST);
  688. player->PlayerTalkClass->SendCloseGossip();
  689. break;
  690. case 173:
  691. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_FURL_NATURE);
  692. player->PlayerTalkClass->SendCloseGossip();
  693. break;
  694. case 174:
  695. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_FURL_SHADOW);
  696. player->PlayerTalkClass->SendCloseGossip();
  697. break;
  698. case 175:
  699. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_FURL_ATTACK);
  700. player->PlayerTalkClass->SendCloseGossip();
  701. break;
  702. case 176:
  703. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_FURL_STAMINA);
  704. player->PlayerTalkClass->SendCloseGossip();
  705. break;
  706. case 177:
  707. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_FURL_SPELLPOWER);
  708. player->PlayerTalkClass->SendCloseGossip();
  709. break;
  710. case 178:
  711. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_GREATER_BLASTING);
  712. player->PlayerTalkClass->SendCloseGossip();
  713. break;
  714. case 179:
  715. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_ARMSMAN);
  716. player->PlayerTalkClass->SendCloseGossip();
  717. break;
  718. case 180:
  719. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_CRUSHER);
  720. player->PlayerTalkClass->SendCloseGossip();
  721. break;
  722. case 181:
  723. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_AGILITY);
  724. player->PlayerTalkClass->SendCloseGossip();
  725. break;
  726. case 182:
  727. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_PRECISION);
  728. player->PlayerTalkClass->SendCloseGossip();
  729. break;
  730. case 183:
  731. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_EXPERTISE);
  732. player->PlayerTalkClass->SendCloseGossip();
  733. break;
  734. case 184:
  735. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_LEGS), ENCHANT_LEG_EARTHEN);
  736. player->PlayerTalkClass->SendCloseGossip();
  737. break;
  738. case 185:
  739. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_LEGS), ENCHANT_LEG_FROSTHIDE);
  740. player->PlayerTalkClass->SendCloseGossip();
  741. break;
  742. case 186:
  743. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_LEGS), ENCHANT_LEG_ICESCALE);
  744. player->PlayerTalkClass->SendCloseGossip();
  745. break;
  746. case 187:
  747. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_LEGS), ENCHANT_LEG_BRILLIANT_SPELLTHREAD);
  748. player->PlayerTalkClass->SendCloseGossip();
  749. break;
  750. case 188:
  751. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_LEGS), ENCHANT_LEG_SAPPHIRE_SPELLTHREAD);
  752. player->PlayerTalkClass->SendCloseGossip();
  753. break;
  754. case 189:
  755. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_LEGS), ENCHANT_LEG_DRAGONSCALE);
  756. player->PlayerTalkClass->SendCloseGossip();
  757. break;
  758. case 190:
  759. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_LEGS), ENCHANT_LEG_WYRMSCALE);
  760. player->PlayerTalkClass->SendCloseGossip();
  761. break;
  762. case 191:
  763. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_GREATER_ASSULT);
  764. player->PlayerTalkClass->SendCloseGossip();
  765. break;
  766. case 192:
  767. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_TUSKARS_VITLIATY);
  768. player->PlayerTalkClass->SendCloseGossip();
  769. break;
  770. case 193:
  771. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_SUPERIOR_AGILITY);
  772. player->PlayerTalkClass->SendCloseGossip();
  773. break;
  774. case 194:
  775. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_GREATER_SPIRIT);
  776. player->PlayerTalkClass->SendCloseGossip();
  777. break;
  778. case 195:
  779. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_GREATER_VITALITY);
  780. player->PlayerTalkClass->SendCloseGossip();
  781. break;
  782. case 196:
  783. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_ICEWALKER);
  784. player->PlayerTalkClass->SendCloseGossip();
  785. break;
  786. case 197:
  787. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_GREATER_FORTITUDE);
  788. player->PlayerTalkClass->SendCloseGossip();
  789. break;
  790. case 198:
  791. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_NITRO_BOOTS);
  792. player->PlayerTalkClass->SendCloseGossip();
  793. break;
  794. case 199:
  795. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_PYRO_ROCKET);
  796. player->PlayerTalkClass->SendCloseGossip();
  797. break;
  798. case 200:
  799. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_HYPERSPEED);
  800. player->PlayerTalkClass->SendCloseGossip();
  801. break;
  802. case 201:
  803. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_ARMOR_WEBBING);
  804. player->PlayerTalkClass->SendCloseGossip();
  805. break;
  806. case 202:
  807. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER1), ENCHANT_RING_ASSULT);
  808. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER2), ENCHANT_RING_ASSULT);
  809. player->PlayerTalkClass->SendCloseGossip();
  810. break;
  811. case 203:
  812. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER1), ENCHANT_RING_GREATER_SP);
  813. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER2), ENCHANT_RING_GREATER_SP);
  814. player->PlayerTalkClass->SendCloseGossip();
  815. break;
  816. case 204:
  817. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER1), ENCHANT_RING_STAMINA);
  818. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER2), ENCHANT_RING_STAMINA);
  819. player->PlayerTalkClass->SendCloseGossip();
  820. break;
  821. case 300:
  822. {
  823. player->ADD_GOSSIP_ITEM(1, "[Welcome to Enchanting NPC!]", GOSSIP_SENDER_MAIN, 0);
  824. player->ADD_GOSSIP_ITEM(1, "[Enchant Weapon]", GOSSIP_SENDER_MAIN, 1);
  825. player->ADD_GOSSIP_ITEM(1, "[Enchant 2H Weapon]", GOSSIP_SENDER_MAIN, 2);
  826. player->ADD_GOSSIP_ITEM(1, "[Enchant Shield]", GOSSIP_SENDER_MAIN, 3);
  827. player->ADD_GOSSIP_ITEM(1, "[Enchant Head]", GOSSIP_SENDER_MAIN, 4);
  828. player->ADD_GOSSIP_ITEM(1, "[Enchant Shoulders]", GOSSIP_SENDER_MAIN, 5);
  829. player->ADD_GOSSIP_ITEM(1, "[Enchant Cloak]", GOSSIP_SENDER_MAIN, 6);
  830. player->ADD_GOSSIP_ITEM(1, "[Enchant Chest]", GOSSIP_SENDER_MAIN, 7);
  831. player->ADD_GOSSIP_ITEM(1, "[Enchant Bracers]", GOSSIP_SENDER_MAIN, 8);
  832. player->ADD_GOSSIP_ITEM(1, "[Enchant Gloves]", GOSSIP_SENDER_MAIN, 9);
  833. player->ADD_GOSSIP_ITEM(1, "[Enchant Legs]", GOSSIP_SENDER_MAIN, 10);
  834. player->ADD_GOSSIP_ITEM(1, "[Enchant Feet]", GOSSIP_SENDER_MAIN, 11);
  835. if (player->HasSkill(SKILL_ENCHANTING) && player->GetSkillValue(SKILL_ENCHANTING) == 450)
  836. player->ADD_GOSSIP_ITEM(1, "[Enchant Rings]", GOSSIP_SENDER_MAIN, 12);
  837. player->PlayerTalkClass->SendGossipMenu(100001, creature->GetGUID());
  838. return true;
  839. break;
  840. }
  841. }
  842. return true;
  843. }
  844. };
  845. void AddSC_npc_enchantment()
  846. {
  847. new npc_enchantment();
  848. }

Enchanter