Menu
CoddyTech

결승선

Coddy Lua 여정의 Roblox 게임 스크립팅 섹션에 포함된 레슨. 24개 중 23번째.

결승선은 승리를 기록하고 승자를 시작 지점으로 돌려보냅니다. player:LoadCharacterAsync()는 리스폰 타이머를 기다리지 않고 플레이어의 스폰 지점에 새로운 캐릭터를 생성합니다.

여기에는 잠시 시간이 걸립니다. 새 캐릭터가 도착할 때까지 결승선은 이전 캐릭터의 다른 신체 부위에 대해 계속 Touched를 발생시키며, 이 부위들이 각각 승리로 기록됩니다. 디바운스를 사용하면 이를 막을 수 있고, 플레이어마다 하나씩 결승선 처리가 필요하므로 두 플레이어가 동시에 결승선을 통과해도 둘 다 승리로 기록됩니다. 플레이어를 키로 사용해 테이블에 저장하세요:

local busy = {}
if not busy[player] then
	busy[player] = true
	-- 승리 횟수를 기록하고 플레이어를 돌려보내기
	task.wait(1)
	busy[player] = nil
end

busy[player]는 해당 플레이어에 대한 테이블 항목을 읽거나 설정하며, 항목이 없으면 nil입니다. busy[player] = nil은 해당 항목을 제거하므로, 플레이어가 다음에 결승선을 통과할 때 다시 승리로 기록됩니다.

challenge icon

챌린지

중급

금색 패드가 결승점이며, 이 스크립트는 그 안에 있습니다. 모든 플레이어에게는 이미 leaderstats가 있고, Wins는 0으로 설정되어 있으며, 플레이어별 디바운스도 설정되어 있습니다.

  1. 플레이어의 Wins에 1을 더합니다.
  2. player:LoadCharacterAsync()를 사용해 플레이어를 시작 지점으로 돌려보냅니다.
  3. 그런 다음 디바운스를 해제하여 다음 실행이 집계되도록 합니다.

Play를 누르고, 결승점까지 두 번 달려간 다음 Check를 누릅니다.

직접 해보기

local Players = game:GetService("Players")
local finish = script.Parent
local busy = {}

finish.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	if player and not busy[player] then
		busy[player] = true
		-- 1. 플레이어의 Wins에 1을 더합니다
		-- 2. 플레이어를 시작 지점으로 돌려보냅니다
		-- 3. 1초 후 플레이어가 다시 승리할 수 있게 합니다
	end
end)
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Roblox 게임 스크립팅의 모든 레슨

직접 연습해 보세요: 온라인 Lua 컴파일러