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

Script doesnt fire the server when it hits a certain part, but it does for other parts?[SOLVED]

Asked by 6 years ago
Edited 6 years ago

I have a gun script and I have been working for 6 hours today to get it to damage someone when they get hit in the helmet.

The problem now is when a player gets hit it fires the server, but for some reason when a player gets hit in the helmet it doesnt fire the server even know the code is almost the same.

There are 2 scripts a local and a server side one here they are.

Local script

        local Hit,EndPos = RayCast(Start,Direction,5000,Character)
        if not Module.ExplosiveEnabled then
            if Hit and Hit.Parent then
                local TargetHumanoid = Hit.Parent:FindFirstChild("Humanoid") or Hit.Parent.Parent:FindFirstChild("Humanoid")
                local TargetTorso = Hit.Parent:FindFirstChild("UpperTorso")             

                if Hit.Parent.Parent:FindFirstChild("Humanoid") then
                    print("Helmet Hit")
                end

                --local TargetTEAM = Hit.Parent:FindFirstChild("TEAM")
                if TargetHumanoid and TargetHumanoid.Health > 0 and TargetTorso or Hit.Parent.Parent:FindFirstChild("Humanoid") then
                    print("ItFired")
                    --if TargetTEAM and TargetTEAM.Value ~= TEAM.Value then
                        InflictTarget:FireServer(TargetHumanoid,
                                                TargetTorso,
                                                (Hit.Name == "Head" and Module.HeadshotEnabled) and Module.BaseDamage * Module.HeadshotDamageMultiplier or Module.BaseDamage,
                                                Direction,
                                                Module.Knockback,
                                                Module.Lifesteal,
                                                Module.FlamingBullet)
                        PiercedHumanoid[TargetHumanoid] = true  
                    --end
                    else
                    PierceAvailable = 0
                end
            end
        else

Its just a small chunk of the code, its mostly the important stuff but there is the local script now heres the server script

Server script

InflictTarget.OnServerEvent:connect(function(Player,TargetHumanoid,TargetTorso,Damage,Direction,Knockback,Lifesteal,FlamingBullet)
    if Player and TargetHumanoid and TargetHumanoid.Health ~= 0 and TargetTorso then
        while TargetHumanoid:FindFirstChild("creator") do
            TargetHumanoid.creator:Destroy()
        end
        local creator = Instance.new("ObjectValue",TargetHumanoid)
        creator.Name = "creator"
        creator.Value = Player
        game.Debris:AddItem(creator,5)
        print("Server Fired")
        TargetHumanoid:TakeDamage(Damage)
        if TargetHumanoid.Health <= 0 then
            game.ReplicatedStorage.DataFile[Player.Name].AssaultClassKills.Value = game.ReplicatedStorage.DataFile[Player.Name].AssaultClassKills.Value + 1
        end
        if Knockback > 0 then
            TargetTorso.Velocity = Direction * Knockback
        end
        if Lifesteal > 0 and Humanoid and Humanoid.Health ~= 0 then
            Humanoid.Health = Humanoid.Health + (Damage*Lifesteal)
        end
        if FlamingBullet then
            local Debuff = TargetHumanoid.Parent:FindFirstChild("IgniteScript") or script.IgniteScript:Clone()
            Debuff.creator.Value = Player
            Debuff.Disabled = false
            Debuff.Parent = TargetHumanoid.Parent
        end
    end
end)

The script is supposed to when a player gets hit in the helmet fire to the server but it doesnt but when they get hit normally it does fire the server.

It prints "Helmet Hit" so it knows the helmet is getting hit it also prints "ItFired" but it doesnt print the serverside stuff when you get hit in the helmet.

Any ideas? Please please please help meeeee

Thank you for your time. :)

Answer this question