Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1. {
  2. private _fnc_scriptNameParent = if (isNil '_fnc_scriptName') then {'life_fnc_handleDamage'} else {_fnc_scriptName};
  3. private _fnc_scriptName = 'life_fnc_handleDamage';
  4. scriptName _fnc_scriptName;
  5.  
  6. #line 1 "core\functions\fn_handleDamage.sqf [life_fnc_handleDamage]"
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69. params [
  70. ["_unit",objNull,[objNull]],
  71. ["_part","",[""]],
  72. ["_damage",0,[0]],
  73. ["_source",objNull,[objNull]],
  74. ["_projectile","",[""]],
  75. ["_index",0,[0]]
  76. ];
  77.  
  78.  
  79. if ((!isNull _source) AND !(player getVariable ['bleedingOut',false])) then {
  80. if (_source != _unit) then {
  81. if (currentWeapon _source in ["hgun_P07_snds_F","arifle_SDAR_F"] && _projectile in ["B_9x21_Ball","B_556x45_dual"]) then {
  82. if (side _source isEqualTo west && playerSide isEqualTo civilian) then {
  83. _damage = 0;
  84. if (alive player && !life_istazed && !life_isknocked && !(_unit getVariable ["restrained",false])) then {
  85. private ["_distance"];
  86. _distance = 35;
  87. if (_projectile == "B_556x45_dual") then {_distance = 100;};
  88. if (_unit distance _source < _distance) then {
  89. if !(isNull objectParent player) then {
  90. if (typeOf (vehicle player) == "B_Quadbike_01_F") then {
  91. player action ["Eject",vehicle player];
  92. [_unit,_source] spawn life_fnc_tazed;
  93. };
  94. } else {
  95. [_unit,_source] spawn life_fnc_tazed;
  96. };
  97. };
  98. };
  99. };
  100.  
  101.  
  102. if (side _source isEqualTo west && (playerSide isEqualTo west || playerSide isEqualTo independent)) then {
  103. _damage = 0;
  104. };
  105. };
  106. };
  107. };
  108.  
  109.  
  110. switch (true) do {
  111. case (player getVariable ['bleedingTimeout',0] >= time): {_damage = _damage min 0.90};
  112. case !(player getVariable ['bleedingOut',false]): {
  113. if (!(_projectile isEqualTo "") AND !(_source isEqualTo player)) then {
  114. player setVariable ['bleedOutReason',format["Shot by %1<br/><t size='0.8'>%2</t>",_source getVariable ['realname',name _source],getPlayerUID player]];
  115. } else {
  116. player setVariable ['bleedOutReason','Accident'];
  117. };
  118. private _fallToBleedout = switch (true) do {
  119. case ((_index isEqualTo -1) AND (_damage >= 0.90)): {true};
  120. case ((_index isEqualTo 0) AND (_damage >= 0.90)): {true};
  121. case ((_index isEqualTo 2) AND (_damage >= 0.90)): {true};
  122. case ((_index isEqualTo 5) AND (_damage >= 0.90)): {true};
  123. case ((_index isEqualTo 11) AND (_damage >= 0.90)): {true};
  124. case (count(((getAllHitPointsDamage _unit) select 2) select {_x < 0.9}) < 11): {true};
  125. default {false};
  126. };
  127. if (_fallToBleedout) then {0 call life_fnc_bleedout};
  128. _damage = _damage min 0.90;
  129. };
  130. };
  131.  
  132. [] spawn life_fnc_hudUpdate;
  133. _damage;}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement