現在、Roblox (Lua を使用) を使用してゲームに取り組んでいます。基本的にいくつかのミニゲームで構成されています。各ラウンドの開始時に、ゲーム内のすべてのプレイヤーがテーブルに配置され、エリアにテレポートされます。そこでコルーチンの出番です。ラウンドが進行中なので、コルーチンを開始します。そのコルーチンは毎秒、プレイヤーの健康状態がゼロ以下かどうかをチェックし、そうであれば currentPlayer テーブルからそれらを削除します。
問題を正しく説明していない場合は申し訳ありませんが、コルーチンは生成されません。これまでコルーチンを使用したことがないため、おそらく間違った方法で生成しようとしています。あなたのほとんどがRobloxに慣れていないことはわかっていますが、Luaの構文は同じです.
ループしているコルーチンを終了する方法の例を教えてください。
currentPlayers = {}
roundTime = 60
local lookForWinners = coroutine.create(function()
while coroutine.running do
wait(1)
for i, v in pairs(currentPlayers) do
if v.Character.Humanoid.Health <= 0 then
table.remove(currentPlayers, v)
end
end
end
end)
while wait() do
repeat display("Two or more players need to be in the game.", 1) until #_G.plrs > 1 --Ignore, just checks if two+ players are in game.
display("Picking a map...", 3) pickMap()
teleport(0, 500, 0)
coroutine.resume(lookForWinners)
wait(roundTime)
print("Round over")
coroutine.yield(lookForWinners)
end