Rigenera con gli amici

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:

  1. Dalla scheda Visualizza, aprire il Pannello degli strumenti e selezionare la scheda Marketplace.

    attiva il pulsante degli Strumenti in Studio
  2. Assicurarsi che la selezione dei modelli sia selezionata, quindi fare clic sul pulsante Vedi tutto per le Categorie.

  3. Individuare e fare clic sulla piastrella DEV MODULES.

  4. Individua il modulo Rigenerarsi con gli amici e fai clic su di esso, o trascinalo e rilascialo nella visualizzazione 3D.

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

  1. Riempi l'area limitata con Anchored blocchi invisibili. Assicurati CanCollide, CanTouch, e CanQuerysiano disattivati per tutti i blocchi.
Blocca il riempimento dell'intera stanza di prigione per impedire ai giocatori di riprodursi all'interno
  1. Utilizzando l'Editore etichetta, accessibile dalla scheda Visualizza, applica il tag RestrictedSpawnArea in ogni blocco in modo che CollectionService li rilevi.

  2. Incolla il codice seguente in un all'Scriptinterno di ServerScriptService.

    Script

    local 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 parts
    for _, area in ipairs(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 -- Spawn destination is within restricted area; abort teleportation
    end
    end
    return true -- Spawn destination doesn't overlap any restricted area; proceed with teleportation
    end
    SpawnWithFriends.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.

ChiaveDescrizionePredefinito
questoteleportToFriendOnRespawn</td> <td>Se impostato su false, il teletrasporto vicino a un amico avverrà manualmente tramite [teletrasportaAUnAmicoCasuale](#teleporttorandomfriend).</td> <td>vero`
teleportDistanceA che distanza i giocatori dovrebbero rigenerarsi gli uni dagli altri, misurata in borchie.5
maxCharacterVelocityI personaggi che si muovono più velocemente di questo valore non saranno scelti come candidati al teletrasporto, ad esempio quelli nei veicoli in movimento.48
bypassFriendshipCheckSe impostato su vero, tutti i giocatori saranno candidati al teletrasporto, non solo gli amici.falso
showLogsSe 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:

ParametroDescrizione
playerToTeleportRiferimento al Player che viene teletrasportato.
destinazioneGiocatoreRiferimento all'obiettivo Player verso cui playerToTeleport è stato teletrasportato
teletrasportationPointCFrame 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)