Può essere impegnativo localizzare gli amici in-experience.Il modulo SpawnWithFriends sviluppatore si muove automaticamente per generare giocatori vicino a uno dei loro amici presenti nell'esperienzaQuesto modulo può anche essere configurato per teletrasportare un giocatore su comando invece di automaticamente.
Uso del modulo
Installazione
Per utilizzare il modulo SpawnWithFriends in un'esperienza:
Assicurati che la classificazione Modelli sia selezionata, quindi fai clic sul pulsante Vedi tutti per Categorie .
Individua e fai clic sul riquadro Moduli di sviluppo .
Individua il modulo Spawn With Friends e cliccalo, oppure trascinalo nella vista 3D.
Nella finestra Explorer, sposta l'intero modello SpawnWithFriends nel ServerScriptService .Dopo l'esecuzione dell'esperienza, il modulo si distribuirà a vari servizi e inizierà a funzionare.
Aree di spawn limitate
Questo modulo può causare la comparsa di giocatori in aree limitate come stanze VIP, spazi accessibili solo su invito, ecc.Per impedire ai giocatori di teletrasportarsi in queste aree:
Riempi l'area limitata con blocchi invisibili Anchored .Assicurati che CanCollide , CanTouch e CanQuery siano disabilitati per tutti i blocchi.
Blocca il riempimento di tutta la stanza della prigione per impedire ai giocatori di spawnare all'interno Usando la sezione Tag delle proprietà di ogni blocco o l'editor di tag di Studio, applica il tag RestrictedSpawnArea in modo che CollectionService li rilevi.
Incolla il seguente codice in un Script entro ServerScriptService .
Scritturalocal ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))local function validator(playerToTeleport, destinationPlayer, teleportationPoint)-- Iterare attraverso tutte le parti contrassegnatefor _, 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 limitata; annulla la teleportazioneendendreturn true -- La destinazione di spawn non sovrappone alcuna area limitata; procedi con la teleportazioneendSpawnWithFriends.setTeleportationValidator(validator)
Riferimento API
Functioni
configurare
configurare(config: table )
Sovrascrive le opzioni di configurazione predefinite attraverso le seguenti chiavi/valori nella tabella config.Questa funzione può essere chiamata solo da un Script .
Chiave | Descrizione | Basilare |
---|---|---|
teleportToFriendOnRespawn | Se impostato su false , la teletrasportazione a un amico avverrà solo manualmente tramite teleportToRandomFriend . | vero |
teleportDistance | Quanto lontano i giocatori dovrebbero generarsi l'un l'altro, misurato in studs. | 5 |
maxCharacterVelocity | I personaggi che si muovono più velocemente di questo valore non verranno selezionati come candidati di teletrasporto, ad esempio quelli nei veicoli in movimento. | 48 |
bypassFriendshipCheck | Se impostato su vero, tutti i giocatori saranno candidati per la teleportazione, non solo amici. | fallito |
showLogs | Se mostrare o meno i messaggi di registro nell'Output. | fallito |
Scrittura
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))SpawnWithFriends.configure({teleportToFriendOnRespawn = true,teleportDistance = 5,maxCharacterVelocity = 48,bypassFriendshipCheck = false,showLogs = false})
teletrasporta a un amico casuale
teleportToRandomFriend(playerToTeleport: Player ): boolean
Attiva manualmente la teletrasportazione di un giocatore a uno dei suoi amici nell'esperienza.Restituisce un booleano che indica se la teleportazione sia riuscita o meno; il fallimento della teleportazione può essere causato dall'assenza di amici nel server o dall'incapacità di trovare un punto di teleportazione non ostacolato.Questa funzione può essere chiamata solo da un Script .
setTeleportationValidator
setTeleportationValidator(validator: function )
Consente di eseguire controlli pre-teletrasporto personalizzati inserendo una funzione di richiamo validatore valida. La funzione di richiamo riceve tre parametri:
Parametro | Descrizione |
---|---|
playerToTeleport | Riferimento al Player che viene teletrasportato. |
destinationPlayer | Riferimento al bersaglio Player che playerToTeleport viene teletrasportato verso. |
teleportationPoint | CFrame dove playerToTeleport è in teletrasporto verso. |
Questa funzione e il suo callback possono essere utilizzati solo in un Script e il callback restituisce un booleano che indica se la teletrasmissione deve procedere.Ad esempio, la logica return nel seguente funzione validatore garantisce che il giocatore di spawn e il giocatore di destinazione siano nella stessa team.
Scrittura
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
-- Teletrasporta i giocatori solo se sono nella stessa team
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)