ForceField

Hiển Thị Bản Đã Lỗi Thời

*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 Model , nếu mô hình bao gồm một Humanoid được gọi là Humanoid với 1> Class.Humanoid.RigType1> đặt trên R
  • 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ã

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)

Thuộc Tính

Visible

Đọc Song Song

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ã

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)

Phương Pháp

Sự Kiện