2011-02-28 175 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接口代碼,並檢查內置鬧鐘和秒錶功能的代碼。

不過,我懷疑即使你得到了這個工作,你要麼在一個步伐一致獲得的球員或球隊經理關於聊天頻道的你不斷濫發的憤怒。