2014-10-25 3 views
1

У меня есть некоторые проблемы с кодированием простого аддона интерфейса для World of Warcraft. Я пытаюсь добиться следующего: я хочу отобразить кнопку, если у одного из моих заклинаний нет кулдауна. Если я нажму кнопку, заклинание должно быть брошено, и кнопка должна скрываться во время перезарядки.WoW Interface Addon - Скрыть и показать кнопку

Отличная работа, но у меня есть проблемы, чтобы скрыть кнопку. Я всегда получаю сообщение об ошибке в чате после нажатия. Вот мой код:

TestAddon.toc

## Interface: 60000 
## Title: TestAddon 
## Notes: Test 
## Version: 1.0 
TestAddon.lua 

TestAddon.lua

btn_schutz = CreateFrame("Button", "MyButton", UIParent, "SecureActionButtonTemplate"); 
btn_schutz:ClearAllPoints(); 
btn_schutz:SetAttribute("type", "spell"); 
btn_schutz:SetAttribute("spell", "Schutz"); -- Schutz is name of spell (German) 
btn_schutz:SetAttribute("unit", "player"); 
btn_schutz:SetPoint("CENTER", 0, 0); 
btn_schutz:SetNormalTexture("Interface\\Icons\\ability_monk_guard"); 
btn_schutz:SetSize(48, 48); 
btn_schutz:SetScript("OnUpdate", onUpdate); 
btn_schutz:Show(); 

function onUpdate() 
    local schutz_id = 115295; 
    if GetSpellCooldown(schutz_id) == 0 then 
     btn_schutz:Show(); -- causes error message 
    else 
     btn_schutz:Hide(); -- causes error message 
    end 
end 
+1

Какая ошибка? –

+0

«Не удалось выполнить действие интерфейса из-за аддона», но я перевел его на английский, так что это не буквально. – Namenlos

ответ

2

Похоже, вы получаете стандартную ошибку зараза. Узнайте больше об этом здесь: Secure Execution and Tainting

Вы не можете показывать или спрятать кнопки (или любой «защищенный» кадр), пока ваш персонаж находится в бою.