Générer avec des amis

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Il peut être difficile de localiser les amis dans l'expérience. Le SpawnWithFriends module de développeur se déplace automatiquement pour générer des joueurs dans l'expérience. Ce module peut également être configuré pour téléporter un joueur sur commande au lieu d'être automatiquement.

Utilisation des modules

Installation

Pour utiliser le module SpawnWithFriends dans une expérience :

  1. À partir de l'Affichage onglet, ouvrez la boîte à outils et sélectionnez l' boutique des créateurs onglet.

    Toolbox toggle button in Studio
  2. Assurez-vous que le tri par Modèles est sélectionné, puis cliquez sur le bouton Voir tout pour Catégories.

  3. Localisez et cliquez sur la case modules de pavé .

  4. Localisez le Spawn With Friends module et cliquez dessus, ou glissez-le dans la voir3D.

  5. Dans la fenêtre Explorer, déplacez le modèle entier SpawnWithFriends dans ServerScriptService . Lors de l'exécution de l'expérience, le module se distribuera à différents services et commencera à s'exécuter.

Zones de génération restreintes

Ce module peut entraîner la réapparition 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 :

  1. Remplissez la zone restreinte avec des blocs invisibles Anchored . Assurez-vous que CanCollide , CanTouch et 1> Class.BasePart.CanQueue|CanQueue1> sont désactivés pour tous les blocs.

    Bloquer la remplissez de toute la salle de prison pour empêcher les joueurs de se générer à l'intérieur
  2. En utilisant la section balises de chaque propriété de chaque bloc, ou Studio's éditeur de balises, appliquez la balise RestrictedSpawnArea afin que 1> Class.CollectionService1> les détecte.

  3. Collez le code suivant dans un Script à l'intérieur de ServerScriptService .

    Script

    local 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ées
    for _, area in CollectionService:GetTagged("RestrictedSpawnArea") do
    local relativePosition = area.CFrame:PointToObjectSpace(teleportationPoint.Position)
    local size = area.Size
    local inXBounds = relativePosition.X < size.X / 2 and relativePosition.X > -size.X / 2
    local inZBounds = relativePosition.Z < size.Z / 2 and relativePosition.Z > -size.Z / 2
    if inXBounds and inZBounds then
    return false -- La destination d'apparition est dans la zone restreinte ; annuler la téléportation
    end
    end
    return true -- La destination de génération n'est pas superposée par une zone restreinte ; continuez avec la téléportation
    end
    SpawnWithFriends.setTeleportationValidator(validator)

Référence de l'API

Fonctions

configurer

configurer(config: Library.table)

Les options de configuration par défaut sont remplacées par les valeurs/clés suivantes dans la table config. Ce paramètre ne peut être appelé que depuis un Script.

CléDescriptionPar défaut
teleportToFriendOnRespawnSi défini sur false, la téléportation à un ami ne se produira que manuellement via téléportToRandomFriend.vrai
teleportDistanceÀ quelle distance les joueurs devraient-ils se générer l'un de l'autre, mesuré en studs.5
maxCharacterVelocityLes personnages se déplaçant plus rapidement que cette valeur ne seront pas choisis comme candidats de téléportation, par exemple ceux dans les véhicules en mouvement.48
bypassFriendshipCheckSi cela est réglé sur vrai, tous les joueurs tous seront des candidats pour la téléportation, pas seulement des amis.faux
showLogsAfficher ou non les messages de journal dans la 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
})

téléporté à un ami aléatoire

téléporté à un ami(playerToTeleport: Player): boolean

Activer manuellement la téléportation d'un joueur vers l'un de ses amis dans l'expérience. Renvoie un booléen indiquant si oui ou non la téléportation a réussi ; la téléportation peut être causée par l'absence d'amis sur le serveur ou l'inaptitude à trouver un point de téléportation non bloqué. Cette fonction ne peut être appelée qu'à partir d'un Script .

setTeleportationValidation

setTeleportationValidation(Validateur : function )

Permet d'exécuter des tests de pré-téléportation personnalisés en connectant une fonction de rappel de validateur. La fonction de rappel reçoit trois paramètres :

ParamètreDescription
playerToTeleportRéférence au Player qui est en cours de téléportation.
destinationPlayerRéférence à la cible Player que playerToTeleport est en train de se téléporter.
teleportationPointCFrameplayerToTeleport se téléporte.

Cette fonction et son rappel ne peuvent être utilisés qu' dans un Script et le rappel renvoie un booléen indiquant si la téléportation devrait se poursuivre. Par exemple, la logique return suivante dans la fonction de validation garantit que le joueur d'apparition et le joueur de destination sont sur la même équipe.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
-- Téléporte les joueurs uniquement si ils sont dans la même équipe
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)