Può essere difficile localizzare gli amici durante l'esperienza. Il modulo SpawnWithFriends developer module sposta automaticamente i giocatori in fase di spawn vicino a uno dei loro amici presenti nell'esperienza. Questo modulo può anche essere configurato per teletrasportare un giocatore su comando anziché automaticamente.
Utilizzo del Modulo
Installazione
Per utilizzare il modulo SpawnWithFriends in un'esperienza:
Dal menu Finestra di Studio o dalla barra degli strumenti della scheda Home, apri il Toolbox e seleziona la scheda Creator Store.

Assicurati che la selezione Modelli sia attivata, quindi fai clic sul pulsante Vedi Tutto per le Categorie.

Trova e fai clic sulla piastrella Pacchetti.
Trova il modulo Spawn With Friends e fai clic su di esso, oppure trascinalo nella vista 3D.

Nella finestra Explorer, sposta l'intero modello SpawnWithFriends in ReplicatedStorage. Una volta avviata l'esperienza, il modulo inizierà a funzionare.
Aree di Spawn Riservate
Questo modulo potrebbe consentire ai giocatori di spawnare in aree riservate come stanze VIP, spazi con accesso limitato, ecc. Per prevenire il teletrasporto dei giocatori in queste aree:
Riempire l'area riservata con blocchi invisibili Anchored. Assicurati che CanCollide, CanTouch e CanQuery siano disabilitati per tutti i blocchi.

Blocco che riempie l'intera stanza di prigione per impedire ai giocatori di spawnare all'interno Utilizzando la sezione Tag delle proprietà di ciascun blocco, applica il tag RestrictedSpawnArea affinché CollectionService li rilevi.
Incolla il seguente codice in un Script all'interno di ServerScriptService.
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)local function validator(playerToTeleport, destinationPlayer, teleportationPoint)-- Itera attraverso tutti i parti contrassegnatifor _, 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 -- La destinazione di spawn è all'interno dell'area riservata; abortisci il teletrasportoendendreturn true -- La destinazione di spawn non sovrappone alcuna area riservata; procedi con il teletrasportoendSpawnWithFriends.setTeleportationValidator(validator)
Riferimento API
Funzioni
configure
configure(config: table)
Sovrascrive le opzioni di configurazione predefinite tramite le seguenti chiavi/valori nella tabella config. Questa funzione può essere chiamata solo da un Script.
| Chiave | Descrizione | Predefinito |
|---|---|---|
| teleportToFriendOnRespawn | Se impostato su false, il teletrasporto a un amico avverrà solo manualmente tramite teleportToRandomFriend. | true |
| teleportDistance | Quanto lontano i giocatori dovrebbero spawnare l'uno dall'altro, misurato in stud. | 5 |
| maxCharacterVelocity | I personaggi che si muovono più velocemente di questo valore non verranno scelti come candidati per il teletrasporto, ad esempio quelli in veicoli in movimento. | 48 |
| bypassFriendshipCheck | Se impostato su true, tutti i giocatori saranno candidati per il teletrasporto, non solo gli amici. | false |
| showLogs | Se visualizzare o meno messaggi di log nell'output. | false |
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)SpawnWithFriends.configure({teleportToFriendOnRespawn = true,teleportDistance = 5,maxCharacterVelocity = 48,bypassFriendshipCheck = false,showLogs = false})
teleportToRandomFriend
teleportToRandomFriend(playerToTeleport: Player): boolean
Attiva manualmente il teletrasporto di un giocatore a uno dei suoi amici nell'esperienza. Restituisce un booleano che indica se il teletrasporto è riuscito o meno; il fallimento del teletrasporto può essere causato dall'assenza di amici nel server o dall'impossibilità di trovare un punto di teletrasporto non ostruito. Questa funzione può essere chiamata solo da un Script.
setTeleportationValidator
setTeleportationValidator(validator: function)
Ti consente di eseguire controlli personalizzati prima del teletrasporto collegando una funzione di callback di validazione. La callback riceve tre parametri:
| Parametro | Descrizione |
|---|---|
| playerToTeleport | Riferimento al Player che viene teletrasportato. |
| destinationPlayer | Riferimento al Player obiettivo a cui playerToTeleport viene teletrasportato. |
| teleportationPoint | CFrame dove playerToTeleport si sta teletrasportando. |
Questa funzione e la sua callback possono essere utilizzate solo in un Script e la callback restituisce un booleano che indica se il teletrasporto dovrebbe procedere. Ad esempio, la logica return nella seguente funzione di validazione assicura che il giocatore in fase di spawn e il giocatore di destinazione siano nella stessa squadra.
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage.SpawnWithFriends)
-- Teletrasporta i giocatori solo se sono nella stessa squadra
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)