Generar 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 a los amigos en la experiencia. El SpawnWithFriends módulo de desarrollador se mueve automáticamente para que los jugadores que se generan cerca de uno de sus amigos presentes en la experiencia. Este módulo también se puede configurar para teletransportar a un jugador en el comando en lugar de automáticamente.

Uso de módulos

Instalación

Para usar el módulo SpawnWithFriends en una experiencia:

  1. De la pestaña Ver, abra la Caja de herramientas y seleccione la pestaña Tienda del Creador .

    Toolbox toggle button in Studio
  2. Asegúrese de que se seleccione el Modelos clasificación y luego haga clic en el botón Ver Todo para Categorías .

  3. Ubique y haga clic en el mosaico de Modulos de Dev .

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

  5. En la ventana Explorer, mueva el modelo entero de SpawnWithFriends a ServerScriptService . Al ejecutar la experiencia, el módulo se distribuirá a varios servicios y comenzará a funcionar.

Áreas de Aparición Restricidas

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

  1. Llena el área restringida con bloques Anchored invisibles. Asegúrate de CanCollide , CanTouch y 1> Class.BasePart.CanQuery|CanQuery1> bloques desactivados para todos los bloques.

    Bloquea llenar toda la sala de prisión para evitar que los jugadores se generen dentro
  2. Usa la sección Etiquetas de las propiedades de cada bloques, o el Editor de Etiquetas de Studio ', aplica la etiqueta RestrictedSpawnArea para que 1> Class.CollectionService1> la detecte.

  3. Paste 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)
    -- Iterar a través de todas las etiquetadas partes
    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 un área restringida; anular teletransporte
    end
    end
    return true -- El destino de teletransporte no se superpone con ninguna área restringida; proceda 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 llaves/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 se producirá manualmente a través de teleportToRandomFriend .cierto
teleportDistanceCuánto deben alejarse los jugadores uno del otro, medido en studs.5
maxCharacterVelocityLos personajes que se mueven más rápido que este valor no serán elegidos como candidatos de teletransporte, por ejemplo, aquellos en vehículos en movimiento.48
bypassFriendshipCheckSi se establece en verdadero, todos los jugadores todos serán candidatos para la teletransportación, no solo amigos.falso
showLogsSi se muestran o no los mensajes de registro en la Salida.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
})

teleportar a un amigo aleatorio

teleportToRandomFriend(playerToTeleport: Player): boolean

Activa manualmente la teletransportación de un jugador a uno de sus amigos en la experiencia. Muestra un valor deBoolean que indica si la teletransportación tuvo éxito o no; fallo al teletransportarse puede ser causado por la ausencia de amigos en el servidor o la inhabilidad para encontrar un punto de teletransportación sin obstáculos. Esta función solo se puede llamar desde un Script .

EstablecerTeleportationValidation

setTeleportationValidation(Validate: function )

Te permite realizar cheques de teletransporte personalizados al conectar una función de validador. La función de validador recibe tres parámetros:

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

Esta función y su llamada de vuelta solo se pueden usar en un Script y la llamada de vuelta devuelve un valor deBoolean que indica si la teletransportación debería continuar. Por ejemplo, la lógica return en la función de validador asegura que el jugador de destino y el jugador de inicio estén en el mismo equipo.

Script

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