2011-02-28 133 views
-2

我试图写一个魔兽世界极其简单的附加组件。我需要知道是否有可能将功能延迟30秒或一分钟,然后调用不同的功能。Lua的计时器延迟

我试着做下面的一个黑客的工作:

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

询问如何在一场比赛中的垃圾邮件是低.. – 2011-03-02 11:39:53

+0

对不起,问,原​​来我可以用一个简单的宏做到的程度。 – 2011-03-07 18:00:16

回答

4

这不能做你看它的方式。

GetGameTime()只仅仅是提供信息。除了斜线命令外,您没有在代码中挂钩任何事件。 要通过游戏中你将不得不实行某种看不见的窗口和挂钩Paint事件,并记录每次的时间持续调查,你会达到你的状态,直到。或者,更好的办法是找到一个第三方计时器库,为您完成工作。 (例如,试试this one。)或者更好的是,使用Addon Kit提取标准的WoW接口代码,并检查内置闹钟和秒表功能的代码。

不过,我怀疑即使你得到了这个工作,你要么在一个步伐一致获得的球员或球队经理关于聊天频道的你不断滥发的愤怒。