Public feed
#893208
#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);
}