mirror of
https://github.com/ornfelt/azerothcore_lua_scripts
synced 2026-08-22 06:26:03 -04:00
343 lines
No EOL
12 KiB
C++
343 lines
No EOL
12 KiB
C++
#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:
|
|
//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_HUNTER:
|
|
//Hunter
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Marksmanpship", GOSSIP_SENDER_MAIN, 3);
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Survival", GOSSIP_SENDER_MAIN, 4);
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Beast Mastery", GOSSIP_SENDER_MAIN, 5);
|
|
pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
|
|
break;
|
|
|
|
case CLASS_ROGUE:
|
|
//Rogue
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Assassination", GOSSIP_SENDER_MAIN, 6);
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Combat", GOSSIP_SENDER_MAIN, 7);
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Subtlety", GOSSIP_SENDER_MAIN, 8);
|
|
pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
|
|
break;
|
|
|
|
case CLASS_PRIEST:
|
|
//Priest
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Shadow", GOSSIP_SENDER_MAIN, 9);
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Holy", GOSSIP_SENDER_MAIN, 10);
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Disciplin", GOSSIP_SENDER_MAIN, 11);
|
|
pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
|
|
break;
|
|
|
|
case CLASS_WARLOCK:
|
|
//Warlock
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Affliction", GOSSIP_SENDER_MAIN, 12);
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Demonology", GOSSIP_SENDER_MAIN, 13);
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Destruction", GOSSIP_SENDER_MAIN, 14);
|
|
pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
|
|
break;
|
|
|
|
case CLASS_SHAMAN:
|
|
//Shaman
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Enhancement", GOSSIP_SENDER_MAIN, 15);
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Elemental", GOSSIP_SENDER_MAIN, 16);
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Restoration", GOSSIP_SENDER_MAIN, 17);
|
|
pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
|
|
break;
|
|
|
|
case CLASS_WARRIOR:
|
|
//Warrior
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Arms", GOSSIP_SENDER_MAIN, 18);
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Protection", GOSSIP_SENDER_MAIN, 19);
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Fury", GOSSIP_SENDER_MAIN, 20);
|
|
pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
|
|
break;
|
|
|
|
case CLASS_DRUID:
|
|
//Druid
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Feral", GOSSIP_SENDER_MAIN, 21);
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Balance", GOSSIP_SENDER_MAIN, 22);
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Restoration", GOSSIP_SENDER_MAIN, 23);
|
|
pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
|
|
break;
|
|
|
|
case CLASS_MAGE:
|
|
//Mage
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Frost", GOSSIP_SENDER_MAIN, 24);
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Fire", GOSSIP_SENDER_MAIN, 25);
|
|
pPlayer->ADD_GOSSIP_ITEM(4, "Arcane", GOSSIP_SENDER_MAIN, 26);
|
|
pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
|
|
break;
|
|
|
|
default: break;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
bool OnGossipSelect(Player * player, Pet * pet, Creature * creature, uint32, uint32 uiAction)
|
|
{
|
|
switch(uiAction)
|
|
{
|
|
//Paladin
|
|
case 0:
|
|
player->removeSpell(19939, false);
|
|
player->removeSpell(20166, false);
|
|
player->removeSpell(26573, false);
|
|
player->learnSpell(20066, false);
|
|
player->learnSpell(35395, false);
|
|
break;
|
|
case 1:
|
|
player->removeSpell(26573, false);
|
|
player->removeSpell(35395, false);
|
|
player->removeSpell(20066, false);
|
|
player->learnSpell(19939, false);
|
|
player->learnSpell(20166, false);
|
|
break;
|
|
case 2:
|
|
player->removeSpell(19939, false);
|
|
player->removeSpell(20166, false);
|
|
player->removeSpell(35395, false);
|
|
player->removeSpell(20066, false);
|
|
player->learnSpell(26573, false);
|
|
break;
|
|
|
|
//Hunter
|
|
case 3:
|
|
player->removeSpell(34026, false);
|
|
player->removeSpell(19503, false);
|
|
player->removeSpell(19577, false);
|
|
player->learnSpell(19424, false);
|
|
break;
|
|
case 4:
|
|
player->removeSpell(34026, false);
|
|
player->removeSpell(19424, false);
|
|
player->removeSpell(19577, false);
|
|
player->learnSpell(19503, false);
|
|
break;
|
|
case 5:
|
|
player->removeSpell(19503, false);
|
|
player->removeSpell(19424, false);
|
|
player->learnSpell(34026, false);
|
|
player->learnSpell(19577, false);
|
|
break;
|
|
//Rogue
|
|
case 6:
|
|
player->removeSpell(36554, false);
|
|
player->removeSpell(13877, false);
|
|
player->removeSpell(13750, false);
|
|
player->learnSpell(1329, false);
|
|
break;
|
|
case 7:
|
|
player->removeSpell(36554, false);
|
|
player->removeSpell(1329, false);
|
|
player->learnSpell(13877, false);
|
|
player->learnSpell(13750, false);
|
|
break;
|
|
case 8:
|
|
player->removeSpell(13877, false);
|
|
player->removeSpell(1329, false);
|
|
player->removeSpell(13750, false);
|
|
player->learnSpell(36554, false);
|
|
break;
|
|
//Priest
|
|
case 9:
|
|
player->removeSpell(19236, false);
|
|
player->removeSpell(47788, false);
|
|
player->removeSpell(10060, false);
|
|
player->removeSpell(33206, false);
|
|
player->learnSpell(2944, false);
|
|
player->learnSpell(15473, false);
|
|
break;
|
|
case 10:
|
|
player->removeSpell(2944, false);
|
|
player->removeSpell(15473, false);
|
|
player->removeSpell(10060, false);
|
|
player->removeSpell(33206, false);
|
|
player->learnSpell(19236, false);
|
|
player->learnSpell(47788, false);
|
|
break;
|
|
case 11:
|
|
player->removeSpell(19236, false);
|
|
player->removeSpell(47788, false);
|
|
player->removeSpell(2944, false);
|
|
player->removeSpell(15473, false);
|
|
player->learnSpell(10060, false);
|
|
player->learnSpell(33206, false);
|
|
break;
|
|
//Warlock
|
|
case 12:
|
|
player->removeSpell(17919, false);
|
|
player->removeSpell(47260, false);
|
|
player->removeSpell(17962, false);
|
|
player->removeSpell(19028, false);
|
|
player->removeSpell(30146, false);
|
|
pet->removeSpell(30151, false);
|
|
pet->removeSpell(30213, false);
|
|
player->learnSpell(18223, false);
|
|
player->learnSpell(32385, false);
|
|
player->learnSpell(709, false);
|
|
break;
|
|
case 13:
|
|
player->removeSpell(18223, false);
|
|
player->removeSpell(32385, false);
|
|
player->removeSpell(709, false);
|
|
player->removeSpell(17919, false);
|
|
player->removeSpell(47260, false);
|
|
player->removeSpell(17962, false);
|
|
player->learnSpell(19028, false);
|
|
player->learnSpell(30146, false);
|
|
pet->learnSpell(30151);
|
|
pet->learnSpell(30213);
|
|
break;
|
|
case 14:
|
|
player->removeSpell(19028, false);
|
|
player->removeSpell(30146, false);
|
|
pet->removeSpell(30151, false);
|
|
pet->removeSpell(30213, false);
|
|
player->removeSpell(17919, false);
|
|
player->removeSpell(47260, false);
|
|
player->removeSpell(17962, false);
|
|
player->learnSpell(17919, false);
|
|
player->learnSpell(47260, false);
|
|
player->learnSpell(17962, false);
|
|
break;
|
|
//Shaman
|
|
case 15:
|
|
player->removeSpell(3738, false);
|
|
player->removeSpell(421, false);
|
|
player->removeSpell(974, false);
|
|
player->removeSpell(8004, false);
|
|
player->learnSpell(8232, false);
|
|
player->learnSpell(674, false);
|
|
player->learnSpell(51532, false);
|
|
break;
|
|
case 16:
|
|
player->removeSpell(8232, false);
|
|
player->removeSpell(674, false);
|
|
player->removeSpell(51532, false);
|
|
player->removeSpell(974, false);
|
|
player->removeSpell(8004, false);
|
|
player->learnSpell(3738, false);
|
|
player->learnSpell(421, false);
|
|
break;
|
|
case 17:
|
|
player->removeSpell(8232, false);
|
|
player->removeSpell(674, false);
|
|
player->removeSpell(51532, false);
|
|
player->removeSpell(3738, false);
|
|
player->removeSpell(421, false);
|
|
player->learnSpell(974, false);
|
|
player->learnSpell(8004, false);
|
|
break;
|
|
//Warrior
|
|
case 18:
|
|
player->removeSpell(871, false);
|
|
player->removeSpell(12809, false);
|
|
player->removeSpell(674, false);
|
|
player->removeSpell(23881, false);
|
|
player->removeSpell(20252, false);
|
|
player->learnSpell(12294, false);
|
|
break;
|
|
case 19:
|
|
player->removeSpell(12294, false);
|
|
player->removeSpell(674, false);
|
|
player->removeSpell(23881, false);
|
|
player->removeSpell(20252, false);
|
|
player->learnSpell(871, false);
|
|
player->learnSpell(12809, false);
|
|
break;
|
|
case 20:
|
|
player->removeSpell(12294, false);
|
|
player->removeSpell(23881, false);
|
|
player->removeSpell(20252, false);
|
|
player->learnSpell(674, false);
|
|
player->learnSpell(23881, false);
|
|
player->learnSpell(20252, false);
|
|
break;
|
|
//Druid
|
|
case 21:
|
|
player->removeSpell(5570, false);
|
|
player->removeSpell(33891, false);
|
|
player->removeSpell(29166, false);
|
|
player->learnSpell(16979, false);
|
|
player->learnSpell(1082, false);
|
|
player->learnSpell(768, false);
|
|
player->learnSpell(1850, false);
|
|
player->learnSpell(5215, false);
|
|
break;
|
|
case 22:
|
|
player->removeSpell(33891, false);
|
|
player->removeSpell(29166, false);
|
|
player->removeSpell(16979, false);
|
|
player->removeSpell(1082, false);
|
|
player->removeSpell(768, false);
|
|
player->removeSpell(1850, false);
|
|
player->removeSpell(5215, false);
|
|
player->learnSpell(5570, false);
|
|
break;
|
|
case 23:
|
|
player->removeSpell(5570, false);
|
|
player->removeSpell(16979, false);
|
|
player->removeSpell(1082, false);
|
|
player->removeSpell(768, false);
|
|
player->removeSpell(1850, false);
|
|
player->removeSpell(5215, false);
|
|
player->learnSpell(33891, false);
|
|
player->learnSpell(29166, false);
|
|
break;
|
|
//Mage
|
|
case 24:
|
|
player->removeSpell(12042, false);
|
|
player->removeSpell(31589, false);
|
|
player->removeSpell(54490, false);
|
|
player->removeSpell(8444, false);
|
|
player->removeSpell(44448, false);
|
|
player->removeSpell(12505, false);
|
|
player->learnSpell(120, false);
|
|
player->learnSpell(12472, false);
|
|
player->learnSpell(28593, false);
|
|
break;
|
|
case 25:
|
|
player->removeSpell(12042, false);
|
|
player->removeSpell(31589, false);
|
|
player->removeSpell(54490, false);
|
|
player->removeSpell(120, false);
|
|
player->removeSpell(12472, false);
|
|
player->removeSpell(28593, false);
|
|
player->learnSpell(8444, false);
|
|
player->learnSpell(44448, false);
|
|
player->learnSpell(12505, false);
|
|
break;
|
|
case 26:
|
|
player->removeSpell(8444, false);
|
|
player->removeSpell(44448, false);
|
|
player->removeSpell(12505, false);
|
|
player->removeSpell(120, false);
|
|
player->removeSpell(12472, false);
|
|
player->removeSpell(28593, false);
|
|
player->learnSpell(12042, false);
|
|
player->learnSpell(31589, false);
|
|
player->learnSpell(54490, false);
|
|
break;
|
|
}
|
|
return true;
|
|
}
|
|
};
|
|
void InitializeTalent_Chooser()
|
|
{
|
|
new Talent_Chooser();
|
|
}; |