-3

我正在尝试为 WoW 编写一个非常简单的插件。我需要知道是否有可能将一个函数延迟 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

但它不起作用。它将发送第一条聊天消息,然后无法获得第二条。

4

1 回答 1

4

这不能按照您的看法来完成。

GetGameTime()仅供参考。除了斜杠命令之外,您根本没有在代码中挂钩任何事件。要始终被游戏轮询,您必须实现某种不可见的窗口并挂钩 Paint 事件,并记录每次时间,直到您达到您的条件。或者,更好的是,找到为您完成工作的第 3 方计时器库。(例如,试试这个。)或者更好的是,使用Addon Kit提取标准 WoW 界面代码并检查内置闹钟和秒表功能的代码。

然而,我怀疑即使你让这个工作,你会因为你不断地以一致的速度向聊天频道发送垃圾邮件而引起玩家或 GM 的愤怒。

于 2011-02-28T20:21:48.223 回答