eluna-scripts-ornfelt/lua/WowEmulationScriptPack/C++/OneClickTrainerNPC/OneClickTrainerNPC.cpp
2024-09-23 07:59:23 +02:00

813 lines
29 KiB
C++

#include "ScriptPCH.h"
#include "Pet.h"
#include "Language.h"
class npc_trainer : public CreatureScript
{
public:
npc_trainer() : CreatureScript("npc_trainer") { }
bool OnGossipHello(Player* player, Creature* creature)
{
if (!sWorld->getBoolConfig(CUSTOM_SCRIPTS_ENABLED_OR_NOT))
return false;
player->ADD_GOSSIP_ITEM(3, "|TInterface\\icons\\inv_misc_book_11:40:40:-18:0|t|r Train me / Max out skills", GOSSIP_SENDER_MAIN, 1);
player->ADD_GOSSIP_ITEM(1, "|TInterface\\icons\\trade_engineering:40:40:-18:0|t|rReset Talents", GOSSIP_SENDER_MAIN, 3);
if(player->getClass() == CLASS_HUNTER)
player->ADD_GOSSIP_ITEM(1, "|TInterface\\icons\\trade_engineering:40:40:-18:0|t|rReset |cffFF0000PET|r Talents", GOSSIP_SENDER_MAIN, 4);
// @todo: player->ADD_GOSSIP_ITEM(1, "|TInterface\\icons\\inv_glyph_majorpaladin:40:40:-18:0|t|rGlyph Vendor.", GOSSIP_SENDER_MAIN, 2);
player->SEND_GOSSIP_MENU(1, creature->GetGUID());
return true;
}
bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
if (sender == GOSSIP_SENDER_MAIN)
{
switch (action)
{
case 1: // Train Me.
player->CastSpell(player,63680,true,NULL,NULL,player->GetGUID());
player->CastSpell(player,63624,true,NULL,NULL,player->GetGUID());
switch(player->getClass())
{
case CLASS_WARRIOR:
player->learnSpell(264);
player->learnSpell(5011);
player->learnSpell(15590);
player->learnSpell(266);
player->learnSpell(200);
player->learnSpell(227);
player->learnSpell(199);
player->UpdateSkillsToMaxSkillsForLevel();
player->learnSpell(7384);
player->learnSpell(47436);
player->learnSpell(47450);
player->learnSpell(11578);
player->learnSpell(47465);
player->learnSpell(47502);
player->learnSpell(34428);
player->learnSpell(1715);
player->learnSpell(2687);
player->learnSpell(71);
player->learnSpell(7386);
player->learnSpell(355);
player->learnSpell(72);
player->learnSpell(47437);
player->learnSpell(57823);
player->learnSpell(694);
player->learnSpell(2565);
player->learnSpell(676);
player->learnSpell(47520);
player->learnSpell(20230);
player->learnSpell(12678);
player->learnSpell(47471);
player->learnSpell(1161);
player->learnSpell(871);
player->learnSpell(2458);
player->learnSpell(20252);
player->learnSpell(47475);
player->learnSpell(18499);
player->learnSpell(1680);
player->learnSpell(6552);
player->learnSpell(47488);
player->learnSpell(1719);
player->learnSpell(23920);
player->learnSpell(47440);
player->learnSpell(3411);
player->learnSpell(64382);
player->learnSpell(55694);
player->learnSpell(57755);
player->learnSpell(42459);
player->learnSpell(750);
player->learnSpell(5246);
player->learnSpell(3127);
player->learnSpell(34093);
player->learnSpell(33392);
if(player->HasSpell(12294))
player->learnSpell(47486);
if(player->HasSpell(20243))
player->learnSpell(47498);
player->SEND_GOSSIP_MENU(1, creature->GetGUID());
player->PlayerTalkClass->SendCloseGossip();
break;
case CLASS_PALADIN:
player->learnSpell(196);
player->learnSpell(200);
player->learnSpell(197);
player->learnSpell(199);
player->UpdateSkillsToMaxSkillsForLevel();
player->learnSpell(3127);
player->learnSpell(19746);
player->learnSpell(19752);
player->learnSpell(750);
player->learnSpell(48942);
player->learnSpell(48782);
player->learnSpell(48932);
player->learnSpell(20271);
player->learnSpell(498);
player->learnSpell(10308);
player->learnSpell(1152);
player->learnSpell(10278);
player->learnSpell(48788);
player->learnSpell(53408);
player->learnSpell(48950);
player->learnSpell(48936);
player->learnSpell(31789);
player->learnSpell(62124);
player->learnSpell(54043);
player->learnSpell(25780);
player->learnSpell(1044);
player->learnSpell(20217);
player->learnSpell(48819);
player->learnSpell(48801);
player->learnSpell(48785);
player->learnSpell(5502);
player->learnSpell(20164);
player->learnSpell(10326);
player->learnSpell(1038);
player->learnSpell(53407);
player->learnSpell(48943);
player->learnSpell(20165);
player->learnSpell(48945);
player->learnSpell(642);
player->learnSpell(48947);
player->learnSpell(20166);
player->learnSpell(4987);
player->learnSpell(48806);
player->learnSpell(6940);
player->learnSpell(48817);
player->learnSpell(48934);
player->learnSpell(48938);
player->learnSpell(25898);
player->learnSpell(32223);
player->learnSpell(31884);
player->learnSpell(54428);
player->learnSpell(61411);
player->learnSpell(53601);
player->learnSpell(33388);
player->learnSpell(33391);
player->learnSpell(34093);
player->learnSpell(33392);
if(player->HasSpell(20925))
player->learnSpell(48952);
if(player->HasSpell(31935))
player->learnSpell(48827);
if(player->HasSpell(20911))
player->learnSpell(25899);
if(player->HasSpell(20473))
player->learnSpell(48825);
if(player->GetTeamId() == ALLIANCE)
{
player->learnSpell(31801);
player->learnSpell(13819);
player->learnSpell(23214);
}
if(player->GetTeamId() == HORDE)
{
player->learnSpell(53736);
player->learnSpell(34769);
player->learnSpell(34767);
}
player->SEND_GOSSIP_MENU(1, creature->GetGUID());
player->PlayerTalkClass->SendCloseGossip();
break;
case CLASS_HUNTER:
player->learnSpell(5011);
player->learnSpell(15590);
player->learnSpell(266);
player->learnSpell(200);
player->learnSpell(227);
player->learnSpell(2567);
player->learnSpell(202);
player->UpdateSkillsToMaxSkillsForLevel();
player->learnSpell(3043);
player->learnSpell(3127);
player->learnSpell(3045);
player->learnSpell(3034);
player->learnSpell(8737);
player->learnSpell(1494);
player->learnSpell(13163);
player->learnSpell(48996);
player->learnSpell(49001);
player->learnSpell(49045);
player->learnSpell(53338);
player->learnSpell(5116);
player->learnSpell(27044);
player->learnSpell(883);
player->learnSpell(2641);
player->learnSpell(6991);
player->learnSpell(982);
player->learnSpell(1515);
player->learnSpell(19883);
player->learnSpell(20736);
player->learnSpell(48990);
player->learnSpell(2974);
player->learnSpell(6197);
player->learnSpell(1002);
player->learnSpell(14327);
player->learnSpell(5118);
player->learnSpell(49056);
player->learnSpell(53339);
player->learnSpell(49048);
player->learnSpell(19884);
player->learnSpell(34074);
player->learnSpell(781);
player->learnSpell(14311);
player->learnSpell(1462);
player->learnSpell(19885);
player->learnSpell(19880);
player->learnSpell(13809);
player->learnSpell(13161);
player->learnSpell(5384);
player->learnSpell(1543);
player->learnSpell(19878);
player->learnSpell(49067);
player->learnSpell(3034);
player->learnSpell(13159);
player->learnSpell(19882);
player->learnSpell(58434);
player->learnSpell(49071);
player->learnSpell(49052);
player->learnSpell(19879);
player->learnSpell(19263);
player->learnSpell(19801);
player->learnSpell(34026);
player->learnSpell(34600);
player->learnSpell(34477);
player->learnSpell(61006);
player->learnSpell(61847);
player->learnSpell(53271);
player->learnSpell(60192);
player->learnSpell(62757);
player->learnSpell(34093);
player->learnSpell(33392);
if(player->HasSpell(19386))
player->learnSpell(49012);
if(player->HasSpell(53301))
player->learnSpell(60053);
if(player->HasSpell(19306))
player->learnSpell(48999);
if(player->HasSpell(19434))
player->learnSpell(49050);
player->SEND_GOSSIP_MENU(1, creature->GetGUID());
player->PlayerTalkClass->SendCloseGossip();
break;
case CLASS_MAGE:
player->learnSpell(1180);
player->learnSpell(201);
player->UpdateSkillsToMaxSkillsForLevel();
player->learnSpell(42921);
player->learnSpell(42842);
player->learnSpell(42995);
player->learnSpell(42833);
player->learnSpell(27090);
player->learnSpell(33717);
player->learnSpell(42873);
player->learnSpell(42846);
player->learnSpell(12826);
player->learnSpell(28271);
player->learnSpell(61780);
player->learnSpell(61721);
player->learnSpell(28272);
player->learnSpell(42917);
player->learnSpell(43015);
player->learnSpell(130);
player->learnSpell(42926);
player->learnSpell(43017);
player->learnSpell(475);
player->learnSpell(1953);
player->learnSpell(42940);
player->learnSpell(12051);
player->learnSpell(43010);
player->learnSpell(43020);
player->learnSpell(43012);
player->learnSpell(42859);
player->learnSpell(2139);
player->learnSpell(42931);
player->learnSpell(42985);
player->learnSpell(43008);
player->learnSpell(45438);
player->learnSpell(43024);
player->learnSpell(43002);
player->learnSpell(43046);
player->learnSpell(42897);
player->learnSpell(42914);
player->learnSpell(66);
player->learnSpell(58659);
player->learnSpell(30449);
player->learnSpell(42956);
player->learnSpell(47610);
player->learnSpell(61316);
player->learnSpell(61024);
player->learnSpell(55342);
player->learnSpell(53142);
player->learnSpell(7301);
player->learnSpell(34093);
player->learnSpell(33392);
if(player->GetTeamId() == ALLIANCE)
{
player->learnSpell(32271); // Teleport: Exodar.
player->learnSpell(49359); // Teleport: Theramore.
player->learnSpell(3565); // Teleport: Darnassus.
player->learnSpell(33690); // Teleport: Shattrath.
player->learnSpell(3562); // Teleport: Ironforge.
player->learnSpell(3561); // Teleport: Stormwind.
player->learnSpell(53140); // Teleport: Dalaran.
player->learnSpell(53142); // Portal: Dalaran.
player->learnSpell(10059); // Portal: Stormwind.
player->learnSpell(11419); // Portal: Darnassus.
player->learnSpell(32266); // Portal: Exodar.
player->learnSpell(11416); // Portal: Ironforge.
player->learnSpell(33691); // Portal: Shattrath.
player->learnSpell(49360); // Portal: Theramore.
}
if(player->GetTeamId() == HORDE)
{
player->learnSpell(3567); // Teleport: Orgrimmar.
player->learnSpell(35715); // Teleport: Shattrath.
player->learnSpell(3566); // Teleport: Thunder Bluff.
player->learnSpell(49358); // Teleport: Stonard.
player->learnSpell(32272); // Teleport: Silvermoon.
player->learnSpell(3563); // Teleport: Undercity.
player->learnSpell(53140); // Teleport: Dalaran.
player->learnSpell(53142); // Portal: Dalaran.
player->learnSpell(11417); // Portal: Orgrimmar.
player->learnSpell(35717); // Portal: Shattrath.
player->learnSpell(32267); // Portal: Silvermoon.
player->learnSpell(49361); // Portal: Stonard.
player->learnSpell(11420); // Portal: Thunder Bluff.
player->learnSpell(11418); // Portal: Undercity.
}
if(player->HasSpell(11366))
player->learnSpell(42891);
if(player->HasSpell(11426))
player->learnSpell(43039);
if(player->HasSpell(44457))
player->learnSpell(55360);
if(player->HasSpell(31661))
player->learnSpell(42950);
if(player->HasSpell(11113))
player->learnSpell(42945);
if(player->HasSpell(44425))
player->learnSpell(44781);
player->PlayerTalkClass->SendCloseGossip();
break;
case CLASS_WARLOCK:
player->learnSpell(201);
player->UpdateSkillsToMaxSkillsForLevel();
player->learnSpell(696);
player->learnSpell(47811);
player->learnSpell(47809);
player->learnSpell(688);
player->learnSpell(47813);
player->learnSpell(50511);
player->learnSpell(57946);
player->learnSpell(47864);
player->learnSpell(6215);
player->learnSpell(47878);
player->learnSpell(47855);
player->learnSpell(697);
player->learnSpell(47856);
player->learnSpell(47857);
player->learnSpell(5697);
player->learnSpell(47884);
player->learnSpell(47815);
player->learnSpell(47889);
player->learnSpell(47820);
player->learnSpell(698);
player->learnSpell(712);
player->learnSpell(126);
player->learnSpell(5138);
player->learnSpell(5500);
player->learnSpell(11719);
player->learnSpell(132);
player->learnSpell(60220);
player->learnSpell(18647);
player->learnSpell(61191);
player->learnSpell(47823);
player->learnSpell(691);
player->learnSpell(47865);
player->learnSpell(47891);
player->learnSpell(47888);
player->learnSpell(17928);
player->learnSpell(47860);
player->learnSpell(47825);
player->learnSpell(1122);
player->learnSpell(47867);
player->learnSpell(18540);
player->learnSpell(47893);
player->learnSpell(47838);
player->learnSpell(29858);
player->learnSpell(58887);
player->learnSpell(47836);
player->learnSpell(61290);
player->learnSpell(48018);
player->learnSpell(48020);
player->learnSpell(33388);
player->learnSpell(33391);
player->learnSpell(23161);
player->learnSpell(34093);
player->learnSpell(33392);
if(player->HasSpell(17877))
player->learnSpell(47827);
if(player->HasSpell(30283))
player->learnSpell(47847);
if(player->HasSpell(30108))
player->learnSpell(47843);
if(player->HasSpell(50796))
player->learnSpell(59172);
if(player->HasSpell(48181))
player->learnSpell(59164);
if(player->HasSpell(18220))
player->learnSpell(59092);
player->PlayerTalkClass->SendCloseGossip();
break;
case CLASS_ROGUE:
player->learnSpell(196);
player->learnSpell(264);
player->learnSpell(5011);
player->learnSpell(15590);
player->learnSpell(266);
player->learnSpell(198);
player->learnSpell(201);
player->UpdateSkillsToMaxSkillsForLevel();
player->learnSpell(3127);
player->learnSpell(42459);
player->learnSpell(48668);
player->learnSpell(48638);
player->learnSpell(1784);
player->learnSpell(48657);
player->learnSpell(921);
player->learnSpell(1776);
player->learnSpell(26669);
player->learnSpell(51724);
player->learnSpell(6774);
player->learnSpell(11305);
player->learnSpell(1766);
player->learnSpell(48676);
player->learnSpell(48659);
player->learnSpell(1804);
player->learnSpell(8647);
player->learnSpell(48691);
player->learnSpell(51722);
player->learnSpell(48672);
player->learnSpell(1725);
player->learnSpell(26889);
player->learnSpell(2836);
player->learnSpell(1833);
player->learnSpell(1842);
player->learnSpell(8643);
player->learnSpell(2094);
player->learnSpell(1860);
player->learnSpell(57993);
player->learnSpell(48674);
player->learnSpell(31224);
player->learnSpell(5938);
player->learnSpell(57934);
player->learnSpell(51723);
player->learnSpell(34093);
player->learnSpell(33392);
if(player->HasSpell(16511))
player->learnSpell(48660);
if(player->HasSpell(1329))
player->learnSpell(48666);
player->PlayerTalkClass->SendCloseGossip();
break;
case CLASS_PRIEST:
player->learnSpell(1180);
player->UpdateSkillsToMaxSkillsForLevel();
player->learnSpell(528);
player->learnSpell(2053);
player->learnSpell(48161);
player->learnSpell(48123);
player->learnSpell(48125);
player->learnSpell(48066);
player->learnSpell(586);
player->learnSpell(48068);
player->learnSpell(48127);
player->learnSpell(48171);
player->learnSpell(48168);
player->learnSpell(10890);
player->learnSpell(6064);
player->learnSpell(988);
player->learnSpell(48300);
player->learnSpell(6346);
player->learnSpell(48071);
player->learnSpell(48135);
player->learnSpell(48078);
player->learnSpell(453);
player->learnSpell(10955);
player->learnSpell(10909);
player->learnSpell(8129);
player->learnSpell(48073);
player->learnSpell(605);
player->learnSpell(48072);
player->learnSpell(48169);
player->learnSpell(552);
player->learnSpell(1706);
player->learnSpell(48063);
player->learnSpell(48162);
player->learnSpell(48170);
player->learnSpell(48074);
player->learnSpell(48158);
player->learnSpell(48120);
player->learnSpell(34433);
player->learnSpell(48113);
player->learnSpell(32375);
player->learnSpell(64843);
player->learnSpell(64901);
player->learnSpell(53023);
player->learnSpell(34093);
player->learnSpell(33392);
if(player->HasSpell(34914))
player->learnSpell(48160);
if(player->HasSpell(47540))
player->learnSpell(53007);
if(player->HasSpell(724))
player->learnSpell(48087);
if(player->HasSpell(19236))
player->learnSpell(48173);
if(player->HasSpell(34861))
player->learnSpell(48089);
if(player->HasSpell(15407))
player->learnSpell(48156);
player->PlayerTalkClass->SendCloseGossip();
break;
case CLASS_DEATH_KNIGHT:
player->learnSpell(198);
player->learnSpell(199);
player->UpdateSkillsToMaxSkillsForLevel();
player->learnSpell(3127);
player->learnSpell(50842);
player->learnSpell(49941);
player->learnSpell(49930);
player->learnSpell(47476);
player->learnSpell(45529);
player->learnSpell(3714);
player->learnSpell(56222);
player->learnSpell(48743);
player->learnSpell(48263);
player->learnSpell(49909);
player->learnSpell(47528);
player->learnSpell(45524);
player->learnSpell(48792);
player->learnSpell(57623);
player->learnSpell(56815);
player->learnSpell(47568);
player->learnSpell(49895);
player->learnSpell(50977);
player->learnSpell(49576);
player->learnSpell(49921);
player->learnSpell(46584);
player->learnSpell(49938);
player->learnSpell(48707);
player->learnSpell(48265);
player->learnSpell(61999);
player->learnSpell(42650);
player->learnSpell(53428);
player->learnSpell(53331);
player->learnSpell(54447);
player->learnSpell(53342);
player->learnSpell(54446);
player->learnSpell(53323);
player->learnSpell(53344);
player->learnSpell(70164);
player->learnSpell(62158);
player->learnSpell(33391);
player->learnSpell(48778);
player->learnSpell(51425);
player->learnSpell(49924);
player->learnSpell(34093);
player->learnSpell(33392);
if(player->HasSpell(55050))
player->learnSpell(55262);
if(player->HasSpell(49143))
player->learnSpell(55268);
if(player->HasSpell(49184))
player->learnSpell(51411);
if(player->HasSpell(55090))
player->learnSpell(55271);
if(player->HasSpell(49158))
player->learnSpell(51328);
player->PlayerTalkClass->SendCloseGossip();
break;
case CLASS_SHAMAN:
player->learnSpell(196);
player->learnSpell(1180);
player->learnSpell(15590);
player->learnSpell(197);
player->learnSpell(199);
player->UpdateSkillsToMaxSkillsForLevel();
player->learnSpell(2062);
player->learnSpell(8737);
player->learnSpell(49273);
player->learnSpell(49238);
player->learnSpell(10399);
player->learnSpell(49231);
player->learnSpell(58753);
player->learnSpell(2484);
player->learnSpell(49281);
player->learnSpell(58582);
player->learnSpell(49233);
player->learnSpell(58790);
player->learnSpell(58704);
player->learnSpell(58643);
player->learnSpell(49277);
player->learnSpell(61657);
player->learnSpell(8012);
player->learnSpell(526);
player->learnSpell(2645);
player->learnSpell(57994);
player->learnSpell(8143);
player->learnSpell(49236);
player->learnSpell(58796);
player->learnSpell(58757);
player->learnSpell(49276);
player->learnSpell(57960);
player->learnSpell(131);
player->learnSpell(58745);
player->learnSpell(6196);
player->learnSpell(58734);
player->learnSpell(58774);
player->learnSpell(58739);
player->learnSpell(58656);
player->learnSpell(546);
player->learnSpell(556);
player->learnSpell(66842);
player->learnSpell(51994);
player->learnSpell(8177);
player->learnSpell(58749);
player->learnSpell(20608);
player->learnSpell(36936);
player->learnSpell(36936);
player->learnSpell(58804);
player->learnSpell(49271);
player->learnSpell(8512);
player->learnSpell(6495);
player->learnSpell(8170);
player->learnSpell(66843);
player->learnSpell(55459);
player->learnSpell(66844);
player->learnSpell(3738);
player->learnSpell(2894);
player->learnSpell(60043);
player->learnSpell(51514);
player->learnSpell(34093);
player->learnSpell(33392);
if(player->GetTeamId() == ALLIANCE)
player->learnSpell(32182);
if(player->GetTeamId() == HORDE)
player->learnSpell(2825);
if(player->HasSpell(61295))
player->learnSpell(61301);
if(player->HasSpell(974))
player->learnSpell(49284);
if(player->HasSpell(30706))
player->learnSpell(57722);
if(player->HasSpell(51490))
player->learnSpell(59159);
player->PlayerTalkClass->SendCloseGossip();
break;
case CLASS_DRUID:
player->learnSpell(1180);
player->learnSpell(15590);
player->learnSpell(200);
player->learnSpell(199);
player->UpdateSkillsToMaxSkillsForLevel();
player->learnSpell(48378);
player->learnSpell(48469);
player->learnSpell(48461);
player->learnSpell(48463);
player->learnSpell(48441);
player->learnSpell(53307);
player->learnSpell(53308);
player->learnSpell(5487);
player->learnSpell(48560);
player->learnSpell(6795);
player->learnSpell(48480);
player->learnSpell(53312);
player->learnSpell(18960);
player->learnSpell(5229);
player->learnSpell(48443);
player->learnSpell(50763);
player->learnSpell(8983);
player->learnSpell(8946);
player->learnSpell(1066);
player->learnSpell(48562);
player->learnSpell(783);
player->learnSpell(770);
player->learnSpell(16857);
player->learnSpell(18658);
player->learnSpell(768);
player->learnSpell(1082);
player->learnSpell(16979);
player->learnSpell(49376);
player->learnSpell(5215);
player->learnSpell(48477);
player->learnSpell(49800);
player->learnSpell(48465);
player->learnSpell(48572);
player->learnSpell(26995);
player->learnSpell(48574);
player->learnSpell(2782);
player->learnSpell(50213);
player->learnSpell(2893);
player->learnSpell(33357);
player->learnSpell(5209);
player->learnSpell(48575);
player->learnSpell(48447);
player->learnSpell(48577);
player->learnSpell(48579);
player->learnSpell(5225);
player->learnSpell(22842);
player->learnSpell(49803);
player->learnSpell(9634);
player->learnSpell(20719);
player->learnSpell(48467);
player->learnSpell(29166);
player->learnSpell(62600);
player->learnSpell(22812);
player->learnSpell(48470);
player->learnSpell(48564);
player->learnSpell(48566);
player->learnSpell(33943);
player->learnSpell(49802);
player->learnSpell(48451);
player->learnSpell(48568);
player->learnSpell(33786);
player->learnSpell(40120);
player->learnSpell(62078);
player->learnSpell(52610);
player->learnSpell(50464);
player->learnSpell(48570);
player->learnSpell(34093);
player->learnSpell(33392);
if(player->HasSpell(50516))
player->learnSpell(61384);
if(player->HasSpell(48505))
player->learnSpell(53201);
if(player->HasSpell(48438))
player->learnSpell(53251);
if(player->HasSpell(5570))
player->learnSpell(48468);
player->PlayerTalkClass->SendCloseGossip();
break;
}
break;
case 2: // Glyph Vendor.
break;
case 3:
player->resetTalents();
player->SendTalentsInfoData(false);
break;
case 4:
if(Pet * petche = player->ToPet())
{
player->SendTalentsInfoData(true);
Pet::resetTalentsForAllPetsOf(player, petche);
}
break;
}
}
return true;
}
};
void AddSC_OneClickTrainerNPC()
{
new npc_trainer;
}