Può essere difficile localizzare gli amici nell'esperienza. Il modulo di sviluppatore RigenerarsiConGliAmici sposta automaticamente i giocatori in riproduzione vicino a uno dei propri amici presenti nell'esperienza. Questo modulo può anche essere configurato per teletrasportare un giocatore a comando invece che automaticamente.
Utilizzo del modulo
Installazione
Per utilizzare il modulo RigenerarsiConGliAmici in un'esperienza:
Dalla scheda Visualizza, aprire il Pannello degli strumenti e selezionare la scheda Marketplace.
Assicurarsi che la selezione dei modelli sia selezionata, quindi fare clic sul pulsante Vedi tutto per le Categorie.
Individuare e fare clic sulla piastrella DEV MODULES.
Individua il modulo Rigenerarsi con gli amici e fai clic su di esso, o trascinalo e rilascialo nella visualizzazione 3D.
Nella finestra Explorer, spostare l'intero modello RigenerarsiConGliAmici in ServerScriptService. Dopo aver avviato l'esperienza, il modulo si distribuirà a vari servizi e inizierà a funzionare.
Aree di rigenerazione limitate
Questo modulo può causare che i giocatori si riproducano in aree limitate come sale VIP, spazi riservati ecc. Per impedire ai giocatori di teletrasportarsi in queste aree: Per impedire ai giocatori di teletrasportarsi in queste aree:
- Riempi l'area limitata con Anchored blocchi invisibili. Assicurati CanCollide, CanTouch, e CanQuerysiano disattivati per tutti i blocchi.
Utilizzando l'Editore etichetta, accessibile dalla scheda Visualizza, applica il tag RestrictedSpawnArea in ogni blocco in modo che CollectionService li rilevi.
Incolla il codice seguente in un all'Scriptinterno di ServerScriptService.
Scriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))local function validator(playerToTeleport, destinationPlayer, teleportationPoint)-- Iterate through all tagged partsfor _, area in ipairs(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 -- Spawn destination is within restricted area; abort teleportationendendreturn true -- Spawn destination doesn't overlap any restricted area; proceed with teleportationendSpawnWithFriends.setTeleportationValidator(validator)
Riferimento API
Funzioni
Configurare
configure(config:table):nil
Sovrascrive la configurazione predefinita attraverso le seguenti chiavi/valori nella configtabella. Questa funzione può essere chiamata solo da un Script.
Chiave | Descrizione | Predefinito |
---|---|---|
questoteleportToFriendOnRespawn</td> <td>Se impostato su false, il teletrasporto vicino a un amico avverrà manualmente tramite [teletrasportaAUnAmicoCasuale](#teleporttorandomfriend).</td> <td>vero` | ||
teleportDistance | A che distanza i giocatori dovrebbero rigenerarsi gli uni dagli altri, misurata in borchie. | 5 |
maxCharacterVelocity | I personaggi che si muovono più velocemente di questo valore non saranno scelti come candidati al teletrasporto, ad esempio quelli nei veicoli in movimento. | 48 |
bypassFriendshipCheck | Se impostato su vero, tutti i giocatori saranno candidati al teletrasporto, non solo gli amici. | falso |
showLogs | Se 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})
teletrasportaAUnAmicoCasuale
teletrasportaAUnAmicoCasuale(giocatoreACuiTeletrasportarsi:Player):booleano
Attiva manualmente il teletrasporto di un giocatore a uno dei suoi amici nell'esperienza. Restituisce un booleano che indica se il teletrasporto ha avuto successo o meno; il mancato teletrasporto può essere causato dall'assenza di amici nel server o dall'incapacità di trovare un punto di teletrasporto non ostacolato. Questa funzione può essere chiamata solo da un Script.
impostaValidatoreDiTeletrasporto
impostaValidatoreDiTeletrasporto(validatore:funzione):nil
Consente di eseguire controlli di pre-teletrasporto personalizzati collegando una funzione di richiamo di validatore. Il richiamo riceve tre parametri:
Parametro | Descrizione |
---|---|
playerToTeleport | Riferimento al Player che viene teletrasportato. |
destinazioneGiocatore | Riferimento all'obiettivo Player verso cui playerToTeleport è stato teletrasportato |
teletrasportationPoint | CFrame dove playerToTeleport viene teletrasportato. |
Questa funzione e il suo richiamo possono essere utilizzati solo in un Script e il richiamo restituisce un booleano che indica se il teletrasporto dovrebbe andare avanti. Ad esempio, la return logica nella seguente funzione di validatore assicura che il giocatore in riproduzione e il giocatore di destinazione siano nello stesso team.
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
-- Teleports players only if they are on the same team
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)