ForceField
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
Một ForceField bảo vệ một Humanoid khỏi bị hại do các phương pháp Class
Sát thương và đầu gối
Một ForceField ảnh hưởng đến instância nó được gắn nhãn. Khi gắn nhãn vào một Model , nó bảo vệ tất cả các BaseParts đang xu
ForceField chỉ bảo vệ Humanoids khỏi sát thương được gây ra bởi phương thức Humanoid:TakeDamage(). Humanoids vẫn có thể bị hư hỏng bằng cách th
Biểu tượng
Khi ForceField.Visible được cài đặt thành true, một hiệu ứng hạt sẽ được tạo ra. Một loạt các quy tắc xác định nơi mà hiệu ứng này sẽ được phát từ:
- Khi được gắn với một BasePart , hiệu ứng sẽ được phát ra từ vị trí BasePart.Position của bộ phận.
Mẫu mã
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)
Tóm Tắt
Thuộc Tính
Xác định có hay không hiệu ứng hạt ForceField .
Thuộc Tính
Visible
Xác định có hay không hiệu ứng hạt ForceField được hiển thị. Cài đặt này để false cho phép bạn thay thế hiệu ứng hạt mặc định bằng một hiệu ứng hạt tùy chỉnh như được cho thấy trong mẫu mã sau đây.
Mẫu mã
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)