Run multiple bots from the same .exe
Информация на этой странице относится только к MSWin32 платформам.
Введение
Если вы запускаете несколько ботов, то было бы неплохо иметь всего одну папку с OpenKore, а не отдельную копию программы для каждого персонажа. Таким образом можно будет уделить больше времени ботоводству, а не заниматься обновлениями и настройкой каждого экземпляра OpenKore.
Для этого придётся запускать OpenKore с аргументами командной строки. Как один из вариантов - можно насоздавать ярлыков на OpenKore, а потом зайти в их свойства и прописать там нужные аргументы, о которых мы поговорим ниже.
Командная строка
Командная строка - это текстовое поле в приведённом ниже снимке. В нём записан путь к исполняемому файлу, после которого можно написать несколько аргументов. Таким образом можно на старте программы передать ей некие данные.
В данном случае OpenKore будет загружать настроечные файлы из указанной папки или файла.
Папки целиком
Давайте рассмотрим аргументы, которые занимаются перенаправлением папок. Все аргументы можно посмотреть запустив OpenKore с параметром --help
.
- --control=папка
путь до новой папки control. Допустим, что настройки лежат в папке D:\Kore\swordsman\control, тогда:
D:\Kore\start.exe --control=swordsman\control
- --tables=папка
путь до новой папки с таблицами. Допустим, что они лежат в папке D:\Kore\swordsman\tables, тогда:
D:\Kore\start.exe --control=swordsman\tables
- --logs=папка
путь до папки с логами. Допустим, что они лежат в папке D:\Kore\swordsman\logs, тогда:
D:\Kore\start.exe --control=swordsman\logs
- --plugins=папка
путь до папки с плагинами. Допустим, что они лежат D:\Kore\swordsman\plugins, тогда:
D:\Kore\start.exe --control=swordsman\plugins
- --fields=папка
путь до папки с локациями. Допустим, что они лежат в папке D:\Kore\swordsman\fields, тогда:
D:\Kore\start.exe --control=swordsman\fields
Отдельные файлы
Кроме того есть аргументы для отдельных файлов:
- --config=path\file
путь до файла config.txt, например D:\Kore\control\config_1.txt:
D:\Kore\start.exe --config=control\config_1.txt
- --mon_control=path\file
путь до файла mon_control.txt, например D:\Kore\control\mon_control_2.txt:
D:\Kore\start.exe --mon_control=control\mon_control_2.txt
- --items_control=path\file
путь до файла items_control.txt, например D:\Kore\control\items_control_0.txt:
D:\Kore\start.exe --items_control=control\items_control_0.txt
- --shop=path\file
путь до файла shop.txt, например D:\Kore\control\shop_merch1.txt:
D:\Kore\start.exe --shop=control\shop_merch1.txt
- --chat-log=path\file
путь до файла chat-log.txt, например D:\Kore\control\chat-log2023.txt:
D:\Kore\start.exe --chat=control\chat-log2023.txt
- --console-log=path\file
путь до файла console-log.txt, например D:\Kore\control\console-log2023.txt:
D:\Kore\start.exe --chat=control\console-log2023.txt
- --storage-log=path\file
путь до файла storage-log.txt, например D:\Kore\control\storage-log2023.txt:
D:\Kore\start.exe --chat=control\storage-log2023.txt
- --sys=path\file
путь до файла sys.txt, например D:\Kore\control\sys2023.txt:
D:\Kore\start.exe --chat=control\sys2023.txt
Выбор интерфейса
Следующий аргумент позволяет выбрать желаемый интерфейс, внешний вид:
- --interface=модуль
где модуль - это название модуля на языке Perl, который отвечает за интерфейс пользователя. Загляните в папку src\Interface, лежащие там подпапки - это и есть модули, название которых нужно указывать в данном аргументе.
Предположим, что вы запускаете бота при помощи файла wxstart.exe, но вам бы хотелось увидеть обычную текстовую консоль. Тогда надо отдать следующую команду:
wxstart.exe --interface=Console
Обратите внимание, что если вы используете интерпретатор языка Perl как скомпилированный exe-файл (например start.exe, wxstart.exe, vxstart.exe и т.п.), то надо сначала убедиться, что данное приложение может отображать выбранный интерфейс. Например wxstart.exe - для Wx, vxstart.exe - для Vx и так далее. Консольный интерфейс "Console" можно вызвать из любого интерпретатора.
Пример
Итак, предположим, что у вас есть три персонажа, которые должны работать из одной единственной копии OpenKore. Путь это будут мечник, лучник и ако. Тогда вам потребуется три ярлыка или cmd-файла со следующими командами:
D:\Kore\start.exe --control=swordsman\control --logs=swordsman\logs D:\Kore\start.exe --control=archer\control --logs=archer\logs D:\Kore\start.exe --control=aco\control --logs=aco\logs
Таким образом у вас одна папка с OpenKore и три папки с конфигами под трёх персонажей. Не смотря на то, что мы выше разобрали множество аргументов командной строки, в реальности достаточно лишь двух: --control
и --logs
.
Данная статья восходит к посту от hakore (нерабочая ссылка на пост: http://bibian.ath.cx/openkore/viewtopic.php?t=10329), который сам основан на посте Joseph.