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:
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 .
Tìm và nhấp vào ô Dev Modules .
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.
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:
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 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.
Sao chép mã sau vào một Script bên trong ServerScriptService .
Tập lệnhlocal 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") dolocal relativePosition = area.CFrame:PointToObjectSpace(teleportationPoint.Position)local size = area.Sizelocal inXBounds = relativePosition.X < size.X / 2 and relativePosition.X > -size.X / 2local inZBounds = relativePosition.Z < size.Z / 2 and relativePosition.Z > -size.Z / 2if inXBounds and inZBounds thenreturn false -- Điểm đến xuất hiện trong khu vực bị hạn chế; hủy dịch chuyểnendendreturn 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ểnendSpawnWithFriends.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ính | Mô tả | Mặc định |
---|---|---|
teleportToFriendOnRespawn | Nế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 |
teleportDistance | Cách xa người chơi nên sinh ra từ nhau, đo bằng đinh tán. | 5 |
maxCharacterVelocity | Cá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 |
bypassFriendshipCheck | Nế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 |
showLogs | Có 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ả |
---|---|
playerToTeleport | Tham chiếu đến Player đang được dịch chuyển. |
destinationPlayer | Tham chiếu đến mục tiêu Player mà playerToTeleport đang bị dịch chuyển đến. |
teleportationPoint | CFrame 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)