Ok so i'm trying to remove those particles that are in the player but i'm finding it unusually hard could someone please help me?
timeReq = 1
function recursive(part, tab)
for i, m in pairs(part:GetChildren()) do
recursive(m, tab)
if m:IsA("BasePart") then
table.insert(tab, m)
end
end
end
function endTeleport(pos, partsToLerp, transparencies, char)
local e = {}
e.transparency = 1
while e.transparency > 0 do
e.transparency = math.max(e.transparency - wait()/timeReq, 0)
applyTransparencies(partsToLerp, transparencies, e.transparency)
end
teleporting = false
end
function applyTransparencies(tab1, tab2, lerp)
for i, m in pairs(tab1) do
local div = lerp
local s = 1
local e = tab2[i]
m.Transparency = ((s - e) * div) + e
end
end
function beginTeleport(pos, char)
teleporting = true
local partsToLerp = {}
recursive(char, partsToLerp)
local transparencies = {}
for i, m in pairs(partsToLerp) do
transparencies[i] = m.Transparency
local ef = Instance.new("ParticleEmitter")
ef.Parent = m
ef.Texture = "rbxgameasset://Images/purepng.com-smokesmokefireflamecandle-1411527094842ft0pp"
ef.Rate = 15
ef.Speed = NumberRange.new(0,0)
ef.Size = NumberSequence.new(1,1)
ef.Lifetime = NumberRange.new(.5,1)
local c1 = Color3.new(0,0,0)
local c2 = Color3.new(0,0,0)
ef.Color = ColorSequence.new(c1,c2)
ef.Transparency = NumberSequence.new(.3,.4)
ef.RotSpeed = NumberRange.new(300,300)
end
local e = {}
e.transparency = 0
while e.transparency < 1 do
e.transparency = math.min(e.transparency + wait()/timeReq, 1)
applyTransparencies(partsToLerp, transparencies, e.transparency)
end
local torso = char:WaitForChild("HumanoidRootPart")
char.HumanoidRootPart.CFrame = CFrame.new(pos, torso.Position)
endTeleport(pos, partsToLerp, transparencies, char)
end
teleporting = false
script.Parent.MouseDown.OnServerEvent:connect(function(plr)
if not teleporting then
local mouse = script.Parent.GetMouseProperties:InvokeClient(plr)
plr.Character:WaitForChild("HumanoidRootPart")
beginTeleport(mouse.Hit.p, plr.Character)
end
end)
