MMOCoin

Likes Likes:  0
Results 1 to 9 of 9

Hybrid 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

  3. #2
    Senior Sergeant
    MikExV™'s Avatar
    Join Date
    Feb 2010
    Location
    Ohio
    Posts
    117
    Post Thanks / Like
    Rep Power
    17
    Reputation
    35
    Just tested in game
    tut1111..jpg

    Just got my pc back

  4. #3
    Founder
    Apple's Avatar
    Join Date
    Jul 2008
    Location
    HeaveN
    Posts
    15,917
    Post Thanks / Like
    Rep Power
    10
    Reputation
    295
    nice one!





  5. #4
    Senior Sergeant
    MikExV™'s Avatar
    Join Date
    Feb 2010
    Location
    Ohio
    Posts
    117
    Post Thanks / Like
    Rep Power
    17
    Reputation
    35
    Thank you

    Just got my pc back

  6. #5
    Contributor
    Cocain's Avatar
    Join Date
    Mar 2010
    Posts
    208
    Post Thanks / Like
    Rep Power
    17
    Reputation
    92
    Simple, yet affective. Good guide.

  7. #6
    Senior Sergeant
    MikExV™'s Avatar
    Join Date
    Feb 2010
    Location
    Ohio
    Posts
    117
    Post Thanks / Like
    Rep Power
    17
    Reputation
    35
    Thank you both! I added a Script in the Chat.h that makes it so vips can only mod there speed to 14 and 7 or 8 (Wasen't shore witch was normal)

    Just got my pc back

  8. #7
    Banned

    Join Date
    Sep 2009
    Location
    In My Computer
    Posts
    76
    Post Thanks / Like
    Rep Power
    0
    Reputation
    52
    correct me if i'm wrong but shouldnt this be "guild create" ? instead of "guild make"

    Code:
    { "guild make",          'q', &ChatHandler::CreateGuildCommand,      "Create's Seleceted Player a Guild", NULL, 0, 0, 0},

  9. #8
    Senior Sergeant
    MikExV™'s Avatar
    Join Date
    Feb 2010
    Location
    Ohio
    Posts
    117
    Post Thanks / Like
    Rep Power
    17
    Reputation
    35
    Quote Originally Posted by mec View Post
    correct me if i'm wrong but shouldnt this be "guild create" ? instead of "guild make"

    Code:
    { "guild make",          'q', &ChatHandler::CreateGuildCommand,      "Create's Seleceted Player a Guild", NULL, 0, 0, 0},
    Dosent realy matter, it can be eather I could have it set to .make_guild and it would work. or just .make and it would work!

    Just got my pc back

  10. #9
    Banned

    Join Date
    Sep 2009
    Location
    In My Computer
    Posts
    76
    Post Thanks / Like
    Rep Power
    0
    Reputation
    52
    i'm just saying cuz the actual arcemu command is .guild create

    would it work if you put make?

 

 

Posting Permissions

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