eluna-scripts-ornfelt/lua/WowEmulationScriptPack/C++/Teleporter.cpp
2024-09-23 07:59:23 +02:00

124 lines
No EOL
11 KiB
C++

#include "ScriptPCH.h"
class Teleporter_NPC : public CreatureScript
{
public:
Teleporter_NPC() : CreatureScript("Teleporter_NPC") { }
bool OnGossipHello(Player * player, Creature * creature)
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, "|TInterface/ICONS/INV_Misc_Coin_01:30|t Global Mall", GOSSIP_SENDER_MAIN, 1);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, "|TInterface/ICONS/INV_Misc_Coin_03:30|t Malls", GOSSIP_SENDER_MAIN, 2);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_BATTLE, "|TInterface/ICONS/Achievement_Arena_2v2_7:30|t PvP Arenas", GOSSIP_SENDER_MAIN, 3);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_BATTLE, "|TInterface/ICONS/Achievement_Arena_3v3_5:30|t Duel Zone", GOSSIP_SENDER_MAIN, 4);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, "|TInterface/ICONS/INV_Misc_Gear_01:30|t Profession Mall", GOSSIP_SENDER_MAIN, 5);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, "|TInterface/ICONS/INV_Chest_Plate13:30|t Transmorgrification Mall", GOSSIP_SENDER_MAIN, 6);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, "|TInterface/ICONS/Thrown_1H_Harpoon_D_01Blue:30|t Nevermind", GOSSIP_SENDER_MAIN, 30);
player->PlayerTalkClass->SendGossipMenu(1, creature->GetGUID());
return true;
}
bool OnGossipSelect(Player* player, Creature* creature, uint32 uiSender, uint32 uiAction)
{
player->PlayerTalkClass->ClearMenus();
switch(uiAction)
{
case 1: // Global Mall
player->TeleportTo(530, -2981.270020f, 779.124023f, -8.054820f, 2.530470f);
player->PlayerTalkClass->SendCloseGossip();
break;
case 2: // Malls
if (player->GetTeam() == HORDE)
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, "|TInterface/ICONS/INV_Misc_Coin_05:30|t Orgrimmar", GOSSIP_SENDER_MAIN, 11);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, "|TInterface/ICONS/INV_Misc_Coin_05:30|t Undercity", GOSSIP_SENDER_MAIN, 12);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, "|TInterface/ICONS/Thrown_1H_Harpoon_D_01Blue:30|t Back", GOSSIP_SENDER_MAIN, 20);
player->PlayerTalkClass->SendGossipMenu(1, creature->GetGUID());
}
else
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, "|TInterface/ICONS/INV_Misc_Coin_05:30|t Stormwind", GOSSIP_SENDER_MAIN, 13);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, "|TInterface/ICONS/INV_Misc_Coin_05:30|t Ironforge", GOSSIP_SENDER_MAIN, 14);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, "|TInterface/ICONS/Thrown_1H_Harpoon_D_01Blue:30|t Back", GOSSIP_SENDER_MAIN, 20);
player->PlayerTalkClass->SendGossipMenu(1, creature->GetGUID());
}
break;
case 3: // PvP Arenas
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_BATTLE, "|TInterface/ICONS/Achievement_Arena_2v2_3:30|t Gurubashi Arena", GOSSIP_SENDER_MAIN, 15);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_BATTLE, "|TInterface/ICONS/Achievement_Arena_2v2_3:30|t Dire Maul Arena", GOSSIP_SENDER_MAIN, 16);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, "|TInterface/ICONS/Thrown_1H_Harpoon_D_01Blue:30|t Back", GOSSIP_SENDER_MAIN, 20);
player->PlayerTalkClass->SendGossipMenu(1, creature->GetGUID());
break;
case 4: // duelzone
player->TeleportTo(0, 4300.189941f, -2761.300049f, 16.813999f, 3.643650f);
player->PlayerTalkClass->SendCloseGossip();
break;
case 5: // prifessions mall
player->TeleportTo(530, -2110.120117f, 7770.859863f, 151.707001f, 3.356310f);
player->PlayerTalkClass->SendCloseGossip();
break;
case 6: // mog mall
player->TeleportTo(1, -2650.709961f, -5021.879883f, 21.182899f, 2.431570f);
player->PlayerTalkClass->SendCloseGossip();
break;
case 11: // org
player->TeleportTo(1, 1462.180054f, -4419.850098f, 25.463112f, 0.109132f);
player->PlayerTalkClass->SendCloseGossip();
break;
case 12: // undercity
player->TeleportTo(0, 1745.290039f, 239.115997f, 61.920300f, 6.248010f);
player->PlayerTalkClass->SendCloseGossip();
break;
case 13: // stormwind
player->TeleportTo(0, -8847.259766f, 606.219971f, 92.426201f, 0.757473f);
player->PlayerTalkClass->SendCloseGossip();
break;
case 14: // ironforge
player->TeleportTo(0, -4936.500000f, -937.025024f, 503.040985f, 5.440750f);
player->PlayerTalkClass->SendCloseGossip();
break;
case 15: // guru
player->TeleportTo(0, -13245.921875f, 193.394821f, 31.008369f, 1.096788f);
player->PlayerTalkClass->SendCloseGossip();
break;
case 16: // dire maul
player->TeleportTo(1, -3761.399658f, 1133.067749f, 132.084564f, 4.719074f);
player->PlayerTalkClass->SendCloseGossip();
break;
case 20: // bk
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, "|TInterface/ICONS/INV_Misc_Coin_01:30|t Global Mall", GOSSIP_SENDER_MAIN, 1);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR, "|TInterface/ICONS/INV_Misc_Coin_03:30|t Malls", GOSSIP_SENDER_MAIN, 2);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_BATTLE, "|TInterface/ICONS/Achievement_Arena_2v2_7:30|t PvP Arenas", GOSSIP_SENDER_MAIN, 3);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_BATTLE, "|TInterface/ICONS/Achievement_Arena_3v3_5:30|t Duel Zone", GOSSIP_SENDER_MAIN, 4);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_BATTLE, "|TInterface/ICONS/INV_MISC_FILM_01:30|t Northwatch Hold", GOSSIP_SENDER_MAIN, 5);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, "|TInterface/ICONS/INV_Misc_Gear_01:30|t Profession Mall", GOSSIP_SENDER_MAIN, 6);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TABARD, "|TInterface/ICONS/INV_Chest_Plate13:30|t Transmorgrification Mall", GOSSIP_SENDER_MAIN, 7);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, "|TInterface/ICONS/Thrown_1H_Harpoon_D_01Blue:30|t Nevermind", GOSSIP_SENDER_MAIN, 30);
player->PlayerTalkClass->SendGossipMenu(1, creature->GetGUID());
break;
case 30: // Back
player->PlayerTalkClass->SendCloseGossip();
break;
}
return true;
}
};
void AddSC_Teleporter_NPC()
{
new Teleporter_NPC;
}