void ipc.on([table bots,] string eventName, function eventHandler)
Устанавливает обработчик сообщений для межпроцессного взаимодействия ботов.
Сейчас боты могут взаимодействовать между собой только при условии что они запущены на одном сервере. В будущем планируется добавить возможность общения ботов находящихся на разных серверах.
| Параметр | Описание |
|---|---|
bots |
Идентификатор конкретного бота или таблица определяющая с каких ботов и серверов получать сообщения, если не указан, обработчик срабатывает на сообщения от любых ботов с любых разрешенных серверов. Перечислить список локальных ботов можно следующим образом: {4, 2, 3}.Если требуется указать несколько серверов: {{server = 0, bot = {2, 3}}, {server = 1, bot = {5, 6}}, {server = 2}}.Можно также передать пустую таблицу {}, в таком случае обработчик будет вызван с любых ботов только на локальном сервере. |
eventName |
Название сообщеня. |
eventHandler |
Функция обработчик. |
В функцию обработчик первым параметром будет передана таблица с идентификатором сервера и бота приславшего сообщение, последующие параметры определяются вами.
function ipcHandler(sender [, args...])
-- Обработка сообщения
-- sender.server
-- sender.bot
end
Локальный сервер имеет идентификатор равный 0. Функционал для общения с другими серверами пока не реализован.
Идентификатор бота равный -1, сигнализирует о том, что сообщение получено от менеджера.
-- Обработчик сообщения от всех ботов.
function onBotSpawnedHandler(sender, pos)
print('Bot ' .. sender.bot .. ' spawned at ' .. pos)
end
ipc.on('onBotSpawned', onBotSpawnedHandler)
-- Обработчик сработает только на сообщения от бота с ID 2 на локальном сервере.
ipc.on(2, 'onTestMessage', function(sender, str)
print('Bot 2 sended: ' .. str)
end)