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

Problems with bullet-script not activating/ doing anything (?)

Asked by 4 years ago

Hey there, I am trying to script a relatively simple bullet script for a (kinda) gun.

I am having problems with my bullet script tho ;( Or to be more precise: The script that registers when the bullet touches something, and if it is a humaniod - and so on.

Atm, I have two scripts:

The "GunKeyPressing script" (where there shouldn't be a problem), is a Local Script in the Starterpack that registers whenever I click the "f" key, and then clones a bullet, parents it to the Workspace (and so on). And then I have the "BulletDamage script", which is the one I am having trouble with. It gets successfully transported and enabled inside the bullet (I have it disabled until it is parented to the bullet-part - then I enable it), but the script itself doesn't actually seem to work (I tried setting a print-statement at the top of the script). Atm, I have it stored under the GunKeyPressing script (which was in the Starterpack), but I have also tried storing it in the ServerScriptService and ReplicatedStorage - without much luck either.

Here is the GunKeyPressing script (which I don't think there is anything wrong with):

local player = game.Players.LocalPlayer
local mouse = player:GetMouse()
local bullet = game.ReplicatedStorage:FindFirstChild("Bullet") -- the actual bullet (just a black ball)
local bodyForce = bullet.BulletBodyForce

local barrel = game.Workspace.PlaneGun.Barrel 
bodyForce.Force = barrel.CFrame.LookVector * 400

local cooldown = false

mouse.KeyDown:Connect(function(key)
    if key == "f" then
        if cooldown == false then
            if bullet then -- if we found the bullet in "ReplicatedStorage"

                cooldown = true

            local bulletCopy = bullet:Clone()

            local bulletDamage = script:FindFirstChild("BulletDamage") -- as I mentioned, the "BulletDamage script" is parented to the "GunKeyPressing Script".



            game.Debris:AddItem(bulletCopy, 100) 
            bulletCopy.Parent = game.Workspace
            bulletCopy.Position = game.Workspace.PlaneGun.FirePosition.Position -- we are just positioning the bullet.





            if bulletDamage then
                local bulletDamageCopy = bulletDamage:Clone()
                bulletDamageCopy.Parent = bulletCopy
                bulletDamageCopy.Disabled = false -- And then we activate it after having moved it (it started of by being disabled).
            end


            wait(0.5) -- cooldown time

                cooldown = false

            else
            print("Bullet was not found")
            end
        end
    end
end)

And now to "BulletDamage" script, where the script doesn't wanna run:

print("hi") -- just to test if there is any contact (which there is not atm)

if script.Disabled == false then

    script.AncestryChanged:Connect(function () -- I never used this function before, so I might have used it incorrectly.

    if script.Parent.Name == "Bullet" then

local bulletCopy = script.Parent

bulletCopy.Touched:Connect (function (hit)
    local humaniod = hit.Parent:FindFirstChild("Humaniod")

    local firePos = hit.Parent:FindFirstChild ("FirePosition") -- This is just the part where the bullet "spawns", so I don't wanna make that count as a touch.

    if not firePos then
        if humaniod then
        -- insert stuff
        end
    end
end)

end

end)

end

Thanks in advance! Any kind of help is much appreciated :-)

Answer this question