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"; }; }; 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; {_x allowDamage false} forEach allUnits;// все игроки бессмертные. _tm = Time; "S1" setMarkerAlphaLocal 1; _pos = getPos S1; While {ende_time} do { 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; 10 cutText ["", "PLAIN", 2]; ende_time = false; }; if isDedicated exitWith {}; sleep 1; 10 cutRsc ["Zone_time", "PLAIN"];