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")
endKhi đã 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.
Thử thách
Trung bìnhTặ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.
- Bên dưới dòng
player, thêmif player then ... endđể bóng không gây ra lỗi. - Bên trong câu lệnh đó, in tên ra:
print(player.Name). - Sau đó, đặt
player.leaderstats.Coins.Valuethành100.
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
2Vòng lặp và hàm
Hàng cột trụDựng cầu thangDựng tòa thápNhà máy sản xuất đồng xuĐèn nhấp nháyCây cầu biến mất5Trò chơi đầu tiên của bạn
Obby đầu tiên của bạn3Sự kiện và người chơi
Tấm đệm cảm ứngSàn dung nhamLeaderstatsAi đã chạm vào?Thu thập xuXu xuất hiện lạiCửa xuTự luyện tập: Trình biên dịch Lua online