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);}