Lua Timer(s)命令

时间:2012-08-02 11:27:12

标签: timer lua

很抱歉,但有人可能称之为开放式问题。

我试图发出命令,如果有人说!观看,他们被置于观看模式,并在那里停留30秒。到目前为止,我完全没有成功,因此,我不知道我在做什么,所以没有错误的代码:(

以下是一些可以帮助回答的人:

在有人说“观看”(没有30秒限制)之后,将其中一个放入观看模式:

if Message == "!spectate" then
  InputConsole("spectate %d", pID)
end

这将与命令与征服:Renegade一起使用的游戏

对不起,我不能比这更有帮助,我完全不在这里!

1 个答案:

答案 0 :(得分:1)

然而,你要做的就是针对Renegade的Lua API。我自己从来没有使用它,但是全能的谷歌认为Renegades使用LuaTT,API文档说:

  

您只能将255个脚本附加到对象。对于计时器,根据OnThink和os.time

制作自己的api

文档不是特别好,但是快速查看找到的示例代码here表明这些内容可行:

local timers = {
  { time = 1343910384, cb = function() doSomething() end }
}

function OnThink()  -- this is called every frame
  for i = 1, #timers do
    if os.time() > timers[i].time then 
      timers[i].cb()
      table.remove(timers, i)
    end
  end
end

您发布的代码看起来像这样:

if Message == "!spectate" then
  InputConsole("spectate %d", pID) -- move player to spectators
  table.insert(timers, {
    time = os.time() + 30,                                 -- 30 seconds from now,
    cb   = function() InputConsole("spectate %d", pID) end -- remove player from spectators
  })
end