From e830fa421b696cd0447019b13169936b35a997eb Mon Sep 17 00:00:00 2001 From: He-Man Date: Mon, 17 Apr 2017 23:47:29 +0200 Subject: [PATCH] Add files via upload --- @epochhive/addons/Ignatz_Server.pbo | Bin 0 -> 4061 bytes @epochhive/addons/Ignatz_Server/$PREFIX$ | 1 + @epochhive/addons/Ignatz_Server/PboPrefix.txt | 1 + .../Ignatz_Server/Server/Server_Autolock.sqf | 85 ++++ @epochhive/addons/Ignatz_Server/config.cpp | 32 ++ @epochhive/addons/Ignatz_Server/fn_init.sqf | 1 + Battleye.txt | 4 + epoch.Mission/Ignatz_config.hpp | 24 + epoch.Mission/addons/Ignatz_EarPlugs.sqf | 23 + epoch.Mission/addons/Ignatz_Statusbar.sqf | 477 ++++++++++++++++++ .../addons/pics/Ignatz_Statusbar/Flag.paa | Bin 0 -> 1522 bytes .../addons/pics/Ignatz_Statusbar/blood.paa | Bin 0 -> 1522 bytes .../addons/pics/Ignatz_Statusbar/compass.paa | Bin 0 -> 1522 bytes .../addons/pics/Ignatz_Statusbar/damage.paa | Bin 0 -> 1522 bytes .../addons/pics/Ignatz_Statusbar/energy.paa | Bin 0 -> 1522 bytes .../addons/pics/Ignatz_Statusbar/hunger.paa | Bin 0 -> 1522 bytes .../addons/pics/Ignatz_Statusbar/krypto.paa | Bin 0 -> 1522 bytes .../addons/pics/Ignatz_Statusbar/players.paa | Bin 0 -> 1522 bytes .../addons/pics/Ignatz_Statusbar/restart.paa | Bin 0 -> 1522 bytes .../addons/pics/Ignatz_Statusbar/stamina.paa | Bin 0 -> 1522 bytes .../addons/pics/Ignatz_Statusbar/temp.paa | Bin 0 -> 468 bytes .../addons/pics/Ignatz_Statusbar/thirst.paa | Bin 0 -> 1522 bytes .../addons/pics/Ignatz_Statusbar/toxicity.paa | Bin 0 -> 1522 bytes epoch.Mission/description.ext | 4 + .../customs/EPOCH_custom_EH_GetInMan.sqf | 28 + .../customs/EPOCH_custom_EH_GetOutMan.sqf | 28 + .../customs/EPOCH_custom_EH_KeyDown.sqf | 48 ++ epoch.Mission/init.sqf | 6 + 28 files changed, 762 insertions(+) create mode 100644 @epochhive/addons/Ignatz_Server.pbo create mode 100644 @epochhive/addons/Ignatz_Server/$PREFIX$ create mode 100644 @epochhive/addons/Ignatz_Server/PboPrefix.txt create mode 100644 @epochhive/addons/Ignatz_Server/Server/Server_Autolock.sqf create mode 100644 @epochhive/addons/Ignatz_Server/config.cpp create mode 100644 @epochhive/addons/Ignatz_Server/fn_init.sqf create mode 100644 Battleye.txt create mode 100644 epoch.Mission/Ignatz_config.hpp create mode 100644 epoch.Mission/addons/Ignatz_EarPlugs.sqf create mode 100644 epoch.Mission/addons/Ignatz_Statusbar.sqf create mode 100644 epoch.Mission/addons/pics/Ignatz_Statusbar/Flag.paa create mode 100644 epoch.Mission/addons/pics/Ignatz_Statusbar/blood.paa create mode 100644 epoch.Mission/addons/pics/Ignatz_Statusbar/compass.paa create mode 100644 epoch.Mission/addons/pics/Ignatz_Statusbar/damage.paa create mode 100644 epoch.Mission/addons/pics/Ignatz_Statusbar/energy.paa create mode 100644 epoch.Mission/addons/pics/Ignatz_Statusbar/hunger.paa create mode 100644 epoch.Mission/addons/pics/Ignatz_Statusbar/krypto.paa create mode 100644 epoch.Mission/addons/pics/Ignatz_Statusbar/players.paa create mode 100644 epoch.Mission/addons/pics/Ignatz_Statusbar/restart.paa create mode 100644 epoch.Mission/addons/pics/Ignatz_Statusbar/stamina.paa create mode 100644 epoch.Mission/addons/pics/Ignatz_Statusbar/temp.paa create mode 100644 epoch.Mission/addons/pics/Ignatz_Statusbar/thirst.paa create mode 100644 epoch.Mission/addons/pics/Ignatz_Statusbar/toxicity.paa create mode 100644 epoch.Mission/description.ext create mode 100644 epoch.Mission/epoch_code/customs/EPOCH_custom_EH_GetInMan.sqf create mode 100644 epoch.Mission/epoch_code/customs/EPOCH_custom_EH_GetOutMan.sqf create mode 100644 epoch.Mission/epoch_code/customs/EPOCH_custom_EH_KeyDown.sqf create mode 100644 epoch.Mission/init.sqf diff --git a/@epochhive/addons/Ignatz_Server.pbo b/@epochhive/addons/Ignatz_Server.pbo new file mode 100644 index 0000000000000000000000000000000000000000..14cd7ecfb7ad9a615912ec9095ead933e7a80669 GIT binary patch literal 4061 zcmc&%Pj6dA5D!ON3TKYXM#y%P7~54U6t|H=l9C8Yqoj>erP0&oy|umM{p;?&*sYcC z!5wkp#)S*tge&v|Ai;$TGrRlj_Z%A>F0@Jf_U-JsD(=!{NIi=se|Lq)~kFSzr zqqnI?+U%_sB=Gsv7Bnl-51CSAuh&0j+8=PW zS{<)eEB3AR2$uM&BKez4NFJPVsYDW!C#2PEcZ)l_L6F4i;u5yTw`L~;7fUaOoTW1| z5$m&eBIYGI7DY)>5zF)-kr$VsnI7`ZXDp`10{+2Y{6BH!X%_n$ApV0hRyJZHCS!D= z(i0&E+|*^!MwJ>TTr@CUPPhUoKf>h`Vk1zo?#@6eM$xkx_Y5nHn*2o+u{iLKAq~Ss z2BZQYQnx_+w_S(>A94Te8KJLBBy+i+M*%!pk`+Bt|5zvsscy+>eBRk1wUW~oVy)2t zt3nTj9*}Xh5(w7!!lX~=fs~2dCVMOuz)zXdWj@X7xM8d;3MsV2UX7+gm^7w z8V)Ro&J)t-TJw=6^;{=7K<7)-#>8?5OvA}YDCDj~llyI#H4x6L=yMLP@Dr{ylbB^V z8fVcJmlLxcf_CT18?(6crSPxsqv?*k(d1BQ5g|brA#qaPQLLdaurM@dp9-n;zq?Ts zdmitzw{X}+V>kFFQy2mTOz;P!j%{X$ftXE%jYy6I{kLan1E>@vWb8A=3Dq*=beoLv z^R^rC9?L?gs~!s#zeTE?@~}6ByrkK}q5op-eZR6k4DxF6Y}J%7LMxBcDEe)M}xDIsSv_X1is#eOR88ysBM(7ZcL9|nh6W( zm05b_eCTw63J$sk2-utE4lE7w*x5s*_n@F7pyBqC#_!BH%NtJ_T+n0qHiA7g4cS{R zUmop4(qR%go-Dl)WTxWjfl$t=ypiNtDi-WS4Mee0sM-!JZwZ{>42B+*LPD6YGq3~i zXWPeCt2JpKOWHQgqF}R?UkKy>+d-hff}EE4^cbckGfFtxnBG&E#LB&3xvomrTy0p* zQ04$;qBx(p3T^GwAaFUJevPun^VHKd> 'Ignatz_ServerConfig')) exitwith { + diag_log "Error: Can not load Config for Ignatz_AutoLock"; +}; +_config = (configfile >> 'Ignatz_ServerConfig'); +_ServerCommand_Password = gettext (_config >> "ServerCommand_Password"); +_config2 = getmissionconfig 'Ignatz_config'; +_AutolockBeforeRestart = getnumber (_config2 >> "AutolockBeforeRestart"); +_AutoKickBeforeRestart = getnumber (_config2 >> "AutoKickBeforeRestart"); +_Restarttime = getnumber (_config2 >> "Restart_Intervall"); +_FirstRestart = getnumber (_config2 >> "FirstRestartOnDay");; +_AutoAdjust = switch (tolower (gettext (_config2 >> "Restart_AutoAdjust"))) do {case "true": {true};default {false}}; +_SelfRestart = switch (tolower (gettext (_config2 >> "SelfRestart"))) do {case "true": {true};default {false}}; +_SelfShutdown = switch (tolower (gettext (_config2 >> "SelfShutdown"))) do {case "true": {true};default {false}}; + +_GetRestartOverrideTime = { + private ['_RestartOverrideTime']; + params ["_Restarttime","_FirstRestart"]; + _realdatestr = "epochserver" callExtension "510"; + _realdate = call compile _realdatestr; + _realdate params ["","","","_hours","_minutes","_seconds"]; + _RestartHours = _Restarttime/3600; + _RestartOverrideTime = -1000; + _c = 1; + while {true} do { + if (((_c*_RestartHours)+_FirstRestart) > _hours) exitwith { + _RestartOverrideTime = ((_c*_RestartHours + _FirstRestart - _hours - 1)*60*60) max 0; + }; + _c = _c+1; + }; + _RestartOverrideTime = _RestartOverrideTime + (60-_minutes-1)*60; + _RestartOverrideTime = _RestartOverrideTime + 60-_seconds-1; + _RestartOverrideTime = _RestartOverrideTime + servertime; + _RestartOverrideTime +}; + +_Restarttime = _Restarttime*3600; +_ServerCommand_Password serverCommand "#lock"; +_startTime = diag_tickTime; +while {(_startTime + 5) > diag_tickTime} do { + for "_i" from 0 to 102 do { + _ServerCommand_Password serverCommand format ["#kick %1",_i]; + }; + uisleep 0.5; +}; +waitUntil {!isNil "EPOCH_SERVER_READY"}; +_ServerCommand_Password serverCommand "#unlock"; +uisleep 300; +if (_AutoAdjust) then { + _TimeToRestart = [_Restarttime,_FirstRestart] call _GetRestartOverrideTime; + if (isnil '_TimeToRestart') exitwith { + diag_log "#Ignatz_Debug: Restart OverrideTime can not be calculated - Override skipped..."; + }; + _Restarttime = _TimeToRestart; + Ignatz_RestartOverrideTime = _TimeToRestart; + publicvariable 'Ignatz_RestartOverrideTime'; + diag_log format ['#Ignatz_Debug: RestartTimer adjusted to restart at servertime: %1 (actual servertime: %2)',_TimeToRestart,servertime]; +}; +waituntil {uisleep 2; (_Restarttime - _AutolockBeforeRestart) < serverTime}; +_ServerCommand_Password serverCommand "#lock"; + +waituntil {uisleep 2; (_Restarttime - _AutoKickBeforeRestart) < serverTime}; +_ServerCommand_Password spawn { + { + _playerUID = getPlayerUID _x; + _this serverCommand format ["#kick %1",_playerUID]; + uisleep 0.2; + } foreach playableunits; + for "_i" from 0 to 500 do { + _this serverCommand format ["#kick %1",_i]; + uisleep 0.01; + }; + { + _playerUID = getPlayerUID _x; + _this serverCommand format ["#kick %1",_playerUID]; + uisleep 0.2; + } foreach playableunits; +}; + +waituntil {uisleep 2; _Restarttime <= serverTime}; +if (_SelfRestart) exitwith { + _ServerCommand_Password serverCommand "#restartserver"; +}; +if (_SelfShutdown) then { + _ServerCommand_Password serverCommand "#shutdown"; +}; diff --git a/@epochhive/addons/Ignatz_Server/config.cpp b/@epochhive/addons/Ignatz_Server/config.cpp new file mode 100644 index 0000000..1c5fdbb --- /dev/null +++ b/@epochhive/addons/Ignatz_Server/config.cpp @@ -0,0 +1,32 @@ + +class CfgPatches +{ + class Ignatz + { + requiredVersion = 0.1; + requiredAddons[] = {}; + units[] = {}; + weapons[] = {}; + magazines[] = {}; + ammo[] = {}; + author[]= {"He-Man"}; + }; +}; + + +class CfgFunctions +{ + class Ignatz + { + class main { + file = "Ignatz_Server"; + class init { + preInit = 1; + }; + }; + }; +}; + +class Ignatz_ServerConfig { + ServerCommand_Password = "password"; +}; \ No newline at end of file diff --git a/@epochhive/addons/Ignatz_Server/fn_init.sqf b/@epochhive/addons/Ignatz_Server/fn_init.sqf new file mode 100644 index 0000000..c8c5a89 --- /dev/null +++ b/@epochhive/addons/Ignatz_Server/fn_init.sqf @@ -0,0 +1 @@ +[] execVM "\Ignatz_server\Server\Server_Autolock.sqf"; diff --git a/Battleye.txt b/Battleye.txt new file mode 100644 index 0000000..7009863 --- /dev/null +++ b/Battleye.txt @@ -0,0 +1,4 @@ +scripts.txt: + +7 "BIS_fnc_dynamictext" !="_Ignatz_dyn spawn BIS_fnc_dynamicText" +7 ctrlCreate !="_display ctrlCreate [\"RscStructuredText\", 10000]" diff --git a/epoch.Mission/Ignatz_config.hpp b/epoch.Mission/Ignatz_config.hpp new file mode 100644 index 0000000..01f6089 --- /dev/null +++ b/epoch.Mission/Ignatz_config.hpp @@ -0,0 +1,24 @@ +class Ignatz_config { +// Earplugs + Earplugs_Keybind = 0x3E; /* Key to put in / out the Earplugs (F4) full list: https://community.bistudio.com/wiki/DIK_KeyCodes */ + Earplugs_AutoEarplugs = "true"; /* Auto insert / remove Earplugs by entering leaving Vehicles */ + Earplugs_UseInVehicles = "true"; /* Set it to false to disable manual Earplugs in Vehicles */ + Earplugs_HintsMessages = "true"; /* Show Hint Messages on Auto-Insert / Remove Earplugs */ + Earplugs_Systemchat = "true"; /* Show Systemchat Messages on Auto-Insert / Remove Earplugs */ + +// Statusbar + Statusbar_OnStart = 1; /* Status Bar on Start - 0 = off / 1 = full / 2 = half / 3 = small */ + Statusbar_UseKeybind = "true"; /* Use SwitchKey to switch between different Status Bars */ + Statusbar_Keybind = 0x36; /* Key to switch between the Status Bars (right shift key) full list: https://community.bistudio.com/wiki/DIK_KeyCodes */ + +// Restart + FirstRestartOnDay = 0; /* On which time the Server will restart the first time (0 = 00:00 / 2 = 02:00 ...). Only full hour restarts are supported */ + Restart_Intervall = 3; /* in hours */ + AutoKickBeforeRestart = 120; /* in seconds */ + AutolockBeforeRestart = 180; /* in seconds */ + Restart_WarningTimes[] = {1,2,5,10}; /* Array of restart-warning (x minutes before Restart) */ + Restart_AutoAdjust = "true"; /* Autmatically adjust Restarttime acc. to Realtime */ + SelfRestart = "false"; /* true = Server will restart himself */ + SelfShutdown = "false"; /* true = Server shut down himself (has no effect, if SelfRestart = "true") */ + /* You can use SelfShutdown, if you use FireDaemon and have configured to Restart the rogramm on Program Exit (under Lifecycle) */ +}; \ No newline at end of file diff --git a/epoch.Mission/addons/Ignatz_EarPlugs.sqf b/epoch.Mission/addons/Ignatz_EarPlugs.sqf new file mode 100644 index 0000000..cf1b65a --- /dev/null +++ b/epoch.Mission/addons/Ignatz_EarPlugs.sqf @@ -0,0 +1,23 @@ +// File created by Ignatz - He-Man +// Last Update: 2017-04-06 + +if (!isclass (getmissionconfig 'Ignatz_config')) exitwith { + systemchat "Error: Can not load Config for Earplugs"; +}; +_config = getmissionconfig 'Ignatz_config'; +Ignatz_KB_Earplug = getnumber (_config >> "Earplugs_Keybind"); +Ignatz_AutoEarplugs = switch (tolower (gettext (_config >> "Earplugs_AutoEarplugs"))) do {case "true": {true};default {false}}; +Ignatz_EnableEarpluginVeh = switch (tolower (gettext (_config >> "Earplugs_UseInVehicles"))) do {case "true": {true};default {false}}; +Ignatz_AutoEarplugsHints = switch (tolower (gettext (_config >> "Earplugs_HintsMessages"))) do {case "true": {true};default {false}}; +Ignatz_EarplugsSystemchat = switch (tolower (gettext (_config >> "Earplugs_Systemchat"))) do {case "true": {true};default {false}}; +Ignatz_Earplugsin = false; +Ignatz_Client_Earplugger = compilefinal " + if (Ignatz_Earplugsin) then { + Ignatz_Earplugsin = false; + 1 fadeSound 1; + } + else { + Ignatz_Earplugsin = true; + 1 fadeSound 0.15; + }; +"; diff --git a/epoch.Mission/addons/Ignatz_Statusbar.sqf b/epoch.Mission/addons/Ignatz_Statusbar.sqf new file mode 100644 index 0000000..6529af6 --- /dev/null +++ b/epoch.Mission/addons/Ignatz_Statusbar.sqf @@ -0,0 +1,477 @@ +/* +Status Bar for Epochmod +Developed by: Darth_Rogue +Changed By: [Ignatz] He-Man +Date: 2017-04-06 +*/ + +[] spawn { + if (!isclass (getmissionconfig 'Ignatz_config')) exitwith { + systemchat "Error: Can not load Config for Statusbar"; + }; + _config = getmissionconfig 'Ignatz_config'; + Ignatz_StatusbarSelected = getnumber (_config >> "Statusbar_OnStart"); + 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"); + _RestartWarningTimes = getarray (_config >> "Restart_WarningTimes"); + + _playersTxt = "%1"; + _energyTxt = "%2"; + _StaminaTxt = "%3"; + _KryptoTxt = "%4"; + _DamageTxt = "%5%15"; + _HungerTxt = "%6%15"; + _ThirstTxt = "%7%15"; + _TempTxt = " %8%16"; + _ToxicTxt = "%9"; + _BloodTxt = "%10"; + _GPSTxt = " %11"; + _FPSTxt = "FPS %12"; + _RestartTxt = "%13:%14"; + _blanks = " "; /* Blanks for adjust the distance between the Icons */ + + _StatusbarTxt1 = + _playersTxt + _blanks + + _StaminaTxt + _blanks + + _KryptoTxt + _blanks + + _DamageTxt + _blanks + + _HungerTxt + _blanks + + _ThirstTxt + _blanks + + _TempTxt + _blanks + + _ToxicTxt + _blanks + + _BloodTxt + _blanks + + _GPSTxt + _blanks + + _FPSTxt + _blanks + + _RestartTxt; + + _StatusbarTxt2 = + _StaminaTxt + _blanks + + _DamageTxt + _blanks + + _HungerTxt + _blanks + + _ThirstTxt + _blanks + + _TempTxt + _blanks + + _ToxicTxt + _blanks + + _BloodTxt + _blanks + + _GPSTxt + _blanks + + _RestartTxt; + + _StatusbarTxt3 = + _StaminaTxt + _blanks + + _DamageTxt + _blanks + + _HungerTxt + _blanks + + _ThirstTxt + _blanks + + _RestartTxt; + + _StatusbarPosY = safezoneY+safezoneH-0.1; /* 10% from the bottom */ + _StatusbarHeight = 0.07; + _StatusbarWidth1 = 1.2; + _StatusbarWidth2 = 0.9; + _StatusbarWidth3 = 0.55; + _BackgrundColor = [0,0,0,0.4]; /* [RR,GG,BB,TRANSPARENCY] RGB in 0-1!!! */ + +/* + 1 count playableunits, + 2 _energyPercent, + 3 _stamina, + 4 _wallet, + 5 _damage, + 6 _hunger, + 7 _thirst, + 8 _temp, + 9 _toxPercent, + 10 _bloodpressure, + 11 format['%1/%2',_xx,_yy], + 12 round diag_fps, + 13 _hours, + 14 _minutes, + 15 '%', + 16 '°C', + 17 _colourDefault, + 18 _colourEnergy, + 19 _colourStamina, + 20 _colourDamage, + 21 _colourHunger, + 22 _colourThirst, + 23 _colourTemp, + 24 _colourToxicity, + 25 _colourBloodP +/* +End Config +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +*/ + waituntil {!isnull (finddisplay 46) && alive player}; + disableSerialization; + _display = finddisplay 46; + _Ignatz_StatusbarActive = 0; + _tempblink = false; + _damageblink = false; + _hungerblink = false; + _thirstblink = false; + _toxicblink = false; + _bloodpblink = false; + + _colourDefault = parseText '#ADADAD'; + _colour100 = parseText '#336600'; + _colour90 = parseText '#339900'; + _colour80 = parseText '#33CC00'; + _colour70 = parseText '#33FF00'; + _colour60 = parseText '#66FF00'; + _colour50 = parseText '#CCFF00'; + _colour40 = parseText '#CCCC00'; + _colour30 = parseText '#CC9900'; + _colour20 = parseText '#CC6600'; + _colour10 = parseText '#CC3300'; + _colour0 = parseText '#CC0000'; + _colourDead = parseText '#000000'; + _colourTempLowest = parseText '#0000CC'; + _colourTempLower = parseText '#9600CC'; + _colourTempMid = parseText '#336600'; + _colourTempHigher = parseText '#CC0055'; + _colourTempHighest = parseText '#FF0000'; + + _Statusbar = _display ctrlCreate ["RscStructuredText", 10000]; + _statusbar ctrlsetbackgroundcolor _BackgrundColor; + _Statusbar ctrlSetPosition [ + safezoneX + safezoneW / 2 - 0, + _StatusbarPosY, + 0, + _StatusbarHeight + ]; + _Statusbar ctrlCommit 0.5; + + _minutes = -1; + _restart = false; + + while {true} do { + if (_Ignatz_StatusbarActive != Ignatz_StatusbarSelected) then { + switch Ignatz_StatusbarSelected do { + case 0:{ + _Ignatz_StatusbarActive = 0; + _Statusbar ctrlSetPosition [ + safezoneX + safezoneW / 2 - 0, + _StatusbarPosY, + 0, + _StatusbarHeight + ]; + }; + case 1:{ + _Ignatz_StatusbarActive = 1; + _Statusbar ctrlShow true; + _Statusbar ctrlSetPosition [ + safezoneX + safezoneW / 2 - _StatusbarWidth1/2, + _StatusbarPosY, + _StatusbarWidth1, + _StatusbarHeight + ]; + }; + case 2:{ + _Ignatz_StatusbarActive = 2; + _Statusbar ctrlShow true; + _Statusbar ctrlSetPosition [ + safezoneX + safezoneW / 2 - _StatusbarWidth2/2, + _StatusbarPosY, + _StatusbarWidth2, + _StatusbarHeight + ]; + }; + case 3:{ + _Ignatz_StatusbarActive = 3; + _Statusbar ctrlShow true; + _Statusbar ctrlSetPosition [ + safezoneX + safezoneW / 2 - _StatusbarWidth3/2, + _StatusbarPosY, + _StatusbarWidth3, + _StatusbarHeight + ]; + }; + }; + _Statusbar ctrlCommit 0.5; + uisleep 0.5; + if (_Ignatz_StatusbarActive == 0) then { + _Statusbar ctrlShow false; + _Statusbar ctrlSetText ''; + }; + } + else { + uisleep 1; + }; + + _time = (round(_RestartTime*3600-_AutoKickBeforeRestart-serverTime)) max 0; + if (!isnil 'Ignatz_RestartOverrideTime') then { + _time = (Ignatz_RestartOverrideTime-_AutoKickBeforeRestart-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]; + 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;}; + uisleep 0.5; + (finddisplay 46) closedisplay 0; + }; + if ((_hours*60+_minutes) == 0) then { + _restart = true; + }; + if ((_hours*60+_minutes) in _RestartWarningTimes)then { + if ((_hours*60+_minutes) == 1) then { + _msg = format ["RESTART IN %1 MINUTE
PLEASE LOGOUT NOW!
",_minutes]; + _Ignatz_dyn = [_msg,0,safezoneY + safezoneH/2,5,0.5]; + _Ignatz_dyn spawn BIS_fnc_dynamicText; + } + else { + _msg = format ["RESTART IN %1 MINUTES",_minutes]; + _Ignatz_dyn = [_msg,safezoneX+safezoneW/1.5,safezoneY+safezoneH/1.5,5,0.5]; + _Ignatz_dyn spawn BIS_fnc_dynamicText; + }; + _RestartWarningTimes = _RestartWarningTimes - [_hours*60+_minutes]; + }; + if (_minutes < 10) then { + _minutes = "0" + (str _minutes); + }; + + if !(_Ignatz_StatusbarActive == 0) then { + _temp = round((EPOCH_playerTemp-32)/1.8*10)/10; + _highestDMG = 0; + { + _currentDMG = _x; + if (_currentDMG > _highestDMG) then{ + _highestDMG = _currentDMG; + }; + } forEach (((getAllHitPointsDamage player) param[2,[]]) + [damage player]); + _damage = round ((1 - _highestDMG) * 100); + _hunger = round((EPOCH_playerHunger/5000) * 100); + _thirst = round((EPOCH_playerThirst/2500) * 100); + _wallet = EPOCH_playerCrypto; + _stamina = round(EPOCH_playerStamina); + _toxPercent = round (EPOCH_playerToxicity); + _bloodpressure = round (EPOCH_playerBloodP); + _energy = round(EPOCH_playerEnergy); + _energyPercent = floor(_energy); + _grid = mapGridPosition player; + _xx = (format[_grid]) select [0,3]; + _yy = (format[_grid]) select [3,3]; + + _colourBloodP = _colourDefault; + if (_bloodpressure > 140 && _bloodpblink) then { + _bloodpblink = false; + } + else { + switch true do { + case (_bloodpressure < 110) : {_colourBloodP = _colour100;}; + case ((_bloodpressure >= 110) && (_bloodpressure < 120)) : {_colourBloodP = _colour90;}; + case ((_bloodpressure >= 120) && (_bloodpressure < 130)) : {_colourBloodP = _colour80;}; + case ((_bloodpressure >= 130) && (_bloodpressure < 140)) : {_colourBloodP = _colour70;}; + case ((_bloodpressure >= 140) && (_bloodpressure < 150)) : {_colourBloodP = _colour50;}; + case ((_bloodpressure >= 150) && (_bloodpressure < 160)) : {_colourBloodP = _colour40;}; + case ((_bloodpressure >= 160) && (_bloodpressure < 170)) : {_colourBloodP = _colour30;}; + case ((_bloodpressure >= 170) && (_bloodpressure < 180)) : {_colourBloodP = _colour20;}; + case ((_bloodpressure >= 180) && (_bloodpressure < 190)) : {_colourBloodP = _colour10;}; + case (_bloodpressure >= 190) : {_colourBloodP = _colourDead;}; + }; + if (_bloodpressure > 150) then { + _bloodpblink = true; + } + else { + _bloodpblink = false; + }; + }; + + _colourTemp = _colourDefault; + if ((_temp <= 35.5 || _temp > 38.5) && _tempblink) then { + _tempblink = false; + } + else { + switch true do { + case (_temp < 35.5) : {_colourTemp = _colourTempLowest;}; + case ((_temp >= 35.5) && (_temp < 36.5)) : {_colourTemp = _colourTempLower;}; + case ((_temp >= 36.5) && (_temp < 37.5)) : {_colourTemp = _colourTempMid;}; + case ((_temp >= 37.5) && (_temp < 38.5)) : {_colourTemp = _colourTempHigher;}; + case (_temp > 38.5) : {_colourTemp = _colourTempHighest;}; + }; + if (_temp <= 35.5 || _temp > 38.5) then { + _tempblink = true; + } + else { + _tempblink = false; + }; + }; + + _colourDamage = _colourDefault; + if (_damage < 30 && _damageblink) then { + _damageblink = false; + } + else { + switch true do { + case(_damage >= 100) : {_colourDamage = _colour100;}; + case((_damage >= 90) && (_damage < 100)) : {_colourDamage = _colour90;}; + case((_damage >= 80) && (_damage < 90)) : {_colourDamage = _colour80;}; + case((_damage >= 70) && (_damage < 80)) : {_colourDamage = _colour70;}; + case((_damage >= 60) && (_damage < 70)) : {_colourDamage = _colour60;}; + case((_damage >= 50) && (_damage < 60)) : {_colourDamage = _colour50;}; + case((_damage >= 40) && (_damage < 50)) : {_colourDamage = _colour40;}; + case((_damage >= 30) && (_damage < 40)) : {_colourDamage = _colour30;}; + case((_damage >= 20) && (_damage < 30)) : {_colourDamage = _colour20;}; + case((_damage >= 10) && (_damage < 20)) : {_colourDamage = _colour10;}; + case((_damage >= 1) && (_damage < 10)) : {_colourDamage = _colour0;}; + case(_damage < 1) : {_colourDamage = _colourDead;}; + }; + if (_damage < 30) then { + _damageblink = true; + } + else { + _damageblink = false; + }; + }; + + _colourHunger = _colourDefault; + if (_hunger < 10 && _hungerblink) then { + _hungerblink = false; + } + else { + switch true do { + case(_hunger >= 100) : {_colourHunger = _colour100;}; + case((_hunger >= 90) && (_hunger < 100)) : {_colourHunger = _colour90;}; + case((_hunger >= 80) && (_hunger < 90)) : {_colourHunger = _colour80;}; + case((_hunger >= 70) && (_hunger < 80)) : {_colourHunger = _colour70;}; + case((_hunger >= 60) && (_hunger < 70)) : {_colourHunger = _colour60;}; + case((_hunger >= 50) && (_hunger < 60)) : {_colourHunger = _colour50;}; + case((_hunger >= 40) && (_hunger < 50)) : {_colourHunger = _colour40;}; + case((_hunger >= 30) && (_hunger < 40)) : {_colourHunger = _colour30;}; + case((_hunger >= 20) && (_hunger < 30)) : {_colourHunger = _colour20;}; + case((_hunger >= 10) && (_hunger < 20)) : {_colourHunger = _colour10;}; + case((_hunger >= 1) && (_hunger < 10)) : {_colourHunger = _colour0;}; + case(_hunger < 1) : {_colourHunger = _colourDead;}; + }; + if (_hunger < 10) then { + _hungerblink = true; + } + else { + _hungerblink = false; + }; + }; + + + _colourThirst = _colourDefault; + if (_thirst < 10 && _thirstblink) then { + _thirstblink = false; + } + else { + switch true do{ + case(_thirst >= 100) : {_colourThirst = _colour100;}; + case((_thirst >= 90) && (_thirst < 100)) : {_colourThirst = _colour90;}; + case((_thirst >= 80) && (_thirst < 90)) : {_colourThirst = _colour80;}; + case((_thirst >= 70) && (_thirst < 80)) : {_colourThirst = _colour70;}; + case((_thirst >= 60) && (_thirst < 70)) : {_colourThirst = _colour60;}; + case((_thirst >= 50) && (_thirst < 60)) : {_colourThirst = _colour50;}; + case((_thirst >= 40) && (_thirst < 50)) : {_colourThirst = _colour40;}; + case((_thirst >= 30) && (_thirst < 40)) : {_colourThirst = _colour30;}; + case((_thirst >= 20) && (_thirst < 30)) : {_colourThirst = _colour20;}; + case((_thirst >= 10) && (_thirst < 20)) : {_colourThirst = _colour10;}; + case((_thirst >= 1) && (_thirst < 10)) : {_colourThirst = _colour0;}; + case(_thirst < 1) : {_colourThirst = _colourDead;}; + }; + if (_thirst < 10) then { + _thirstblink = true; + } + else { + _thirstblink = false; + }; + }; + + _colourEnergy = _colourDefault; + switch true do { + case(_energyPercent >= 100) : {_colourEnergy = _colour100;}; + case((_energyPercent >= 90) && (_energyPercent < 100)) : {_colourEnergy = _colour90;}; + case((_energyPercent >= 80) && (_energyPercent < 90)) : {_colourEnergy = _colour80;}; + case((_energyPercent >= 70) && (_energyPercent < 80)) : {_colourEnergy = _colour70;}; + case((_energyPercent >= 60) && (_energyPercent < 70)) : {_colourEnergy = _colour60;}; + case((_energyPercent >= 50) && (_energyPercent < 60)) : {_colourEnergy = _colour50;}; + case((_energyPercent >= 40) && (_energyPercent < 50)) : {_colourEnergy = _colour40;}; + case((_energyPercent >= 30) && (_energyPercent < 40)) : {_colourEnergy = _colour30;}; + case((_energyPercent >= 20) && (_energyPercent < 30)) : {_colourEnergy = _colour20;}; + case((_energyPercent >= 10) && (_energyPercent < 20)) : {_colourEnergy = _colour10;}; + case((_energyPercent >= 1) && (_energyPercent < 10)) : {_colourEnergy = _colour0;}; + case(_energyPercent < 1) : {_colourEnergy = _colour0;}; + }; + + _colourToxicity = _colourDefault; + if (_toxPercent > 80 && _toxicblink) then { + _toxicblink = false; + } + else { + switch true do { + case(_toxPercent >= 100) : {_colourToxicity = _colourDead;}; + case((_toxPercent >= 90) && (_toxPercent < 100)) : {_colourToxicity = _colour0;}; + case((_toxPercent >= 80) && (_toxPercent < 90)) : {_colourToxicity = _colour10;}; + case((_toxPercent >= 70) && (_toxPercent < 80)) : {_colourToxicity = _colour20;}; + case((_toxPercent >= 60) && (_toxPercent < 70)) : {_colourToxicity = _colour30;}; + case((_toxPercent >= 50) && (_toxPercent < 60)) : {_colourToxicity = _colour40;}; + case((_toxPercent >= 40) && (_toxPercent < 50)) : {_colourToxicity = _colour50;}; + case((_toxPercent >= 30) && (_toxPercent < 40)) : {_colourToxicity = _colour60;}; + case((_toxPercent >= 20) && (_toxPercent < 30)) : {_colourToxicity = _colour70;}; + case((_toxPercent >= 10) && (_toxPercent < 20)) : {_colourToxicity = _colour80;}; + case((_toxPercent >= 1) && (_toxPercent < 10)) : {_colourToxicity = _colour90;}; + case(_toxPercent < 1) : {_colourToxicity = _colour100;}; + }; + if (_toxPercent > 80) then { + _toxicblink = true; + } + else { + _toxicblink = false; + }; + }; + _colourStamina = _colourDefault; + + _bartext = switch _Ignatz_StatusbarActive do { + case 0:{ + ""; + }; + case 1:{ + _StatusbarTxt1; + }; + case 2:{ + _StatusbarTxt2; + }; + case 3:{ + _StatusbarTxt3; + }; + }; + + _Statusbar ctrlSetStructuredText parseText format ["" + _bartext + "", + count playableunits, + _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 + ]; + }; + }; +}; diff --git a/epoch.Mission/addons/pics/Ignatz_Statusbar/Flag.paa b/epoch.Mission/addons/pics/Ignatz_Statusbar/Flag.paa new file mode 100644 index 0000000000000000000000000000000000000000..70941e55082029c205750b0907fb2f1ea7fbd787 GIT binary patch literal 1522 zcmchXeMnPL6u{4(GjvOmQZcmJXqqb`LB%Y?Mzt|h`r2!Q)^aW)(`6uikl0@K^+)t& z5kf(OFer#D=ta?oVHrVLB$MG{ldO%Ux$+N9oSx2|!Zi9P!VcW`-tV4s&pq#)b8jr_ zbQ;4N-Byhh0Q`Rc&Ip?{rHqk;u})K>Wh|k=c#BrMVKsdVG)|G?Y%G9_#@~wq6aZ4l z42gEniAEgp0`R;~hM;da$gu#3U2@=h-#4;g5LHT}oPv0!4nK=9z>aQ!WQUmGnKgpj zLu|bTQr?Sp+Z$#;ynh*_jI?!yBlbP1)ekzNpG|miav$UVS8wl*~``H zrR>cF(TAW=IHxcGH<<+hS(FO{l3AI#Q6B$_vJbP!?~H5bMq4rbip`r3nf57ATb@5y zzVPyWfP{>^yr?~!;UrP^VLex0Kbd7DQ7#O8G@CX~W?CK_Wgk+!u(8(>UVy_zh)3hP z%UXn_R?$`~T0PmvDVHu6k5|bE%CdYIDBw6*Z6WF#R6+0{wx)t$;r9*T0vVO;=@6M6 zG4gX!e=l>eJgtuM5Ar82<#Cp5-%NAhdMbdEHwOuoRUR+17kqs33%vN8*0Z>}jXY1Y zQ>4JVqVL_Vs&tY5zQ(41IYs#&KpN2Q&Jp*n9#w!3BY7F)lB#Pzx$v0`Db6J*Sa=RkBYaWzw7^%6Csh^ zF1knJh4Anld^#jmy5w98o($3@z>eX)OBM8<-z8q~v(BP6H2OJ=Rveh_zvSe8N&mFPS=upO3e{^GJCI@o@E}x)4h&d`tg=!$ppKH)2n!AaonE zA0MzD6Kz*mnom&KB?aSUPo!f(McB$>VWOZxo+d7dD62t#UPUKGUrc4=dHw+u*Q=@q zGLp!j!ED;b)-qAh_|y70h=bJtdt9au_%k#I(O!9)i@Aw8{hSjFKUf+n1>vg|G_zMd pY{=@MQ@Y7ox{ka>L_tsHR!TQ2<#S1}FY zjdoM0z=VvR3@;CZP+{VhW*2%$c5MS+7Aw3YB_d(|oijUQ3cVF;!ijcGoXl1I-NxvtQ$d_!EjSg$QbDQ#X>BE zutZO)3N}}_+w3_?2#F<)hE0#|tYAH9Gx$x?9@Wm3MCIB@eCGhAgg8z!gq`YfNA9+V z5EIGBF+>R1@~+tsi;^g=Ke4qQ1#jfqG|y}U#=E*h$9Sf^zshNS1ThDU2VYGN9;fwb zh@nWPeXk+Ej`ksiUo2i5Yy&9u-sQKtr$d=BKBF-uRrbN*K!6*B}Oqm^5GjLmJ#v;`9I_*_p?T=S;0=^ z0eT}hEi6+qF{$zWZ~k2)nO}w{D}N|F9K%|h=!8u-r&b*5KT3;|<@nFBJXkh4T-OyE zFozNIoRL$Cv+AMDrx0Lqo+U|2T4nm{Qb&YaHW+D)mjn*QkGZ-j7%_#9k)+b;vp)wM zpN3=n9H#|ATq21$B8ngecabID)*If|ZOE?&(d_GeV>}ZCJaB38+p=7#=3|n|UI+^v zHg^mIWgOl|p)Wx_FWh*qKhJ9~Q~3$B6fX`-lB*)H6F+03vpOLl9&PYbYR{4M4B0Xw zo5x!U!?+j40=oK}hL?6{Js0P< z_G-3L*)gB{HTsg$&@*u1Kozm)D`h>RVGAtKCw(ZRBBHh_PHL03M}6k;E9di+{L2Z0 zZDob`o{O#U|NJmU4a9&!ZF24OkzWuc^$IOlchgvcmmmaq)(^>*&$x!U~@bl`CBkN@*L|L2@@&-G+e zQe)Pj=SaPt@z=7)$+FbRU*M0Be_-e)rbf_t0mZhwF z@eu0jZnE&#_(B-OpRloO<{telu*7*U*Q6qPfg>$7U(LR)X5izjT6dHz{t^OA0^_bf^l3WF@>VwIAyntl91l>O;Kz z-H5?S<_80ZJ?yQtH8O+XAM@Sn(f;jKHs~Uh-h3!sdI&g9Eh7?f3&7f^UCd0y@+Pou z6N_Z14Or+eQ7Do(AE`skTq_v+JtXl4a ze4(G`vP>7TqkomFinf&Bo(BJz1xIm`kywNLv*S3pE0nJHeI7UY^YC+Xvl!}${JHwu z`%egT#ej>T*EcK>A5NG;XK@Pn3)hqV`Vq# zyTV`NEEm2rJKFZ?Ftt%pdI{81PR$pU8FPn#C(+^d-RTebWAd0I5EnwnN#v_jZxRC+G{^hQDU5@l^^(P#!x`J3pR=1kB# iM5C9h>im;99j~HAjQ^;3KQHa^N-jDz^&G;sHvJE+oMV3g literal 0 HcmV?d00001 diff --git a/epoch.Mission/addons/pics/Ignatz_Statusbar/damage.paa b/epoch.Mission/addons/pics/Ignatz_Statusbar/damage.paa new file mode 100644 index 0000000000000000000000000000000000000000..6e9403e8729eb399c144b9c67454d1017cc4b2c8 GIT binary patch literal 1522 zcmZSm@9ypx;_M#g$il$DaPZ(k5imc((HF%34+J2-yQ7aAh|dVbAbzl$o4*5)-2lYx zK#4w928OFZOgd0tP+(vH84Up-3t?;!Jy`fW-rI6-Z_91@|NquCptC|?Zlsm_c!NRq zC0ax5b8t|7d@uRC^FN?b5cRCAA6q9^{}{2!6m43Y;rCqVq@ zhPej?ZGiCwbdP9gDEskkxhK>3!1@_PLKwLiJSVAmOi}^62b_!`AxNxy(8HUD!E=HN z&`7ZRfRd&&JvPYy-Wq@V-p+HYfI#+;>YX!C_lkFbF_O7gT35D}aI-maG{F2BUz)wp{CNiI8LmOt%uxJI;uw zB!QDDFjWRDV(@G_;Crqf6m0>4p`py6Wa-%iO_qps2@58m{fWSA56*@T3=9r$7@q7? z4Q8?c=?`UPg(obSdh}pqN=J1rYu1loVo-;LNqOa z{0?7O?iS^c+?Ff7Eg70S9T=3)x5(aZhQ&53usme}g{N}qwzntBau0)yVF?uxfw&F; Dd`0-f literal 0 HcmV?d00001 diff --git a/epoch.Mission/addons/pics/Ignatz_Statusbar/energy.paa b/epoch.Mission/addons/pics/Ignatz_Statusbar/energy.paa new file mode 100644 index 0000000000000000000000000000000000000000..9df36d6e37f35c2e671d92030ed8cdb96498954b GIT binary patch literal 1522 zcmZSm@9ypx;_M#g$il$DaOu(|EigaA(HF%34+J2-yQ7aAh|dVbAbzl$o4*5)-2lYx zK#4w928OFZOgd0tP+(vH84Up-3t?;!Jy`i|@3-aN-j=KK|NpIPKxc+P__8;ke0We$ z%l)PA%o6^WckXHI~O{(t-4&U34Pp!N*^2V{QfyA8FsH_F}ysb>TNSeSy; zz}O&~X#P6~z9&Egv)}pk|Nr*&AGl%m|G&kM07@M&{yPSbCKVu}mHiAK`M+`O|KJ2N zKU7pSbmpI*{r`W@hldBP?KivEE_i$S-_s!bU0Fp%jrRTT|6`W_9qgXakN|4ifB#ci z{&TY|aC`!zpMn1*f6dJ;xnRC1D}`hmd` z68lZ@&*`0Wz|kfO1W;Gw43_T5e23b1|= z1_s%RiZv&oe1z?YY{ZpOKZ-qN6N% r`nLplYS39YUG`=R#2QvsR$zI`0t!#{b=%%vQOi95(k21~5Z?j-U2G7N literal 0 HcmV?d00001 diff --git a/epoch.Mission/addons/pics/Ignatz_Statusbar/hunger.paa b/epoch.Mission/addons/pics/Ignatz_Statusbar/hunger.paa new file mode 100644 index 0000000000000000000000000000000000000000..97db76c9c2ffdde92f209a01230865aac8c12078 GIT binary patch literal 1522 zcmZSm@9ypx;_M#g$il$DaN@)XMKC|Y(HF%34+J2-yQ7aAh|dVbAbzl$o4*5)-2lYx zK#4w928OFZOgd0tP+(vH84Up-3t?;!Jy`hOi?`+8-uAZP|NmRpfX)gro(kgMWrgxX z-A{q|xyn#}K*nVdU-kx+4-Xo0{S&i~?^OfeixnXALV#eMt@b7*Z6&4K_jaCJ1q5f$ zo8>(>%Xw%3B~X9WUSn38M1^B2EIf5P&?<^!z{F#hWKLH>NrO^|(| zp`ok{XC3&S01?c7hPV757=Q@Gr-uFZjzIsFHu>cXK7@nM+Y;Ufl<(@?KEdX1N1d{*& literal 0 HcmV?d00001 diff --git a/epoch.Mission/addons/pics/Ignatz_Statusbar/krypto.paa b/epoch.Mission/addons/pics/Ignatz_Statusbar/krypto.paa new file mode 100644 index 0000000000000000000000000000000000000000..6eccd9ec1130cc412edeab21510d776808d6813b GIT binary patch literal 1522 zcmc(fZ%9*76u{5WXAe7ioti=JW>2&W#caiHw^bNvsNK`&(bc;#KP; zJ?$ftf7Pd%G?acv_IzqD2m+rpqx^z#bGmo*!Si+^`}_MaRwj6O(8fx>i{wc@?g4GWOK5BxGnxpwh{Q?Zfom9kq z+d!G)Os3+Ar;c4OW_MGzT1C;^TXFGOMaw42DwQa%??H~Vnp0Dhd0rH2n>zd>m#bKQ zl0InumEFj32H9Ez{=AUPh=ms}?Fp5prG+Fj#f|73scS zyl5Ztp`l>tj&_*pN&AE5Khl1>d>YxWj!YutoKu=N2ih6jh-1nm7C}GWkMaAW z-~1Mj`3!c61vu&>#dik${}}(W-LIwdkA`Uax`ZvccA7MH?P6)$h>H=nP)9yNVpGhL zYo)(|9Qnxhkm`9NJAdRgN36@+E+50>Ps$pfZ`38T(R!7=E<{b<(@@$^?ta*H&AkA!pOuwSl#o27_8H_ z@_%mM+j(vk5FGwc|L1sm%@L6OqCh}Mo>Kem-@Kgv@5cMTAp1f?LqpU*MlVdU4 Qn`@VTIvrnz1 zQl`B(l`#VVP%4$;5+61X5U!ySPMP}|VFefALyYwr_A+*+X(fT%qq zLI0cH|FKt(_KL{OWX8|dYR{j7Wpm~pUEgyt+eMgjZZJ18QQNV_tz!k_kCd<64a#^` z<9t>?ZMA{P|{lHWjM#p<{6=#b>sR8?Jpo~r?Th@bo`kiL+>hp>W{EWUEy>8HLD zwk^v-zOcIxm;1^8yL_gr!s!wNQJ;USTZl*3&do}Glk>Ls`uzH^UM6gDuIf|QznAB7 zk{{E9wy&{gyRdEyUf0aMSuqN;pyB@fij{d*#;4$IHjx5FeJ)X7|x4;!+>a zqOnE7xi<16wmT|kKHbY#mSui6*A!L=qra~2pT7C|R+dD+pO1z4urI@xcGdYfc9(sA zbYsIWSXr8A=&6lrH?QYs*zCOgYkUi|c(;p3^tZAb`=|}xZvkK!vDM5>dL)&nHrPCA z##U#yC3kjC64v-ZQ^wDEV~P4o9>@Av&y*ZvoNCBC>)gGmaCwp9amsjX^>%Pl?@tmo zO^XjfdOp#6%^!Qe3XN;4`vY_Qw%h3Ke%o=<$66!$XInxL0s|m6hR4tyi(~+QcZqLq wFM3$jA|riHP#=`jWZM>uLGE-S@1>z>D&D67s%IoCK0XL#AIfc<{9 literal 0 HcmV?d00001 diff --git a/epoch.Mission/addons/pics/Ignatz_Statusbar/stamina.paa b/epoch.Mission/addons/pics/Ignatz_Statusbar/stamina.paa new file mode 100644 index 0000000000000000000000000000000000000000..05dfe45ddaaafcbac0455f9fbc4f7e7e213437a5 GIT binary patch literal 1522 zcmZSm@9ypx;_M#g$il$DaN@)XSuj7s(HF%34+J2-yQ7aAh|dVbAbzl$o4*5)-2lYx zK#4w928OFZOgd0tP+(vH84Up-3t?;!JyiIHC%5I^-j=KU|NpIPKxYTAy#n!N4?+2& zFh7y&ADLw!^HQHc%yS5_`Lr#UmH6|FVPluCAh?5}*F-n{7)3`#&_)fkE)hR@vJda>0C{dtlb%OkaFE z%JQC@rGV831OzZJ{P6tue-aB&{jF=Ep`i>?*ZT`^Zpa0@$CZ`QLGS6G*K>YPybhJ8 zIKE*H#1%gI7q=x^Z_5O`&jIK@$CvhhZZ$&uC&~(sZk+xjWIny+1sDX7QUy+D+sA>E z#Su_21Dyy=h!B7)m~>umd#I|Aup6Wvm@5L*f1V3G$N5JH5>29^jA+S{>)y6p>21m2 zXk~D4aF9IxjnAN-=LS@NsOk+@`J26SZ-Vu^va+%yZsY}KdvG)$r7F1lwE}^LLFFAB z7#IXTH0r|Cvm#OMHBr`1Z!OoYSeA3=E;6fuWiXdAY~Z60U*d zOI=x0nN;0!jsOu*Gef3hX{P>Swj2$&{3o~X0o9wTs;V@a$sA_?b8z2xAU`A^Kz*TG z-V-4D4U|^}0!45BKL>#5-hT#$03cAD2a&IR50&>vm6uw8B5%qNc>V(q5dDYgFN^E@ z_vbz^xEL5%I2oD6uFwDDU;jlOET7=uAaU&X`aceN86ZA0BkNVZWB)&v_nRC9@f{oj z!dVyu7#tWFv>6$VmPLClc>?rTsBdiS1>ujvItPVx{{L5C@bvU_6gcnEC;~(>&lwmT Xf#ARJbiV~GQbr(WHvxr!p#cN{Y;li$ literal 0 HcmV?d00001 diff --git a/epoch.Mission/addons/pics/Ignatz_Statusbar/thirst.paa b/epoch.Mission/addons/pics/Ignatz_Statusbar/thirst.paa new file mode 100644 index 0000000000000000000000000000000000000000..e0a3aac806fcec6493b4632947401aceff3eec0a GIT binary patch literal 1522 zcmZSm@9ypx;_M#g$il$DaN)uQbud4|(HF%34+J2-yQ7aAh|dVbAbzl$o4*5)-2lYx zK#4w928OFZOgd0tP+(vH84Up-3t?;!Jy`jH44#uzJSVaI|9|Tm(3uV$V1APdln)9g zFrbzDbw8LTeSfwdX#A~f0U;rwoG-S@-kAUQ0Eo}X$|_22`vtqUC0cLGdk!++!66{v z|3iouZ{OQ_ZWRzPe6;^q|Nk@CJ))tZp~82!<=);Tdjk?4jPRsEZg_+~EzA4!>~$T; zybvJx5Aq?403*zPSgL{XbRI8baq#9R0R{m`>4KVVM9{LC5{cPNW6!qa&&S^X zg9KYhh}YRovbX2|Jq+R#lT9RV{Mi3x^-8dMU@(hvKd%2!|NnSAESd>rGu?Y}8OhLS z2mwZ$*_)p>H=uk`c&0!^3kL%SFi|m>_5;;yOMVP;CIc|Lao*d;dwVl9H!%Wp(+dXX ufCdh5>I(oS2gOIr=iX|8qz+bAR$zI`0t!#V z@wpj1C#iTgslfO!KM~7kya6&VT?eL~?{wJamX#q2Fuv{{Pop4RnHwyYT4FAO`UGzrSRgy|Q3Z;)(KrmP0zf6@M?#&BtwC5->3%a0{s zjsP=^|D55>)+JSZaCybst+Kb)p1lQ=Clns8ul7A~?t3;3rv9A|vx=AQ0}dGfxk*FR zO1_oCF#aoDCY8YMjd1>J?WRSU1uX3_`Se2_dvEmIg@+d*`xQRrrL?*wuZHP=&U5xd zO^%WujQ^=BLe*DN;S7xbR##df@q&^AjQ@z?_s=EjTRCBThHIJvOson-r)TkkZOPKW zBmmQIb@ydU*|sb={|v+0;Oz}l;OWca)C86c&m_2f&b90dhc+Sf^DuY-)8iz#dP4rE zx4Zy@0Hkz*SPb*FSTZOZF&^1W$(O&Qv+IEw|b%sUN1E`&#x%L65~PF#aIPIw(xAlymdo&W#< literal 0 HcmV?d00001 diff --git a/epoch.Mission/description.ext b/epoch.Mission/description.ext new file mode 100644 index 0000000..af9a096 --- /dev/null +++ b/epoch.Mission/description.ext @@ -0,0 +1,4 @@ +// Epoch Survival Gamemode +#include "epoch_config\sandbox_config.hpp" +#include "Ignatz_config.hpp" + diff --git a/epoch.Mission/epoch_code/customs/EPOCH_custom_EH_GetInMan.sqf b/epoch.Mission/epoch_code/customs/EPOCH_custom_EH_GetInMan.sqf new file mode 100644 index 0000000..17785ce --- /dev/null +++ b/epoch.Mission/epoch_code/customs/EPOCH_custom_EH_GetInMan.sqf @@ -0,0 +1,28 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: [Ignatz] He-Man + + Description: + Custom A3 Epoch GetInMan Eventhandler + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/custom/EPOCH_custom_EH_GetInMan.sqf +*/ +params ["_unit","_position","_vehicle"]; + +// Start Ignatz_Earplugs +if (Ignatz_AutoEarplugs) then { + if (Ignatz_AutoEarplugsHints) then { + hint 'Earplugs have been auto inserted'; + }; + if (Ignatz_EarplugsSystemchat) then { + systemchat 'Earplugs have been auto-inserted...'; + }; + Ignatz_Earplugsin = false; + [] call Ignatz_Client_Earplugger; +}; +// End Ignatz_Earplugs diff --git a/epoch.Mission/epoch_code/customs/EPOCH_custom_EH_GetOutMan.sqf b/epoch.Mission/epoch_code/customs/EPOCH_custom_EH_GetOutMan.sqf new file mode 100644 index 0000000..a049fe8 --- /dev/null +++ b/epoch.Mission/epoch_code/customs/EPOCH_custom_EH_GetOutMan.sqf @@ -0,0 +1,28 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: [Ignatz] He-Man + + Description: + Custom A3 Epoch GetOutMan Eventhandler + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/custom/EPOCH_custom_EH_GetOutMan.sqf +*/ +params ["_unit","_position","_vehicle"]; + +// Start Ignatz_Earplugs +if (Ignatz_AutoEarplugs) then { + if (Ignatz_AutoEarplugsHints) then { + hint 'Earplugs have been auto-removed'; + }; + if (Ignatz_EarplugsSystemchat) then { + systemchat 'Earplugs have been auto-removed...'; + }; + Ignatz_Earplugsin = true; + [] call Ignatz_Client_Earplugger; +}; +// End Ignatz_Earplugs diff --git a/epoch.Mission/epoch_code/customs/EPOCH_custom_EH_KeyDown.sqf b/epoch.Mission/epoch_code/customs/EPOCH_custom_EH_KeyDown.sqf new file mode 100644 index 0000000..0d9c417 --- /dev/null +++ b/epoch.Mission/epoch_code/customs/EPOCH_custom_EH_KeyDown.sqf @@ -0,0 +1,48 @@ +/* + Author: Aaron Clark - EpochMod.com + + Contributors: [Ignatz] He-Man + + Description: + Custom A3 Epoch KeyUp Eventhandler + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/custom/EPOCH_custom_EH_KeyDown.sqf +*/ +params ["_display","_dikCode","_shift","_ctrl","_alt"]; +_handled = false; +// Start Ignatz_StatusBar +if (Ignatz_UseStatusBarSwitchKey) then { + if (_dikCode == Ignatz_StatusBarSwitchKey) then { + Ignatz_StatusbarSelected = switch Ignatz_StatusbarSelected do { + case 0: {1}; + case 1: {2}; + case 2: {3}; + case 3: {0}; + }; + }; +}; +// End Ignatz_StatusBar + +// Start Ignatz_Earplugs +if (!isnil 'Ignatz_KB_Earplug') then { + if (_dikCode == Ignatz_KB_Earplug) then { + if (Ignatz_EnableEarpluginVeh || player == vehicle player) then { + if (Ignatz_EarplugsSystemchat) then { + if (Ignatz_Earplugsin) then { + systemchat 'Earplugs have been removed...'; + } + else { + systemchat 'Earplugs have been inserted...'; + }; + }; + [] call Ignatz_Client_Earplugger; + }; + }; +}; +// End Ignatz_Earplugs + +_handled diff --git a/epoch.Mission/init.sqf b/epoch.Mission/init.sqf new file mode 100644 index 0000000..a395947 --- /dev/null +++ b/epoch.Mission/init.sqf @@ -0,0 +1,6 @@ +// File created by Ignatz - He-Man + +if (hasInterface) then { + [] execVM "addons\Ignatz_EarPlugs.sqf"; + [] execVM "addons\Ignatz_Statusbar.sqf"; +}; \ No newline at end of file