Jump to content

Recommended Posts

[Программа] Программа для редактирования GM-команд (pkodev.tool.editgmcmd)

 

0.png

 

Данный инструментарий предназначен для редактирования (переименовывания) GM-команд в GameServer.exe (команды &) и GroupServer.exe ( команды @@). Отличительной особенностью программы является то, что она позволяет задавать новые имена для GM-команд как короче, так и длиннее оригинальных имен. Например, команду &updateall можно заменить на &upd, а команду &move - на &letsmove.

 

 

Использование

 

Программа представляет собой консольное приложение и, соответственно, работа с ней происходит с помощью командной строки в следующем виде:

pkodev.tool.editgmcmd <команда> [параметры команды]

 

Сначала указывается путь до исполняемого .exe файла программы, далее выбирается команда, а после задаются её параметры.

 

Для возможности работы с конкретным целевым файлом GameServer.exe или GroupServer.exe применяется файл базы данных GM-команд в формате .json.

 

В данном файле указываются:

1) Название целевого .exe файла;

2) Метка времени его сборки (linker timestamp);

3) Символ GM-команды (например, '&' или '@@');

4) Список строк с именами GM-команд и их адреса в целевом .exe файле.

 

С примером .json файла базы данных GM-команд можно ознакомиться по ссылке.

 

В данный момент инструментарий поддерживает (7) команд, которые будут рассмотрены далее.

 

 

1. Команда 'name'

 

Отобразить текущее название GM-команды в целевом .exe файле.

 

Параметры:

--in "Путь до целевого .exe файла"
--db "Путь до .json файла с базой данных GM-команд" (необязателен*)
--old "Оригинальное название GM-команды"

 

Например, команда &updateall была переименована в команду &updateall1024, тогда вызов:

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

Вернет следующий результат:

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

 

 

2. Команда 'rename'

 

Изменить название GM-команды в целевом .exe файле.

 

Параметры:

--in "Путь до целевого .exe файла"
--db "Путь до .json файла с базой данных GM-команд" (необязателен*)
--bp "Режим резервного копирования" (необязателен**)
--old "Оригинальное название GM-команды"
--new "Новое название GM-команды"

 

Пример:

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

 

В результате GM-команда &move будет заменена на GM-команду &letstmove.

 

 

3. Команда 'reset'

 

Сбросить все измененные названия GM-команд в целевом .exe файле на оригинальные.

 

Параметры:

--in "Путь до целевого .exe файла"
--db "Путь до .json файла с базой данных GM-команд" (необязателен*)
--bp "Режим резервного копирования" (необязателен**)

 

Пример:

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

 

Внимание! В результате все ранее измененные GM-команды в целевом .exe файле приобретут старые (оригинальные) названия.

 

 

4. Команда 'enum'

 

Вывести список всех GM-команд в целевом .exe файле в виде таблицы в консоль.

 

Параметры:

--in "Путь до целевого .exe файла"
--db "Путь до .json файла с базой данных GM-команд" (необязателен*)

 

Пример:

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

 

Примерный результат вывода см. в изображении в шапке темы.

 

 

5. Команда 'supported'

 

Вывести список поддерживаемых целевых .exe файлов в виде таблицы в консоль.

 

Параметры:

--db "Путь до .json файла с базой данных GM-команд" (необязателен*)

 

Пример:

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

 

По итогам выполнения команды в консоль будет выведен список поддерживаемых .exe файлов, например:

+------+------------------------------------------------+-----------------+------------------+
|    # |                           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. Команда 'check'

 

Проверить, поддерживается ли целевой .exe файл программой.

 

Параметры:

--in "Путь до целевого .exe файла"
--db "Путь до .json файла с базой данных GM-команд" (необязателен*)

 

Пример:

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

 

Результат:

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

 

 

7. Команда 'help'

 

Получить помощь по программе.

 

Параметры:

Отсутствуют

 

Пример:

pkodev.tool.editgmcmd.x64.Release help

 

Результат:

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'

 

Данный параметр отвечает за путь до .json файла базы данных GM-команд, является необязательным и может отсутствовать. Если параметр '--db' не указан, то программа автоматически ищет этот файл в той же директории, в которой находится, и с таким же названием, что и её .exe файл, но с расширением .json. Например, если .exe файл программы находится по пути: "D:\tools\pkodev.tool.editgmcmd.x64.Release.exe", то программа будет пытаться загрузить базу данных GM-команд из файла: "D:\tools\pkodev.tool.editgmcmd.x64.Release.json".

 

 

** Параметр '--bp'

 

Некоторые команды вносят изменения в целевой .exe файл. С целью предотвращения порчи данных, программа может сделать резервную копию целевого .exe файла. Данный параметр необязателен и при его отсутствии принимается значение по умолчанию.

 

Параметр '--bp' принимает только следующие значения:

1) --bp "name" (значение по умолчанию) - файл резервной копии будет иметь такое же название, что и целевой .exe файл, но с расширением .backup;

2) --bp "time" - файл резервной копии будет иметь такое же название, что и целевой .exe файл, но с расширением .backup, плюс в начало названия добавляется временная метка на момент создания резервной копии;

3) --bp "off" - не создавать резервную копию целевого .exe файла.

 

 

Скачать

 

1. Исполняемый файл (.exe) программы и файл (.json) с базой данных GM-команд;

2. Репозиторий с исходным кодом программы на языке C++ (Visual Studio 2022 Community).

 

 

Если Вы столкнулись с какой-либо проблемой, багом или у Вас возникли вопросы, то пишите в данной теме.


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.


×
×
  • Create New...