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:
En la pestaña Ver, abre la Caja de herramientas y selecciona la pestaña Mercado.
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.
Busca y haz clic en el mosaico MÓDULOS DE DESARROLLO.
Busca el módulo Regenerarse con amigos y haz clic en él, o arrástralo y suéltalo en la vista 3D.
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:
- Rellena el área restringida con bloques Anchored invisibles. Asegúrate de que CanCollide, CanTouch, y CanQuery estén desactivados para todos los bloques.
Mediante el Editor de etiquetas, accesible desde la pestaña Ver, aplica la etiqueta RestrictedSpawnArea a cada bloque para que CollectionService las detecte.
Pega 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)-- Iterate through all tagged partsfor _, area in ipairs(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 -- Spawn destination is within restricted area; abort teleportationendendreturn true -- Spawn destination doesn't overlap any restricted area; proceed with teleportationendSpawnWithFriends.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.
Clave | Descripción | Predeterminado |
---|---|---|
teleportToFriendOnRespawn | Si se establece en false, la teletransportación a un amigo solo se realizará manualmente a través de teleportToRandomFriend. | true |
teleportDistance | A qué distancia los jugadores deben regenerarse los unos de los otros, medido en studs. | 5 |
maxCharacterVelocity | Los 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 |
bypassFriendshipCheck | Si se establece en "true", todos los jugadores serán candidatos para la teletransportación, no solo los amigos. | false |
showLogs | Si 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ámetro | Descripción |
---|---|
playerToTeleport | Referencia al Player que se está teletransportando. |
destinationPlayer | Referencia al Player de destino al que playerToTeleport se está teletransportando. |
teleportationPoint | CFrame 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)