Il peut être difficile de localiser des amis dans l'expérience.Le module développeur SpawnWithFriends déplace automatiquement la génération de joueurs près d'un de leurs amis présents dans l'expérience.Ce module peut également être configuré pour téléporter un joueur à la commande au lieu de le faire automatiquement.
Utilisation du module
Étabissement
Pour utiliser le module SpawnWithFriends dans une expérience :
Assurez-vous que le tri des modèles est sélectionné, puis cliquez sur le bouton Voir tout pour les catégories .
Localisez et cliquez sur la case modules de développement .
Localisez le module Spawn With Friends et cliquez dessus, ou glissez-déposez-le dans la voir3D.
Dans la fenêtre Explorateur, déplacez l'ensemble du modèle SpawnWithFriends dans ServerScriptService .Une fois l'expérience exécutée, le module se distribuera à différents services et commencera à fonctionner.
Zones de fraie restreintes
Ce module peut entraîner la génération de joueurs dans des zones restreintes comme des salles VIP, des espaces d'accès uniquement, etc.Pour empêcher les joueurs de se téléporter dans ces zones :
Remplissez la zone restreinte avec des blocs invisibles Anchored .Assurez-vous que CanCollide , CanTouch et CanQuery sont désactivés pour tous les blocs.
Bloquer le remplissage de toute la salle de la prison pour empêcher les joueurs de se générer à l'intérieur En utilisant la section balises des propriétés de chaque bloc ou l'éditeur de balises de Studio, appliquez la balise afin que détecte-les.
Collez le code suivant dans un Script à l'intérieur de ServerScriptService .
Scénariolocal ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))local function validator(playerToTeleport, destinationPlayer, teleportationPoint)-- Itérer à travers toutes les parties marquéesfor _, 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 -- La destination d'apparition se trouve dans une zone restreinte ; annuler la téléportationendendreturn true -- La destination d'apparition ne se chevauche pas sur une zone restreinte ; procédez à la téléportationendSpawnWithFriends.setTeleportationValidator(validator)
Référence API
Fonctions
configurer
configurer(config: table )
Remplacements des options de configuration par défaut via les clés/ valeurs suivantes dans la table config .Cette fonction ne peut être appelée qu'à partir d'un Script .
Clé | Avertissement | Par défaut |
---|---|---|
teleportToFriendOnRespawn | Si elle est définie à false, la téléportation à un ami se fera uniquement manuellement via téléporter à un ami aléatoire. | vrai |
teleportDistance | À quelle distance les joueurs devraient apparaître l'un de l'autre, mesuré en studs. | 5 |
maxCharacterVelocity | Les personnages se déplaçant plus rapidement que cette valeur ne seront pas sélectionnés comme candidats à la téléportation, par exemple ceux se déplaçant dans des véhicules en mouvement. | 48 |
bypassFriendshipCheck | Si la valeur est définie sur vrai, tous les joueurs seront des candidats à la téléportation, pas seulement des amis. | faux |
showLogs | Si oui ou non afficher des messages d'erreur dans la sortie. | faux |
Scénario
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))SpawnWithFriends.configure({teleportToFriendOnRespawn = true,teleportDistance = 5,maxCharacterVelocity = 48,bypassFriendshipCheck = false,showLogs = false})
téléporter à un ami aléatoire
teleportToRandomFriend(playerToTeleport: Player ): boolean
Active manuellement la téléportation d'un joueur vers l'un de ses amis dans l'expérience.Renvoie un booléen indiquant si la téléportation a réussi ou non ; l'échec de la téléportation peut être causé par l'absence d'amis sur le serveur ou l'impossibilité de trouver un point de téléportation non obstrué.Cette fonction ne peut être appelée qu'à partir d'un Script .
définir TeleportationValidator
setTeleportationValidator( validateur : function )
Vous permet d'effectuer des vérifications de pré-téléportation personnalisées en connectant une fonction de rappel de validateur valide. Le rappel reçoit trois paramètres :
Paramètre | Avertissement |
---|---|
playerToTeleport | Référence à la Player qui est téléportée. |
destinationPlayer | Référence à la cible Player à laquelle playerToTeleport est téléporté. |
teleportationPoint | CFrame où playerToTeleport est en train de se téléporter. |
Cette fonction et son rappel ne peuvent être utilisés que dans un Script et le rappel renvoie un booléen indiquant si la téléportation doit se poursuivre.Par exemple, la logique return dans la fonction de validateur suivante garantit que le joueur de génération et le joueur de destination sont dans la même équipe.
Scénario
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
-- Téléporte les joueurs seulement s'ils sont dans la même équipe
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)