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

Why does it not fire the event when I equip the tool?

Asked by 9 years ago

I am trying to make a gun that fires single bullets (instead of rays) even though filteringenabled is on. There is a problem in the localscript that makes the rest of the tool stop working. I have based my script on StickMasterLuke's tutorials on how to make a Net Gun, but it seems like it doesn't fire my function when it is called upon. Here's my LocalScript

local tool = script.Parent

local event = game.ReplicatedStorage:WaitForChild("RemoteEvent")

local firesound = tool.Handle:FindFirstChild("FireSound")
local reloadsound = tool.Handle:FindFirstChild("ReloadSound")

local maxammo = tool.Configurations.MaxAmmo.Value
local ammo = tool.Configurations.Ammo.Value
local attackcooldown = tool.Configurations.AttackCooldown.Value
local reloadtime = tool.Configurations.ReloadTime.Value
local range = tool.Configuration.Range.Value

equipped = false
canfire = true
reloading = false

function checkintangible(hit)
    if hit and hit~=nil then
        if hit:IsDescendantOf(tool.Parent) or hit.Transparency>.8 or hit.Name=="Handle" or string.lower(string.sub(hit.Name,1,6))=="effect" then
            return true
        end
    end
    return false
end

function castray(startpos, vec, length, ignore, delayifhit)
    local hit, endpos2 = game.Workspace:FindPartOnRay(Ray.new(startpos ,vec * length), ignore)
    if hit~=nil then
        if checkintangible(hit) then
            hit, endpos2 = castray(endpos2+(vec*.01),vec,length-((startpos-endpos2).magnitude),ignore,delayifhit)
        end
    end
    return hit,endpos2
end

tool.Equipped:connect(function(mouse) --this doesn't fire
    equipped = true
    if mouse then
        mouse.Icon = "rbxasset://textures\\GunCursor.png"
        mouse.Button1Down:connect(function()
            local humanoid = tool.Parent:FindFirstChild("Humanoid")
            local head = tool.Parent:FindFirstChild("Head")
            local torso = tool.Parent:FindFirstChild("Torso")
            if canfire and ammo >=1 and not reloading and humanoid.Health >= 1 then
                firesound:Play()

                canfire = false

                local character = tool.Parent               

                local vec = (mouse.Hit.p - head.Position).unit
                local hit ,endpos = castray(head.Position, vec, range, tool.Parent)

                event:FireServer("Fire", endpos, hit)

                wait(attackcooldown)                
                canfire = true
            elseif ammo <= 0 then
                canfire = false

                event:FireServer("Reload")
                wait(reloadtime)

                canfire = true               
            end
        end)
    end
end)

tool.Unequipped:connect(function()
    equipped = false
end)

I thank you for any help in advance! :))

0
Try putting a print on line 38, after the Equipped event to see if it fires and something else is erroring. Also, is there any output? yumtaste 476 — 9y
0
It doesn't print, and nothing appears in the output. It simply never starts to run :/ SonioSony 53 — 9y

Answer this question