/*
*******************************
* I-Script *
* *
* Packed By Imorate *
* *
* YID! Mr.Amirooo@Yahoo.Com *
* *
* Website: IranCore.Ir *
*******************************
*/
#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();
};
منبع : Irancore