Regeneración con amigos

Localizar amigos en una experiencia puede ser difícil. El módulo de desarrolladores SpawnWithFriends automáticamente mueve a los jugadores en regeneración cerca de uno de sus amigos en regeneración que esté presente en la experiencia. Este módulo también se puede configurar para teletransportar a un jugador bajo comando en lugar de hacerlo automáticamente.

Uso del módulo

Instalación

Sigue estos pasos para usar el módulo SpawnWithFriends en una experiencia:

  1. En la pestaña Ver, abre la Caja de herramientas y selecciona la pestaña Mercado.

    Botón de activación de Caja de herramientas en Studio
  2. Asegúrate de que la clasificación de Modelos esté seleccionada y, a continuación, haz clic en el botón Ver todo para las Categorías.

  3. Busca y haz clic en el mosaico MÓDULOS DE DESARROLLO.

  4. Busca el módulo Regenerarse con amigos y haz clic en él, o arrástralo y suéltalo en la vista 3D.

  5. En la ventana del Explorador, mueve todo el modelo de SpawnWithFriends a ServerScriptService. Al ejecutar la experiencia, el módulo se distribuirá a varios servicios y comenzará a ejecutarse.

Áreas de regeneración restringidas

Este módulo puede dar como resultado que los jugadores se regeneren en áreas restringidas, como salas VIP, espacios de solo acceso, etc. para evitar que los jugadores se teletransporten a estas áreas: para evitar que los jugadores se teletransporten a estas áreas:

  1. Rellena el área restringida con bloques Anchored invisibles. Asegúrate de que CanCollide, CanTouch, y CanQuery estén desactivados para todos los bloques.
Bloque llenando toda la sala de la prisión para evitar que los jugadores se regeneren dentro
  1. Mediante el Editor de etiquetas, accesible desde la pestaña Ver, aplica la etiqueta RestrictedSpawnArea a cada bloque para que CollectionService las detecte.

  2. Pega el siguiente código en un Script dentro de 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)

Referencia API

Funciones

configure

configure(config:table):nil

Reemplaza las opciones de configuración predeterminadas a través de las siguientes claves o valores en la tabla config. A esta función solo se puede acceder desde un Script.

ClaveDescripciónPredeterminado
teleportToFriendOnRespawnSi se establece en false, la teletransportación a un amigo solo se realizará manualmente a través de teleportToRandomFriend.true
teleportDistanceA qué distancia los jugadores deben regenerarse los unos de los otros, medido en studs.5
maxCharacterVelocityLos personajes que se mueven más rápido que este valor no se elegirán como candidatos a la teletransportación, por ejemplo, los que se encuentran en vehículos en movimiento.48
bypassFriendshipCheckSi se establece en "true", todos los jugadores serán candidatos para la teletransportación, no solo los amigos.false
showLogsSi se deben mostrar o no los mensajes de registro en la salida.false
Script

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

teleportToRandomFriend

teleportToRandomFriend(playerToTeleport:Player):boolean

Activa 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; teletransportación fallida puede haber sido causada por la ausencia de amigos en el servidor o la incapacidad para encontrar un punto de teletransportación sin obstrucciones. A esta función solo se puede acceder desde un Script.

setTeleportationValidator

setTeleportationValidator(validator:function):nil

Te permite realizar comprobaciones personalizadas previas a la teletransportación al conectar una función de retrollamada del validador. La retrollamada recibe tres parámetros:

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

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

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)