和朋友一起生成

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

在體驗中尋找朋友可能很困難。 SpawnWithFriends 開發模塊 會自動將生成玩家移動到體驗中的其中一位朋友附近。此模組也可以配置為在指定命令下自動傳送玩家。

模組使用

安裝

要在體驗中使用 SpawnWithFriends 模組:

  1. 檢視 標籤開啟 工具箱 並選擇 創作者商店 標籤。

    Toolbox toggle button in Studio
  2. 確認 模型排序 已選擇,然後按一下 查看全部 按鈕 for 類別

  3. 找到並點擊 Dev Modules 磚塊。

  4. 找到 與朋友共生 模組並點擊它,或將它拖曳到 3D 檢視窗中。

  5. 在 Explorer 窗口中,將整個 SpawnWithFriends 模型移入 ServerScriptService。 執行體驗時,模組將自動分配到各個服務並開始執行。

受限的重生區域

這個模組可能會導致玩家在 VIP 房間、只有訪問權限的空間等限定區域內生成。若要防止玩家傳送到這些區域:

  1. 填滿受限區域的 Anchored 個隱形塊。請務必 CanCollide , CanTouch 和 2> Class.BasePart.CanQueue|CanQueue2> 都是 5>無效5> 的

    填滿整個監獄房間,防止玩家在裡面生成
  2. 使用每個方磚塊的頁面或 Studio 的 標籤編輯器 ,應用標籤 RestrictedSpawnArea ,以便 RestrictedSpawnArea 偵測到它們。

  3. 將以下代碼貼入 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") 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 -- 生成目的地位於受限區域內;取消傳送
    end
    end
    return true -- 生成目的地不會重疊任何受限區域;請繼續進行傳送
    end
    SpawnWithFriends.setTeleportationValidator(validator)

API 參考

功能

設定

設定(配置: table )

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
})

傳送至隨機朋友

teleportToRandomFriend(playerToTeleport: Player): boolean

手動啟動玩家傳送到體驗中的一位好友。返回一個Boolean,表示是否或否成功傳送;傳送無法成功可能是因為服務器中沒有好友或無法找到無阻礙傳送點。此功能只能從 Script 中呼叫。

設定傳送驗證

setTeleportationValidation(Validation: function )

讓您可以執行自訂預測量化檢查,通過連接有效的Validation回撥函數。回撥函數接收三個參數:

參數說明
playerToTeleport參考正在傳送的 Player
destinationPlayer參考目標 Player 目標,正在傳送至。
teleportationPointCFrame 其中 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)