Spawn với bạn bè

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Có thể thách thức để tìm bạn bè trong trải nghiệm.Tập lệnh SpawnWithFriends mô-đun nhà phát triển tự động di chuyển việc sinh ra người chơi gần một trong những bạn bè hiện diện trong trải nghiệm.Mô-đun này cũng có thể được cấu hình để dịch chuyển một người chơi theo lệnh thay vì tự động.

Sử dụng module

Cài đặt

Để sử dụng mô-đun SpawnWithFriends trong một trải nghiệm:

  1. Từ tab Xem, mở Hộp công cụ và chọn tab Cửa hàng Nhà sáng tạo .

    Toolbox toggle button in Studio
  2. Hãy chắc chắn rằng kiểu sắp xếp Mô hình được chọn, sau đó nhấp vào nút Xem tất cả đối với Danh mục .

  3. Tìm và nhấp vào ô Dev Modules .

  4. Tìm mô-đun Tạo với bạn bè và nhấp vào nó, hoặc kéo và thả nó vào cửa sổ 3D.

  5. Trong cửa sổ Explorer, di chuyển toàn bộ mô hình SpawnWithFriends vào ServerScriptService .Sau khi chạy trải nghiệm, mô-đun sẽ phân phối bản thân cho các dịch vụ khác nhau và bắt đầu chạy.

Khu vực sinh sản bị hạn chế

Mô-đun này có thể dẫn đến người chơi xuất hiện ở các khu vực bị hạn chế như phòng VIP, không gian chỉ truy cập, v.v.Để ngăn chặn người chơi dịch chuyển đến các khu vực này:

  1. Lấp đầy khu vực bị hạn chế với các khối không thể nhìn thấy Anchored .Hãy chắc chắn rằng CanCollide , CanTouch , và CanQuery được vô hiệu hóa đối với tất cả các khối.

    Khối lấp đầy toàn bộ phòng nhà tù để ngăn chặn người chơi sinh sản bên trong
  2. Sử dụng phần Thẻ của từng thuộc tính của mỗi khối, hoặc Studio's Trình Chỉnh Thẻ, áp dụng thẻ RestrictedSpawnArea để CollectionService phát hiện chúng.

  3. Sao chép mã sau vào một Script bên trong ServerScriptService .

    Tập lệnh

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
    local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
    -- Lặp qua tất cả các phần được gắn thẻ
    for _, area in CollectionService:GetTagged("RestrictedSpawnArea") do
    local relativePosition = area.CFrame:PointToObjectSpace(teleportationPoint.Position)
    local size = area.Size
    local inXBounds = relativePosition.X < size.X / 2 and relativePosition.X > -size.X / 2
    local inZBounds = relativePosition.Z < size.Z / 2 and relativePosition.Z > -size.Z / 2
    if inXBounds and inZBounds then
    return false -- Điểm đến xuất hiện trong khu vực bị hạn chế; hủy dịch chuyển
    end
    end
    return true -- Điểm đến xuất hiện không chồng lấp bất kỳ khu vực bị hạn chế nào; tiến hành dịch chuyển
    end
    SpawnWithFriends.setTeleportationValidator(validator)

Tham chiếu API

Chức năng

điều chỉnh

điều chỉnh(config: table )

Thay thế các tùy chọn cấu hình mặc định thông qua các chìa khóa/giá trị sau trong bảng config .Chức năng này chỉ có thể được gọi từ một Script .

Nhân vật chínhMô tảMặc định
teleportToFriendOnRespawnNếu được đặt thành false, dịch chuyển đến một người bạn chỉ xảy ra thủ công qua teleportToRandomFriend.đúng
teleportDistanceCách xa người chơi nên sinh ra từ nhau, đo bằng đinh tán.5
maxCharacterVelocityCác nhân vật di chuyển nhanh hơn giá trị này sẽ không được chọn làm ứng viên dịch chuyển, ví dụ những người trong các phương tiện di chuyển.48
bypassFriendshipCheckNếu được đặt thành true, tất cả người chơi sẽ là ứng cử viên cho việc dịch chuyển, không chỉ bạn bè.giả mạo
showLogsCó nên hiển thị tin nhật ký trong đầu ra hay không.giả mạo
Tập lệnh

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
SpawnWithFriends.configure({
teleportToFriendOnRespawn = true,
teleportDistance = 5,
maxCharacterVelocity = 48,
bypassFriendshipCheck = false,
showLogs = false
})

dịch chuyển đến bạn ngẫu nhiên

teleportToRandomFriend(playerToTeleport: Player ): boolean

Kích hoạt thủ công việc dịch chuyển của một người chơi đến một trong những bạn bè của họ trong trải nghiệm.Trả về một boolean chỉ ra liệu có thành công hay không khi dịch chuyển; thất bại dịch chuyển có thể xảy ra do sự vắng mặt của bạn bè trong máy chủ hoặc không thể tìm thấy điểm dịch chuyển không bị cản trở.Chức năng này chỉ có thể được gọi từ một Script .

thiết lậpTeleportationValidator

setTeleportationValidator( validateur: function )

Cho phép bạn thực hiện các kiểm tra trước khi dịch chuyển tùy chỉnh bằng cách gắn kết một chức năng trả lời xác minh hợp lệ. Chức năng trả lời nhận ba tham số:

Tham sốMô tả
playerToTeleportTham chiếu đến Player đang được dịch chuyển.
destinationPlayerTham chiếu đến mục tiêu PlayerplayerToTeleport đang bị dịch chuyển đến.
teleportationPointCFrame nơi playerToTeleport đang dịch chuyển đến.

Chức năng này và callback của nó chỉ có thể được sử dụng trong một Script và callback trả về một boolean chỉ ra liệu có nên tiến hành dịch chuyển hay không.Ví dụ, logic return trong chức năng xác thực tiếp theo đảm bảo rằng người chơi phát sinh và người chơi đích ở trong cùng một đội.

Tập lệnh

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
-- Dịch chuyển người chơi chỉ nếu họ ở trong cùng một đội
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)