Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //---------------------------------//
- //Teleporter Gossip Script by MilboW//
- //---------------------------------//
- //---------------------------------//
- //---------------------------------//
- //---------------------------------//
- //---------------------------------//
- //---------------------------------//
- //---------------------------------//
- #include "ScriptMgr.h"
- #include "ScriptPCH.h"
- uint32 aurass[] = { 48074, 47440, 53307, 132, 48170, 23737, 48470, 43002, 26393, 48162, 24705 };
- class GossipNpc : public CreatureScript
- {
- public:
- GossipNpc() : CreatureScript("GossipNpc") { }
- bool OnGossipHello(Player* plr, Creature* npc)
- {
- if (plr->IsInCombat())
- {
- plr->GetSession()->SendNotification("You're in combat!");
- npc->MonsterWhisper("You're in combat!", LANG_UNIVERSAL, NULL);
- return false;
- }
- plr->ADD_GOSSIP_ITEM(2, "Teleport Service", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
- plr->ADD_GOSSIP_ITEM(3, "|cffFFC125Buff me!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
- plr->ADD_GOSSIP_ITEM(3, "|cffDA70D6Heal me!", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+23);
- plr->ADD_GOSSIP_ITEM(4, "Repair Items (1g)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+24);
- plr->ADD_GOSSIP_ITEM(2, "Gurubashi Arena", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+25);
- plr->ADD_GOSSIP_ITEM(9, "|cffFF0000Nevermind..", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+99);
- plr->SEND_GOSSIP_MENU(1, npc->GetGUID());
- return true;
- }
- bool OnGossipSelect(Player* plr, Creature* npc, uint32 sender, uint32 uiAction)
- {
- if (!plr)
- return false;
- plr->PlayerTalkClass->ClearMenus();
- switch(uiAction)
- {
- case GOSSIP_ACTION_INFO_DEF+1:
- if(plr->GetSession()->GetSecurity() <= 2)
- {
- plr->ADD_GOSSIP_ITEM(2, "|cff00C78CMall & Events", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
- plr->ADD_GOSSIP_ITEM(2, "Cities", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
- plr->ADD_GOSSIP_ITEM(2, "Eastern Kingdoms", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
- plr->ADD_GOSSIP_ITEM(2, "Kalimdor", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6);
- plr->ADD_GOSSIP_ITEM(2, "Outland", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+7);
- plr->ADD_GOSSIP_ITEM(2, "|cff00C78CNorthrend", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+8);
- plr->ADD_GOSSIP_ITEM(2, "Dungeons", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+9);
- plr->ADD_GOSSIP_ITEM(3, "|cffFF6EB4Custom Instances", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+10);
- plr->ADD_GOSSIP_ITEM(3, "|cffffffffTBC & LK Raids", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+35);
- plr->ADD_GOSSIP_ITEM(9, "|cffFF0000<- Back", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+99);
- }else{
- plr->ADD_GOSSIP_ITEM(2, "|cff00C78CMall & Events", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
- plr->ADD_GOSSIP_ITEM(2, "Cities", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+4);
- plr->ADD_GOSSIP_ITEM(2, "|cff4747FFEastern Kingdoms", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+5);
- plr->ADD_GOSSIP_ITEM(2, "|cffCC6600Kalimdor", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+6);
- plr->ADD_GOSSIP_ITEM(2, "|cff00CC00Outland", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+7);
- plr->ADD_GOSSIP_ITEM(2, "|cff148AFFNorthrend", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+8);
- plr->ADD_GOSSIP_ITEM(2, "Dungeons", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+9);
- plr->ADD_GOSSIP_ITEM(3, "|cffFF6EB4Custom Instances", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+10);
- plr->ADD_GOSSIP_ITEM(3, "|cffffffffTBC & LK Raids", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+36);
- plr->ADD_GOSSIP_ITEM(3, "|cff00ff00GM Island", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+98);
- plr->ADD_GOSSIP_ITEM(9, "|cffFF0000<- Back", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+99);
- }
- plr->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, npc->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+3:
- plr->ADD_GOSSIP_ITEM(2, "|cff00C78CMall", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+11);
- plr->ADD_GOSSIP_ITEM(2, "Event 1 (Rabbit)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+12);
- plr->ADD_GOSSIP_ITEM(5, "Event 2 (StairCase 1)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+13);
- plr->ADD_GOSSIP_ITEM(9, "|cffFF0000<- Back", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
- plr->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, npc->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+4:
- if(plr->GetTeam() == ALLIANCE){
- plr->ADD_GOSSIP_ITEM(2, "Stormwind", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+26);
- plr->ADD_GOSSIP_ITEM(2, "Ironforge", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+27);
- plr->ADD_GOSSIP_ITEM(2, "Darnassus", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+28);
- plr->ADD_GOSSIP_ITEM(2, "The Exodar", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+29);
- plr->ADD_GOSSIP_ITEM(9, "|cffFF1414Attack Orgrimmar", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+35);
- plr->ADD_GOSSIP_ITEM(1, "|cffFF0000<- Back", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
- }else if(plr->GetTeam() == HORDE){
- plr->ADD_GOSSIP_ITEM(2, "Orgrimmar", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+30);
- plr->ADD_GOSSIP_ITEM(2, "Undercity", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+31);
- plr->ADD_GOSSIP_ITEM(2, "Thunder Bluff", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+32);
- plr->ADD_GOSSIP_ITEM(2, "Silvermoon", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+33);
- plr->ADD_GOSSIP_ITEM(9, "|cffFF1414Attack Stormwind", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+34);
- plr->ADD_GOSSIP_ITEM(1, "|cffFF0000<- Back", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
- }
- plr->SEND_GOSSIP_MENU(1, npc->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+98: // GM Island Teleport
- plr->TeleportTo(1, 16222.500000f, 16257.566406f, 13.127848f, 1.548749f);
- plr->AddItem(12064, 1);
- plr->AddItem(2586, 1);
- plr->AddItem(11508, 1);
- break;
- case GOSSIP_ACTION_INFO_DEF+26: // Stormwind teleport
- plr->TeleportTo(0, -8828.601563f, 627.279053f, 94.030663f, 3.924985f);
- break;
- case GOSSIP_ACTION_INFO_DEF+29: // The Exodar Teleport
- plr->TeleportTo(530, -3965.699951f, -11653.599609f, -137.184998f, 0.852154f);
- break;
- case GOSSIP_ACTION_INFO_DEF+27: // Ironforge teleport
- plr->TeleportTo(0, -4918.879883f, -940.406006f, 504.854126f, 5.423470f);
- break;
- case GOSSIP_ACTION_INFO_DEF+28: // Darnassus Teleport
- plr->TeleportTo(1, 9949.559570f, 2284.20996f, 1342.969482f, 1.595870f);
- break;
- case GOSSIP_ACTION_INFO_DEF+30: // Orgrimmar Teleport
- plr->TeleportTo(1, 1561.713257f, -4438.890137f, 7.368488f, 0.410725f);
- break;
- case GOSSIP_ACTION_INFO_DEF+31: // Undercity Teleport
- plr->TeleportTo(0, 1573.561279f, 240.414459f, -62.077351f, 0.033143f);
- break;
- case GOSSIP_ACTION_INFO_DEF+32: // Thunder Bluff Teleport
- plr->TeleportTo(1, -1297.956421f, 208.591827f, 68.681366f, 5.084499f);
- break;
- case GOSSIP_ACTION_INFO_DEF+33: // Silvermoon Teleport
- plr->TeleportTo(530, 9397.452148f, -7279.064941f, 14.216600f, 0.009944f);
- break;
- case GOSSIP_ACTION_INFO_DEF+34: // Attack Stormwind
- plr->TeleportTo(0, -9165.100586f, 465.795807f, 104.171112f, 5.289221f);
- break;
- case GOSSIP_ACTION_INFO_DEF+35: // Attack Orgrimmar
- plr->TeleportTo(1, 1025.285156f, -4439.764160f, 12.237539f, 0.178984f);
- break;
- case GOSSIP_ACTION_INFO_DEF+5:
- break;
- case GOSSIP_ACTION_INFO_DEF+6:
- break;
- case GOSSIP_ACTION_INFO_DEF+12: // Rabbit Event Teleport
- plr->TeleportTo(0, -10240.200195f, 928.818970f, 44.496384f, 5.323780f);
- break;
- case GOSSIP_ACTION_INFO_DEF+13: // Staircase 1 Teleport
- plr->TeleportTo(0, -4067.917480f, -3381.699707f, 372.380859f, 2.860715f);
- break;
- case GOSSIP_ACTION_INFO_DEF+11: //Mall Teleport
- plr->TeleportTo(530, -1859.869995f, 5420.069824f, -10.380500f, 2.146750f);
- break;
- case GOSSIP_ACTION_INFO_DEF+9: //Dungeons SubMenu
- plr->ADD_GOSSIP_ITEM(2, "Classic Dungeons", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+23);
- plr->ADD_GOSSIP_ITEM(2, "BC Dungeons", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+24);
- plr->ADD_GOSSIP_ITEM(2, "Wrath Dungeons", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+25);
- plr->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, npc->GetGUID());
- break;
- case GOSSIP_ACTION_INFO_DEF+2: //Buff me
- for(int i = 0; i < 10; i++)
- plr->AddAura(aurass[i], plr);
- plr->CastSpell(plr, 24705, 1);
- plr->GetSession()->SendNotification("|cff0000ffYou have been buffed!");
- plr->CLOSE_GOSSIP_MENU();
- break;
- case GOSSIP_ACTION_INFO_DEF+24: // Repair
- plr->DurabilityRepairAll(false, 0, false);
- plr->GetSession()->SendNotification("Your items got repaired!");
- plr->ModifyMoney(-10000);
- break;
- case GOSSIP_ACTION_INFO_DEF+23: // Heal me
- plr->SetPower(POWER_MANA, plr->GetMaxPower(POWER_MANA));
- plr->SetHealth(plr->GetMaxHealth());
- plr->SendTalentsInfoData(false);
- plr->GetSession()->SendNotification("|cffFFC125Your Health And Mana, Is being refilled.");
- break;
- case GOSSIP_ACTION_INFO_DEF+25:// Gurubashi Arena Teleport
- plr->TeleportTo(0, -13288.905273f, 109.301590f, 23.305859f, 1.078724f);
- break;
- case GOSSIP_ACTION_INFO_DEF+99: // Close Function
- plr->CLOSE_GOSSIP_MENU();
- break;
- }
- return true;
- }
- };
- void AddSC_GossipNpc()
- {
- new GossipNpc();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement