Advertisement
Guest User

enchant

a guest
May 6th, 2014
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 58.83 KB | None | 0 0
  1. #include "ScriptPCH.h"
  2.  
  3. enum Enchants
  4. {
  5.     ENCHANT_WEP_BLADE_WARD              = 3869,
  6.     ENCHANT_WEP_BLOOD_DRAINING          = 3870,
  7.     ENCHANT_WEP_BERSERKING              = 3789,
  8.    
  9.     ENCHANT_WEP_ACCURACY                = 3788,
  10.     ENCHANT_WEP_AGILITY_1H              = 1103,
  11.     ENCHANT_WEP_AGILITY_2H              = 2670,
  12.     ENCHANT_WEP_SPIRIT                  = 3844,
  13.     ENCHANT_WEP_BATTLEMASTER            = 2675,
  14.     ENCHANT_WEP_BLACK_MAGIC             = 3790,
  15.     ENCHANT_WEP_ICEBREAKER              = 3239,
  16.     ENCHANT_WEP_LIFEWARD                = 3241,
  17.     ENCHANT_WEP_MIGHTY_SPELL_POWER      = 3834, // One-hand
  18.     ENCHANT_WEP_GREATER_SPELL_POWER     = 3854, // Two-hand (staff)
  19.     ENCHANT_WEP_MONGOOSE                = 2673,
  20.     ENCHANT_WEP_EXECUTIONER             = 3225,
  21.     ENCHANT_WEP_POTENCY                 = 3833,
  22.     ENCHANT_WEP_TITANGUARD              = 3851,
  23.     ENCHANT_WEP_MASSACRE                = 3827,
  24.    
  25.     ENCHANT_WEP_CINDERGLACIER           = 3369,
  26.     ENCHANT_WEP_LICHBANE                = 3366,
  27.     ENCHANT_WEP_RAZORICE                = 3370,
  28.     ENCHANT_WEP_SPELLBREAKING           = 3595,
  29.     ENCHANT_WEP_SPELLSHATTERING         = 3367,
  30.     ENCHANT_WEP_SWORDBREAKING           = 3594,
  31.     ENCHANT_WEP_SWORDSHATTERING         = 3365,
  32.     ENCHANT_WEP_FALLEN_CRUSADER         = 3368,
  33.     ENCHANT_WEP_NERUBIAN_CARAPACE       = 3883,
  34.     ENCHANT_WEP_STONESKIN_GARGOYLE      = 3847,
  35.  
  36.     ENCHANT_WEP_TITANIUM_CHAIN          = 3731,
  37.  
  38.     ENCHANT_SHIELD_DEFENSE              = 1952,
  39.     ENCHANT_SHIELD_INTELLECT            = 1128,
  40.     ENCHANT_SHIELD_MAJOR_STAMINA        = 1071,
  41.     ENCHANT_SHIELD_RESILIENCE           = 3229,
  42.  
  43.     ENCHANT_SHIELD_TITANIUM_PLATING     = 3849,
  44.     ENCHANT_SHIELD_TITANIUM_SPIKE        = 3748,
  45.  
  46.     ENCHANT_HEAD_BLISSFUL_MENDING       = 3819,
  47.     ENCHANT_HEAD_BURNING_MYSTERIES      = 3820,
  48.     ENCHANT_HEAD_DOMINANCE              = 3796,
  49.     ENCHANT_HEAD_SAVAGE_GLADIATOR       = 3842,
  50.     ENCHANT_HEAD_STALWART_PROTECTOR     = 3818,
  51.     ENCHANT_HEAD_TORMENT                = 3817,
  52.     ENCHANT_HEAD_TRIUMPH                = 3795,
  53.    
  54.     ENCHANT_SHOULDER_MASTERS_AXE        = 3835,
  55.     ENCHANT_SHOULDER_MASTERS_CRAG       = 3836,
  56.     ENCHANT_SHOULDER_MASTERS_PINNACLE   = 3837,
  57.     ENCHANT_SHOULDER_MASTERS_STORM      = 3838,
  58.     ENCHANT_SHOULDER_GREATER_AXE        = 3808,
  59.     ENCHANT_SHOULDER_GREATER_CRAG       = 3809,
  60.     ENCHANT_SHOULDER_GREATER_GLADIATOR  = 3852,
  61.     ENCHANT_SHOULDER_GREATER_PINNACLE   = 3811,
  62.     ENCHANT_SHOULDER_GREATER_STORM      = 3810,
  63.     ENCHANT_SHOULDER_DOMINANCE          = 3794,
  64.     ENCHANT_SHOULDER_TRIUMPH            = 3793,
  65.  
  66.     ENCHANT_CLOAK_DARKGLOW_EMBROIDERY   = 3728,
  67.     ENCHANT_CLOAK_SWORDGUARD_EMBROIDERY = 3730,
  68.     ENCHANT_CLOAK_LIGHTWEAVE_EMBROIDERY = 3722,
  69.     ENCHANT_CLOAK_FLEXWEAVE_UNDERLAY    = 3605,
  70.     ENCHANT_CLOAK_SPRINGY_ARACHNOWEAVE  = 3859,
  71.     ENCHANT_CLOAK_WISDOM                = 3296,
  72.     ENCHANT_CLOAK_TITANWEAVE            = 1951,
  73.     ENCHANT_CLOAK_SPELL_PIERCING        = 3243,
  74.     ENCHANT_CLOAK_SHADOW_ARMOR          = 3256,
  75.     ENCHANT_CLOAK_MIGHTY_ARMOR          = 3294,
  76.     ENCHANT_CLOAK_MAJOR_AGILITY         = 1099,
  77.     ENCHANT_CLOAK_GREATER_SPEED         = 3831,
  78.  
  79.     ENCHANT_CHEST_EXCEPTIONAL_MANA      = 3233,
  80.     ENCHANT_CHEST_GREATER_MANA_RESTO    = 3533,
  81.     ENCHANT_CHEST_EXCEPTIONAL_RESILIENCE= 3245,
  82.     ENCHANT_CHEST_SUPER_HEALTH          = 3297,
  83.     ENCHANT_CHEST_ALL_STATS             = 3832,
  84.  
  85.     ENCHANT_BRACER_GREATER_ASSAULT      = 3845,
  86.     ENCHANT_BRACER_EXCEPTIONAL_INTELLECT= 3458,
  87.     ENCHANT_BRACER_MAJOR_SPIRIT         = 1147,
  88.     ENCHANT_BRACER_EXPERTISE            = 3231,
  89.     ENCHANT_BRACER_GREATER_STATS        = 2661,
  90.     ENCHANT_BRACER_SUPERIOR_SPELLPOWER  = 2332,
  91.     ENCHANT_BRACER_MAJOR_STAMINA        = 3850,
  92.  
  93.     ENCHANT_BRACER_FUR_LINING_AP        = 3756,
  94.     ENCHANT_BRACER_FUR_LINING_STAMINA   = 3757,
  95.     ENCHANT_BRACER_FUR_LINING_SP        = 3758,
  96.     ENCHANT_BRACER_ARCANE_RESIST        = 3763,
  97.     ENCHANT_BRACER_NATURE_RESIST        = 3762,
  98.     ENCHANT_BRACER_SHADOW_RESIST        = 3761,
  99.     ENCHANT_BRACER_FROST_RESIST         = 3760,
  100.     ENCHANT_BRACER_FIRE_RESIST          = 3759,
  101.  
  102.     ENCHANT_BRACER_SOCKET_BRACER        = 3717,
  103.    
  104.     ENCHANT_GLOVES_CRUSHER              = 1603,
  105.     // EXTREMELY ugly hack for duplicate enchants
  106.     ENCHANT_GLOVES_EXPERTISE            = -3231,
  107.     ENCHANT_GLOVES_PRECISION            = 3234,
  108.     ENCHANT_GLOVES_GREATER_ASSAULT      = 1603,
  109.     ENCHANT_GLOVES_MAJOR_AGILITY        = 1097,
  110.     ENCHANT_GLOVES_EXCEPTIONAL_SPELLPOWER = 2330,
  111.     ENCHANT_GLOVES_ARMSMAN              = 3253,
  112.  
  113.     ENCHANT_GLOVES_SOCKET_GLOVES        = 3723,
  114.  
  115.     ENCHANT_GLOVES_PYROROCKET           = 3603,
  116.     ENCHANT_GLOVES_HYPERSPEED_ACCELERATORS = 3604,
  117.  
  118.     ENCHANT_BELT_ETERNAL_BELT_BUCKLE    = 3729,
  119.     ENCHANT_BELT_FRAG_BELT              = 3601,
  120.  
  121.     ENCHANT_LEGS_FROSTHIDE_ARMOR        = 3822,
  122.     ENCHANT_LEGS_ICESCALE_ARMOR         = 3823,
  123.     ENCHANT_LEGS_EARTHEN_ARMOR          = 3853,
  124.     ENCHANT_LEGS_SAPPHIRE_SPELLTHREAD   = 3873,
  125.     ENCHANT_LEGS_BRILLIANT_SPELLTHREAD  = 3872,
  126.  
  127.     ENCHANT_BOOTS_TUSKARRS_VITALITY     = 3232,
  128.     ENCHANT_BOOTS_ICEWALKER             = 3826,
  129.     ENCHANT_BOOTS_GREATER_ASSAULT       = 1597,
  130.     ENCHANT_BOOTS_GREATER_SPIRIT        = 528,
  131.     ENCHANT_BOOTS_GREATER_FORTITUDE     = 3259,
  132.     ENCHANT_BOOTS_SUPERIOR_AGILITY      = 983,
  133.     ENCHANT_BOOTS_NITRO_BOOSTS          = 3606,
  134.  
  135.     ENCHANT_RING_STAMINA                = 3791,
  136.     ENCHANT_RING_GREATER_SPELLPOWER     = 3840,
  137.     ENCHANT_RING_ASSAULT                = 3839,
  138.  
  139.     ENCHANT_RANGED_HEARTSEEKER_SCOPE    = 3608,
  140.     ENCHANT_RANGED_SUN_SCOPE            = 3607
  141. };
  142.  
  143. Item* PlayerAddItem(Player* player, uint32 item_id)
  144. {
  145.     uint8 count = 1;
  146.     uint32 noSpaceForCount = 0;
  147.     ItemPosCountVec dest;
  148.  
  149.     InventoryResult msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT,
  150.         dest, item_id, count, &noSpaceForCount);
  151.     if (msg != EQUIP_ERR_OK)
  152.         count -= noSpaceForCount;
  153.  
  154.     Item* item = player->StoreNewItem(dest, item_id, true,
  155.         Item::GenerateItemRandomPropertyId(item_id));
  156.  
  157.     if (noSpaceForCount > 0)
  158.     {
  159.         ChatHandler(player->GetSession()).PSendSysMessage("|cFFFFFC00[Sistema]|cFF00FFFF Por favor has espacio en tu inventario primero.");
  160.         return false;
  161.     }
  162.     return item;
  163. }
  164.  
  165. void EnchantWithItem(Player* player, uint32 item_id, Item* target)
  166. {
  167.     Item* item = PlayerAddItem(player, item_id);
  168.     SpellCastTargets* targets = new SpellCastTargets();
  169.     targets->SetItemTarget(target);
  170.     player->CastItemUseSpell(item, *targets, 1, 0);
  171. }
  172.  
  173. void EnchantWithSpell(Player* player, uint32 spell_id, Item* item)
  174. {
  175.     SpellCastTargets* targets = new SpellCastTargets();
  176.     targets->SetItemTarget(item);
  177.     player->CastSpell(*targets, sSpellMgr->GetSpellInfo(spell_id),
  178.         NULL, TRIGGERED_IGNORE_POWER_AND_REAGENT_COST);
  179. }
  180.  
  181. void Enchant(Player* player, Creature* creature, Item* item, uint32 enchantid)
  182. {
  183.     if (!item)
  184.     {
  185.         ChatHandler(player->GetSession()).PSendSysMessage("|cFFFFFC00[Sistema]|cFF00FFFF Por favor equipa un item primero.");
  186.         return;
  187.     }
  188.  
  189.     uint32 item_id = 0;
  190.     switch (enchantid)
  191.     {
  192.         case ENCHANT_WEP_GREATER_SPELL_POWER:
  193.         case ENCHANT_WEP_AGILITY_2H:
  194.         case ENCHANT_WEP_MASSACRE:
  195.             if (item->GetTemplate()->InventoryType != INVTYPE_2HWEAPON)
  196.             {
  197.                 creature->MonsterWhisper("Esa no es un arma de dos manos", player);
  198.                 return;
  199.             }
  200.             break;
  201.         case ENCHANT_SHIELD_DEFENSE:
  202.         case ENCHANT_SHIELD_INTELLECT:
  203.         case ENCHANT_SHIELD_MAJOR_STAMINA:
  204.         case ENCHANT_SHIELD_RESILIENCE:
  205.         case ENCHANT_SHIELD_TITANIUM_PLATING:
  206.         case ENCHANT_SHIELD_TITANIUM_SPIKE:
  207.             if (item->GetTemplate()->InventoryType != INVTYPE_SHIELD)
  208.             {
  209.                 creature->MonsterWhisper("Ese no es un escudo", player);
  210.                 return;
  211.             }
  212.             break;
  213.         case ENCHANT_RANGED_HEARTSEEKER_SCOPE:
  214.         case ENCHANT_RANGED_SUN_SCOPE:
  215.             if (item->GetTemplate()->InventoryType != INVTYPE_RANGED &&
  216.                 item->GetTemplate()->InventoryType != INVTYPE_RANGEDRIGHT)
  217.             {
  218.                 creature->MonsterWhisper("Esa no es un arma a distancia", player);
  219.                 return;
  220.             }
  221.             break;
  222.         default:
  223.             break;
  224.     }
  225.  
  226.     player->ApplyEnchantment(item, PERM_ENCHANTMENT_SLOT, false);
  227.     item->ClearEnchantment(PERM_ENCHANTMENT_SLOT);
  228.     item->SetEnchantment(PERM_ENCHANTMENT_SLOT, enchantid, 0, 0);
  229.     player->ApplyEnchantment(item, PERM_ENCHANTMENT_SLOT, true);
  230.  
  231.     switch (enchantid)
  232.     {
  233.         case ENCHANT_BELT_ETERNAL_BELT_BUCKLE:
  234.             EnchantWithItem(player, 41611, item);
  235.             break;
  236.         case ENCHANT_BRACER_SOCKET_BRACER:
  237.             if (!player->HasItemCount(5956, 1))
  238.             {
  239.                 PlayerAddItem(player, 5956);
  240.                 player->AddItem(5956, 1); // Blacksmith hammer
  241.                 EnchantWithSpell(player, 55628, item);
  242.             }
  243.             else if (player->HasItemCount(5956, 1))
  244.             {
  245.                 EnchantWithSpell(player, 55628, item);
  246.             }
  247.             break;
  248.         case ENCHANT_GLOVES_SOCKET_GLOVES:
  249.             if (!player->HasItemCount(5956, 1))
  250.             {
  251.                 PlayerAddItem(player, 5956);
  252.                 player->AddItem(5956, 1); // Blacksmith hammer
  253.                 EnchantWithSpell(player, 55641, item);
  254.             }
  255.             else if (player->HasItemCount(5956, 1))
  256.             {
  257.                 EnchantWithSpell(player, 55641, item);
  258.             }
  259.             //->DestroyItemCount(5956, -1, true, false);
  260.             break;
  261.     }
  262.    
  263.     const char* item_name = item->GetTemplate()->Name1.c_str();
  264.     player->GetSession()->SendNotification("|cff0000FF%s |cffFF0000Encantamiento exitoso!", item->GetTemplate()->Name1.c_str());
  265. }
  266.  
  267. class npc_enchantment : public CreatureScript
  268. {
  269.     public:
  270.         npc_enchantment() : CreatureScript("npc_enchantment") { }
  271.         int selected_enchant;
  272.  
  273.         bool OnGossipHello(Player* player, Creature* creature)
  274.         {
  275.             ShowMainMenu(player, creature);
  276.             return true;
  277.         }
  278.  
  279.         void ShowMainMenu(Player* player, Creature* creature)
  280.         {
  281.             if (player->getLevel()==80)
  282.             {
  283.             player->PlayerTalkClass->ClearMenus();
  284.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "|TInterface\\icons\\Ability_DualWield:30:30:-18:0|t[Encantar Arma]", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
  285.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "|TInterface\\icons\\INV_Axe_115:30:30:-18:0|t[Encantar Arma de 2 Manos]", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
  286.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "|TInterface\\icons\\Ability_Marksmanship:30:30:-18:0|t[Encantar Arma a Distancia]", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13);
  287.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "|TInterface\\icons\\Ability_Warrior_ShieldReflection:30:30:-18:0|t[Encantar Escudo]", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
  288.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "|TInterface\\icons\\INV_Misc_Desecrated_PlateHelm:30:30:-18:0|t[Encantar Cabeza]", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 4);
  289.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "|TInterface\\icons\\INV_Misc_Desecrated_PlateShoulder:30:30:-18:0|t[Encantar Hombros]", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 5);
  290.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "|TInterface\\icons\\INV_Misc_Cape_19:30:30:-18:0|t[Encantar Capa]", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
  291.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "|TInterface\\icons\\INV_Misc_Desecrated_PlateChest:30:30:-18:0|t[Encantar Pecho]", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 7);
  292.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "|TInterface\\icons\\INV_Misc_Desecrated_PlateBracer:30:30:-18:0|t[Encantar Brazales]", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 8);
  293.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "|TInterface\\icons\\INV_Misc_Desecrated_PlateGloves:30:30:-18:0|t[Encantar Manos]", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 9);
  294.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "|TInterface\\icons\\INV_Misc_Desecrated_PlateBelt:30:30:-18:0|t[Hebilla Eterna]", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 10);
  295.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "|TInterface\\icons\\INV_Misc_Desecrated_PlatePants:30:30:-18:0|t[Encantar Piernas]", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
  296.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "|TInterface\\icons\\INV_Misc_Desecrated_PlateBoots:30:30:-18:0|t[Encantar Botas]", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12);
  297.             if (player->HasSkill(SKILL_ENCHANTING) && player->GetSkillValue(SKILL_ENCHANTING) >= 450)
  298.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "|TInterface\\icons\\INV_Jewelry_Ring_19.png:30:30:-18:0|tEncantar Anillos", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14);
  299.             player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  300.             }
  301.         }
  302.  
  303.         void Show1HWeaponMenu(Player* player, Creature* creature)
  304.         {
  305.             player->PlayerTalkClass->ClearMenus();
  306.             if (player->getClass() == CLASS_DEATH_KNIGHT)
  307.             {
  308.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\Spell_Shadow_ChillTouch:25|tRuna de glaciar de ceniza", GOSSIP_SENDER_MAIN,
  309.                     ENCHANT_WEP_CINDERGLACIER);
  310.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\Spell_Holy_HarmUndeadAura:25|tRuna de aterraexánime", GOSSIP_SENDER_MAIN,
  311.                     ENCHANT_WEP_LICHBANE);
  312.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\Spell_Frost_FrostArmor:25|tRuna de cuchilla de hielo", GOSSIP_SENDER_MAIN,
  313.                     ENCHANT_WEP_RAZORICE);
  314.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\Spell_Shadow_AntiMagicShell:25|tRuna de devastación de hechizos", GOSSIP_SENDER_MAIN,
  315.                     ENCHANT_WEP_SPELLBREAKING);
  316.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\Ability_Parry:25|tRuna de ruptura de espadas", GOSSIP_SENDER_MAIN,
  317.                     ENCHANT_WEP_SWORDBREAKING);
  318.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\Spell_Holy_RetributionAura:25|tRuna del cruzado caído", GOSSIP_SENDER_MAIN,
  319.                     ENCHANT_WEP_FALLEN_CRUSADER);
  320.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Sword_61:25|tRuna del caparazón nerubiano", GOSSIP_SENDER_MAIN,
  321.                     ENCHANT_WEP_NERUBIAN_CARAPACE);
  322.             }
  323.             if (player->HasSkill(SKILL_ENCHANTING) && player->GetSkillValue(SKILL_ENCHANTING) >= 450)
  324.             {
  325.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\Ability_Druid_Cyclone:25|tAmparo de Hojas", GOSSIP_SENDER_MAIN,
  326.                     ENCHANT_WEP_BLADE_WARD);
  327.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\Ability_Racial_Cannibalize:25|tDrenador de Sangre", GOSSIP_SENDER_MAIN,
  328.                     ENCHANT_WEP_BLOOD_DRAINING);
  329.             }
  330.        
  331.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tPrecisión -- 25 golpe + 25 Crit", GOSSIP_SENDER_MAIN,
  332.                 ENCHANT_WEP_ACCURACY);
  333.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tMagia Negra -- 250 Celeridad Proc", GOSSIP_SENDER_MAIN,
  334.                 ENCHANT_WEP_BLACK_MAGIC);
  335.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tMaestro de batalla -- Probabilidad de curar al pegar", GOSSIP_SENDER_MAIN,
  336.                 ENCHANT_WEP_BATTLEMASTER);
  337.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tRabiar -- 400 Poder de ataque Proc", GOSSIP_SENDER_MAIN,
  338.                 ENCHANT_WEP_BERSERKING);
  339.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tAgilidad Excepcional -- 26 Agilidad", GOSSIP_SENDER_MAIN,
  340.                 ENCHANT_WEP_AGILITY_1H);
  341.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tEspíritu Excepcional -- 45 Espíritu", GOSSIP_SENDER_MAIN,
  342.                 ENCHANT_WEP_SPIRIT);
  343.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tVerdugo -- 120 Pen. de Armadura Proc", GOSSIP_SENDER_MAIN,
  344.                 ENCHANT_WEP_EXECUTIONER);
  345.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tRompehielo -- Daño de fuego al atacar", GOSSIP_SENDER_MAIN,
  346.                 ENCHANT_WEP_ICEBREAKER);
  347.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tGuardian de vida -- Probabilidad de curar al pegar", GOSSIP_SENDER_MAIN,
  348.                 ENCHANT_WEP_LIFEWARD);
  349.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tPoder con hechizos Poderoso -- 63 Poder con hechizos", GOSSIP_SENDER_MAIN,
  350.                 ENCHANT_WEP_MIGHTY_SPELL_POWER);
  351.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tMangosta -- 120 Agilidad Proc", GOSSIP_SENDER_MAIN,
  352.                 ENCHANT_WEP_MONGOOSE);
  353.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tPotencia Excelente -- 65 Poder de ataque", GOSSIP_SENDER_MAIN,
  354.                 ENCHANT_WEP_POTENCY);
  355.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tTitanguard -- 50 Aguante", GOSSIP_SENDER_MAIN,
  356.                 ENCHANT_WEP_TITANGUARD);
  357.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tCadena de titanio -- Menos tiempo de desarmado", GOSSIP_SENDER_MAIN,
  358.                 ENCHANT_WEP_TITANIUM_CHAIN);
  359.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Regresar", GOSSIP_SENDER_MAIN, -1);
  360.             player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  361.         }
  362.  
  363.         void Show2HWeaponMenu(Player* player, Creature* creature)
  364.         {
  365.             player->PlayerTalkClass->ClearMenus();
  366.             if (player->getClass() == CLASS_DEATH_KNIGHT)
  367.             {
  368.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\Spell_Shadow_ChillTouch:25|tRuna de glaciar de ceniza", GOSSIP_SENDER_MAIN,
  369.                     ENCHANT_WEP_CINDERGLACIER);
  370.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\Spell_Holy_HarmUndeadAura:25|tRuna de aterraexánime", GOSSIP_SENDER_MAIN,
  371.                     ENCHANT_WEP_LICHBANE);
  372.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\Spell_Frost_FrostArmor:25|tRuna de cuchilla de hielo", GOSSIP_SENDER_MAIN,
  373.                     ENCHANT_WEP_RAZORICE);
  374.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\Spell_Shadow_AntiMagicShell:25|tRuna de devastación de hechizos", GOSSIP_SENDER_MAIN,
  375.                     ENCHANT_WEP_SPELLSHATTERING);
  376.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\Ability_Parry:25|tRuna de devastación de espadas", GOSSIP_SENDER_MAIN,
  377.                     ENCHANT_WEP_SWORDSHATTERING);
  378.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\Spell_Holy_RetributionAura:25|tRuna del cruzado caído", GOSSIP_SENDER_MAIN,
  379.                     ENCHANT_WEP_FALLEN_CRUSADER);
  380.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Sword_130:25|tRuna de la gárgola piel de piedra", GOSSIP_SENDER_MAIN,
  381.                     ENCHANT_WEP_STONESKIN_GARGOYLE);
  382.             }
  383.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tRabiar -- 400 Poder de ataque Proc", GOSSIP_SENDER_MAIN,
  384.                 ENCHANT_WEP_BERSERKING);
  385.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tVerdugo -- 120 Pen. de Armadura Proc", GOSSIP_SENDER_MAIN,
  386.                 ENCHANT_WEP_EXECUTIONER);
  387.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tPoder con Hechizos Superior -- 81 Poder con Hechizos", GOSSIP_SENDER_MAIN,
  388.                 ENCHANT_WEP_GREATER_SPELL_POWER);
  389.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tAgilidad Sublime -- 35 Agilidad", GOSSIP_SENDER_MAIN,
  390.                 ENCHANT_WEP_AGILITY_2H);
  391.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tMasacre -- 110 Poder de ataque", GOSSIP_SENDER_MAIN,
  392.                 ENCHANT_WEP_MASSACRE);
  393.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tMangosta --120 Agilidad Proc", GOSSIP_SENDER_MAIN,
  394.                 ENCHANT_WEP_MONGOOSE);
  395.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Regresar", GOSSIP_SENDER_MAIN, -1);
  396.             player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  397.         }
  398.  
  399.         void ShowShieldMenu(Player* player, Creature* creature)
  400.         {
  401.             player->PlayerTalkClass->ClearMenus();
  402.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tDefensa -- 20 Defensa", GOSSIP_SENDER_MAIN,
  403.                 ENCHANT_SHIELD_DEFENSE);
  404.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tIntelecto Superior -- 25 Intelecto", GOSSIP_SENDER_MAIN,
  405.                 ENCHANT_SHIELD_INTELLECT);
  406.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tAguante Sublime -- 18 Aguante", GOSSIP_SENDER_MAIN,
  407.                 ENCHANT_SHIELD_MAJOR_STAMINA);
  408.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tTemple -- 12 Temple", GOSSIP_SENDER_MAIN,
  409.                 ENCHANT_SHIELD_RESILIENCE);
  410.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tBlindaje de Titanio -- 36 Bloqueo", GOSSIP_SENDER_MAIN,
  411.                 ENCHANT_SHIELD_TITANIUM_PLATING);
  412.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaSuperior_01:25|tPunta de Escudo de Titanio -- 81 Bloqueo + 50% menos tiempo de desarmar", GOSSIP_SENDER_MAIN,
  413.                 ENCHANT_SHIELD_TITANIUM_SPIKE);
  414.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Regresar", GOSSIP_SENDER_MAIN, -1);
  415.             player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  416.         }
  417.  
  418.         void ShowHeadMenu(Player* player, Creature* creature)
  419.         {
  420.             player->PlayerTalkClass->ClearMenus();
  421.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tArcanum de alivio de gozo -- 30 Poder con hechizos + 10 Mp5", GOSSIP_SENDER_MAIN,
  422.                 ENCHANT_HEAD_BLISSFUL_MENDING);
  423.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tArcanum de misterios ardientes -- 30 Poder con hechizos + 20 Crit", GOSSIP_SENDER_MAIN,
  424.                 ENCHANT_HEAD_BURNING_MYSTERIES);
  425.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tArcanum de dominancia -- 26 Poder con hechizos + 20 Temple", GOSSIP_SENDER_MAIN,
  426.                 ENCHANT_HEAD_DOMINANCE);
  427.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tArcanum de Gladiador indómito -- 30 Aguante + 25 Temple", GOSSIP_SENDER_MAIN,
  428.                 ENCHANT_HEAD_SAVAGE_GLADIATOR);
  429.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tArcanum del adepto protector -- 37 Aguante + Defensa", GOSSIP_SENDER_MAIN,
  430.                 ENCHANT_HEAD_STALWART_PROTECTOR);
  431.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tArcanum de tormento -- 50 poder de ataque  + 20 Crit", GOSSIP_SENDER_MAIN,
  432.                 ENCHANT_HEAD_TORMENT);
  433.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tArcanum de triunfo -- 50 Poder de ataque + 20 Temple", GOSSIP_SENDER_MAIN,
  434.                 ENCHANT_HEAD_TRIUMPH);
  435.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Regresar", GOSSIP_SENDER_MAIN, -1);
  436.             player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  437.         }
  438.  
  439.         void ShowShouldersMenu(Player* player, Creature* creature)
  440.         {
  441.             player->PlayerTalkClass->ClearMenus();
  442.             if (player->HasSkill(SKILL_INSCRIPTION) && player->GetSkillValue(SKILL_INSCRIPTION) >= 450)
  443.             {
  444.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tInscripción del Hacha de Maestro", GOSSIP_SENDER_MAIN,
  445.                     ENCHANT_SHOULDER_MASTERS_AXE);
  446.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tInscripción del risco de Maestro", GOSSIP_SENDER_MAIN,
  447.                     ENCHANT_SHOULDER_MASTERS_CRAG);
  448.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tInscripción del Pináculo de Maestro", GOSSIP_SENDER_MAIN,
  449.                     ENCHANT_SHOULDER_MASTERS_PINNACLE);
  450.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tInscripción de la Tormenta de Maestro", GOSSIP_SENDER_MAIN,
  451.                     ENCHANT_SHOULDER_MASTERS_STORM);
  452.             }
  453.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tInscripción del hacha superior -- 40 Poder de ataque + 15 Crit", GOSSIP_SENDER_MAIN,
  454.                 ENCHANT_SHOULDER_GREATER_AXE);
  455.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tInscripción del risco superior -- 24 Poder con hechizos + 8 Mp5", GOSSIP_SENDER_MAIN,
  456.                 ENCHANT_SHOULDER_GREATER_CRAG);
  457.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tInscripción de Gladiador superior -- 30 Aguante + 15 Temple", GOSSIP_SENDER_MAIN,
  458.                 ENCHANT_SHOULDER_GREATER_PINNACLE);
  459.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tInscripción del pináculo superior -- 20 Esquivar + 15 Defensa", GOSSIP_SENDER_MAIN,
  460.                 ENCHANT_SHOULDER_GREATER_GLADIATOR);
  461.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tInscripción de la tormenta superior -- 24 Poder con hechizos + 15 Crit", GOSSIP_SENDER_MAIN,
  462.                 ENCHANT_SHOULDER_GREATER_STORM);
  463.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tInscripción de dominancia -- 23 Poder con hechizos + 15 Temple", GOSSIP_SENDER_MAIN,
  464.                 ENCHANT_SHOULDER_DOMINANCE);
  465.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tInscripción de triunfo -- 40 Poder de ataque + 15 Temple", GOSSIP_SENDER_MAIN,
  466.                 ENCHANT_SHOULDER_TRIUMPH);
  467.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Regresar", GOSSIP_SENDER_MAIN, -1);
  468.             player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  469.         }
  470.  
  471.         void ShowCloakMenu(Player* player, Creature* creature)
  472.         {
  473.             player->PlayerTalkClass->ClearMenus();
  474.             if (player->HasSkill(SKILL_ENGINEERING) && player->GetSkillValue(SKILL_ENGINEERING) >= 450)
  475.             {
  476.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tTejido Arácnido Elástico", GOSSIP_SENDER_MAIN,
  477.                     ENCHANT_CLOAK_SPRINGY_ARACHNOWEAVE);
  478.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tBase de Tejido Flexible", GOSSIP_SENDER_MAIN,
  479.                     ENCHANT_CLOAK_FLEXWEAVE_UNDERLAY);
  480.             }
  481.             if (player->getClass() == CLASS_ROGUE)
  482.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tArmadura de las Sombras", GOSSIP_SENDER_MAIN,
  483.                     ENCHANT_CLOAK_SHADOW_ARMOR);
  484.             if (player->HasSkill(SKILL_TAILORING) && player->GetSkillValue(SKILL_TAILORING) >= 450)
  485.             {
  486.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tBordado de resplandor oscuro", GOSSIP_SENDER_MAIN,
  487.                     ENCHANT_CLOAK_DARKGLOW_EMBROIDERY);
  488.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tBordado de tejido de luz", GOSSIP_SENDER_MAIN,
  489.                     ENCHANT_CLOAK_LIGHTWEAVE_EMBROIDERY);
  490.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tBordado de guardia de espada", GOSSIP_SENDER_MAIN,
  491.                     ENCHANT_CLOAK_SWORDGUARD_EMBROIDERY);
  492.             }
  493.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tSabiduría -- 10 Espíritu +2% Reduce amenasa", GOSSIP_SENDER_MAIN,
  494.                 ENCHANT_CLOAK_WISDOM);
  495.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tTitanweave -- 16 Defensa", GOSSIP_SENDER_MAIN,
  496.                 ENCHANT_CLOAK_TITANWEAVE);
  497.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tHechizos Penetrantes -- 35 Pen. con Hechizos", GOSSIP_SENDER_MAIN,
  498.                 ENCHANT_CLOAK_SPELL_PIERCING);
  499.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tArmadura Poderosa -- 225 Armadura", GOSSIP_SENDER_MAIN,
  500.                 ENCHANT_CLOAK_MIGHTY_ARMOR);
  501.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tAgilidad Sublime -- 22 Agilidad", GOSSIP_SENDER_MAIN,
  502.                 ENCHANT_CLOAK_MAJOR_AGILITY);
  503.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tVelocidad Superior -- 23 Celeridad", GOSSIP_SENDER_MAIN,
  504.                 ENCHANT_CLOAK_GREATER_SPEED);
  505.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Regresar", GOSSIP_SENDER_MAIN, -1);
  506.             player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  507.         }
  508.        
  509.         void ShowChestMenu(Player* player, Creature* creature)
  510.         {
  511.             player->PlayerTalkClass->ClearMenus();
  512.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tManá Excepcional -- 150 Maná", GOSSIP_SENDER_MAIN,
  513.                 ENCHANT_CHEST_EXCEPTIONAL_MANA);
  514.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tRestaurar Maná Superior -- 10 Mp5", GOSSIP_SENDER_MAIN,
  515.                 ENCHANT_CHEST_GREATER_MANA_RESTO);
  516.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tTemple Excepcional -- 20 Temple", GOSSIP_SENDER_MAIN,
  517.                 ENCHANT_CHEST_EXCEPTIONAL_RESILIENCE);
  518.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tSúper Salud -- 225 Salud", GOSSIP_SENDER_MAIN,
  519.                 ENCHANT_CHEST_SUPER_HEALTH);
  520.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|t10 de Todas las Estadisticas", GOSSIP_SENDER_MAIN,
  521.                 ENCHANT_CHEST_ALL_STATS);
  522.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Regresar", GOSSIP_SENDER_MAIN, -1);
  523.             player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  524.         }
  525.        
  526.         void ShowBracerMenu(Player* player, Creature* creature)
  527.         {
  528.             player->PlayerTalkClass->ClearMenus();
  529.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tAsalto Superior -- 50 Poder de ataque", GOSSIP_SENDER_MAIN,
  530.                 ENCHANT_BRACER_GREATER_ASSAULT);
  531.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tIntelecto Excepcional -- 16 Intelecto", GOSSIP_SENDER_MAIN,
  532.                 ENCHANT_BRACER_EXCEPTIONAL_INTELLECT);
  533.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tEspíritu Sublime -- 18 Espíritu", GOSSIP_SENDER_MAIN,
  534.                 ENCHANT_BRACER_MAJOR_SPIRIT);
  535.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tPericia -- 15 Pericia", GOSSIP_SENDER_MAIN,
  536.                 ENCHANT_BRACER_EXPERTISE);
  537.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tEstadísticas Superiores -- 6 Todos los stats", GOSSIP_SENDER_MAIN,
  538.                 ENCHANT_BRACER_GREATER_STATS);
  539.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tPoder con Hechizos Superior -- 30 Poder con hechizos", GOSSIP_SENDER_MAIN,
  540.                 ENCHANT_BRACER_SUPERIOR_SPELLPOWER);
  541.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tAguante Sublime -- 40 Aguante", GOSSIP_SENDER_MAIN,
  542.                 ENCHANT_BRACER_MAJOR_STAMINA);
  543.             if (player->HasSkill(SKILL_LEATHERWORKING) && player->GetSkillValue(SKILL_LEATHERWORKING) >= 450)
  544.             {
  545.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tForro de Pelaje de Poder de Ataque", GOSSIP_SENDER_MAIN,
  546.                     ENCHANT_BRACER_FUR_LINING_AP);
  547.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tForro de Pelaje de Aguante", GOSSIP_SENDER_MAIN,
  548.                     ENCHANT_BRACER_FUR_LINING_STAMINA);
  549.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tForro de Pelaje de Poder con Hechizos", GOSSIP_SENDER_MAIN,
  550.                     ENCHANT_BRACER_FUR_LINING_SP);
  551.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tForro de Pelaje de Resistencia Arcana", GOSSIP_SENDER_MAIN,
  552.                     ENCHANT_BRACER_ARCANE_RESIST);
  553.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tForro de Pelaje de Resistencia a la Naturaleza", GOSSIP_SENDER_MAIN,
  554.                     ENCHANT_BRACER_NATURE_RESIST);
  555.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tForro de Pelaje de Resistencia a las Sombras", GOSSIP_SENDER_MAIN,
  556.                     ENCHANT_BRACER_SHADOW_RESIST);
  557.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tForro de Pelaje de Resistencia al Hielo", GOSSIP_SENDER_MAIN,
  558.                     ENCHANT_BRACER_FROST_RESIST);
  559.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tForro de Pelaje de Resistencia al Fuego", GOSSIP_SENDER_MAIN,
  560.                     ENCHANT_BRACER_FIRE_RESIST);
  561.             }
  562.             if (player->HasSkill(SKILL_BLACKSMITHING) && player->GetSkillValue(SKILL_BLACKSMITHING) >= 450)
  563.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tRanura de Brazal", GOSSIP_SENDER_MAIN,
  564.                     ENCHANT_BRACER_SOCKET_BRACER);
  565.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Regresar", GOSSIP_SENDER_MAIN, -1);
  566.             player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  567.         }
  568.  
  569.         void ShowGlovesMenu(Player* player, Creature* creature)
  570.         {
  571.             player->PlayerTalkClass->ClearMenus();
  572.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tArmero -- 2% Agro 10 Parar", GOSSIP_SENDER_MAIN,
  573.                 ENCHANT_GLOVES_ARMSMAN);
  574.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tPoder con Hechizos Excepcional -- 23 Poder con hechizos", GOSSIP_SENDER_MAIN,
  575.                 ENCHANT_GLOVES_EXCEPTIONAL_SPELLPOWER);
  576.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tPericia -- 15 Pericia", GOSSIP_SENDER_MAIN,
  577.                 ENCHANT_GLOVES_EXPERTISE);
  578.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tAsalto Superior -- 44 Poder de ataque", GOSSIP_SENDER_MAIN,
  579.                 ENCHANT_GLOVES_CRUSHER);
  580.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tAgilidad Sublime -- 20 Agilidad", GOSSIP_SENDER_MAIN,
  581.                 ENCHANT_GLOVES_MAJOR_AGILITY);
  582.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tPrecision -- 20 Indice de Golpe", GOSSIP_SENDER_MAIN,
  583.                 ENCHANT_GLOVES_PRECISION);
  584.             if (player->HasSkill(SKILL_BLACKSMITHING) && player->GetSkillValue(SKILL_BLACKSMITHING) >= 450)
  585.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tRanura de Manos", GOSSIP_SENDER_MAIN,
  586.                     ENCHANT_GLOVES_SOCKET_GLOVES);
  587.             if (player->HasSkill(SKILL_ENGINEERING) && player->GetSkillValue(SKILL_ENGINEERING) >= 450)
  588.             {
  589.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tPirocohete Manual", GOSSIP_SENDER_MAIN,
  590.                     ENCHANT_GLOVES_PYROROCKET);
  591.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tAceleradores de Hipervelocidad", GOSSIP_SENDER_MAIN,
  592.                     ENCHANT_GLOVES_HYPERSPEED_ACCELERATORS);
  593.             }
  594.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Regresar", GOSSIP_SENDER_MAIN, -1);
  595.             player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  596.         }
  597.  
  598.         void ShowBeltMenu(Player* player, Creature* creature)
  599.         {
  600.             player->PlayerTalkClass->ClearMenus();
  601.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tHebilla Eterna", GOSSIP_SENDER_MAIN,
  602.                 ENCHANT_BELT_ETERNAL_BELT_BUCKLE);
  603.             if (player->HasSkill(SKILL_ENGINEERING) && player->GetSkillValue(SKILL_ENGINEERING) >= 450)
  604.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tCinturón de Fragmentación", GOSSIP_SENDER_MAIN,
  605.                     ENCHANT_BELT_FRAG_BELT);
  606.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Regresar", GOSSIP_SENDER_MAIN, -1);
  607.             player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  608.         }
  609.  
  610.         void ShowLegsMenu(Player* player, Creature* creature)
  611.         {
  612.             player->PlayerTalkClass->ClearMenus();
  613.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tArmadura para Pierna de Pellejo de Escarcha -- 55 Aguante 22 Agilidad", GOSSIP_SENDER_MAIN,
  614.                 ENCHANT_LEGS_FROSTHIDE_ARMOR);
  615.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tArmadura para Pierna de Escama de hielo -- 75 Poder de ataque 22 Crit", GOSSIP_SENDER_MAIN,
  616.                 ENCHANT_LEGS_ICESCALE_ARMOR);
  617.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tArmadura Terránea para Pierna -- 40 Temple 28 Aguante", GOSSIP_SENDER_MAIN,
  618.                 ENCHANT_LEGS_EARTHEN_ARMOR);
  619.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tHilo de Hechizo de <afiro -- 50 Poder con Hechizos 30 Aguante", GOSSIP_SENDER_MAIN,
  620.                 ENCHANT_LEGS_SAPPHIRE_SPELLTHREAD);
  621.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tHilo de Hechizo Luminoso -- 50 Poder con Hechizos 22 Espíritu", GOSSIP_SENDER_MAIN,
  622.                 ENCHANT_LEGS_BRILLIANT_SPELLTHREAD);
  623.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Regresar", GOSSIP_SENDER_MAIN, -1);
  624.             player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  625.         }
  626.  
  627.         void ShowBootsMenu(Player* player, Creature* creature)
  628.         {
  629.             player->PlayerTalkClass->ClearMenus();
  630.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tCaminante de Hielo -- 12 Golpe + 12 Crit", GOSSIP_SENDER_MAIN,
  631.                 ENCHANT_BOOTS_ICEWALKER);
  632.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tAsalto Superior -- 32 Poder de ataque", GOSSIP_SENDER_MAIN,
  633.                 ENCHANT_BOOTS_GREATER_ASSAULT);
  634.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tEntereza Superior -- 22 Aguante", GOSSIP_SENDER_MAIN,
  635.                 ENCHANT_BOOTS_GREATER_FORTITUDE);
  636.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tEspíritu Superior -- 18 Espíritu", GOSSIP_SENDER_MAIN,
  637.                 ENCHANT_BOOTS_GREATER_SPIRIT);
  638.             if (player->HasSkill(SKILL_ENGINEERING) && player->GetSkillValue(SKILL_ENGINEERING) >= 450)
  639.                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tPropulsiones de Nitro", GOSSIP_SENDER_MAIN,
  640.                     ENCHANT_BOOTS_NITRO_BOOSTS);
  641.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tAgilidad Superior -- 16 Agilidad", GOSSIP_SENDER_MAIN,
  642.                 ENCHANT_BOOTS_SUPERIOR_AGILITY);
  643.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tVitalidad Colmillar -- 15 Aguante + Velocidad de movimiento", GOSSIP_SENDER_MAIN,
  644.                 ENCHANT_BOOTS_TUSKARRS_VITALITY);
  645.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Regresar", GOSSIP_SENDER_MAIN, -1);
  646.             player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  647.         }
  648.  
  649.         void ShowRingsMenu(Player* player, Creature* creature)
  650.         {
  651.             player->PlayerTalkClass->ClearMenus();
  652.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tAsalto", GOSSIP_SENDER_MAIN,
  653.                 ENCHANT_RING_ASSAULT);
  654.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tPoder con Hechizos Superior", GOSSIP_SENDER_MAIN,
  655.                 ENCHANT_RING_GREATER_SPELLPOWER);
  656.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaEpic_01:25|tAguante", GOSSIP_SENDER_MAIN,
  657.                 ENCHANT_RING_STAMINA);
  658.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Regresar", GOSSIP_SENDER_MAIN, -1);
  659.             player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  660.         }
  661.  
  662.         void ShowRangedMenu(Player* player, Creature* creature)
  663.         {
  664.             player->PlayerTalkClass->ClearMenus();
  665.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tMira Buscacorazones", GOSSIP_SENDER_MAIN,
  666.                 ENCHANT_RANGED_HEARTSEEKER_SCOPE);
  667.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "|TInterface\\icons\\INV_Enchant_FormulaGood_01:25|tMira solar", GOSSIP_SENDER_MAIN,
  668.                 ENCHANT_RANGED_SUN_SCOPE);
  669.             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Regresar", GOSSIP_SENDER_MAIN, -1);
  670.             player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  671.         }
  672.  
  673.         bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
  674.         {
  675.             int slot = -1;
  676.             bool check_adjacent_slot = true;
  677.             switch (action)
  678.             {
  679.                 case -1: // Back
  680.                     ShowMainMenu(player, creature);
  681.                     break;
  682.                 case GOSSIP_ACTION_INFO_DEF + 1:
  683.                     Show1HWeaponMenu(player, creature);
  684.                     break;
  685.                 case GOSSIP_ACTION_INFO_DEF + 2:
  686.                     Show2HWeaponMenu(player, creature);
  687.                     break;
  688.                 case GOSSIP_ACTION_INFO_DEF + 3:
  689.                     ShowShieldMenu(player, creature);
  690.                     break;
  691.                 case GOSSIP_ACTION_INFO_DEF + 4:
  692.                     ShowHeadMenu(player, creature);
  693.                     break;
  694.                 case GOSSIP_ACTION_INFO_DEF + 5:
  695.                     ShowShouldersMenu(player, creature);
  696.                     break;
  697.                 case GOSSIP_ACTION_INFO_DEF + 6:
  698.                     ShowCloakMenu(player, creature);
  699.                     break;
  700.                 case GOSSIP_ACTION_INFO_DEF + 7:
  701.                     ShowChestMenu(player, creature);
  702.                     break;
  703.                 case GOSSIP_ACTION_INFO_DEF + 8:
  704.                     ShowBracerMenu(player, creature);
  705.                     break;
  706.                 case GOSSIP_ACTION_INFO_DEF + 9:
  707.                     ShowGlovesMenu(player, creature);
  708.                     break;
  709.                 case GOSSIP_ACTION_INFO_DEF + 10:
  710.                     ShowBeltMenu(player, creature);
  711.                     break;
  712.                 case GOSSIP_ACTION_INFO_DEF + 11:
  713.                     ShowLegsMenu(player, creature);
  714.                     break;
  715.                 case GOSSIP_ACTION_INFO_DEF + 12:
  716.                     ShowBootsMenu(player, creature);
  717.                     break;
  718.                 case GOSSIP_ACTION_INFO_DEF + 13:
  719.                     ShowRangedMenu(player, creature);
  720.                     break;
  721.                 case GOSSIP_ACTION_INFO_DEF + 14:
  722.                     ShowRingsMenu(player, creature);
  723.                     break;
  724.  
  725.                 // 1H weapons
  726.                 case ENCHANT_WEP_BLADE_WARD:
  727.                 case ENCHANT_WEP_BLOOD_DRAINING:
  728.                 case ENCHANT_WEP_AGILITY_1H:
  729.                 case ENCHANT_WEP_SPIRIT:
  730.                 case ENCHANT_WEP_BERSERKING:
  731.                 case ENCHANT_WEP_ACCURACY:
  732.                 case ENCHANT_WEP_BLACK_MAGIC:
  733.                 case ENCHANT_WEP_BATTLEMASTER:
  734.                 case ENCHANT_WEP_ICEBREAKER:
  735.                 case ENCHANT_WEP_LIFEWARD:
  736.                 case ENCHANT_WEP_TITANGUARD:
  737.                 case ENCHANT_WEP_POTENCY:
  738.                 case ENCHANT_WEP_MONGOOSE:
  739.                 case ENCHANT_WEP_MIGHTY_SPELL_POWER:
  740.                 case ENCHANT_WEP_EXECUTIONER:
  741.                 case ENCHANT_WEP_TITANIUM_CHAIN:
  742.  
  743.                 // 2H weapons
  744.                 // case ENCHANT_WEP_BERSERKING:
  745.                 // case ENCHANT_WEP_MONGOOSE:
  746.                 // case ENCHANT_WEP_EXECUTIONER:
  747.                 // case ENCHANT_WEP_TITANIUM_CHAIN:
  748.                 case ENCHANT_WEP_GREATER_SPELL_POWER:
  749.                 case ENCHANT_WEP_AGILITY_2H:
  750.                 case ENCHANT_WEP_MASSACRE:
  751.  
  752.                 // Runeforging
  753.                 case ENCHANT_WEP_CINDERGLACIER:
  754.                 case ENCHANT_WEP_LICHBANE:
  755.                 case ENCHANT_WEP_RAZORICE:
  756.                 case ENCHANT_WEP_SPELLBREAKING:
  757.                 case ENCHANT_WEP_SPELLSHATTERING:
  758.                 case ENCHANT_WEP_SWORDBREAKING:
  759.                 case ENCHANT_WEP_SWORDSHATTERING:
  760.                 case ENCHANT_WEP_FALLEN_CRUSADER:
  761.                 case ENCHANT_WEP_NERUBIAN_CARAPACE:
  762.                 case ENCHANT_WEP_STONESKIN_GARGOYLE:
  763.                     slot = EQUIPMENT_SLOT_MAINHAND;
  764.                     break;
  765.  
  766.                 // Shields
  767.                 case ENCHANT_SHIELD_DEFENSE:
  768.                 case ENCHANT_SHIELD_INTELLECT:
  769.                 case ENCHANT_SHIELD_RESILIENCE:
  770.                 case ENCHANT_SHIELD_TITANIUM_PLATING:
  771.                 case ENCHANT_SHIELD_MAJOR_STAMINA:
  772.                 case ENCHANT_SHIELD_TITANIUM_SPIKE:
  773.                     slot = EQUIPMENT_SLOT_OFFHAND;
  774.                     break;
  775.  
  776.                 // Head
  777.                 case ENCHANT_HEAD_BLISSFUL_MENDING:
  778.                 case ENCHANT_HEAD_BURNING_MYSTERIES:
  779.                 case ENCHANT_HEAD_DOMINANCE:  
  780.                 case ENCHANT_HEAD_SAVAGE_GLADIATOR:
  781.                 case ENCHANT_HEAD_STALWART_PROTECTOR:
  782.                 case ENCHANT_HEAD_TORMENT:          
  783.                 case ENCHANT_HEAD_TRIUMPH:
  784.                     slot = EQUIPMENT_SLOT_HEAD;
  785.                     break;
  786.  
  787.                 // Shoulders
  788.                 case ENCHANT_SHOULDER_MASTERS_AXE:
  789.                 case ENCHANT_SHOULDER_MASTERS_CRAG:
  790.                 case ENCHANT_SHOULDER_MASTERS_PINNACLE:
  791.                 case ENCHANT_SHOULDER_MASTERS_STORM:
  792.                 case ENCHANT_SHOULDER_GREATER_AXE:
  793.                 case ENCHANT_SHOULDER_GREATER_CRAG:
  794.                 case ENCHANT_SHOULDER_GREATER_GLADIATOR:
  795.                 case ENCHANT_SHOULDER_GREATER_PINNACLE:
  796.                 case ENCHANT_SHOULDER_GREATER_STORM:
  797.                 case ENCHANT_SHOULDER_DOMINANCE:
  798.                 case ENCHANT_SHOULDER_TRIUMPH:
  799.                     slot = EQUIPMENT_SLOT_SHOULDERS;
  800.                     break;
  801.  
  802.                 // Cloak
  803.                 case ENCHANT_CLOAK_DARKGLOW_EMBROIDERY:
  804.                 case ENCHANT_CLOAK_SWORDGUARD_EMBROIDERY:
  805.                 case ENCHANT_CLOAK_FLEXWEAVE_UNDERLAY:
  806.                 case ENCHANT_CLOAK_LIGHTWEAVE_EMBROIDERY:
  807.                 case ENCHANT_CLOAK_SPRINGY_ARACHNOWEAVE:
  808.                 case ENCHANT_CLOAK_WISDOM:
  809.                 case ENCHANT_CLOAK_TITANWEAVE:
  810.                 case ENCHANT_CLOAK_SPELL_PIERCING:
  811.                 case ENCHANT_CLOAK_SHADOW_ARMOR:
  812.                 case ENCHANT_CLOAK_MIGHTY_ARMOR:
  813.                 case ENCHANT_CLOAK_MAJOR_AGILITY:
  814.                 case ENCHANT_CLOAK_GREATER_SPEED:
  815.                     slot = EQUIPMENT_SLOT_BACK;
  816.                     break;
  817.  
  818.                 // Chest
  819.                 case ENCHANT_CHEST_EXCEPTIONAL_MANA:
  820.                 case ENCHANT_CHEST_GREATER_MANA_RESTO:
  821.                 case ENCHANT_CHEST_EXCEPTIONAL_RESILIENCE:
  822.                 case ENCHANT_CHEST_SUPER_HEALTH:
  823.                 case ENCHANT_CHEST_ALL_STATS:
  824.                     slot = EQUIPMENT_SLOT_CHEST;
  825.                     break;
  826.  
  827.                 // Bracers
  828.                 case ENCHANT_BRACER_GREATER_ASSAULT:
  829.                 case ENCHANT_BRACER_EXCEPTIONAL_INTELLECT:
  830.                 case ENCHANT_BRACER_MAJOR_SPIRIT:
  831.                 case ENCHANT_BRACER_EXPERTISE:
  832.                 case ENCHANT_BRACER_GREATER_STATS:
  833.                 case ENCHANT_BRACER_SUPERIOR_SPELLPOWER:
  834.                 case ENCHANT_BRACER_MAJOR_STAMINA:
  835.                 case ENCHANT_BRACER_FUR_LINING_AP:
  836.                 case ENCHANT_BRACER_FUR_LINING_STAMINA:
  837.                 case ENCHANT_BRACER_FUR_LINING_SP:
  838.                 case ENCHANT_BRACER_ARCANE_RESIST:
  839.                 case ENCHANT_BRACER_NATURE_RESIST:
  840.                 case ENCHANT_BRACER_SHADOW_RESIST:
  841.                 case ENCHANT_BRACER_FROST_RESIST:
  842.                 case ENCHANT_BRACER_FIRE_RESIST:
  843.                 case ENCHANT_BRACER_SOCKET_BRACER:
  844.                     slot = EQUIPMENT_SLOT_WRISTS;
  845.                     break;
  846.  
  847.                 // Gloves
  848.                 case ENCHANT_GLOVES_EXPERTISE:
  849.                 case ENCHANT_GLOVES_PRECISION:
  850.                 case ENCHANT_GLOVES_GREATER_ASSAULT:
  851.                 case ENCHANT_GLOVES_MAJOR_AGILITY:
  852.                 case ENCHANT_GLOVES_EXCEPTIONAL_SPELLPOWER:
  853.                 case ENCHANT_GLOVES_ARMSMAN:
  854.                 case ENCHANT_GLOVES_SOCKET_GLOVES:
  855.                 case ENCHANT_GLOVES_PYROROCKET:
  856.                 case ENCHANT_GLOVES_HYPERSPEED_ACCELERATORS:
  857.                     slot = EQUIPMENT_SLOT_HANDS;
  858.                     break;
  859.  
  860.                 // Belt
  861.                 case ENCHANT_BELT_ETERNAL_BELT_BUCKLE:
  862.                 case ENCHANT_BELT_FRAG_BELT:
  863.                     slot = EQUIPMENT_SLOT_WAIST;
  864.                     break;
  865.  
  866.                 // Legs
  867.                 case ENCHANT_LEGS_FROSTHIDE_ARMOR:
  868.                 case ENCHANT_LEGS_ICESCALE_ARMOR:
  869.                 case ENCHANT_LEGS_EARTHEN_ARMOR:
  870.                 case ENCHANT_LEGS_SAPPHIRE_SPELLTHREAD :
  871.                 case ENCHANT_LEGS_BRILLIANT_SPELLTHREAD:
  872.                     slot = EQUIPMENT_SLOT_LEGS;
  873.                     break;
  874.  
  875.                 // Boots
  876.                 case ENCHANT_BOOTS_TUSKARRS_VITALITY:
  877.                 case ENCHANT_BOOTS_ICEWALKER:
  878.                 case ENCHANT_BOOTS_GREATER_ASSAULT:
  879.                 case ENCHANT_BOOTS_GREATER_SPIRIT:
  880.                 case ENCHANT_BOOTS_GREATER_FORTITUDE:
  881.                 case ENCHANT_BOOTS_SUPERIOR_AGILITY:
  882.                 case ENCHANT_BOOTS_NITRO_BOOSTS:
  883.                     slot = EQUIPMENT_SLOT_FEET;
  884.                     break;
  885.  
  886.                 // Rings
  887.                 case ENCHANT_RING_STAMINA:
  888.                 case ENCHANT_RING_GREATER_SPELLPOWER:
  889.                 case ENCHANT_RING_ASSAULT:
  890.                     slot = EQUIPMENT_SLOT_FINGER1;
  891.                     break;
  892.                
  893.                 // Ranged weapon
  894.                 case ENCHANT_RANGED_HEARTSEEKER_SCOPE:
  895.                 case ENCHANT_RANGED_SUN_SCOPE:
  896.                     slot = EQUIPMENT_SLOT_RANGED;
  897.                     break;
  898.  
  899.                 // Main hand
  900.                 case GOSSIP_ACTION_INFO_DEF + 20:
  901.                     slot = EQUIPMENT_SLOT_MAINHAND;
  902.                     action = selected_enchant;
  903.                     check_adjacent_slot = false;
  904.                     break;
  905.  
  906.                 // Off hand
  907.                 case GOSSIP_ACTION_INFO_DEF + 21:
  908.                     slot = EQUIPMENT_SLOT_OFFHAND;
  909.                     action = selected_enchant;
  910.                     check_adjacent_slot = false;
  911.                     break;
  912.  
  913.                 default:
  914.                     player->CLOSE_GOSSIP_MENU();
  915.                     break;
  916.             }
  917.             if (slot > -1)
  918.             {
  919.                 // allows for a maximum of 2 duplicates, and the
  920.                 // convenience of using enchant ids as gossip
  921.                 // userdata
  922.                 if (action < 0)
  923.                     action = -action;
  924.                 Item* item = player->GetItemByPos(INVENTORY_SLOT_BAG_0, slot);
  925.                 if (!item && slot == INVTYPE_RANGEDRIGHT)
  926.                     item   = player->GetItemByPos(INVENTORY_SLOT_BAG_0,
  927.                         INVTYPE_RANGEDRIGHT);
  928.                 if (item && check_adjacent_slot &&
  929.                     item->GetEnchantmentId(PERM_ENCHANTMENT_SLOT) != 0)
  930.                 {
  931.                     switch (slot)
  932.                     {
  933.                         case EQUIPMENT_SLOT_MAINHAND:
  934.                         {
  935.                             Item* offhand = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND);
  936.                             if (offhand)
  937.                             {
  938.                                 player->PlayerTalkClass->ClearMenus();
  939.                                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT,
  940.                                     item->GetTemplate()->Name1.c_str(),
  941.                                     GOSSIP_SENDER_MAIN,
  942.                                     GOSSIP_ACTION_INFO_DEF + 20);
  943.                                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT,
  944.                                     offhand->GetTemplate()->Name1.c_str(),
  945.                                     GOSSIP_SENDER_MAIN,
  946.                                     GOSSIP_ACTION_INFO_DEF + 21);
  947.                                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT,
  948.                                     "Back",
  949.                                     GOSSIP_SENDER_MAIN, -1);
  950.                                 player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  951.                                 selected_enchant = action;
  952.                                 return true;
  953.                             }
  954.                             break;
  955.                         }
  956.                         case EQUIPMENT_SLOT_FINGER1:
  957.                         {
  958.                             Item* ring2 = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_FINGER2);
  959.                             if (ring2)
  960.                             {
  961.                                 player->PlayerTalkClass->ClearMenus();
  962.                                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT,
  963.                                     item->GetTemplate()->Name1.c_str(),
  964.                                     GOSSIP_SENDER_MAIN,
  965.                                     GOSSIP_ACTION_INFO_DEF + 20);
  966.                                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT,
  967.                                     ring2->GetTemplate()->Name1.c_str(),
  968.                                     GOSSIP_SENDER_MAIN,
  969.                                     GOSSIP_ACTION_INFO_DEF + 21);
  970.                                 player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT,
  971.                                     "Back",
  972.                                     GOSSIP_SENDER_MAIN, -1);
  973.                                 player->SEND_GOSSIP_MENU(1, creature->GetGUID());
  974.                                 selected_enchant = action;
  975.                                 return true;
  976.                             }
  977.                             break;
  978.                         }
  979.                         default:
  980.                             break;
  981.                     }
  982.                 }
  983.                 Enchant(player, creature, item, action);
  984.                 ShowMainMenu(player, creature);
  985.             }
  986.             return true;
  987.         }
  988. };
  989.  
  990. void AddSC_npc_enchantment()
  991. {
  992.    new npc_enchantment();
  993. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement