Добавлен
Вопрос просто проверить тестом, но нет возможности его сделать. Можно ли получить текущий триггер с помощью GetTriggeringTrigger() после TriggerExecute()?

Принятый ответ

Экзекут наследует все параметры потока, из которого был запущен, если это был триггер то он наследует все GetTrigger.... значения, аналогично с таймером. То же самое TriggerEvaluate.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
28
5 лет назад
0
GetTriggeringTrigger() сохраняет триггер, что был вызван событием (по идее). В чём проблема проверить?
0
13
5 лет назад
Отредактирован Nelloy
0
PT153, отсутсвие вара под рукой
Пока оставлю так, если доберусь до теста, напишу...
Trigger - обертка над нативным триггером
function runFuncInDebug(func, ...)
    if Settings.debug then 
        local success, result = pcall(func, ...)
        if success then
            return result
        else
            Debug(result) -- print to local player
            return nil
        end
    else
        return func(...)
    end
end

function Trigger:execute()
    local original = _G.GetTriggeringTrigger
    GetTriggeringTrigger = function() return self.__trigger_obj end
    runFuncInDebug(TriggerExecute, self.__trigger_obj)
    GetTriggeringTrigger = original
end
0
29
5 лет назад
0
И почему все пытаются всё обернуть в обёрнутую обёрткой обёртку?
0
13
5 лет назад
Отредактирован Nelloy
0
NazarPunk, потому что так реализация систем выглядит проще, соответственно проще потом доработать. Особенно, когда количество ненативных функций для какого-то типа данных начинает переваливать за три десятка.
1
32
5 лет назад
1
Экзекут наследует все параметры потока, из которого был запущен, если это был триггер то он наследует все GetTrigger.... значения, аналогично с таймером. То же самое TriggerEvaluate.
Принятый ответ
0
13
5 лет назад
0
quq_CCCP, спасибо.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.