Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ScriptPCH.h"
- class Talent_Chooser : public CreatureScript
- {
- public:
- Talent_Chooser() : CreatureScript("Talent_Chooser") { }
- bool OnGossipHello(Player * pPlayer, Creature * pCreature)
- {
- switch(pPlayer->getClass())
- {
- case CLASS_PALADIN:
- pPlayer->ADD_GOSSIP_ITEM(4, "Retribution", GOSSIP_SENDER_MAIN, 0);
- pPlayer->ADD_GOSSIP_ITEM(4, "Holy", GOSSIP_SENDER_MAIN, 1);
- pPlayer->ADD_GOSSIP_ITEM(4, "Protection", GOSSIP_SENDER_MAIN, 2);
- pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
- break;
- case CLASS_MAGE:
- pPlayer->ADD_GOSSIP_ITEM(4, "Arcane", GOSSIP_SENDER_MAIN, 3);
- pPlayer->ADD_GOSSIP_ITEM(4, "Fire", GOSSIP_SENDER_MAIN, 4);
- pPlayer->ADD_GOSSIP_ITEM(4, "Frost", GOSSIP_SENDER_MAIN, 5);
- pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
- break;
- case CLASS_WARRIOR:
- pPlayer->ADD_GOSSIP_ITEM(4, "Arms", GOSSIP_SENDER_MAIN, 6);
- pPlayer->ADD_GOSSIP_ITEM(4, "Fury", GOSSIP_SENDER_MAIN, 7);
- pPlayer->ADD_GOSSIP_ITEM(4, "Protection", GOSSIP_SENDER_MAIN, 8);
- pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
- break;
- case CLASS_PRIEST:
- pPlayer->ADD_GOSSIP_ITEM(4, "Holy", GOSSIP_SENDER_MAIN, 9);
- pPlayer->ADD_GOSSIP_ITEM(4, "Discipline", GOSSIP_SENDER_MAIN, 10);
- pPlayer->ADD_GOSSIP_ITEM(4, "Shadow", GOSSIP_SENDER_MAIN, 11);
- pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
- break;
- case CLASS_HUNTER:
- pPlayer->ADD_GOSSIP_ITEM(4, "Marksman", GOSSIP_SENDER_MAIN, 12);
- pPlayer->ADD_GOSSIP_ITEM(4, "Survival", GOSSIP_SENDER_MAIN, 13);
- pPlayer->ADD_GOSSIP_ITEM(4, "Beastmaster", GOSSIP_SENDER_MAIN, 14);
- pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
- break;
- case CLASS_ROGUE:
- pPlayer->ADD_GOSSIP_ITEM(4, "Sub", GOSSIP_SENDER_MAIN, 15);
- pPlayer->ADD_GOSSIP_ITEM(4, "Assassination", GOSSIP_SENDER_MAIN, 16);
- pPlayer->ADD_GOSSIP_ITEM(4, "Combat", GOSSIP_SENDER_MAIN, 17);
- pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
- break;
- case CLASS_SHAMAN:
- pPlayer->ADD_GOSSIP_ITEM(4, "Restoration", GOSSIP_SENDER_MAIN, 18);
- pPlayer->ADD_GOSSIP_ITEM(4, "Enhancement", GOSSIP_SENDER_MAIN, 19);
- pPlayer->ADD_GOSSIP_ITEM(4, "Elemental", GOSSIP_SENDER_MAIN, 20);
- pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
- break;
- case CLASS_WARLOCK:
- pPlayer->ADD_GOSSIP_ITEM(4, "Affliciton", GOSSIP_SENDER_MAIN, 21);
- pPlayer->ADD_GOSSIP_ITEM(4, "Demonology", GOSSIP_SENDER_MAIN, 22);
- pPlayer->ADD_GOSSIP_ITEM(4, "Destruction", GOSSIP_SENDER_MAIN, 23);
- pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
- break;
- case CLASS_DRUID:
- pPlayer->ADD_GOSSIP_ITEM(4, "Feral", GOSSIP_SENDER_MAIN, 24);
- pPlayer->ADD_GOSSIP_ITEM(4, "Balance", GOSSIP_SENDER_MAIN, 25);
- pPlayer->ADD_GOSSIP_ITEM(4, "Restoration", GOSSIP_SENDER_MAIN, 26);
- pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
- break;
- }
- return true;
- }
- bool OnGossipSelect(Player * player, Creature * creature, uint32 sender, uint32 uiAction)
- {
- if (sender == GOSSIP_SENDER_MAIN)
- {
- player->PlayerTalkClass->ClearMenus();
- switch(uiAction)
- {
- // Paladin
- case 0: //Retrubition
- player->removeSpell(54428, false);
- player->removeSpell(19746, false);
- player->removeSpell(62124, false);
- player->removeSpell(498, false);
- player->learnSpell(7294, false);
- player->learnSpell(35395, false);
- break;
- case 1: //Holy
- player->removeSpell(62124, false);
- player->removeSpell(498, false);
- player->removeSpell(7294, false);
- player->removeSpell(35395, false);
- player->learnSpell(54428, false);
- player->learnSpell(19746, false);
- break;
- case 2: //Protection
- player->removeSpell(54428, false);
- player->removeSpell(19746, false);
- player->removeSpell(7294, false);
- player->removeSpell(35395, false);
- player->removeSpell(62124, false);
- player->learnSpell(498, false);
- break;
- // Mage
- case 3: // Arcane
- player->removeSpell(44614, false);
- player->removeSpell(44457, false);
- player->removeSpell(120, false);
- player->removeSpell(45438, false);
- player->learnSpell(12051, false);
- player->learnSpell(5143, false);
- break;
- case 4: // Fire
- player->removeSpell(12051, false);
- player->removeSpell(5143, false);
- player->removeSpell(120, false);
- player->removeSpell(45438, false);
- player->learnSpell(44614, false);
- player->learnSpell(44457, false);
- break;
- case 5: // Frost
- player->removeSpell(12051, false);
- player->removeSpell(5143, false);
- player->removeSpell(44614, false);
- player->removeSpell(44457, false);
- player->learnSpell(120, false);
- player->learnSpell(45438, false);
- break;
- // Warrior
- case 6: // Arms
- player->removeSpell(6572, false);
- player->removeSpell(2565, false);
- player->removeSpell(23881, false);
- player->removeSpell(674, false);
- player->learnSpell(1715, false);
- player->learnSpell(20230, false);
- break;
- case 7: // Fury
- player->removeSpell(1715, false);
- player->removeSpell(20230, false);
- player->removeSpell(6572, false);
- player->removeSpell(2565, false);
- player->learnSpell(23881, false);
- player->learnSpell(674, false);
- break;
- case 8: // Protection
- player->removeSpell(1715, false);
- player->removeSpell(20230, false);
- player->removeSpell(23881, false);
- player->removeSpell(674, false);
- player->learnSpell(6572, false);
- player->learnSpell(2565, false);
- break;
- // Priest
- case 9: // Holy
- player->removeSpell(17, false);
- player->removeSpell(588, false);
- player->removeSpell(15407, false);
- player->removeSpell(8122, false);
- player->learnSpell(2061, false);
- player->learnSpell(14914, false);
- break;
- case 10: // Discipline
- player->removeSpell(2061, false);
- player->removeSpell(14914, false);
- player->removeSpell(15407, false);
- player->removeSpell(8122, false);
- player->learnSpell(588, false);
- player->learnSpell(17, false);
- break;
- case 11: // Shadow
- player->removeSpell(17, false);
- player->removeSpell(588, false);
- player->removeSpell(2061, false);
- player->removeSpell(14914, false);
- player->learnSpell(15407, false);
- player->learnSpell(8122, false);
- break;
- // Hunter
- case 12: // Marksman
- player->removeSpell(13165, false);
- player->removeSpell(1495, false);
- player->removeSpell(1499, false);
- player->removeSpell(2974, false);
- player->learnSpell(2643, false);
- player->learnSpell(3044, false);
- break;
- case 13: // Survival
- player->removeSpell(13165, false);
- player->removeSpell(2643, false);
- player->removeSpell(3044, false);
- player->removeSpell(1499, false);
- player->learnSpell(1495, false);
- player->learnSpell(2974, false);
- break;
- case 14: // Beastmaster
- player->removeSpell(2974, false);
- player->removeSpell(1495, false);
- player->removeSpell(2643, false);
- player->removeSpell(3044, false);
- player->learnSpell(13165, false);
- player->learnSpell(1499, false);
- break;
- // Rogue
- case 15: //Sub
- player->removeSpell(703, false);
- player->removeSpell(5171, false);
- player->removeSpell(5277, false);
- player->removeSpell(1776, false);
- player->learnSpell(8676, false);
- player->learnSpell(2983, false);
- break;
- case 16: // Assassination
- player->removeSpell(8676, false);
- player->removeSpell(2983, false);
- player->removeSpell(5277, false);
- player->removeSpell(1776, false);
- player->learnSpell(703, false);
- player->learnSpell(5171, false);
- break;
- case 17: // Combat
- player->removeSpell(8676, false);
- player->removeSpell(2983, false);
- player->removeSpell(703, false);
- player->removeSpell(84668, false);
- player->learnSpell(5277, false);
- player->learnSpell(5171, false);
- break;
- // Shaman
- case 18: //Restoration
- player->removeSpell(8056, false);
- player->removeSpell(674, false);
- player->removeSpell(51490, false);
- player->removeSpell(51505, false);
- player->learnSpell(51730, false);
- player->learnSpell(16176, false);
- break;
- case 19: // Enhancement
- player->removeSpell(51730, false);
- player->removeSpell(16176, false);
- player->removeSpell(51490, false);
- player->removeSpell(51505, false);
- player->learnSpell(8056, false);
- player->learnSpell(674, false);
- break;
- case 20: // Elemental
- player->removeSpell(51730, false);
- player->removeSpell(16176, false);
- player->removeSpell(8056, false);
- player->removeSpell(674, false);
- player->learnSpell(51490, false);
- player->learnSpell(51505, false);
- break;
- // Warlock
- case 21: //Affliction
- player->removeSpell(12746, false);
- player->removeSpell(47897, false);
- player->removeSpell(707, false);
- player->removeSpell(17962, false);
- player->learnSpell(5484, false);
- player->learnSpell(980, false);
- break;
- case 22: // Demonology
- player->removeSpell(5484, false);
- player->removeSpell(980, false);
- player->removeSpell(707, false);
- player->removeSpell(17962, false);
- player->learnSpell(12746, false);
- player->learnSpell(47897, false);
- break;
- case 23: //Destruction
- player->removeSpell(5484, false);
- player->removeSpell(980, false);
- player->removeSpell(12746, false);
- player->removeSpell(47897, false);
- player->learnSpell(707, false);
- player->learnSpell(17962, false);
- break;
- // Druid
- case 24: //Feral
- player->removeSpell(5570, false);
- player->removeSpell(50516, false);
- player->removeSpell(50464, false);
- player->removeSpell(8936, false);
- player->learnSpell(770, false);
- player->learnSpell(22812, false);
- break;
- case 25: // Balance
- player->removeSpell(770, false);
- player->removeSpell(22812, false);
- player->removeSpell(50464, false);
- player->removeSpell(8936, false);
- player->learnSpell(5570, false);
- player->learnSpell(50516, false);
- break;
- case 26: //Restoration
- player->removeSpell(770, false);
- player->removeSpell(22812, false);
- player->removeSpell(5570, false);
- player->removeSpell(50516, false);
- player->learnSpell(50464, false);
- player->learnSpell(8936, false);
- break;
- }
- player->CLOSE_GOSSIP_MENU();
- }
- return true;
- }
- };
- void AddSC_Talent_Chooser() {
- new Talent_Chooser();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement