SpawnLocation

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Le posizioni di spawn, o "spawns" determinano dove un Player respawna quando muore. Possono essere configurati per consentire solo a determinati giocatori di utilizzare ciascun Rigenerare, usando Teams . Controllano anche come ForceFields sono impostati per i nuovi giocatori.

Le posizioni di spawn possono essere utilizzate come checkpoint, come in una gara di ostacoli, utilizzando la ProprietàSpawnLocation.AllowTeamChangeOnTouch , in modo che quando un giocatore tocca, cambierà team al team SpawnLocation. In questo caso, solo il primo Team dovrebbe avere Team.AutoAssignable

Nota se viene aggiunto uno SpawnLocation a Workspace in Studio con SpawnLocation.Neutral impostato su false una squadra verrà creata corrispondentemente a SpawnLocation.TeamColor se non esiste ancora. Questo comportamento non si verifica

Regole di generazione

Ci sono diversi ruoli che entrano in gioco per una certa SpawnLocation quando un giocatore respawna:

  • Quando SpawnLocation.Neutral è impostato su false solo Players con Player.TeamColor corrispondente a 1> Class.SpawnLocation.TeamColor1> respawnerà sopra di esso
  • Quando SpawnLocation.Neutral è impostato su true qualsiasi giocatore può spawnarlo sopra indipendentemente da SpawnLocation.TeamColor
  • Se più punti di interesse sono disponibili per un Player, uno sarà scelto casualmente
  • I giocatori spawneranno a differenti punti sulla cima di una SpawnLocation, ma attualmente, potrebbero ancora spawnare sopra l'un l'altro se uno o più di loro spawna subito dopo l'altro

Vedi anche:

  • Se vuoi configurare quanto tempo ci vuole per un giocatore per respawn, prendi un'occhiata alla ProprietàRespawnTime

Campioni di codice

SpawnLocation Checkpoints

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)

Sommario

Proprietà

  • Lettura Parallela

    Consente a un Player di unirsi alla squadra toccando il SpawnLocation. Quando è impostato su true, se un personaggio Player viene in contatto con il 2>Class.SpawnLocation2>, il colore del Giocatore5>Class.Player.TeamColor5> sarà impostato su <

  • Lettura Parallela

    La durata di tempo, in secondi, che un ForceField sarà applicato a un personaggio Player che si genera in questo SpawnLocation . Se la durata è zero, il 1> Class.ForceField1> non viene mai creato e non attiva gli event

  • Lettura Parallela

    Imposta se SpawnLocation è abilitato o no. Quando i giocatori disabilitati non possono spawnare alla SpawnLocation e la funzione AllowTeamChangeOnTouch è disabilitata.

  • Lettura Parallela

    Indipendentemente dal fatto che un SpawnLocation sia o meno affilato con una teamspecifica. Ciò significa che qualsiasi Player , di qualsiasi Team , può essere generato su di esso se questa proprietà è impostata su true.

  • Lettura Parallela

    Imposta a quale squadra il SpawnLocation è affidato. Se la proprietà SpawnLocation.Neutral è falsa, solo Players con la stessa 2> Class.Player.TeamColor2> del Rigenerare's TeamColor potrà generarlo lì.

Proprietà provenienti da PartProprietà provenienti da BasePartProprietà provenienti da PVInstance

Metodi

Metodi provenienti da BasePartMetodi provenienti da PVInstance

Eventi

Eventi provenienti da BasePart

Proprietà

AllowTeamChangeOnTouch

Lettura Parallela

Consente a un Player di unirsi alla Giocatoretoccando il SpawnLocation. Quando è impost

Questo non funzionerà quando SpawnLocation.Enabled è impostato su false.

Fare Checkpoint

Questa funzione viene spesso utilizzata per creare checkpoint in corsi d'ostacolo o giochi simili.

Campioni di codice

SpawnLocation Checkpoints

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

Lettura Parallela

La durata di tempo, in secondi, che un ForceField sarà applicato a un personaggio Player che si genera in questo SpawnLocation . Se la durata è zero, il 1> Class.ForceField1> non viene mai creato e non attiva gli event

Questo valore predefinito di questa proprietà è 10 secondi.

La durata della funzione consente agli sviluppatori di fornire facilmente Players protezione da 'spawn killing' che può essere un'esperienza frustrante per i giocatori. Nota, ForceFields proteggerà solo gli utenti da Class.Explosion|Explosions

Campioni di codice

SpawnLocation ForceField

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

Lettura Parallela

Imposta se o no SpawnLocation è abilitato. Quando i giocatori disabilitati non possono spawnare all'interno di SpawnLocation e la funzionalità SpawnLocation.AllowTeamChangeOnTouch è disabilitata.

Questa proprietà fornisce il modo più conveniente per impedire Players di spawnare in un Rigenerare.

Nota, anche se il cambiamento di squadra in touch using SpawnLocation.AllowTeamChangeOnTouch è disabilitato quando Enabled è impostato su false, altri eventi touch using BasePart.Touched Lanciarecomunque.

Campioni di codice

SpawnLocation Enabled

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

Lettura Parallela

Indipendentemente dal fatto che un spawn sia o meno affiliato a un team specifico. Ciò significa che qualsiasi Player , di qualsiasi Team , può essere generato su di esso se questa proprietà è impostata su vero.

Se Neutral è impostato su false, solo i giocatori il cui Player.TeamColor è uguale a SpawnLocation.TeamColor possono utilizzare il SpawnLocation.

Se SpawnLocation.AllowTeamChangeOnTouch è vero Player.Neutral sarà impostato su questa proprietà al contatto con il Rigenerare.

Campioni di codice

SpawnLocation Checkpoints

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

Lettura Parallela

La proprietà TeamColor imposta quale team il SpawnLocation è affilato. Se la proprietà SpawnLocation.Neutral è falsa, solo Players con la stessa 1> Class.Player.TeamColor1> del Rigenerarepotrà spawnarci.

Se SpawnLocation.AllowTeamChangeOnTouch è vero Player.Neutral sarà impostato su questa proprietà al contatto con il Rigenerare.

Campioni di codice

SpawnLocation Checkpoints

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)

Metodi

Eventi