SpawnLocation
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
Las ubicaciones de spawn, o "spawns", determinan dónde reaparece un Player cuando muere. Pueden configurarse para permitir que solo ciertos jugadores usen cada regeneración, usando Teams . También controlan cómo se configuran los ForceFields para los jugadores recién nacidos.
Las ubicaciones de spawn se pueden usar como puntos de control, como en un obstáculo, usando la propiedad SpawnLocation.AllowTeamChangeOnTouch, para que cuando un jugador toque el obstáculo, cambie de equipo al equipo de la ubicación de spawn. En este caso, solo la primera Team debería tener Team.AutoAssignable
Nota si se agrega una SpawnLocation a la Workspace en Studio con SpawnLocation.Neutral configurado para false un Equipo se creará correspondiente a SpawnLocation.TeamColor si no ya existe. Este comportamiento no ocurre
Generando reglas
Hay varias reglas que entran en juego para una ubicación de generación específica cuando un jugador reaparece:
- Cuando SpawnLocation.Neutral está configurado como falso solo Players con Player.TeamColor que coincida con 1> Class.SpawnLocation.TeamColor1> respawnará por encima de él
- Cuando SpawnLocation.Neutral está configurado como verdadero, cualquier jugador puede generar por encima de él independientemente de SpawnLocation.TeamColor
- Si hay múltiples invocaciones elegibles disponibles para un Player, se elegirá una aleatoria
- Los jugadores aparecerán en diferentes puntos en la parte superior de una SpawnLocation, pero actualmente, todavía pueden aparecer uno encima del otro si aparecen justo después de uno y otro
Véase también:
- Si desea configurar el tiempo que tarda en reaparecer un jugador, consulte la propiedad RespawnTime
Muestras de código
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)
Resumen
Propiedades
Permite a un Player unirse al equipo tocando el SpawnLocation. Cuando se establece en verdadero, si un Player personaje viene en contacto con el 1> Class.SpawnLocation1>, el color del equipo del jugador se establecerá en 4> Class.
La duración de tiempo, en segundos, que se aplicará a un personaje ForceField que se genera en este Player . Si la duración es cero, la SpawnLocation nunca se creará y no desencadenará los eventos 1> Class.
Establece si el SpawnLocation está habilitado o no. Cuando los jugadores deshabilitados no pueden generar en el SpawnLocation y la función Permitir cambio de equipo en toque está deshabilitada.
Si un SpawnLocation está afiliado con un equipo específico. Esto significa que cualquier Player , de cualquier Team, puede generar en él si esta propiedad está configurada como verdadera.
Establece a qué equipo pertenece el SpawnLocation . Si la propiedad SpawnLocation.Neutral es falsa, solo Players con el mismo 2> Class.Player.TeamColor2> que el color del equipo del regeneraciónpodrá generar allí.
Sets the overall shape of the object.
Determina si una parte es inmóvil por física.
La velocidad ángular de la montaje de la parte.
El centro de masa de la montura del mundo en el espacio de montaje.
La velocidad lineal de la montaje de la parte.
La masa total de la montura del parte.
Una referencia a la parte raíz de la instalación.
Determina el tipo de superficie para la Cara trasera de una parte (+Z dirección).
Determina el tipo de superficie para la Cara inferior de una parte (-Y dirección).
Determina el color de una parte.
Determina la posición y orientación de la BasePart en el mundo.
Determina si una parte puede colisionar con otras partes.
Determina si la parte se considera durante las operaciones de consulta espacial.
Determina si Touched y TouchEnded eventos se disparan en la parte.
Determina si una parte proyecta una sombra o no.
Describe la posición del mundo en la que se encuentra el centro de masa de una parte.
Describe el nombre de un grupo de colisión de una parte.
Determina el color de una parte.
Indica las propiedades físicas actuales de la parte.
Determina varias propiedades físicas de una parte.
Se utiliza para habilitar o deshabilitar las fuerzas aerodinámicas en las partes y montajes.
El tamaño físico real de la BasePart según el motor de física.
Determina el tipo de superficie para la cara delantera de una parte (-Z dirección).
Determina el tipo de superficie para la cara izquierda de una parte (-X dirección).
Determina un multiplicador para BasePart.Transparency que solo es visible para el cliente local.
Determina si una parte es seleccionable en Studio.
Describe la masa de la parte, el producto de su densidad y volumen.
Determina si la parte contribuye a la masa o inercia total de su cuerpo rígido.
Determina las propiedades físicas predeterminadas y textura de una parte.
El nombre de MaterialVariant .
Describe la rotación de la parte en el mundo.
Especifica el desplazamiento del eje de la parte desde su CFrame .
Describe la posición de la parte en el mundo.
Tiempo desde la última actualización de física registrada.
Determina la cantidad de un bloque que refleja el cielo.
Describe el cambio de tamaño más pequeño permitido por el método de escalado.
Describe las caras en las que se puede redimensionar una parte.
Determina el tipo de superficie para la Cara Derecha de una parte (+X dirección).
La regla principal para determinar la parte raíz de una arquitectura.
La rotación de la parte en grados para los tres ejes.
Determina las dimensiones de una parte (Longitud, ancho, altura).
Determina el tipo de superficie para la Cara Superior de una parte (+Y dirección).
Determina la cantidad de información que se puede ver a través de (el revés de la opacidad de la parte).
Métodos
Métodos heredados de BasePartAplicar un impulso ángular a la instalación.
Aplica un impulso a la montura en el centro de montaje de la montura center of mass .
Aplica un impulso a la montura en la posición especificada.
Regresa si las partes pueden chocar entre sí.
Comprueba si puedes establecer el propietario de la red de una parte.
Devuelve una tabla de partes conectadas al objeto por cualquier tipo de articulación rígida.
Devuelva todos los Joints o Constraints que estén conectados a esta parte.
Devuelve el valor de la propiedad Mass .
Devuelve al jugador actual que es el propietario de la red de esta parte, o nulo en caso del servidor.
Regresa true si el motor del juego decide automáticamente el propietario de la red para esta parte.
Regresa la parte base de una montura de partes.
Devuelve una tabla de todas las piezas BasePart.CanCollide que tengan intersección con esta parte.
Devuelve la velocidad lineal del montaje de la parte en la posición relativa a esta parte.
Regresa veraz si el objeto está conectado a una parte que lo sostendrá en su lugar (por ejemplo, una parte Anchored )), de lo contrario regresa false.
Cambia el tamaño de un objeto al usar la herramienta de escalado de Studio.
Establece al jugador dado como propietario de la red para esto y todas las partes conectadas.
Deja que el motor del juego decida dinámicamente quién se encargará de la física de la parte (uno de los clientes o el servidor).
- IntersectAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Crea una nueva IntersectOperation a partir de la geometría superpuesta de la parte y las otras partes en el matriz/listadado.
- SubtractAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Crea una nueva UnionOperation desde la parte, minuscula la geometría ocupada por las partes en el matriz/listadado.
- UnionAsync(parts : Instances,collisionfidelity : Enum.CollisionFidelity,renderFidelity : Enum.RenderFidelity):Instance
Crea una nueva UnionOperation desde la parte, plus la geometría ocupada por las partes en el matriz/listadado.
Gets the pivot of a PVInstance.
Transforms the PVInstance along with all of its descendant PVInstances such that the pivot is now located at the specified CFrame.
Eventos
Eventos heredados de BasePartDispara cuando una parte deja de tocar otra parte como resultado de un movimiento físico.
Dispara cuando una parte toca otra parte como resultado del movimiento físico.
Propiedades
AllowTeamChangeOnTouch
Permite a un Player unirse al jugadoral tocar el SpawnLocation. Cuando se establece en verdadero
Esto no funcionará cuando SpawnLocation.Enabled esté configurado como falso.
Haciendo Puntos de Control
Esta característica a menudo se usa para crear puntos de control en carreras de obstáculos o similares.
Muestras de código
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 duración de tiempo, en segundos, que se aplicará a un personaje ForceField que se genera en este Player . Si la duración es cero, la SpawnLocation nunca se creará y no desencadenará los eventos 1> Class.
Este valor predeterminado de esta propiedad es 10 segundos.
La función de duración permite a los desarrolladores brindar fácilmente protección a Players de 'spawn killing' que puede ser una experiencia frustrante para los jugadores. Nota, ForceFields sólo protegerá a los usuarios de Class.Explosion|
Muestras de código
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
Establece si el SpawnLocation está habilitado o no. Cuando los jugadores deshabilitados no pueden generar en el SpawnLocation y la función SpawnLocation.AllowTeamChangeOnTouch está deshabilitada.
Esta propiedad proporciona la forma más conveniente de evitar que Players aparezca en un regeneración.
Nota, aunque el cambio de equipo en el toque con el SpawnLocation.AllowTeamChangeOnTouch está desactivado cuando Enabled está configurado como falso, otros eventos tocados con el BasePart.Touched todavía se desencadenar.
Muestras de código
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
Si un spawn está afiliado con un equipo específico. Esto significa que cualquier Player , de cualquier Team , puede generar en él si esta propiedad está configurada como verdadera.
Si Neutral está establecido en falso, solo los jugadores cuyo Player.TeamColor es igual a SpawnLocation.TeamColor pueden usar el SpawnLocation.
Si SpawnLocation.AllowTeamChangeOnTouch es cierto, Player.Neutral será establecido a esta propiedad al contactar con el regeneración.
Muestras de código
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 propiedad TeamColor establece qué equipo el SpawnLocation está afiliado. Si la propiedad SpawnLocation.Neutral es falsa, solo Players con el mismo 2> Class.Player.TeamColor2> que el color del equipo podrá generar allí.
Si SpawnLocation.AllowTeamChangeOnTouch es cierto, Player.Neutral será establecido a esta propiedad al contactar con el regeneración.
Muestras de código
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)