0

申し訳ありませんが、これは自由回答形式の質問と呼ばれるものです。

誰かが !spectate と言うと、その人は観戦モードになり、そこに 30 秒間とどまるコマンドを作成しようとしています。これまでのところ、私は完全に失敗しており、自分が何をしているのか本当にわからないため、誤ったコードは利用できません:(

回答者を支援する可能性のあるいくつかの事項を次に示します。

観戦モードにするには、誰かが !spectate (30 秒の制限なし) と言った後、次のようにします。

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

これが使用されるゲームは Command and Conquer: Renegade です

申し訳ありませんが、それ以上のことはできません。

4

1 に答える 1

1

ただし、これを実行する場合は、RenegadeのLuaAPIに固有のものになります。私はそれを自分で使用したことはありませんが、全能のGoogleは、RenegadesがLuaTTを使用していると考えています。

オブジェクトにアタッチできるスクリプトは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 に答える