SpawnLocation
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Les lieux d'apparition, ou «spawns», déterminent l'endroit où un Player réapparaît lorsqu'il meurt. Ils peuvent être configurés pour permettre à certains joueurs d'utiliser chaque lieu d'apparition, en utilisant Teams. Ils contrôlent également la façon dont les ForceFields sont configurés pour les nouveaux joueurs.
Les emplacements d'apparition peuvent être utilisés comme points de contrôle, tels qu'un parcours d'obstacles, en utilisant la propriété SpawnLocation.AllowTeamChangeOnTouch, afin que lorsqu'un joueur le touche, il changera d'équipe pour l'équipe de SpawnLocation. Dans ce cas, seuls les premiers Team doivent avoir Class
Notez que si un SpawnLocation est ajouté au Workspace dans Studio avec SpawnLocation.Neutral défini sur false une équipe sera créée correspondant à SpawnLocation.TeamColor si elle n'existe pas déjà. Ce comportement ne
Règles de génération
Il y a plusieurs règles qui entrent en jeu pour un lieu de fraie donné lorsqu'un joueur réapparaît :
- Lorsque SpawnLocation.Neutral est réglé sur false only Players avec Player.TeamColor correspondant à 1> Class.SpawnLocation.TeamColor1> sera respawn above it
- Lorsque SpawnLocation.Neutral est réglé sur vrai, n'importe quel joueur peut apparaître au-dessus de lui, peu importe SpawnLocation.TeamColor
- Si plusieurs lieux éligibles sont disponibles pour un Player, un lieu aléatoire sera choisi
- Les joueurs apparaîtront à différents endroits au-dessus d'un SpawnLocation, mais actuellement, ils peuvent toujours apparaître au-dessus l'un de l'autre s'ils apparaissent juste après l'autre
Voir aussi :
- Si vous souhaitez configurer le temps qu'il faut pour qu'un joueur réapparaisse, regardez la propriété RespawnTime
Échantillons de code
local Teams = game:GetService("Teams")
-- create start team (AutoAssignable = true)
local startTeam = Instance.new("Team")
startTeam.Name = "Start"
startTeam.AutoAssignable = true
startTeam.TeamColor = BrickColor.new("White")
startTeam.Parent = Teams
-- create checkpoint teams (Autoassignable = false), ensuring all TeamColors are unique
local team1 = Instance.new("Team")
team1.Name = "Checkpoint 1"
team1.AutoAssignable = false
team1.TeamColor = BrickColor.new("Bright blue")
team1.Parent = Teams
local team2 = Instance.new("Team")
team2.Name = "Checkpoint 2"
team2.AutoAssignable = false
team2.TeamColor = BrickColor.new("Bright green")
team2.Parent = Teams
local team3 = Instance.new("Team")
team3.Name = "Checkpoint 2"
team3.AutoAssignable = false
team3.TeamColor = BrickColor.new("Bright red")
team3.Parent = Teams
-- create spawns
local startSpawn = Instance.new("SpawnLocation")
startSpawn.Anchored = true
startSpawn.Size = Vector3.new(5, 1, 5)
startSpawn.Neutral = false
startSpawn.AllowTeamChangeOnTouch = false
startSpawn.TeamColor = startTeam.TeamColor
startSpawn.BrickColor = startTeam.TeamColor
startSpawn.Parent = game.Workspace
local team1Spawn = Instance.new("SpawnLocation")
team1Spawn.Anchored = true
team1Spawn.Size = Vector3.new(5, 1, 5)
team1Spawn.Neutral = false
team1Spawn.AllowTeamChangeOnTouch = true
team1Spawn.TeamColor = team1.TeamColor
team1Spawn.BrickColor = team1.TeamColor
team1Spawn.Parent = game.Workspace
local team2Spawn = Instance.new("SpawnLocation")
team2Spawn.Anchored = true
team2Spawn.Size = Vector3.new(5, 1, 5)
team2Spawn.Neutral = false
team2Spawn.AllowTeamChangeOnTouch = true
team2Spawn.TeamColor = team2.TeamColor
team2Spawn.BrickColor = team2.TeamColor
team2Spawn.Parent = game.Workspace
local team3Spawn = Instance.new("SpawnLocation")
team3Spawn.Anchored = true
team3Spawn.Size = Vector3.new(5, 1, 5)
team3Spawn.Neutral = false
team3Spawn.AllowTeamChangeOnTouch = true
team3Spawn.TeamColor = team3.TeamColor
team3Spawn.BrickColor = team3.TeamColor
team3Spawn.Parent = game.Workspace
-- position spawns
startSpawn.CFrame = CFrame.new(0, 0.5, 0)
team1Spawn.CFrame = CFrame.new(10, 0.5, 0)
team2Spawn.CFrame = CFrame.new(20, 0.5, 0)
team3Spawn.CFrame = CFrame.new(30, 0.5, 0)
Résumé
Propriétés
Permet à un Player de rejoindre l'équipe en touchant le SpawnLocation. Lorsqu'il est réglé sur vrai, si un Player personnage entre en contact avec le 2>Class.SpawnLocation2>, le joueur's 5>Class.Player.TeamColor5> sera réglé sur <
La durée de temps, en secondes, que ForceField sera appliqué à un personnage Player générant à cet endroit SpawnLocation. Si la durée est nulle, la 1> Class.ForceField1> n'est jamais créée et ne déclenche pas
Définit si oui ou non la SpawnLocation est activée. Lorsqu'il n'est pas possible pour les joueurs désactivés de générer dans la SpawnLocation et que la fonctionnalité Autoriser le changement d'équipe lors du toucher est désactivée.
Que oui ou non un SpawnLocation est associé à une équipe spécifique. Cela signifie que tout Player , de tout Team, peut y être généré si cette propriété est réglée sur vrai.
Définit l'équipe à laquelle le SpawnLocation appartient. Si la propriété SpawnLocation.Neutral est fausse, seuls Players avec la même 1> Class.Player.TeamColor1> que le régénération, apparition's TeamColor pourront s'y générer.
Définit la forme globale de l'objet.
Détermine si une partie est immovable physiquement.
La vitesse angulaire de l'assemblage de la pièce.
Le centre de masse de l'assemblage de la partie dans l'espace mondial.
La vélocité linéaire de l'assemblage de la pièce.
La masse totale de l'assemblage de la partie.
Une référence à la partie racine de l'assemblage.
Détermine le type de surface pour le dos d'une pièce (+Z direction).
Détermine le type de surface pour le visage inférieur d'une partie (-Y direction).
Détermine la couleur d'une partie.
Détermine la position et l'orientation de la BasePart dans le monde.
Détermine si une partie peut se heurter à d'autres parties.
Détermine si la partie est envisagée pendant les opérations de requête spatiale.
Détermine si les événements Touched et TouchEnded se déclenchent sur la partie.
Détermine si oui ou non une partie lance une ombre.
Décrivez la position dans le monde dans laquelle se trouve le centre de masse d'une partie.
Décrivez le nom d'un groupe de collision de pièce.
Détermine la couleur d'une partie.
Indique les propriétés physiques actuelles de la partie.
Détermine plusieurs propriétés physiques d'une partie.
Utilisé pour activer ou désactiver les forces aéroynamiques sur les parties et les assemblages.
La taille physique réelle de la BasePart comme indiqué par le moteur de physique.
Détermine le type de surface pour la face avant d'une pièce (-Z direction).
Détermine le type de surface pour le visage gauche d'une pièce (-X direction).
Détermine un multiplicateur pour BasePart.Transparency qui n'est visible que pour le client local.
Détermine si une partie peut être sélectionnée dans Studio.
Décrivez la masse de la pièce, le produit de sa densité et de son volume.
Détermine si la partie contribue à la masse totale ou à l'inertie de son corps rigide.
Détermine la texture et les propriétés physiques par défaut d'une pièce.
Le nom de MaterialVariant .
Décrivez la rotation de la pièce dans le monde.
Spécifie l'Offset de la pivot de la partie de son CFrame.
Décrivez la position de la partie dans le monde.
Temps depuis la dernière mise à jour de la physique.
Détermine la quantité de lumière reflétée par une pièce.
Décrivez la plus petite modification de taille autorisée par la méthode Redimensionner.
Décrivez les visages sur lesquels une partie peut être redimensionnée.
Détermine le type de surface pour le côté droit d'une pièce (+X direction).
La règle principale dans le détermination de la partie racine d'une assemblage.
La rotation de la pièce en degrés pour les trois axes.
Détermine les dimensions d'une partie (Longueur, largeur, hauteur).
Détermine le type de surface pour la face supérieure d'une pièce (+ Y direction).
Détermine la quantité de partie qui peut être vue à travers (l'inverse de l'opacité de la partie).
Méthodes
Méthodes hérités de BasePartAppliquez une impulsion angulaire à l'assemblage.
Appliquez un impulsion à l'assemblage à l'assemblage de center of mass .
Appliquez un impulsion à l'assemblage à la position spécifiée.
Retourne si les parties peuvent se heurter l'une à l'autre.
Vérifie si vous pouvez configurer la propriété du réseau d'une partie.
Renvoie une table de pièces connectées à l'objet par n'importe quel type de articulationrigide.
Retournez toutes les Jointures ou Contraintes qui sont connectées à cette partie.
Retourne la valeur de la propriété Mass.
Renvoie le joueur actuel qui est le propriétaire du réseau de cette partie, ou zéro dans le cas du serveur.
Retourne vrai si le moteur de jeu décide automatiquement le propriétaire du réseau pour cette partie.
Renvoie la partie de base d'une assemblage de pièces.
Renvoie une table de toutes les parties BasePart.CanCollide vraies qui intersectent avec cette partie.
Renvoie la vitesse linéaire de l'assemblage de la partie à la position donnée par rapport à cette partie.
Renvoie vrai si l'objet est connecté à une partie qui le retiendra (par exemple, une partie Anchored )), sinon renvoie faux.
Change la taille d'un objet juste comme utiliser l'outil de redimensionnement Studio.
Définit le joueur donné comme propriétaire du réseau pour ceci et toutes les parties connectées.
Permet au moteur de jeu de décider dynamiquement qui gèrera la physique de la partie (un des clients ou le serveur).
- IntersectAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Crée une nouvelle IntersectOperation à partir de la géométrie superposée des parties et des autres parties dans l'matricedonné.
- SubtractAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Crée une nouvelle UnionOperation à partir de la partie, en minusant la géométrie occupée par les parties dans l'matricedonné.
- UnionAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Crée une nouvelle UnionOperation à partir de la partie, plus la géométrie occupée par les parties dans l'matricedonné.
Obtient le pivot d'un PVInstance.
Transforme le PVInstance ainsi que tous ses descendants PVInstances afin que le pivot soit maintenant situé dans le CFrame spécifié.
Évènements
Évènements hérités de BasePartSe déclenche lorsqu'une partie arrête de toucher une autre partie en résultant d'un mouvement physique.
Feu quand une partie touche une autre partie en résultant d'un mouvement physique.
Propriétés
AllowTeamChangeOnTouch
Permet à un Player de rejoindre l'équipe en touchant le SpawnLocation . Lorsqu'il
Cela ne fonctionnera pas lorsque SpawnLocation.Enabled est réglé sur false.
Faire des points de contrôle
Cette fonction est souvent utilisée pour créer des points de contrôle dans les courses d'obstacles ou similaires.
Échantillons de code
local Teams = game:GetService("Teams")
-- create start team (AutoAssignable = true)
local startTeam = Instance.new("Team")
startTeam.Name = "Start"
startTeam.AutoAssignable = true
startTeam.TeamColor = BrickColor.new("White")
startTeam.Parent = Teams
-- create checkpoint teams (Autoassignable = false), ensuring all TeamColors are unique
local team1 = Instance.new("Team")
team1.Name = "Checkpoint 1"
team1.AutoAssignable = false
team1.TeamColor = BrickColor.new("Bright blue")
team1.Parent = Teams
local team2 = Instance.new("Team")
team2.Name = "Checkpoint 2"
team2.AutoAssignable = false
team2.TeamColor = BrickColor.new("Bright green")
team2.Parent = Teams
local team3 = Instance.new("Team")
team3.Name = "Checkpoint 2"
team3.AutoAssignable = false
team3.TeamColor = BrickColor.new("Bright red")
team3.Parent = Teams
-- create spawns
local startSpawn = Instance.new("SpawnLocation")
startSpawn.Anchored = true
startSpawn.Size = Vector3.new(5, 1, 5)
startSpawn.Neutral = false
startSpawn.AllowTeamChangeOnTouch = false
startSpawn.TeamColor = startTeam.TeamColor
startSpawn.BrickColor = startTeam.TeamColor
startSpawn.Parent = game.Workspace
local team1Spawn = Instance.new("SpawnLocation")
team1Spawn.Anchored = true
team1Spawn.Size = Vector3.new(5, 1, 5)
team1Spawn.Neutral = false
team1Spawn.AllowTeamChangeOnTouch = true
team1Spawn.TeamColor = team1.TeamColor
team1Spawn.BrickColor = team1.TeamColor
team1Spawn.Parent = game.Workspace
local team2Spawn = Instance.new("SpawnLocation")
team2Spawn.Anchored = true
team2Spawn.Size = Vector3.new(5, 1, 5)
team2Spawn.Neutral = false
team2Spawn.AllowTeamChangeOnTouch = true
team2Spawn.TeamColor = team2.TeamColor
team2Spawn.BrickColor = team2.TeamColor
team2Spawn.Parent = game.Workspace
local team3Spawn = Instance.new("SpawnLocation")
team3Spawn.Anchored = true
team3Spawn.Size = Vector3.new(5, 1, 5)
team3Spawn.Neutral = false
team3Spawn.AllowTeamChangeOnTouch = true
team3Spawn.TeamColor = team3.TeamColor
team3Spawn.BrickColor = team3.TeamColor
team3Spawn.Parent = game.Workspace
-- position spawns
startSpawn.CFrame = CFrame.new(0, 0.5, 0)
team1Spawn.CFrame = CFrame.new(10, 0.5, 0)
team2Spawn.CFrame = CFrame.new(20, 0.5, 0)
team3Spawn.CFrame = CFrame.new(30, 0.5, 0)
Duration
La durée de temps, en secondes, que ForceField sera appliqué à un personnage Player générant à cet endroit SpawnLocation. Si la durée est nulle, la 1> Class.ForceField1> n'est jamais créée et ne déclenche pas
Cette valeur par défaut de cette propriété est de 10 secondes.
La fonctionnalité de durée permet aux développeurs de donner facilement une protection à Players de protection contre le «spawn killing» qui peut être une expérience frustrante pour les joueurs. Notez, ForceFields ne protégera que les utilisateurs contre le «spawn killing» et les arm
Échantillons de code
local spawnLocation = Instance.new("SpawnLocation")
spawnLocation.Anchored = true
spawnLocation.Size = Vector3.new(5, 1, 5)
spawnLocation.Neutral = true -- anyone can spawn here
spawnLocation.Duration = 20
spawnLocation.Parent = workspace
Enabled
Définit si oui ou non la SpawnLocation est activée. Lorsqu'il n'est pas possible que les joueurs apparaissent à la SpawnLocation et que la fonctionnalité SpawnLocation.AllowTeamChangeOnTouch est désactivée.
Cette propriété fournit la façon la plus pratique de empêcher Players de se produire lors d'un régénération, apparition.
Remarquez, bien que le changement d'équipe lors d'un toucher en utilisant SpawnLocation.AllowTeamChangeOnTouch soit désactivé lorsque Enabled est réglé sur false, les autres événements touchés en utilisant BasePart.Touched ne s'exécuteront toujours lancer.
Échantillons de code
local spawnLocation = Instance.new("SpawnLocation")
spawnLocation.Anchored = true
spawnLocation.Size = Vector3.new(5, 1, 5)
spawnLocation.Neutral = true -- anyone can spawn here
spawnLocation.Enabled = true
spawnLocation.Parent = workspace
local function onEnabledChanged()
spawnLocation.Transparency = spawnLocation.Enabled and 0 or 0.5
end
spawnLocation:GetPropertyChangedSignal("Enabled"):Connect(onEnabledChanged)
task.wait(5)
spawnLocation.Enabled = false -- transparency = 0.5
Neutral
Que ou non un spawn soit associé à une équipe spécifique. Cela signifie que n'importe lequel Player , de n'importe lequel Team , peut le faire sur lui si cette propriété est réglée sur vrai.
Si Neutre est réglé sur faux, seuls les joueurs dont le Player.TeamColor est égal à SpawnLocation.TeamColor peuvent utiliser le SpawnLocation.
Si SpawnLocation.AllowTeamChangeOnTouch est vrai, Player.Neutral sera défini sur cette propriété au contact avec le régénération, apparition.
Échantillons de code
local Teams = game:GetService("Teams")
-- create start team (AutoAssignable = true)
local startTeam = Instance.new("Team")
startTeam.Name = "Start"
startTeam.AutoAssignable = true
startTeam.TeamColor = BrickColor.new("White")
startTeam.Parent = Teams
-- create checkpoint teams (Autoassignable = false), ensuring all TeamColors are unique
local team1 = Instance.new("Team")
team1.Name = "Checkpoint 1"
team1.AutoAssignable = false
team1.TeamColor = BrickColor.new("Bright blue")
team1.Parent = Teams
local team2 = Instance.new("Team")
team2.Name = "Checkpoint 2"
team2.AutoAssignable = false
team2.TeamColor = BrickColor.new("Bright green")
team2.Parent = Teams
local team3 = Instance.new("Team")
team3.Name = "Checkpoint 2"
team3.AutoAssignable = false
team3.TeamColor = BrickColor.new("Bright red")
team3.Parent = Teams
-- create spawns
local startSpawn = Instance.new("SpawnLocation")
startSpawn.Anchored = true
startSpawn.Size = Vector3.new(5, 1, 5)
startSpawn.Neutral = false
startSpawn.AllowTeamChangeOnTouch = false
startSpawn.TeamColor = startTeam.TeamColor
startSpawn.BrickColor = startTeam.TeamColor
startSpawn.Parent = game.Workspace
local team1Spawn = Instance.new("SpawnLocation")
team1Spawn.Anchored = true
team1Spawn.Size = Vector3.new(5, 1, 5)
team1Spawn.Neutral = false
team1Spawn.AllowTeamChangeOnTouch = true
team1Spawn.TeamColor = team1.TeamColor
team1Spawn.BrickColor = team1.TeamColor
team1Spawn.Parent = game.Workspace
local team2Spawn = Instance.new("SpawnLocation")
team2Spawn.Anchored = true
team2Spawn.Size = Vector3.new(5, 1, 5)
team2Spawn.Neutral = false
team2Spawn.AllowTeamChangeOnTouch = true
team2Spawn.TeamColor = team2.TeamColor
team2Spawn.BrickColor = team2.TeamColor
team2Spawn.Parent = game.Workspace
local team3Spawn = Instance.new("SpawnLocation")
team3Spawn.Anchored = true
team3Spawn.Size = Vector3.new(5, 1, 5)
team3Spawn.Neutral = false
team3Spawn.AllowTeamChangeOnTouch = true
team3Spawn.TeamColor = team3.TeamColor
team3Spawn.BrickColor = team3.TeamColor
team3Spawn.Parent = game.Workspace
-- position spawns
startSpawn.CFrame = CFrame.new(0, 0.5, 0)
team1Spawn.CFrame = CFrame.new(10, 0.5, 0)
team2Spawn.CFrame = CFrame.new(20, 0.5, 0)
team3Spawn.CFrame = CFrame.new(30, 0.5, 0)
TeamColor
La propriété TeamColor détermine à quelle équipe le SpawnLocation appartient. Si la propriété SpawnLocation.Neutral est fausse, seuls Players avec la même 1> Class.Player.TeamColor1> que le régénération, apparition's TeamColor pourront y apparaître.
Si SpawnLocation.AllowTeamChangeOnTouch est vrai, Player.Neutral sera défini sur cette propriété au contact avec le régénération, apparition.
Échantillons de code
local Teams = game:GetService("Teams")
-- create start team (AutoAssignable = true)
local startTeam = Instance.new("Team")
startTeam.Name = "Start"
startTeam.AutoAssignable = true
startTeam.TeamColor = BrickColor.new("White")
startTeam.Parent = Teams
-- create checkpoint teams (Autoassignable = false), ensuring all TeamColors are unique
local team1 = Instance.new("Team")
team1.Name = "Checkpoint 1"
team1.AutoAssignable = false
team1.TeamColor = BrickColor.new("Bright blue")
team1.Parent = Teams
local team2 = Instance.new("Team")
team2.Name = "Checkpoint 2"
team2.AutoAssignable = false
team2.TeamColor = BrickColor.new("Bright green")
team2.Parent = Teams
local team3 = Instance.new("Team")
team3.Name = "Checkpoint 2"
team3.AutoAssignable = false
team3.TeamColor = BrickColor.new("Bright red")
team3.Parent = Teams
-- create spawns
local startSpawn = Instance.new("SpawnLocation")
startSpawn.Anchored = true
startSpawn.Size = Vector3.new(5, 1, 5)
startSpawn.Neutral = false
startSpawn.AllowTeamChangeOnTouch = false
startSpawn.TeamColor = startTeam.TeamColor
startSpawn.BrickColor = startTeam.TeamColor
startSpawn.Parent = game.Workspace
local team1Spawn = Instance.new("SpawnLocation")
team1Spawn.Anchored = true
team1Spawn.Size = Vector3.new(5, 1, 5)
team1Spawn.Neutral = false
team1Spawn.AllowTeamChangeOnTouch = true
team1Spawn.TeamColor = team1.TeamColor
team1Spawn.BrickColor = team1.TeamColor
team1Spawn.Parent = game.Workspace
local team2Spawn = Instance.new("SpawnLocation")
team2Spawn.Anchored = true
team2Spawn.Size = Vector3.new(5, 1, 5)
team2Spawn.Neutral = false
team2Spawn.AllowTeamChangeOnTouch = true
team2Spawn.TeamColor = team2.TeamColor
team2Spawn.BrickColor = team2.TeamColor
team2Spawn.Parent = game.Workspace
local team3Spawn = Instance.new("SpawnLocation")
team3Spawn.Anchored = true
team3Spawn.Size = Vector3.new(5, 1, 5)
team3Spawn.Neutral = false
team3Spawn.AllowTeamChangeOnTouch = true
team3Spawn.TeamColor = team3.TeamColor
team3Spawn.BrickColor = team3.TeamColor
team3Spawn.Parent = game.Workspace
-- position spawns
startSpawn.CFrame = CFrame.new(0, 0.5, 0)
team1Spawn.CFrame = CFrame.new(10, 0.5, 0)
team2Spawn.CFrame = CFrame.new(20, 0.5, 0)
team3Spawn.CFrame = CFrame.new(30, 0.5, 0)