Menu
CoddyTech

Ai đã chạm vào?

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

hit là một bộ phận cơ thể, còn hit.Parent là nhân vật sở hữu bộ phận cơ thể đó. Dịch vụ Players chuyển nhân vật thành người chơi điều khiển nhân vật đó:

local Players = game:GetService("Players")
local player = Players:GetPlayerFromCharacter(hit.Parent)

Khi vật chạm vào không phải là nhân vật (một quả bóng, một viên gạch đang rơi), GetPlayerFromCharacter trả về nil, vì vậy hãy kiểm tra giá trị này trước khi sử dụng:

local player = Players:GetPlayerFromCharacter(hit.Parent)
if player then
	print(player.Name .. " found the secret")
end

Khi đã có người chơi, bạn có thể truy cập mọi thứ bên trong đối tượng đó, chẳng hạn như bảng điểm của họ: player.leaderstats.Coins.Value. Gán giá trị bằng = sẽ thay thế giá trị hiện tại.

challenge icon

Thử thách

Trung bình

Tặng 100 Coins cho người chơi tìm thấy kho báu. Người chơi nào cũng đã có leaderstats với Coins.

  1. Bên dưới dòng player, thêm if player then ... end để bóng không gây ra lỗi.
  2. Bên trong câu lệnh đó, in tên ra: print(player.Name).
  3. Sau đó, đặt player.leaderstats.Coins.Value thành 100.

Nhấn Chơi rồi bước lên kho báu: Output sẽ hiển thị tên bạn và Coins tăng lên 100. Sau đó nhấn Kiểm tra.

Tự làm thử

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

treasure.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	-- Nếu đó là người chơi, in tên của họ và đặt Coins của họ thành 100
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