Il peut être difficile de localiser des amis dans une expérience. Le module développeur SpawnWithFriends déplace automatiquement les joueurs qui commencent à jouer à proximité d'un de leurs amis présents dans l'expérience. Ce module peut également être configuré pour téléporter un joueur sur commande au lieu de le faire automatiquement.
Utilisation du module
Installation
Pour utiliser le module Apparaître avec des amis dans une expérience :
Dans l'onglet Voir, ouvrez la Boîte à outils et sélectionnez l'onglet Marketplace.
Assurez-vous que le filtre Modèles est sélectionné, puis cliquez sur le bouton Voir tout pour afficher les catégories.
Localisez et cliquez sur la vignette MODULES DEV.
Localisez le module Apparaître avec des amis et cliquez dessus, ou faites-le glisser dans la vue 3D.
Dans la fenêtre Explorateur, déplacez l'intégralité de la modélisation SpawnWithFriends dans ServerScriptService. Lors de l'exécution de l'expérience, le module se distribuera lui-même vers divers services et commencera à s'exécuter.
Zones d'apparition restreintes
Ce module peut entraîner l'apparition de joueurs dans des zones restreintes telles que les salles VIP, les espaces à accès limité, etc. Pour empêcher les joueurs de se téléporter dans ces zones :
- Remplissez la zone restreinte avec des blocs Anchored invisibles. Assurez-vous que CanCollide, CanTouch et CanQuery sont désactivés pour tous les blocs.
À l'aide de l'Éditeur de tags, accessible à partir de l'onglet Voir, appliquez le tag RestrictedSpawnArea à chaque bloc afin que CollectionService le détecte.
Collez le code suivant dans un Script dans 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)
Référence API
Fonctions
configurer
configure(config:table):nil
Remplace les options de configuration par défaut par le biais des clés/valeurs suivantes dans le tableau config. Cette fonction peut uniquement être appelée à partir d'un Script.
Clé | Description | Par défaut |
---|---|---|
teleportToFriendOnRespawn | Si la valeur est définie sur false, la téléportation vers un ami se fera manuellement via teleportToRandomFriend. | vrai |
teleportDistance | Distance à laquelle les joueurs doivent apparaître les uns par rapport aux autres, mesurée en studs. | 5 |
maxCharacterVelocity | Les personnages se déplaçant à une vitesse supérieure à cette valeur ne seront pas sélectionnés comme candidats à la téléportation, notamment ceux qui se trouvent dans des véhicules en mouvement. | 48 |
바이bypassFriendshipCheck</td> <td>Si elle est définie sur vrai, **tous** les joueurs pourront être téléportés, et pas seulement les amis.</td> <td>Faux` | ||
showLogs | Affichage ou non des messages du journal en sortie. | Faux |
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
Déclenche manuellement la téléportation d'un joueur vers l'un de ses amis dans l'expérience. L'échec de la téléportation peut être dû à l'absence d'amis dans le serveur ou à l'impossibilité de trouver un point de téléportation non obstrué. Cette fonction peut uniquement être appelée à partir d'un Script.
setTeleportationValidator
setTeleportationValidator(validator:fonction):nil
Permet d'effectuer des contrôles personnalisés avant téléportation en connectant une fonction de rappel du validateur. Le rappel reçoit trois paramètres :
Paramètre | Description |
---|---|
playerToTeleport | Référence au Player téléporté. |
destinationPlayer | Référence au Player cible vers lequel le playerToTeleport est téléporté. |
このteleportationPoint</td> <td>Datatype.CFrameoù leplayerToTeleport` se téléporte. |
Cette fonction et son rappel peuvent uniquement être utilisés dans un Script et le rappel renvoie une valeur booléenne indiquant si la téléportation doit avoir lieu. Par exemple, la logique de return de la fonction de validation suivante garantit que le joueur qui apparait et le joueur de destination font partie de la même équipe.
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)