ForceField

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Sebuah Medan Kekuatan melindungi Humanoid dari mengalami kerusakan yang diberikan melalui metode Humanoid:TakeDamage() dan melindungi BaseParts dari memiliki persambungan mereka pecah karena ada Explosion .Medan Kekuatan baru diciptakan ketika karakter muncul di dan properti lebih besar dari nol.

Kerusakan dan Persambungan

Sebuah Medan Kekuatan mempengaruhi instansi yang menjadi orang tuanya.Ketika diasuh ke Model , itu melindungi semua BaseParts yang turun dari model itu.Jika diberi kepada BasePart , persambungan bagian hanya akan dilindungi jika bagian dan bagian yang terhubung kepadanya juga berisi ForceField .

Medan Kekuatan hanya melindungi Humanoids dari kerusakan yang ditangani oleh metode Humanoid:TakeDamage().Humanoid masih bisa rusak dengan mengatur Humanoid.Health langsung.Untuk alasan ini, disarankan agar Anda menggunakan Humanoid:TakeDamage() untuk menetapkan kerusakan sambil mempertimbangkan perlindungan medan gaya.

Visualisasi

Ketika ForceField.Visible diatur ke benar, efek partikel dibuat. Beberapa aturan menentukan dari mana efek ini akan dipancarkan:

  • Ketika diasuh ke Model , jika model memiliki Humanoid yang disebut Humanoid dengan Humanoid.RigType diatur ke R15, efek akan dipancarkan dari bagian yang disebut UpperTorso .Jika tidak, efek akan dipancarkan dari bagian yang bernama Torso .
  • Ketika diasuh ke BasePart efek akan dipancarkan dari bagian BasePart.Position .

Contoh Kode

This code sample includes a function that will give a Player a ForceField for a specific duration.

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)

Properti

Visible

Baca Paralel

Menentukan apakah efek partikel ForceField terlihat atau tidak.Mengatur ini ke false memungkinkan Anda mengganti efek partikel default dengan efek khusus seperti yang ditunjukkan dalam contoh kode berikut.

Contoh Kode

This sample includes a function that will replace the default ForceField particle effect with an effect using ParticleEmitters that can be modified by the developer.

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)

Metode

Acara