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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
GetTriggeringTrigger() сохраняет триггер, что был вызван событием (по идее). В чём проблема проверить?
13
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
30
И почему все пытаются всё обернуть в обёрнутую обёрткой обёртку?
13
NazarPunk, потому что так реализация систем выглядит проще, соответственно проще потом доработать. Особенно, когда количество ненативных функций для какого-то типа данных начинает переваливать за три десятка.
32
Экзекут наследует все параметры потока, из которого был запущен, если это был триггер то он наследует все GetTrigger.... значения, аналогично с таймером. То же самое TriggerEvaluate.
Принятый ответ
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.