I wanted to make a rocket launcher that can kill humanoids without destroying joints. I followed a tutorial on wiki. This is the part of the rocket script that I changed while the other parts are irrelevant. But, I can only kill the humanoid when I shoot a direct hit into them. If I shoot around their bodies, it doesn't effect them, which it should!
function blow(hit)
Hit = hit
plr = game.Players:GetPlayerFromCharacter(hit.Parent)
if hit.Parent.Name ~= ("Door1") and hit.Parent.Name ~= ("Soldier") and hit.Parent.Name ~= ("Door") and hit.Parent.Name ~= ("Governor") and hit.Parent.Name ~= ("Emperor") and not plr then
swoosh:stop()
explosion = Instance.new("Explosion")
explosion.Position = shaft.Position
explosion.DestroyJointRadiusPercent = 0
elseif plr.TeamColor ~= script.Parent.Parent.Parent.TeamColor then
swoosh:stop()
explosion = Instance.new("Explosion")
explosion.Position = shaft.Position
explosion.DestroyJointRadiusPercent = 0
end
-- find instigator tag
local creator = script.Parent:findFirstChild("creator")
explosion.Hit:connect(function(hitPart, partDistance) onPlayerBlownUp(hitPart, partDistance, creator)
if creator ~= nil and not plr and hit.Parent.Name ~= ("Soldier") then
local maxDamage = 1000
local humanoid = hitPart.Parent and hitPart.Parent:FindFirstChild("Humanoid")
local plr = game.Players:GetPlayerFromCharacter(hitPart.Parent)
if humanoid and humanoid.Parent.Name ~= ("Soldier") and not plr then
local distance_factor = partDistance / explosion.BlastRadius -- get the distance as a value between 0 and 1
distance_factor = 1 - distance_factor -- flip the amount so that lower == closer == more damage
humanoid:TakeDamage(maxDamage*distance_factor) -- 0: no damage; 1: max damage
end
end
end)
All help appreciated.
