ForceField
*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 BasePart ebeveynine sahip olunca etki BasePart.Position 'den çıkacaktır.
Kod Örnekleri
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)
Özet
Özellikler
Class.ForceField parçacık efekti görünür olup olmadığını belirler.
Özellikler
Visible
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
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)