All pastes #1030427 Raw Edit

ControlPanel.cpp

public cpp v1 · immutable
#1030427 ·published 2008-05-26 21:37 UTC
rendered paste body
//--------------------------------------////          ControlPanel.cpp            ////--------------------------------------////  Created by Gastricpenguin           ////  Modified to be released once again  ////  on MMOWNED.COM                      ////--------------------------------------//#include "StdAfx.h"#include "Setup.h"#ifdef WIN32#pragma warning(disable:4305)#endifclass SCRIPT_DECL CPanel : 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 CPanel::GossipHello(Object* pObject, Player * Plr, bool AutoSend)    {    if(Plr->CombatStatus.IsInCombat()){        Plr->BroadcastMessage("You are in combat!");        return;    }        GossipMenu *Menu;        objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);        Menu->AddItem(0, "<Welcome to your Control Panel>");	if(Plr->getLevel()>59)		Menu->AddItem(2, "Teleport to Shattrath", 27);        Menu->AddItem(2, "Main City Teleports", 8);	Menu->AddItem(6, "Show Online Players", 19);	Menu->AddItem(4, "Global Options", 1);        Menu->AddItem(3, "Player Options", 2);	if (Plr->getClass() == 1) { Menu->AddItem(0, "[Warrior] What spells can warriors learn?", 31); } 	if (Plr->getClass() == 2) { Menu->AddItem(0, "[Paladin] What spells can paladins learn?", 32); }	if (Plr->getClass() == 3) { Menu->AddItem(0, "[Hunter] What spells can hunters learn?", 33); }	if (Plr->getClass() == 7) { Menu->AddItem(0, "[Shaman] I need my totems!", 36); }	if (Plr->getClass() == 9) { Menu->AddItem(0, "[Warlock] What spells can warlocks learn?", 34); }	if (Plr->getClass() == 11) { Menu->AddItem(0, "[Druid]What spells can druids learn?", 35); }           if(AutoSend)            Menu->SendTo(Plr);    }void CPanel::GossipSelectOption(Object* pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code)    {        GossipMenu * Menu;        switch(IntId)        {         case 1:            {		objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);		Menu->AddItem(4, "[10 Gold]Open Flight Paths", 10);		Menu->AddItem(4, "[10 Gold]Discover Map Locations", 21);		Menu->AddItem(4, "[5 Gold]Advance All Skills", 20);		Menu->SendTo(Plr);            }            break;        case 2:            {		objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);		Menu->AddItem(3, "[10 Gold]Reset Talentpoints", 9);		Menu->AddItem(3, "[10 Gold]Remove Resurrection Sickness", 23);		Menu->AddItem(3, "Player Save", 7);		Menu->SendTo(Plr);            }            break;	case 7:	{	Plr->SaveToDB(true);	Plr->BroadcastMessage("Your Character Has Been Succesfully Saved to the Database");                	Plr->Emote(EMOTE_ONESHOT_CHEER);	Plr->Gossip_Complete(); 	}            break;        case 8:	{	objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);	if(Plr->getRace()== 10||Plr->getRace()== 2||Plr->getRace()== 6||Plr->getRace()== 8||Plr->getRace()== 5)	{	Menu->AddItem(2, "Silvermoon", 11);                	Menu->AddItem(2, "Orgrimmar", 12);                	Menu->AddItem(2, "Thunderbluff", 13);                	Menu->AddItem(2, "UnderCity", 14);    	}	else	{	Menu->AddItem(2, "The Exodar", 17);	Menu->AddItem(2, "Stormwind", 18);	Menu->AddItem(2, "Ironforge", 15);	Menu->AddItem(2, "Darnassus", 16);	}         	Menu->SendTo(Plr);	}break;		case 9:			{			uint32 price = 100000;			uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);			if (currentgold>=price){			int32 newgold = currentgold - price;			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);			Plr->BroadcastMessage("Your Talentpoints have been sucessfully reset!");			Plr->Reset_Talents();			Plr->Gossip_Complete(); 			} else {			Plr->BroadcastMessage("You don't have enough money to afford a talent reset!");			Plr->Gossip_Complete(); 			}			}break;		case 10:			{			uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);			if(currentgold>100000)				{				int32 newgold = currentgold - 100000;				Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);				for (uint8 i=0; i<8; i++)					{					Plr->SetTaximask(i, 0xFFFFFFFF);					}				Plr->BroadcastMessage("All flight paths have been opened!");				Plr->Gossip_Complete(); 				}			else				{				Plr->BroadcastMessage("Sorry, you don't have enought gold.");				Plr->Gossip_Complete(); 				}			}break;		case 11:            {				Plr->EventTeleport(530, 9400.486328, -7278.376953, 14.206780);}            break;		case 12:            {				Plr->EventTeleport(1, 1371.068970, -4370.801758, 26.052483);}            break;		case 13:            {				Plr->EventTeleport(1, -1304.569946, 205.285004, 68.681396);}            break;		case 14:            {				Plr->EventTeleport(0, 2050.203125, 285.650604, 56.994549);}            break;        case 15:            {				Plr->EventTeleport(0, -5028.265137, -825.976563, 495.301575);}            break;        case 16:            {				Plr->EventTeleport(1, 9985.907227, 1971.155640, 1326.815674);}            break;        case 17:             {				Plr->EventTeleport(530, -4072.202393, -12014.337891, -1.277277);}            break;        case 18:             {				Plr->EventTeleport(0, -9100.480469, 406.950745, 92.594185);}            break;		case 19:			{			uint32 clientsNum = (uint32)sWorld.GetSessionCount();			Plr->BroadcastMessage("Current Players Online: %d", clientsNum);			Plr->Gossip_Complete();			}break;		case 20:			{			uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);			if(currentgold>50000){			int32 newgold = currentgold - 50000;			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);			if (Plr->_HasSkillLine(43))				{Plr->_AdvanceSkillLine(43, 350);}			if (Plr->_HasSkillLine(55))				{Plr->_AdvanceSkillLine(55, 350);}			if (Plr->_HasSkillLine(44))				{Plr->_AdvanceSkillLine(44, 350);}			if (Plr->_HasSkillLine(95))				{Plr->_AdvanceSkillLine(95, 350);}			if (Plr->_HasSkillLine(54))				{Plr->_AdvanceSkillLine(54, 350);}			if (Plr->_HasSkillLine(45))				{Plr->_AdvanceSkillLine(45, 350);}			if (Plr->_HasSkillLine(46))				{Plr->_AdvanceSkillLine(46, 350);}			if (Plr->_HasSkillLine(136))				{Plr->_AdvanceSkillLine(136, 350);}			if (Plr->_HasSkillLine(160))				{Plr->_AdvanceSkillLine(160, 350);}			if (Plr->_HasSkillLine(162))				{Plr->_AdvanceSkillLine(162, 350);}			if (Plr->_HasSkillLine(172))				{Plr->_AdvanceSkillLine(172, 350);}			if (Plr->_HasSkillLine(173))				{Plr->_AdvanceSkillLine(173, 350);}			if (Plr->_HasSkillLine(176))				{Plr->_AdvanceSkillLine(176, 350);}			if (Plr->_HasSkillLine(226))				{Plr->_AdvanceSkillLine(226, 350);}			if (Plr->_HasSkillLine(228))				{Plr->_AdvanceSkillLine(228, 350);}			if (Plr->_HasSkillLine(229))				{Plr->_AdvanceSkillLine(229, 350);}			if (Plr->_HasSkillLine(473))				{Plr->_AdvanceSkillLine(473, 350);}			Plr->Gossip_Complete(); 			}else{			Plr->BroadcastMessage("Sorry, you don't have enought gold.");			Plr->Gossip_Complete(); 			}			}break;		case 21:			{			uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);			if(currentgold>100000)				{				int32 newgold = currentgold - 100000;				Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);				for (uint8 i=0; i<64; i++)				{				Plr->SetFlag(PLAYER_EXPLORED_ZONES_1+i,0xFFFFFFFF);				}				Plr->BroadcastMessage("All Map Locations have been opened!");				Plr->Gossip_Complete();				}			else				{				Plr->BroadcastMessage("Sorry, you don't have enought gold.");				Plr->Gossip_Complete(); 				}			}break;		case 22:			{			Plr->BroadcastMessage("You are given 5 brawl points for every level, and 1 for every kill. Once you have enough Brawl points, your PVP rank will increase.");			Plr->Gossip_Complete(); 			}break;		case 23: // REMOVE RESSURECTION SICKNESS		{		uint32 price = 100000;		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);		if (currentgold>=price){		int32 newgold = currentgold - price;		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);     		Plr->addSpell(15007);		Plr->removeSpell(15007,0,0,0);		Plr->BroadcastMessage("You have been cured of that dreaded sickness." );		Plr->Gossip_Complete(); 		} else {		Plr->BroadcastMessage("You don't have enough money to be cured!");		Plr->Gossip_Complete(); 		}		}break;        case 26:	{	Plr->Gossip_Complete();	}break;		case 27:			{			Plr->EventTeleport(530, -1863.03, 4998.05, -21.1847);			}break;		case 29:			{			if(Plr->getLevel()>15){			Plr->RemovePvPFlag();			Plr->EventTeleport(0, 2255, -2370, 60);			Plr->BroadcastMessage("PvP Is allowed in this area! Please be careful :D");			Plr->RemovePvPFlag();			}else{				Plr->BroadcastMessage("You need to be higher than level 15 to enter!" );}			}break;		case 30:			{			if(Plr->getLevel()>15){			Plr->RemovePvPFlag();			Plr->EventTeleport(0, -11895, -1851, 63);			Plr->BroadcastMessage("PvP Is allowed in this area! Please be careful :D");			Plr->RemovePvPFlag();			}else{				Plr->BroadcastMessage("You need to be higher than level 15 to enter!" );}			}break;		case 31:		{			objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);			Menu->AddItem(5, "Taunt", 40);			Menu->AddItem(5, "Defensive Stance", 41);			Menu->AddItem(5, "Beserker Stance", 42);			Menu->AddItem(5, "Intercept", 58);			Menu->SendTo(Plr);		}break;		case 32:		{			objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);			Menu->AddItem(5, "Redemption", 45);			Menu->AddItem(5, "Summon Warhorse", 43);			Menu->AddItem(5, "Summon Charger", 44);			Menu->SendTo(Plr);		}break;		case 33:		{			objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);			Menu->AddItem(5, "Pet spells", 46);			Menu->SendTo(Plr);		}break;		case 34:		{			objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);			Menu->AddItem(5, "Pet Spells", 47);			Menu->AddItem(5, "Summon Felstead", 48);			Menu->AddItem(5, "Summon Dreadstead", 49);			Menu->SendTo(Plr);		}break;		case 35:		{			objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);			Menu->AddItem(5, "Growl", 51);			Menu->AddItem(5, "Maul", 37);			Menu->AddItem(5, "Bear form", 60);			Menu->AddItem(5, "Cat form", 59);			Menu->AddItem(5, "Dire-Bear Form", 54);			Menu->AddItem(5, "Normal Flight Form", 52);			Menu->AddItem(5, "Epic Flight Form", 53);			Menu->SendTo(Plr);		}break;		case 36:			{				if(Plr->GetItemInterface()->GetItemCount(5175) >= 1)				{					return;				}				else				{					Item * pItem = objmgr.CreateItem(5175,Plr);					Plr->GetItemInterface()->AddItemToFreeSlot(pItem);					Plr->Gossip_Complete();				}				if(Plr->GetItemInterface()->GetItemCount(5176) >= 1)				{					return;				}				else				{					Item * pItem2 = objmgr.CreateItem(5176,Plr);					Plr->GetItemInterface()->AddItemToFreeSlot(pItem2);					Plr->Gossip_Complete();				}				if(Plr->GetItemInterface()->GetItemCount(5177) >= 1)				{					return;				}				else				{					Item * pItem3 = objmgr.CreateItem(5177,Plr);					Plr->GetItemInterface()->AddItemToFreeSlot(pItem3);					Plr->Gossip_Complete();				}				if(Plr->GetItemInterface()->GetItemCount(5178) >= 1)				{					return;				}				else				{					Item * pItem4 = objmgr.CreateItem(5178,Plr);					Plr->GetItemInterface()->AddItemToFreeSlot(pItem4);					Plr->Gossip_Complete();				}			}break;		case 37:			{			if(Plr->getLevel() >= 10)			{				Plr->addSpell(6807);				Plr->BroadcastMessage("You have learned Maul(rank 1).");			}else{				Plr->BroadcastMessage("You must be level 10 to learn Maul.");				}			}break;        case 40:     // Warrior-Taunt			{			if(Plr->getLevel() >= 10)			{				Plr->addSpell(355);				Plr->BroadcastMessage("You have learned Taunt.");			}else{				Plr->BroadcastMessage("You must be level 10 to learn Taunt.");				}			}break;	case 41:     // Warrior-Defensive Stance			{			if(Plr->getLevel() >= 10)			{				Plr->addSpell(71);				Plr->BroadcastMessage("You have learned Defensive Stance.");			}else{				Plr->BroadcastMessage("You must be level 10 to learn Defensive Stance.");				}			}break;	case 42:     // Warrior-Beserker Stance			{			if(Plr->getLevel() >= 30)			{				Plr->addSpell(2458);				Plr->BroadcastMessage("You have learned Berseker Stance.");			}else{				Plr->BroadcastMessage("You must be level 30 to learn Berseker Stance.");				}			}break;    case 43:     // Paladin-Warhorse			{			if(Plr->getLevel() >= 40)			{                		Plr->addSpell(13819);            			Plr->BroadcastMessage("You have learned Summon Warhorse.");			}else{ 				Plr->BroadcastMessage("You must be level 40 to learn Summon Warhorse."); 				}			}break;	case 44:     // Paladin-Charger		{			if(Plr->getLevel() >= 60)			{                		Plr->addSpell(34767);            			Plr->BroadcastMessage("You have learned Summon Charger.");			}else{ 				Plr->BroadcastMessage("You must be level 60 to learn Summon Charger."); 				}					}break;	case 45:     // Paladin-Redemption		{			if(Plr->getLevel() >= 10)			{                		Plr->addSpell(20773);            			Plr->BroadcastMessage("You have learned Redemption.");			}else{ 				Plr->BroadcastMessage("You must be level 10 to learn Redemption."); 				}					}break;                case 46:     // Hunter-Pet Spells			{	        	if(Plr->getLevel() >= 10)	        	{				Plr->addSpell(1515);				Plr->addSpell(883);				Plr->addSpell(5149);				Plr->BroadcastMessage("You have learned your Hunter Pet Spells.");				Plr->Gossip_Complete();			}else{				Plr->BroadcastMessage("You are below level 10.");				Plr->Gossip_Complete();				}			}break;	case 47:     // Warlock-Pet Spells		{	        	if(Plr->getLevel() >= 10)	        	{				Plr->addSpell(688);				Plr->addSpell(697);				Plr->addSpell(712);				Plr->addSpell(691);				Plr->BroadcastMessage("You have learned your Warlock Pet Spells.");				Plr->Gossip_Complete();			}else{				Plr->BroadcastMessage("You are below level 10.");				Plr->Gossip_Complete();			}		}break;	case 48:     // Warlock-Felsteed		{	        	if(Plr->getLevel() >= 40)	        	{				Plr->addSpell(5784);				Plr->BroadcastMessage("You have learned Summon Felsteed.");				Plr->Gossip_Complete();			}else{				Plr->BroadcastMessage("You must be level 40 to learn Summon Felsteed.");				Plr->Gossip_Complete();			}		}break;	case 49:     // Warlock-Dreadsteed		{	        	if(Plr->getLevel() >= 60)	        	{				Plr->addSpell(23161);				Plr->BroadcastMessage("You have learned Summon Dreadsteed.");				Plr->Gossip_Complete();			}else{				Plr->BroadcastMessage("You must be level 60 to learn Summon Dreadsteed.");				Plr->Gossip_Complete();			}		}break;	case 51:     // Druid-Growl		{	        	if(Plr->getLevel() >= 10)	        	{				Plr->addSpell(6795);				Plr->BroadcastMessage("You have learned Growl.");				Plr->Gossip_Complete();			}else{				Plr->BroadcastMessage("You must be level 10 to learn Growl.");				Plr->Gossip_Complete();			}		}break;	case 54:     // Druid-Dire Bear Form		{	        	if(Plr->getLevel() >= 30)	        	{				Plr->addSpell(9634);				Plr->BroadcastMessage("You have learned Dire Bear Form.");				Plr->Gossip_Complete();			}else{				Plr->BroadcastMessage("You must be level 30 to learn Dire Bear Form.");				Plr->Gossip_Complete();			}		}break;	case 52:     // Druid-Normal Flight Form		{	        	if(Plr->getLevel() >= 68)	        	{				Plr->addSpell(33943);				Plr->BroadcastMessage("You have learned Summon Normal Flight Form.");				Plr->Gossip_Complete();			}else{				Plr->BroadcastMessage("You must be level 68 to learn Normal Flight Form.");				Plr->Gossip_Complete();			}		}break;	case 53:     // Druid-Epic Flight Form		{	        	if(Plr->getLevel() >= 70)	        	{				Plr->addSpell(40120);				Plr->BroadcastMessage("You have learned Summon Epic Flight Form.");				Plr->Gossip_Complete();			}else{				Plr->BroadcastMessage("You must be level 60 to learn Epic Flight Form.");				Plr->Gossip_Complete();			}		}break;	case 58:			{			if(Plr->getLevel() >= 30)			{			Plr->addSpell(20252);			Plr->BroadcastMessage("You have learned Intercept.");			}else{				Plr->BroadcastMessage("You must be level 30 to learn Intercept.");				}			}break;	case 59:     // Cat Form		{	        	if(Plr->getLevel() >= 20)	        	{				Plr->addSpell(768);				Plr->BroadcastMessage("You have learned Cat Form.");				Plr->Gossip_Complete();			}else{				Plr->BroadcastMessage("You must be level 20.");				Plr->Gossip_Complete();			}		}break;	case 60:     // Bear		{	        	if(Plr->getLevel() >= 10)	        	{				Plr->addSpell(5487);				Plr->BroadcastMessage("You have learned Bear Form.");				Plr->Gossip_Complete();			}else{				Plr->BroadcastMessage("You must be level 10.");				Plr->Gossip_Complete();			}		}break;/*	case 61:		{		Plr->RemovePvPFlag();		Plr->Gossip_Complete();		Plr->BroadcastMessage("Your PVP flag has been removed.");		}break;*/        }};void CPanel::GossipEnd(Object * pObject, Player* Plr){GossipScript::GossipEnd(pObject, Plr);}void SetupCPanel(ScriptMgr * mgr){GossipScript * gs = (GossipScript*) new CPanel();mgr->register_item_gossip_script(87562,gs);}