我在为魔兽世界编写一个简单的接口插件时遇到了一些问题。我正在努力实现以下目标:如果我的一个法术没有冷却时间,我想显示一个按钮。如果我点击该按钮,那么该法术应该施放,并且该按钮应该在冷却时间内隐藏。
演员阵容很好,但我有隐藏按钮的问题。我总是在点击后在聊天中收到一条错误消息。这是我的代码:
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
看起来您得到了一个标准的污点错误。点击此处阅读更多信息:安全执行和污染
当你的角色在战斗中时,你不能显示或隐藏按钮(或任何"安全"框架)。