ForceField

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

A ForceField chroni Humanoid przed uszkodzeniem zadanym przez metodę Humanoid:TakeDamage() i chroni

Uszkodzenia i stawy

A ForceField wpływa na instancję, do której jest związany. Gdy jest związany z Model, chroni wszystkie z BaseParts opisujące się z tego modelu. Jeśli jest związany z 2> Class.BasePart2>, to połąc

ForceField chroni tylko Humanoids przed uszkodzeniem spowodowanym przez metodę Humanoid:TakeDamage(). Humanoidy nadal mogą być uszkodzone poprzez ustawienie 0> Class.Humanoid.Health0> bezpo

Wizualizacja

Gdy ForceField.Visible jest ustawiony na prawdę, efekt cząsteczek jest tworzony. Kilka zasad określa, skąd ten efekt będzie emitowany:

  • Gdy jest powiązany z Model, jeśli model zawiera Humanoid nazywającym się Humanoid z 1> Class.Humanoid.RigType1> ustawionym na R15, efekt zostanie wyemitowany z części nazywającej się 4> Torso </
  • Gdy zostanie ona powiązana z BasePart efekt zostanie wyemitowany z BasePart.Position części.

Przykłady kodu

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)

Właściwości

Visible

Odczyt równoległy

Określa, czy efekt cząsteczki ForceField jest widoczny lub nie. Ustawienie tego na false pozwala zastąpić efekt cząsteczki domyślnym efektem cząsteczki niestandardowego, jak pokazano w następnym przykładzie kodu.

Przykłady kodu

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)

Metody

Zdarzenia