#include "StdAfx.h" #include "Setup.h" #define SKILL_NPC 30010 class SCRIPT_DECL SkillNPC : public GossipScript{ public: void GossipHello(Object * pObject, Player* Plr, bool AutoSend); void GossipSelectOption(Object * pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code); void GossipEnd(Object * pObject, Player* Plr); void Destroy(){ delete this;} }; void SkillNPC::GossipHello(Object * pObject, Player* Plr, bool AutoSend){ GossipMenu *Menu; objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr); Menu->AddItem(0, "Learn Weapon Skills", 1); if(Plr->getClass() == 1) Menu->AddItem(0, "I need my stances & abilities", 2); if(Plr->getClass() == 7) Menu->AddItem(0, "I need my totems", 3); if(Plr->getClass() == 9) Menu->AddItem(0, "I need my summons", 4); if(Plr->getClass() == 11) Menu->AddItem(0, "I need my forms", 5); if(Plr->getClass() == 4) Menu->AddItem(0, "I need my pet skillz",6); if(AutoSend) Menu->SendTo(Plr); } void SkillNPC::GossipEnd(Object * pObject, Player* Plr){ GossipScript::GossipEnd(pObject, Plr); } void SkillNPC::GossipSelectOption(Object * pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code){ Creature * pCreature = (pObject->GetTypeId()==TYPEID_UNIT)?((Creature*)pObject):NULL; if(pCreature==NULL) return; switch(IntId){ case 1:{ switch(Plr->getClass()){ case 1:{ //Warrior Plr->addSpell(201); //sword Plr->addSpell(674); //dualwield Plr->addSpell(1180); //dagger Plr->addSpell(198); //mace Plr->addSpell(5011); //xbow Plr->addSpell(15590); //fist Plr->addSpell(264); //bow Plr->addSpell(266); //gun Plr->addSpell(202); //2h sword Plr->addSpell(197); //2h axe Plr->addSpell(199); //2h mace Plr->addSpell(196); //axe break; } case 2:{ //Pally Plr->addSpell(201); //sword Plr->addSpell(200); //polearm Plr->addSpell(202); //2h sword Plr->addSpell(196); //1h axe Plr->addSpell(197); //2h axe Plr->addSpell(198); //mace Plr->addSpell(199); //2h mace break; } case 3:{ //Hunter Plr->addSpell(201); //sword Plr->addSpell(196); //axe Plr->addSpell(264); //bow Plr->addSpell(266); //gun Plr->addSpell(1180); //daggers Plr->addSpell(202); //2h sword Plr->addSpell(197); //2h axe Plr->addSpell(674); //xwield break; } case 4:{ //Rogue Plr->addSpell(201); //sword Plr->addSpell(264); //bow Plr->addSpell(266); //gun Plr->addSpell(674); //xwield break; } case 5:{ //Priest Plr->addSpell(198); //Mace Plr->addSpell(1180); //Dagger Plr->addSpell(227); //Stave Plr->addSpell(5009); //Wand break; } case 7:{ //Shaman Plr->addSpell(198); //Mace Plr->addSpell(1180); //Dagger Plr->addSpell(227); //Stave Plr->addSpell(196); //Axe break; } case 8:{ //Mage Plr->addSpell(198); //Mace Plr->addSpell(1180); //Dagger Plr->addSpell(227); //Stave Plr->addSpell(5009); //Wand break; } case 9:{ //Warlock Plr->addSpell(201); //Sword Plr->addSpell(1180); //Dagger Plr->addSpell(227); //Stave Plr->addSpell(5009); //Wand break; } case 11:{ //Druid Plr->addSpell(201); //Sword Plr->addSpell(1180); //Dagger Plr->addSpell(227); //Stave Plr->addSpell(5009); //Wand break; } } pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You learned All BASIC weapon skills!" ); Plr->Gossip_Complete(); break; } case 2:{ if(Plr->getLevel() >= 30) Plr->addSpell(2458); //Berserker Stance if(Plr->getLevel() >= 10) Plr->addSpell(71); //Defensive Stance if(Plr->getLevel() >= 30) Plr->addSpell(20252); //Intercept Rank 1 if(Plr->getLevel() >= 10) Plr->addSpell(355); //Taunt pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Use them well!" ); Plr->Gossip_Complete(); break; } case 3:{ //Sham totoms if(Plr->getLevel() >= 38) Plr->addSpell(8170); //Disease Cleansing Totem if(Plr->getLevel() >= 66) Plr->addSpell(2062); //Earth Elemental Totem if(Plr->getLevel() >= 6) Plr->addSpell(2484); //Earthbind Totem if(Plr->getLevel() >= 68) Plr->addSpell(2894); //Fire Elemental Totem if(Plr->getLevel() >= 12) Plr->addSpell(1535); //Fire Nova Totem Rank1 if(Plr->getLevel() >= 22) Plr->addSpell(8489); //Fire Nova Totem Rank2 if(Plr->getLevel() >= 32) Plr->addSpell(8499); //Fire Nova Totem Rank3 if(Plr->getLevel() >= 42) Plr->addSpell(11314); //Fire Nova Totem Rank4 if(Plr->getLevel() >= 52) Plr->addSpell(11315); //Fire Nova Totem Rank5 if(Plr->getLevel() >= 61) Plr->addSpell(25546); //Fire Nova Totem Rank6 if(Plr->getLevel() >= 70) Plr->addSpell(25547); //Fire Nova Totem Rank7 if(Plr->getLevel() >= 28) Plr->addSpell(8184); //Fire Resistance Totem Rank1 if(Plr->getLevel() >= 42) Plr->addSpell(10537); //Fire Resistance Totem Rank2 if(Plr->getLevel() >= 58) Plr->addSpell(10538); //Fire Resistance Totem Rank3 if(Plr->getLevel() >= 68) Plr->addSpell(25563); //Fire Resistance Totem Rank4 if(Plr->getLevel() >= 28) Plr->addSpell(8227); //Flametongue Totem Rank1 if(Plr->getLevel() >= 38) Plr->addSpell(8249); //Flametongue Totem Rank2 if(Plr->getLevel() >= 48) Plr->addSpell(10526); //Flametongue Totem Rank3 if(Plr->getLevel() >= 58) Plr->addSpell(16387); //Flametongue Totem Rank4 if(Plr->getLevel() >= 67) Plr->addSpell(25557); //Flametongue Totem Rank5 if(Plr->getLevel() >= 24) Plr->addSpell(8181); //Frost Resistance Totem Rank1 if(Plr->getLevel() >= 38) Plr->addSpell(10478); //Frost Resistance Totem Rank2 if(Plr->getLevel() >= 54) Plr->addSpell(10479); //Frost Resistance Totem Rank3 if(Plr->getLevel() >= 67) Plr->addSpell(25560); //Frost Resistance Totem Rank4 if(Plr->getLevel() >= 42) Plr->addSpell(8835); //Grace of Air Totem Rank1 if(Plr->getLevel() >= 56) Plr->addSpell(10627); //Grace of Air Totem Rank2 if(Plr->getLevel() >= 60) Plr->addSpell(25359); //Grace of Air Totem Rank3 if(Plr->getLevel() >= 30) Plr->addSpell(8177); //Grounding Totem if(Plr->getLevel() >= 15) Plr->addSpell(16258); //Guardian Totems Rank1 if(Plr->getLevel() >= 16) Plr->addSpell(16293); //Guardian Totems Rank2 if(Plr->getLevel() >= 20) Plr->addSpell(5394); //Healing Stream Totem Rank1 if(Plr->getLevel() >= 30) Plr->addSpell(6375); //Healing Stream Totem Rank2 if(Plr->getLevel() >= 40) Plr->addSpell(6377); //Healing Stream Totem Rank3 if(Plr->getLevel() >= 50) Plr->addSpell(10462); //Healing Stream Totem Rank4 if(Plr->getLevel() >= 60) Plr->addSpell(10463); //Healing Stream Totem Rank5 if(Plr->getLevel() >= 69) Plr->addSpell(25567); //Healing Stream Totem Rank6 if(Plr->getLevel() >= 26) Plr->addSpell(8190); //Magma Totem Rank1 if(Plr->getLevel() >= 36) Plr->addSpell(10585); //Magma Totem Rank2 if(Plr->getLevel() >= 46) Plr->addSpell(10586); //Magma Totem Rank3 if(Plr->getLevel() >= 56) Plr->addSpell(10587); //Magma Totem Rank4 if(Plr->getLevel() >= 65) Plr->addSpell(25552); //Magma Totem Rank5 if(Plr->getLevel() >= 26) Plr->addSpell(5675); //Mana Spring Totem Rank1 if(Plr->getLevel() >= 36) Plr->addSpell(10495); //Mana Spring Totem Rank2 if(Plr->getLevel() >= 46) Plr->addSpell(10496); //Mana Spring Totem Rank3 if(Plr->getLevel() >= 56) Plr->addSpell(10497); //Mana Spring Totem Rank4 if(Plr->getLevel() >= 65) Plr->addSpell(25570); //Mana Spring Totem Rank5 if(Plr->getLevel() >= 30) Plr->addSpell(10595); //Nature Resistance Totem Rank1 if(Plr->getLevel() >= 44) Plr->addSpell(10600); //Nature Resistance Totem Rank2 if(Plr->getLevel() >= 60) Plr->addSpell(10601); //Nature Resistance Totem Rank3 if(Plr->getLevel() >= 69) Plr->addSpell(25574); //Nature Resistance Totem Rank4 if(Plr->getLevel() >= 22) Plr->addSpell(8166); //Poison Cleansing Totem if(Plr->getLevel() >= 10) Plr->addSpell(3599); //Searing Totem Rank1 if(Plr->getLevel() >= 20) Plr->addSpell(6363); //Searing Totem Rank2 if(Plr->getLevel() >= 30) Plr->addSpell(6364); //Searing Totem Rank3 if(Plr->getLevel() >= 40) Plr->addSpell(6365); //Searing Totem Rank4 if(Plr->getLevel() >= 50) Plr->addSpell(10437); //Searing Totem Rank5 if(Plr->getLevel() >= 60) Plr->addSpell(10438); //Searing Totem Rank6 if(Plr->getLevel() >= 69) Plr->addSpell(25533); //Searing Totem Rank7 if(Plr->getLevel() >= 34) Plr->addSpell(6495); //Sentry Totem if(Plr->getLevel() >= 8) Plr->addSpell(5730); //Stoneclaw Totem Rank1 if(Plr->getLevel() >= 18) Plr->addSpell(6390); //Stoneclaw Totem Rank2 if(Plr->getLevel() >= 28) Plr->addSpell(6391); //Stoneclaw Totem Rank3 if(Plr->getLevel() >= 38) Plr->addSpell(6392); //Stoneclaw Totem Rank4 if(Plr->getLevel() >= 48) Plr->addSpell(10427); //Stoneclaw Totem Rank5 if(Plr->getLevel() >= 58) Plr->addSpell(10428); //Stoneclaw Totem Rank6 if(Plr->getLevel() >= 67) Plr->addSpell(25525); //Stoneclaw Totem Rank7 if(Plr->getLevel() >= 4) Plr->addSpell(8071); //Stoneskin Totem Rank1 if(Plr->getLevel() >= 14) Plr->addSpell(8154); //Stoneskin Totem Rank2 if(Plr->getLevel() >= 24) Plr->addSpell(8155); //Stoneskin Totem Rank3 if(Plr->getLevel() >= 34) Plr->addSpell(10406); //Stoneskin Totem Rank4 if(Plr->getLevel() >= 44) Plr->addSpell(10407); //Stoneskin Totem Rank5 if(Plr->getLevel() >= 54) Plr->addSpell(10408); //Stoneskin Totem Rank6 if(Plr->getLevel() >= 63) Plr->addSpell(25508); //Stoneskin Totem Rank7 if(Plr->getLevel() >= 70) Plr->addSpell(25509); //Stoneskin Totem Rank8 if(Plr->getLevel() >= 10) Plr->addSpell(8075); //Strength of Earth Totem Rank1 if(Plr->getLevel() >= 24) Plr->addSpell(8160); //Strength of Earth Totem Rank2 if(Plr->getLevel() >= 38) Plr->addSpell(8161); //Strength of Earth Totem Rank3 if(Plr->getLevel() >= 52) Plr->addSpell(10442); //Strength of Earth Totem Rank4 if(Plr->getLevel() >= 60) Plr->addSpell(25361); //Strength of Earth Totem Rank5 if(Plr->getLevel() >= 65) Plr->addSpell(25528); //Strength of Earth Totem Rank6 if(Plr->getLevel() >= 50) Plr->addSpell(25908); //Tranquil Air Totem if(Plr->getLevel() >= 18) Plr->addSpell(8143); //Tremor Totem if(Plr->getLevel() >= 32) Plr->addSpell(8512); //Windfury Totem Rank1 if(Plr->getLevel() >= 42) Plr->addSpell(10613); //Windfury Totem Rank2 if(Plr->getLevel() >= 52) Plr->addSpell(10614); //Windfury Totem Rank3 if(Plr->getLevel() >= 61) Plr->addSpell(25585); //Windfury Totem Rank4 if(Plr->getLevel() >= 70) Plr->addSpell(25587); //Windfury Totem Rank5 if(Plr->getLevel() >= 36) Plr->addSpell(15107); //Windwall Totem Rank1 if(Plr->getLevel() >= 46) Plr->addSpell(15111); //Windwall Totem Rank2 if(Plr->getLevel() >= 56) Plr->addSpell(15112); //Windwall Totem Rank3 if(Plr->getLevel() >= 65) Plr->addSpell(25577); //Windwall Totem Rank4 if(Plr->getLevel() >= 64) Plr->addSpell(3738); //Wrath of Air Totem Rank1 pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Use them well!" ); Plr->Gossip_Complete(); break; } case 4:{ Plr->addSpell(688); //Summon Imp if(Plr->getLevel() >= 10) Plr->addSpell(697); //Summon Voidwalker if(Plr->getLevel() >= 20) Plr->addSpell(712); //Summon Succubus if(Plr->getLevel() >= 30) Plr->addSpell(691); //Summon Felhunter if(Plr->getLevel() >= 40) Plr->addSpell(1710); //Summon Felsteed if(Plr->getLevel() >= 50) Plr->addSpell(1122); //Inferno pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Treat them well!" ); Plr->Gossip_Complete(); break; } case 5:{ if(Plr->getLevel() >= 10) Plr->addSpell(5487); //Bear Form if(Plr->getLevel() >= 18) Plr->addSpell(1066); //Aqatic Form if(Plr->getLevel() >= 20) Plr->addSpell(768); //Cat Form if(Plr->getLevel() >= 30) Plr->addSpell(783); //Travel Form if(Plr->getLevel() >= 40) Plr->addSpell(9634); //Dire Bear Form pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Go crazy you beast!" ); Plr->Gossip_Complete(); break; } case 6:{ if(Plr->getLevel() >= 10) Plr->addSpell(6991); //Feed Pet if(Plr->getLevel() >= 10) Plr->addSpell(1515); //Tame Beast if(Plr->getLevel() >= 10) Plr->addSpell(883); //Call Pet if(Plr->getLevel() >= 10) Plr->addSpell(2641); //Dismiss Pet if(Plr->getLevel() >= 10) Plr->addSpell(982); //Revive Pet pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Should be everything, Rock on Baby :D" ); Plr->Gossip_Complete(); break; } default:{ Plr->Gossip_Complete(); } } } void SetupSkillNPC(ScriptMgr * mgr){ GossipScript * gs = (GossipScript*) new SkillNPC(); mgr->register_gossip_script(SKILL_NPC, gs); }