ForceField

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

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 enlaza a un Model , si el modelo incluye un Humanoid nombrado Humanoid con un 1>Class.Humanoid.RigType1> configurado para R15, el efecto se emitirá desde la parte nombrada 4>Torso4> . De lo contrario,
  • Cuando se añade a un BasePart el efecto se emitirá desde la posición de la parte BasePart.Position .

Amostras de código

ForceField Instantiation

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)

Propriedades

Visible

Ler Parallel

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.

Amostras de código

Custom ForceField Effect

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)

Métodos

Eventos