--- title: RegisterEvent summary: Регистрация Lua-обработчика; форма callback и защита от старого контекста. section: reference kind: api status: reference tags: ["RegisterEvent","lua","events","callback","API"] sources: ["https://wiki.egosoft.com/X4%20Foundations%20Wiki/Modding%20Support/"] --- ## Возвращаемое значение | Тип | Значение | | --- | --- | | [`unknown`](wiki:type-results) | Результат регистрации не установлен. Аргументы callback относятся к конкретному событию, а не к самому RegisterEvent. | [Типы и методы](wiki:types) ## Используемая форма **Слой:** Lua UI игры. ```lua RegisterEvent(name, callback) ``` | Параметр | Роль | | --- | --- | | `name` | Имя принимаемого события | | `callback` | Функция обработки аргументов события | ## Пример ответа из MD ```lua RegisterEvent("Wiki.Pong", function(_, payload) if payload ~= "pong" then return end -- Ответ распознан. При необходимости обновите своё состояние. end) ``` **Что произойдёт:** Установится callback для Wiki.Pong. При payload = "pong" он дойдёт до комментария; иных действий и вывода этот пример не содержит. Здесь первый аргумент намеренно не используется; полезная нагрузка приходит вторым аргументом в показанном пути `raise_lua_event`. Не переносите эту форму на все внутренние события игры без проверки их контракта. ## Жизненный цикл Не регистрируйте новый обработчик на каждом кадре. При смене Lua-адаптера старые callbacks могут нуждаться в проверке актуальности. Проверка актуальности вашего экземпляра и освобождение окна должны соответствовать жизненному циклу UI. См. [Lua UI](wiki:lua-ui).