在體驗中尋找朋友可能很困難。 SpawnWithFriends 開發模塊 會自動將生成玩家移動到體驗中的其中一位朋友附近。此模組也可以配置為在指定命令下自動傳送玩家。
模組使用
安裝
要在體驗中使用 SpawnWithFriends 模組:
確認 模型排序 已選擇,然後按一下 查看全部 按鈕 for 類別 。
找到並點擊 Dev Modules 磚塊。
找到 與朋友共生 模組並點擊它,或將它拖曳到 3D 檢視窗中。
在 Explorer 窗口中,將整個 SpawnWithFriends 模型移入 ServerScriptService。 執行體驗時,模組將自動分配到各個服務並開始執行。
受限的重生區域
這個模組可能會導致玩家在 VIP 房間、只有訪問權限的空間等限定區域內生成。若要防止玩家傳送到這些區域:
填滿受限區域的 Anchored 個隱形塊。請務必 CanCollide , CanTouch 和 2> Class.BasePart.CanQueue|CanQueue2> 都是 5>無效5> 的
使用每個方磚塊的頁面或 Studio 的 標籤編輯器 ,應用標籤 RestrictedSpawnArea ,以便 RestrictedSpawnArea 偵測到它們。
將以下代碼貼入 Script 內的 ServerScriptService 。
腳本local ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))local function validator(playerToTeleport, destinationPlayer, teleportationPoint)-- 掃描所有標記的零件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 -- 生成目的地位於受限區域內;取消傳送endendreturn true -- 生成目的地不會重疊任何受限區域;請繼續進行傳送endSpawnWithFriends.setTeleportationValidator(validator)
API 參考
功能
設定
在 config 表中,通過以下鍵值/值來偽裝預設設定選項。此功能只能從 Script 中呼叫。
鑰匙 | 說明 | 預設 |
---|---|---|
teleportToFriendOnRespawn | 如果設為 false,則傳送至好友只會手動發生 via teleportToRandomFriend 。 | 真的 |
teleportDistance | 玩家之間的距離,以格數測量。 | 5 |
maxCharacterVelocity | 移動速度比此值快的角色將不會被選為傳送候選人,例如在移動車輛上的人。 | 48 |
bypassFriendshipCheck | 設定為 "真" 時, 所有 玩家都會成為傳送人選,不僅限朋友。 | 否 |
showLogs | 是否要在輸出中顯示或不顯示日誌訊息。 | 否 |
腳本
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))SpawnWithFriends.configure({teleportToFriendOnRespawn = true,teleportDistance = 5,maxCharacterVelocity = 48,bypassFriendshipCheck = false,showLogs = false})
傳送至隨機朋友
手動啟動玩家傳送到體驗中的一位好友。返回一個Boolean,表示是否或否成功傳送;傳送無法成功可能是因為服務器中沒有好友或無法找到無阻礙傳送點。此功能只能從 Script 中呼叫。
設定傳送驗證
讓您可以執行自訂預測量化檢查,通過連接有效的Validation回撥函數。回撥函數接收三個參數:
參數 | 說明 |
---|---|
playerToTeleport | 參考正在傳送的 Player。 |
destinationPlayer | 參考目標 Player 目標,正在傳送至。 |
teleportationPoint | CFrame 其中 playerToTeleport 正在傳送至。 |
此功能和其回調只能在 Script 中使用,回調會返回指定傳輸方式是否進行傳輸。例如,下列的 return 邏輯確保玩家和目標玩家都在同一個團隊。
腳本
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
-- 只有在玩家在同一個團隊伍上時才會傳送
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)