Genera con amici

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Può essere impegnativo localizzare gli amici in-experience. Il SpawnWithFriends modulo sviluppatore si muove automaticamente di spawning players vicino a uno dei loro amici presenti nell'esperienza. Questo modulo può anche essere configurato per teletrasportare un giocatore in comando invece di automaticamente.

Uso del modulo

Installazione

Per utilizzare il modulo SpawnWithFriends in un'esperienza:

  1. Dalla Visualizza scheda, apri la Toolbox e seleziona la scheda Creator Store .

    Toolbox toggle button in Studio
  2. Assicurati che la classificazione Modelli sia selezionata, quindi fai clic sul pulsante Vedi tutto per Categorie.

  3. Individua e fai clic sul riquadro Moduli di Piastrella.

  4. Individua il Spawn With Friends modulo e fai clic su di esso, o trascinalo nella vista 3D.

  5. Nella finestra Explorer, sposta l'intero modello SpawnWithFriends in ServerScriptService. Al suo esecuzione, il esperienzasi distribuirà su varie servizi e inizierà ad essere eseguito.

Aree di spawn limitate

Questo modulo può comportare il spawn di giocatori in aree limitate come VIP room, aree di accesso, ecc. Per prevenire i giocatori dal teletrasportarsi in queste aree:

  1. Riempi l'area restrizionata con blocchi invisibili Anchored . Assicurati che CanCollide , CanTouch e 1> Class.BasePart.CanQueue|CanQueue1> siano disabilitati per tutti i bl

    Blocca il riempimento di tutta la stanza della prigione per impedire ai giocatori di spawnare all'interno
  2. Usando la sezione Tag delle proprietà di ogni blocco, o il Tag Editor del Studio, applica il tag RestrictedSpawnArea in modo che Class.CollectionService lo rilevi.

  3. Incolla il seguente codice in un Script entro ServerScriptService .

    Script

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
    local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
    -- itera attraverso tutte le parti contrassegnate
    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 -- La destinazione di spawn è all'interno dell'area di restrizione; annulla la teletrasportazione
    end
    end
    return true -- La destinazione di spawn non si sovrappone a nessuna area restretta; procedi con la teletrasportazione
    end
    SpawnWithFriends.setTeleportationValidator(validator)

Riferimento API

Funzioni

configurare

Configurare(config: Library.table)

Sovrascrivi le opzioni di configurazione predefinite attraverso le seguenti chiavi / valori nella tabella config. Questa funzione può essere chiamata solo da un Script .

ChiaveDescrizionePredefinito
teleportToFriendOnRespawnSe impostato su false , la teletrasportazione a un amico avverrà solo manualmente tramite teleportToRandomFriend .vero
teleportDistanceQuanto lontano i giocatori dovrebbero essere da uno l'altro, misurato in studs.5
maxCharacterVelocityI personaggi in movimento più velocemente di questo valore non saranno selezionati come candidati di teletrasporto, ad esempio quelli nei veicoli in movimento.48
bypassFriendshipCheckSe impostato su true, tutti i giocatori saranno candidati per la teletrasportazione, non solo amici.falso
showLogsIndipendentemente dal fatto di visualizzare o meno i messaggi di registro nell'Output.falso
Script

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

teleportToRandomFriend

teleportToRandomFriend(playerToTeleport: Player): boolean

Attiva manualmente la teletrasportazione di un giocatore a uno dei suoi amici nell'esperienza. Ritorna un booleto che indica se o no la teletrasportazione ha avuto successo; il mancato teletrasporto può essere causato dalla mancanza di amici nel server o dall'incapacità di trovare un punto di teletrasporto non bloccato. Questa funzione può essere chiamata solo da un Script .

setTeleportationValidate

setTeleportationValidate(Validate: function )

Consente di eseguire controlli di pre-teletrasporto personalizzati aggiungendo una funzione di richiamata valida. La funzione di richiamata riceve tre parametri:

ParametroDescrizione
playerToTeleportRiferimento al Player che viene teletrasportato.
destinationPlayerRiferimento al target Player che playerToTeleport sta essere teletrasportato.
teleportationPointCFrame in cui playerToTeleport si teletrasporta.

Questa funzione e il suo callback possono essere utilizzati solo in un Script e il callback restituisce un booleto che indica se la teletrasportazione dovrebbe procedere. Ad esempio, la logica return seguente nella funzione di validazione garantisce che il giocatore di destinazione e il giocatore di origine siano sullo stesso team.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
-- Teletrasporta i giocatori solo se sono nello stesso team
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)