Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- private _fnc_scriptNameParent = if (isNil '_fnc_scriptName') then {'life_fnc_handleDamage'} else {_fnc_scriptName};
- private _fnc_scriptName = 'life_fnc_handleDamage';
- scriptName _fnc_scriptName;
- #line 1 "core\functions\fn_handleDamage.sqf [life_fnc_handleDamage]"
- params [
- ["_unit",objNull,[objNull]],
- ["_part","",[""]],
- ["_damage",0,[0]],
- ["_source",objNull,[objNull]],
- ["_projectile","",[""]],
- ["_index",0,[0]]
- ];
- if ((!isNull _source) AND !(player getVariable ['bleedingOut',false])) then {
- if (_source != _unit) then {
- if (currentWeapon _source in ["hgun_P07_snds_F","arifle_SDAR_F"] && _projectile in ["B_9x21_Ball","B_556x45_dual"]) then {
- if (side _source isEqualTo west && playerSide isEqualTo civilian) then {
- _damage = 0;
- if (alive player && !life_istazed && !life_isknocked && !(_unit getVariable ["restrained",false])) then {
- private ["_distance"];
- _distance = 35;
- if (_projectile == "B_556x45_dual") then {_distance = 100;};
- if (_unit distance _source < _distance) then {
- if !(isNull objectParent player) then {
- if (typeOf (vehicle player) == "B_Quadbike_01_F") then {
- player action ["Eject",vehicle player];
- [_unit,_source] spawn life_fnc_tazed;
- };
- } else {
- [_unit,_source] spawn life_fnc_tazed;
- };
- };
- };
- };
- if (side _source isEqualTo west && (playerSide isEqualTo west || playerSide isEqualTo independent)) then {
- _damage = 0;
- };
- };
- };
- };
- switch (true) do {
- case (player getVariable ['bleedingTimeout',0] >= time): {_damage = _damage min 0.90};
- case !(player getVariable ['bleedingOut',false]): {
- if (!(_projectile isEqualTo "") AND !(_source isEqualTo player)) then {
- player setVariable ['bleedOutReason',format["Shot by %1<br/><t size='0.8'>%2</t>",_source getVariable ['realname',name _source],getPlayerUID player]];
- } else {
- player setVariable ['bleedOutReason','Accident'];
- };
- private _fallToBleedout = switch (true) do {
- case ((_index isEqualTo -1) AND (_damage >= 0.90)): {true};
- case ((_index isEqualTo 0) AND (_damage >= 0.90)): {true};
- case ((_index isEqualTo 2) AND (_damage >= 0.90)): {true};
- case ((_index isEqualTo 5) AND (_damage >= 0.90)): {true};
- case ((_index isEqualTo 11) AND (_damage >= 0.90)): {true};
- case (count(((getAllHitPointsDamage _unit) select 2) select {_x < 0.9}) < 11): {true};
- default {false};
- };
- if (_fallToBleedout) then {0 call life_fnc_bleedout};
- _damage = _damage min 0.90;
- };
- };
- [] spawn life_fnc_hudUpdate;
- _damage;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement