SpawnLocation
*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
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à
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 <
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
Imposta se SpawnLocation è abilitato o no. Quando i giocatori disabilitati non possono spawnare alla SpawnLocation e la funzione AllowTeamChangeOnTouch è disabilitata.
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.
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ì.
Imposta la forma generale dell'oggetto.
Determina se una parte è immutabile fisicamente.
La velocità angolare dell'assemblaggio della parte.
Il centro di massa dell'assemblaggio della parte nel Spaziodel mondo.
La velocità lineare dell'assemblaggio della parte.
La massa totale dell'assemblaggio della parte.
Un riferimento alla parte root dell'assemblaggio.
Determina il tipo di superficie per la parte posteriore di una parte (+Z direzione).
Determina il tipo di superficie per la parte inferiore di un'auto (-Y direzione).
Determina il colore di una parte.
Determina la posizione e l'orientamento della BasePart nel Mondo.
Determina se una parte può collisionare con altre parti.
Determina se la parte è considerata durante le operazioni di query spaziale.
Determina se Touched e TouchEnded eventi si attivano sulla parte.
Determina se un part casta un'ombra o no.
Descrive la posizione mondiale in cui si trova il centro di massa di una parte.
Descrivi il nome di un Gruppodi collisione di una parte.
Determina il colore di una parte.
Indica le proprietà fisiche attuali della parte.
Determina diverse proprietà fisiche di una parte.
Utilizzato per abilitare o disabilitare le forze aerodinamiche su parti e assemblaggi.
La dimensione fisica reale della BasePart come vista dal motore fisico.
Determina il tipo di superficie per la parte anteriore di una parte (-Z direzione).
Determina il tipo di superficie per la parte sinistra di un'auto (-X direzione).
Determina un moltiplicatore per BasePart.Transparency che è visibile solo al client locale.
Determina se una parte è selezionabile in Studio.
Descrive la massa della parte, il prodotto della sua densità e volume.
Determina se la parte contribuisce alla massa totale o all'inertia del suo corpo rigido.
Determina le proprietà fisiche predefinite e la texture di una parte.
Il nome di MaterialVariant .
Descrive la rotazione della parte nel Mondo.
Specifica l'Offset del pivot della parte dal suo CFrame .
Descrive la posizione della parte nel Mondo.
Tempo dal prossimo aggiornamento Aggiornarmento.
Determina quanto una parte rifletta la skybox.
Descrive la piccola modifica ammessa dalla metodo Ridimensiona .
Descrive le facce su cui una parte può essere ridimensionata.
Determina il tipo di superficie per il lato destro di una parte (+X direzione).
La regola principale per determinare la parte della radice di un'assemblaggio.
La rotazione della parte in gradi per i tre assi.
Determina le dimensioni di una parte (Lunghezza, larghezza, altezza).
Determina il tipo di superficie per la parte superiore di un'auto (+Y direzione).
Determina quanto una parte può essere vista attraverso (l'inversario dell'opacità della parte).
Metodi
Metodi provenienti da BasePartApplica un impulso angolare all'assemblaggio.
Applica un impulso all'assemblaggio al centro di massa dell'assemblaggio.
Applica un impulso all'assemblaggio nella posizione specificata.
Restituisce se le parti possono collidere tra loro.
Controlla se puoi impostare la proprietà di rete di una parte.
Restituisce una tabella di parti connesse all'oggetto da qualsiasi tipo di Articolazionerigida.
Restituisci tutti i Giunti o Constritti che sono connessi a questa parte.
Restituisce il valore della ProprietàMass .
Restituisce il giocatore corrente che è il proprietario di rete di questa parte, o nulla in caso di Server.
Restituisce vero se il motore di gioco decide automaticamente il proprietario della rete per questa parte.
Restituisce la parte di base di un'assemblazione di parti.
Restituisce una tabella di tutte le parti BasePart.CanCollide vere che interseccano con questa parte.
Restituisce la velocità lineare dell'assemblaggio della parte al posizione specificata rispetto a questa parte.
Restituisce vero se l'oggetto è connesso a una parte che lo contiene (ad esempio, una parte Anchored )), altrimenti restituisce false.
Cambia la dimensione di un oggetto proprio come si fa con lo strumento di ridimensionamento Studio.
Imposta il giocatore attuale come proprietario di rete per questo e tutte le parti connesse.
Lets il motore di gioco decidere dinamicamente chi si occuperà della fisica della parte (uno dei client o il Server).
- IntersectAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Crea una nuova IntersectOperation dalla geometria sovrappositiva della parte e dalle altre parti nell'vettorefornito.
- SubtractAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Crea una nuova UnionOperation dalla parte, meno la geometria occupata dalle parti nell'vettorefornito.
- UnionAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Crea una nuova UnionOperation dalla parte, oltre alla geometria occupata dalle parti nell'vettorefornito.
Ottiene il pivot di un PVInstance .
Transforms the PVInstance along with all of its descendant PVInstances such that the pivot is now located at the specified CFrame .
Eventi
Eventi provenienti da BasePartSi attiva quando una parte smette di toccare un'altra parte come risultato di un movimento fisico.
Si attiva quando una parte tocca un'altra parte come risultato di un movimento fisico.
Proprietà
AllowTeamChangeOnTouch
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
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 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
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
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
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
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
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 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
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)