void ipc.send([bots,] string eventName, [, args...])
Отправка сообщений для межпроцессного взаимодействия ботов.
Сейчас боты могут взаимодействовать между собой только при условии что они запущены на одном сервере. В будущем планируется добавить возможность общения ботов находящихся на разных серверах.
Параметр | Описание |
---|---|
bots |
Идентификатор конкретного бота или таблица определяющая каким ботам и серверам отправлять сообщения, если не указано, сообщения отправляются всем ботам на локальном сервере. Перечислить список локальных ботов можно следующим образом: {4, 2, 3} , если требуется указать несколько серверов: {{server = 0, bot = {2, 3}}, {server = 1, bot = {5, 6}}, {server = 2}} . Пустая таблица {} для отправки сообщения только ботам на локальном сервере. |
eventName |
Название сообщения. |
args... |
Параметры для отправки. |
Локальный сервер имеет идентификатор 0. Функционал для общения с другими серверами пока не реализован.
Для общения с менеджером используйте идентификатор бота равный -1.
Нельзя передавать значения типа: function
, thread
, userdata
.
Можно передвать значения типа: nil
, boolean
, number
, string
, table
*.
Метатаблицы игнорируются.
Максимальная вложеность таблицы 250.
Ссылки не соблюдаются. Каждая найденная ссылка становится независимым объектом.
Следующая таблица:ft = { 17 }
t = { ft, ft }
t[1] == t[2] -- true
Будет преобразована в:t = { { 17 }, { 17 } }
t[1] == t[2] -- false
-- Отправка сообщения всем ботам на локальном сервере.
ipc.send({}, 'onTestMessage', 'Hello')
-- Или же
ipc.send('onTestMessage', 'Hello')
-- Отправка сообщения на локальном сервере ботам с ID 2 и 3.
ipc.send({2, 3}, 'onTestMessage', 'Hello')
-- Отправка сообщения всем ботам на сервере с ID 2.
ipc.send({{server = 2}}, 'onTestMessage', 'Hello')
-- Отправка сообщения ботам с ID 4, 5 на локальном сервере и ботам с ID 1, 3 на сервер с ID 3.
ipc.send({{server = 0, bot = {4, 5}}, {server = 3, bot = {1, 3}}}, 'onTestMessage', 'Hello')