ende_time = false; if isServer then { S1 setVariable ["Data_time", 0, true]; _as = [] Spawn { for "_a" from 121 to 0 step -1 do { // установка времени обратного отсчёта sleep 1; S1 setVariable ["Data_time", floor (_a / 0.36) / 10000 , true]; // передача времени игрокам от сервера }; ende_time = false; publicVariable "ende_time"; S1 setVariable ["Data_time", -10, true]; }; }; fn_Zone_time = { if ende_time exitWith {}; ende_time = true; disableSerialization; _dc = _this select 0; _cH = _dc displayCtrl 20001; _cM = _dc displayCtrl 20002; _cS = _dc displayCtrl 20003; "S1" setMarkerAlphaLocal 1; _pos = getPos S1; _ms = []; While {ende_time} do { if ((count _ms) < (count List S1)) then { _ms = List S1; {_x allowDamage false} forEach allUnits;// все игроки бессмертные. }; sleep 0.5; _n = S1 getVariable "Data_time"; // получение времени от сервера //_hour = floor daytime; _hour = floor _n; _cH ctrlSetText (if (_hour < 10) then {"0" + str _hour} else {str _hour}); _min = floor ((_n - _hour) * 60); _cM ctrlSetText (if (_min < 10) then {"0" + str _min} else {str _min}); _sec = floor (((((_n) - (_hour))*60) - _min)*60); _cS ctrlSetText (if (_sec < 10) then {"0" + str _sec} else {str _sec}); if !(Player in List S1) then { Player setPos [(_pos select 0) + 10 - random 20, (_pos select 1) + 10 - random 20]; }; }; {_x allowDamage true} forEach allUnits;// возврат смерти "S1" setMarkerAlphaLocal 0; ende_time = false; {_x ctrlSetTextColor [1,1,1,0]} forEach [_cH, _dc displayCtrl 20004, _dc displayCtrl 20005, _cM]; _cS ctrlSetText "START"; sleep 1; for "_a" from 1 to 0 step - 0.01 do { _cS ctrlSetTextColor [1,1,1,_a]; sleep 0.05; }; 10 cutText ["", "PLAIN"]; }; if isDedicated exitWith {}; sleep 1; _n = S1 getVariable "Data_time"; if (_n < 0) exitWith {hint "JR"}; 10 cutRsc ["Zone_time", "PLAIN"];