Spawn con gli 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 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:

  1. Dalla scheda Visualizza, 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 tutti per Categorie .

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

  4. Individua il modulo Spawn With Friends e cliccalo, oppure trascinalo nella vista 3D.

  5. 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:

  1. 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
  2. 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.

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

    Scrittura

    local 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 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 limitata; annulla la teleportazione
    end
    end
    return true -- La destinazione di spawn non sovrappone alcuna area limitata; procedi con la teleportazione
    end
    SpawnWithFriends.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 .

ChiaveDescrizioneBasilare
teleportToFriendOnRespawnSe impostato su false , la teletrasportazione a un amico avverrà solo manualmente tramite teleportToRandomFriend .vero
teleportDistanceQuanto lontano i giocatori dovrebbero generarsi l'un l'altro, misurato in studs.5
maxCharacterVelocityI personaggi che si muovono più velocemente di questo valore non verranno selezionati come candidati di teletrasporto, ad esempio quelli nei veicoli in movimento.48
bypassFriendshipCheckSe impostato su vero, tutti i giocatori saranno candidati per la teleportazione, non solo amici.fallito
showLogsSe 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:

ParametroDescrizione
playerToTeleportRiferimento al Player che viene teletrasportato.
destinationPlayerRiferimento al bersaglio Player che playerToTeleport viene teletrasportato verso.
teleportationPointCFrame 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)