ForceField
*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 zostanie ona powiązana z BasePart efekt zostanie wyemitowany z BasePart.Position części.
Przykłady kodu
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)
Podsumowanie
Właściwości
Określa, czy efekt cząsteczki ForceField jest widoczny lub nie.
Właściwości
Visible
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
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)