ForceField

Veraltete anzeigen

*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 das Modell mit einem Model verbunden ist, wenn das Modell einen Humanoid mit dem Namen Humanoid mit 1> Class.Humanoid.RigType1> auf R15 ausgewählt hat, wird der Effekt vom Teil mit dem Namen 4> Oberer Torso4> emittiert. Andern
  • Wenn BasePart mit einem BasePart.Position angenommen wird, wird der Effekt von der Position der Teil Class.BasePart.Position emittiert.

Code-Beispiele

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)

Eigenschaften

Visible

Parallel lesen

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

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)

Methoden

Ereignisse