В настоящее время я работаю над игрой с использованием Roblox (который использует Lua). Это в основном состоит из нескольких мини-игр. В начале каждого раунда все игроки в игре помещаются в стол и телепортируются в область. Именно здесь играет игра coroutine. Когда раунд продолжается, я хочу запустить сопрограмму. Каждую секунду, когда coroutine проверяет, находится ли здоровье игрока ниже нуля и удаляет их из таблицы currentPlayer, если это так.Как закончить цикл обработки в Lua?
Извините, если я неправильно описываю проблему, но сопрограмма не выйдет. Раньше я раньше не использовал сопрограммы, поэтому я, вероятно, пытаюсь уступить это неправильному пути. Я знаю, что большинство из вас не будут знакомы с Roblox, но синтаксис Lua одинаковый.
Может кто-нибудь, пожалуйста, дайте мне пример того, как я закончил бы петлю coroutine?
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
Благодарим за исправление кода, что плохо для того, чтобы не отправлять его правильно. – user3314993