5 Attachment(s)
[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"
Attachment 307
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;
Attachment 308
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);
Attachment 309
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);
tAttachment 310
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.
Attachment 311
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
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