Advertisement
Guest User

Talent chooser

a guest
Feb 25th, 2014
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 12.46 KB | None | 0 0
  1. #include "ScriptPCH.h"
  2. class Talent_Chooser : public CreatureScript
  3. {
  4. public:
  5.   Talent_Chooser()
  6.    : CreatureScript("Talent_Chooser")
  7.   {
  8.   }
  9.  
  10.   bool OnGossipHello(Player * pPlayer, Creature * pCreature)
  11.   {
  12.    switch(pPlayer->getClass())
  13.    {
  14.    case CLASS_PALADIN:
  15.         //Paladin
  16.         pPlayer->ADD_GOSSIP_ITEM(4, "Retribution", GOSSIP_SENDER_MAIN, 0);
  17.         pPlayer->ADD_GOSSIP_ITEM(4, "Holy", GOSSIP_SENDER_MAIN, 1);
  18.         pPlayer->ADD_GOSSIP_ITEM(4, "Protection", GOSSIP_SENDER_MAIN, 2);
  19.      pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
  20.    break;
  21.  
  22.    case CLASS_HUNTER:
  23.         //Hunter
  24.         pPlayer->ADD_GOSSIP_ITEM(4, "Marksmanpship", GOSSIP_SENDER_MAIN, 3);
  25.         pPlayer->ADD_GOSSIP_ITEM(4, "Survival", GOSSIP_SENDER_MAIN, 4);
  26.         pPlayer->ADD_GOSSIP_ITEM(4, "Beast Mastery", GOSSIP_SENDER_MAIN, 5);
  27.      pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
  28.    break;
  29.  
  30.    case CLASS_ROGUE:
  31.         //Rogue
  32.         pPlayer->ADD_GOSSIP_ITEM(4, "Assassination", GOSSIP_SENDER_MAIN, 6);
  33.         pPlayer->ADD_GOSSIP_ITEM(4, "Combat", GOSSIP_SENDER_MAIN, 7);
  34.         pPlayer->ADD_GOSSIP_ITEM(4, "Subtlety", GOSSIP_SENDER_MAIN, 8);
  35.      pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
  36.    break;
  37.  
  38.    case CLASS_PRIEST:
  39.         //Priest
  40.         pPlayer->ADD_GOSSIP_ITEM(4, "Shadow", GOSSIP_SENDER_MAIN, 9);
  41.         pPlayer->ADD_GOSSIP_ITEM(4, "Holy", GOSSIP_SENDER_MAIN, 10);
  42.         pPlayer->ADD_GOSSIP_ITEM(4, "Disciplin", GOSSIP_SENDER_MAIN, 11);
  43.      pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
  44.    break;
  45.  
  46.    case CLASS_WARLOCK:
  47.         //Warlock
  48.         pPlayer->ADD_GOSSIP_ITEM(4, "Affliction", GOSSIP_SENDER_MAIN, 12);
  49.         pPlayer->ADD_GOSSIP_ITEM(4, "Demonology", GOSSIP_SENDER_MAIN, 13);
  50.         pPlayer->ADD_GOSSIP_ITEM(4, "Destruction", GOSSIP_SENDER_MAIN, 14);
  51.      pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
  52.    break;
  53.  
  54.    case CLASS_SHAMAN:
  55.         //Shaman
  56.         pPlayer->ADD_GOSSIP_ITEM(4, "Enhancement", GOSSIP_SENDER_MAIN, 15);
  57.         pPlayer->ADD_GOSSIP_ITEM(4, "Elemental", GOSSIP_SENDER_MAIN, 16);
  58.         pPlayer->ADD_GOSSIP_ITEM(4, "Restoration", GOSSIP_SENDER_MAIN, 17);
  59.      pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
  60.    break;
  61.  
  62.    case CLASS_WARRIOR:
  63.         //Warrior
  64.         pPlayer->ADD_GOSSIP_ITEM(4, "Arms", GOSSIP_SENDER_MAIN, 18);
  65.         pPlayer->ADD_GOSSIP_ITEM(4, "Protection", GOSSIP_SENDER_MAIN, 19);
  66.         pPlayer->ADD_GOSSIP_ITEM(4, "Fury", GOSSIP_SENDER_MAIN, 20);
  67.      pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
  68.    break;
  69.  
  70.    case CLASS_DRUID:
  71.         //Druid
  72.         pPlayer->ADD_GOSSIP_ITEM(4, "Feral", GOSSIP_SENDER_MAIN, 21);
  73.         pPlayer->ADD_GOSSIP_ITEM(4, "Balance", GOSSIP_SENDER_MAIN, 22);
  74.         pPlayer->ADD_GOSSIP_ITEM(4, "Restoration", GOSSIP_SENDER_MAIN, 23);
  75.      pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
  76.    break;
  77.  
  78.    case CLASS_MAGE:
  79.         //Mage
  80.         pPlayer->ADD_GOSSIP_ITEM(4, "Frost", GOSSIP_SENDER_MAIN, 24);
  81.         pPlayer->ADD_GOSSIP_ITEM(4, "Fire", GOSSIP_SENDER_MAIN, 25);
  82.         pPlayer->ADD_GOSSIP_ITEM(4, "Arcane", GOSSIP_SENDER_MAIN, 26);
  83.      pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
  84.    break;
  85.  
  86.   default: break;
  87.   }
  88.     return true;
  89.   }
  90.  
  91.   bool OnGossipSelect(Player * player, Pet * pet, Creature * creature, uint32, uint32 uiAction)
  92.   {
  93.    switch(uiAction)
  94.    {
  95.         //Paladin
  96.         case 0:
  97.           player->removeSpell(19939, false);
  98.           player->removeSpell(20166, false);
  99.           player->removeSpell(26573, false);
  100.           player->learnSpell(20066, false);
  101.           player->learnSpell(35395, false);
  102.           break;
  103.         case 1:
  104.           player->removeSpell(26573, false);
  105.           player->removeSpell(35395, false);
  106.           player->removeSpell(20066, false);
  107.           player->learnSpell(19939, false);
  108.           player->learnSpell(20166, false);
  109.           break;
  110.         case 2:
  111.           player->removeSpell(19939, false);
  112.           player->removeSpell(20166, false);
  113.           player->removeSpell(35395, false);
  114.           player->removeSpell(20066, false);
  115.           player->learnSpell(26573, false);
  116.           break;
  117.  
  118.         //Hunter
  119.         case 3:
  120.           player->removeSpell(34026, false);
  121.           player->removeSpell(19503, false);
  122.           player->removeSpell(19577, false);
  123.           player->learnSpell(19424, false);
  124.           break;
  125.         case 4:
  126.           player->removeSpell(34026, false);
  127.           player->removeSpell(19424, false);
  128.           player->removeSpell(19577, false);
  129.           player->learnSpell(19503, false);
  130.           break;
  131.         case 5:
  132.           player->removeSpell(19503, false);
  133.           player->removeSpell(19424, false);
  134.           player->learnSpell(34026, false);
  135.           player->learnSpell(19577, false);
  136.           break;
  137.         //Rogue
  138.         case 6:
  139.           player->removeSpell(36554, false);
  140.           player->removeSpell(13877, false);
  141.           player->removeSpell(13750, false);
  142.           player->learnSpell(1329, false);
  143.           break;
  144.         case 7:
  145.           player->removeSpell(36554, false);
  146.           player->removeSpell(1329, false);
  147.           player->learnSpell(13877, false);
  148.           player->learnSpell(13750, false);
  149.           break;
  150.         case 8:
  151.           player->removeSpell(13877, false);
  152.           player->removeSpell(1329, false);
  153.           player->removeSpell(13750, false);
  154.           player->learnSpell(36554, false);
  155.           break;
  156.         //Priest
  157.         case 9:
  158.           player->removeSpell(19236, false);
  159.           player->removeSpell(47788, false);
  160.           player->removeSpell(10060, false);
  161.           player->removeSpell(33206, false);
  162.           player->learnSpell(2944, false);
  163.           player->learnSpell(15473, false);
  164.           break;
  165.         case 10:
  166.           player->removeSpell(2944, false);
  167.           player->removeSpell(15473, false);
  168.           player->removeSpell(10060, false);
  169.           player->removeSpell(33206, false);
  170.           player->learnSpell(19236, false);
  171.           player->learnSpell(47788, false);
  172.           break;
  173.         case 11:
  174.           player->removeSpell(19236, false);
  175.           player->removeSpell(47788, false);
  176.           player->removeSpell(2944, false);
  177.           player->removeSpell(15473, false);
  178.           player->learnSpell(10060, false);
  179.           player->learnSpell(33206, false);
  180.           break;
  181.         //Warlock
  182.         case 12:
  183.           player->removeSpell(17919, false);
  184.           player->removeSpell(47260, false);
  185.           player->removeSpell(17962, false);
  186.           player->removeSpell(19028, false);
  187.           player->removeSpell(30146, false);
  188.           pet->removeSpell(30151, false);
  189.           pet->removeSpell(30213, false);
  190.           player->learnSpell(18223, false);
  191.           player->learnSpell(32385, false);
  192.           player->learnSpell(709, false);
  193.           break;
  194.         case 13:
  195.           player->removeSpell(18223, false);
  196.           player->removeSpell(32385, false);
  197.           player->removeSpell(709, false);
  198.           player->removeSpell(17919, false);
  199.           player->removeSpell(47260, false);
  200.           player->removeSpell(17962, false);
  201.           player->learnSpell(19028, false);
  202.           player->learnSpell(30146, false);
  203.           pet->learnSpell(30151);
  204.           pet->learnSpell(30213);
  205.           break;
  206.         case 14:
  207.           player->removeSpell(19028, false);
  208.           player->removeSpell(30146, false);
  209.           pet->removeSpell(30151, false);
  210.           pet->removeSpell(30213, false);
  211.           player->removeSpell(17919, false);
  212.           player->removeSpell(47260, false);
  213.           player->removeSpell(17962, false);
  214.           player->learnSpell(17919, false);
  215.           player->learnSpell(47260, false);
  216.           player->learnSpell(17962, false);
  217.           break;
  218.         //Shaman
  219.         case 15:
  220.           player->removeSpell(3738, false);
  221.           player->removeSpell(421, false);
  222.           player->removeSpell(974, false);
  223.           player->removeSpell(8004, false);
  224.           player->learnSpell(8232, false);
  225.           player->learnSpell(674, false);
  226.           player->learnSpell(51532, false);
  227.           break;
  228.         case 16:
  229.           player->removeSpell(8232, false);
  230.           player->removeSpell(674, false);
  231.           player->removeSpell(51532, false);
  232.           player->removeSpell(974, false);
  233.           player->removeSpell(8004, false);
  234.           player->learnSpell(3738, false);
  235.           player->learnSpell(421, false);
  236.           break;
  237.         case 17:
  238.           player->removeSpell(8232, false);
  239.           player->removeSpell(674, false);
  240.           player->removeSpell(51532, false);
  241.           player->removeSpell(3738, false);
  242.           player->removeSpell(421, false);
  243.           player->learnSpell(974, false);
  244.           player->learnSpell(8004, false);
  245.           break;
  246.         //Warrior
  247.         case 18:
  248.           player->removeSpell(871, false);
  249.           player->removeSpell(12809, false);
  250.           player->removeSpell(674, false);
  251.           player->removeSpell(23881, false);
  252.           player->removeSpell(20252, false);
  253.           player->learnSpell(12294, false);
  254.           break;
  255.         case 19:
  256.           player->removeSpell(12294, false);
  257.           player->removeSpell(674, false);
  258.           player->removeSpell(23881, false);
  259.           player->removeSpell(20252, false);
  260.           player->learnSpell(871, false);
  261.           player->learnSpell(12809, false);
  262.           break;
  263.         case 20:
  264.           player->removeSpell(12294, false);
  265.           player->removeSpell(23881, false);
  266.           player->removeSpell(20252, false);
  267.           player->learnSpell(674, false);
  268.           player->learnSpell(23881, false);
  269.           player->learnSpell(20252, false);
  270.           break;
  271.         //Druid
  272.         case 21:
  273.           player->removeSpell(5570, false);
  274.           player->removeSpell(33891, false);
  275.           player->removeSpell(29166, false);
  276.           player->learnSpell(16979, false);
  277.           player->learnSpell(1082, false);
  278.           player->learnSpell(768, false);
  279.           player->learnSpell(1850, false);
  280.           player->learnSpell(5215, false);
  281.           break;
  282.         case 22:
  283.           player->removeSpell(33891, false);
  284.           player->removeSpell(29166, false);
  285.           player->removeSpell(16979, false);
  286.           player->removeSpell(1082, false);
  287.           player->removeSpell(768, false);
  288.           player->removeSpell(1850, false);
  289.           player->removeSpell(5215, false);
  290.           player->learnSpell(5570, false);
  291.           break;
  292.         case 23:
  293.           player->removeSpell(5570, false);
  294.           player->removeSpell(16979, false);
  295.           player->removeSpell(1082, false);
  296.           player->removeSpell(768, false);
  297.           player->removeSpell(1850, false);
  298.           player->removeSpell(5215, false);
  299.           player->learnSpell(33891, false);
  300.           player->learnSpell(29166, false);
  301.           break;
  302.         //Mage
  303.         case 24:
  304.           player->removeSpell(12042, false);
  305.           player->removeSpell(31589, false);
  306.           player->removeSpell(54490, false);
  307.           player->removeSpell(8444, false);
  308.           player->removeSpell(44448, false);
  309.           player->removeSpell(12505, false);
  310.           player->learnSpell(120, false);
  311.           player->learnSpell(12472, false);
  312.           player->learnSpell(28593, false);
  313.           break;
  314.         case 25:
  315.           player->removeSpell(12042, false);
  316.           player->removeSpell(31589, false);
  317.           player->removeSpell(54490, false);
  318.           player->removeSpell(120, false);
  319.           player->removeSpell(12472, false);
  320.           player->removeSpell(28593, false);
  321.           player->learnSpell(8444, false);
  322.           player->learnSpell(44448, false);
  323.           player->learnSpell(12505, false);
  324.           break;
  325.         case 26:
  326.           player->removeSpell(8444, false);
  327.           player->removeSpell(44448, false);
  328.           player->removeSpell(12505, false);
  329.           player->removeSpell(120, false);
  330.           player->removeSpell(12472, false);
  331.           player->removeSpell(28593, false);
  332.           player->learnSpell(12042, false);
  333.           player->learnSpell(31589, false);
  334.           player->learnSpell(54490, false);
  335.        break;
  336.    }
  337.    return true;
  338.   }
  339. };
  340. void InitializeTalent_Chooser()
  341. {
  342. new Talent_Chooser();
  343. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement