Mục lục

Cách dịch chuyển người chơi đúng cách

Hướng dẫn nhanh
Giả sử trong game của bạn, bạn muốn dịch chuyển TẤT CẢ người chơi bằng script. Nghe có vẻ khó cho người mới, nhưng thực ra rất đơn giản. Chúng ta sẽ dùng vòng lặp số (numeric for) cho việc này.

🧩1. Tạo hàm dịch chuyển

Bắt đầu bằng cách tạo một hàm có nhiệm vụ dịch chuyển tất cả người chơi. Nó sẽ có dạng như sau:

function TeleportAllPlayers()
end

📜2. Lấy danh sách người chơi

Chúng ta thêm vào trong hàm đoạn code sử dụng World:getAllPlayers() – hàm này nhận một tham số:

Kết quả trả về gồm:

Ví dụ:

function TeleportAllPlayers()
	local result, num, playerArray = World:getAllPlayers(-1)
end

🔁3. Thêm vòng lặp

Sau đó, ta thêm vòng lặp for để duyệt qua từng người chơi:

function TeleportAllPlayers()
	local result, num, playerArray = World:getAllPlayers(-1)
 
	for i = 1, #playerArray do
 
	end
end
Dấu # dùng để lấy độ dài của bảng (mảng), giống như .length trong các ngôn ngữ khác.

👤4. Dịch chuyển từng người chơi

Dùng hàm Player:setPosition(objid, x, y, z) để dịch chuyển từng người. Ta cập nhật hàm để nhận thêm 3 tham số vị trí:

function TeleportAllPlayers(x, y, z)
	local result, num, playerArray = World:getAllPlayers(-1)
 
	for i = 1, #playerArray do
		Player:setPosition(playerArray[i], x, y, z)
	end
end
d

Vậy là xong! Giờ bạn có một hàm dịch chuyển tất cả người chơi đến vị trí x, y, z bất kỳ bạn truyền vào.