ForceField
*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 BasePart, l'effet sera émis à partir de la position de la partie BasePart.Position.
Échantillons de code
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)
Résumé
Propriétés
Détermine si oui ou non l'effet de particule ForceField est visible.
Propriétés
Visible
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
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)