Настройка


После установки и настройки локализации (и, в случае необходимости, профилей) обратимся к прочим настройкам скрипта. Большинство из них понятны сразу. Для начала опишу все настройки массива MySettings основного скрипта:

При загрузке плагинов их конфигурационные переменные из файла Config.lua также добавляются в общую конфигурационную таблицу Бота. После первого запуска создаётся файл конфигурации Config.cfg, из которого потом загружаются все настройки конфигурационной таблицы MySettings.

Константы, которые настраиваются в самом скрипте:

Если константам isSendBotMenu и(или) isSendHubMenu присвоено значение 0, то соответствующее меню будет отсылаться лишь по запросу, по команде !getbotmenu или !gethubmenu. Если присвоено значение -1, то меню не будет отправляться вообще.
В файлах API в папке Бота с названием <название_локализации>.lua есть константа UseLocalCodePages. Если этой константе присвоено значение 1, то для преобразования кодировок будет применяться локальная (собственная) таблица кодировок (CodePages). На Verlihub (под UNIX) можно применять значение 0. Тогда будет использована утилита консоли iconv.В файле verlihub.lua для локализации verlihub также есть константа UseLuaSocket, в которой задаётся режим использования LuaSocket (1-да, 0-нет).

Остальные переменные и константы являются служебными и модификации не подлежат. Переменные, хранящиеся в массиве MySettings загружаются при запуске скрипта из файла Config.cfg. Сюда же записываются переменные активных плагинов. Если этот файл не найден, используются настройки по умолчанию, а файл Config.cfg сохраняется в папку бота. Для этих настроек есть соответствующие команды и пункты меню.

Обратим внимание на файлы, в которых хранится меню: это файлы BotMenu.lua, HubMenu.lua, Menu.lua (в папке плагина соответствующей локализации) (меню Бота, произвольное меню Хаба и меню плагина соответственно). Меню Бота и плагинов менять не рекомендуется (если не знаете, что делаете). В этих меню содержатся команды, которые касаются исключительно бота Экзекутор. А вот в Меню Хаба могут содержаться любые другие команды по желанию администратора. В установочном дистрибутиве присутствуют четыре варианта меню хаба для четырёх типов локализации. Просто переименуйте нужный в HubMenu.lua. При первом запуске, если меню Хаба ещё не переименовано, бот сам попытается найти и переименовать соответствующее заданной локализации меню. В техническом смысле между файлами меню Бота и Хаба нет никаких различий. В файле меню одновременно с самим меню содержится справочная информация о команде, а также разрешения по классам пользователей и локализациям. Таким образом, этот файл является одновременно и содержимым меню, справкой и разрешениями по классам для команд. Справка по командам формируется автоматически на основании содержимого этих файлов и выводится в личном сообщении (если написать в приват Экзекутору или воспользоваться соответствующей строкой меню). Причём эта справка учитывает класс пользователя.

Как уже отмечалось, в папке welcome под именем <имя_локализации>.lua хранятся файлы-скрипты информационного приветствия, которое показывается при входе на хаб. Для каждого класса может быть индивидуальное приветствие типа <имя_локализации>_<класс>.lua. В папке txt хранятся текстовые файлы с именем, которое вы хотите использовать как команды. Содержимое отправляется пользователю, когда он введёт команду с именем содержащегося в этой папке текстового файла (расширение .txt не учитывается, но файл должен его содержать).

Расскажу как устроены файлы меню. В таблице BotMenu, HubMenu или Menu (у плагинов) содержатся элементы - таблицы, ключом которых служит название команды. Пример:

Menu = {
["testcommand"]={
["PROFILES"]={
["verlihub"]={
[3]=1,
[4]=1,
[5]=1,
[6]=1,
[7]=1,
[8]=1,
[9]=1,
[10]=1,
},
["ptokax04"]={
[0]=1,
[1]=1,
[2]=1,
[3]=1,
},
["rushub"]={
[0]=1,
[1]=1,
[2]=1,
[3]=1,
},
["eximius"]={
[0]=1,
[1]=1,
[2]=1,
[3]=1,
},
},
["HELP"]=" - ТЕСТОВАЯ КОМАНДА",
["COMMANDS"]={
"{menuname}ТЕСТОВОЕ МЕНЮ\\Тестовая команда$<%[mynick]> {prefix}testcommand",
},
},
}

Как видите, внутри таблицы команды ["testcommand"] содержатся три таблицы: профилей (["PROFILES"]), команд (["COMMANDS"]) и строка справки по команде (["HELP"]). Строка справки - это строка, которая выводится как подсказка по команде в приват от Экзекутора, когда выводится листинг доступных команд. В таблице ["COMMANDS"] содержится перечень строк меню, которых может быть сколько угодно, через запятую, в виде строковых значений. Строки меню являются элементами таблицы команд. При этом обратите внимание на флаги {menuname} и {prefix}, которые заменяются на название главного пункта меню из настроек скрипта и соответствующий профилю пользователя префикс команд. Для языковой локализации используются флаги {gl:тип_индекс}, где тип - указание на файл языковой локализации, например, Bot (для указания файла языковой локализации бота), Hub или название плагина; индекс - индекс элемента в указанном файле языковой локализации.

Внутри таблицы профилей ["PROFILES"] содержатся перечень таблиц с названием локализаций, в которых будет задействована данная команда. Внутри таблицы с названием локализации идёт перечень профилей, разрешённых для этой команды. Если в перечне профилей нет профиля пользователя, использующего команду, Экзекутор ответит, что команда не разрешена для его профиля. Если для команды не задан блок разрешений или не присутствует текущая локализация, то разрешения для команды не проверяются. Если профиль присутствует в списке, но ему присвоено значение 0, то пользователю не будет отправлено меню этой команды.

Также в файлах Vars.lua плагинов также обычно содержатся различные константы с настройками.


<<< назад | печать | К началу...
PhazaSoft© Экзекутор©
Hosted by uCoz