Menu
CoddyTech

Điểm lưu

Thuộc phần Lập trình game Roblox trong hành trình Lua của Coddy. Bài học 23 trên 25.

Khi một người chơi bị đánh bại, Roblox chờ 5 giây (Players.RespawnTime) rồi cho họ một nhân vật mới tại một SpawnLocation. Nếu địa điểm có nhiều SpawnLocation, Roblox chọn ngẫu nhiên một vị trí, vì vậy checkpoint có thể vô tình trở thành điểm bắt đầu.

Mỗi người chơi có một thuộc tính RespawnLocation. Hãy đặt thuộc tính này thành một SpawnLocation để người chơi đó luôn hồi sinh tại đó. Obby dùng thuộc tính này hai lần: khi người chơi tham gia, thuộc tính trỏ đến điểm bắt đầu; khi họ đến checkpoint, thuộc tính chuyển sang checkpoint đó.

local Players = game:GetService("Players")
local camp = workspace.Camp
camp.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	if player then
		player.RespawnLocation = camp
	end
end)

RespawnLocation thuộc về từng người chơi, vì vậy một người chơi đến khu trại sẽ không làm thay đổi vị trí hồi sinh của bất kỳ ai khác.

challenge icon

Thử thách

Trung bình

Lưu tiến trình của mỗi người chơi tại điểm kiểm tra màu xanh lam phát sáng.

  1. Trong PlayerAdded, đặt RespawnLocation của người chơi thành workspace.Start.
  2. Khi người chơi chạm vào điểm kiểm tra, đặt RespawnLocation của họ thành checkpoint.
  3. Sau đó đổi điểm kiểm tra thành màu xanh lá: Color3.fromRGB(0, 255, 0).

Nhấn Chơi, bước lên điểm kiểm tra, rồi đi vào dung nham ở cuối đường: bạn sẽ quay lại điểm kiểm tra. Sau đó nhấn Kiểm tra.

Tự làm thử

local Players = game:GetService("Players")
local checkpoint = script.Parent

Players.PlayerAdded:Connect(function(player)
	-- Cho mọi người chơi bắt đầu tại workspace.Start
end)

checkpoint.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	if player then
		-- Từ giờ, cho người chơi này hồi sinh tại đây

		-- Đổi checkpoint sang màu xanh lá
	end
end)

Tất cả bài học trong Lập trình game Roblox

Tự luyện tập: Trình biên dịch Lua online