Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ScriptPCH.h"
- enum Enchants
- {
- ENCHANT_WEAPON_MONGOOSE = 2673,
- ENCHANT_WEAPON_MAJOR_INT = 2666,
- ENCHANT_WEAPON_MAJOR_SP = 2669,
- ENCHANT_WEAPON_AGILITY = 2564,
- ENCHANT_WEAPON_CRUSADER = 1900,
- ENCHANT_WEAPON_FIERY = 803,
- ENCHANT_WEAPON_ICY = 1894,
- ENCHANT_WEAPON_SPELL_POWER = 2504,
- ENCHANT_WEAPON_INTELLECT = 2568,
- ENCHANT_WEAPON_STRENGTH = 2563,
- ENCHANT_WEAPON_MAJOR_AGILITY= 2646,
- ENCHANT_WEAPON_SPIRIT = 2567,
- ENCHANT_WEAPON_LIFESTEALING = 1898,
- ENCHANT_CHEST_STATS = 1891,
- ENCHANT_CHEST_MANA = 1893,
- ENCHANT_CHEST_HEALTH = 1892,
- ENCHANT_GLOVES_HEALING = 2617,
- ENCHANT_GLOVES_SHADOW = 2614,
- ENCHANT_GLOVES_FROST = 2615,
- ENCHANT_GLOVES_FIRE = 2616,
- ENCHANT_GLOVES_AGILITY = 2564,
- ENCHANT_GLOVES_THREAT = 2613,
- ENCHANT_GLOVES_HASTE = 931,
- ENCHANT_GLOVES_STRENGTH = 927,
- ENCHANT_WRIST_STAMINA = 1886,
- ENCHANT_WRIST_SPELL_POWER = 2650,
- ENCHANT_WRIST_SPIRIT = 1884,
- ENCHANT_WRIST_STRENGTH = 1885,
- ENCHANT_BOOTS_AGILITY = 1887,
- ENCHANT_BOOTS_SPEED = 911,
- ENCHANT_BOOTS_STAMINA = 929,
- ENCHANT_BOOTS_SPIRIT = 851,
- ENCHANT_BOOTS_HIT = 3858,
- ENCHANT_SHIELD_STAMINA = 929,
- ENCHANT_SHIELD_VITALITY = 1890,
- ENCHANT_SHIELD_SPIRIT = 907,
- ENCHANT_CLOAK_AGILITY = 849,
- ENCHANT_CLOAK_SUBTLEY = 2621,
- ENCHANT_CLOAK_STEALTH = 910,
- ENCHANT_CLOAK_ARMOR = 1889,
- ENCHANT_CLOAK_SHADOW_RES = 804,
- ENCHANT_CLOAK_FIRE_RES = 2619,
- ENCHANT_CLOAK_NATURE_RES = 2620,
- ENCHANT_CLOAK_RESIST = 1888,
- };
- #define ONE_HAND_WEAPON_COST 0 //20g
- #define TWO_HAND_WEAPON_COST 0 //30g
- #define MAIN_PIECES_COST 0 //15g
- #define OFF_PIECES_COST 0 //10g
- #define SHIELD_COST 0 //10g
- void Enchant(Player* player, Item* item, uint32 enchantid)
- {
- if (!item)
- {
- player->GetSession()->SendNotification("You must first equip the item you are trying to enchant in order to enchant it!");
- return;
- }
- if (!enchantid)
- return;
- player->ApplyEnchantment(item, PERM_ENCHANTMENT_SLOT, false);
- item->SetEnchantment(PERM_ENCHANTMENT_SLOT, enchantid, 0, 0);
- player->ApplyEnchantment(item, PERM_ENCHANTMENT_SLOT, true);
- std::string color = "|cff";
- switch (item->GetTemplate()->Quality)
- {
- case 0:
- color += "9d9d9d";
- break;
- case 1:
- color += "ffffff";
- break;
- case 2:
- color += "1eff00";
- break;
- case 3:
- color += "0070dd";
- break;
- case 4:
- color += "a335ee";
- break;
- case 5:
- color += "ff8000";
- break;
- }
- ChatHandler(player).PSendSysMessage("|cffFFFFFF[%s%s|cffFFFFFF] |cffFF0000succesfully enchanted!", color.c_str(), item->GetTemplate()->Name1.c_str());
- }
- class npc_enchantment : public CreatureScript
- {
- public:
- npc_enchantment() : CreatureScript("npc_enchantment") { }
- bool OnGossipHello(Player* player, Creature* creature)
- {
- player->PlayerTalkClass->ClearMenus();
- player->ADD_GOSSIP_ITEM(1, "[Enchant Weapon]", GOSSIP_SENDER_MAIN, 1);
- player->ADD_GOSSIP_ITEM(1, "[Enchant Off-Hand]", GOSSIP_SENDER_MAIN, 2);
- player->ADD_GOSSIP_ITEM(1, "[Enchant Shield]", GOSSIP_SENDER_MAIN, 3);
- player->ADD_GOSSIP_ITEM(1, "[Enchant Cloak]", GOSSIP_SENDER_MAIN, 6);
- player->ADD_GOSSIP_ITEM(1, "[Enchant Chest]", GOSSIP_SENDER_MAIN, 7);
- player->ADD_GOSSIP_ITEM(1, "[Enchant Bracers]", GOSSIP_SENDER_MAIN, 8);
- player->ADD_GOSSIP_ITEM(1, "[Enchant Gloves]", GOSSIP_SENDER_MAIN, 9);
- player->ADD_GOSSIP_ITEM(1, "[Enchant Feet]", GOSSIP_SENDER_MAIN, 11);
- player->SEND_GOSSIP_MENU(100001, creature->GetGUID());
- return true;
- }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- Item* item;
- switch (action)
- {
- case 1: // Enchant Weapon
- player->ADD_GOSSIP_ITEM(5, "Agility [+15 Agi]", GOSSIP_SENDER_MAIN, 100);
- player->ADD_GOSSIP_ITEM(5, "Crusader [+100 Str Proc]", GOSSIP_SENDER_MAIN, 101);
- player->ADD_GOSSIP_ITEM(5, "Fiery [Fire Dmg Proc]", GOSSIP_SENDER_MAIN, 102);
- player->ADD_GOSSIP_ITEM(5, "Icy [Frost Dmg Proc]", GOSSIP_SENDER_MAIN, 103);
- player->ADD_GOSSIP_ITEM(5, "Intellect [+22 Int]", GOSSIP_SENDER_MAIN, 104);
- player->ADD_GOSSIP_ITEM(5, "Lifestealing [+Lifesteal]", GOSSIP_SENDER_MAIN, 1011);
- player->ADD_GOSSIP_ITEM(5, "Mongoose [+120 Agi Proc]", GOSSIP_SENDER_MAIN, 105);
- player->ADD_GOSSIP_ITEM(5, "Major Intellect [+30 Int]", GOSSIP_SENDER_MAIN, 106);
- player->ADD_GOSSIP_ITEM(5, "Major Spell Power [+40 SP]", GOSSIP_SENDER_MAIN, 107);
- player->ADD_GOSSIP_ITEM(5, "Strength [+15 Str]", GOSSIP_SENDER_MAIN, 108);
- player->ADD_GOSSIP_ITEM(5, "Spell Power [+30 SP]", GOSSIP_SENDER_MAIN, 109);
- player->ADD_GOSSIP_ITEM(5, "2H Weapon - Agility [+25 Agi]", GOSSIP_SENDER_MAIN, 135);
- player->ADD_GOSSIP_ITEM(5, "Spirit [+20 Spirit]", GOSSIP_SENDER_MAIN, 140);
- player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
- player->PlayerTalkClass->SendGossipMenu(100002, creature->GetGUID());
- break;
- case 2: // Enchant Off-Hand
- if (item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND))
- {
- if (ItemTemplate const* iInfo = item->GetTemplate())
- {
- if ((iInfo->SubClass == ITEM_SUBCLASS_WEAPON_AXE || iInfo->SubClass == ITEM_SUBCLASS_WEAPON_DAGGER || iInfo->SubClass == ITEM_SUBCLASS_WEAPON_FIST ||
- iInfo->SubClass == ITEM_SUBCLASS_WEAPON_MACE || iInfo->SubClass == ITEM_SUBCLASS_WEAPON_SWORD) && iInfo->Class == ITEM_CLASS_WEAPON)
- {
- player->ADD_GOSSIP_ITEM(5, "Agility [+15 Agi]", GOSSIP_SENDER_MAIN, 1000);
- player->ADD_GOSSIP_ITEM(5, "Crusader [+100 Str Proc]", GOSSIP_SENDER_MAIN, 1001);
- player->ADD_GOSSIP_ITEM(5, "Fiery [Fire Dmg Proc]", GOSSIP_SENDER_MAIN, 1002);
- player->ADD_GOSSIP_ITEM(5, "Icy [Frost Dmg Proc]", GOSSIP_SENDER_MAIN, 1003);
- player->ADD_GOSSIP_ITEM(5, "Intellect [+22 Int]", GOSSIP_SENDER_MAIN, 1004);
- player->ADD_GOSSIP_ITEM(5, "Lifestealing [+Lifesteal]", GOSSIP_SENDER_MAIN, 1010);
- player->ADD_GOSSIP_ITEM(5, "Mongoose [+120 Agi Proc]", GOSSIP_SENDER_MAIN, 1005);
- player->ADD_GOSSIP_ITEM(5, "Major Intellect [+30 Int]", GOSSIP_SENDER_MAIN, 1006);
- player->ADD_GOSSIP_ITEM(5, "Major Spell Power [+40 SP]", GOSSIP_SENDER_MAIN, 1007);
- player->ADD_GOSSIP_ITEM(5, "Strength [+15 Str]", GOSSIP_SENDER_MAIN, 1008);
- player->ADD_GOSSIP_ITEM(5, "Spell Power [+30 SP]", GOSSIP_SENDER_MAIN, 1009);
- player->SEND_GOSSIP_MENU(100002, creature->GetGUID());
- }
- else
- {
- ChatHandler(player).PSendSysMessage("Your off-hand cannot be enchanted");
- OnGossipHello(player, creature);
- }
- }
- }
- else
- {
- ChatHandler(player).PSendSysMessage("You don't have an offhand!");
- OnGossipHello(player, creature);
- }
- break;
- case 3: // Enchant Shield
- player->ADD_GOSSIP_ITEM(5, "Stamina [+7 Stamina]", GOSSIP_SENDER_MAIN, 110);
- player->ADD_GOSSIP_ITEM(5, "Spirit [+7 Spirit]", GOSSIP_SENDER_MAIN, 111);
- player->ADD_GOSSIP_ITEM(5, "Vitality [+5 MP5]", GOSSIP_SENDER_MAIN, 112);
- player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
- player->PlayerTalkClass->SendGossipMenu(100004, creature->GetGUID());
- break;
- case 6: // Enchant Cloak
- player->ADD_GOSSIP_ITEM(5, "Agility [+3 Agi]", GOSSIP_SENDER_MAIN, 142);
- player->ADD_GOSSIP_ITEM(5, "Protection [+70 Armor]", GOSSIP_SENDER_MAIN, 113);
- player->ADD_GOSSIP_ITEM(5, "Stealth [Increase Stealth]", GOSSIP_SENDER_MAIN, 114);
- player->ADD_GOSSIP_ITEM(5, "Subtley [-2% Threat]", GOSSIP_SENDER_MAIN, 115);
- player->ADD_GOSSIP_ITEM(5, "Resistance [+5 All Resist]", GOSSIP_SENDER_MAIN, 136);
- player->ADD_GOSSIP_ITEM(5, "Fire Resist [+10 Fire Resist]", GOSSIP_SENDER_MAIN, 137);
- player->ADD_GOSSIP_ITEM(5, "Nature Resist [+10 Nature Resist]", GOSSIP_SENDER_MAIN, 138);
- player->ADD_GOSSIP_ITEM(5, "Shadow Resist [+5 Shadow Resist]", GOSSIP_SENDER_MAIN, 139);
- player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
- player->PlayerTalkClass->SendGossipMenu(100007, creature->GetGUID());
- break;
- case 7: //Enchant chest
- player->ADD_GOSSIP_ITEM(5, "Health [+100 Health]", GOSSIP_SENDER_MAIN, 116);
- player->ADD_GOSSIP_ITEM(5, "Mana [+100 Mana]", GOSSIP_SENDER_MAIN, 117);
- player->ADD_GOSSIP_ITEM(5, "Stats [+4 All Stats]", GOSSIP_SENDER_MAIN, 118);
- player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
- player->PlayerTalkClass->SendGossipMenu(100008, creature->GetGUID());
- break;
- case 8: //Enchant Bracers
- player->ADD_GOSSIP_ITEM(5, "Spell Power [+15 SP]", GOSSIP_SENDER_MAIN, 119);
- player->ADD_GOSSIP_ITEM(5, "Spirit [+9 Stam]", GOSSIP_SENDER_MAIN, 120);
- player->ADD_GOSSIP_ITEM(5, "Stamina [+9 Stam]", GOSSIP_SENDER_MAIN, 121);
- player->ADD_GOSSIP_ITEM(5, "Strength [+7 Str]", GOSSIP_SENDER_MAIN, 122);
- player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
- player->PlayerTalkClass->SendGossipMenu(100009, creature->GetGUID());
- break;
- case 9: //Enchant Gloves
- player->ADD_GOSSIP_ITEM(5, "Agility [+15 Agi]", GOSSIP_SENDER_MAIN, 123);
- player->ADD_GOSSIP_ITEM(5, "Fire Power [+20 Fire Dmg]", GOSSIP_SENDER_MAIN, 124);
- player->ADD_GOSSIP_ITEM(5, "Frost Power [+20 Frost Dmg]", GOSSIP_SENDER_MAIN, 125);
- player->ADD_GOSSIP_ITEM(5, "Haste [+10 Haste]", GOSSIP_SENDER_MAIN, 126);
- player->ADD_GOSSIP_ITEM(5, "Healing [+15 SP]", GOSSIP_SENDER_MAIN, 127);
- player->ADD_GOSSIP_ITEM(5, "Shadow Power [+20 Shadow Dmg]", GOSSIP_SENDER_MAIN, 128);
- player->ADD_GOSSIP_ITEM(5, "Threat [+2% Threat]", GOSSIP_SENDER_MAIN, 129);
- player->ADD_GOSSIP_ITEM(5, "Strength [+7 Str]", GOSSIP_SENDER_MAIN, 141);
- player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
- player->PlayerTalkClass->SendGossipMenu(100010, creature->GetGUID());
- break;
- case 11: //Enchant feet
- player->ADD_GOSSIP_ITEM(5, "Agility [+7 Agi]", GOSSIP_SENDER_MAIN, 130);
- player->ADD_GOSSIP_ITEM(5, "Hit [+5 Hit]", GOSSIP_SENDER_MAIN, 131);
- player->ADD_GOSSIP_ITEM(5, "Speed [Increase Run Speed]", GOSSIP_SENDER_MAIN, 132);
- player->ADD_GOSSIP_ITEM(5, "Spirit [+7 Spirit]", GOSSIP_SENDER_MAIN, 133);
- player->ADD_GOSSIP_ITEM(5, "Stamina [+7 Stam]", GOSSIP_SENDER_MAIN, 134);
- player->ADD_GOSSIP_ITEM(1, "<-Back", GOSSIP_SENDER_MAIN, 300);
- player->PlayerTalkClass->SendGossipMenu(100012, creature->GetGUID());
- break;
- case 100:
- if (player->GetMoney() < ONE_HAND_WEAPON_COST) {
- ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", ONE_HAND_WEAPON_COST/10000);
- player->CLOSE_GOSSIP_MENU();
- break;
- }
- player->ModifyMoney(-ONE_HAND_WEAPON_COST);
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEAPON_AGILITY);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 101:
- if (player->GetMoney() < ONE_HAND_WEAPON_COST) {
- ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", ONE_HAND_WEAPON_COST/10000);
- player->CLOSE_GOSSIP_MENU();
- break;
- }
- player->ModifyMoney(-ONE_HAND_WEAPON_COST);
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEAPON_CRUSADER);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 102:
- if (player->GetMoney() < ONE_HAND_WEAPON_COST) {
- ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", ONE_HAND_WEAPON_COST/10000);
- player->CLOSE_GOSSIP_MENU();
- break;
- }
- player->ModifyMoney(-ONE_HAND_WEAPON_COST);
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEAPON_FIERY);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 103:
- if (player->GetMoney() < ONE_HAND_WEAPON_COST) {
- ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", ONE_HAND_WEAPON_COST/10000);
- player->CLOSE_GOSSIP_MENU();
- break;
- }
- player->ModifyMoney(-ONE_HAND_WEAPON_COST);
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEAPON_ICY);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 104:
- if (player->GetMoney() < ONE_HAND_WEAPON_COST) {
- ChatHandler(player).PSendSysMessage("You don't have enough money to purchase this! It costs %d gold", ONE_HAND_WEAPON_COST/10000);
- player->CLOSE_GOSSIP_MENU();
- break;
- }
- player->ModifyMoney(-ONE_HAND_WEAPON_COST);
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEAPON_INTELLECT);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 105:
- item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND);
- if (!item)
- break;
- if (player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND)->GetTemplate()->ItemLevel >= 35)
- {
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEAPON_MONGOOSE);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- }
- ChatHandler(player).PSendSysMessage("This enchant requires item level 35 or higher!");
- player->CLOSE_GOSSIP_MENU();
- break;
- case 106:
- item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND);
- if (!item)
- break;
- if (item->GetTemplate()->ItemLevel >= 35)
- {
- Enchant(player, item, ENCHANT_WEAPON_MAJOR_INT);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- }
- ChatHandler(player).PSendSysMessage("This enchant requires item level 35 or higher!");
- player->CLOSE_GOSSIP_MENU();
- break;
- case 107:
- item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND);
- if (!item)
- break;
- if (item->GetTemplate()->ItemLevel >= 35)
- {
- Enchant(player, item, ENCHANT_WEAPON_MAJOR_SP);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- }
- ChatHandler(player).PSendSysMessage("This enchant requires item level 35 or higher!");
- player->CLOSE_GOSSIP_MENU();
- break;
- case 108:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEAPON_STRENGTH);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 109:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEAPON_SPELL_POWER);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 110:
- item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
- if (!item)
- break;
- if (item->GetTemplate()->InventoryType == INVTYPE_SHIELD)
- {
- player->ModifyMoney(-SHIELD_COST);
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_SHIELD_STAMINA);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- }
- else
- {
- ChatHandler(player).PSendSysMessage("You need a shield equipped!");
- player->CLOSE_GOSSIP_MENU();
- break;
- }
- case 111:
- item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
- if (!item)
- break;
- if (item->GetTemplate()->InventoryType == INVTYPE_SHIELD)
- {
- player->ModifyMoney(-SHIELD_COST);
- Enchant(player, item, ENCHANT_SHIELD_SPIRIT);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- }
- else
- {
- ChatHandler(player).PSendSysMessage("You need a shield equipped!");
- player->CLOSE_GOSSIP_MENU();
- break;
- }
- case 112:
- item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
- if (!item)
- break;
- if (item->GetTemplate()->InventoryType == INVTYPE_SHIELD)
- {
- player->ModifyMoney(-SHIELD_COST);
- Enchant(player, item, ENCHANT_SHIELD_VITALITY);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- }
- else
- {
- ChatHandler(player).PSendSysMessage("You need a shield equipped!");
- player->CLOSE_GOSSIP_MENU();
- break;
- }
- case 113:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_ARMOR);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 114:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_STEALTH);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 115:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_SUBTLEY);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 116:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_CHEST), ENCHANT_CHEST_HEALTH);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 117:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_CHEST), ENCHANT_CHEST_MANA);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 118:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_CHEST), ENCHANT_CHEST_STATS);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 119:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_WRIST_SPELL_POWER);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 120:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_WRIST_SPIRIT);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 121:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_WRIST_STAMINA);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 122:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_WRISTS), ENCHANT_WRIST_STRENGTH);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 123:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_AGILITY);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 124:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_FIRE);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 125:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_FROST);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 126:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_HASTE);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 127:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_HEALING);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 128:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_SHADOW);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 129:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_THREAT);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 130:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_AGILITY);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 131:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_HIT);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 132:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_SPEED);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 133:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_SPIRIT);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 134:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FEET), ENCHANT_BOOTS_STAMINA);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 135:
- item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND);
- if (!item)
- break;
- if (item->GetTemplate()->InventoryType == INVTYPE_2HWEAPON)
- {
- Enchant(player, item, ENCHANT_WEAPON_MAJOR_AGILITY);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- }
- ChatHandler(player).PSendSysMessage("You do not have a 2H weapon equipped!");
- break;
- case 136:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_RESIST);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 137:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_FIRE_RES);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 138:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_NATURE_RES);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 139:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_SHADOW_RES);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 140:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEAPON_SPIRIT);
- player->CLOSE_GOSSIP_MENU();
- break;
- case 141:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_HANDS), ENCHANT_GLOVES_STRENGTH);
- player->CLOSE_GOSSIP_MENU();
- break;
- case 142:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_BACK), ENCHANT_CLOAK_AGILITY);
- player->CLOSE_GOSSIP_MENU();
- break;
- case 1000:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEAPON_AGILITY);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 1001:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEAPON_CRUSADER);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 1002:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEAPON_FIERY);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 1003:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEAPON_ICY);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 1004:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEAPON_INTELLECT);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 1005:
- item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
- if (!item)
- break;
- if (item->GetTemplate()->ItemLevel >= 35)
- {
- Enchant(player, item, ENCHANT_WEAPON_MONGOOSE);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- }
- ChatHandler(player).PSendSysMessage("This enchant requires item level 35 or higher!");
- player->CLOSE_GOSSIP_MENU();
- break;
- case 1006:
- item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
- if (!item)
- break;
- if (item->GetTemplate()->ItemLevel >= 35)
- {
- Enchant(player, item, ENCHANT_WEAPON_MAJOR_INT);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- }
- ChatHandler(player).PSendSysMessage("This enchant requires item level 35 or higher!");
- player->CLOSE_GOSSIP_MENU();
- break;
- case 1007:
- item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
- if (!item)
- break;
- if (item->GetTemplate()->ItemLevel >= 35)
- {
- Enchant(player, item, ENCHANT_WEAPON_MAJOR_SP);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- }
- ChatHandler(player).PSendSysMessage("This enchant requires item level 35 or higher!");
- player->CLOSE_GOSSIP_MENU();
- break;
- case 1008:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEAPON_STRENGTH);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 1009:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEAPON_SPELL_POWER);
- player->PlayerTalkClass->SendCloseGossip();
- break;
- case 1010:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND), ENCHANT_WEAPON_LIFESTEALING);
- player->CLOSE_GOSSIP_MENU();
- case 1011:
- Enchant(player, player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND), ENCHANT_WEAPON_LIFESTEALING);
- player->CLOSE_GOSSIP_MENU();
- case 300:
- OnGossipHello(player, creature);
- break;
- }
- return true;
- }
- };
- void AddSC_npc_enchantment()
- {
- new npc_enchantment();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement