Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Filtering Enabled Confliction?

Asked by 8 years ago

So I turned on FilteringEnabled in my game, it breaks the gun I've been tweaking slowly. I've created a remote event, and gave it two different attempts neither work. This is a Script, there is a LocalScript, inside the tool playing an animation because I'm lazy and don't want to CFrame arms and welds and more part etc. Besides that, how can I work this with FilteringEnabled, and turning it off isn't an option even though it works fine without it.

What I want the RemoteEvent to do is either, find the mouse position or, TargetPoint, if neither of these can be done, how can I do this, making it raycast out of the part "Exit"?

Try 1:

local Tool = script.Parent
local vExit = Tool:WaitForChild("Exit")
local Config = Tool:WaitForChild("Configuration")
local PointEvent = Instance.new("RemoteEvent")
PointEvent.Parent = script.Parent
PointEvent.Name = "PointEvent"


------------------------------------------------
function Equip()
Wielder = Tool.Parent
Player = Wielder.Name
Fire = Tool.Handle:WaitForChild("Fire")
Pump = Tool.Handle:WaitForChild("Pump")
end

------------------------------------------------
function Unequip()
    if Fire then
        Fire:Stop()
    end
    if Pump then
        Pump:Stop()
    end
end
------------------------------------------
function Reload()
Tool.Enabled = false
for i = 1, 7 do
    Config.Ammo.Value = Config.Ammo.Value + 1
    Pump:Play()
    wait(Fire.TimeLength)
end 
Tool.Enabled = true
end

----------------------------------------- I'M THE PROBLEM
function Fire()
PointEvent:FireServer(Wielder.Humanoid.TargetPoint)
PointEvent.OnServerEvent:connect(function(player, target)
    TARGET = (target)
end)
if Tool.Enabled == false then
    return
end
if Config.Ammo.Value <= 0 then
    Reload()
    return
end 

if Fire then
    Fire:Play()
end
Config.Ammo.Value = Config.Ammo.Value - 1
Tool.Enabled = false
for i = 1, math.random(7,10) do --number of bullets coming out
local ray = Ray.new(Tool.Exit.Position, ((TARGET --[[Here, I start the bullet but I can't be found in FilteringEnabled]]  - Vector3.new(math.random(-0.25, 1), math.random(-1,2), math.random(-0.25, 1)) - Tool.Exit.Position)).unit * 45)
local part, position = workspace:FindPartOnRay(ray, game.Workspace:FindFirstChild(Player), false, true)

local beam = Instance.new("Part", workspace)
beam.BrickColor = BrickColor.new("Medium stone grey")
beam.FormFactor = "Custom"
beam.Material = "Plastic"
beam.Transparency = 0.915
beam.Anchored = true
beam.Locked = true
beam.CanCollide = false

local distance = (Tool.Exit.CFrame.p - position).magnitude
beam.Size = Vector3.new(0.05, 0.05, distance)
beam.CFrame = CFrame.new(Tool.Exit.CFrame.p, position) * CFrame.new(Tool.Exit.Position,Tool.Exit.CFrame.p, -distance / 2)

game:GetService("Debris"):AddItem(beam, 0.1)

if part then
    local humanoid = part.Parent:FindFirstChild("Humanoid")

    if not humanoid then
humanoid = part.Parent.Parent:FindFirstChild("Humanoid")
end

if humanoid then
     humanoid:TakeDamage(math.random(5.5,7))
                end
            end
        end
wait(.565)
Tool.Enabled = true
end
---------------------------------------

Tool.Equipped:connect(Equip)
Tool.Unequipped:connect(Unequip)
Tool.Activated:connect(Fire)

Try 2:

local Tool = script.Parent
local vExit = Tool:WaitForChild("Exit")
local Config = Tool:WaitForChild("Configuration")
local PointEvent = Instance.new("RemoteEvent")
PointEvent.Parent = script.Parent
PointEvent.Name = "PointEvent"


------------------------------------------------

function Equip()
Wielder = Tool.Parent
Player = Wielder.Name
Fire = Tool.Handle:WaitForChild("Fire")
Pump = Tool.Handle:WaitForChild("Pump")

while true do 
PointEvent:FireServer(mouse.Hit.p)
PointEvent.OnServerEvent:connect(function(player, target)
    TARGET = (target)
    print(target)
end)
    wait()
end
end

------------------------------------------------

function Unequip()
    if Fire then
        Fire:Stop()
    end
    if Pump then
        Pump:Stop()
    end
end

------------------------------------------

function Reload()
Tool.Enabled = false
for i = 1, 7 do
    Config.Ammo.Value = Config.Ammo.Value + 1
    Pump:Play()
    wait(Fire.TimeLength - 0.045)
end 
Tool.Enabled = true
end

-----------------------------------------  I'M THE PROBLEM

function Fire()
if Tool.Enabled == false then
    return
end
if Config.Ammo.Value <= 0 then
    Reload()
    return
end 
if Fire then
    Fire:Play()
end
Config.Ammo.Value = Config.Ammo.Value - 1
Tool.Enabled = false
for i = 1, math.random(7,10) do --number of bullets coming out
local ray = Ray.new(Tool.Exit.Position, ((TARGET --[[Here, I start the bullet but I can't be found in FilteringEnabled]]  - Vector3.new(math.random(-0.25, 1), math.random(-1,2), math.random(-0.25, 1)) - Tool.Exit.Position)).unit * 45)
local part, position = workspace:FindPartOnRay(ray, game.Workspace:FindFirstChild(Player), false, true)

local beam = Instance.new("Part", workspace)
beam.BrickColor = BrickColor.new("Medium stone grey")
beam.FormFactor = "Custom"
beam.Material = "Plastic"
beam.Transparency = 0.935
beam.Anchored = true
beam.Locked = true
beam.CanCollide = false

local distance = (Tool.Exit.CFrame.p - position).magnitude
beam.Size = Vector3.new(0.05, 0.05, distance)
beam.CFrame = CFrame.new(Tool.Exit.CFrame.p, position) * CFrame.new(Tool.Exit.Position,Tool.Exit.CFrame.p, -distance / 2)

game:GetService("Debris"):AddItem(beam, 0.1)

if part then
    local humanoid = part.Parent:FindFirstChild("Humanoid")

    if not humanoid then
humanoid = part.Parent.Parent:FindFirstChild("Humanoid")
end

if humanoid then
     humanoid:TakeDamage(math.random(5.5,7))
                end
            end
        end
wait(.565)
Tool.Enabled = true
end

---------------------------------------


Tool.Equipped:connect(Equip)
Tool.Unequipped:connect(Unequip)
Tool.Activated:connect(Fire)

Also, this is my first time using RemoteEvents.

Answer this question