Công cụ thành viên

Công cụ trang web


developer_center:developer_editor:script:teleportallplayer

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.


developer_center/developer_editor/script/teleportallplayer.txt · Sửa đổi lần cuối: 2025/05/10 15:33 bởi leo