diff --git a/epoch.Mission/addons/Ignatz_Statusbar.sqf b/epoch.Mission/addons/Ignatz_Statusbar.sqf
index 6529af6..27055e7 100644
--- a/epoch.Mission/addons/Ignatz_Statusbar.sqf
+++ b/epoch.Mission/addons/Ignatz_Statusbar.sqf
@@ -14,7 +14,7 @@ Date: 2017-04-06
Ignatz_UseStatusBarSwitchKey = switch (tolower (gettext (_config >> "Statusbar_UseKeybind"))) do {case "true": {true};default {false}};
Ignatz_StatusBarSwitchKey = getnumber (_config >> "Statusbar_Keybind");
_RestartTime = getnumber (_config >> "Restart_Intervall");
- _AutoKickBeforeRestart = getnumber (_config >> "AutoKickBeforeRestart");
+ _Restart_offset = getnumber (_config >> "AutoKickBeforeRestart");
_RestartWarningTimes = getarray (_config >> "Restart_WarningTimes");
_playersTxt = "%1";
@@ -32,47 +32,56 @@ Date: 2017-04-06
_RestartTxt = "%13:%14";
_blanks = " "; /* Blanks for adjust the distance between the Icons */
- _StatusbarTxt1 =
+ _StatusbarTxt1L =
+ _DamageTxt + _blanks +
+ _HungerTxt + _blanks +
+ _ThirstTxt + _blanks +
+ _TempTxt + _blanks +
+ _ToxicTxt + _blanks +
+ _BloodTxt;
+ _StatusbarTxt1R =
+ _playersTxt + _blanks + _blanks +
+ _KryptoTxt + _blanks + _blanks +
+ _GPSTxt + _blanks + _blanks +
+ _FPSTxt + _blanks + _blanks +
+ _RestartTxt;
+
+ _StatusbarTxt2L =
+ _DamageTxt + _blanks +
+ _HungerTxt + _blanks +
+ _ThirstTxt + _blanks +
+ _TempTxt + _blanks +
+ _ToxicTxt + _blanks +
+ _BloodTxt + _blanks;
+
+ _StatusbarTxt2R =
_playersTxt + _blanks +
- _StaminaTxt + _blanks +
- _KryptoTxt + _blanks +
- _DamageTxt + _blanks +
- _HungerTxt + _blanks +
- _ThirstTxt + _blanks +
- _TempTxt + _blanks +
- _ToxicTxt + _blanks +
- _BloodTxt + _blanks +
- _GPSTxt + _blanks +
- _FPSTxt + _blanks +
+ _KryptoTxt + _blanks +
+ _GPSTxt + _blanks +
_RestartTxt;
- _StatusbarTxt2 =
- _StaminaTxt + _blanks +
+ _StatusbarTxt3L =
_DamageTxt + _blanks +
_HungerTxt + _blanks +
- _ThirstTxt + _blanks +
- _TempTxt + _blanks +
- _ToxicTxt + _blanks +
- _BloodTxt + _blanks +
- _GPSTxt + _blanks +
+ _ThirstTxt;
+
+ _StatusbarTxt3R =
+ _playersTxt + _blanks +
+ _GPSTxt + _blanks +
_RestartTxt;
- _StatusbarTxt3 =
- _StaminaTxt + _blanks +
- _DamageTxt + _blanks +
- _HungerTxt + _blanks +
- _ThirstTxt + _blanks +
- _RestartTxt;
-
- _StatusbarPosY = safezoneY+safezoneH-0.1; /* 10% from the bottom */
+ _StatusbarPosY = safezoneY+safezoneH-0.07; /* 10% from the bottom */
_StatusbarHeight = 0.07;
- _StatusbarWidth1 = 1.2;
- _StatusbarWidth2 = 0.9;
- _StatusbarWidth3 = 0.55;
+ _StatusbarWidth1L = 0.67;
+ _StatusbarWidth1R = 0.67;
+ _StatusbarWidth2L = 0.41;
+ _StatusbarWidth2R = 0.41;
+ _StatusbarWidth3L = 0.35;
+ _StatusbarWidth3R = 0.35;
_BackgrundColor = [0,0,0,0.4]; /* [RR,GG,BB,TRANSPARENCY] RGB in 0-1!!! */
/*
- 1 count playableunits,
+ 1 count allplayers,
2 _energyPercent,
3 _stamina,
4 _wallet,
@@ -96,12 +105,11 @@ Date: 2017-04-06
22 _colourThirst,
23 _colourTemp,
24 _colourToxicity,
- 25 _colourBloodP
-/*
-End Config
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ 25 _colourBloodP,
*/
+
+/* End Config */
+
waituntil {!isnull (finddisplay 46) && alive player};
disableSerialization;
_display = finddisplay 46;
@@ -132,15 +140,24 @@ End Config
_colourTempHigher = parseText '#CC0055';
_colourTempHighest = parseText '#FF0000';
- _Statusbar = _display ctrlCreate ["RscStructuredText", 10000];
- _statusbar ctrlsetbackgroundcolor _BackgrundColor;
- _Statusbar ctrlSetPosition [
+ _StatusbarL = _display ctrlCreate ["RscStructuredText", 10000];
+ _StatusbarR = _display ctrlCreate ["RscStructuredText", 10001];
+ _StatusbarL ctrlsetbackgroundcolor _BackgrundColor;
+ _StatusbarR ctrlsetbackgroundcolor _BackgrundColor;
+ _StatusbarL ctrlSetPosition [
safezoneX + safezoneW / 2 - 0,
_StatusbarPosY,
0,
_StatusbarHeight
];
- _Statusbar ctrlCommit 0.5;
+ _StatusbarR ctrlSetPosition [
+ safezoneX + safezoneW / 2 - 0,
+ _StatusbarPosY,
+ 0,
+ _StatusbarHeight
+ ];
+ _StatusbarL ctrlCommit 0.5;
+ _StatusbarR ctrlCommit 0.5;
_minutes = -1;
_restart = false;
@@ -150,8 +167,14 @@ End Config
switch Ignatz_StatusbarSelected do {
case 0:{
_Ignatz_StatusbarActive = 0;
- _Statusbar ctrlSetPosition [
- safezoneX + safezoneW / 2 - 0,
+ _StatusbarL ctrlSetPosition [
+ safezoneX + safezoneW / 4,
+ _StatusbarPosY,
+ 0,
+ _StatusbarHeight
+ ];
+ _StatusbarR ctrlSetPosition [
+ safezoneX + safezoneW / 4 * 3,
_StatusbarPosY,
0,
_StatusbarHeight
@@ -159,61 +182,96 @@ End Config
};
case 1:{
_Ignatz_StatusbarActive = 1;
- _Statusbar ctrlShow true;
- _Statusbar ctrlSetPosition [
- safezoneX + safezoneW / 2 - _StatusbarWidth1/2,
+ _StatusbarL ctrlShow true;
+ _StatusbarR ctrlShow true;
+ _StatusbarL ctrlSetPosition [
+ safezoneX + safezoneW / 5 - _StatusbarWidth1L/2,
_StatusbarPosY,
- _StatusbarWidth1,
+ _StatusbarWidth1L,
+ _StatusbarHeight
+ ];
+ _StatusbarR ctrlSetPosition [
+ safezoneX + safezoneW / 5 * 4 - _StatusbarWidth1R/2,
+ _StatusbarPosY,
+ _StatusbarWidth1R,
_StatusbarHeight
];
};
case 2:{
_Ignatz_StatusbarActive = 2;
- _Statusbar ctrlShow true;
- _Statusbar ctrlSetPosition [
- safezoneX + safezoneW / 2 - _StatusbarWidth2/2,
+ _StatusbarL ctrlShow true;
+ _StatusbarR ctrlShow true;
+ _StatusbarL ctrlSetPosition [
+ safezoneX + safezoneW / 5 - _StatusbarWidth2L/2,
_StatusbarPosY,
- _StatusbarWidth2,
+ _StatusbarWidth2L,
+ _StatusbarHeight
+ ];
+ _StatusbarR ctrlSetPosition [
+ safezoneX + safezoneW / 5 * 4 - _StatusbarWidth2R/2,
+ _StatusbarPosY,
+ _StatusbarWidth2R,
_StatusbarHeight
];
};
case 3:{
_Ignatz_StatusbarActive = 3;
- _Statusbar ctrlShow true;
- _Statusbar ctrlSetPosition [
- safezoneX + safezoneW / 2 - _StatusbarWidth3/2,
+ _StatusbarL ctrlShow true;
+ _StatusbarR ctrlShow true;
+ _StatusbarL ctrlSetPosition [
+ safezoneX + safezoneW / 5 - _StatusbarWidth3L/2,
_StatusbarPosY,
- _StatusbarWidth3,
+ _StatusbarWidth3L,
+ _StatusbarHeight
+ ];
+ _StatusbarR ctrlSetPosition [
+ safezoneX + safezoneW / 5 * 4 - _StatusbarWidth3R/2,
+ _StatusbarPosY,
+ _StatusbarWidth3R,
_StatusbarHeight
];
};
};
- _Statusbar ctrlCommit 0.5;
+ _StatusbarL ctrlCommit 0.5;
+ _StatusbarR ctrlCommit 0.5;
uisleep 0.5;
if (_Ignatz_StatusbarActive == 0) then {
- _Statusbar ctrlShow false;
- _Statusbar ctrlSetText '';
+ _StatusbarL ctrlShow false;
+ _StatusbarL ctrlSetText '';
+ _StatusbarR ctrlShow false;
+ _StatusbarR ctrlSetText '';
};
}
else {
uisleep 1;
};
- _time = (round(_RestartTime*3600-_AutoKickBeforeRestart-serverTime)) max 0;
+ _time = (round(_RestartTime*3600+_Restart_offset-serverTime)) max 0;
if (!isnil 'Ignatz_RestartOverrideTime') then {
- _time = (Ignatz_RestartOverrideTime-_AutoKickBeforeRestart-serverTime) max 0;
+ _time = (Ignatz_RestartOverrideTime+_Restart_offset-serverTime) max 0;
};
_hours = (floor(_time/3600));
_minutes = (floor ((_time - _hours*3600)/60));
if (_restart) exitwith {
_txt = 'SERVER IS SHUTTING DOWN NOW - PLEASE LOGOUT!';
- _logouttime = 40 + (random 15);
- _randomwait = random _logouttime;
- TitleText [_txt,'BLACK OUT',40];
+ _fixwait = 35;
+ _randomwait = (random 15) max 5;
+ TitleText [_txt,'BLACK OUT',_fixwait];
+ _msg = format ["SERVER IS SHUTTING DOWN
PLEASE LOGOUT NOW!"];
+ _Ignatz_dyn = [_msg,0,safezoneY + safezoneH/2,60,10];
+ _Ignatz_dyn spawn BIS_fnc_dynamicText;
+ uisleep (_fixwait/2);
+ player setunitloadout (getunitloadout player);
+ EPOCH_forceUpdateNow = true;
+ uisleep (_fixwait/2);
+ [] spawn {
+ _result = ["Server Restart! - You will be kicked in a few seconds ...","Restart"] call BIS_fnc_guiMessage;
+ (finddisplay 46) closedisplay 0;
+ };
uisleep _randomwait;
- true call EPOCH_pushCustomVar;
- uisleep ((_logouttime - _randomwait) max 1);
- [] spawn {_result = ["Server Restart! - You will be kicked in a few seconds ...","Restart"] call BIS_fnc_guiMessage;};
+ if (!isnull (finddisplay 999)) then {
+ (finddisplay 999) closedisplay 0;
+ };
uisleep 0.5;
(finddisplay 46) closedisplay 0;
};
@@ -430,23 +488,64 @@ End Config
};
_colourStamina = _colourDefault;
- _bartext = switch _Ignatz_StatusbarActive do {
+ _bartextL = switch _Ignatz_StatusbarActive do {
case 0:{
"";
};
case 1:{
- _StatusbarTxt1;
+ _StatusbarTxt1L;
};
case 2:{
- _StatusbarTxt2;
+ _StatusbarTxt2L;
};
case 3:{
- _StatusbarTxt3;
+ _StatusbarTxt3L;
+ };
+ };
+ _bartextR = switch _Ignatz_StatusbarActive do {
+ case 0:{
+ "";
+ };
+ case 1:{
+ _StatusbarTxt1R;
+ };
+ case 2:{
+ _StatusbarTxt2R;
+ };
+ case 3:{
+ _StatusbarTxt3R;
};
};
- _Statusbar ctrlSetStructuredText parseText format ["" + _bartext + "",
- count playableunits,
+ _StatusbarL ctrlSetStructuredText parseText format ["" + _bartextL + "",
+ (playersNumber west)+(playersNumber east)+(playersNumber civilian)+(playersNumber resistance),
+ _energyPercent,
+ _stamina,
+ _wallet,
+ _damage,
+ _hunger,
+ _thirst,
+ _temp,
+ _toxPercent,
+ _bloodpressure,
+ format['%1/%2',_xx,_yy],
+ round diag_fps,
+ _hours,
+ _minutes,
+ '%',
+ '°C',
+ _colourDefault,
+ _colourEnergy,
+ _colourStamina,
+ _colourDamage,
+ _colourHunger,
+ _colourThirst,
+ _colourTemp,
+ _colourToxicity,
+ _colourBloodP
+ ];
+ _StatusbarR ctrlSetStructuredText parseText format ["" + _bartextR + "",
+ (playersNumber west)+(playersNumber east)+(playersNumber civilian)+(playersNumber resistance),
_energyPercent,
_stamina,
_wallet,