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:
De la pestaña Ver, abra la Caja de herramientas y seleccione la pestaña Tienda del Creador .
Asegúrese de que se seleccione el Modelos clasificación y luego haga clic en el botón Ver Todo para Categorías .
Ubique y haga clic en el mosaico de Modulos de Dev .
Ubique el módulo Generar con amigos y haga clic en él, o arrástralo y suéltalo en la vista 3D.
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:
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.
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.
Paste el siguiente código en un Script dentro de ServerScriptService .
Scriptlocal 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 partesfor _, area in CollectionService:GetTagged("RestrictedSpawnArea") dolocal relativePosition = area.CFrame:PointToObjectSpace(teleportationPoint.Position)local size = area.Sizelocal inXBounds = relativePosition.X < size.X / 2 and relativePosition.X > -size.X / 2local inZBounds = relativePosition.Z < size.Z / 2 and relativePosition.Z > -size.Z / 2if inXBounds and inZBounds thenreturn false -- El destino de generación está dentro de un área restringida; anular teletransporteendendreturn true -- El destino de teletransporte no se superpone con ninguna área restringida; proceda con la teletransportaciónendSpawnWithFriends.setTeleportationValidator(validator)
Referencia de API
Funciones
configurar
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 .
Clave | Descripción | Por defecto |
---|---|---|
teleportToFriendOnRespawn | Si se establece en false, la teletransportación a un amigo solo se producirá manualmente a través de teleportToRandomFriend . | cierto |
teleportDistance | Cuánto deben alejarse los jugadores uno del otro, medido en studs. | 5 |
maxCharacterVelocity | Los 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 |
bypassFriendshipCheck | Si se establece en verdadero, todos los jugadores todos serán candidatos para la teletransportación, no solo amigos. | falso |
showLogs | Si 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
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
Te permite realizar cheques de teletransporte personalizados al conectar una función de validador. La función de validador recibe tres parámetros:
Parámetro | Descripción |
---|---|
playerToTeleport | Referencia al Player que está siendo teletransportado. |
destinationPlayer | Referencia al objetivo Player que se está teletransportando. |
teleportationPoint | CFrame 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)