SpawnLocation
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Le posizioni di spawn, o "spawn", determinano dove un Player respawn quando muore.Possono essere configurati per consentire l'uso di ogni Rigeneraresolo a determinati giocatori, utilizzando Teams .Controllano anche come ForceFields vengono configurati i giocatori appena generati.
Le posizioni di spawn possono essere utilizzate come punti di controllo, come in un percorso ostico, utilizzando la ProprietàSpawnLocation.AllowTeamChangeOnTouch, in modo che quando un giocatore lo tocca, cambierà team al team di SpawnLocation.In questo caso, solo il primo Team deve avere Team.AutoAssignable impostato su vero, altrimenti i giocatori non inizieranno al primo checkpoint.
Nota se a un SpawnLocation viene aggiunto il Workspace in Studio con SpawnLocation.Neutral impostato su false, verrà creato un Team corrispondente a SpawnLocation.TeamColor se non esiste già.Questo comportamento non si verifica quando si creano spawn in gioco utilizzando un Script o se le proprietà di SpawnLocation vengono modificate dopo essere state già aggiunte.Si consiglia di configurare sempre manualmente i team degli sviluppatori e di non fare affidamento su questo comportamento.
Generazione di regole
Ci sono diverse regole che entrano in gioco per un dato SpawnLocation quando un giocatore respawna:
- Quando SpawnLocation.Neutral è impostato su false solo Players con Player.TeamColor corrispondente a SpawnLocation.TeamColor respawnerà sopra di esso
- Quando SpawnLocation.Neutral è impostato su vero, qualsiasi Giocatore può generarsi sopra di esso indipendentemente da SpawnLocation.TeamColor
- Se più spawn elegibili sono disponibili a un Player , ne verrà scelto uno casuale
- I giocatori appariranno in diversi punti su un SpawnLocation, ma attualmente potrebbero ancora apparire l'uno sopra l'altro se si generano subito dopo l'altro
Vedi anche:
- Se vuoi configurare quanto tempo ci vuole perché un giocatore respawn, dai un'occhiata alla ProprietàRespawnTime
Campioni di codice
This sample demonstrates how SpawnLocations can be used to make a checkpoint system. Typically this would be done Studio and not in Lua, but this example serves as a comprehensive example of what Team and SpawnLocation properties need to be used to achieve this setup.
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 vero, se un carattere Player viene a contatto con il SpawnLocation , il Player.TeamColor del Giocatoreverrà impostato su SpawnLocation.TeamColor .
La durata, in secondi, che un ForceField sarà applicata a un Player personaggio che spawnerà a questo SpawnLocation .Se la durata è zero, il ForceField non viene mai creato e non attiverà gli eventi Instance.DescendantAdded o Instance.ChildAdded.
Imposta se il SpawnLocation è abilitato o meno.Quando i giocatori disabilitati non possono essere generati al SpawnLocation e la funzionalità AllowTeamChangeOnTouch è disabilitata.
Se o meno un SpawnLocation è affiliato a un team specifico.Questo significa che qualsiasi Player , di qualsiasi Team , può essere generato su di esso se questa proprietà è impostata su vero.
Imposta a quale squadra il SpawnLocation è affiliato.Se la proprietà SpawnLocation.Neutral è falsa, solo Players con la stessa Player.TeamColor della schermata di Rigeneraredel TeamColor sarà in grado di spawnare lì.
Imposta la forma generale dell'oggetto.
Determina se una parte è immovibile per la fisica.
La velocità angolare dell'assemblaggio della parte.
Il centro di massa dell'assemblaggio della parte nello Spaziomondiale.
La velocità lineare dell'assemblaggio della parte.
La massa totale dell'assemblaggio della parte.
Un riferimento alla parte radice dell'assemblaggio.
Determina se la parte interagirà fisicamente con la simulazione audio, simile a CastShadow per l'illuminazione.
Determina il tipo di superficie per il lato posteriore di una parte.
Determina il tipo di superficie per il lato inferiore di una parte.
Determina il colore di una parte.
Determina la posizione e l'orientamento del BasePart nel Mondo.
Determina se una parte può collisionare con altre parti.
Determina se la parte viene considerata durante le operazioni di query spaziali.
Determina se Touched e TouchEnded eventi di fuoco sulla parte.
Determina se una parte lancia o meno un'ombra.
Descrive la posizione mondiale in cui si trova il centro di massa di una parte.
Descrive il nome del Gruppodi collisione di una parte.
Determina il colore di una parte.
Indica le attuali proprietà fisiche 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 del BasePart come considerata dall'engine della fisica.
Determina il tipo di superficie per la faccia anteriore di una parte.
Determina il tipo di superficie per il lato sinistro di una parte.
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'inerzia del suo corpo rigido.
Determina la texture e le proprietà fisiche predefinite di una parte.
Il nome di MaterialVariant .
Descrive la rotazione della parte nel Mondo.
Specifica l'offset del punto di rotazione della parte dal suo CFrame .
Descrive la posizione della parte nel Mondo.
Tempo trascorso dall'ultimo Aggiornarmentodella fisica registrata.
Determina quanto una parte rifletta la skybox.
Descrive il più piccolo cambiamento nelle dimensioni consentito dal metodo Resize().
Descrive i volti su cui una parte può essere ridimensionata.
Determina il tipo di superficie per il lato destro di una parte.
La regola principale nella determinazione della parte 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 faccia superiore di una parte.
Determina quanto una parte può essere vista attraverso (l'inverso dell'opacità della parte).
Metodi
Metodi provenienti da BasePartApplica un impulso angolare all'assemblaggio.
Applica un impulso all'assemblaggio all'assemblaggio di center of mass .
Applica un impulso all'assemblaggio in posizione specificata.
Restituisce se le parti possono scontrarsi tra loro.
Verifica se è possibile impostare la proprietà della rete di una parte.
Restituisce una tabella di parti connesse all'oggetto da qualsiasi tipo di Articolazionerigida.
Restituisci tutti i Giunti o Confinamenti che sono connessi a questa Parte.
Restituisce il valore della proprietà Mass Proprietà.
Restituisce il giocatore attuale che è il proprietario di rete di questa parte, o nil in caso del Server.
Restituisce vero se il motore di gioco decide automaticamente il proprietario della rete per questa parte.
Restituisce la parte di base di un'assemblaggio di parti.
Restituisce una tabella di tutte le BasePart.CanCollide parti vere che si intersecano con questa parte.
Restituisce la velocità lineare dell'assemblaggio della parte alla posizione data rispetto a questa parte.
Restituisce vero se l'oggetto è connesso a una parte che lo terrà in posizione (ad esempio una parte Anchored), altrimenti restituisce falso.
Cambia le dimensioni di un oggetto proprio come l'utilizzo dello strumento ridimensionamento di Studio.
Imposta il giocatore dato come proprietario della rete per questo e tutte le parti connesse.
Consente al motore di gioco di decidere dinamicamente chi gestirà la fisica della parte (uno dei client o del Server).
- IntersectAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Crea una nuova IntersectOperation dalla geometria sovrapposta della parte e delle 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, più la geometria occupata dalle parti nell'vettorefornito.
Ottiene il punto focale di un PVInstance .
Trasforma il PVInstance insieme a tutti i suoi discendenti PVInstances in modo che il punto di rotazione sia ora situato all'interno del CFrame specificato.
Eventi
Eventi provenienti da BasePartSi accende quando una parte smette di toccare un'altra parte a causa di un movimento fisico.
Si accende quando una parte tocca un'altra parte a causa di un movimento fisico.
Proprietà
AllowTeamChangeOnTouch
Consente a un Player di unirsi alla squadra toccando il SpawnLocation.Quando è impostato su vero, se un carattere Player viene a contatto con il SpawnLocation , il Player.TeamColor del Giocatoreverrà impostato su SpawnLocation.TeamColor .Player.Neutral sarà anche impostato su SpawnLocation.Neutral al Contattare, il che significa che un giocatore può anche diventare neutrale toccando una posizione di spawn.
Questo non funzionerà quando SpawnLocation.Enabled è impostato su false.
Creazione di checkpoint
Questa funzione viene spesso utilizzata per creare punti di controllo in percorsi ostacolosi o giochi simili.
Campioni di codice
This sample demonstrates how SpawnLocations can be used to make a checkpoint system. Typically this would be done Studio and not in Lua, but this example serves as a comprehensive example of what Team and SpawnLocation properties need to be used to achieve this setup.
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, in secondi, che un ForceField sarà applicata a un Player personaggio che spawnerà a questo SpawnLocation .Se la durata è zero, il ForceField non viene mai creato e non attiverà gli eventi Instance.DescendantAdded o Instance.ChildAdded.
Questo valore predefinito di questa proprietà è di 10 secondi.
La funzione della durata consente agli sviluppatori di fornire facilmente Players.Nota, ForceFields proteggerà solo gli utenti da Explosions e armi che utilizzano Humanoid:TakeDamage() per infliggere danni o controllare altrimenti un ForceField .
Campioni di codice
This sample will create a neutral SpawnLocation in the Workspace that'll give players spawning a ForceField for 20 seconds.
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 il SpawnLocation è abilitato o meno. Quando i giocatori sono disabilitati non possono essere generati al SpawnLocation e la funzionalità di SpawnLocation.AllowTeamChangeOnTouch è disabilitata.
Questa proprietà fornisce il modo più conveniente per impedire a Players di generarsi in uno Rigenerare.
Nota, anche se il cambio di squadra sul tocco utilizzando SpawnLocation.AllowTeamChangeOnTouch è disabilitato quando Enabled è impostato su false, altri eventi toccati utilizzando BasePart.Touched continueranno a essere Lanciare.
Campioni di codice
The following sample will create a SpawnLocation in the Workspace that will become semi-transparent when it is disabled.
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
Se o meno una spawn sia affiliata a un team specifico.Questo 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 i 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 lo Rigenerare.
Campioni di codice
This sample demonstrates how SpawnLocations can be used to make a checkpoint system. Typically this would be done Studio and not in Lua, but this example serves as a comprehensive example of what Team and SpawnLocation properties need to be used to achieve this setup.
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 a quale squadra il SpawnLocation è affiliato.Se la proprietà SpawnLocation.Neutral è falsa, solo Players con la stessa Player.TeamColor della schermata di Rigeneraredel TeamColor sarà in grado di spawnare lì.
Se SpawnLocation.AllowTeamChangeOnTouch è vero Player.Neutral sarà impostato su questa proprietà al contatto con lo Rigenerare.
Campioni di codice
This sample demonstrates how SpawnLocations can be used to make a checkpoint system. Typically this would be done Studio and not in Lua, but this example serves as a comprehensive example of what Team and SpawnLocation properties need to be used to achieve this setup.
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)