rendered paste body#include "StdAfx.h"
#include "Setup.h"
class SCRIPT_DECL Warper : 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 Warper::GossipHello(Object * pObject, Player* Plr, bool AutoSend)
{
GossipMenu *Menu;
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Menu->AddItem(0, "Weapon Skills", 7);
Menu->AddItem(0, "Warrior Skills", 1);
Menu->AddItem(0, "Paladin Skills", 4);
Menu->AddItem(0, "Druid Skills", 400);
Menu->AddItem(0, "Warlock Skills", 500);
Menu->AddItem(0, "Hunter Skills", 600);
Menu->AddItem(5, "Learn All Languages!", 17);
Menu->AddItem(5, "Learn Self Ressurrect!", 18);
if(AutoSend)
Menu->SendTo(Plr);
}
void Warper::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;
GossipMenu * Menu;
switch(IntId)
{
case 0: // Return to start
GossipHello(pObject, Plr, true);
break;
case 1: // Warrior Skills
{
if (Plr->getClass() == 1)
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Menu->AddItem(5, "Beserker Stance", 2);
Menu->AddItem(5, "Defensive Stance", 3);
Menu->AddItem(5, "Revenge Rank 8", 6);
Menu->AddItem(5, "Intercept Rank 5", 50);
Menu->AddItem(5, "Mortal Strike Rank 6", 51);
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Welcome Warrior!" );
}else { pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "FOOL! you are no Warrior! Begone!" );
}
}break;
case 400: // Druid Skils
{
if (Plr->getClass() == 11)
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Menu->AddItem(5, "Epic Flight Form", 401);
Menu->AddItem(5, "Bear Form", 402);
Menu->AddItem(5, "Dire Bear Form", 403);
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Welcome Druid!" );
}else { pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "FOOL! you are no Druid! Begone!" );
}
}break;
case 500: // Warlock Skills
{
if (Plr->getClass() == 9)
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Menu->AddItem(5, "Summon Imp", 501);
Menu->AddItem(5, "Summon Voidwalker", 502);
Menu->AddItem(5, "Summon Felguard", 503);
Menu->AddItem(5, "Summon Succubus", 504);
Menu->AddItem(5, "Summon Felhunter", 505);
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Welcome Warlock!" );
}else { pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "FOOL! you are no Warlock! Begone!" );
}
}break;
case 600: // Hunter Skills
{
if (Plr->getClass() == 3)
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Menu->AddItem(5, "Tame Beast", 601);
Menu->AddItem(5, "Feed Pet", 602);
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Welcome Hunter!" );
}else { pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "FOOL! you are no Hunter! Begone!" );
}
}break;
case 2: // beserker Stance
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Plr->addSpell(2458); // Learn Beserker Stance
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have learned Beserker stance." );
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
}
break;
case 601: // Tame beast
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Plr->addSpell(1515); // Learn Beserker Stance
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have learned Tame Beast." );
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
}
break;
case 602: // Feed pet
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Plr->addSpell(6991); // Learn Beserker Stance
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have learned Feed Pet." );
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
}
break;
case 501: // Summon IMP
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Plr->addSpell(688); // Learn Beserker Stance
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have learned Summon Imp." );
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
}
break;
case 502: // Summon voidwalker
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Plr->addSpell(697); // Learn Beserker Stance
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have learned Summon Voidwalker." );
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
}
break;
case 503: // Summon Felguard
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Plr->addSpell(30146); // Learn Beserker Stance
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have learned Summon Felguard." );
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
}
break;
case 504: // Summon Succubus
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Plr->addSpell(712); // Learn Beserker Stance
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have learned Summon Succubus." );
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
}
break;
case 505: // Summon Felhunter
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Plr->addSpell(691); // Learn Beserker Stance
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have learned Summon Felhunter." );
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
}
break;
case 401: // Epic flight form 5487
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Plr->addSpell(40120); // Learn Beserker Stance
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have learned Epic Flight form." );
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
}
break;
case 402: // Bear form
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Plr->addSpell(5487); // Learn Beserker Stance
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have learned Bear form." );
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
}
break;
case 403: //Dire Bear form
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Plr->addSpell(9634); // Learn Beserker Stance
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have learned Dire Bear form." );
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
}
break;
case 3: // Defencive Stance
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Plr->addSpell(71); // learn defencive Stance
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have learned Defencive Stance." );
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
}
break;
case 6: // Revenge Rank 8
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Plr->addSpell(30357); // Learn Beserker Stance
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have learned Revenge Rank 8." );
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
}
break;
case 50: // Intercept rank 5
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Plr->addSpell(25275); // Learn Beserker Stance
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have learned Intercept Rank 5." );
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
}
break;
case 51: // Mortal strike rank 6
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Plr->addSpell(30330); // Learn Beserker Stance
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have learned Mortal Strike Rank 6." );
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
}
break;
case 4: // Paladin Skills
{
if (Plr->getClass() == 2)
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Menu->AddItem(5, "Redemtion Rank 2", 5);
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have learned Redemption Rank 2." );
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Welcome Paladin!" );
}else { pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "FOOL! you are no Paladin! Begone!" );
}
}break;
case 5: // Redemption Rank 2
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Plr->addSpell(10322); // learn redemption
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have learned Redemption Rank 2." );
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
}
break;
case 7: // Weapon Skills
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Menu->AddItem(0, "Learn Warrior Weapon Skills", 8);
Menu->AddItem(0, "Learn Paladin Weapon Skills", 9);
Menu->AddItem(0, "Learn Hunter Weapon Skills", 10);
Menu->AddItem(0, "Learn Rogue Weapon Skills", 11);
Menu->AddItem(0, "Learn Priest Weapon Skills", 12);
Menu->AddItem(0, "Learn Shaman Weapon Skills", 13);
Menu->AddItem(0, "Learn Mage Weapon Skills", 14);
Menu->AddItem(0, "Learn Warlock Weapon Skills", 15);
Menu->AddItem(0, "Learn Druid Weapon Skills", 16);
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
}
break;
case 8://Warrior
{
if (Plr->getClass() == 1)
{
Plr->addSpell(201);//sword
Plr->addSpell(674);//dualwield
Plr->addSpell(1180);//dagger
Plr->addSpell(198);//mace
Plr->addSpell(226);//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(160);//2h mace
Plr->addSpell(196);//axe
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You learned All BASIC warrior weapon skills! Be sure to log out and back in for the skills to take effect." " );
}else { pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "FOOL! you are no Warrior! Begone!" );
}
}break;
case 9: //pally
{
if (Plr->getClass() == 2)
{
Plr->addSpell(201);//sword
Plr->addSpell(674);//dualwield
Plr->addSpell(1180);//dagger
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(160);//2h mace
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You learned All BASIC Paladic weapon skills! Be sure to log out and back in for the skills to take effect." " );
}else { pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "FOOL! you are no Paladin! Begone!" );
}
}break;
case 10: //hunter
{
if (Plr->getClass() == 3)
{
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
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You learned All BASIC Hunter weapon skills! Be sure to log out and back in for the skills to take effect." );
}else { pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "FOOL! you are no Hunter! Begone!" );
}
}break;
case 11: //Rogue
{
if (Plr->getClass() == 4)
{
Plr->addSpell(201);//sword
Plr->addSpell(674);//dualwield
Plr->addSpell(1180);//dagger
Plr->addSpell(264);//bow
Plr->addSpell(266);//gun
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You learned All BASIC Rogue weapon skills! Be sure to log out and back in for the skills to take effect." " );
}else { pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "FOOL! you are no Rogue! Begone!" );
}
}break;
case 12:// priest
{
if(Plr->getClass() == 5)
{
Plr->addSpell(198);//mace
Plr->addSpell(201);//sword
Plr->addSpell(674);//dualwield
Plr->addSpell(1180);//dagger
Plr->addSpell(136);//stave
Plr->addSpell(5009);//wand
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You learned All BASIC Priest weapon skills! Be sure to log out and back in for the skills to take effect." " );
} else { pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "FOOL! you are no Priest! Begone!" );
}
}break;
case 13://Shaman
{
if(Plr->getClass() == 7)
{
Plr->addSpell(198);//mace
Plr->addSpell(201);//sword
Plr->addSpell(674);//dualwield
Plr->addSpell(1180);//dagger
Plr->addSpell(136);//stave
Plr->addSpell(196);//axe
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You learned All BASIC Shaman weapon skills! Be sure to log out and back in for the skills to take effect." " );
} else { pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "FOOL! you are no Shaman! Begone!" );
}
}break;
case 14://mage
{
if(Plr->getClass() == 8)
{
Plr->addSpell(198);//mace
Plr->addSpell(201);//sword
Plr->addSpell(674);//dualwield
Plr->addSpell(1180);//dagger
Plr->addSpell(136);//stave
Plr->addSpell(5009);//wand
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You learned All BASIC Mage weapon skills! Be sure to log out and back in for the skills to take effect." " );
} else { pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "FOOL! you are no Mage! Begone!" );
}
}break;
case 15:// WL
{
if(Plr->getClass() == 9)
{
Plr->addSpell(201);//sword
Plr->addSpell(674);//dualwield
Plr->addSpell(1180);//dagger
Plr->addSpell(136);//stave
Plr->addSpell(5009);//wand
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You learned All BASIC Warlock weapon skills! Be sure to log out and back in for the skills to take effect." " );
} else { pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "FOOL! you are no Warlock.your a warcock! Begone!" );
}
}break;
case 16://druide
{
if(Plr->getClass() == 11)
{
Plr->addSpell(198);//mace
Plr->addSpell(201);//sword
Plr->addSpell(674);//dualwield
Plr->addSpell(1180);//dagger
Plr->addSpell(136);//stave
Plr->addSpell(5009);//wand
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You learned All BASIC Druid weapon skills! Be sure to log out and back in for the skills to take effect." " );
} else { pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "FOOL! you are no Druid! Begone!" );
}
}break;
case 17://Languge
{
uint32 price = 100000;
uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
if (currentgold>=price && Plr->getLevel() >= 1 ){
int32 newgold = currentgold - price;
Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
Plr->addSpell(668);//common
Plr->addSpell(669);//orcish
Plr->addSpell(671);//darnassian
Plr->addSpell(29932);//draenei
Plr->addSpell(672);//dwarven
Plr->addSpell(7340);//gnomish
Plr->addSpell(17737);//gutterspeak
Plr->addSpell(670);//taurahe
Plr->addSpell(813);//thalassian
Plr->addSpell(7341);//troll
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "I taught you the horde and alliance Language Skills Be sure to log out and back in for the skills to take effect." ");
pCreature->Emote(EMOTE_ONESHOT_CHEER);
}
else { pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money! How dare You try to rip me off!");
}
}break;
case 18: // Self Ressurect
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Plr->addSpell(18976); // learn Self Ressurect
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have learned to ress yourself after death. Buy Minor Soulstones reagens at Endernol the Enchantor." );
Menu->AddItem(0, "[Back]", 99);
Menu->SendTo(Plr);
}
break;
case 99: //main menu
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Menu->AddItem(0, "Weapon Skills", 7);
Menu->AddItem(0, "Warrior Skills", 1);
Menu->AddItem(0, "Paladin Skills", 4);
Menu->AddItem(0, "Druid Skills", 400);
Menu->AddItem(0, "Warlock Skills", 500);
Menu->AddItem(0, "Hunter Skills", 600);
Menu->AddItem(5, "Learn All Languages!", 17);
Menu->AddItem(5, "Learn Self Ressurrect!", 18);
Menu->SendTo(Plr);
}
break;
}
}
void Warper::GossipEnd(Object * pObject, Player* Plr)
{
GossipScript::GossipEnd(pObject, Plr);
}
void SetupWarper(ScriptMgr * mgr)
{
GossipScript * gs = (GossipScript*) new Warper();
/* Teleporter List */
mgr->register_gossip_script(30010, gs); // Nega
}