mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-20 02:16:29 +03:00
131 lines
3.8 KiB
Plaintext
131 lines
3.8 KiB
Plaintext
/****************************************************************************
|
|
Copyright (C) 2010 Team ~R3F~
|
|
This program is free software under the terms of the GNU General Public License version 3.
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
@authors team-r3f.org
|
|
@version 1.02
|
|
@date 20101011
|
|
*****************************************************************************/
|
|
|
|
#include "R3F_TIRED_Configuration.cfg"
|
|
|
|
private ["_level", "_n", "_s"];
|
|
|
|
//_voil = [] call R3F_TIRED_FNCT_MkVoile;
|
|
//[_voil,1] call R3F_TIRED_FNCT_Voile_Noir;
|
|
|
|
_n = 0;
|
|
_posATL = 0;
|
|
|
|
#ifdef R3F_TIRED_CSV_EXPORT
|
|
_s = format["""Duree"",""Distance From"",""Distance To"",""Vitesse"",""Fatigue"",""Black Level"",""poids"",""Counter"""];
|
|
_s call FNC_PrintToRPT;
|
|
#endif
|
|
|
|
R3F_TIRED_Accumulator = 0;
|
|
sleep 1;
|
|
_level = 1;
|
|
|
|
while {true} do {
|
|
|
|
R3F_TIRED_POIDS_TOTAL_PLAYER= R3F_Weight + R3F_TIRED_WEIGHT_PLAYER_EMPTY;
|
|
|
|
if (R3F_weight < R3F_TIRED_WEIGHT_LEVEL3 )then {
|
|
if (r3f_weight < R3F_TIRED_WEIGHT_LEVEL2) then {
|
|
if (r3f_weight < R3F_TIRED_WEIGHT_LEVEL1 ) then {
|
|
R3F_TIRED_Ratio_Overweight = R3F_TIRED_WEIGHT_RATIO1;
|
|
} else {
|
|
R3F_TIRED_Ratio_Overweight = R3F_TIRED_WEIGHT_RATIO2;
|
|
};
|
|
} else {
|
|
R3F_TIRED_Ratio_Overweight = R3F_TIRED_WEIGHT_RATIO3;
|
|
};
|
|
} else {
|
|
R3F_TIRED_Ratio_Overweight = R3F_TIRED_WEIGHT_RATIO4;
|
|
};
|
|
|
|
if (alive player) then {
|
|
switch (toArray (animationState player) select 5) do {
|
|
case 112: {
|
|
R3F_TIRED_Ratio_Position = R3F_TIRED_DOWN_LEVEL;
|
|
};
|
|
case 107:{
|
|
R3F_TIRED_Ratio_Position=R3F_TIRED_KNEE_LEVEL;
|
|
};
|
|
case 101:{
|
|
R3F_TIRED_Ratio_Position = R3F_TIRED_UP_LEVEL;
|
|
};
|
|
};
|
|
|
|
R3F_TIRED_vitesse_de_mon_joueur = [0,0,0] distance velocity player;
|
|
R3F_TIRED_coeff_mon_elevation_en_z = 0 max ((velocity player select 2) / R3F_TIRED_WEIGHT_CLIMB_FACTOR);
|
|
|
|
_posATL = (getPosATL player) select 2;
|
|
|
|
|
|
if((vehicle player == player) && (_posATL < 100)) then {
|
|
R3F_TIRED_Accumulator = R3F_TIRED_Accumulator
|
|
+ (R3F_TIRED_POIDS_TOTAL_PLAYER * R3F_TIRED_vitesse_de_mon_joueur * R3F_TIRED_Ratio_Position * R3F_TIRED_WEIGHT_SPEED_RATIO*R3F_TIRED_Ratio_Overweight)
|
|
+ (R3F_TIRED_POIDS_TOTAL_PLAYER * R3F_TIRED_coeff_mon_elevation_en_z * R3F_TIRED_WEIGHT_LEVEL2);
|
|
|
|
};
|
|
|
|
R3F_TIRED_Accumulator = 0 max (R3F_TIRED_Accumulator - R3F_TIRED_Ratio_Recovery);
|
|
|
|
_level = ((R3F_TIRED_Accumulator / R3F_TIRED_BLACKOUT_LEVEL) * 100);
|
|
_level = 0 max (1 - (_level / 100));
|
|
|
|
#ifdef R3F_TIRED_DEBUG
|
|
hintsilent format["Fatique : %1/%2\nBlack level : %3\nPoids total : %4\n Poids armement : %5",
|
|
R3F_TIRED_Accumulator,
|
|
R3F_TIRED_BLACKOUT_LEVEL,
|
|
_level,
|
|
R3F_TIRED_POIDS_TOTAL_PLAYER,
|
|
R3F_Weight];
|
|
#endif
|
|
|
|
[_level] call R3F_TIRED_FNCT_Voile_Noir;
|
|
|
|
if (R3F_TIRED_Accumulator > R3F_TIRED_BLACKOUT_LEVEL and scriptDone R3F_TIRED_Handle_Blackout_Effect and scriptDone R3F_TIRED_Handle_Blur_Effect) then {
|
|
R3F_TIRED_Handle_Blackout_Effect = [] spawn R3F_TIRED_FNCT_DoBlackVanish;
|
|
};
|
|
} else {
|
|
R3F_TIRED_Accumulator = 0;
|
|
};
|
|
|
|
if (R3F_TIRED_GLOBAL_TIRING
|
|
&& R3F_TIRED_vitesse_de_mon_joueur > 4
|
|
&& R3F_TIRED_Ratio_Recovery > R3F_TIRED_RATIO_RECOVERING
|
|
) then {
|
|
R3F_TIRED_Counter_Time= R3F_TIRED_Counter_Time + 1;
|
|
};
|
|
|
|
|
|
#ifdef R3F_TIRED_CSV_EXPORT
|
|
_s = format["%1,%2,%3,%4,%5,%6,%7,%8",
|
|
_n,
|
|
(player distance flag_start),
|
|
(player distance flag_end),
|
|
R3F_TIRED_vitesse_de_mon_joueur,
|
|
R3F_TIRED_Accumulator,
|
|
_level,
|
|
R3F_Weight,
|
|
R3F_TIRED_Counter_Time];
|
|
|
|
|
|
_s call FNC_PrintToRPT;
|
|
#endif
|
|
|
|
if ((R3F_TIRED_Counter_Time > R3F_TIRED_TIME_RECOVERING)) then {
|
|
R3F_TIRED_Ratio_Recovery = R3F_TIRED_Ratio_Recovery - 1;
|
|
R3F_TIRED_Counter_Time = 0;
|
|
};
|
|
|
|
sleep 1;
|
|
_n = _n + 1;
|
|
};
|
|
|
|
//[_voil] call R3F_TIRED_FNCT_Effect_Off;
|
|
|