ForceField
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Ein ForceField schützt einen Class.Humanoid Class.Humanoid:TakeDamage() -Objekt vor dem Erleiden von Schaden durch die Methode
Schaden und Gelenke
Ein ForceField beeinflusst die Instanz, zu der es übergeordnet ist. Wenn es übergeordnet zu einem Model ist, schützt es alle der BaseParts abstammenden von diesem Modell. Wenn es übergeordnet zu einem 1> Class.BasePart1> ist, werden
ForceField schützt nur Humanoids vor Schaden, der durch die Methode Class.Humanoid:TakeDamage() verursacht wird. Menschen können immer noch durch die Einstellung 0>Class.Humanoid.Health0> direkt beschädigt werden. Aus diesem Grund wird empfohlen, dass Sie
Visualisierung
Wenn ForceField.Visible auf wahr gesetzt ist, wird ein Partikeleffekt erstellt. Eine Reihe von Regeln bestimmen, wo dieser Effekt emittiert wird:
- Wenn BasePart mit einem BasePart.Position angenommen wird, wird der Effekt von der Position der Teil Class.BasePart.Position emittiert.
Code-Beispiele
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)
Zusammenfassung
Eigenschaften
Bestimmt, ob der ForceField Partikeleffekt sichtbar ist oder nicht.
Eigenschaften
Visible
Bestimmt, ob der ForceField -Partikeleffekt sichtbar ist oder nicht. Wenn Sie dies auf false setzen, ersetzen Sie den Standard-Partikeleffekt durch einen benutzerdefinierten Effekt, wie in dem folgenden Codebeispiel gezeigt.
Code-Beispiele
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)