但是,您要执行此操作将特定于 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