1

我在为魔兽世界编写一个简单的界面插件时遇到了一些问题。我正在尝试实现以下目标:如果我的一个法术没有冷却时间,我想显示一个按钮。如果我点击按钮,那么法术应该施放并且按钮应该在冷却时间内隐藏。

演员工作正常,但我无法隐藏按钮。单击后,我总是在聊天中收到错误消息。这是我的代码:

测试插件.toc

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

测试插件.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
4

1 回答 1

2

看起来您遇到了标准的污点错误。在此处阅读有关它的更多信息:安全执行和污染

当你的角色在战斗中时,你不能显示或隐藏按钮(或任何“安全”框架)。

于 2014-10-28T17:52:29.870 回答