ForceField
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Un ForceField protegge un Humanoid dal subire danni attraverso il metodo Humanoid:TakeDamage() e protegge un <
Danni e arti
Un ForceField influenza l'istanza a cui è parented to. Quando è parented to a Model , protegge tutte le parti che discendono da quel modello. Se è parented to a BaseParts, le parti congiunte di parte e parte congiunta saranno protette se sia la parte che la parte
ForceField protegge solo Humanoids dal danno inflitti dal metodo Humanoid:TakeDamage() . Gli umanoidi possono essere comunque danneggiati impostando direttamente 0> Class.Humanoid.Health0> . Per questo motivo, si cons
Visualizzazione
Quando ForceField.Visible è impostato su true, viene creato un effetto di particelle. Un insieme di regole determina dove questo effetto verrà emesso:
- Quando viene affidato a un BasePart l'effetto verrà emesso dal punto di intersezione della parte BasePart.Position .
Campioni di codice
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)
Proprietà
Visible
Determina se è visibile o no l'effetto di parte ForceField . Impostando questo su false ti consente di sostituire l'effetto di parte predefinito con un effetto di parte personalizzato come mostrato nel seguente esempio di codice.
Campioni di codice
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)