0

抱歉,但这可能是一些人所说的开放式问题。

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

这里有一些事情可以帮助那些回答的人:

要将一个人置于观看模式,在有人说 !spectate (没有 30 秒限制)之后,您可以这样做:

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

将使用的游戏是命令与征服:叛徒

对不起,我不能比这更有帮助,我在这里完全超出了我的深度!

4

1 回答 1

1

但是,您要执行此操作将特定于 Renegade 的 Lua API。我自己从未使用过它,但全能的谷歌认为 Renegades 使用LuaTT,API 文档说:

您只能将 255 个脚本附加到对象。对于计时器,基于 OnThink 和 os.time 制作自己的 api

文档不是特别好,但快速查看此处找到的示例代码表明,这些行中的某些内容会起作用:

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
于 2012-08-02T12:36:25.070 回答