我正在为魔兽世界编写一个非常简单的插件。我需要知道是否可以将功能延迟30秒或一分钟,然后调用不同的功能。
我尝试使用以下内容完成黑客工作:
SLASH_PORTS1 = '/ports';
function pretalk()
if currentTime==currentTime+1 then
talk();
else
talkagain();
end
end
function talk()
SendChatMessage("selling PORTS 9g ea. 1g cheaper than the rest! PST." ,"CHANNEL" ,"COMMON" ,"2");
pretalk();
end
function SlashCmdList.PORTS()
currentTime = GetGameTime();
talk();
end
function talkagain()
pretalk();
end
但它不起作用。它将发送第一条聊天消息,然后无法获得第二条聊天消息。
答案 0 :(得分:4)
这不能以你看待它的方式完成。
GetGameTime()
仅供参考。除了斜杠命令之外,您不会在代码中挂钩任何事件。
要始终通过游戏进行轮询,您必须实现某种不可见的窗口并挂钩Paint事件,并记录每次的时间,直到达到您的状态。或者,更好的是,找到一个为您完成工作的第三方计时器库。 (例如,尝试this one。)或者更好的是,使用Addon Kit提取标准的WoW界面代码,并检查内置闹钟和秒表功能的代码。
然而,我怀疑即使你让这个工作起来,你也会对你不断发送的聊天频道垃圾邮件感到愤怒。