[Release C++] Teleporter NPC menu

User Tag List

Results 1 to 1 of 1
  1. #1
    Exactly's Avatar Active Member
    Reputation
    25
    Join Date
    Apr 2009
    Posts
    21
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [Release C++] Teleporter NPC

    Here is a TeleporterNPC C++ script. I have already tested it on my server so it should work fine. All you have to do is compile it into a DLL. (Find a guide for compiling DLLs if you dont know how to)

    Note: THIS WILL NOT WORK FOR REPACKS, FOR ALL REPACKERS DONT EVEN BOTHER LOOKING AT THIS

    Code:
    #include "StdAfx.h"
    #include "Setup.h"
     
    #ifdef WIN32
    #pragma warning(disable:4305)// warning C4305: 'argument' : truncation from 'double' to 'float'
    #endif
     
     
    class SCRIPT_DECL GlobalNPC : public GossipScript
    {
    public:
    void GossipHello(ObjectPointer Ob, PlayerPointer Plr, bool AutoSend);
    void GossipSelectOption(ObjectPointer Ob, PlayerPointer Plr, uint32 Id, uint32 IntId, const char * Code);
    void GossipEnd(ObjectPointer Ob, PlayerPointer Plr);
    void Destroy()
    {
    delete this;
    }
    };
    void GlobalNPC::GossipHello(ObjectPointer Ob, PlayerPointer Plr, bool AutoSend)
    {
    GossipMenu *Menu;
    objmgr.CreateGossipMenuForPlayer(&Menu, Ob->GetGUID(), 1, Plr);
    if(Plr->getLevel() < 10)
    {
    Menu->AddItem(2, "You must be a level 10 to use this teleporter.");
    }else{
    if(Plr->getRace()== 10||Plr->getRace()== 2||Plr->getRace()== 6||Plr->getRace()== 8||Plr->getRace()== 5)
    {Menu->AddItem(0, "Horde Cities", 1);}else{Menu->AddItem(1, "Alliance Cities", 2);}
    Menu->AddItem(8, "Failshire", 55);
    Menu->AddItem(2, "Azeroth Instances", 3);
    Menu->AddItem(3, "Outland Instances", 4);
    Menu->AddItem(4, "WotLK Locations", 5);
    Menu->AddItem(5, "Gurubashi", 56);
    Menu->AddItem(7, "Remove Rez Sickness", 58);
    }
    if(AutoSend)
    Menu->SendTo(Plr);
    }
     
    void GlobalNPC::GossipSelectOption(ObjectPointer Ob, PlayerPointer Plr, uint32 Id, uint32 IntId, const char * Code)
    {
    CreaturePointer pCreature = (Ob->GetTypeId()==TYPEID_UNIT) ?TO_CREATURE(Ob):NULLCREATURE;
    if(pCreature==NULL)
    return;
     
    GossipMenu * Menu;
    switch(IntId)
    {
    case 0:
    GossipHello(Ob, Plr, true);
    break;
     
    case 1: // Horde Cities
    {
    objmgr.CreateGossipMenuForPlayer(&Menu, Ob->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Silvermoon", 6);
    Menu->AddItem(5, "Orgrimmar - Mall", 7);
    Menu->AddItem(5, "Thunder Bluff - Mall", 8);
    Menu->AddItem(5, "Undercity", 9);
     
    Menu->SendTo(Plr);
    }
    break;
     
     
    case 2: // Alliance Cities
    {
    objmgr.CreateGossipMenuForPlayer(&Menu, Ob->GetGUID(), 1, Plr);
    Menu->AddItem(5, "The Exodar", 10);
    Menu->AddItem(5, "Stormwind - Mall", 11);
    Menu->AddItem(5, "Ironforge - Mall", 12);
    Menu->AddItem(5, "Darnassus", 13);
     
    Menu->SendTo(Plr);
    }
    break;
     
    case 3: // Azeroth Instances
    {
    objmgr.CreateGossipMenuForPlayer(&Menu, Ob->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Shadowfang Keep", 14);
    Menu->AddItem(5, "Scarlet Monastery", 15);
    Menu->AddItem(5, "Zul'Farrak", 16);
    Menu->AddItem(5, "Stratholme", 27);
    Menu->AddItem(5, "Scholomance", 17);
    Menu->AddItem(5, "Blackrock Spire", 18);
    Menu->AddItem(5, "Onyxia's Lair", 19);
    Menu->AddItem(5, "Molten Core", 20);
    Menu->AddItem(5, "Zul'Gurub", 21);
    Menu->AddItem(5, "Karazhan", 22);
    Menu->AddItem(5, "Ahn'Qirai 20", 23);
    Menu->AddItem(5, "Ahn'Qirai 40", 24);
    Menu->AddItem(5, "Naxxramas", 25);
    Menu->AddItem(5, "Caverns of Time", 26);
     
    Menu->SendTo(Plr);
    }
    break;
    case 4: // Outland Instances
    {
    objmgr.CreateGossipMenuForPlayer(&Menu, Ob->GetGUID(), 1, Plr);
    Menu->AddItem(0, "Outland Raids", 100);
    Menu->AddItem(5, "Hellfire Ramparts", 28);
    Menu->AddItem(5, "The Blood Furnace", 29);
    Menu->AddItem(5, "The Shattered Halls", 30);
    Menu->AddItem(5, "The Underbog", 31);
    Menu->AddItem(5, "The Slave Pens", 32);
    Menu->AddItem(5, "The Steamvault", 33);
    Menu->AddItem(5, "Mana-Tombs", 34);
    Menu->AddItem(5, "Auchenai Crypts", 35);
    Menu->AddItem(5, "Sethekk Halls", 36);
    Menu->AddItem(5, "Shadow Labyrinth", 37);
    Menu->AddItem(5, "The Mechanar", 38);
    Menu->AddItem(5, "The Botanica", 39);
    Menu->AddItem(5, "The Arcatraz", 40);
     
    Menu->SendTo(Plr);
    }
    break;
     
    case 100: // Outland Raids
    {
    objmgr.CreateGossipMenuForPlayer(&Menu, Ob->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Magtheridon's Lair", 41);
    Menu->AddItem(5, "Serpentshrine Cavern", 42);
    Menu->AddItem(5, "Gruul's Lair", 43);
    Menu->AddItem(5, "The Eye", 44);
    Menu->AddItem(5, "Black Temple", 45);
     
    Menu->SendTo(Plr);
    }
    break;
    case 5: // World of the Lich King Locations
    {
    objmgr.CreateGossipMenuForPlayer(&Menu, Ob->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Dalaran City", 46);
    Menu->AddItem(5, "Deathknight Hold", 47);
    Menu->AddItem(5, "Icecrown", 48);
    Menu->AddItem(5, "Zuldrak", 49);
    Menu->AddItem(5, "Stormwind Docks", 50);
    Menu->AddItem(5, "Valgarde", 51);
    Menu->AddItem(5, "Valliance Keep", 52);
    Menu->AddItem(5, "Vengeance Landing", 53);
    Menu->AddItem(5, "Warsong Hold", 54);
    Menu->SendTo(Plr);
    }
    break;
    case 6://Silvermoon
    {
    Plr->EventTeleport(530, 9400.486328, -7278.376953, 14.206780);
    }break;
     
    case 7://Orgrimmar
    {
    Plr->EventTeleport(1, 1371.068970, -4370.801758, 26.052483);
    }break;
     
    case 8://ThunderBluff
    {
    Plr->EventTeleport(1, -1304.569946, 205.285004, 68.681396);
    }
    break;
     
    case 9://Undercity
    {
    Plr->EventTeleport(0, 2050.203125, 285.650604, 56.994549);
    }
    break;
     
    case 10: //Exodar
    {
    Plr->EventTeleport(530, -4072.202393, -12014.337891, -1.277277);
    }
    break;
     
    case 11: //Stormwind
    {
    Plr->EventTeleport(0, -9100.480469, 406.950745, 92.594185);
    }
    break;
     
    case 12: //Ironforge
    {
    Plr->EventTeleport(0, -5028.265137, -825.976563, 495.301575);
    }
    break;
     
    case 13: //Darnassus
    {
    Plr->EventTeleport(1, 9985.907227, 1971.155640, 1326.815674);
    }
    break;
     
    case 14: // Shadowfang Keep
    {
    Plr->EventTeleport(0, -234.495087, 1561.946411, 76.892143);
    }
    break;
    case 15: // Scarlet Monastery
    {
    Plr->EventTeleport(0, 2870.442627, -819.985229, 160.331085);
    }
    break;
    case 16: // Zul'Farrak
    {
    Plr->EventTeleport(1, -6797.278809, -2903.917969, 9.953360);
    }
    break;
    case 21: // Zul'Gurub
    {
    Plr->EventTeleport(0, -11919.073242, -1202.459374, 92.298744);
    }
    break;
    case 23: // Ahn'Qirai 20
    {
    Plr->EventTeleport(1, -8394.730469, 1485.658447, 21.038563);
    }
    break;
    case 24: // Ahn'Qirai 40
    {
    Plr->EventTeleport(1, -8247.316406, 1970.156860, 129.071472);
    }
    break;
    case 20: // Molten Core
    {
    // Plr->EventTeleport(0, -7515.409668, -1045.369629, 182.301208);
    Plr->EventTeleport(409, 1089.6, -470.19, -106.41);
    }
    break;
    case 19: // Onyxia
    {
    // Plr->EventTeleport(1, -4708.491699, -3727.672363, 54.535076);
    Plr->EventTeleport(249, 30.0, -64.0, -5.0);
    }
    break;
    case 25: // Naxxramas
    {
    // Plr->EventTeleport(0, 3132.915283, -3731.012939, 138.658371);
    Plr->EventTeleport(533, 3006.06, -3436.72, 293.891);
    }
    break;
    case 17: //Scholomance
    {
    Plr->EventTeleport(0, 1267.468628, -2556.651367, 94.127983);
    }
    break;
    case 27: //Stratholme
    {
    Plr->EventTeleport(0, 3359.111572, -3380.8444238, 144.781860);
    }break;
    case 18: // Black Rock Spire
    {
    Plr->EventTeleport(0, -7527.129883, -1224.997437, 285.733002);
    }break;
    case 22: // Kharazan
    {
    // Plr->EventTeleport(0, -11122.913086, -2014.498779, 47.079350);
    Plr->EventTeleport(532, -11087.3, -1977.47, 49.6135);
     
    }break;
    case 26: // Caverns of Times
    {
    Plr->EventTeleport(1, -8519.718750, -4297.542480, -208.441376);
    }break;
     
    case 28: // Hellfire Ramparts
    {
    Plr->EventTeleport(530, -360.670990, 3071.899902, -15.097700);
    }break;
    case 29: // The Blood Furnace
    {
    Plr->EventTeleport(530, -303.506012, 3164.820068, 31.742500);
    }break;
    case 30: // The Shattered Halls
    {
    Plr->EventTeleport(530, -311.083527, 3083.291748, -3.745923);
    }break;
    case 31: // The Underbog
    {
    Plr->EventTeleport(530, 777.088989, 6763.450195, -72.062561);
    }break;
    case 32: // The Slave Pens
    {
    Plr->EventTeleport(530, 719.507996, 6999.339844, -73.074303);
    }break;
    case 33: // The Steamvault
    {
    Plr->EventTeleport(530, 816.590027, 6934.669922, -80.544601);
    }break;
    case 34: // Mana-Tombs
    {
    Plr->EventTeleport(530, -3079.810059, 4943.040039, -101.046997);
    }break;
    case 35: // Auchenai Crypts
    {
    Plr->EventTeleport(530, -3361.959961, 5225.770020, -101.047997);
    }break;
    case 36: // Sethekk Halls
    {
    Plr->EventTeleport(530, -3362.219971, 4660.410156, -101.049004 );
    }break;
    case 37: // Shadow Labyrinth
    {
    Plr->EventTeleport(530, -3645.060059, 4943.620117, -101.047997);
    }break;
    case 38: // The Mechanar
    {
    Plr->EventTeleport(530, 2862.409912, 1546.089966, 252.158691);
    }break;
    case 39: // The Botanica
    {
    Plr->EventTeleport(530, 3413.649902, 1483.319946, 182.837997);
    }break;
    case 40: // The Arcatraz
    {
    Plr->EventTeleport(530, 3311.598145, 1332.745117, 505.557251);
    }break;
     
    case 41: // Magtheridon's Lair
    {
    Plr->EventTeleport(530, -313.678986, 3088.350098, -116.501999);
    }break;
    case 42: // Serpentshrine Cavern
    {
    Plr->EventTeleport(530, 830.542908, 6865.445801, -63.785503);
    }break;
    case 43: // Gruul's Lair
    {
    Plr->EventTeleport(530, 3549.424072, 5179.854004, -4.430779);
    }break;
    case 44: // The Eye
    {
    Plr->EventTeleport(530, 3087.310059, 1373.790039, 184.643005);
    }break;
    case 45: // Black Temple
    {
    Plr->EventTeleport(564, 97.0894, 1001.96, -86.8798 );
    }break;
    case 46://Dalaran City
    {
    Plr->EventTeleport(571, 5797.79, 629.402, 647.406);
    }break;
     
    case 47://Deathknight Hold
    {
    Plr->EventTeleport(609, 2358.31, -5671.61, 426.004);
    }break;
     
    case 48://Icecrown
    {
    Plr->EventTeleport(571, 7105.61, 2091.7, 622.529);
    }break;
    case 49://Zuldrak
    {
    Plr->EventTeleport(571, 5520.02, -3602.05, 362.706);
    }break;
    case 50://Stormwind Docks
    {
    Plr->EventTeleport(0, -8634, 940, 100);
    }break;
    case 51://Valgarde - Alliance
    {
    Plr->EventTeleport(571, 590, -5095, 6);
    }break;
    case 52://Valliance Keep - Alliance
    {
    Plr->EventTeleport(571, 2469, 6212, 174);
    }break;
    case 53://Vengeance Landing - Horde
    {
    Plr->EventTeleport(571, 1983, -6220, 8);
    }break;
    case 54://Warsong Hold - Horde
    {
    Plr->EventTeleport(571, 2469, 6212, 174);
    }break;
    case 56://Gurubashi Arena
    {
    Plr->EventTeleport(0, -13246, 192, 31);
    }break;
    case 58://Remove Rez Sickness
    {
    Plr->BroadcastMessage("Your resurrection Sickness has been Removed!");
    Plr->addSpell(15007);
    Plr->removeSpell(15007,0,0,0);
    }break;
    }
    }
    
    void GlobalNPC::GossipEnd(ObjectPointer Ob, PlayerPointer Plr)
    {
    	GossipScript::GossipEnd(Ob, Plr);
    }
     
    void SetupGlobalNPC(ScriptMgr * mgr)
    {
    GossipScript * gs = (GossipScript*) new GlobalNPC();
    mgr->register_gossip_script(NPC_ID_HERE, gs);
    }


    Enjoy!

    [Release C++] Teleporter NPC

Similar Threads

  1. [Release] Fun Teleporter npc [Lua++]
    By stoneharry in forum WoW EMU General Releases
    Replies: 24
    Last Post: 02-23-2009, 06:48 PM
  2. [Release] Rin'ji Boss Script || V1 - Includes Teleporter NPC -
    By Bapesy in forum World of Warcraft Emulator Servers
    Replies: 14
    Last Post: 06-06-2008, 06:00 PM
  3. [Release]City Teleport NPC for Antrix
    By latruwski in forum World of Warcraft Emulator Servers
    Replies: 6
    Last Post: 12-18-2007, 08:38 AM
  4. [Release] Chirspee's Teleporting NPC, Buff NPC's, Skill NPC and Heal NPC
    By Illidan1 in forum World of Warcraft Emulator Servers
    Replies: 13
    Last Post: 11-22-2007, 04:05 PM
All times are GMT -5. The time now is 01:24 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search