ForceField

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Bir ForceField bir Class.Humanoid 'ın hasar almasını korur ve Class.Humanoid:TakeDamage() yönteminden ve Class.

Hasar ve Ortaklar

Bir ForceField , onun bağlandığı örnekleyi etkiler. Bir Model ile bağlandığında, tüm BaseParts aşağıdan gelenleri korur. Bir 1>Class.BasePart1> ile bağ

ForceField sadece Humanoids 'den zarar veren yöntemden korur. Humanoid'ler hala Humanoid:TakeDamage() metodu ile hasar alabilir. Bu nedenle, koruma alanı koruması için 0> Class.H

Görüntüleme

Class.ForceField.Visible doğru olarak ayarlandığında bir parçacık efekti oluşturulur. Bir dizi kurallar bu efekten nerede yayınlanacağını belirler:

  • Bir Model ebeveynine sahip olursa, modelde Humanoid adlı şekil kümesiyle Humanoid adlı parça seti R15 olarak yayınlanırsa, etki üst kısımdaki isimlendirilen parçadan yayınlan
  • Bir BasePart ebeveynine sahip olunca etki BasePart.Position 'den çıkacaktır.

Kod Örnekleri

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)

Özellikler

Visible

Paralel oku

Class.ForceField parçacık efekti görünür olup olmadığını belirler. Bu değeri false ile ayarlayarak, önbellek parçacık efektini gösteren benzersiz bir efekt ile değiştirebilirsiniz, gösterilen kod örneğinde gösterildiği gibi.

Kod Örnekleri

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)

Yöntemler

Etkinlikler