Advertisement
Guest User

Untitled

a guest
Mar 18th, 2018
370
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 72.05 KB | None | 0 0
  1. #include "ScriptMgr.h"
  2. #include "Pet.h"
  3. #include "Player.h"
  4. #include "ScriptedGossip.h"
  5. #include "WorldSession.h"
  6. #include "Chat.h"
  7. #include "DatabaseEnv.h"
  8. #include <iostream>
  9. #include "DBCStores.h"
  10. #include "SpellMgr.h"
  11. #include "DisableMgr.h"
  12. #include "Item.h"
  13.  
  14. #define ERROR_NO1H "This enchant requires a one-handed weapon to be equipped!"
  15. #define ERROR_NO2H "This enchant requires a two-handed weapon to be equipped!"
  16. #define ERROR_NOSHIELD "This enchant requires a shield to be equipped!"
  17. #define NO_2H "You don't have a two-handed weapon equipped."
  18. #define NO_1H "You don't have a one-handed weapon equipped."
  19. #define NO_SHIELD "You don't have a shield equipped."
  20. #define ERROR_1HOFFHAND "This enchant requires a one-handed weapon equipped in the off-hand!"
  21. #define ERROROFFH "Your off-hand is not a weapon."
  22.  
  23. enum Enchants
  24. {
  25. ENCHANT_WEP_BERSERKING = 3789,
  26. ENCHANT_WEP_BLADE_WARD = 3869,
  27. ENCHANT_WEP_BLOOD_DRAINING = 3870,
  28. ENCHANT_WEP_ACCURACY = 3788,
  29. ENCHANT_WEP_AGILITY_1H = 1103,
  30. ENCHANT_WEP_SPIRIT = 3844,
  31. ENCHANT_WEP_BATTLEMASTER = 2675,
  32. ENCHANT_WEP_BLACK_MAGIC = 3790,
  33. ENCHANT_WEP_ICEBREAKER = 3239,
  34. ENCHANT_WEP_LIFEWARD = 3241,
  35. ENCHANT_WEP_MIGHTY_SPELL_POWER = 3834, // One-hand
  36. ENCHANT_WEP_EXECUTIONER = 3225,
  37. ENCHANT_WEP_POTENCY = 3833,
  38. ENCHANT_WEP_TITANGUARD = 3851,
  39. ENCHANT_2WEP_MASSACRE = 3827,
  40. ENCHANT_2WEP_SCOURGEBANE = 3247,
  41. ENCHANT_2WEP_GIANT_SLAYER = 3251,
  42. ENCHANT_2WEP_GREATER_SPELL_POWER = 3854,
  43. ENCHANT_2WEP_AGILITY = 2670,
  44. ENCHANT_2WEP_MONGOOSE = 2673,
  45.  
  46. ENCHANT_SHIELD_DEFENSE = 1952,
  47. ENCHANT_SHIELD_INTELLECT = 1128,
  48. ENCHANT_SHIELD_RESILIENCE = 3229,
  49. ENCHANT_SHIELD_BLOCK = 2655,
  50. ENCHANT_SHIELD_STAMINA = 1071,
  51. ENCHANT_SHIELD_TOUGHSHIELD = 2653,
  52. ENCHANT_SHIELD_TITANIUM_PLATING = 3849,
  53.  
  54. ENCHANT_HEAD_BLISSFUL_MENDING = 3819,
  55. ENCHANT_HEAD_BURNING_MYSTERIES = 3820,
  56. ENCHANT_HEAD_DOMINANCE = 3796,
  57. ENCHANT_HEAD_SAVAGE_GLADIATOR = 3842,
  58. ENCHANT_HEAD_STALWART_PROTECTOR = 3818,
  59. ENCHANT_HEAD_TORMENT = 3817,
  60. ENCHANT_HEAD_TRIUMPH = 3795,
  61. ENCHANT_HEAD_ECLIPSED_MOON = 3815,
  62. ENCHANT_HEAD_FLAME_SOUL = 3816,
  63. ENCHANT_HEAD_FLEEING_SHADOW = 3814,
  64. ENCHANT_HEAD_FROSTY_SOUL = 3812,
  65. ENCHANT_HEAD_TOXIC_WARDING = 3813,
  66.  
  67. ENCHANT_SHOULDER_MASTERS_AXE = 3835,
  68. ENCHANT_SHOULDER_MASTERS_CRAG = 3836,
  69. ENCHANT_SHOULDER_MASTERS_PINNACLE = 3837,
  70. ENCHANT_SHOULDER_MASTERS_STORM = 3838,
  71. ENCHANT_SHOULDER_GREATER_AXE = 3808,
  72. ENCHANT_SHOULDER_GREATER_CRAG = 3809,
  73. ENCHANT_SHOULDER_GREATER_GLADIATOR = 3852,
  74. ENCHANT_SHOULDER_GREATER_PINNACLE = 3811,
  75. ENCHANT_SHOULDER_GREATER_STORM = 3810,
  76. ENCHANT_SHOULDER_DOMINANCE = 3794,
  77. ENCHANT_SHOULDER_TRIUMPH = 3793,
  78.  
  79. ENCHANT_CLOAK_DARKGLOW_EMBROIDERY = 3728,
  80. ENCHANT_CLOAK_SWORDGUARD_EMBROIDERY = 3730,
  81. ENCHANT_CLOAK_LIGHTWEAVE_EMBROIDERY = 3722,
  82. ENCHANT_CLOAK_SPRINGY_ARACHNOWEAVE = 3859,
  83. ENCHANT_CLOAK_WISDOM = 3296,
  84. ENCHANT_CLOAK_TITANWEAVE = 1951,
  85. ENCHANT_CLOAK_SPELL_PIERCING = 3243,
  86. ENCHANT_CLOAK_SHADOW_ARMOR = 3256,
  87. ENCHANT_CLOAK_MIGHTY_ARMOR = 3294,
  88. ENCHANT_CLOAK_MAJOR_AGILITY = 1099,
  89. ENCHANT_CLOAK_GREATER_SPEED = 3831,
  90.  
  91. ENCHANT_LEG_EARTHEN = 3853,
  92. ENCHANT_LEG_FROSTHIDE = 3822,
  93. ENCHANT_LEG_ICESCALE = 3823,
  94. ENCHANT_LEG_BRILLIANT_SPELLTHREAD = 3719,
  95. ENCHANT_LEG_SAPPHIRE_SPELLTHREAD = 3721,
  96. /* ENCHANT_LEG_DRAGONSCALE = 3331,
  97. ENCHANT_LEG_WYRMSCALE = 3332, */
  98.  
  99. ENCHANT_GLOVES_GREATER_BLASTING = 3249,
  100. ENCHANT_GLOVES_ARMSMAN = 3253,
  101. ENCHANT_GLOVES_CRUSHER = 1603,
  102. ENCHANT_GLOVES_AGILITY = 3222,
  103. ENCHANT_GLOVES_PRECISION = 3234,
  104. ENCHANT_GLOVES_EXPERTISE = 3231,
  105. ENCHANT_GLOVES_EXCEPTIONAL_SPELLPOWER = 3246,
  106.  
  107. ENCHANT_BRACERS_MAJOR_STAMINA = 3850,
  108. ENCHANT_BRACERS_SUPERIOR_SP = 2332,
  109. ENCHANT_BRACERS_GREATER_ASSUALT = 3845,
  110. ENCHANT_BRACERS_MAJOR_SPIRT = 1147,
  111. ENCHANT_BRACERS_EXPERTISE = 3231,
  112. ENCHANT_BRACERS_GREATER_STATS = 2661,
  113. ENCHANT_BRACERS_INTELLECT = 1119,
  114. ENCHANT_BRACERS_FURL_ARCANE = 3763,
  115. ENCHANT_BRACERS_FURL_FIRE = 3759,
  116. ENCHANT_BRACERS_FURL_FROST = 3760,
  117. ENCHANT_BRACERS_FURL_NATURE = 3762,
  118. ENCHANT_BRACERS_FURL_SHADOW = 3761,
  119. ENCHANT_BRACERS_FURL_ATTACK = 3756,
  120. ENCHANT_BRACERS_FURL_STAMINA = 3757,
  121. ENCHANT_BRACERS_FURL_SPELLPOWER = 3758,
  122.  
  123. ENCHANT_CHEST_POWERFUL_STATS = 3832,
  124. ENCHANT_CHEST_SUPER_HEALTH = 3297,
  125. ENCHANT_CHEST_GREATER_MAINA_REST = 2381,
  126. ENCHANT_CHEST_EXCEPTIONAL_RESIL = 3245,
  127. ENCHANT_CHEST_GREATER_DEFENSE = 1953,
  128.  
  129. ENCHANT_BOOTS_GREATER_ASSULT = 1597,
  130. ENCHANT_BOOTS_TUSKARS_VITLIATY = 3232,
  131. ENCHANT_BOOTS_SUPERIOR_AGILITY = 983,
  132. ENCHANT_BOOTS_GREATER_SPIRIT = 1147,
  133. ENCHANT_BOOTS_GREATER_VITALITY = 3244,
  134. ENCHANT_BOOTS_ICEWALKER = 3826,
  135. ENCHANT_BOOTS_GREATER_FORTITUDE = 1075,
  136. ENCHANT_BOOTS_NITRO_BOOTS = 3606,
  137.  
  138. ENCHANT_RING_ASSULT = 3839,
  139. ENCHANT_RING_GREATER_SP = 3840,
  140. ENCHANT_RING_STAMINA = 3791,
  141.  
  142. ENCHANT_WAIST_SOCKET = 3729
  143. };
  144.  
  145. static void AdvancedEnchant(Player* player, Item* item, EnchantmentSlot slot, uint32 socketGem)
  146. {
  147. if (!item)
  148. {
  149. player->GetSession()->SendNotification("You must first equip the item you are trying to enchant in order to enchant it!");
  150. return;
  151. }
  152.  
  153. if (!socketGem)
  154. {
  155. player->GetSession()->SendNotification("Something went wrong in the code. It has been logged for developers and will be looked into, sorry for the inconvenience.");
  156. return;
  157. }
  158.  
  159. player->ApplyEnchantment(item, slot, false);
  160. item->SetEnchantment(slot, socketGem, 0, 0);
  161. player->ApplyEnchantment(item, slot, true);
  162. player->GetSession()->SendNotification("%s succesfully enchanted!", item->GetTemplate()->Name1.c_str());
  163. }
  164.  
  165. static void Enchant(Player* player, Item* item, uint32 enchantid)
  166. {
  167. if (!item)
  168. {
  169. player->GetSession()->SendNotification("You must first equip the item you are trying to enchant in order to enchant it!");
  170. return;
  171. }
  172.  
  173. if (!enchantid)
  174. {
  175. player->GetSession()->SendNotification("Something went wrong in the code. It has been logged for developers and will be looked into, sorry for the inconvenience.");
  176. return;
  177. }
  178.  
  179. player->ApplyEnchantment(item, PERM_ENCHANTMENT_SLOT, false);
  180. item->SetEnchantment(PERM_ENCHANTMENT_SLOT, enchantid, 0, 0);
  181. player->ApplyEnchantment(item, PERM_ENCHANTMENT_SLOT, true);
  182. player->GetSession()->SendNotification("|cff800080%s |cffFF0000succesfully enchanted!", item->GetTemplate()->Name1.c_str());
  183. }
  184.  
  185. class npc_enchantment : public CreatureScript
  186. {
  187. public:
  188. npc_enchantment() : CreatureScript("npc_enchantment") { }
  189.  
  190. static bool OnGossipHello(Player* player, Creature* creature)
  191. {
  192. AddGossipItemFor(player, 4, "Enchant Weapon", GOSSIP_SENDER_MAIN, 1);
  193. AddGossipItemFor(player, 4, "Enchant Off-Hand Weapon", GOSSIP_SENDER_MAIN, 13);
  194. AddGossipItemFor(player, 4, "Enchant 2H Weapon", GOSSIP_SENDER_MAIN, 2);
  195. AddGossipItemFor(player, 4, "Enchant Shield", GOSSIP_SENDER_MAIN, 3);
  196. AddGossipItemFor(player, 4, "Enchant Head", GOSSIP_SENDER_MAIN, 4);
  197. AddGossipItemFor(player, 4, "Enchant Shoulders", GOSSIP_SENDER_MAIN, 5);
  198. AddGossipItemFor(player, 4, "Enchant Cloak", GOSSIP_SENDER_MAIN, 6);
  199. AddGossipItemFor(player, 4, "Enchant Chest", GOSSIP_SENDER_MAIN, 7);
  200. AddGossipItemFor(player, 4, "Enchant Bracers", GOSSIP_SENDER_MAIN, 8);
  201. AddGossipItemFor(player, 4, "Enchant Gloves", GOSSIP_SENDER_MAIN, 9);
  202. AddGossipItemFor(player, 4, "Enchant Belt (Socket Belt)", GOSSIP_SENDER_MAIN, 15);
  203. AddGossipItemFor(player, 4, "Enchant Legs", GOSSIP_SENDER_MAIN, 10);
  204. AddGossipItemFor(player, 4, "Enchant Feet", GOSSIP_SENDER_MAIN, 11);
  205.  
  206. if (player->HasSkill(SKILL_ENCHANTING) && player->GetSkillValue(SKILL_ENCHANTING) == 450)
  207. {
  208. AddGossipItemFor(player, 1, "Enchant Rings", GOSSIP_SENDER_MAIN, 12);
  209. }
  210. player->PlayerTalkClass->SendGossipMenu(60021, creature->GetGUID());
  211. return true;
  212. }
  213.  
  214. static bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
  215. {
  216. player->PlayerTalkClass->ClearMenus();
  217. Item * item;
  218.  
  219. switch (action)
  220. {
  221.  
  222. case 1: // Enchant Weapon
  223. if (player->HasSkill(SKILL_ENCHANTING) && player->GetSkillValue(SKILL_ENCHANTING) == 450)
  224. {
  225. AddGossipItemFor(player, 1, "Blade Ward|cff0000ff(Increases your parry rating by 200 and inflicts 600 to 800 damage on your next parry.)", GOSSIP_SENDER_MAIN, 102);
  226. AddGossipItemFor(player, 1, "Blood Draining|cff0000ff(Permanently enchant your weapon to sometimes grant Blood Reserve when striking an enemy or inflicting damage with bleed attacks.When you fall below 35% health, Blood Reserve restores 180 to 219 health.)", GOSSIP_SENDER_MAIN, 103);
  227. }
  228. AddGossipItemFor(player, 1, "+26 Agility", GOSSIP_SENDER_MAIN, 100);
  229. AddGossipItemFor(player, 1, "+45 Spirit", GOSSIP_SENDER_MAIN, 101);
  230. AddGossipItemFor(player, 1, "Berserking|cff0000ff(Permanently enchant a melee weapon to sometimes increase your attack power by 400, but at the cost of reduced armor.)", GOSSIP_SENDER_MAIN, 104);
  231. AddGossipItemFor(player, 1, "Accuracy|cff0000ff(+25 Hit Rating and +25 Critical Strike Rating)", GOSSIP_SENDER_MAIN, 105);
  232. AddGossipItemFor(player, 1, "Black Magic|cff0000ff(Permanently enchant a melee weapon to cause your harmful spells to sometimes increase haste rating by 250)", GOSSIP_SENDER_MAIN, 106);
  233. AddGossipItemFor(player, 1, "Battlemaster|cff0000ff(Permanently enchant a Melee Weapon to occasionaly heal nearby party members of 180 to 300 health when an enemy is struck.)", GOSSIP_SENDER_MAIN, 107);
  234. AddGossipItemFor(player, 1, "Icebreaker|cff0000ff(sometimes inflict Fire damage)", GOSSIP_SENDER_MAIN, 108);
  235. AddGossipItemFor(player, 1, "Lifeward|cff0000ff(Permanently enchant a melee weapon to sometimes heal the wielder when striking in melee.)", GOSSIP_SENDER_MAIN, 109);
  236. AddGossipItemFor(player, 1, "Titanguard|cff0000ff(Permanently enchant a melee weapon to increase Stamina by 25)", GOSSIP_SENDER_MAIN, 110);
  237. AddGossipItemFor(player, 1, "Superior Potency|cff0000ff(Permanently enchant a melee weapon to increase attack power by 65)", GOSSIP_SENDER_MAIN, 111);
  238. AddGossipItemFor(player, 1, "Mighty Spellpower|cff0000ff(Permanently enchant a melee weapon to increase spell power by 63.)", GOSSIP_SENDER_MAIN, 112);
  239. AddGossipItemFor(player, 1, "Mongoose|cff0000ff(Permanently enchant a Melee Weapon to occasionally increase Agility by 120 and attack speed slightly.)", GOSSIP_SENDER_MAIN, 113);
  240. AddGossipItemFor(player, 1, "Executioner|cff0000ff(Permanently enchant a melee weapon to occasionally grant you 120 armor penetration rating.)", GOSSIP_SENDER_MAIN, 114);
  241. AddGossipItemFor(player, 1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  242. player->PlayerTalkClass->SendGossipMenu(100002, creature->GetGUID());
  243. return true;
  244. break;
  245.  
  246. case 2: // Enchant 2H Weapon
  247. {
  248. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND);
  249.  
  250. if (!item)
  251. {
  252. player->GetSession()->SendNotification(ERROR_NO2H);
  253. player->PlayerTalkClass->SendCloseGossip();
  254. return false;
  255. }
  256.  
  257. if (item->GetTemplate()->InventoryType == INVTYPE_2HWEAPON)
  258. {
  259. AddGossipItemFor(player, 1, "Berserking|cff0000ff(Permanently enchant a melee weapon to sometimes increase your attack power by 400, but at the cost of reduced armor.)", GOSSIP_SENDER_MAIN, 104);
  260. AddGossipItemFor(player, 1, "+81 Spellpower", GOSSIP_SENDER_MAIN, 115);
  261. AddGossipItemFor(player, 1, "+35 Agility", GOSSIP_SENDER_MAIN, 116);
  262. AddGossipItemFor(player, 1, "+110 Attack Power", GOSSIP_SENDER_MAIN, 117);
  263. AddGossipItemFor(player, 1, "Mongoose|cff0000ff(Permanently enchant a Melee Weapon to occasionally increase Agility by 120 and attack speed slightly.)", GOSSIP_SENDER_MAIN, 113);
  264. AddGossipItemFor(player, 1, "Executioner|cff0000ff(Permanently enchant a melee weapon to occasionally grant you 120 armor penetration rating.)", GOSSIP_SENDER_MAIN, 114);
  265. AddGossipItemFor(player, 1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  266. player->PlayerTalkClass->SendGossipMenu(100003, creature->GetGUID());
  267. return true;
  268. }
  269. else
  270. {
  271. player->GetSession()->SendNotification(NO_2H);
  272. player->PlayerTalkClass->SendCloseGossip();
  273. }
  274. }
  275. break;
  276.  
  277. case 3: // Enchant Shield
  278. {
  279. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  280.  
  281. if (!item)
  282. {
  283. player->GetSession()->SendNotification(ERROR_NOSHIELD);
  284. player->PlayerTalkClass->SendCloseGossip();
  285. return false;
  286. }
  287.  
  288. if (item->GetTemplate()->InventoryType == INVTYPE_SHIELD)
  289. {
  290. AddGossipItemFor(player, 1, "+20 Defense Rating", GOSSIP_SENDER_MAIN, 118);
  291. AddGossipItemFor(player, 1, "+25 Intellect", GOSSIP_SENDER_MAIN, 119);
  292. AddGossipItemFor(player, 1, "+12 Resilience", GOSSIP_SENDER_MAIN, 120);
  293. AddGossipItemFor(player, 1, "+81 Block Value & -50% Disarm Effect", GOSSIP_SENDER_MAIN, 121);
  294. AddGossipItemFor(player, 1, "+18 Stamina", GOSSIP_SENDER_MAIN, 122);
  295. AddGossipItemFor(player, 1, "+36 Block Value", GOSSIP_SENDER_MAIN, 123);
  296. AddGossipItemFor(player, 1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  297. player->PlayerTalkClass->SendGossipMenu(100004, creature->GetGUID());
  298. return true;
  299. }
  300. else
  301. {
  302. player->GetSession()->SendNotification(NO_SHIELD);
  303. player->PlayerTalkClass->SendCloseGossip();
  304. }
  305. }
  306. break;
  307.  
  308. case 4: // Enchant Head
  309. AddGossipItemFor(player, 1, "30 Spell Power + 10 Mp5 ", GOSSIP_SENDER_MAIN, 124);
  310. AddGossipItemFor(player, 1, "30 Spell Power + 20 Crit Rating", GOSSIP_SENDER_MAIN, 125);
  311. AddGossipItemFor(player, 1, "29 Spell Power + 20 Resilience Rating", GOSSIP_SENDER_MAIN, 126);
  312. AddGossipItemFor(player, 1, "30 Stamina + 25 Resilience Rating", GOSSIP_SENDER_MAIN, 127);
  313. AddGossipItemFor(player, 1, "37 Stamina + 20 Defense Rating", GOSSIP_SENDER_MAIN, 128);
  314. AddGossipItemFor(player, 1, "50 Attack Power + 20 Crit Rating", GOSSIP_SENDER_MAIN, 129);
  315. AddGossipItemFor(player, 1, "50 Attack Power + 20 Resilience Rating", GOSSIP_SENDER_MAIN, 130);
  316. AddGossipItemFor(player, 1, "25 Arcane Resist + 30 Stamina", GOSSIP_SENDER_MAIN, 131);
  317. AddGossipItemFor(player, 1, "25 Fire Resist + 30 Stamina", GOSSIP_SENDER_MAIN, 132);
  318. AddGossipItemFor(player, 1, "25 Shadow Resist + 30 Stamina", GOSSIP_SENDER_MAIN, 133);
  319. AddGossipItemFor(player, 1, "25 Frost Resist + 30 Stamina", GOSSIP_SENDER_MAIN, 134);
  320. AddGossipItemFor(player, 1, "25 Nature Resist + 30 Stamina", GOSSIP_SENDER_MAIN, 135);
  321. AddGossipItemFor(player, 1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  322. player->PlayerTalkClass->SendGossipMenu(100005, creature->GetGUID());
  323. return true;
  324. break;
  325.  
  326. case 5: // Enchant Shoulders
  327. if (player->HasSkill(SKILL_INSCRIPTION) && player->GetSkillValue(SKILL_INSCRIPTION) == 450)
  328. {
  329. AddGossipItemFor(player, 1, "120 Attack Power + 15 Crit Rating", GOSSIP_SENDER_MAIN, 136);
  330. AddGossipItemFor(player, 1, "70 Spell Power + 8 Mp5", GOSSIP_SENDER_MAIN, 137);
  331. AddGossipItemFor(player, 1, "60 Dodge Rating + 15 Defense Rating", GOSSIP_SENDER_MAIN, 138);
  332. AddGossipItemFor(player, 1, "70 Spell Power + 15 Crit Rating", GOSSIP_SENDER_MAIN, 139);
  333. }
  334. AddGossipItemFor(player, 1, "40 Attack Power + 15 Crit Rating", GOSSIP_SENDER_MAIN, 140);
  335. AddGossipItemFor(player, 1, "24 Spell Power + 8 Mp5", GOSSIP_SENDER_MAIN, 141);
  336. AddGossipItemFor(player, 1, "30 Stamina + 15 Resilience", GOSSIP_SENDER_MAIN, 142);
  337. AddGossipItemFor(player, 1, "20 Dodge Rating + 15 Defense Rating", GOSSIP_SENDER_MAIN, 143);
  338. AddGossipItemFor(player, 1, "24 Spell Power + 15 Crit Rating", GOSSIP_SENDER_MAIN, 144);
  339. AddGossipItemFor(player, 1, "23 Spell Power + 15 Resilience", GOSSIP_SENDER_MAIN, 145);
  340. AddGossipItemFor(player, 1, "40 Attack Power + 15 Resilience", GOSSIP_SENDER_MAIN, 146);
  341. AddGossipItemFor(player, 1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  342. player->PlayerTalkClass->SendGossipMenu(100006, creature->GetGUID());
  343. return true;
  344. break;
  345.  
  346. case 6: // Enchant Cloak
  347. AddGossipItemFor(player, 1, "+27 Spell Power + Parachute", GOSSIP_SENDER_MAIN, 147);
  348. AddGossipItemFor(player, 1, "+10 Agility + Slightly Stealth Increase", GOSSIP_SENDER_MAIN, 148);
  349. AddGossipItemFor(player, 1, "+400 Mana (Tailoring)", GOSSIP_SENDER_MAIN, 149);
  350. AddGossipItemFor(player, 1, "+295 Spell Power (Tailoring)", GOSSIP_SENDER_MAIN, 150);
  351. AddGossipItemFor(player, 1, "+400 Attack Power (Tailoring)", GOSSIP_SENDER_MAIN, 151);
  352. AddGossipItemFor(player, 1, "+10 Spirit + Slighty reduce threat", GOSSIP_SENDER_MAIN, 152);
  353. AddGossipItemFor(player, 1, "+16 Defense Rating", GOSSIP_SENDER_MAIN, 153);
  354. AddGossipItemFor(player, 1, "+35 Spell Penetration", GOSSIP_SENDER_MAIN, 154);
  355. AddGossipItemFor(player, 1, "+225 Armor", GOSSIP_SENDER_MAIN, 155);
  356. AddGossipItemFor(player, 1, "+22 Agility", GOSSIP_SENDER_MAIN, 156);
  357. AddGossipItemFor(player, 1, "+23 Haste", GOSSIP_SENDER_MAIN, 157);
  358. AddGossipItemFor(player, 1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  359. player->PlayerTalkClass->SendGossipMenu(100007, creature->GetGUID());
  360. return true;
  361. break;
  362.  
  363. case 7: //Enchant chest
  364. AddGossipItemFor(player, 1, "+10 All Stats", GOSSIP_SENDER_MAIN, 158);
  365. AddGossipItemFor(player, 1, "+275 Health", GOSSIP_SENDER_MAIN, 159);
  366. AddGossipItemFor(player, 1, "+10 Mp5", GOSSIP_SENDER_MAIN, 160);
  367. AddGossipItemFor(player, 1, "+20 Resilience", GOSSIP_SENDER_MAIN, 161);
  368. AddGossipItemFor(player, 1, "+22 Defense Rating", GOSSIP_SENDER_MAIN, 162);
  369. AddGossipItemFor(player, 1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  370. player->PlayerTalkClass->SendGossipMenu(100008, creature->GetGUID());
  371. return true;
  372. break;
  373.  
  374. case 8: //Enchant Bracers
  375. AddGossipItemFor(player, 1, "+40 Stamina", GOSSIP_SENDER_MAIN, 163);
  376. AddGossipItemFor(player, 1, "+30 Spell Power", GOSSIP_SENDER_MAIN, 164);
  377. AddGossipItemFor(player, 1, "+50 Attack Power", GOSSIP_SENDER_MAIN, 165);
  378. AddGossipItemFor(player, 1, "+18 Spirit", GOSSIP_SENDER_MAIN, 166);
  379. AddGossipItemFor(player, 1, "+15 Expertise Rating", GOSSIP_SENDER_MAIN, 167);
  380. AddGossipItemFor(player, 1, "+6 All Stats", GOSSIP_SENDER_MAIN, 168);
  381. AddGossipItemFor(player, 1, "+16 Intellect", GOSSIP_SENDER_MAIN, 169);
  382. AddGossipItemFor(player, 1, "+70 Arcane Resistance (LW)", GOSSIP_SENDER_MAIN, 170);
  383. AddGossipItemFor(player, 1, "+70 Fire Resistance (LW)", GOSSIP_SENDER_MAIN, 171);
  384. AddGossipItemFor(player, 1, "+70 Frost Resistance (LW)", GOSSIP_SENDER_MAIN, 172);
  385. AddGossipItemFor(player, 1, "+70 Nature Resistance (LW)", GOSSIP_SENDER_MAIN, 173);
  386. AddGossipItemFor(player, 1, "+70 Shadow Resistance (LW)", GOSSIP_SENDER_MAIN, 174);
  387. AddGossipItemFor(player, 1, "+130 Attack Power (LW)", GOSSIP_SENDER_MAIN, 175);
  388. AddGossipItemFor(player, 1, "+102 Stamina (LW)", GOSSIP_SENDER_MAIN, 176);
  389. AddGossipItemFor(player, 1, "+76 Spell Power (LW)", GOSSIP_SENDER_MAIN, 177);
  390. AddGossipItemFor(player, 1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  391. player->PlayerTalkClass->SendGossipMenu(100009, creature->GetGUID());
  392. return true;
  393. break;
  394.  
  395. case 9: //Enchant Gloves
  396. AddGossipItemFor(player, 1, "+16 Crit Rating", GOSSIP_SENDER_MAIN, 178);
  397. AddGossipItemFor(player, 1, "+10 Parry Rating + 2% Threat", GOSSIP_SENDER_MAIN, 179);
  398. AddGossipItemFor(player, 1, "+44 Attack Power", GOSSIP_SENDER_MAIN, 180);
  399. AddGossipItemFor(player, 1, "+20 Agility", GOSSIP_SENDER_MAIN, 181);
  400. AddGossipItemFor(player, 1, "+20 Hit Rating", GOSSIP_SENDER_MAIN, 182);
  401. AddGossipItemFor(player, 1, "+15 Expertise Rating", GOSSIP_SENDER_MAIN, 183);
  402. AddGossipItemFor(player, 1, "+28 Spell Power", GOSSIP_SENDER_MAIN, 199);
  403. AddGossipItemFor(player, 1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  404. player->PlayerTalkClass->SendGossipMenu(100010, creature->GetGUID());
  405. return true;
  406. break;
  407.  
  408. case 10: //Enchant legs
  409. AddGossipItemFor(player, 1, "40 Reslience + 28 Stamina", GOSSIP_SENDER_MAIN, 184);
  410. AddGossipItemFor(player, 1, "22 Agility + 55 Stamina", GOSSIP_SENDER_MAIN, 185);
  411. AddGossipItemFor(player, 1, "75 Attack Power + 22 Crit Rating", GOSSIP_SENDER_MAIN, 186);
  412. AddGossipItemFor(player, 1, "50 Spell Power + 20 Spirit", GOSSIP_SENDER_MAIN, 187);
  413. AddGossipItemFor(player, 1, "50 Spell Power + 30 Stamina", GOSSIP_SENDER_MAIN, 188);
  414. AddGossipItemFor(player, 1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  415. player->PlayerTalkClass->SendGossipMenu(100011, creature->GetGUID());
  416. return true;
  417. break;
  418.  
  419. case 11: //Enchant feet
  420. AddGossipItemFor(player, 1, "+32 Attack Power ", GOSSIP_SENDER_MAIN, 191);
  421. AddGossipItemFor(player, 1, "+15 Stamina + Minor Movement Speed Increase", GOSSIP_SENDER_MAIN, 192);
  422. AddGossipItemFor(player, 1, "+16 Agility", GOSSIP_SENDER_MAIN, 193);
  423. AddGossipItemFor(player, 1, "+18 Spirit", GOSSIP_SENDER_MAIN, 194);
  424. AddGossipItemFor(player, 1, "+7 Mp5 + Health every 5 Seconds", GOSSIP_SENDER_MAIN, 195);
  425. AddGossipItemFor(player, 1, "+12 Hit Rating + Crit Rating", GOSSIP_SENDER_MAIN, 196);
  426. AddGossipItemFor(player, 1, "+22 Stamina", GOSSIP_SENDER_MAIN, 197);
  427. AddGossipItemFor(player, 1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  428. player->PlayerTalkClass->SendGossipMenu(100012, creature->GetGUID());
  429. return true;
  430. break;
  431.  
  432. case 12: //Enchant rings
  433. AddGossipItemFor(player, 1, "+40 Attack Power (JW)", GOSSIP_SENDER_MAIN, 202);
  434. AddGossipItemFor(player, 1, "+12 Spell Power", GOSSIP_SENDER_MAIN, 203);
  435. AddGossipItemFor(player, 1, "+30 Stamina", GOSSIP_SENDER_MAIN, 204);
  436. AddGossipItemFor(player, 1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  437. player->PlayerTalkClass->SendGossipMenu(100013, creature->GetGUID());
  438. return true;
  439. break;
  440.  
  441. case 13: //Enchant Off-Hand weapons
  442. {
  443. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  444.  
  445. if(!item)
  446. {
  447. player->GetSession()->SendNotification(ERROR_1HOFFHAND);
  448. player->PlayerTalkClass->SendCloseGossip();
  449. return false;
  450. }
  451.  
  452. if (item->GetTemplate()->InventoryType == INVTYPE_WEAPON)
  453. {
  454. AddGossipItemFor(player, 1, "Blade Ward|cff0000ff(Increases your parry rating by 200 and inflicts 600 to 800 damage on your next parry.", GOSSIP_SENDER_MAIN, 205);
  455. AddGossipItemFor(player, 1, "Blood Draining|cff0000ff(Permanently enchant your weapon to sometimes grant Blood Reserve when striking an enemy or inflicting damage with bleed attacks.When you fall below 35% health, Blood Reserve restores 180 to 219 health.", GOSSIP_SENDER_MAIN, 219);
  456. AddGossipItemFor(player, 1, "+26 Agility", GOSSIP_SENDER_MAIN, 206);
  457. AddGossipItemFor(player, 1, "+45 Spirit", GOSSIP_SENDER_MAIN, 207);
  458. AddGossipItemFor(player, 1, "Berserking|cff0000ff(Permanently enchant a melee weapon to sometimes increase your attack power by 400, but at the cost of reduced armor.", GOSSIP_SENDER_MAIN, 208);
  459. AddGossipItemFor(player, 1, "Accuracy|cff0000ff(+25 Hit Rating and +25 Critical Strike Rating.)", GOSSIP_SENDER_MAIN, 209);
  460. AddGossipItemFor(player, 1, "Black Magic|cff0000ff(Permanently enchant a melee weapon to cause your harmful spells to sometimes increase haste rating by 250.", GOSSIP_SENDER_MAIN, 210);
  461. AddGossipItemFor(player, 1, "Battlemaster|cff0000ff(Permanently enchant a Melee Weapon to occasionaly heal nearby party members of 180 to 300 health when an enemy is struck.", GOSSIP_SENDER_MAIN, 211);
  462. AddGossipItemFor(player, 1, "Icebreaker|cff0000ff(Sometimes inflict Fire damage.)", GOSSIP_SENDER_MAIN, 212);
  463. AddGossipItemFor(player, 1, "Lifeward|cff0000ff(Permanently enchant a melee weapon to sometimes heal the wielder when striking in melee.)", GOSSIP_SENDER_MAIN, 213);
  464. AddGossipItemFor(player, 1, "Titanguard|cff0000ff(Permanently enchant a melee weapon to increase Stamina by 25)", GOSSIP_SENDER_MAIN, 214);
  465. AddGossipItemFor(player, 1, "+65 Attack Power", GOSSIP_SENDER_MAIN, 215);
  466. AddGossipItemFor(player, 1, "+63 Spellpower", GOSSIP_SENDER_MAIN, 216);
  467. AddGossipItemFor(player, 1, "Mongoose|cff0000ff(Permanently enchant a Melee Weapon to occasionally increase Agility by 120 and attack speed slightly.)", GOSSIP_SENDER_MAIN, 217);
  468. AddGossipItemFor(player, 1, "Executioner|cff0000ff(Permanently enchant a melee weapon to occasionally grant you 120 armor penetration rating.)", GOSSIP_SENDER_MAIN, 218);
  469. AddGossipItemFor(player, 1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  470. player->PlayerTalkClass->SendGossipMenu(100002, creature->GetGUID());
  471. return true;
  472. }
  473. else
  474. {
  475. player->GetSession()->SendNotification(ERROROFFH);
  476. player->PlayerTalkClass->SendCloseGossip();
  477. }
  478. }
  479. break;
  480.  
  481. case 14: //Remove enchant menu
  482. AddGossipItemFor(player, 1, "Remove enchant on Main-hand", GOSSIP_SENDER_MAIN, 400);
  483. AddGossipItemFor(player, 1, "Remove enchant on Off-hand", GOSSIP_SENDER_MAIN, 401);
  484. AddGossipItemFor(player, 1, "Remove enchant on Head", GOSSIP_SENDER_MAIN, 402);
  485. AddGossipItemFor(player, 1, "Remove enchant on Shoulders", GOSSIP_SENDER_MAIN, 403);
  486. AddGossipItemFor(player, 1, "Remove enchant on Cloak", GOSSIP_SENDER_MAIN, 404);
  487. AddGossipItemFor(player, 1, "Remove enchant on Chest", GOSSIP_SENDER_MAIN, 405);
  488. AddGossipItemFor(player, 1, "Remove enchant on Bracers", GOSSIP_SENDER_MAIN, 406);
  489. AddGossipItemFor(player, 1, "Remove enchant on Gloves", GOSSIP_SENDER_MAIN, 407);
  490. AddGossipItemFor(player, 1, "Remove enchant on Legs", GOSSIP_SENDER_MAIN, 408);
  491. AddGossipItemFor(player, 1, "Remove enchant on Feet", GOSSIP_SENDER_MAIN, 409);
  492. AddGossipItemFor(player, 1, "Remove enchant on Rings", GOSSIP_SENDER_MAIN, 409);
  493. AddGossipItemFor(player, 1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  494. player->PlayerTalkClass->SendGossipMenu(100014, creature->GetGUID());
  495. return true;
  496. break;
  497.  
  498. case 15: // Socket Belt
  499. AdvancedEnchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WAIST), PRISMATIC_ENCHANTMENT_SLOT, ENCHANT_WAIST_SOCKET); // Socket Belt
  500. player->PlayerTalkClass->SendCloseGossip();
  501. break;
  502.  
  503. case 100:
  504. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_AGILITY_1H);
  505. player->PlayerTalkClass->SendCloseGossip();
  506. break;
  507.  
  508. case 101:
  509. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_SPIRIT);
  510. player->PlayerTalkClass->SendCloseGossip();
  511. break;
  512.  
  513. case 102:
  514. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_BLADE_WARD);
  515. player->PlayerTalkClass->SendCloseGossip();
  516. break;
  517.  
  518. case 103:
  519. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_BLOOD_DRAINING);
  520. player->PlayerTalkClass->SendCloseGossip();
  521. break;
  522.  
  523. case 104:
  524. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_BERSERKING);
  525. player->PlayerTalkClass->SendCloseGossip();
  526. break;
  527.  
  528. case 105:
  529. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_ACCURACY);
  530. player->PlayerTalkClass->SendCloseGossip();
  531. break;
  532.  
  533. case 106:
  534. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_BLACK_MAGIC);
  535. player->PlayerTalkClass->SendCloseGossip();
  536. break;
  537.  
  538. case 107:
  539. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_BATTLEMASTER);
  540. player->PlayerTalkClass->SendCloseGossip();
  541. break;
  542.  
  543. case 108:
  544. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_ICEBREAKER);
  545. player->PlayerTalkClass->SendCloseGossip();
  546. break;
  547.  
  548. case 109:
  549. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_LIFEWARD);
  550. player->PlayerTalkClass->SendCloseGossip();
  551. break;
  552.  
  553. case 110:
  554. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_TITANGUARD);
  555. player->PlayerTalkClass->SendCloseGossip();
  556. break;
  557.  
  558. case 111:
  559. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_POTENCY);
  560. player->PlayerTalkClass->SendCloseGossip();
  561. break;
  562.  
  563. case 112:
  564. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_MIGHTY_SPELL_POWER);
  565. player->PlayerTalkClass->SendCloseGossip();
  566. break;
  567.  
  568. case 113:
  569. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_2WEP_MONGOOSE);
  570. player->PlayerTalkClass->SendCloseGossip();
  571. break;
  572.  
  573. case 114:
  574. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_EXECUTIONER);
  575. player->PlayerTalkClass->SendCloseGossip();
  576. break;
  577.  
  578. case 115:
  579. {
  580. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND);
  581.  
  582. if (!item)
  583. {
  584. player->GetSession()->SendAreaTriggerMessage(ERROR_NO2H);
  585. player->PlayerTalkClass->SendCloseGossip();
  586. return false;
  587. }
  588.  
  589. if (item->GetTemplate()->InventoryType == INVTYPE_2HWEAPON)
  590. {
  591. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_2WEP_GREATER_SPELL_POWER);
  592. player->PlayerTalkClass->SendCloseGossip();
  593. }
  594. else
  595. {
  596. player->GetSession()->SendAreaTriggerMessage(NO_2H);
  597. player->PlayerTalkClass->SendCloseGossip();
  598. }
  599. }
  600. break;
  601.  
  602. case 116:
  603. {
  604. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND);
  605.  
  606. if (!item)
  607. {
  608. player->GetSession()->SendAreaTriggerMessage(ERROR_NO2H);
  609. player->PlayerTalkClass->SendCloseGossip();
  610. return false;
  611. }
  612.  
  613. if (item->GetTemplate()->InventoryType == INVTYPE_2HWEAPON)
  614. {
  615. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_2WEP_AGILITY);
  616. player->PlayerTalkClass->SendCloseGossip();
  617. }
  618. else
  619. {
  620. player->GetSession()->SendAreaTriggerMessage(NO_2H);
  621. player->PlayerTalkClass->SendCloseGossip();
  622. }
  623. }
  624. break;
  625.  
  626. case 117:
  627. {
  628. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND);
  629.  
  630. if (!item)
  631. {
  632. player->GetSession()->SendAreaTriggerMessage(ERROR_NO2H);
  633. player->PlayerTalkClass->SendCloseGossip();
  634. return false;
  635. }
  636.  
  637. if (item->GetTemplate()->InventoryType == INVTYPE_2HWEAPON)
  638. {
  639. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_2WEP_MASSACRE);
  640. player->PlayerTalkClass->SendCloseGossip();
  641. }
  642. else
  643. {
  644. player->GetSession()->SendAreaTriggerMessage(NO_2H);
  645. player->PlayerTalkClass->SendCloseGossip();
  646. }
  647. }
  648. break;
  649.  
  650. case 118:
  651. {
  652. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  653.  
  654. if(!item)
  655. {
  656. player->GetSession()->SendAreaTriggerMessage(ERROR_NOSHIELD);
  657. player->PlayerTalkClass->SendCloseGossip();
  658. return false;
  659. }
  660.  
  661. if (item->GetTemplate()->InventoryType == INVTYPE_SHIELD)
  662. {
  663. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_SHIELD_DEFENSE);
  664. player->PlayerTalkClass->SendCloseGossip();
  665. }
  666. else
  667. {
  668. player->GetSession()->SendAreaTriggerMessage(NO_SHIELD);
  669. player->PlayerTalkClass->SendCloseGossip();
  670. }
  671. }
  672. break;
  673.  
  674. case 119:
  675. {
  676. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  677.  
  678. if(!item)
  679. {
  680. player->GetSession()->SendAreaTriggerMessage(ERROR_NOSHIELD);
  681. player->PlayerTalkClass->SendCloseGossip();
  682. return false;
  683. }
  684.  
  685. if (item->GetTemplate()->InventoryType == INVTYPE_SHIELD)
  686. {
  687. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_SHIELD_INTELLECT);
  688. player->PlayerTalkClass->SendCloseGossip();
  689. }
  690. else
  691. {
  692. player->GetSession()->SendAreaTriggerMessage(NO_SHIELD);
  693. player->PlayerTalkClass->SendCloseGossip();
  694. }
  695. }
  696. break;
  697.  
  698. case 120:
  699. {
  700. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  701.  
  702. if(!item)
  703. {
  704. player->GetSession()->SendAreaTriggerMessage(ERROR_NOSHIELD);
  705. player->PlayerTalkClass->SendCloseGossip();
  706. return false;
  707. }
  708.  
  709. if (item->GetTemplate()->InventoryType == INVTYPE_SHIELD)
  710. {
  711. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_SHIELD_RESILIENCE);
  712. player->PlayerTalkClass->SendCloseGossip();
  713. }
  714. else
  715. {
  716. player->GetSession()->SendAreaTriggerMessage(NO_SHIELD);
  717. player->PlayerTalkClass->SendCloseGossip();
  718. }
  719. }
  720. break;
  721.  
  722. case 121:
  723. {
  724. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  725.  
  726. if(!item)
  727. {
  728. player->GetSession()->SendAreaTriggerMessage(ERROR_NOSHIELD);
  729. player->PlayerTalkClass->SendCloseGossip();
  730. return false;
  731. }
  732.  
  733. if (item->GetTemplate()->InventoryType == INVTYPE_SHIELD)
  734. {
  735. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_SHIELD_TITANIUM_PLATING);
  736. player->PlayerTalkClass->SendCloseGossip();
  737. }
  738. else
  739. {
  740. player->GetSession()->SendAreaTriggerMessage(NO_SHIELD);
  741. player->PlayerTalkClass->SendCloseGossip();
  742. }
  743. }
  744. break;
  745.  
  746. case 122:
  747. {
  748. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  749.  
  750. if(!item)
  751. {
  752. player->GetSession()->SendAreaTriggerMessage(ERROR_NOSHIELD);
  753. player->PlayerTalkClass->SendCloseGossip();
  754. return false;
  755. }
  756.  
  757. if (item->GetTemplate()->InventoryType == INVTYPE_SHIELD)
  758. {
  759. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_SHIELD_STAMINA);
  760. player->PlayerTalkClass->SendCloseGossip();
  761. }
  762. else
  763. {
  764. player->GetSession()->SendAreaTriggerMessage(NO_SHIELD);
  765. player->PlayerTalkClass->SendCloseGossip();
  766. }
  767. }
  768. break;
  769.  
  770. case 123:
  771. {
  772. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  773.  
  774. if(!item)
  775. {
  776. player->GetSession()->SendAreaTriggerMessage(ERROR_NOSHIELD);
  777. player->PlayerTalkClass->SendCloseGossip();
  778. return false;
  779. }
  780.  
  781. if (item->GetTemplate()->InventoryType == INVTYPE_SHIELD)
  782. {
  783. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_SHIELD_TOUGHSHIELD);
  784. player->PlayerTalkClass->SendCloseGossip();
  785. }
  786. else
  787. {
  788. player->GetSession()->SendAreaTriggerMessage(NO_SHIELD);
  789. player->PlayerTalkClass->SendCloseGossip();
  790. }
  791. }
  792. break;
  793.  
  794. case 124:
  795. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_BLISSFUL_MENDING);
  796. player->PlayerTalkClass->SendCloseGossip();
  797. break;
  798.  
  799. case 125:
  800. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_BURNING_MYSTERIES);
  801. player->PlayerTalkClass->SendCloseGossip();
  802. break;
  803.  
  804. case 126:
  805. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_DOMINANCE);
  806. player->PlayerTalkClass->SendCloseGossip();
  807. break;
  808.  
  809. case 127:
  810. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_SAVAGE_GLADIATOR);
  811. player->PlayerTalkClass->SendCloseGossip();
  812. break;
  813.  
  814. case 128:
  815. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_STALWART_PROTECTOR);
  816. player->PlayerTalkClass->SendCloseGossip();
  817. break;
  818.  
  819. case 129:
  820. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_TORMENT);
  821. player->PlayerTalkClass->SendCloseGossip();
  822. break;
  823.  
  824. case 130:
  825. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_TRIUMPH);
  826. player->PlayerTalkClass->SendCloseGossip();
  827. break;
  828.  
  829. case 131:
  830. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_ECLIPSED_MOON);
  831. player->PlayerTalkClass->SendCloseGossip();
  832. break;
  833.  
  834. case 132:
  835. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_FLAME_SOUL);
  836. player->PlayerTalkClass->SendCloseGossip();
  837. break;
  838.  
  839. case 133:
  840. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_FLEEING_SHADOW);
  841. player->PlayerTalkClass->SendCloseGossip();
  842. break;
  843.  
  844. case 134:
  845. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_FROSTY_SOUL);
  846. player->PlayerTalkClass->SendCloseGossip();
  847. break;
  848.  
  849. case 135:
  850. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_TOXIC_WARDING);
  851. player->PlayerTalkClass->SendCloseGossip();
  852. break;
  853.  
  854. case 136:
  855. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_MASTERS_AXE);
  856. player->PlayerTalkClass->SendCloseGossip();
  857. break;
  858.  
  859. case 137:
  860. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_MASTERS_CRAG);
  861. player->PlayerTalkClass->SendCloseGossip();
  862. break;
  863.  
  864. case 138:
  865. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_MASTERS_PINNACLE);
  866. player->PlayerTalkClass->SendCloseGossip();
  867. break;
  868.  
  869. case 139:
  870. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_MASTERS_STORM);
  871. player->PlayerTalkClass->SendCloseGossip();
  872. break;
  873.  
  874. case 140:
  875. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_GREATER_AXE);
  876. player->PlayerTalkClass->SendCloseGossip();
  877. break;
  878.  
  879. case 141:
  880. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_GREATER_CRAG);
  881. player->PlayerTalkClass->SendCloseGossip();
  882. break;
  883.  
  884. case 142:
  885. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_GREATER_GLADIATOR);
  886. player->PlayerTalkClass->SendCloseGossip();
  887. break;
  888.  
  889. case 143:
  890. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_GREATER_PINNACLE);
  891. player->PlayerTalkClass->SendCloseGossip();
  892. break;
  893.  
  894. case 144:
  895. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_GREATER_STORM);
  896. player->PlayerTalkClass->SendCloseGossip();
  897. break;
  898.  
  899. case 145:
  900. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_DOMINANCE);
  901. player->PlayerTalkClass->SendCloseGossip();
  902. break;
  903.  
  904. case 146:
  905. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_TRIUMPH);
  906. player->PlayerTalkClass->SendCloseGossip();
  907. break;
  908.  
  909. case 147:
  910. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_SPRINGY_ARACHNOWEAVE);
  911. player->PlayerTalkClass->SendCloseGossip();
  912. break;
  913.  
  914. case 148:
  915. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_SHADOW_ARMOR);
  916. player->PlayerTalkClass->SendCloseGossip();
  917. break;
  918.  
  919. case 149:
  920. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_DARKGLOW_EMBROIDERY);
  921. player->PlayerTalkClass->SendCloseGossip();
  922. break;
  923.  
  924. case 150:
  925. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_LIGHTWEAVE_EMBROIDERY);
  926. player->PlayerTalkClass->SendCloseGossip();
  927. break;
  928.  
  929. case 151:
  930. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_SWORDGUARD_EMBROIDERY);
  931. player->PlayerTalkClass->SendCloseGossip();
  932. break;
  933.  
  934. case 152:
  935. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_WISDOM);
  936. player->PlayerTalkClass->SendCloseGossip();
  937. break;
  938.  
  939. case 153:
  940. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_TITANWEAVE);
  941. player->PlayerTalkClass->SendCloseGossip();
  942. break;
  943.  
  944. case 154:
  945. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_SPELL_PIERCING);
  946. player->PlayerTalkClass->SendCloseGossip();
  947. break;
  948.  
  949. case 155:
  950. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_MIGHTY_ARMOR);
  951. player->PlayerTalkClass->SendCloseGossip();
  952. break;
  953.  
  954. case 156:
  955. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_MAJOR_AGILITY);
  956. player->PlayerTalkClass->SendCloseGossip();
  957. break;
  958.  
  959. case 157:
  960. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_GREATER_SPEED);
  961. player->PlayerTalkClass->SendCloseGossip();
  962. break;
  963.  
  964. case 158:
  965. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_CHEST), ENCHANT_CHEST_POWERFUL_STATS);
  966. player->PlayerTalkClass->SendCloseGossip();
  967. break;
  968.  
  969. case 159:
  970. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_CHEST), ENCHANT_CHEST_SUPER_HEALTH);
  971. player->PlayerTalkClass->SendCloseGossip();
  972. break;
  973.  
  974. case 160:
  975. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_CHEST), ENCHANT_CHEST_GREATER_MAINA_REST);
  976. player->PlayerTalkClass->SendCloseGossip();
  977. break;
  978.  
  979. case 161:
  980. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_CHEST), ENCHANT_CHEST_EXCEPTIONAL_RESIL);
  981. player->PlayerTalkClass->SendCloseGossip();
  982. break;
  983.  
  984. case 162:
  985. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_CHEST), ENCHANT_CHEST_GREATER_DEFENSE);
  986. player->PlayerTalkClass->SendCloseGossip();
  987. break;
  988.  
  989. case 163:
  990. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_MAJOR_STAMINA);
  991. player->PlayerTalkClass->SendCloseGossip();
  992. break;
  993.  
  994. case 164:
  995. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_SUPERIOR_SP);
  996. player->PlayerTalkClass->SendCloseGossip();
  997. break;
  998.  
  999. case 165:
  1000. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_GREATER_ASSUALT);
  1001. player->PlayerTalkClass->SendCloseGossip();
  1002. break;
  1003.  
  1004. case 166:
  1005. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_MAJOR_SPIRT);
  1006. player->PlayerTalkClass->SendCloseGossip();
  1007. break;
  1008.  
  1009. case 167:
  1010. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_EXPERTISE);
  1011. player->PlayerTalkClass->SendCloseGossip();
  1012. break;
  1013.  
  1014. case 168:
  1015. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_GREATER_STATS);
  1016. player->PlayerTalkClass->SendCloseGossip();
  1017. break;
  1018.  
  1019. case 169:
  1020. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_INTELLECT);
  1021. player->PlayerTalkClass->SendCloseGossip();
  1022. break;
  1023.  
  1024. case 170:
  1025. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_FURL_ARCANE);
  1026. player->PlayerTalkClass->SendCloseGossip();
  1027. break;
  1028.  
  1029. case 171:
  1030. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_FURL_FIRE);
  1031. player->PlayerTalkClass->SendCloseGossip();
  1032. break;
  1033.  
  1034. case 172:
  1035. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_FURL_FROST);
  1036. player->PlayerTalkClass->SendCloseGossip();
  1037. break;
  1038.  
  1039. case 173:
  1040. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_FURL_NATURE);
  1041. player->PlayerTalkClass->SendCloseGossip();
  1042. break;
  1043.  
  1044. case 174:
  1045. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_FURL_SHADOW);
  1046. player->PlayerTalkClass->SendCloseGossip();
  1047. break;
  1048.  
  1049. case 175:
  1050. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_FURL_ATTACK);
  1051. player->PlayerTalkClass->SendCloseGossip();
  1052. break;
  1053.  
  1054. case 176:
  1055. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_FURL_STAMINA);
  1056. player->PlayerTalkClass->SendCloseGossip();
  1057. break;
  1058.  
  1059. case 177:
  1060. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_FURL_SPELLPOWER);
  1061. player->PlayerTalkClass->SendCloseGossip();
  1062. break;
  1063.  
  1064. case 178:
  1065. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_GREATER_BLASTING);
  1066. player->PlayerTalkClass->SendCloseGossip();
  1067. break;
  1068.  
  1069. case 179:
  1070. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_ARMSMAN);
  1071. player->PlayerTalkClass->SendCloseGossip();
  1072. break;
  1073.  
  1074. case 180:
  1075. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_CRUSHER);
  1076. player->PlayerTalkClass->SendCloseGossip();
  1077. break;
  1078.  
  1079. case 181:
  1080. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_AGILITY);
  1081. player->PlayerTalkClass->SendCloseGossip();
  1082. break;
  1083.  
  1084. case 182:
  1085. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_PRECISION);
  1086. player->PlayerTalkClass->SendCloseGossip();
  1087. break;
  1088.  
  1089. case 183:
  1090. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_EXPERTISE);
  1091. player->PlayerTalkClass->SendCloseGossip();
  1092. break;
  1093.  
  1094. case 184:
  1095. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_LEGS), ENCHANT_LEG_EARTHEN);
  1096. player->PlayerTalkClass->SendCloseGossip();
  1097. break;
  1098.  
  1099. case 185:
  1100. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_LEGS), ENCHANT_LEG_FROSTHIDE);
  1101. player->PlayerTalkClass->SendCloseGossip();
  1102. break;
  1103.  
  1104. case 186:
  1105. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_LEGS), ENCHANT_LEG_ICESCALE);
  1106. player->PlayerTalkClass->SendCloseGossip();
  1107. break;
  1108.  
  1109. case 187:
  1110. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_LEGS), ENCHANT_LEG_BRILLIANT_SPELLTHREAD);
  1111. player->PlayerTalkClass->SendCloseGossip();
  1112. break;
  1113.  
  1114. case 188:
  1115. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_LEGS), ENCHANT_LEG_SAPPHIRE_SPELLTHREAD);
  1116. player->PlayerTalkClass->SendCloseGossip();
  1117. break;
  1118.  
  1119. case 191:
  1120. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_GREATER_ASSULT);
  1121. player->PlayerTalkClass->SendCloseGossip();
  1122. break;
  1123.  
  1124. case 192:
  1125. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_TUSKARS_VITLIATY);
  1126. player->PlayerTalkClass->SendCloseGossip();
  1127. break;
  1128.  
  1129. case 193:
  1130. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_SUPERIOR_AGILITY);
  1131. player->PlayerTalkClass->SendCloseGossip();
  1132. break;
  1133.  
  1134. case 194:
  1135. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_GREATER_SPIRIT);
  1136. player->PlayerTalkClass->SendCloseGossip();
  1137. break;
  1138.  
  1139. case 195:
  1140. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_GREATER_VITALITY);
  1141. player->PlayerTalkClass->SendCloseGossip();
  1142. break;
  1143.  
  1144. case 196:
  1145. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_ICEWALKER);
  1146. player->PlayerTalkClass->SendCloseGossip();
  1147. break;
  1148.  
  1149. case 197:
  1150. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_GREATER_FORTITUDE);
  1151. player->PlayerTalkClass->SendCloseGossip();
  1152. break;
  1153.  
  1154. case 199:
  1155. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_EXCEPTIONAL_SPELLPOWER);
  1156. player->PlayerTalkClass->SendCloseGossip();
  1157. break;
  1158.  
  1159. case 202:
  1160. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER1), ENCHANT_RING_ASSULT);
  1161. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER2), ENCHANT_RING_ASSULT);
  1162. player->PlayerTalkClass->SendCloseGossip();
  1163. break;
  1164.  
  1165. case 203:
  1166. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER1), ENCHANT_RING_GREATER_SP);
  1167. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER2), ENCHANT_RING_GREATER_SP);
  1168. player->PlayerTalkClass->SendCloseGossip();
  1169. break;
  1170.  
  1171. case 204:
  1172. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER1), ENCHANT_RING_STAMINA);
  1173. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER2), ENCHANT_RING_STAMINA);
  1174. player->PlayerTalkClass->SendCloseGossip();
  1175. break;
  1176.  
  1177. case 205:
  1178. {
  1179. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  1180.  
  1181. if(!item)
  1182. {
  1183. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1184. player->PlayerTalkClass->SendCloseGossip();
  1185. return false;
  1186. }
  1187.  
  1188. if (item->GetTemplate()->InventoryType == INVTYPE_WEAPON)
  1189. {
  1190. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEP_BLADE_WARD);
  1191. player->PlayerTalkClass->SendCloseGossip();
  1192. }
  1193. else
  1194. {
  1195. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1196. player->PlayerTalkClass->SendCloseGossip();
  1197. }
  1198. }
  1199. break;
  1200.  
  1201. case 206:
  1202. {
  1203. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  1204.  
  1205. if(!item)
  1206. {
  1207. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1208. player->PlayerTalkClass->SendCloseGossip();
  1209. return false;
  1210. }
  1211.  
  1212. if (item->GetTemplate()->InventoryType == INVTYPE_WEAPON)
  1213. {
  1214. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEP_AGILITY_1H);
  1215. player->PlayerTalkClass->SendCloseGossip();
  1216. }
  1217. else
  1218. {
  1219. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1220. player->PlayerTalkClass->SendCloseGossip();
  1221. }
  1222. }
  1223. break;
  1224.  
  1225. case 207:
  1226. {
  1227. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  1228.  
  1229. if(!item)
  1230. {
  1231. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1232. player->PlayerTalkClass->SendCloseGossip();
  1233. return false;
  1234. }
  1235.  
  1236. if (item->GetTemplate()->InventoryType == INVTYPE_WEAPON)
  1237. {
  1238. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEP_SPIRIT);
  1239. player->PlayerTalkClass->SendCloseGossip();
  1240. }
  1241. else
  1242. {
  1243. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1244. player->PlayerTalkClass->SendCloseGossip();
  1245. }
  1246. }
  1247. break;
  1248.  
  1249. case 208:
  1250. {
  1251. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  1252.  
  1253. if(!item)
  1254. {
  1255. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1256. player->PlayerTalkClass->SendCloseGossip();
  1257. return false;
  1258. }
  1259.  
  1260. if (item->GetTemplate()->InventoryType == INVTYPE_WEAPON)
  1261. {
  1262. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEP_BERSERKING);
  1263. player->PlayerTalkClass->SendCloseGossip();
  1264. }
  1265. else
  1266. {
  1267. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1268. player->PlayerTalkClass->SendCloseGossip();
  1269. }
  1270. }
  1271. break;
  1272.  
  1273. case 209:
  1274. {
  1275. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  1276.  
  1277. if(!item)
  1278. {
  1279. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1280. player->PlayerTalkClass->SendCloseGossip();
  1281. return false;
  1282. }
  1283.  
  1284. if (item->GetTemplate()->InventoryType == INVTYPE_WEAPON)
  1285. {
  1286. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEP_ACCURACY);
  1287. player->PlayerTalkClass->SendCloseGossip();
  1288. }
  1289. else
  1290. {
  1291. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1292. player->PlayerTalkClass->SendCloseGossip();
  1293. }
  1294. }
  1295. break;
  1296.  
  1297. case 210:
  1298. {
  1299. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  1300.  
  1301. if(!item)
  1302. {
  1303. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1304. player->PlayerTalkClass->SendCloseGossip();
  1305. return false;
  1306. }
  1307.  
  1308. if (item->GetTemplate()->InventoryType == INVTYPE_WEAPON)
  1309. {
  1310. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEP_BLACK_MAGIC);
  1311. player->PlayerTalkClass->SendCloseGossip();
  1312. }
  1313. else
  1314. {
  1315. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1316. player->PlayerTalkClass->SendCloseGossip();
  1317. }
  1318. }
  1319. break;
  1320.  
  1321. case 211:
  1322. {
  1323. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  1324.  
  1325. if(!item)
  1326. {
  1327. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1328. player->PlayerTalkClass->SendCloseGossip();
  1329. return false;
  1330. }
  1331.  
  1332. if (item->GetTemplate()->InventoryType == INVTYPE_WEAPON)
  1333. {
  1334. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEP_BATTLEMASTER);
  1335. player->PlayerTalkClass->SendCloseGossip();
  1336. }
  1337. else
  1338. {
  1339. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1340. player->PlayerTalkClass->SendCloseGossip();
  1341. }
  1342. }
  1343. break;
  1344.  
  1345. case 212:
  1346. {
  1347. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  1348.  
  1349. if(!item)
  1350. {
  1351. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1352. player->PlayerTalkClass->SendCloseGossip();
  1353. return false;
  1354. }
  1355.  
  1356. if (item->GetTemplate()->InventoryType == INVTYPE_WEAPON)
  1357. {
  1358. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEP_ICEBREAKER);
  1359. player->PlayerTalkClass->SendCloseGossip();
  1360. }
  1361. else
  1362. {
  1363. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1364. player->PlayerTalkClass->SendCloseGossip();
  1365. }
  1366. }
  1367. break;
  1368.  
  1369. case 213:
  1370. {
  1371. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  1372.  
  1373. if(!item)
  1374. {
  1375. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1376. player->PlayerTalkClass->SendCloseGossip();
  1377. return false;
  1378. }
  1379.  
  1380. if (item->GetTemplate()->InventoryType == INVTYPE_WEAPON)
  1381. {
  1382. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEP_LIFEWARD);
  1383. player->PlayerTalkClass->SendCloseGossip();
  1384. }
  1385. else
  1386. {
  1387. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1388. player->PlayerTalkClass->SendCloseGossip();
  1389. }
  1390. }
  1391. break;
  1392.  
  1393. case 214:
  1394. {
  1395. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  1396.  
  1397. if(!item)
  1398. {
  1399. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1400. player->PlayerTalkClass->SendCloseGossip();
  1401. return false;
  1402. }
  1403.  
  1404. if (item->GetTemplate()->InventoryType == INVTYPE_WEAPON)
  1405. {
  1406. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEP_TITANGUARD);
  1407. player->PlayerTalkClass->SendCloseGossip();
  1408. }
  1409. else
  1410. {
  1411. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1412. player->PlayerTalkClass->SendCloseGossip();
  1413. }
  1414. }
  1415. break;
  1416.  
  1417. case 215:
  1418. {
  1419. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  1420.  
  1421. if(!item)
  1422. {
  1423. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1424. player->PlayerTalkClass->SendCloseGossip();
  1425. return false;
  1426. }
  1427.  
  1428. if (item->GetTemplate()->InventoryType == INVTYPE_WEAPON)
  1429. {
  1430. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEP_POTENCY);
  1431. player->PlayerTalkClass->SendCloseGossip();
  1432. }
  1433. else
  1434. {
  1435. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1436. player->PlayerTalkClass->SendCloseGossip();
  1437. }
  1438. }
  1439. break;
  1440.  
  1441. case 216:
  1442. {
  1443. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  1444.  
  1445. if(!item)
  1446. {
  1447. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1448. player->PlayerTalkClass->SendCloseGossip();
  1449. return false;
  1450. }
  1451.  
  1452. if (item->GetTemplate()->InventoryType == INVTYPE_WEAPON)
  1453. {
  1454. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEP_MIGHTY_SPELL_POWER);
  1455. player->PlayerTalkClass->SendCloseGossip();
  1456. }
  1457. else
  1458. {
  1459. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1460. player->PlayerTalkClass->SendCloseGossip();
  1461. }
  1462. }
  1463. break;
  1464.  
  1465. case 217:
  1466. {
  1467. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  1468.  
  1469. if(!item)
  1470. {
  1471. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1472. player->PlayerTalkClass->SendCloseGossip();
  1473. return false;
  1474. }
  1475.  
  1476. if (item->GetTemplate()->InventoryType == INVTYPE_WEAPON)
  1477. {
  1478. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_2WEP_MONGOOSE);
  1479. player->PlayerTalkClass->SendCloseGossip();
  1480. }
  1481. else
  1482. {
  1483. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1484. player->PlayerTalkClass->SendCloseGossip();
  1485. }
  1486. }
  1487. break;
  1488.  
  1489. case 218:
  1490. {
  1491. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  1492.  
  1493. if(!item)
  1494. {
  1495. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1496. player->PlayerTalkClass->SendCloseGossip();
  1497. return false;
  1498. }
  1499.  
  1500. if (item->GetTemplate()->InventoryType == INVTYPE_WEAPON)
  1501. {
  1502. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEP_EXECUTIONER);
  1503. player->PlayerTalkClass->SendCloseGossip();
  1504. }
  1505. else
  1506. {
  1507. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1508. player->PlayerTalkClass->SendCloseGossip();
  1509. }
  1510. }
  1511. break;
  1512.  
  1513. case 219:
  1514. {
  1515. item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  1516.  
  1517. if(!item)
  1518. {
  1519. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1520. player->PlayerTalkClass->SendCloseGossip();
  1521. return false;
  1522. }
  1523.  
  1524. if (item->GetTemplate()->InventoryType == INVTYPE_WEAPON)
  1525. {
  1526. Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEP_BLOOD_DRAINING);
  1527. player->PlayerTalkClass->SendCloseGossip();
  1528. }
  1529. else
  1530. {
  1531. player->GetSession()->SendAreaTriggerMessage(ERROR_1HOFFHAND);
  1532. player->PlayerTalkClass->SendCloseGossip();
  1533. }
  1534. }
  1535. break;
  1536.  
  1537. case 300: //<-Back menu
  1538. OnGossipHello(player, creature);
  1539. break;
  1540.  
  1541. case 500: // Back to Main Menu..
  1542. OnGossipHello(player, creature);
  1543. break;
  1544. }
  1545. return true;
  1546. }
  1547. struct MyAI : public ScriptedAI
  1548. {
  1549. MyAI(Creature* creature) : ScriptedAI(creature) { }
  1550. bool GossipHello(Player* player) override
  1551. {
  1552. return OnGossipHello(player, me);
  1553. }
  1554. bool GossipSelect(Player* player, uint32 menuId, uint32 gossipListId) override
  1555. {
  1556. uint32 sender = player->PlayerTalkClass->GetGossipOptionSender(gossipListId);
  1557. uint32 action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId);
  1558. return OnGossipSelect(player, me, sender, action);
  1559. }
  1560. };
  1561.  
  1562. CreatureAI* GetAI(Creature* creature) const override
  1563. {
  1564. return new MyAI(creature);
  1565. }
  1566. };
  1567.  
  1568. void AddSC_npc_enchantment()
  1569. {
  1570. new npc_enchantment();
  1571. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement