ForceField

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Un ForceField protège un Class.Humanoid Class.Humanoid:TakeDamage() 2> Class.BasePart|BaseParts2> de prendre des dommages infl

Dégâts et articulations

Un ForceField influence la instance à laquelle il est associé. Lorsqu'il est associé à un Model , il protège tous les éléments de la descension de cet modèlisation. Si il est associé à un BaseParts, les jointures de la partie ne seront protégées que si la partie et la partie à laquelle elle est

ForceField ne protège que Humanoids du dommage infligé par la méthode Humanoid:TakeDamage(). Les humanoids peuvent toujours être endommagés en configurant directement 0> Class.Humanoid.Health0>. Pour cette raison, il est conseillé d'util

Visualisation

Lorsque ForceField.Visible est réglé sur vrai, un effet de particule est créé. Un certain nombre de règles déterminent l'endroit où cet effet sera émis :

  • Lorsqu'il est associé à un Model , si le modèle inclut un Humanoid nommé Humanoid avec 1> Class.Humanoid.RigType1> défini sur R15, l'effet sera émis à partir de la partie nommée 4>UpperTorso
  • Lorsqu'il est associé à un BasePart, l'effet sera émis à partir de la position de la partie BasePart.Position.

Échantillons de code

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)

Propriétés

Visible

Lecture parallèle

Détermine si oui ou non l'effet de particule ForceField est visible. En définissant ceci sur false, vous remplacez l'effet de particule par défaut par un effet de particule personnalisé comme indiqué dans l'exemple de code suivant.

Échantillons de code

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éthodes

Évènements