Я кое-что меняю в аддоне для World of Warcraft, написанном на Lua. Существует простая логическая переменная, которая определяет, будут ли показаны некоторые «все» кадры или только определенный.
Итак, когда = true, будут отображаться только определенные кадры, когда = false, будут показаны все кадры.
Я хочу сделать модификатор с клавишей Shift, чтобы показывать все кадры при нажатии клавиши Shift и снова скрывать их, когда Shift освобождается.
if IsShiftKeyDown() then
cfg.aura.onlyShowPlayer = false
else
cfg.aura.onlyShowPlayer = true
end
Это мое очень простое решение, которое работает. Проблема здесь в том, что он работает только при запуске скрипта. Вы видите в WoW каждый раз, когда загружается интерфейс, он запускает скрипт, если не указано иное. Это не очень эффективно, потому что я отправил бы своего пользователя на экран загрузки.
OnUpdate должен исправить мою проблему здесь, которая будет запускать этот конкретный код каждый раз, когда кадр будет отображаться, что очень удобно, и это то, чего я хочу достичь.
Так вот что я сделал
local function onUpdate(self,elapsed)
if IsShiftKeyDown() then
cfg.aura.onlyShowPlayer = false
else
cfg.aura.onlyShowPlayer = true
end
end
local shiftdebuffs = CreateFrame("frame")
shiftdebuffs:SetScript("OnUpdate", onUpdate)
Моя проблема сейчас в том, что он не работает. Я новичок в материалах onUpdate и только скопировал его из другого аддона, который я сделал, и он работал нормально. Правильно, он идет прямо к = false, что, я думаю, происходит только потому, что это значение по умолчанию.
Спасибо за помощь