Advertisement
cgm2k7

Encantamentos-Master

Nov 8th, 2014
452
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 35.59 KB | None | 0 0
  1. /*
  2. --------------------------------------------------------------------
  3. Create By : ????
  4. Update By : Estorn
  5. Check : Checked 100%
  6. --------------------------------------------------------------------
  7. */
  8. #include "ScriptPCH.h"
  9. #include "Config.h"
  10.  
  11. bool CobrarEncantamentos;
  12. uint8 TokenTipo;
  13. uint32 IDToken;
  14. uint32 vEncanto;
  15. std::string TextoConfirmar;
  16.  
  17. //#define StringToken "Item[Token]"
  18. //#define StringToken2 "Gold"
  19.  
  20. enum Enchants
  21. {
  22.     ENCHANT_WEP_BLADE_WARD = 3869,
  23.     ENCHANT_WEP_BLOOD_DRAINING = 3870,
  24.     ENCHANT_WEP_BERSERKING = 3789,
  25.     ENCHANT_WEP_ACCURACY = 3788,
  26.     ENCHANT_WEP_AGILITY_1H = 1103,
  27.     ENCHANT_WEP_AGILITY_2H = 2670,
  28.     ENCHANT_WEP_SPIRIT = 3844,
  29.     ENCHANT_WEP_BATTLEMASTER = 2675,
  30.     ENCHANT_WEP_BLACK_MAGIC = 3790,
  31.     ENCHANT_WEP_ICEBREAKER = 3239,
  32.     ENCHANT_WEP_LIFEWARD = 3241,
  33.     ENCHANT_WEP_MIGHTY_SPELL_POWER = 3834, // One-hand
  34.     ENCHANT_WEP_GREATER_SPELL_POWER = 3854, // Two-hand (staff)
  35.     ENCHANT_WEP_MONGOOSE = 2673,
  36.     ENCHANT_WEP_EXECUTIONER = 3225,
  37.     ENCHANT_WEP_POTENCY = 3833,
  38.     ENCHANT_WEP_TITANGUARD = 3851,
  39.     ENCHANT_SHIELD_MAJOR_STAMINA = 1071,
  40.     ENCHANT_SHIELD_INTELLECT = 1128,
  41.     ENCHANT_SHIELD_DEFENSE = 1952,
  42.     ENCHANT_SHIELD_TITANIUM_SPIKE = 3748,
  43.     ENCHANT_RANGED_HEARTSEEKER_SCOPE = 3608,
  44.     ENCHANT_RANGED_SUN_SCOPE = 3607,
  45.     ENCHANT_SHIELD_TITANIUM_PLATING = 3849,
  46.     ENCHANT_SHIELD_RESILIENCE = 3229,
  47.     ENCHANT_WEP_MASSACRE = 3827,
  48.     ENCHANT_WEP_CINDERGLACIER = 3369,
  49.     ENCHANT_WEP_LICHBANE = 3366,
  50.     ENCHANT_WEP_RAZORICE = 3370,
  51.     ENCHANT_WEP_SPELLBREAKING = 3595,
  52.     ENCHANT_WEP_SPELLSHATTERING = 3367,
  53.     ENCHANT_WEP_SWORDBREAKING = 3594,
  54.     ENCHANT_WEP_SWORDSHATTERING = 3365,
  55.     ENCHANT_WEP_FALLEN_CRUSADER = 3368,
  56.     ENCHANT_WEP_NERUBIAN_CARAPACE = 3883,
  57.     ENCHANT_WEP_TITANIUM_CHAIN = 3731,
  58.     ENCHANT_BELT_ETERNAL_BELT_BUCKLE = 3729,
  59.     ENCHANT_GLOVES_SOCKET_GLOVES = 3723,
  60.     ENCHANT_BRACER_SOCKET_BRACER = 3717,
  61. };
  62. int stvt; //SlotTypeVisualTexto
  63. using namespace std;
  64. struct MenusLista
  65. {
  66.     uint32 Menu;
  67.     uint32 Submenu;
  68.     uint8 Icone;
  69.     uint8 Slot;
  70.     uint32 Skill;
  71.     uint32 SkillValor;
  72.     uint8 pClasses;
  73.     uint32 AcaoID;
  74.     string Nome;
  75.     //string NomeConfirm;
  76. };
  77. std::string icone = "|TInterface/PaperDoll/UI-PaperDoll-Slot-Head:30:30:30:30|t Rings";
  78. MenusLista mvData[] =
  79. {
  80.     //{ Menu, subMenu, Icone, Slot, Skill, SkillValor, Classe, AcaoID, Nome },
  81.    
  82.     { 1, 100, 4, 0, 0, 0, 0, 0, "|TInterface\\icons\\spell_holy_greaterheal:18:18:-15:0|t[Aplicar Encantamentos]" },
  83.     //Remover Encantamentos
  84.     { 1, 99, 6, 0, 0, 0, 0, 0, "|TInterface\\icons\\INV_Enchant_Disenchant:18:18:-15:0|t[Remover Encantamentos!]" },
  85.  
  86.     { 100, 2, 4, 0, 0, 0, 0, 0, "[Enchant Weapon]" },
  87.     { 100, 111, 4, 0, 0, 0, 0, 0, "[Enchant OffHand]" },
  88.     { 100, 3, 4, 0, 0, 0, 0, 0, "[Enchant 2H Weapon]" },
  89.     { 100, 112, 4, 0, 0, 0, 1, 0, "[Enchant 2H OffHand]" },
  90.     { 100, 4, 4, 0, 0, 0, 3, 0, "[Enchant Ranged Weapon]" }, //Hunter
  91.     { 100, 4, 4, 0, 0, 0, 1, 0, "[Enchant Ranged Weapon]" }, //Warrior
  92.     { 100, 6, 4, 0, 0, 0, 0, 0, "[Enchant Shield]" },
  93.     { 100, 7, 4, 0, 0, 0, 0, 0, "[Enchant Head]" },
  94.     { 100, 8, 4, 0, 0, 0, 0, 0, "[Enchant Shoulders]" },
  95.     { 100, 9, 4, 0, 0, 0, 0, 0, "[Enchant Cloak]" },
  96.     { 100, 10, 4, 0, 0, 0, 0, 0, "[Enchant Chest]" },
  97.     { 100, 11, 4, 0, 0, 0, 0, 0, "[Enchant Bracers]" },
  98.     { 100, 12, 4, 0, 0, 0, 0, 0, "[Enchant Gloves]" },
  99.     { 100, 150, 4, 0, 0, 0, 0, 0, "[NULL]" },
  100.     { 100, 13, 4, 0, 0, 0, 0, 0, "[Eternal Belt Buckle]" }, //EQUIPMENT_SLOT_WAIST
  101.     { 100, 14, 4, 0, 0, 0, 0, 0, "[Enchant Legs]" },   
  102.     { 100, 15, 4, 0, 0, 0, 0, 0, "[Enchant Boots]" },
  103.     { 100, 16, 4, 0, 333, 450, 0, 0, "Enchant Rings" }, // Requer SKILL_ENCHANTING 450
  104.     { 100, 1, 8, 99, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20|t<< Voltar|r" },
  105.    
  106.     { 99, 0, 6, 15, 0, 0, 0, 0, "[Enchant Weapon]" },
  107.     { 99, 0, 6, 16, 0, 0, 0, 0, "[Enchant OffHand]" },
  108.     { 99, 0, 6, 16, 0, 0, 0, 0, "[Enchant Ranged Weapon]" },
  109.     { 99, 0, 6, 0, 0, 0, 0, 0, "[Enchant Head]" },
  110.     { 99, 0, 6, 2, 0, 0, 0, 0, "[Enchant Shoulders]" },
  111.     { 99, 0, 6, 14, 0, 0, 0, 0, "[Enchant Cloak]" },
  112.     { 99, 0, 6, 4, 0, 0, 0, 0, "[Enchant Chest]" },
  113.     { 99, 0, 6, 8, 0, 0, 0, 0, "[Enchant Bracers]" },
  114.     { 99, 0, 6, 9, 0, 0, 0, 0, "[Enchant Gloves]" },
  115.     { 99, 0, 6, 5, 0, 0, 0, 0, "[Eternal Belt Buckle]" },
  116.     { 99, 0, 6, 6, 0, 0, 0, 0, "[Enchant Legs]" },
  117.     { 99, 0, 6, 7, 0, 0, 0, 0, "[Enchant Boots]" },
  118.     { 99, 98, 6, 0, 333, 450, 0, 0, "Enchant Rings" },
  119.     { 99, 1, 8, 99, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20|t<< Voltar|r" },
  120.    
  121.     // Show1HWeaponMenu         EQUIPMENT_SLOT_MAINHAND    
  122.     { 2, 0, 2, 15, 0, 0, 6, 3369, "Rune of Cinderglacier" }, // Exclusivo para classe DK
  123.     { 2, 0, 2, 15, 0, 0, 6, 3366, "Rune of Lichbane" }, // Exclusivo para classe DK
  124.     { 2, 0, 2, 15, 0, 0, 6, 3370, "Rune of Razorice" }, // Exclusivo para classe DK
  125.     { 2, 0, 2, 15, 0, 0, 6, 3595, "Rune of Spellbreaking" }, // Exclusivo para classe DK
  126.     { 2, 0, 2, 15, 0, 0, 6, 3594, "Rune of Swordbreaking" }, // Exclusivo para classe DK
  127.     { 2, 0, 2, 15, 0, 0, 6, 3368, "Rune of the Fallen Crusader" }, // Exclusivo para classe DK
  128.     { 2, 0, 2, 15, 0, 0, 6, 3883, "Rune of the Nerubian Carapace" }, // Exclusivo para classe DK
  129.  
  130.    
  131.     { 2, 0, 2, 15, 333, 450, 0, 3869, "Blade Ward" }, // Requer SKILL_ENCHANTING 450
  132.     { 2, 0, 2, 15, 333, 450, 0, 3870, "Blood Draining" }, // Requer SKILL_ENCHANTING 450
  133.     { 2, 0, 2, 15, 0, 0, 0, 3788, "Accuracy -- 25 Hit + 25 Crit" },
  134.     { 2, 0, 2, 15, 0, 0, 0, 3790, "Black Magic -- 250 Spell Haste Proc" },
  135.     { 2, 0, 2, 15, 0, 0, 0, 2675, "Battlemaster -- Chance of heal on hit" },
  136.     { 2, 0, 2, 15, 0, 0, 0, 3789, "Berserking -- 400 Attack Power Proc" },
  137.     { 2, 0, 2, 15, 0, 0, 0, 1103, "Exceptional Agility -- 26 Agility" },
  138.     { 2, 5, 2, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_book_04:20|tMias+ >>|r" }, //Proxima tela
  139.     { 2, 100, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20|t<< Voltar|r" },
  140.    
  141.     { 5, 0, 2, 15, 0, 0, 0, 3844, "Exceptional Spirit -- 45 Spirit" },
  142.     { 5, 0, 2, 15, 0, 0, 0, 3225, "Executioner -- 120 Arm Pen Proc" },
  143.     { 5, 0, 2, 15, 0, 0, 0, 3239, "Icebreaker -- Fire damage on hit" },
  144.     { 5, 0, 2, 15, 0, 0, 0, 3241, "Lifeward -- Chance of heal on hit" },
  145.     { 5, 0, 2, 15, 0, 0, 0, 3834, "Mighty Spellpower -- 63 Spell Power" },
  146.     { 5, 0, 2, 15, 0, 0, 0, 2673, "Mongoose -- 120 Agility Proc" },
  147.     { 5, 0, 2, 15, 0, 0, 0, 3833, "Superior Potency -- 65 Attack Power" },
  148.     { 5, 0, 2, 15, 0, 0, 0, 3851, "Titanguard -- 50 Stamina" },
  149.     { 5, 0, 2, 15, 0, 0, 0, 3731, "Titanium Weapon Chain -- Less Disarm Time" },
  150.     { 5, 2, 2, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_book_04:20|t<< Menos-|r" },
  151.     { 5, 100, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20|t<< Voltar|r" },
  152.  
  153.     // Show1HWeaponMenu         EQUIPMENT_SLOT_OFFHAND     
  154.     { 111, 0, 2, 16, 0, 0, 6, 3369, "Rune of Cinderglacier" }, // Exclusivo para classe DK
  155.     { 111, 0, 2, 16, 0, 0, 6, 3366, "Rune of Lichbane" }, // Exclusivo para classe DK
  156.     { 111, 0, 2, 16, 0, 0, 6, 3370, "Rune of Razorice" }, // Exclusivo para classe DK
  157.     { 111, 0, 2, 16, 0, 0, 6, 3595, "Rune of Spellbreaking" }, // Exclusivo para classe DK
  158.     { 111, 0, 2, 16, 0, 0, 6, 3594, "Rune of Swordbreaking" }, // Exclusivo para classe DK
  159.     { 111, 0, 2, 16, 0, 0, 6, 3368, "Rune of the Fallen Crusader" }, // Exclusivo para classe DK
  160.     { 111, 0, 2, 16, 0, 0, 6, 3883, "Rune of the Nerubian Carapace" }, // Exclusivo para classe DK
  161.  
  162.  
  163.     { 111, 0, 2, 16, 333, 450, 0, 3869, "Blade Ward" }, // Requer SKILL_ENCHANTING 450
  164.     { 111, 0, 2, 16, 333, 450, 0, 3870, "Blood Draining" }, // Requer SKILL_ENCHANTING 450
  165.     { 111, 0, 2, 16, 0, 0, 0, 3788, "Accuracy -- 25 Hit + 25 Crit" },
  166.     { 111, 0, 2, 16, 0, 0, 0, 3790, "Black Magic -- 250 Spell Haste Proc" },
  167.     { 111, 0, 2, 16, 0, 0, 0, 2675, "Battlemaster -- Chance of heal on hit" },
  168.     { 111, 0, 2, 16, 0, 0, 0, 3789, "Berserking -- 400 Attack Power Proc" },
  169.     { 111, 0, 2, 16, 0, 0, 0, 1103, "Exceptional Agility -- 26 Agility" },
  170.     { 111, 55, 2, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_book_04:20|tMias+ >>|r" }, //Proxima tela
  171.     { 111, 100, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20|t<< Voltar|r" },
  172.  
  173.     { 55, 0, 2, 16, 0, 0, 0, 3844, "Exceptional Spirit -- 45 Spirit" },
  174.     { 55, 0, 2, 16, 0, 0, 0, 3225, "Executioner -- 120 Arm Pen Proc" },
  175.     { 55, 0, 2, 16, 0, 0, 0, 3239, "Icebreaker -- Fire damage on hit" },
  176.     { 55, 0, 2, 16, 0, 0, 0, 3241, "Lifeward -- Chance of heal on hit" },
  177.     { 55, 0, 2, 16, 0, 0, 0, 3834, "Mighty Spellpower -- 63 Spell Power" },
  178.     { 55, 0, 2, 16, 0, 0, 0, 2673, "Mongoose -- 120 Agility Proc" },
  179.     { 55, 0, 2, 16, 0, 0, 0, 3833, "Superior Potency -- 65 Attack Power" },
  180.     { 55, 0, 2, 16, 0, 0, 0, 3851, "Titanguard -- 50 Stamina" },
  181.     { 55, 0, 2, 16, 0, 0, 0, 3731, "Titanium Weapon Chain -- Less Disarm Time" },
  182.     { 55, 111, 2, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_book_04:20|t<< Menos-|r" },
  183.     { 55, 100, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20|t<< Voltar|r" },
  184.  
  185.     // Show2HWeaponMenu             EQUIPMENT_SLOT_MAINHAND        
  186.     { 3, 0, 2, 15, 0, 0, 6, 3369, "Rune of Cinderglacier" }, // Exclusivo para classe DK
  187.     { 3, 0, 2, 15, 0, 0, 6, 3366, "Rune of Lichbane" }, // Exclusivo para classe DK
  188.     { 3, 0, 2, 15, 0, 0, 6, 3370, "Rune of Razorice" }, // Exclusivo para classe DK
  189.     { 3, 0, 2, 15, 0, 0, 6, 3367, "Rune of Spellshattering" }, // Exclusivo para classe DK
  190.     { 3, 0, 2, 15, 0, 0, 6, 3365, "Rune of Swordshattering" }, // Exclusivo para classe DK
  191.     { 3, 0, 2, 15, 0, 0, 6, 3368, "Rune of the Fallen Crusader" }, // Exclusivo para classe DK
  192.     { 3, 0, 2, 15, 0, 0, 6, 3847, "Rune of the Stoneskin Gargoyle" }, // Exclusivo para classe DK0
  193.  
  194.     { 3, 0, 2, 15, 0, 0, 0, 3789, "Berserking -- 400 Attack Power Proc" },
  195.     { 3, 0, 2, 15, 0, 0, 0, 3225, "Executioner -- 120 Arm Pen Proc" },
  196.     { 3, 0, 2, 15, 0, 0, 0, 3854, "Greater Spellpower -- 81 Spell Power" },
  197.     { 3, 0, 2, 15, 0, 0, 0, 2670, "Major Agility -- 35 Agility" },
  198.     { 3, 0, 2, 15, 0, 0, 0, 3827, "Massacre -- 110 Attack Power" },
  199.     { 3, 0, 2, 15, 0, 0, 0, 2673, "Mongoose --120 Agility Proc" },
  200.     { 3, 100, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20|t<< Voltar|r" },
  201.  
  202.     // Show2HWeaponMenu             EQUIPMENT_SLOT_OFFHAND  Só para Warrior   
  203.     { 112, 0, 2, 16, 0, 0, 1, 3789, "Berserking -- 400 Attack Power Proc" },
  204.     { 112, 0, 2, 16, 0, 0, 1, 3225, "Executioner -- 120 Arm Pen Proc" },
  205.     { 112, 0, 2, 16, 0, 0, 1, 3854, "Greater Spellpower -- 81 Spell Power" },
  206.     { 112, 0, 2, 16, 0, 0, 1, 2670, "Major Agility -- 35 Agility" },
  207.     { 112, 0, 2, 16, 0, 0, 1, 3827, "Massacre -- 110 Attack Power" },
  208.     { 112, 0, 2, 16, 0, 0, 1, 2673, "Mongoose --120 Agility Proc" },
  209.     { 112, 100, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20|t<< Voltar|r" },
  210.  
  211.     //ShowRangedMenu            EQUIPMENT_SLOT_RANGED
  212.     { 4, 0, 2, 17, 0, 0, 0, 3608, "|TInterface\\icons\\inv_misc_spyglass_02:18:18:-15:0|tHeartseeker Scope" }, // Hunter e warrior
  213.     { 4, 0, 2, 17, 0, 0, 3, 3607, "|TInterface\\icons\\inv_misc_spyglass_02:18:18:-15:0|tSun Scope" }, // Somente para hunter
  214.     { 4, 100, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20|t<< Voltar|r" },
  215.  
  216.     //ShowShieldMenu           EQUIPMENT_SLOT_OFFHAND   INVTYPE_SHIELD
  217.     { 6, 0, 2, 16, 0, 0, 0, 1952, "|TInterface\\icons\\inv_misc_note_01:18:18:-15:0|tDefense -- 20 Defense" }, //30:30:-18:0
  218.     { 6, 0, 2, 16, 0, 0, 0, 1128, "|TInterface\\icons\\inv_misc_note_01:18:18:-15:0|tGreater Intellect -- 25 Intellect" },
  219.     { 6, 0, 2, 16, 0, 0, 0, 1071, "|TInterface\\icons\\inv_misc_note_01:18:18:-15:0|tMajor Stamina -- 18 Stamina" },
  220.     { 6, 0, 2, 16, 0, 0, 0, 3229, "|TInterface\\icons\\inv_misc_note_01:18:18:-15:0|tResilience -- 12 Resilience" },
  221.     { 6, 0, 2, 16, 0, 0, 0, 3849, "|TInterface\\icons\\inv_misc_note_01:18:18:-15:0|tTitanium Plating -- 36 Block" },
  222.     { 6, 0, 2, 16, 0, 0, 0, 3748, "|TInterface\\icons\\inv_misc_note_01:18:18:-15:0|tTitanium Shield Spike -- 81 Block + 50% less Disarm" },
  223.     { 6, 100, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20:20:-15:0|t<< Voltar|r" },
  224.  
  225.     //ShowHeadMenu        0 = EQUIPMENT_SLOT_HEAD  
  226.     { 7, 0, 2, 0, 0, 0, 0, 3819, "|TInterface\\icons\\ability_warrior_shieldmastery:18:18:-15:0|tArc. - 30 Spell Power + 10 Mp5" },
  227.     { 7, 0, 2, 0, 0, 0, 0, 3820, "|TInterface\\icons\\ability_warrior_shieldmastery:18:18:-15:0|tArc. - 30 Spell Power + 20 Crit" },
  228.     { 7, 0, 2, 0, 0, 0, 0, 3796, "|TInterface\\icons\\ability_warrior_shieldmastery:18:18:-15:0|tArc. - 29 Spell Power + 20 Resil Rat" },
  229.     { 7, 0, 2, 0, 0, 0, 0, 3842, "|TInterface\\icons\\ability_warrior_shieldmastery:18:18:-15:0|tArc. - 30 Stamina + 25 Resil" },
  230.     { 7, 0, 2, 0, 0, 0, 0, 3818, "|TInterface\\icons\\ability_warrior_shieldmastery:18:18:-15:0|tArc. - 37 Stamina + 20 Defense" },
  231.     { 7, 0, 2, 0, 0, 0, 0, 3817, "|TInterface\\icons\\ability_warrior_shieldmastery:18:18:-15:0|tArc. - 50 Attack Power + 20 Crit" },
  232.     { 7, 0, 2, 0, 0, 0, 0, 3795, "|TInterface\\icons\\ability_warrior_shieldmastery:18:18:-15:0|tArc. - 50 Attack Power + 20 Resil" },
  233.     { 7, 100, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20:20:-15:0|t<< Voltar|r" },
  234.  
  235.     //ShowShouldersMenu      EQUIPMENT_SLOT_SHOULDERS
  236.     { 8, 0, 2, 2, 773, 450, 0, 3835, "|TInterface\\icons\\inv_axe_85:18:18:-15:0|tMaster's Inscription of the Axe" }, // Requer SKILL_INSCRIPTION 450
  237.     { 8, 0, 2, 2, 773, 450, 0, 3836, "|TInterface\\icons\\inv_axe_85:18:18:-15:0|tMaster's Inscription of the Crag" }, // Requer SKILL_INSCRIPTION 450
  238.     { 8, 0, 2, 2, 773, 450, 0, 3837, "|TInterface\\icons\\inv_axe_85:18:18:-15:0|tMaster's Inscription of the Pinnacle" }, // Requer SKILL_INSCRIPTION 450
  239.     { 8, 0, 2, 2, 773, 450, 0, 3838, "|TInterface\\icons\\inv_axe_86:18:18:-15:0|tMaster's Inscription of the Storm" }, // Requer SKILL_INSCRIPTION 450
  240.     { 8, 0, 2, 2, 0, 0, 0, 3808, "|TInterface\\icons\\inv_axe_85:18:18:-15:0|tAxe - 40 Attack Power + 15 Crit" },
  241.     { 8, 0, 2, 2, 0, 0, 0, 3809, "|TInterface\\icons\\inv_axe_85:18:18:-15:0|tCrag - 24 Spell Power + 8 Mp5" },
  242.     { 8, 0, 2, 2, 0, 0, 0, 3852, "|TInterface\\icons\\inv_axe_85:18:18:-15:0|tPinnacle - 30 Stamina + 15 Resil" },
  243.     { 8, 0, 2, 2, 0, 0, 0, 3811, "|TInterface\\icons\\inv_axe_85:18:18:-15:0|tGladiator - 20 Dodge + 15 Defense" },
  244.     { 8, 0, 2, 2, 0, 0, 0, 3810, "|TInterface\\icons\\inv_axe_85:18:18:-15:0|tStorm - 24 Spell Power + 15 Crit" },
  245.     { 8, 0, 2, 2, 0, 0, 0, 3794, "|TInterface\\icons\\inv_axe_85:18:18:-15:0|tDominance - 23 Spel Pow + 15 Resil" },   
  246.     { 8, 100, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20:20:-15:0|t<< Voltar|r" },
  247.  
  248.     //ShowCloakMenu         EQUIPMENT_SLOT_BACK
  249.     { 9, 0, 2, 14, 202, 450, 0, 3859, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tSpringy Arachnoweave" }, //Requer SKILL_ENGINEERING 450
  250.     { 9, 0, 2, 14, 202, 450, 0, 3605, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tFlexweave Underlay" }, //SKILL_ENGINEERING 450
  251.     { 9, 0, 2, 14, 0, 0, 4, 3256, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tShadow Armor" }, // Exclusivo Rogue
  252.     { 9, 0, 2, 14, 197, 450, 0, 3728, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tDarkglow Embroidery" }, //Requer SKILL_TAILORING 450
  253.     { 9, 0, 2, 14, 197, 450, 0, 3722, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tLightweave Embroidery" }, //Requer SKILL_TAILORING 450
  254.     { 9, 0, 2, 14, 197, 450, 0, 3730, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tSwordguard Embroidery" }, //Requer SKILL_TAILORING 450
  255.     { 9, 0, 2, 14, 0, 0, 0, 3296, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tWisdom - 10 Spirit +2% reduce threat" },
  256.     { 9, 0, 2, 14, 0, 0, 0, 1951, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tTitanweave - 16 Defense" },
  257.     { 9, 0, 2, 14, 0, 0, 0, 3243, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tSpell Piercing - 35 Spell Pen" },
  258.     { 9, 0, 2, 14, 0, 0, 0, 3294, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tMighty Armor - 225 Armor" },
  259.     { 9, 0, 2, 14, 0, 0, 0, 1099, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tMajor Agility - 22 Agility" },
  260.     { 9, 0, 2, 14, 0, 0, 0, 3831, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tGreater Speed - 23 Haste" },
  261.     { 9, 100, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20:20:-15:0|t<< Voltar|r" },
  262.  
  263.     { 10, 0, 2, 4, 0, 0, 0, 3233, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tExceptional Mana - 150 Mana" },
  264.     { 10, 0, 2, 4, 0, 0, 0, 3533, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tGreater Mana Restoration - 10 Mp5" },
  265.     { 10, 0, 2, 4, 0, 0, 0, 3245, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tExceptional Resilience - 20 Resilience" },
  266.     { 10, 0, 2, 4, 0, 0, 0, 3297, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tSuper Health - 225 Health" },
  267.     { 10, 0, 2, 4, 0, 0, 0, 3832, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|t10 of all stats" },
  268.     { 10, 100, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20:20:-15:0|t<< Voltar|r" },
  269.  
  270.     //ShowBracerMenu        EQUIPMENT_SLOT_WRISTS
  271.     { 11, 0, 2, 8, 0, 0, 0, 3845, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tGreater Assault - 50 Attack Power" },
  272.     { 11, 0, 2, 8, 0, 0, 0, 3458, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tExceptional Intellect - 16 Intellect" },
  273.     { 11, 0, 2, 8, 0, 0, 0, 1147, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tMajor Spirit - 18 Spirit" },
  274.     { 11, 0, 2, 8, 0, 0, 0, 3231, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tExpertise - 15 Expertise" },
  275.     { 11, 0, 2, 8, 0, 0, 0, 2661, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tGreater Stats - 6 all stats" },
  276.     { 11, 0, 2, 8, 0, 0, 0, 2332, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tSuperior Spellpower - 30 Spell Power" },
  277.     { 11, 0, 2, 8, 0, 0, 0, 3850, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tMajor Stamina - 40 Stamina" },
  278.     { 11, 0, 2, 8, 164, 450, 0, 3717, "|TInterface\\icons\\inv_bracer_mail_raidshaman_m_01:18:18:-15:0|tSocket Bracer" }, //Reuqer SKILL_BLACKSMITHING 450 
  279.     { 11, 0, 2, 8, 165, 450, 0, 3756, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tFur Lining: Attack Power" }, //Reuqer SKILL_LEATHERWORKING 450
  280.     { 11, 0, 2, 8, 165, 450, 0, 3757, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tFur Lining: Stamina" }, //Reuqer SKILL_LEATHERWORKING 450
  281.     { 11, 0, 2, 8, 165, 450, 0, 3758, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tFur Lining: Spell Power" }, //Reuqer SKILL_LEATHERWORKING 450
  282.     { 11, 0, 2, 8, 165, 450, 0, 3763, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tFur Lining: Arcane Resist" }, //Reuqer SKILL_LEATHERWORKING 450
  283.     { 11, 0, 2, 8, 165, 450, 0, 3762, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tFur Lining: Nature Resist" }, //Reuqer SKILL_LEATHERWORKING 450
  284.     { 11, 0, 2, 8, 165, 450, 0, 3761, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tFur Lining: Shadow Resist" }, //Reuqer SKILL_LEATHERWORKING 450
  285.     { 11, 0, 2, 8, 165, 450, 0, 3760, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tFur Lining: Frost Resist" }, //Reuqer SKILL_LEATHERWORKING 450
  286.     { 11, 0, 2, 8, 165, 450, 0, 3759, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tFur Lining: Fire Resist" }, //Reuqer SKILL_LEATHERWORKING 450
  287.     { 11, 100, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20:20:-15:0|t<< Voltar|r" },
  288.  
  289.     //ShowGlovesMenu        EQUIPMENT_SLOT_HANDS
  290.     { 12, 0, 2, 9, 0, 0, 0, 3253, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tArmsman - 2% Threat 10 Parry" },
  291.     { 12, 0, 2, 9, 0, 0, 0, 2330, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tExceptional Spellpower -- 23 Spell Power" },
  292.     { 12, 0, 2, 9, 0, 0, 0, 3231, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tExpertise - 15 Expertise" },
  293.     { 12, 0, 2, 9, 0, 0, 0, 1603, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tGreater Assault - 44 Attack Power" },
  294.     { 12, 0, 2, 9, 0, 0, 0, 1097, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tMajor Agility - 20 Agility" },
  295.     { 12, 0, 2, 9, 0, 0, 0, 3234, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tPrecision - 20 Hit Rating" },
  296.     { 12, 0, 2, 9, 164, 450, 0, 3723, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tSocket Gloves" }, //Requer SKILL_BLACKSMITHING 450
  297.     { 12, 0, 2, 9, 202, 450, 0, 3603, "|TInterface\\icons\\inv_misc_enggizmos_01:18:18:-15:0|tHand-Mounted Pyro Rocket" }, //Requer SKILL_ENGINEERING 450
  298.     { 12, 0, 2, 9, 202, 450, 0, 3604, "|TInterface\\icons\\inv_misc_enggizmos_01:18:18:-15:0|tHyperspeed Accelerators" }, //Requer SKILL_ENGINEERING 450
  299.     { 12, 100, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20:20:-15:0|t<< Voltar|r" },
  300.  
  301.     //ShowBeltMenu          EQUIPMENT_SLOT_WAIST
  302.     { 13, 0, 4, 5, 0, 0, 0, 3729, "|TInterface\\icons\\inv_belt_36:18:18:-15:0|tEternal Belt Buckle" },
  303.     { 13, 0, 4, 5, 202, 450, 0, 3601, "|TInterface\\icons\\trade_engineering:18:18:-15:0|tFrag Belt" }, //Requer SKILL_ENGINEERING 450
  304.     { 13, 100, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20:20:-15:0|t<< Voltar|r" },
  305.  
  306.     //ShowLegsMenu          EQUIPMENT_SLOT_LEGS
  307.     { 14, 0, 4, 6, 0, 0, 0, 3822, "|TInterface\\icons\\inv_misc_armorkit_32:18:18:-15:0|tLeg Armor - 55 Stam 22 Agil" },
  308.     { 14, 0, 4, 6, 0, 0, 0, 3823, "|TInterface\\icons\\inv_misc_armorkit_33:18:18:-15:0|tLeg Armor - 75 AP 22 Crit" },
  309.     { 14, 0, 4, 6, 0, 0, 0, 3853, "|TInterface\\icons\\inv_misc_armorkit_18:18:18:-15:0|tLeg Armor - 40 Resil 28 Stam" },
  310.     { 14, 0, 4, 6, 0, 0, 0, 3873, "|TInterface\\icons\\spell_nature_astralrecalgroup:18:18:-15:0|tSpellthread - 50 SP 30 Stam" },
  311.     { 14, 0, 4, 6, 0, 0, 0, 3872, "|TInterface\\icons\\spell_nature_astralrecalgroup:18:18:-15:0|tSpellthread - 50 SP 22 Spirit" },
  312.     { 14, 100, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20:20:-15:0|t<< Voltar|r" },
  313.  
  314.     //ShowBootsMenu         EQUIPMENT_SLOT_FEET
  315.     { 15, 15, 4, 0, 0, 0, 0, 0, "" },
  316.     { 15, 0, 4, 7, 0, 0, 0, 3826, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tIcewalker - 12 Hit + 12 Crit" },
  317.     { 15, 0, 4, 7, 0, 0, 0, 1597, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tGreater Assault - 32 Assult" },
  318.     { 15, 0, 4, 7, 0, 0, 0, 3259, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tGreater Fortitude - 22 Stamins" },
  319.     { 15, 0, 4, 7, 0, 0, 0, 1147, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tGreater Spirit - 18 Spirit" },
  320.     { 15, 0, 4, 7, 202, 450, 0, 3606, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tNitro Boosts" }, //Requer SKILL_ENGINEERING 450
  321.     { 15, 0, 4, 7, 202, 450, 0, 983, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tSuperior Agility - 16 Agility" }, //Requer SKILL_ENGINEERING 450
  322.     { 15, 0, 4, 7, 202, 450, 0, 3232, "|TInterface\\icons\\inv_enchant_formulagood_01:18:18:-15:0|tVitality - 15 Stam + Speed Increase" }, //Requer SKILL_ENGINEERING 450
  323.     { 15, 100, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20:20:-15:0|t<< Voltar|r" },
  324.  
  325.     //ShowRingsMenu
  326.     { 16, 17, 4, 0, 333, 450, 0, 0, "|TInterface/PaperDoll/UI-PaperDoll-Slot-Finger:30:30:-15:0|tFinger 1" },
  327.     { 16, 18, 4, 0, 333, 450, 0, 0, "|TInterface/PaperDoll/UI-PaperDoll-Slot-Finger:30:30:-15:0|tFinger 2" },
  328.     { 16, 100, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20:20:-15:0|t<< Voltar|r" },
  329.     //EQUIPMENT_SLOT_FINGER1 = 10
  330.     { 17, 0, 4, 10, 0, 0, 0, 3839, "|TInterface\\icons\\inv_enchant_formulasuperior_01:18:18:-15:0|tAssault" },
  331.     { 17, 0, 4, 10, 0, 0, 0, 3840, "|TInterface\\icons\\inv_enchant_formulasuperior_01:18:18:-15:0|tGreater Spellpower" },
  332.     { 17, 0, 4, 10, 0, 0, 0, 3791, "|TInterface\\icons\\inv_enchant_formulasuperior_01:18:18:-15:0|tStamina" },
  333.     { 17, 16, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20:20:-15:0|t<< Voltar|r" },
  334.     //EQUIPMENT_SLOT_FINGER2 = 11
  335.     { 18, 0, 4, 11, 0, 0, 0, 3839, "|TInterface\\icons\\inv_enchant_formulasuperior_01:18:18:-15:0|tAssault" },
  336.     { 18, 0, 4, 11, 0, 0, 0, 3840, "|TInterface\\icons\\inv_enchant_formulasuperior_01:18:18:-15:0|tGreater Spellpower" },
  337.     { 18, 0, 4, 11, 0, 0, 0, 3791, "|TInterface\\icons\\inv_enchant_formulasuperior_01:18:18:-15:0|tStamina" },
  338.     { 18, 16, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20:20:-15:0|t<< Voltar|r" },
  339.     //Remover encatamentos de rings
  340.     { 98, 0, 6, 10, 0, 0, 0, 0, "|TInterface/PaperDoll/UI-PaperDoll-Slot-Finger:30:30:-15:0|tFinger1->" },
  341.     { 98, 0, 6, 11, 0, 0, 0, 0, "|TInterface/PaperDoll/UI-PaperDoll-Slot-Finger:30:30:-15:0|tFinger2->"},
  342.     { 98, 99, 8, 0, 0, 0, 0, 0, "|cff0000FF|TInterface\\icons\\inv_misc_questionmark:20:20:-15:0|t<< Voltar|r" }
  343. };
  344. uint32 GetText(unsigned int menu, Player* pPlayer)
  345. {
  346.     uint32 TEXT = 50030; //Default
  347.     switch (mvData[menu].Menu)
  348.     {
  349.     case 100:
  350.         TEXT = 50031;
  351.         break;
  352.     case 99:
  353.         TEXT = 50032;
  354.         break;
  355.     }
  356.     return (TEXT);
  357. }
  358. bool playerCheckClasse(uint8 playerClass, unsigned char pcc)
  359. {
  360.     bool Show = false;
  361.     switch (mvData[pcc].pClasses)
  362.     {
  363.     case 0:
  364.         Show = true;
  365.         break;
  366.     case CLASS_WARRIOR:
  367.         if (playerClass == CLASS_WARRIOR)
  368.             Show = true;
  369.         break;
  370.     case CLASS_PALADIN:
  371.         if (playerClass == CLASS_PALADIN)
  372.             Show = true;
  373.         break;
  374.     case CLASS_DRUID:
  375.         if (playerClass == CLASS_DRUID)
  376.             Show = true;
  377.         break;
  378.     case CLASS_DEATH_KNIGHT:
  379.         if (playerClass == CLASS_DEATH_KNIGHT)
  380.             Show = true;
  381.         break;
  382.     case CLASS_MAGE:
  383.         if (playerClass == CLASS_MAGE)
  384.             Show = true;
  385.         break;
  386.     case CLASS_HUNTER:
  387.         if (playerClass == CLASS_HUNTER)
  388.             Show = true;
  389.         break;
  390.     case CLASS_PRIEST:
  391.         if (playerClass == CLASS_PRIEST)
  392.             Show = true;
  393.         break;
  394.     case CLASS_WARLOCK:
  395.         if (playerClass == CLASS_WARLOCK)
  396.             Show = true;
  397.         break;
  398.     case CLASS_SHAMAN:
  399.         if (playerClass == CLASS_SHAMAN)
  400.             Show = true;
  401.         break;
  402.     case CLASS_ROGUE:
  403.         if (playerClass == CLASS_ROGUE)
  404.             Show = true;
  405.         break;
  406.     }
  407.     return (Show);
  408. }
  409. void Acao(Player* player, Creature* creature, uint32 id)
  410. {
  411.     switch (id)
  412.     {
  413.     case 99:
  414.  
  415.         break;
  416.     case 2:
  417.        
  418.         break;
  419.    
  420.     }
  421.     return;
  422. }
  423. Item* PlayerAddItem(Player* player, uint32 item_id)
  424. {
  425.     uint8 count = 1;
  426.     uint32 noSpaceForCount = 0;
  427.     ItemPosCountVec dest;
  428.     InventoryResult msg = player->CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, item_id, count, &noSpaceForCount);
  429.     if (msg != EQUIP_ERR_OK)
  430.         count -= noSpaceForCount;
  431.     Item* item = player->StoreNewItem(dest, item_id, true,
  432.         Item::GenerateItemRandomPropertyId(item_id));
  433.     if (noSpaceForCount > 0)
  434.     {
  435.         player->GetSession()->SendNotification("Please make room in your "  "inventory first.");
  436.         return NULL;
  437.     }
  438.     return item;
  439. }
  440. void EnchantWithItem(Player* player, uint32 item_id, Item* target)
  441. {
  442.     Item* item = PlayerAddItem(player, item_id);
  443.     SpellCastTargets* targets = new SpellCastTargets();
  444.     targets->SetItemTarget(target);
  445.     player->CastItemUseSpell(item, *targets, 1, 0);
  446. }
  447. void EnchantWithSpell(Player* player, uint32 spell_id, Item* item)
  448. {
  449.     SpellCastTargets* targets = new SpellCastTargets();
  450.     targets->SetItemTarget(item);
  451.     player->CastSpell(*targets, sSpellMgr->GetSpellInfo(spell_id),
  452.         NULL, TRIGGERED_IGNORE_POWER_AND_REAGENT_COST);
  453. }
  454. bool CobrarEncantos(Player* player)
  455. {
  456.     if (CobrarEncantamentos)
  457.     {
  458.         if (TokenTipo == 1){
  459.             if (player->HasItemCount(IDToken, vEncanto, true))
  460.             {
  461.                 player->DestroyItemCount(IDToken, vEncanto, true);
  462.                 return true;
  463.             }
  464.             else{
  465.                 ChatHandler(player->GetSession()).PSendSysMessage("|cffFF4500Voce nao tem o valor suficiente! para encantar este item. Valor necessario:|cffFF4500%u|r", vEncanto);
  466.                 return false;
  467.             }
  468.         }
  469.         else{
  470.             if (TokenTipo == 2){
  471.                 if (player->GetMoney() >= vEncanto*GOLD)
  472.                 {
  473.                     player->ModifyMoney(-int(vEncanto*GOLD), true);
  474.                     return true;
  475.                 }
  476.                 else{
  477.                     ChatHandler(player->GetSession()).PSendSysMessage("|cffFF4500Voce nao tem Gold sufuciente! para encantar este item. Valor necessario:|cffFF4500%u|rK de gold", vEncanto);
  478.                     return false;
  479.                 }
  480.             }
  481.         }
  482.     }
  483.     return true;
  484. }
  485. void Enchant(Player* player, Creature* creature, Item* item, uint32 enchantid)
  486. {
  487.     if (!item)
  488.     {
  489.         player->GetSession()->SendNotification("Favor equipar um item primeiro.");
  490.         return;
  491.     }
  492.     if (!CobrarEncantos(player))
  493.         return;
  494.  
  495.     uint32 item_id = 0;
  496.     switch (enchantid)
  497.     {
  498.     case ENCHANT_WEP_GREATER_SPELL_POWER:
  499.     case ENCHANT_WEP_AGILITY_2H:
  500.     case ENCHANT_WEP_MASSACRE:
  501.         if (item->GetTemplate()->InventoryType != INVTYPE_2HWEAPON)
  502.         {
  503.             player->GetSession()->SendNotification("Favor equipar uma arma de duas maos antes.");
  504.             return;
  505.         }
  506.         break;
  507.     case ENCHANT_SHIELD_DEFENSE:
  508.     case ENCHANT_SHIELD_INTELLECT:
  509.     case ENCHANT_SHIELD_MAJOR_STAMINA:
  510.     case ENCHANT_SHIELD_RESILIENCE:
  511.     case ENCHANT_SHIELD_TITANIUM_PLATING:
  512.     case ENCHANT_SHIELD_TITANIUM_SPIKE:
  513.         if (item->GetTemplate()->InventoryType != INVTYPE_SHIELD)
  514.         {
  515.             player->GetSession()->SendNotification("Favor equipar um escudo antes.");
  516.             return;
  517.         }
  518.         break;
  519.     case ENCHANT_RANGED_HEARTSEEKER_SCOPE: // EQUIPMENT_SLOT_RANGED
  520.     case ENCHANT_RANGED_SUN_SCOPE: // EQUIPMENT_SLOT_RANGED
  521.         if (item->GetTemplate()->InventoryType != INVTYPE_RANGED && item->GetTemplate()->InventoryType != INVTYPE_RANGEDRIGHT)
  522.         {
  523.             player->GetSession()->SendNotification("Favor equipar uma arma ranged antes. ex:[bow, crossbow e gun].");
  524.             return;
  525.         }
  526.         break;
  527. //======================================================== EQUIPMENT_SLOT_MAINHAND & EQUIPMENT_SLOT_OFFHAND
  528.     case ENCHANT_WEP_CINDERGLACIER:
  529.     case ENCHANT_WEP_LICHBANE:
  530.     case ENCHANT_WEP_RAZORICE:
  531.     case ENCHANT_WEP_SPELLBREAKING:
  532.     case ENCHANT_WEP_SWORDBREAKING:
  533.     case ENCHANT_WEP_FALLEN_CRUSADER:
  534.     case ENCHANT_WEP_NERUBIAN_CARAPACE:
  535.     case ENCHANT_WEP_BLADE_WARD:
  536.     case ENCHANT_WEP_BLOOD_DRAINING:
  537.     case ENCHANT_WEP_ACCURACY:
  538.     case ENCHANT_WEP_BLACK_MAGIC:
  539.     case ENCHANT_WEP_BATTLEMASTER:
  540.     case ENCHANT_WEP_BERSERKING:
  541.     case ENCHANT_WEP_AGILITY_1H:
  542.     case ENCHANT_WEP_SPIRIT:
  543.     case ENCHANT_WEP_EXECUTIONER:
  544.     case ENCHANT_WEP_ICEBREAKER:
  545.     case ENCHANT_WEP_LIFEWARD:
  546.     case ENCHANT_WEP_MIGHTY_SPELL_POWER:
  547.     case ENCHANT_WEP_MONGOOSE:
  548.     case ENCHANT_WEP_POTENCY:
  549.     case ENCHANT_WEP_TITANGUARD:
  550.     case ENCHANT_WEP_TITANIUM_CHAIN:
  551.         if (item->GetTemplate()->InventoryType == INVTYPE_SHIELD)
  552.         {
  553.             player->GetSession()->SendNotification("Este encantamentos nao pode ser aplicado em escudos");
  554.             return;
  555.         }
  556.         break;
  557. //======================================================== EQUIPMENT_SLOT_MAINHAND & EQUIPMENT_SLOT_OFFHAND
  558.     default:
  559.         break;
  560.     }
  561.     player->ApplyEnchantment(item, PERM_ENCHANTMENT_SLOT, false);
  562.     item->ClearEnchantment(PERM_ENCHANTMENT_SLOT);
  563.     item->SetEnchantment(PERM_ENCHANTMENT_SLOT, enchantid, 0, 0);
  564.     player->ApplyEnchantment(item, PERM_ENCHANTMENT_SLOT, true);
  565.     switch (enchantid)
  566.     {
  567.     case ENCHANT_BELT_ETERNAL_BELT_BUCKLE: //EQUIPMENT_SLOT_WAIST
  568.         EnchantWithItem(player, 41611, item);
  569.         break;
  570.     case ENCHANT_BRACER_SOCKET_BRACER: //EQUIPMENT_SLOT_WAIST
  571.         PlayerAddItem(player, 5956); // Blacksmith hammer
  572.         EnchantWithSpell(player, 55628, item);
  573.         player->DestroyItemCount(5956, -1, true, false);
  574.         break;
  575.     case ENCHANT_GLOVES_SOCKET_GLOVES:
  576.         PlayerAddItem(player, 5956); // Blacksmith hammer
  577.         EnchantWithSpell(player, 55641, item);
  578.         player->DestroyItemCount(5956, -1, true, false);
  579.         break;
  580.     }
  581.     std::string item_name = item->GetTemplate()->Name1.c_str();
  582.     //  char* message;
  583.     if (item->GetEnchantmentId(PERM_ENCHANTMENT_SLOT) != 0){
  584.         player->GetSession()->SendNotification("|cff9400D3%s |cff00FF00Encantamento com sucesso!", item->GetTemplate()->Name1.c_str());
  585.         player->CastSpell(player, 46325, false); // Spell só para visual //26410
  586.         player->CastSpell(creature, 48340, false); // Spell só para visual //26410
  587.     }
  588.     else
  589.     player->GetSession()->SendNotification("|cff9400D3%s |cffFF0000ERRO: ao aplicar encantamento no item!", item->GetTemplate()->Name1.c_str());
  590. }
  591. bool RemoveEnchantS(Player* player, Item* item)
  592. {
  593.     //Item* slot = player->GetItemByPos(INVENTORY_SLOT_BAG_0, item);
  594.     if (!item)
  595.     {
  596.         player->GetSession()->SendNotification("Voce nao tem item Equipado.");
  597.         return false;
  598.     }
  599.     if (item->GetEnchantmentId(PERM_ENCHANTMENT_SLOT) != 0)
  600.     {
  601.         item->ClearEnchantment(PERM_ENCHANTMENT_SLOT);
  602.         player->GetSession()->SendNotification("|cff9400D3%s |cff7CFC00Encantamento removido com sucesso!", item->GetTemplate()->Name1.c_str());
  603.         return true;       
  604.     }
  605.     else
  606.     {
  607.         player->GetSession()->SendNotification("|cffFF0000Este item nao esta encantantado!");      
  608.         return false;
  609.     }
  610.     return true;
  611. }
  612. // Creature
  613. class Script_Encantamentos : public CreatureScript
  614. {
  615. public:
  616.     Script_Encantamentos() : CreatureScript("Script_Encantamentos") { }
  617.  
  618.     void GetMenuIDs(Player* player, Creature* creature, uint32 menuId)
  619.     {      
  620.         player->PlayerTalkClass->ClearMenus();
  621.         std::ostringstream Bs;
  622.         bool evMENU = false;
  623.         for (uint8 i = 0; i < (sizeof(mvData) / sizeof(*mvData)); i++)
  624.         {
  625.             if (evMENU && mvData[i].Menu != menuId)
  626.                 break;
  627.             if (mvData[i].Menu == menuId && playerCheckClasse(player->getClass(), i))
  628.             {
  629.                 Item* ItemsSlot = player->GetItemByPos(INVENTORY_SLOT_BAG_0, mvData[i].Slot);
  630.                
  631.                 if (mvData[i].Skill != 0 && !(/*player->HasSkill(mvData[i].Skill) &&*/ player->GetSkillValue(mvData[i].Skill) >= mvData[i].SkillValor)) continue;
  632.                
  633.                 if (CobrarEncantamentos && mvData[i].Submenu == 0 && mvData[i].Menu != 99)
  634.                 {
  635.                     if (mvData[i].Menu != 98)
  636.                     {
  637.                         if (ItemsSlot)
  638.                         {
  639.                             TextoConfirmar = "Tem Certeza que quer encantar este item\n\n[|cff9400D3" + ItemsSlot->GetTemplate()->Name1 + "|r]";
  640.                         }
  641.                         else{
  642.                             TextoConfirmar = "|cffFF0000Nenhum item equipado!|r";
  643.                         }
  644.                         player->ADD_GOSSIP_ITEM_EXTENDED(mvData[i].Icone, mvData[i].Nome, GOSSIP_SENDER_MAIN, i, TextoConfirmar, 0, false);
  645.                     }
  646.                     else{
  647.                         if (ItemsSlot)
  648.                         player->ADD_GOSSIP_ITEM(mvData[i].Icone, mvData[i].Nome +ItemsSlot->GetTemplate()->Name1, GOSSIP_SENDER_MAIN, i);
  649.                     }
  650.                 }
  651.                 else
  652.                     player->ADD_GOSSIP_ITEM(mvData[i].Icone, mvData[i].Nome, GOSSIP_SENDER_MAIN, i);
  653.                 evMENU = true;
  654.             }
  655.         }
  656.         player->SEND_GOSSIP_MENU(907, creature->GetGUID());
  657.         player->PlayerTalkClass->SendGossipMenu(GetText(menuId, player), creature->GetGUID());
  658.         return;
  659.     }
  660.     bool OnGossipHello(Player* player, Creature* creature)
  661.     {
  662.         if (player->IsInCombat()){
  663.             player->CLOSE_GOSSIP_MENU();
  664.             ChatHandler(player->GetSession()).PSendSysMessage("|cffFF0000Voce esta em Combat!| r");
  665.             return true;
  666.         }
  667.         else
  668.         {
  669.             GetMenuIDs(player, creature, 1);
  670.             return true;
  671.         }
  672.     }  
  673.     bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
  674.     {
  675.         player->PlayerTalkClass->ClearMenus();
  676.         uint32 menuLista;
  677.         Item* ItemSlot = player->GetItemByPos(INVENTORY_SLOT_BAG_0, mvData[action].Slot);
  678.         switch (action)
  679.         {
  680.         case EQUIPMENT_SLOT_MAINHAND:
  681.             break;
  682.         default:
  683.             menuLista = mvData[action].Submenu;
  684.             break;
  685.         }
  686.         if ((mvData[action].Menu == 99 && mvData[action].Submenu == 0) || (mvData[action].Menu == 98 && mvData[action].Submenu == 0))
  687.         {
  688.             RemoveEnchantS(player, ItemSlot);
  689.             menuLista = mvData[action].Menu;
  690.         }
  691.         else{
  692.             if (menuLista == 0)
  693.             {
  694.                 Enchant(player, creature, ItemSlot, mvData[action].AcaoID);
  695.                 menuLista = mvData[action].Menu;
  696.             }
  697.         }
  698.         GetMenuIDs(player, creature, menuLista);       
  699.         return true;
  700.     }
  701. };
  702. class Script_Encantamentos_WorldScript : public WorldScript
  703. {
  704. public:
  705.     Script_Encantamentos_WorldScript() : WorldScript("Script_Encantamentos_WorldScript") { }
  706.     void OnConfigLoad(bool /*reload*/)
  707.     {
  708.         CobrarEncantamentos = sConfigMgr->GetBoolDefault("Cobrar.Encantamentos", true);
  709.         TokenTipo           = sConfigMgr->GetIntDefault("Tipo.Token", 0);
  710.         IDToken             = sConfigMgr->GetIntDefault("IDToken", 0);
  711.         vEncanto            = sConfigMgr->GetIntDefault("Valor.Encantos", 0);
  712.     }
  713. };
  714. void AddSC_Script_Encantamentos()
  715. {
  716.     new Script_Encantamentos();
  717.     new Script_Encantamentos_WorldScript;
  718. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement