MMOCoin

Likes Likes:  0
Results 1 to 9 of 9

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Senior Sergeant
    MikExV™'s Avatar
    Join Date
    Feb 2010
    Location
    Ohio
    Posts
    117
    Post Thanks / Like
    Rep Power
    17
    Reputation
    35

    [Core/C++] Adding Custom Commands ArcEmu

    Were Going to start off by opening are place ware are core is located, for instance mine is here "C:\WoWServer\Compile\trunk\src\arcemu-world"
    tut11..jpg
    We Will Need to Chat.cpp, and Chat.h, Make back ups if you think you may screw some thing up, or if you just want to make shore .
    I will be making a VIP command table, if your making diffrent don't do it exactly how I do.
    Now your going to wanna go down a little bit untell you find
    Code:
    ChatCommand * CommandTableStorage::GetSubCommandTable(const char * name)
    {
        if(!stricmp(name, "modify"))
    Go to the bottom and add
    Code:
        else if(!stricmp(name, "vip"))
            return _vipCommandTable;
    tut12..jpg
    Now your going to scroll down tell you find
    Code:
    void CommandTableStorage::Dealloc()
    {
        free( _modifyCommandTable );
        free( _debugCommandTable );
        free( _waypointCommandTable );
    And your also going to Add
    Code:
        free( _vipCommandTable);
    tut13..jpg
    Now your going to add this below or some ware near there
    Code:
        static ChatCommand vipCommandTable[] =
        {
            { "additem",             'q', &ChatHandler::HandleAddInvItemCommand,       "Adds item x count y",                                                                                                                  NULL, 0, 0, 0 },
            { "advanceallskills",    'q', &ChatHandler::HandleAdvanceAllSkillsCommand, "Advances all skills <x> points.",                                                                                   NULL, 0, 0, 0 },
            { "appear",              'q', &ChatHandler::HandleAppearCommand,                        "Teleports to x's position.",                                                                                                              NULL,                     0, 0, 0 },
            { "speed",               'q', &ChatHandler::HandlevipModifySpeedCommand, "Modifies the movement speed of the selected target.",             NULL, 0,                                 0,                    0 },
            { "search",              'q', &ChatHandler::HandleLookupItemCommand,     "Looks up item string x.",  NULL, 0, 0, 0 },
            { "summon",              'q', &ChatHandler::HandleSummonCommand,                        "Summons x to your position.",                                                                                                            NULL,                     0, 0, 0 },
            { "guild make",          'q', &ChatHandler::CreateGuildCommand,      "Create's Seleceted Player a Guild", NULL, 0, 0, 0},
    
            { NULL,                  '0', NULL,                                           "",                                              NULL, 0, 0, 0 }
        };
        dupe_command_table(vipCommandTable, _vipCommandTable);
    ttut14..jpg
    The 'q' is what I will put as the account when I make it vip like .account level (account name) q
    Now Press Ctrl+S or how ever you save and open Chat.h.
    Now Find
    Code:
    class SERVER_DECL CommandTableStorage : public Singleton<CommandTableStorage>
    {
        // List command containers ex. .character is a container of .character additem
        ChatCommand* _modifyCommandTable;
        ChatCommand* _debugCommandTable;
        ChatCommand* _waypointCommandTable;
        ChatCommand* _GMTicketCommandTable;
        ChatCommand* _GuildCommandTable;
    And add
    Code:
        ChatCommand* _vipCommandTable;
    at the bottom again.
    tut15..jpg
    Now find
    Code:
        // Level 1 commands
        bool CmdSetValueField(WorldSession *m_session, uint32 field, uint32 fieldmax, const char *fieldname, const char* args);
    and add
    Code:
        bool HandlevipModifySpeedCommand(const char* args, WorldSession *m_session);
    at the end
    Now your going to go to
    Code:
    C:\WoWServer\Compile\trunk\win
    Thats ware mine is yours is in a diffrent location
    and open the
    Code:
    arcemuVC90 - All Projects
    Now right click on
    Code:
    arcemu - world
    and click build the top one
    This may take a few min's.
    Make shore at the top its on Release, and not Debug
    Code:
    1>------ Build started: Project: collision, Configuration: Release Win32 ------
    1>Linking...
    1>   Creating library .\..\..\bin\Release\collision.lib and object .\..\..\bin\Release\collision.exp
    1>Generating code
    1>Finished generating code
    1>Embedding manifest...
    1>Build log was saved at "file://c:\WoWServer\Compile\trunk\win\VC90\collision___Win32_Release\BuildLog.htm"
    1>collision - 0 error(s), 0 warning(s)
    2>------ Build started: Project: arcemu-world, Configuration: Release Win32 ------
    2>Compiling...
    2>Chat.cpp
    2>Linking...
    2>   Creating library .\..\..\bin\Release\arcemu-world.lib and object .\..\..\bin\Release\arcemu-world.exp
    2>Generating code
    2>Finished generating code
    2>Embedding manifest...
    2>Build log was saved at "file://c:\WoWServer\Compile\trunk\win\VC90\arcemu-world___Win32_Release\BuildLog.htm"
    2>arcemu-world - 0 error(s), 0 warning(s)
    ========== Build: 2 succeeded, 0 failed, 3 up-to-date, 0 skipped ==========
    If I missed any Thing please tell me.
    ~MikExV

    Last edited by MikExV™; 27-03-10 at 12:06 PM. Reason: I spelledb guild, guld hehe



  2. Related Threads - Scroll Down after related threads if you are only interested to view replies for above post/thread

 

 

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •