Aparecer con amigos

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Puede ser desafiante localizar amigos en la experiencia.El módulo SpawnWithFriends genera automáticamente jugadores alrededor de uno de sus amigos presentes en la experiencia.Este módulo también se puede configurar para teletransportar a un jugador por comando en lugar de automáticamente.

Uso del módulo

Instalación

Para usar el módulo SpawnWithFriends en una experiencia:

  1. Desde la pestaña Ver, abra la Caja de herramientas y seleccione la pestaña Tienda de creadores .

    Toolbox toggle button in Studio
  2. Asegúrese de que la clasificación de modelos esté seleccionada, luego haga clic en el botón Ver todo para categorías .

  3. Localiza y haz clic en el mosaico Módulos de desarrollo .

  4. Localiza el módulo Aparecer con amigos y haz clic en él, o arrastra y suelta en la vista 3D.

  5. En la ventana Explorador, mueva todo el modelo SpawnWithFriends al servicio ServerScriptService .Al ejecutar la experiencia, el módulo se distribuirá a varios servicios y comenzará a funcionar.

Áreas de aparición restringidas

Este módulo puede resultar en que los jugadores aparezcan en áreas restringidas como habitaciones VIP, espacios de acceso solo, etc.Para evitar que los jugadores se teletransporten a estas áreas:

  1. Llena la zona restringida con bloques invisibles Anchored .Asegúrate de que CanCollide , CanTouch y CanQuery estén deshabilitados para todos los bloques.

    Bloquear el llenado de toda la sala de la prisión para evitar que los jugadores aparezcan dentro
  2. Usando la sección Etiquetas de las propiedades de cada bloqueso el Editor de etiquetas de Studio, aplique la etiqueta RestrictedSpawnArea para que CollectionService las detecte.

  3. Pega el siguiente código en un Script dentro de ServerScriptService .

    Guión

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
    local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
    -- Iterar a través de todas las piezas etiquetadas
    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 -- El destino de generación está dentro de la zona restringida; abortar la teletransportación
    end
    end
    return true -- El destino de generación no se superpone a ninguna área restringida; continúa con la teletransportación
    end
    SpawnWithFriends.setTeleportationValidator(validator)

Referencia de API

Funciones

configurar

configurar(config: table )

Anula las opciones de configuración predeterminadas a través de las siguientes claves/valores en la tabla config.Esta función solo se puede llamar desde un Script .

ClaveDescripciónPor defecto
teleportToFriendOnRespawnSi se establece en false, la teletransportación a un amigo solo sucederá manualmente a través de teleportToRandomFriend.cierto
teleportDistanceHasta qué punto los jugadores deben generarse el uno del otro, medido en studs.5
maxCharacterVelocityLos personajes que se muevan más rápido que este valor no serán elegidos como candidatos a teletransportarse, por ejemplo, aquellos en vehículos en movimiento.48
bypassFriendshipCheckSi se establece en verdad, todos los jugadores serán candidatos para la teletransportación, no solo amigos.falso
showLogsSi se debe o no mostrar mensajes de registro en la Salida.falso
Guión

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
SpawnWithFriends.configure({
teleportToFriendOnRespawn = true,
teleportDistance = 5,
maxCharacterVelocity = 48,
bypassFriendshipCheck = false,
showLogs = false
})

teletransportarse a un amigo aleatorio

teleportToRandomFriend(playerToTeleport: Player ): boolean

Dispara manualmente la teletransportación de un jugador a uno de sus amigos en la experiencia.Devuelve un booleano que indica si la teletransportación tuvo éxito o no; el fracaso de teletransportarse puede deberse a la ausencia de amigos en el servidor o a la imposibilidad de encontrar un punto de teletransporte desobstruido.Esta función solo se puede llamar desde un Script .

establecerTeletransportaciónValidador

setTeleportationValidator(validator: function )

Le permite realizar verificaciones de pre-teletransportación personalizadas al conectar una función de llamada de validador válida. La llamada recibe tres parámetros:

ParámetroDescripción
playerToTeleportReferencia al Player que se está teletransportando.
destinationPlayerReferencia al objetivo Player al que se está teletransportando playerToTeleport.
teleportationPointCFrame donde playerToTeleport se está teletransportando a.

Esta función y su devolución de llamada solo se pueden usar en un Script y la devolución de llamada devuelve un booleano que indica si debe proceder la teletransportación.Por ejemplo, la lógica return de la siguiente función de validador garantiza que el jugador de generación y el jugador de destino estén en el mismo equipo.

Guión

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
-- Teletransporta a los jugadores solo si están en el mismo equipo
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)