Code:
-- Called just before a player dies.
function Clockwork:DoPlayerDeath(player, attacker, damageInfo)
self.player:DropWeapons(player, attacker);
self.player:SetAction(player, false);
self.player:SetDrunk(player, false);
local deathSound = self.plugin:Call("PlayerPlayDeathSound", player, player:GetGender());
local decayTime = self.config:Get("body_decay_time"):Get();
if (decayTime > 0) then
self.player:SetRagdollState(player, RAGDOLL_KNOCKEDOUT, nil, decayTime, self.kernel:ConvertForce(damageInfo:GetDamageForce() * 32));
else
self.player:SetRagdollState(player, RAGDOLL_KNOCKEDOUT, nil, 600, self.kernel:ConvertForce(damageInfo:GetDamageForce() * 32));
end;
if (self.plugin:Call("PlayerCanDeathClearRecognisedNames", player, attacker, damageInfo)) then
self.player:ClearRecognisedNames(player);
end;
if (self.plugin:Call("PlayerCanDeathClearName", player, attacker, damageInfo)) then
self.player:ClearName(player);
end;
if (deathSound) then
player:EmitSound("physics/flesh/flesh_impact_hard"..math.random(1, 5)..".wav", 150);
timer.Simple(FrameTime() * 25, function()
if (IsValid(player)) then
player:EmitSound(deathSound);
end;
end);
end;
player:SetForcedAnimation(false);
player:SetCharacterData("Ammo", {}, true);
player:StripWeapons();
player:Extinguish();
player.cwSpawnAmmo = {};
player:StripAmmo();
player:AddDeaths(1);
player:UnLock();
if (IsValid(attacker) and attacker:IsPlayer() and player != attacker) then
if (self.plugin:Call("PlayerCanGainFrag", attacker, player)) then
attacker:AddFrags(1);
end;
end;
end;