All pastes #809246 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-12-08 17:58 UTC
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
}