−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ố:
- -1 (mặc định – tất cả người chơi)
- 0 (chỉ người chơi còn sống)
- 1 (chỉ người chơi đã chết)
Kết quả trả về gồm:
- Mã lỗi (ErrorCode)
- Số lượng người chơi
- Danh sách người chơi (mảng)
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.