ForceField
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
Un ForceField protege a un Humanoid de recibir daño a través del método Humanoid:TakeDamage() y protege
Daño y articulaciones
Un ForceField afecta a la instancia a la que pertenece. Cuando está afectado por un Model, protege todo el BaseParts que desciende de ese aplicación de modelado. Si está afectado por un 1> Class.BasePart1>, las articulaciones de la parte solo se
ForceField sólo protege a Humanoids del daño infligido por el método Humanoid:TakeDamage(). Los humanoides todavía pueden ser dañados al configurar directamente 0> Class.Humanoid.Health0> . Por esta razón, se recomienda que
Visualización
Cuando ForceField.Visible está configurado como verdadero, se crea un efecto de partículas. Un conjunto de reglas determina dónde se emite este efecto:
- Cuando se añade a un BasePart el efecto se emitirá desde la posición de la parte BasePart.Position .
Muestras de código
local Players = game:GetService("Players")
local FORCE_FIELD_DURATION = 15
local function giveForcefield(player, duration)
local character = player.Character
if character then
local forceField = Instance.new("ForceField")
forceField.Visible = true
forceField.Parent = character
if duration then
task.delay(duration, function()
if forceField then
forceField:Destroy()
end
end)
end
end
end
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(_character)
giveForcefield(player, FORCE_FIELD_DURATION)
end)
end
Players.PlayerAdded(onPlayerAdded)
Resumen
Propiedades
Determina si el efecto de partículas de ForceField es visible o no.
Propiedades
Visible
Determina si el efecto de partículas de ForceField es visible o no. Al establecer esto en false te permite reemplazar el efecto de partículas predeterminado con un efecto de partículas personalizado como se muestra en el siguiente ejemplo de código.
Muestras de código
local Players = game:GetService("Players")
local FORCE_FIELD_DURATION = 15
local function createCustomForcefield(player, duration)
local character = player.Character
if character then
local humanoid = character:FindFirstChild("Humanoid")
if humanoid then
-- find the torso
local torsoName = humanoid.RigType == Enum.HumanoidRigType.R15 and "UpperTorso" or "Torso"
local torso = character:FindFirstChild(torsoName)
if torso then
-- create a forcefield
local forceField = Instance.new("ForceField")
forceField.Visible = false -- not visible
-- create a particle effect
local particleEmitter = Instance.new("ParticleEmitter")
particleEmitter.Enabled = true
particleEmitter.Parent = torso
-- listen for the forcefield being removed
forceField.AncestryChanged:Connect(function(_child, parent)
if not parent then
if particleEmitter and particleEmitter.Parent then
particleEmitter:Destroy()
end
end
end)
-- parent the forcefield and set it to expire
forceField.Parent = character
if duration then
task.delay(duration, function()
if forceField then
forceField:Destroy()
end
end)
end
end
end
end
end
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function(_character)
createCustomForcefield(player, FORCE_FIELD_DURATION)
end)
end
Players.PlayerAdded(onPlayerAdded)