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:
Asegúrese de que la clasificación de modelos esté seleccionada, luego haga clic en el botón Ver todo para categorías .
Localiza y haz clic en el mosaico Módulos de desarrollo .
Localiza el módulo Aparecer con amigos y haz clic en él, o arrastra y suelta en la vista 3D.
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:
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 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.
Pega el siguiente código en un Script dentro de ServerScriptService .
Guiónlocal 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 etiquetadasfor _, 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 la zona restringida; abortar la teletransportaciónendendreturn true -- El destino de generación no se superpone a ninguna área restringida; continúa con la teletransportaciónendSpawnWithFriends.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 .
Clave | Descripción | Por defecto |
---|---|---|
teleportToFriendOnRespawn | Si se establece en false, la teletransportación a un amigo solo sucederá manualmente a través de teleportToRandomFriend. | cierto |
teleportDistance | Hasta qué punto los jugadores deben generarse el uno del otro, medido en studs. | 5 |
maxCharacterVelocity | Los 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 |
bypassFriendshipCheck | Si se establece en verdad, todos los jugadores serán candidatos para la teletransportación, no solo amigos. | falso |
showLogs | Si 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ámetro | Descripción |
---|---|
playerToTeleport | Referencia al Player que se está teletransportando. |
destinationPlayer | Referencia al objetivo Player al que se está teletransportando playerToTeleport. |
teleportationPoint | CFrame 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)