Spawn avec des amis

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 :

  1. Dans l'onglet Voir, ouvrez la Boîte à outils et sélectionnez l'onglet Marketplace.

    Bouton activer/désactiver la Boîte à outils dans Studio
  2. Assurez-vous que le filtre Modèles est sélectionné, puis cliquez sur le bouton Voir tout pour afficher les catégories.

  3. Localisez et cliquez sur la vignette MODULES DEV.

  4. Localisez le module Apparaître avec des amis et cliquez dessus, ou faites-le glisser dans la vue 3D.

  5. 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 :

  1. Remplissez la zone restreinte avec des blocs Anchored invisibles. Assurez-vous que CanCollide, CanTouch et CanQuery sont désactivés pour tous les blocs.

Blocage de l'ensemble de la salle de la prison pour empêcher les joueurs d'apparaître à l'intérieur

  1. À 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.

  2. Collez le code suivant dans un Script dans ServerScriptService.

    Script

    local 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 parts
    for _, area in ipairs(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 -- Spawn destination is within restricted area; abort teleportation
    end
    end
    return true -- Spawn destination doesn't overlap any restricted area; proceed with teleportation
    end
    SpawnWithFriends.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éDescriptionPar défaut
teleportToFriendOnRespawnSi la valeur est définie sur false, la téléportation vers un ami se fera manuellement via teleportToRandomFriend.vrai
teleportDistanceDistance à laquelle les joueurs doivent apparaître les uns par rapport aux autres, mesurée en studs.5
maxCharacterVelocityLes 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`
showLogsAffichage 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ètreDescription
playerToTeleportRéférence au Player téléporté.
destinationPlayerRé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)