RTB_registerPref("Allow", "Headshot Mod", "$Headshots", "list None 0 All 1", "script_HeadshotMod", 0, 1); RTB_registerPref("Multiplier","Headshot Mod","$Headshots::Multiplier","int 0 100","Script_HeadshotMod", 2); package HeadshotMod { function ProjectileData::damage(%this, %obj, %col, %fade, %pos, %normal) { parent::damage(%this, %obj, %col, %fade, %pos, %normal); if(%col.getType() & $TypeMasks::PlayerObjectType) { %colScale = getWord(%col.getScale(), 2); if(getWord(%pos, 2) > getWord(%col.getWorldBoxCenter(), 2) - 3.3 * %colScale && $Headshots == 1 && !%col.crouch) { %damage = %this.directDamage * $Headshots::Multiplier - %this.directDamage; %damageType = $DamageType::Direct; if(%this.directDamageType) { %damageType = %this.directDamageType; } %col.damage(%obj,%pos,%damage,%damageType); } } if($Headshots == 1) { if($Headshots::Multiplier >= 2) { if(%col.crouch) { %damage = 0.5 * %this.directDamage * $Headshots::Multiplier - %this.directDamage; %damageType = $DamageType::Direct; if(%this.directDamageType) { %damageType = %this.directDamageType; } %col.damage(%obj,%pos,%damage,%damageType); } } } } function WeaponImage::onRaycastDamage(%this,%obj,%slot,%col,%pos,%normal,%shotVec,%crit) { parent::onRaycastDamage(%this,%obj,%slot,%col,%pos,%normal,%shotVec,%crit); if(%col.getType() & $TypeMasks::PlayerObjectType) { %colScale = getWord(%col.getScale(), 2); if(getWord(%pos, 2) > getWord(%col.getWorldBoxCenter(), 2) - 3.3 * %colScale && $Headshots == 1 && !%col.crouch) { %damage = %this.raycastDirectDamage * $Headshots::Multiplier - %this.raycastdirectdamage; %damageType = $DamageType::Direct; if(%this.raycastdirectDamageType) { %damageType = %this.directDamageType; } %col.damage(%obj,%pos,%damage,%damageType); } } if($Headshots == 1) { if($Headshots::Multiplier >= 2) { if(%col.crouch) { %damage = 0.5 * %this.raycastdirectDamage * $Headshots::Multiplier - %this.raycastdirectdamage; %damageType = $DamageType::Direct; if(%this.raycastdirectDamageType) { %damageType = %this.directDamageType; } %col.damage(%obj,%pos,%damage,%damageType); } } } } function GameConnection::onClientEnterGame(%client) { parent::onClientEnterGame(%client); messageClient(%client,'',"This server runs Headshot Mod V1"); } }; ActivatePackage(HeadshotMod);