[C++] Insane WOTLK WarpNPC (clean source) menu

User Tag List

Results 1 to 4 of 4
  1. #1
    Algorithm's Avatar Member
    Reputation
    175
    Join Date
    Mar 2008
    Posts
    395
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [C++] Insane WOTLK WarpNPC (clean source)

    Hello MMOwned

    Today i am releasing a WOTLK Warp-NPC C++
    [Made from scratch, no script modifications, all ports are numerated for easy editing]

    This is a source code that is compatible with Arcemu, Aspire Hearthstone (non shared pointers)
    [If you need help with creating SQL file for your Warp NPC , please post in this thread which Emu you use and revision and i will create one for you guys]


    This Warp-NPC has colored menus with Northrend Locations, instances and raids. Port to Dalaran City and Arena.


    Pics:





    Source Code:
    Code:
    /*
     * RedRum Scripts
     * Copyright (C) 2010 <http://www.vcnwow.net/>
     * Scripted by Zanukan
     * NPC ID :76667
     */
    
    #include "StdAfx.h"
    #include "Setup.h"
    
    #ifdef WIN32
    #pragma warning(disable:4305)// warning C4305: 'argument' : truncation from 'double' to 'float'
    #endif
    
    
    class SCRIPT_DECL WotlkNPC : 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 WotlkNPC::GossipHello(Object * pObject, Player* Plr, bool AutoSend)
        {
        GossipMenu *Menu;
        objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
            Menu->AddItem(1, "|cFFFF0000Welcome to Insane WoW 3.3.0 Realm.");
            Menu->AddItem(2, "|cFF800080Northrend Locations", 97);
            Menu->AddItem(2, "|cFF800080Northrend Instances", 777);
            Menu->AddItem(5, "|cFFFFD700Dalaran", 1001);
            Menu->AddItem(9, "|cFF000000Gurubashi Arena", 45);
            
            if(AutoSend)
            Menu->SendTo(Plr);
    }
    
    void WotlkNPC::GossipSelectOption(Object * pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code)
    {
        Creature * pCreature = (pObject->GetTypeId()==TYPEID_UNIT)?((Creature*)pObject):NULL;;
        if(pCreature==NULL)
            return;
        
        GossipMenu * Menu;
        switch(IntId)
        {
        case 0:
            GossipHello(pObject, Plr, true);
            break;
    
        case 97: //Northrend Locations
            {
                objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
                Menu->AddItem(5, "|cFF008000Borean Tundra", 501);
                Menu->AddItem(5, "|cFF008000Crystalsong Forest", 502);
                Menu->AddItem(5, "|cFF008000Dalaran (City)", 503);
                Menu->AddItem(5, "|cFF008000Dragonblight", 504);
                Menu->AddItem(5, "|cFF008000Grizzly Hills", 505);
                Menu->AddItem(5, "|cFF008000Howling Fjord", 506);
                Menu->AddItem(5, "|cFF008000Icecrown", 507);
                Menu->AddItem(5, "|cFF008000Sholazar Basin", 508);
                Menu->AddItem(5, "|cFF008000The Storm Peaks", 509);
                Menu->AddItem(5, "|cFF008000Zul'Dark", 510);
                Menu->AddItem(5, "|cFF008000DK Start Zone", 511);
                
                Menu->SendTo(Plr);
            }
            break;
    
        case 777: //Northrend Instances
            {
                objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
                Menu->AddItem(5, "|cFF008000Utgarde Keep", 779);
                Menu->AddItem(5, "|cFF008000Utgard Pinnacle", 778);
                Menu->AddItem(5, "|cFF008000Draktharon Keep", 780);
                Menu->AddItem(5, "|cFF008000Halls of Stone", 781);
                Menu->AddItem(5, "|cFF008000Halls of Lighting", 782);
                Menu->AddItem(5, "|cFF008000The Nexus", 785);
                Menu->AddItem(5, "|cFF008000The Oculus", 786);
                Menu->AddItem(5, "|cFF008000The Old Kingdom", 787);
                Menu->AddItem(5, "|cFF008000Azjol-nerub", 788);
                Menu->AddItem(5, "|cFF800080Northrend Raids--->", 888);
                
                Menu->SendTo(Plr);
            }
            break;
    
        case 888: //Northrend Raids
            {
                objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
                Menu->AddItem(5, "|cFF008000Naxxramas", 783);
                Menu->AddItem(5, "|cFF008000The Eye of Eternity", 784);
                Menu->AddItem(5, "|cFF008000Ulduar", 733);
            
                Menu->SendTo(Plr);
            }
            break;
    
        case 889:
            {
                Plr->EventTeleport(1, 4613.19, -3861.61, 944.178);
            }
            break;
        case 45: //GuruBashi Arena
            {
            Plr->EventTeleport(0, -13243.240234, 197.949799, 32.112690);
            }
            break;
    
        case 501: // Borean Tundra
            {
            Plr->EventTeleport(571, 2087.0109, 6508.6171, 1.4727);
            }
            break;
    
        case 502: //Utgard Pinnacle
            {
            Plr->EventTeleport(571, 5434.8281, -1022.4812, 175.0125);
            }
            break;
    
        case 503: //Dalaran (City)
            {
            Plr->EventTeleport(571, 5811.4067, 647.7883, 647.4152);
            }
            break;
    
        case 504: //Dragonblight
            {
            Plr->EventTeleport(571, 3511.6850, 2841.8454, 36.7473);
            }
            break;
    
        case 505: //Grizzly Hills
            {
            Plr->EventTeleport(571, 3346.2551, -4486.8173, 259.2319);
            }
            break;
    
        case 506: //Howling Fjord
            {
            Plr->EventTeleport(571, 2195.3654, -4526.7729, 216.7943);
            }
            break;
    
        case 507: //Icecrown
            {
            Plr->EventTeleport(571, 6729.2387, 2510.4931, 427.7868);
            }
            break;
    
        case 508: //Sholazar Basin
            {
            Plr->EventTeleport(570, 4913.3090, 5536.0737, -76.4190);
            }
            break;
    
        case 509: //The Storm Peaks
            {
            Plr->EventTeleport(571, 6196.4174, -776.7462, 402.3688);
            }
            break;
    
        case 510: //Zul'Dark
            {
            Plr->EventTeleport(571, 5443.4326, -1259.7487, 248.7494);
            }
            break;
    
        case 511: //DK Start Zone
            {
            Plr->EventTeleport(609, 2355.7048, -5662.7075, 426.0274);
            break;
            {
        case 778: //Utgard Pinnacle
            {
            Plr->EventTeleport(571, 1248.92, -4853.94, 219.231);
            }
            break;
    
        case 779: //Utgarde Keep
            {
            Plr->EventTeleport(571, 1215.37, -4866.46, 47.8483);
            }
            break;
    
        case 780: //Draktharon Keep
            Plr->EventTeleport(571, 4775.11, -2035.08, 229.387);
            }
            break;
    
        case 781: //Halls of Stone
            {
            Plr->EventTeleport(571, 9174.49, -1377.79, 1102.41);
            }
            break;
    
        case 782: //Halls of Lighting
            {
            Plr->EventTeleport(571, 8923.74, -986.607, 1039.35);
            }
            break;
    
        case 783: //Nax
            {
            Plr->EventTeleport(533, 3005.87, -3435.01, 293.883);
            }
            break;
    
        case 784: //The Eye of Eternity
            {
            Plr->EventTeleport(571, 3879.34, 6979.7, 152.042);
            }
            break;
    
        case 785: //The Nexus
            {
            Plr->EventTeleport(571, 3881.67, 6984.54, 73.7606);
            }
            break;
    
        case 786: //The Oculus
            {
            Plr->EventTeleport(571, 3879.99, 6984.38, 106.321);
            }
            break;
    
        case 733: //Ulduar
            {
            Plr->EventTeleport(571, 8923.66, -1002.0, 1039.5);
            }
            break;
    
        case 787: //The Old Kingdom
            {
            Plr->EventTeleport(571, 3717.18, 2154.97, 36.4342);
            }
            break;
    
        case 788: //Azjol-nerub
            {
            Plr->EventTeleport(571, 3717.18, 2154.97, 36.4342);
            }
            break;
    
        case 1001: //Dalaran City
            {
            Plr->EventTeleport(571, 5785.24, 724.91, 641.081);
            }
            break;
            };
    
     }
     }
    
    void WotlkNPC::GossipEnd(Object * pObject, Player* Plr)
    {
        GossipScript::GossipEnd(pObject, Plr);
    }
    
    void SetupWotlkNPC(ScriptMgr * mgr)
    {
        GossipScript * gs = (GossipScript*) new WotlkNPC();
        mgr->register_gossip_script(76667, gs);
    }

    NPC Id is 76667, so change this to whatever you wish
    Code:
    [mgr->register_gossip_script(76667, gs);]
    Enjoy.
    Last edited by Algorithm; 01-11-2010 at 03:51 PM.

    [C++] Insane WOTLK WarpNPC (clean source)
  2. #2
    Hyldran0's Avatar Contributor
    Reputation
    118
    Join Date
    Nov 2008
    Posts
    374
    Thanks G/R
    1/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    First !! Really nice +rep ! Going to test it out right away !

    EDIT: I gotta Spread !!
    Shit's Gone Real

  3. #3
    slade1000's Avatar Active Member

    Reputation
    66
    Join Date
    Jun 2008
    Posts
    99
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Looks very nice +Rep

  4. #4
    Algorithm's Avatar Member
    Reputation
    175
    Join Date
    Mar 2008
    Posts
    395
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by slade1000 View Post
    Looks very nice +Rep
    danke for feedback

Similar Threads

  1. [Selling] insane WOTLK 3.3.5a account
    By tom_tom in forum WoW-EU Account Buy Sell Trade
    Replies: 0
    Last Post: 11-06-2014, 08:43 AM
  2. [Selling] insane WOTLK 3.3.5a account
    By tom_tom in forum WoW-EU Account Buy Sell Trade
    Replies: 0
    Last Post: 10-21-2014, 10:06 PM
  3. [Trading] insane WOTLK account for 1.12 vanilla account
    By tom_tom in forum WoW-EU Account Buy Sell Trade
    Replies: 0
    Last Post: 10-21-2014, 09:09 PM
  4. MaNGOS WOTLK 8770 Source
    By Shao111 in forum WoW EMU Questions & Requests
    Replies: 5
    Last Post: 08-13-2008, 05:31 AM
  5. [Question] How to compile WarpNPC source code?
    By Shaak in forum World of Warcraft Emulator Servers
    Replies: 8
    Last Post: 05-14-2008, 02:40 PM
All times are GMT -5. The time now is 12:57 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search