Тема: Полезные вещи
Readme файл по написанию плагинов от 7-й версии бота (лишнее вырезал).
Combots поддерживает плагины JavaScript.
Файл плагин должен иметь латинское имя и расширение .js
Все плагины хранятся в папке pluginsКак пользоваться плагинами:
При нажатии на галку вызывается главная функция плагина с параметром enabled - true
Если галку снять - вызывается главная функция с параметром enabled - false.
Чтобы перезагрузить плагин необходимо выключить-включить плагин.Помощь при написании плагина:
Главная функция плагина должна иметь вид "function Имя файла плагина без .js (enabled){...}".
Где enabled является состояние галки напротив плагина в списке.
Пример главной функции:
function Test(enabled)
{
if(enabled) alert('Плагин включен!');else alert('Плагин выключен!');
}Необходимым элементом создания плагинов является привязание плагина к обновлению фреймов.
Этим занимается массив PluginsOnLoad.
Например у нас есть фукнция ее нужно привязать к обновлению страниц.
Делается это так PluginsOnLoad["имя плагина без .js что является именем главной функции"] = "Имя функции";
Пример PluginsOnLoad["Test"] = "TestDocumentRefreshHandler";
Чтобы отвязать функцию от обновления надо вызвать PluginsOnLoad["имя"] = "";
Функция-приниматель обновления должна быть без парамметров.
URL обновленной страницы содержится в RageRefreshed
Пример функции-handler:
function TestHandler()
{
var url = PageRefreshed;
if(url.indexOf("dungeon")>0)
{
//мы в подземельи
}
else if(url.indexOf("edit=2")>0)
{
//мы в инвентаре в разделе Магия
}
}Теперь все что понадобится при плагино-строении:
top - объект верхнего уровня, в нем содержатся все фреймы
top.frames["bottom"]- фрейм строки чата (и нижних кнопок)
top.Battle.oBattle - объект-pointer к бою(!)
top.Battle.oBattle.Attack() - нажимает кнопку Вперед! в бою.
top.Chat.Self - объект-pointer к чату
top.Chat.Self.AddMessage("xxx") - добавляет сообщение в чат (! не посылает серверу а добавляет как будто принял)
mylogin - имя текущего персонажа
external.SaveFile("имя файла","текст") - сохраняет в папке plugins Файл с именем "имя файла" и содержанием "текст"
external.LoadFile("имя файла") - загружает и возвращает содержимое файла с именем "имя файла" из папки plugins