Advertisement
Parranoia

Enchant NPC

Aug 11th, 2012
408
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 40.93 KB | None | 0 0
  1. #include "ScriptPCH.h"
  2.  
  3. enum Enchants
  4. {
  5.     ENCHANT_WEP_LANDSLIDE                   = 4099,
  6.     ENCHANT_WEP_POWER_TORRENT               = 4097,
  7.     ENCHANT_WEP_WINDWALK                    = 4098,
  8.     ENCHANT_WEP_HEARTSONG                   = 4084,
  9.     ENCHANT_WEP_HURRICANE                   = 4083,
  10.     ENCHANT_WEP_ELEMENTAL_SLAYER            = 4074,
  11.     ENCHANT_WEP_AVALANCHE                   = 4067,
  12.     ENCHANT_WEP_MENDING                     = 4066,
  13.     ENCHANT_2HWEP_MIGHTY_AGILITY            = 4227,
  14.  
  15.     ENCHANT_OFF_HAND_SUPERIOR_INTELLECT     = 4091,
  16.     ENCHANT_SHIELD_MASTERY                  = 4085,
  17.     ENCHANT_SHIELD_PROTECTION               = 4073,
  18.  
  19.     ENCHANT_HEAD_VICIOUS_INTELLECT          = 4245,
  20.     ENCHANT_HEAD_VICIOUS_AGILITY            = 4246,
  21.     ENCHANT_HEAD_VICIOUS_STRENGTH           = 4247,
  22.  
  23.     ENCHANT_SHOULDER_VICIOUS_INTELLECT      = 4248,
  24.     ENCHANT_SHOULDER_VICIOUS_AGILITY        = 4250,
  25.     ENCHANT_SHOULDER_VICIOUS_STRENGTH       = 4249,
  26.  
  27.     ENCHANT_CLOAK_GREATER_CRITICAL_STRIKE   = 4100,
  28.     ENCHANT_CLOAK_GREATER_INTELLECT         = 4096,
  29.     ENCHANT_CLOAK_PROTECTION                = 4090,
  30.     ENCHANT_CLOAK_GREATER_SPELL_PIERCING    = 4064,
  31.  
  32.     ENCHANT_GLOVES_GREATER_MASTERY          = 4107,
  33.     ENCHANT_GLOVES_MIGHTY_STRENGTH          = 4106,
  34.     ENCHANT_GLOVES_GREATER_EXPERTISE        = 4082,
  35.     ENCHANT_GLOVES_HASTE                    = 4068,
  36.  
  37.     ENCHANT_BRACERS_GREATER_CRITICAL_STRIKE = 4101,
  38.     ENCHANT_BRACERS_GREATER_SPEED           = 4108,
  39.     ENCHANT_BRACERS_AGILITY                 = 4258,
  40.     ENCHANT_BRACERS_MAJOR_STRENGTH          = 4256,
  41.     ENCHANT_BRACERS_MIGHTY_INTELLECT        = 4257,
  42.     ENCHANT_BRACERS_GREATER_EXPERTISE       = 4095,
  43.     ENCHANT_BRACERS_EXCEPTIONAL_SPIRIT      = 4093,
  44.     ENCHANT_BRACERS_PRECISION               = 4089,
  45.     ENCHANT_BRACERS_SUPERIOR_DODGE          = 4086,
  46.  
  47.     ENCHANT_CHEST_PEERLESS_STATS            = 4102,
  48.     ENCHANT_CHEST_GREATER_STAMINA           = 4103,
  49.     ENCHANT_CHEST_EXCEPTIONAL_SPIRIT        = 4088,
  50.     ENCHANT_CHEST_MIGHTY_RESILIENCE         = 4077,
  51.  
  52.     ENCHANT_BOOTS_ASSASSINS_STEP            = 4105,
  53.     ENCHANT_BOOTS_LAVAWALKER                = 4104,
  54.     ENCHANT_BOOTS_MASTERY                   = 4094,
  55.     ENCHANT_BOOTS_PRECISION                 = 4092,
  56.     ENCHANT_BOOTS_MAJOR_AGILITY             = 4076,
  57.     ENCHANT_BOOTS_HASTE                     = 4069,
  58.  
  59.     ENCHANT_RING_AGILITY                    = 4079,
  60.     ENCHANT_RING_GREATER_STAMINA            = 4081,
  61.     ENCHANT_RING_INTELLECT                  = 4080,
  62.     ENCHANT_RING_STRENGTH                   = 4078,
  63. };
  64.  
  65. #define ONE_HAND_WEAPON_COST    10000 * 20 //20g
  66. #define TWO_HAND_WEAPON_COST    10000 * 30 //30g
  67. #define MAIN_PIECES_COST        10000 * 15 //15g
  68. #define OFF_PIECES_COST         10000 * 10 //10g
  69. #define SHIELD_COST             10000 * 10 //10g
  70.  
  71. void Enchant(Player* player, Item* item, uint32 enchantid)
  72. {
  73.     if (!item)
  74.     {
  75.         player->GetSession()->SendNotification("You need to equip an item in that slot to enchant it!");
  76.         return;
  77.     }
  78.  
  79.     if (!enchantid)
  80.         return;
  81.        
  82.     player->ApplyEnchantment(item, PERM_ENCHANTMENT_SLOT, false);
  83.     item->SetEnchantment(PERM_ENCHANTMENT_SLOT, enchantid, 0, 0);
  84.     player->ApplyEnchantment(item, PERM_ENCHANTMENT_SLOT, true);
  85.     std::string color = "|cff";
  86.     switch (item->GetTemplate()->Quality)
  87.     {
  88.     case 0:
  89.         color += "9d9d9d";
  90.         break;
  91.     case 1:
  92.         color += "ffffff";
  93.         break;
  94.     case 2:
  95.         color += "1eff00";
  96.         break;
  97.     case 3:
  98.         color += "0070dd";
  99.         break;
  100.     case 4:
  101.         color += "a335ee";
  102.         break;
  103.     case 5:
  104.         color += "ff8000";
  105.         break;
  106.     }
  107.     ChatHandler(player).PSendSysMessage("|cffFFFFFF[%s%s|cffFFFFFF] |cffFF0000succesfully enchanted!", color.c_str(), item->GetTemplate()->Name1.c_str());
  108. }
  109.  
  110. class npc_enchantment : public CreatureScript
  111. {
  112. public:
  113.     npc_enchantment() : CreatureScript("npc_enchantment") { }
  114.  
  115.         bool OnGossipHello(Player* player, Creature* creature)
  116.         {
  117.             player->ADD_GOSSIP_ITEM(1, "[Enchant Weapon]", GOSSIP_SENDER_MAIN, 1);
  118.             player->ADD_GOSSIP_ITEM(1, "[Enchant 2H Weapon]", GOSSIP_SENDER_MAIN, 2);
  119.             player->ADD_GOSSIP_ITEM(1, "[Enchant Off-Hand]", GOSSIP_SENDER_MAIN, 3);
  120.             player->ADD_GOSSIP_ITEM(1, "[Enchant Head]", GOSSIP_SENDER_MAIN, 4);
  121.             player->ADD_GOSSIP_ITEM(1, "[Enchant Shoulders]", GOSSIP_SENDER_MAIN, 5);
  122.             player->ADD_GOSSIP_ITEM(1, "[Enchant Cloak]", GOSSIP_SENDER_MAIN, 6);
  123.             player->ADD_GOSSIP_ITEM(1, "[Enchant Chest]", GOSSIP_SENDER_MAIN, 7);
  124.             player->ADD_GOSSIP_ITEM(1, "[Enchant Bracers]", GOSSIP_SENDER_MAIN, 8);
  125.             player->ADD_GOSSIP_ITEM(1, "[Enchant Gloves]", GOSSIP_SENDER_MAIN, 9);
  126.             player->ADD_GOSSIP_ITEM(1, "[Enchant Legs]", GOSSIP_SENDER_MAIN, 10);
  127.             player->ADD_GOSSIP_ITEM(1, "[Enchant Feet]", GOSSIP_SENDER_MAIN, 11);
  128.  
  129.             if (player->HasSkill(SKILL_ENCHANTING) && player->GetSkillValue(SKILL_ENCHANTING) == 450)
  130.                 player->ADD_GOSSIP_ITEM(1, "[Enchant Rings]", GOSSIP_SENDER_MAIN, 12);
  131.  
  132.             player->SEND_GOSSIP_MENU(100001, creature->GetGUID());
  133.             return true;
  134.         }
  135.  
  136.         bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
  137.         {
  138.             player->PlayerTalkClass->ClearMenus();
  139.             Item * mainItem;
  140.  
  141.             switch (action)
  142.             {
  143.  
  144.                 case 1: // Enchant Weapon
  145.                     player->ADD_GOSSIP_ITEM(1, "Avalanche [20g]", GOSSIP_SENDER_MAIN, 102);
  146.                     player->ADD_GOSSIP_ITEM(1, "Elemental Slayer [20g]", GOSSIP_SENDER_MAIN, 103);
  147.                     player->ADD_GOSSIP_ITEM(1, "Heartsong [20g]", GOSSIP_SENDER_MAIN, 100);
  148.                     player->ADD_GOSSIP_ITEM(1, "Hurricane [20g]", GOSSIP_SENDER_MAIN, 101);
  149.                     player->ADD_GOSSIP_ITEM(1, "Landslide [20g]", GOSSIP_SENDER_MAIN, 104);
  150.                     player->ADD_GOSSIP_ITEM(1, "Power Torrent [20g]", GOSSIP_SENDER_MAIN, 105);
  151.                     player->ADD_GOSSIP_ITEM(1, "Mending [20g]", GOSSIP_SENDER_MAIN, 106);
  152.                     player->ADD_GOSSIP_ITEM(1, "Windwalk [20g]", GOSSIP_SENDER_MAIN, 107);
  153.                     player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  154.                     player->PlayerTalkClass->SendGossipMenu(100002, creature->GetGUID());
  155.                     return true;
  156.                     break;
  157.  
  158.                 case 2: // Enchant 2H Weapon
  159.                     {
  160.                         mainItem = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND);
  161.                         if (!mainItem || mainItem->GetTemplate()->InventoryType != INVTYPE_2HWEAPON)
  162.                         {
  163.                             player->GetSession()->SendAreaTriggerMessage("|cffFF0000You need a Two-Hand Weapon equipped!");
  164.                             return false;
  165.                             player->PlayerTalkClass->SendCloseGossip();
  166.                         }
  167.                         if (mainItem->GetTemplate()->InventoryType == INVTYPE_2HWEAPON)
  168.                         {
  169.                             player->ADD_GOSSIP_ITEM(1, "Avalanche [20g]", GOSSIP_SENDER_MAIN, 102);
  170.                             player->ADD_GOSSIP_ITEM(1, "Elemental Slayer [20g]", GOSSIP_SENDER_MAIN, 103);
  171.                             player->ADD_GOSSIP_ITEM(1, "Heartsong [20g]", GOSSIP_SENDER_MAIN, 100);
  172.                             player->ADD_GOSSIP_ITEM(1, "Hurricane [20g]", GOSSIP_SENDER_MAIN, 101);
  173.                             player->ADD_GOSSIP_ITEM(1, "Landslide [20g]", GOSSIP_SENDER_MAIN, 104);
  174.                             player->ADD_GOSSIP_ITEM(1, "Power Torrent [20g]", GOSSIP_SENDER_MAIN, 105);
  175.                             player->ADD_GOSSIP_ITEM(1, "Mending [20g]", GOSSIP_SENDER_MAIN, 106);
  176.                             player->ADD_GOSSIP_ITEM(1, "Windwalk [20g]", GOSSIP_SENDER_MAIN, 107);
  177.                             player->ADD_GOSSIP_ITEM(1, "Mighty Agility [30g]", GOSSIP_SENDER_MAIN, 108);
  178.                             player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  179.                             player->PlayerTalkClass->SendGossipMenu(100003, creature->GetGUID());
  180.                             return true;
  181.                         }
  182.                     }
  183.                     break;
  184.  
  185.                 case 3: // Enchant Shield
  186.                     {
  187.                         mainItem = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  188.                         if (!mainItem)
  189.                         {
  190.                             player->GetSession()->SendAreaTriggerMessage("|cffFF0000You need an Off-Hand or Shield equipped!");
  191.                             player->PlayerTalkClass->SendCloseGossip();
  192.                             return false;                          
  193.                         }
  194.                         if (mainItem->GetTemplate()->InventoryType == INVTYPE_SHIELD)
  195.                         {
  196.                             player->ADD_GOSSIP_ITEM(1, "Mastery [10g]", GOSSIP_SENDER_MAIN, 109);
  197.                             player->ADD_GOSSIP_ITEM(1, "Protection [10g]", GOSSIP_SENDER_MAIN, 110);
  198.                             player->ADD_GOSSIP_ITEM(1, "Superior Intellect [10g]", GOSSIP_SENDER_MAIN, 111);
  199.                             player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  200.                             player->PlayerTalkClass->SendGossipMenu(100004, creature->GetGUID());
  201.                             return true;
  202.                         }
  203.                         if (mainItem->GetTemplate()->InventoryType == INVTYPE_WEAPONOFFHAND)
  204.                         {
  205.                             player->ADD_GOSSIP_ITEM(1, "Superior Intellect [10g]", GOSSIP_SENDER_MAIN, 111);
  206.                             player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  207.                             player->SEND_GOSSIP_MENU(100004, creature->GetGUID());
  208.                         }
  209.                        
  210.                     }
  211.                     break;
  212.  
  213.                 case 4: // Enchant Head
  214.                     player->ADD_GOSSIP_ITEM(1, "Arcanum of Vicious Agility [15g]", GOSSIP_SENDER_MAIN, 112);
  215.                     player->ADD_GOSSIP_ITEM(1, "Arcanum of Vicious Intellect [15g]", GOSSIP_SENDER_MAIN, 113);
  216.                     player->ADD_GOSSIP_ITEM(1, "Arcanum of Vicious Strength [15g]", GOSSIP_SENDER_MAIN, 114);
  217.                     player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  218.                     player->PlayerTalkClass->SendGossipMenu(100005, creature->GetGUID());
  219.                     return true;
  220.                     break;
  221.  
  222.                 case 5: // Enchant Shoulders
  223.                     player->ADD_GOSSIP_ITEM(1, "Greater Inscription of the Vicious Agility [15g]", GOSSIP_SENDER_MAIN, 115);
  224.                     player->ADD_GOSSIP_ITEM(1, "Greater Inscription of the Vicious Intellect [15g]", GOSSIP_SENDER_MAIN, 116);
  225.                     player->ADD_GOSSIP_ITEM(1, "Greater Inscription of the Vicious Strength [15g]", GOSSIP_SENDER_MAIN, 117);
  226.                     player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  227.                     player->PlayerTalkClass->SendGossipMenu(100006, creature->GetGUID());
  228.                     return true;
  229.                     break;
  230.  
  231.                 case 6: // Enchant Cloak
  232.                     player->ADD_GOSSIP_ITEM(1, "Greater Critical Strike [10g]", GOSSIP_SENDER_MAIN, 118);
  233.                     player->ADD_GOSSIP_ITEM(1, "Greater Intellect [10g]", GOSSIP_SENDER_MAIN, 119);
  234.                     player->ADD_GOSSIP_ITEM(1, "Greater Spell Piercing [10g]", GOSSIP_SENDER_MAIN, 120);
  235.                     player->ADD_GOSSIP_ITEM(1, "Protection [10g]", GOSSIP_SENDER_MAIN, 121);
  236.                     player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  237.                     player->PlayerTalkClass->SendGossipMenu(100007, creature->GetGUID());
  238.                     return true;
  239.                     break;
  240.  
  241.                 case 7: //Enchant chest
  242.                     player->ADD_GOSSIP_ITEM(1, "Exceptional Spirit [15g]", GOSSIP_SENDER_MAIN, 122);
  243.                     player->ADD_GOSSIP_ITEM(1, "Greater Stamina [15g]", GOSSIP_SENDER_MAIN, 123);
  244.                     player->ADD_GOSSIP_ITEM(1, "Mighty Resilience [15g]", GOSSIP_SENDER_MAIN, 124);
  245.                     player->ADD_GOSSIP_ITEM(1, "Peerless Stats [15g]", GOSSIP_SENDER_MAIN, 125);
  246.                     player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  247.                     player->PlayerTalkClass->SendGossipMenu(100008, creature->GetGUID());
  248.                     return true;
  249.                     break;
  250.  
  251.                 case 8: //Enchant Bracers
  252.                     player->ADD_GOSSIP_ITEM(1, "Agility [10g]", GOSSIP_SENDER_MAIN, 126);
  253.                     player->ADD_GOSSIP_ITEM(1, "Exceptional Spirit [10g]", GOSSIP_SENDER_MAIN, 127);
  254.                     player->ADD_GOSSIP_ITEM(1, "Greater Critical Strike [10g]", GOSSIP_SENDER_MAIN, 128);
  255.                     player->ADD_GOSSIP_ITEM(1, "Greater Expertise [10g]", GOSSIP_SENDER_MAIN, 129);
  256.                     player->ADD_GOSSIP_ITEM(1, "Greater Speed [10g]", GOSSIP_SENDER_MAIN, 130);
  257.                     player->ADD_GOSSIP_ITEM(1, "Major Strength [10g]", GOSSIP_SENDER_MAIN, 131);
  258.                     player->ADD_GOSSIP_ITEM(1, "Mighty Intellect [10g]", GOSSIP_SENDER_MAIN, 132);
  259.                     player->ADD_GOSSIP_ITEM(1, "Precision [10g]", GOSSIP_SENDER_MAIN, 133);
  260.                     player->ADD_GOSSIP_ITEM(1, "Superior Dodge [10g]", GOSSIP_SENDER_MAIN, 134);
  261.                     player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  262.                     player->PlayerTalkClass->SendGossipMenu(100009, creature->GetGUID());
  263.                     return true;
  264.                     break;
  265.  
  266.                 case 9: //Enchant Gloves
  267.                     player->ADD_GOSSIP_ITEM(1, "Greater Expertise [15g]", GOSSIP_SENDER_MAIN, 135);
  268.                     player->ADD_GOSSIP_ITEM(1, "Greater Mastery [15g]", GOSSIP_SENDER_MAIN, 136);
  269.                     player->ADD_GOSSIP_ITEM(1, "Haste [15g]", GOSSIP_SENDER_MAIN, 137);
  270.                     player->ADD_GOSSIP_ITEM(1, "Mighty Strength [15g]", GOSSIP_SENDER_MAIN, 138);
  271.                     player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  272.                     player->PlayerTalkClass->SendGossipMenu(100010, creature->GetGUID());
  273.                     return true;
  274.                     break;
  275.  
  276.                 case 11: //Enchant feet
  277.                     player->ADD_GOSSIP_ITEM(1, "Assassins Step [10g]", GOSSIP_SENDER_MAIN, 139);
  278.                     player->ADD_GOSSIP_ITEM(1, "Haste [10g]", GOSSIP_SENDER_MAIN, 140);
  279.                     player->ADD_GOSSIP_ITEM(1, "Lavawalker [10g]", GOSSIP_SENDER_MAIN, 141);
  280.                     player->ADD_GOSSIP_ITEM(1, "Major Agility [10g]", GOSSIP_SENDER_MAIN, 142);
  281.                     player->ADD_GOSSIP_ITEM(1, "Mastery [10g]", GOSSIP_SENDER_MAIN, 143);
  282.                     player->ADD_GOSSIP_ITEM(1, "Precision [10g]", GOSSIP_SENDER_MAIN, 144);
  283.                     player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  284.                     player->PlayerTalkClass->SendGossipMenu(100012, creature->GetGUID());
  285.                     return true;
  286.                     break;
  287.  
  288.                 case 12: //Enchant rings
  289.                     player->ADD_GOSSIP_ITEM(1, "Agility [10g]", GOSSIP_SENDER_MAIN, 145);
  290.                     player->ADD_GOSSIP_ITEM(1, "Greater Stamina [10g]", GOSSIP_SENDER_MAIN, 146);
  291.                     player->ADD_GOSSIP_ITEM(1, "Intellect [10g]", GOSSIP_SENDER_MAIN, 147);
  292.                     player->ADD_GOSSIP_ITEM(1, "Strength [10g]", GOSSIP_SENDER_MAIN, 148);
  293.                     player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
  294.                     player->PlayerTalkClass->SendGossipMenu(100013, creature->GetGUID());
  295.                     return true;
  296.                     break;
  297.  
  298.                 case 100:
  299.                     if (player->GetMoney() < ONE_HAND_WEAPON_COST) {
  300.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", ONE_HAND_WEAPON_COST/10000);
  301.                         player->CLOSE_GOSSIP_MENU();
  302.                         break;
  303.                     }
  304.  
  305.                     player->ModifyMoney(-ONE_HAND_WEAPON_COST);
  306.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_AVALANCHE);
  307.                     player->PlayerTalkClass->SendCloseGossip();
  308.                     break;
  309.  
  310.                 case 101:
  311.                     if (player->GetMoney() < ONE_HAND_WEAPON_COST) {
  312.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", ONE_HAND_WEAPON_COST/10000);
  313.                         player->CLOSE_GOSSIP_MENU();
  314.                         break;
  315.                     }
  316.  
  317.                     player->ModifyMoney(-ONE_HAND_WEAPON_COST);
  318.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_ELEMENTAL_SLAYER);
  319.                     player->PlayerTalkClass->SendCloseGossip();
  320.                     break;
  321.  
  322.                 case 102:
  323.                     if (player->GetMoney() < ONE_HAND_WEAPON_COST) {
  324.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", ONE_HAND_WEAPON_COST/10000);
  325.                         player->CLOSE_GOSSIP_MENU();
  326.                         break;
  327.                     }
  328.  
  329.                     player->ModifyMoney(-ONE_HAND_WEAPON_COST);
  330.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_HEARTSONG);
  331.                     player->PlayerTalkClass->SendCloseGossip();
  332.                     break;
  333.  
  334.                 case 103:
  335.                     if (player->GetMoney() < ONE_HAND_WEAPON_COST) {
  336.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", ONE_HAND_WEAPON_COST/10000);
  337.                         player->CLOSE_GOSSIP_MENU();
  338.                         break;
  339.                     }
  340.  
  341.                     player->ModifyMoney(-ONE_HAND_WEAPON_COST);
  342.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_HURRICANE);
  343.                     player->PlayerTalkClass->SendCloseGossip();
  344.                     break;
  345.  
  346.                 case 104:
  347.                     if (player->GetMoney() < ONE_HAND_WEAPON_COST) {
  348.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", ONE_HAND_WEAPON_COST/10000);
  349.                         player->CLOSE_GOSSIP_MENU();
  350.                         break;
  351.                     }
  352.  
  353.                     player->ModifyMoney(-ONE_HAND_WEAPON_COST);
  354.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_LANDSLIDE);
  355.                     player->PlayerTalkClass->SendCloseGossip();
  356.                     break;
  357.  
  358.                 case 105:
  359.                     if (player->GetMoney() < ONE_HAND_WEAPON_COST) {
  360.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", ONE_HAND_WEAPON_COST/10000);
  361.                         player->CLOSE_GOSSIP_MENU();
  362.                         break;
  363.                     }
  364.  
  365.                     player->ModifyMoney(-ONE_HAND_WEAPON_COST);
  366.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_MENDING);
  367.                     player->PlayerTalkClass->SendCloseGossip();
  368.                     break;
  369.  
  370.                 case 106:
  371.                     if (player->GetMoney() < ONE_HAND_WEAPON_COST) {
  372.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", ONE_HAND_WEAPON_COST/10000);
  373.                         player->CLOSE_GOSSIP_MENU();
  374.                         break;
  375.                     }
  376.  
  377.                     player->ModifyMoney(-ONE_HAND_WEAPON_COST);
  378.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_POWER_TORRENT);
  379.                     player->PlayerTalkClass->SendCloseGossip();
  380.                     break;
  381.  
  382.                 case 107:
  383.                     if (player->GetMoney() < ONE_HAND_WEAPON_COST) {
  384.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", ONE_HAND_WEAPON_COST/10000);
  385.                         player->CLOSE_GOSSIP_MENU();
  386.                         break;
  387.                     }
  388.  
  389.                     player->ModifyMoney(-ONE_HAND_WEAPON_COST);
  390.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEP_WINDWALK);
  391.                     player->PlayerTalkClass->SendCloseGossip();
  392.                     break;
  393.  
  394.                 case 108:
  395.                     if (player->GetMoney() < TWO_HAND_WEAPON_COST) {
  396.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", TWO_HAND_WEAPON_COST/10000);
  397.                         player->CLOSE_GOSSIP_MENU();
  398.                         break;
  399.                     }
  400.  
  401.                     mainItem = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND);
  402.                     if (mainItem->GetTemplate()->InventoryType == INVTYPE_2HWEAPON)
  403.                     {
  404.                         player->ModifyMoney(-TWO_HAND_WEAPON_COST);
  405.                         Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_2HWEP_MIGHTY_AGILITY);
  406.                         player->PlayerTalkClass->SendCloseGossip();
  407.                     }
  408.                     else
  409.                     {
  410.                         player->GetSession()->SendAreaTriggerMessage("|cffFF0000You don't have 2H equipped! Nice try.");
  411.                         player->PlayerTalkClass->SendCloseGossip();
  412.                     }
  413.                     break;
  414.  
  415.                 case 109:
  416.                     if (player->GetMoney() < SHIELD_COST) {
  417.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", SHIELD_COST/10000);
  418.                         player->CLOSE_GOSSIP_MENU();
  419.                         break;
  420.                     }
  421.  
  422.                     mainItem = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  423.                     if (mainItem->GetTemplate()->InventoryType == INVTYPE_SHIELD)
  424.                     {
  425.                         player->ModifyMoney(-SHIELD_COST);
  426.                         Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_SHIELD_MASTERY);
  427.                         player->PlayerTalkClass->SendCloseGossip();
  428.                     }
  429.                     else
  430.                     {
  431.                         player->GetSession()->SendAreaTriggerMessage("|cffFF0000You don't have Shield equipped! Nice try.");
  432.                         player->PlayerTalkClass->SendCloseGossip();
  433.                     }
  434.                     break;
  435.  
  436.                 case 110:
  437.                     if (player->GetMoney() < SHIELD_COST) {
  438.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", SHIELD_COST/10000);
  439.                         player->CLOSE_GOSSIP_MENU();
  440.                         break;
  441.                     }
  442.  
  443.                     mainItem = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  444.                     if (mainItem->GetTemplate()->InventoryType == INVTYPE_SHIELD)
  445.                     {
  446.                         player->ModifyMoney(-SHIELD_COST);
  447.                         Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_SHIELD_PROTECTION);
  448.                         player->PlayerTalkClass->SendCloseGossip();
  449.                     }
  450.                     else
  451.                     {
  452.                         player->GetSession()->SendAreaTriggerMessage("|cffFF0000You don't have Shield equipped! Nice try.");
  453.                         player->PlayerTalkClass->SendCloseGossip();
  454.                     }
  455.                     break;
  456.  
  457.                 case 111:
  458.                     if (player->GetMoney() < SHIELD_COST) {
  459.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", SHIELD_COST/10000);
  460.                         player->CLOSE_GOSSIP_MENU();
  461.                         break;
  462.                     }
  463.  
  464.                     player->ModifyMoney(-SHIELD_COST);
  465.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_OFF_HAND_SUPERIOR_INTELLECT);
  466.                     player->PlayerTalkClass->SendCloseGossip();
  467.                     break;
  468.  
  469.                 case 112:
  470.                     if (player->GetMoney() < MAIN_PIECES_COST) {
  471.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  472.                         player->CLOSE_GOSSIP_MENU();
  473.                         break;
  474.                     }
  475.  
  476.                     player->ModifyMoney(-MAIN_PIECES_COST);
  477.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_VICIOUS_AGILITY);
  478.                     player->PlayerTalkClass->SendCloseGossip();
  479.                     break;
  480.  
  481.                 case 113:
  482.                     if (player->GetMoney() < MAIN_PIECES_COST) {
  483.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  484.                         player->CLOSE_GOSSIP_MENU();
  485.                         break;
  486.                     }
  487.  
  488.                     player->ModifyMoney(-MAIN_PIECES_COST);
  489.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_VICIOUS_INTELLECT);
  490.                     player->PlayerTalkClass->SendCloseGossip();
  491.                     break;
  492.  
  493.                 case 114:
  494.                     if (player->GetMoney() < MAIN_PIECES_COST) {
  495.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  496.                         player->CLOSE_GOSSIP_MENU();
  497.                         break;
  498.                     }
  499.  
  500.                     player->ModifyMoney(-MAIN_PIECES_COST);
  501.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HEAD), ENCHANT_HEAD_VICIOUS_STRENGTH);
  502.                     player->PlayerTalkClass->SendCloseGossip();
  503.                     break;
  504.  
  505.                 case 115:
  506.                     if (player->GetMoney() < MAIN_PIECES_COST) {
  507.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  508.                         player->CLOSE_GOSSIP_MENU();
  509.                         break;
  510.                     }
  511.  
  512.                     player->ModifyMoney(-MAIN_PIECES_COST);
  513.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_VICIOUS_AGILITY);
  514.                     player->PlayerTalkClass->SendCloseGossip();
  515.                     break;
  516.  
  517.                 case 116:
  518.                     if (player->GetMoney() < MAIN_PIECES_COST) {
  519.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  520.                         player->CLOSE_GOSSIP_MENU();
  521.                         break;
  522.                     }
  523.  
  524.                     player->ModifyMoney(-MAIN_PIECES_COST);
  525.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_VICIOUS_INTELLECT);
  526.                     player->PlayerTalkClass->SendCloseGossip();
  527.                     break;
  528.  
  529.                 case 117:
  530.                     if (player->GetMoney() < MAIN_PIECES_COST) {
  531.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  532.                         player->CLOSE_GOSSIP_MENU();
  533.                         break;
  534.                     }
  535.  
  536.                     player->ModifyMoney(-MAIN_PIECES_COST);
  537.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_SHOULDERS), ENCHANT_SHOULDER_VICIOUS_STRENGTH);
  538.                     player->PlayerTalkClass->SendCloseGossip();
  539.                     break;
  540.  
  541.                 case 118:
  542.                     if (player->GetMoney() < OFF_PIECES_COST) {
  543.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", OFF_PIECES_COST/10000);
  544.                         player->CLOSE_GOSSIP_MENU();
  545.                         break;
  546.                     }
  547.  
  548.                     player->ModifyMoney(-OFF_PIECES_COST);
  549.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_GREATER_CRITICAL_STRIKE);
  550.                     player->PlayerTalkClass->SendCloseGossip();
  551.                     break;
  552.  
  553.                 case 119:
  554.                     if (player->GetMoney() < OFF_PIECES_COST) {
  555.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", OFF_PIECES_COST/10000);
  556.                         player->CLOSE_GOSSIP_MENU();
  557.                         break;
  558.                     }
  559.  
  560.                     player->ModifyMoney(-OFF_PIECES_COST);
  561.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_GREATER_INTELLECT);
  562.                     player->PlayerTalkClass->SendCloseGossip();
  563.                     break;
  564.  
  565.                 case 120:
  566.                     if (player->GetMoney() < OFF_PIECES_COST) {
  567.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", OFF_PIECES_COST/10000);
  568.                         player->CLOSE_GOSSIP_MENU();
  569.                         break;
  570.                     }
  571.  
  572.                     player->ModifyMoney(-OFF_PIECES_COST);
  573.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_GREATER_SPELL_PIERCING);
  574.                     player->PlayerTalkClass->SendCloseGossip();
  575.                     break;
  576.  
  577.                 case 121:
  578.                     if (player->GetMoney() < OFF_PIECES_COST) {
  579.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", OFF_PIECES_COST/10000);
  580.                         player->CLOSE_GOSSIP_MENU();
  581.                         break;
  582.                     }
  583.  
  584.                     player->ModifyMoney(-OFF_PIECES_COST);
  585.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_PROTECTION);
  586.                     player->PlayerTalkClass->SendCloseGossip();
  587.                     break;
  588.  
  589.                 case 122:
  590.                     if (player->GetMoney() < MAIN_PIECES_COST) {
  591.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  592.                         player->CLOSE_GOSSIP_MENU();
  593.                         break;
  594.                     }
  595.  
  596.                     player->ModifyMoney(-MAIN_PIECES_COST);
  597.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_CHEST), ENCHANT_CHEST_EXCEPTIONAL_SPIRIT);
  598.                     player->PlayerTalkClass->SendCloseGossip();
  599.                     break;
  600.  
  601.                 case 123:
  602.                     if (player->GetMoney() < MAIN_PIECES_COST) {
  603.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  604.                         player->CLOSE_GOSSIP_MENU();
  605.                         break;
  606.                     }
  607.  
  608.                     player->ModifyMoney(-MAIN_PIECES_COST);
  609.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_CHEST), ENCHANT_CHEST_GREATER_STAMINA);
  610.                     player->PlayerTalkClass->SendCloseGossip();
  611.                     break;
  612.  
  613.                 case 124:
  614.                     if (player->GetMoney() < MAIN_PIECES_COST) {
  615.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  616.                         player->CLOSE_GOSSIP_MENU();
  617.                         break;
  618.                     }
  619.  
  620.                     player->ModifyMoney(-MAIN_PIECES_COST);
  621.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_CHEST), ENCHANT_CHEST_MIGHTY_RESILIENCE);
  622.                     player->PlayerTalkClass->SendCloseGossip();
  623.                     break;
  624.  
  625.                 case 125:
  626.                     if (player->GetMoney() < MAIN_PIECES_COST) {
  627.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  628.                         player->CLOSE_GOSSIP_MENU();
  629.                         break;
  630.                     }
  631.  
  632.                     player->ModifyMoney(-MAIN_PIECES_COST);
  633.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_CHEST), ENCHANT_CHEST_PEERLESS_STATS);
  634.                     player->PlayerTalkClass->SendCloseGossip();
  635.                     break;
  636.  
  637.                 case 126:
  638.                     if (player->GetMoney() < OFF_PIECES_COST) {
  639.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", OFF_PIECES_COST/10000);
  640.                         player->CLOSE_GOSSIP_MENU();
  641.                         break;
  642.                     }
  643.  
  644.                     player->ModifyMoney(-OFF_PIECES_COST);
  645.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_AGILITY);
  646.                     player->PlayerTalkClass->SendCloseGossip();
  647.                     break;
  648.  
  649.                 case 127:
  650.                     if (player->GetMoney() < OFF_PIECES_COST) {
  651.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", OFF_PIECES_COST/10000);
  652.                         player->CLOSE_GOSSIP_MENU();
  653.                         break;
  654.                     }
  655.  
  656.                     player->ModifyMoney(-OFF_PIECES_COST);
  657.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_EXCEPTIONAL_SPIRIT);
  658.                     player->PlayerTalkClass->SendCloseGossip();
  659.                     break;
  660.  
  661.                 case 128:
  662.                     if (player->GetMoney() < OFF_PIECES_COST) {
  663.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", OFF_PIECES_COST/10000);
  664.                         player->CLOSE_GOSSIP_MENU();
  665.                         break;
  666.                     }
  667.  
  668.                     player->ModifyMoney(-OFF_PIECES_COST);
  669.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_GREATER_CRITICAL_STRIKE);
  670.                     player->PlayerTalkClass->SendCloseGossip();
  671.                     break;
  672.  
  673.                 case 129:
  674.                     if (player->GetMoney() < OFF_PIECES_COST) {
  675.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", OFF_PIECES_COST/10000);
  676.                         player->CLOSE_GOSSIP_MENU();
  677.                         break;
  678.                     }
  679.  
  680.                     player->ModifyMoney(-OFF_PIECES_COST);
  681.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_GREATER_EXPERTISE);
  682.                     player->PlayerTalkClass->SendCloseGossip();
  683.                     break;
  684.  
  685.                 case 130:
  686.                     if (player->GetMoney() < OFF_PIECES_COST) {
  687.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", OFF_PIECES_COST/10000);
  688.                         player->CLOSE_GOSSIP_MENU();
  689.                         break;
  690.                     }
  691.  
  692.                     player->ModifyMoney(-OFF_PIECES_COST);
  693.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_GREATER_SPEED);
  694.                     player->PlayerTalkClass->SendCloseGossip();
  695.                     break;
  696.  
  697.                 case 131:
  698.                     if (player->GetMoney() < OFF_PIECES_COST) {
  699.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", OFF_PIECES_COST/10000);
  700.                         player->CLOSE_GOSSIP_MENU();
  701.                         break;
  702.                     }
  703.  
  704.                     player->ModifyMoney(-OFF_PIECES_COST);
  705.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_MAJOR_STRENGTH);
  706.                     player->PlayerTalkClass->SendCloseGossip();
  707.                     break;
  708.  
  709.                 case 132:
  710.                     if (player->GetMoney() < OFF_PIECES_COST) {
  711.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", OFF_PIECES_COST/10000);
  712.                         player->CLOSE_GOSSIP_MENU();
  713.                         break;
  714.                     }
  715.  
  716.                     player->ModifyMoney(-OFF_PIECES_COST);
  717.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_MIGHTY_INTELLECT);
  718.                     player->PlayerTalkClass->SendCloseGossip();
  719.                     break;
  720.                 case 133:
  721.                     if (player->GetMoney() < OFF_PIECES_COST) {
  722.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", OFF_PIECES_COST/10000);
  723.                         player->CLOSE_GOSSIP_MENU();
  724.                         break;
  725.                     }
  726.  
  727.                     player->ModifyMoney(-OFF_PIECES_COST);
  728.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_PRECISION);
  729.                     player->PlayerTalkClass->SendCloseGossip();
  730.                     break;
  731.                 case 134:
  732.                     if (player->GetMoney() < OFF_PIECES_COST) {
  733.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", OFF_PIECES_COST/10000);
  734.                         player->CLOSE_GOSSIP_MENU();
  735.                         break;
  736.                     }
  737.  
  738.                     player->ModifyMoney(-OFF_PIECES_COST);
  739.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_BRACERS_SUPERIOR_DODGE);
  740.                     player->PlayerTalkClass->SendCloseGossip();
  741.                     break;
  742.  
  743.                 case 135:
  744.                     if (player->GetMoney() < MAIN_PIECES_COST) {
  745.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  746.                         player->CLOSE_GOSSIP_MENU();
  747.                         break;
  748.                     }
  749.  
  750.                     player->ModifyMoney(-MAIN_PIECES_COST);
  751.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_GREATER_EXPERTISE);
  752.                     player->PlayerTalkClass->SendCloseGossip();
  753.                     break;
  754.  
  755.                 case 136:
  756.                     if (player->GetMoney() < MAIN_PIECES_COST) {
  757.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  758.                         player->CLOSE_GOSSIP_MENU();
  759.                         break;
  760.                     }
  761.  
  762.                     player->ModifyMoney(-MAIN_PIECES_COST);
  763.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_GREATER_MASTERY);
  764.                     player->PlayerTalkClass->SendCloseGossip();
  765.                     break;
  766.  
  767.                 case 137:
  768.                     if (player->GetMoney() < MAIN_PIECES_COST) {
  769.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  770.                         player->CLOSE_GOSSIP_MENU();
  771.                         break;
  772.                     }
  773.  
  774.                     player->ModifyMoney(-MAIN_PIECES_COST);
  775.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_HASTE);
  776.                     player->PlayerTalkClass->SendCloseGossip();
  777.                     break;
  778.  
  779.                 case 138:
  780.                     if (player->GetMoney() < MAIN_PIECES_COST) {
  781.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  782.                         player->CLOSE_GOSSIP_MENU();
  783.                         break;
  784.                     }
  785.  
  786.                     player->ModifyMoney(-MAIN_PIECES_COST);
  787.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_MIGHTY_STRENGTH);
  788.                     player->PlayerTalkClass->SendCloseGossip();
  789.                     break;
  790.  
  791.                 case 139:
  792.                     if (player->GetMoney() < OFF_PIECES_COST) {
  793.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  794.                         player->CLOSE_GOSSIP_MENU();
  795.                         break;
  796.                     }
  797.  
  798.                     player->ModifyMoney(-OFF_PIECES_COST);
  799.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_ASSASSINS_STEP);
  800.                     player->PlayerTalkClass->SendCloseGossip();
  801.                     break;
  802.  
  803.                 case 140:
  804.                     if (player->GetMoney() < OFF_PIECES_COST) {
  805.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  806.                         player->CLOSE_GOSSIP_MENU();
  807.                         break;
  808.                     }
  809.  
  810.                     player->ModifyMoney(-OFF_PIECES_COST);
  811.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_HASTE);
  812.                     player->PlayerTalkClass->SendCloseGossip();
  813.                     break;
  814.  
  815.                 case 141:
  816.                     if (player->GetMoney() < OFF_PIECES_COST) {
  817.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  818.                         player->CLOSE_GOSSIP_MENU();
  819.                         break;
  820.                     }
  821.  
  822.                     player->ModifyMoney(-OFF_PIECES_COST);
  823.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_LAVAWALKER);
  824.                     player->PlayerTalkClass->SendCloseGossip();
  825.                     break;
  826.  
  827.                 case 142:
  828.                     if (player->GetMoney() < OFF_PIECES_COST) {
  829.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  830.                         player->CLOSE_GOSSIP_MENU();
  831.                         break;
  832.                     }
  833.  
  834.                     player->ModifyMoney(-OFF_PIECES_COST);
  835.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_MAJOR_AGILITY);
  836.                     player->PlayerTalkClass->SendCloseGossip();
  837.                     break;
  838.  
  839.                 case 143:
  840.                     if (player->GetMoney() < OFF_PIECES_COST) {
  841.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  842.                         player->CLOSE_GOSSIP_MENU();
  843.                         break;
  844.                     }
  845.  
  846.                     player->ModifyMoney(-OFF_PIECES_COST);
  847.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_MASTERY);
  848.                     player->PlayerTalkClass->SendCloseGossip();
  849.                     break;
  850.  
  851.                 case 144:
  852.                     if (player->GetMoney() < OFF_PIECES_COST) {
  853.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  854.                         player->CLOSE_GOSSIP_MENU();
  855.                         break;
  856.                     }
  857.  
  858.                     player->ModifyMoney(-OFF_PIECES_COST);
  859.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_PRECISION);
  860.                     player->PlayerTalkClass->SendCloseGossip();
  861.                     break;
  862.  
  863.                 case 145:
  864.                     if (player->GetMoney() < OFF_PIECES_COST) {
  865.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  866.                         player->CLOSE_GOSSIP_MENU();
  867.                         break;
  868.                     }
  869.  
  870.                     player->ModifyMoney(-OFF_PIECES_COST);
  871.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER1), ENCHANT_RING_AGILITY);
  872.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER2), ENCHANT_RING_AGILITY);
  873.                     player->PlayerTalkClass->SendCloseGossip();
  874.                     break;
  875.  
  876.                 case 146:
  877.                     if (player->GetMoney() < OFF_PIECES_COST) {
  878.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  879.                         player->CLOSE_GOSSIP_MENU();
  880.                         break;
  881.                     }
  882.  
  883.                     player->ModifyMoney(-OFF_PIECES_COST);
  884.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER1), ENCHANT_RING_GREATER_STAMINA);
  885.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER2), ENCHANT_RING_GREATER_STAMINA);
  886.                     player->PlayerTalkClass->SendCloseGossip();
  887.                     break;
  888.  
  889.                 case 147:
  890.                     if (player->GetMoney() < OFF_PIECES_COST) {
  891.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  892.                         player->CLOSE_GOSSIP_MENU();
  893.                         break;
  894.                     }
  895.  
  896.                     player->ModifyMoney(-OFF_PIECES_COST);
  897.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER1), ENCHANT_RING_INTELLECT);
  898.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER2), ENCHANT_RING_INTELLECT);
  899.                     player->PlayerTalkClass->SendCloseGossip();
  900.                     break;
  901.  
  902.                 case 148:
  903.                     if (player->GetMoney() < OFF_PIECES_COST) {
  904.                         ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", MAIN_PIECES_COST/10000);
  905.                         player->CLOSE_GOSSIP_MENU();
  906.                         break;
  907.                     }
  908.  
  909.                     player->ModifyMoney(-OFF_PIECES_COST);
  910.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER1), ENCHANT_RING_STRENGTH);
  911.                     Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER2), ENCHANT_RING_STRENGTH);
  912.                     player->PlayerTalkClass->SendCloseGossip();
  913.                     break;
  914.  
  915.                 case 300:
  916.                     player->ADD_GOSSIP_ITEM(1, "[Enchant Weapon]", GOSSIP_SENDER_MAIN, 1);
  917.                     player->ADD_GOSSIP_ITEM(1, "[Enchant 2H Weapon]", GOSSIP_SENDER_MAIN, 2);
  918.                     player->ADD_GOSSIP_ITEM(1, "[Enchant Shield]", GOSSIP_SENDER_MAIN, 3);
  919.                     player->ADD_GOSSIP_ITEM(1, "[Enchant Head]", GOSSIP_SENDER_MAIN, 4);
  920.                     player->ADD_GOSSIP_ITEM(1, "[Enchant Shoulders]", GOSSIP_SENDER_MAIN, 5);
  921.                     player->ADD_GOSSIP_ITEM(1, "[Enchant Cloak]", GOSSIP_SENDER_MAIN, 6);
  922.                     player->ADD_GOSSIP_ITEM(1, "[Enchant Chest]", GOSSIP_SENDER_MAIN, 7);
  923.                     player->ADD_GOSSIP_ITEM(1, "[Enchant Bracers]", GOSSIP_SENDER_MAIN, 8);
  924.                     player->ADD_GOSSIP_ITEM(1, "[Enchant Gloves]", GOSSIP_SENDER_MAIN, 9);
  925.                     player->ADD_GOSSIP_ITEM(1, "[Enchant Legs]", GOSSIP_SENDER_MAIN, 10);
  926.                     player->ADD_GOSSIP_ITEM(1, "[Enchant Feet]", GOSSIP_SENDER_MAIN, 11);
  927.  
  928.                     if (player->HasSkill(SKILL_ENCHANTING) && player->GetSkillValue(SKILL_ENCHANTING) == 450)
  929.                         player->ADD_GOSSIP_ITEM(1, "[Enchant Rings]", GOSSIP_SENDER_MAIN, 12);
  930.  
  931.                     player->PlayerTalkClass->SendGossipMenu(100001, creature->GetGUID());
  932.                     break;
  933.  
  934.             }
  935.  
  936.             return true;
  937.         }
  938.  
  939.  
  940. };
  941.  
  942. void AddSC_npc_enchantment()
  943. {
  944.   new npc_enchantment();
  945. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement