Jump to content
Sign in to follow this  
V3ct0r

Program for editing GM commands (pkodev.tool.editgmcmd)

Recommended Posts

[Tools] Program for editing GM commands

 

0.png

 

This toolkit is intended for editing (renaming) GM commands in GameServer.exe (commands &) and GroupServer.exe (commands @@). A distinctive feature of the program is that it allows you to set new names for GM commands, both shorter and longer than the original names. For example, the &updateall command can be replaced with &upd, and the &move command with &letsmove.

 

 

Usage

 

The program is a console application and, accordingly, work with it occurs using the command line in the following form:

pkodev.tool.editgmcmd <command> [command-specific parameters]

 

First, the path to the executable .exe file of the program is specified, then the command is selected, and then its parameters are set.

 

To be able to work with a specific target GameServer.exe or GroupServer.exe file, a GM command database file in the .json format is used.

 

This file contains:

1) The name of the target .exe file;

2) The timestamp of its assembly (linker timestamp);

3) GM command character (for example, '&' or '@@');

4) List of strings with GM command names and their addresses in the target .exe file.

 

An example .json file with the GM-commands database can be found here.

 

The toolkit currently supports (7) commands, which will be discussed next.

 

 

1. Command 'name'

 

Display the current GM command name in the target .exe file.

 

Parameters:

--in "Path to target .exe file"
--db "Path to .json file with GM commands database" (optional*)
--old "Original GM command name"

 

For example, the &updateall GM command was once renamed to the &updateall1024 GM command, then the command:

pkodev.tool.editgmcmd.x64.Release name --in "GameServer.exe" --old "updateall" --db "pkodev.tool.editgmcmd.json"

Will return the following result:

The GM-command '&updateall' is defined as '&updateall1024'.

 

 

2. Command 'rename'

 

Change the name of the GM command in target .exe file.

 

Parameters:

--in "Path to target .exe file"
--db "Path to .json file with GM commands database" (optional*)
--bp "Backup mode" (optional**)
--old "Original GM command name"
--new "New GM command name"

 

Example:

pkodev.tool.editgmcmd.x64.Release rename --in "GameServer.exe" --old "move" --new "letsmove" --db "pkodev.tool.editgmcmd.json"

 

This will change the GM command &move to &letstmove.

 

 

3. Command 'reset'

 

Reset all modified GM command names in target .exe file to the original ones.

 

Parameters:

--in "Path to target .exe file"
--db "Path to .json file with GM commands database" (optional*)
--bp "Backup mode" (optional**)

 

Example:

pkodev.tool.editgmcmd.x64.Release reset --in "GameServer.exe" --db "pkodev.tool.editgmcmd.json"

 

Attention! As a result, all previously modified GM commands in the target .exe file will be replaced with the old (original) names.

 

 

4. Command 'enum'

 

Output a list of all GM commands in target .exe file as a table to the console.

 

Parameters:

--in "Path to target .exe file"
--db "Path to .json file with GM commands database" (optional*)

 

Example:

pkodev.tool.editgmcmd.x64.Release enum --in "GameServer.exe" --db "pkodev.tool.editgmcmd.json"

 

For an approximate output result, see the image in the topic header.

 

 

5. Command 'supported'

 

Print the list of supported target .exe files as a table to the console.

 

Parameters:

--db "Path to .json file with GM commands database" (optional*)

 

Example:

pkodev.tool.editgmcmd.x64.Release supported --db "pkodev.tool.editgmcmd.json"

 

As a result of the command execution, a list of supported .exe files will be displayed in the console, for example:

+------+------------------------------------------------+-----------------+------------------+
|    # |                           Executable file name |         Version |      GM-commands |
+------+------------------------------------------------+-----------------+------------------+
|    1.|           GameServer.exe 1.36 (GAMESERVER_136) |      1204708785 |               53 |
|    2.|           GameServer.exe 1.38 (GAMESERVER_138) |      1225867911 |               53 |
|    3.|         GroupServer.exe 1.38 (GROUPSERVER_138) |      1224838510 |                8 |
+------+------------------------------------------------+-----------------+------------------+

 

 

6. Command 'check'

 

Check if target .exe file is supported by the program.

 

Parameters:

--in "Path to target .exe file"
--db "Path to .json file with GM commands database" (optional*)

 

Example:

pkodev.tool.editgmcmd.x64.Release check --in "GameServer.exe" --db "pkodev.tool.editgmcmd.json"

 

Result:

GameServer.exe 1.38 (GAMESERVER_138) (Version: 1225867911) is supported!

 

 

7. Command 'help'

 

Get help with the program.

 

Parameters:

No parameters

 

Example:

pkodev.tool.editgmcmd.x64.Release help

 

Result:

Usage: pkodev.tool.editgmcmd.x64.Release <command> [parameters]

There are supported commands:
1) name --in <.exe file> --old <GM-command> {--db <addresses file>}
        Get the original name of a given GM-command.
2) rename --in <.exe file> --old <GM-command> --new <GM-command> {--db <addresses file>} {--bp <backup mode [off|name|time]>}
        Rename a given GM-command.
3) reset --in <.exe file> {--db <addresses file>} {--bp <backup mode [off|name|time]>}
        Reset all GM-command names to the original ones.
4) enum --in <.exe file> {--db <addresses file>}
        Print a list of GM-commands as a table.
5) supported {--db <addresses file>}
        Print a list of supported .exe files as a table.
6) check --in <.exe file> {--db <addresses file>}
        Check if an .exe file is supported by the tool.

Parameters in the curly braces {} are optional.

 

 

* '--db' parameter

 

This parameter is responsible for the path to the .json file of the GM-commands database, is optional and may be absent. If the '--db' parameter is not specified, then the program automatically searches for this file in the same directory it is in and with the same name as its .exe file, but with the .json extension. For example, if the program's .exe file is located along the path: "D:\tools\pkodev.tool.editgmcmd.x64.Release.exe", then the program will try to load the GM command database from the file: "D:\tools\pkodev .tool.editgmcmd.x64.Release.json".

 

 

** '--bp' parameter

 

Some commands make changes to the target .exe file. In order to prevent data corruption, the program can make a backup copy of the target .exe file. This parameter is optional and, if it is not present, the default value is assumed.

 

The '--bp' parameter only accepts the following values:

1) --bp "name" (default value) - the backup file will have the same name as the target .exe file, but with the .backup extension;

2) --bp "time" - the backup file will have the same name as the target .exe file, but with the .backup extension, plus a timestamp at the time the backup was created is added to the beginning of the name;

3) --bp "off" - do not create a backup copy of the target .exe file.

 

 

Downloads

 

1. Actual executable files of the program (.exe) and the GM commands database file (.json).;

2. Repository with the source code of the program in C++ (Visual Studio 2022 Community).

 

 

If you encounter any problem, bug or have any questions, then feel free to write in this thread.

 

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Good, how can I edit the tp commands, eg /home /ca among others to give them new names and create more commands like those, thanks in advance

Share this post


Link to post
Share on other sites
3 minutes ago, MrWick said:

Good, how can I edit the tp commands, eg /home /ca among others to give them new names and create more commands like those, thanks in advance

or have some way to talk to you to inform me more

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...