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

Raycast shooting backwards for other players but not me?

Asked by 8 years ago

I've been trying to figure out why my tool that shoots raycast isn't firing correctly for other players, but fires correctly for me. Is there anything wrong with this, or is it just set up incorrectly?

function Fire(TargetPos)
    coroutine.resume(coroutine.create(function()
    if game.Players.LocalPlayer.Character["Humanoid"].Health > 0 then
    --coroutine.resume(coroutine.create(function()
    if Reloading == false and Ammo > 0 then

    local RotX = (math.random(-(AccuricyRange * 5), (AccuricyRange * 5)) * 0.1)
    local RotY = (math.random(-(AccuricyRange * 5), (AccuricyRange * 5)) * 0.1)
    local DirectionCF = CFrame.new(Barrel.Position, TargetPos) * CFrame.Angles(math.rad(RotX), math.rad(RotY), 0)
    local Dist = 1000
    local Ray = Ray.new(Barrel.Position, (DirectionCF * CFrame.new(0, 0, -1000)).p - Barrel.Position)
    local Hit, Pos = game.Workspace:FindPartOnRay(Ray, game.Players.LocalPlayer.Character)
    if Hit ~= nil then
        Dist = (Pos - Barrel.Position).magnitude
        local Human = nil
        if Hit.Parent:findFirstChild("Humanoid") then
            Human = Hit.Parent["Humanoid"]
        elseif Hit.Parent.Parent:findFirstChild("Humanoid") then
            Human = Hit.Parent.Parent["Humanoid"]
        end
        if Human ~= nil then
            coroutine.resume(coroutine.create(function()
            local BulletBlocked = false
            local BlockedBySaber = TestForLightsaber(Human, DirectionCF.p, Pos)
            if BlockedBySaber == true then
                BulletBlocked = true
            end
            if BulletBlocked == false then
                local EPlayer = game.Players:GetPlayerFromCharacter(Human.Parent)
                local DamageHuman = true
                if EPlayer ~= nil then
                    if EPlayer.TeamColor == game.Players.LocalPlayer.TeamColor and TeamKill == false then
                        DamageHuman = false
                    end
                end
                --wait(0.01)
                if DamageHuman == true and Human.Parent:findFirstChild("ForceField") == nil then
                    Human.Health = Human.Health - (math.random((Damage - DamageRange) * 10, (Damage + DamageRange) * 10) * 0.1)
                    if Human.Health <= 0 then
                        if Human:findFirstChild("creator") == nil then
                            local CreatorValue = Instance.new("ObjectValue", Human)
                            CreatorValue.Name = "creator"
                            CreatorValue.Value = game.Players.LocalPlayer
                        end
                    end
                end
            end
            end))
        end
    end

    coroutine.resume(coroutine.create(function()
    Bullet.CFrame = DirectionCF
    script.Parent["Handle"]["Fire"]:Play()
    Barrel["PointLight"].Enabled = true
    if BulletColor == nil then
    Bullet.BrickColor = game.Players.LocalPlayer.TeamColor
    else
    Bullet.BrickColor = BulletColor
    end
    Barrel["PointLight"].Color = Bullet.BrickColor.Color
    Bullet.Transparency = 0.2
    wait(0.03)
    Bullet.Transparency = 1
    Barrel["Flash"]["Flash"].Visible = false
    Barrel["PointLight"].Enabled = false
    end))

    BulletMesh.Scale = Vector3.new(0.25, 0.25, Dist)
    BulletMesh.Offset = Vector3.new(0, 0, -(Dist / 2))

    end
    --end))
    end
    end))
end

Answer this question