From b3c2e7c8f16cec05bdb0490e1fa098653373b513 Mon Sep 17 00:00:00 2001 From: Bjanski Date: Mon, 1 Aug 2016 17:25:05 +0200 Subject: [PATCH] Added StatsBar App and plugin --- CHANGELOG.md | 10 + docs/StatsBar/changelog.md | 21 ++ docs/StatsBar/createApp.md | 11 + docs/StatsBar/examples.md | 1 + docs/StatsBar/installation.md | 37 +++ docs/StatsBar/update.md | 5 + .../Exile.Altis/ExAdClient/CfgFunctions.cpp | 1 + .../Exile.Altis/ExAdClient/RscTitles.cpp | 2 +- .../ExAdClient/StatsBar/CfgFunctions.cpp | 44 ++++ ...eServer_system_territory_database_load.sqf | 61 +++++ .../StatsBar/Functions/fn_formatSBImage.sqf | 21 ++ .../StatsBar/Functions/fn_formatSBOutput.sqf | 26 ++ .../StatsBar/Functions/fn_getBankStr.sqf | 24 ++ .../StatsBar/Functions/fn_getClanStr.sqf | 24 ++ .../StatsBar/Functions/fn_getCompassStr.sqf | 40 +++ .../StatsBar/Functions/fn_getFPSStr.sqf | 31 +++ .../StatsBar/Functions/fn_getGridStr.sqf | 26 ++ .../StatsBar/Functions/fn_getHPStr.sqf | 31 +++ .../StatsBar/Functions/fn_getHungerStr.sqf | 31 +++ .../StatsBar/Functions/fn_getKDStr.sqf | 34 +++ .../StatsBar/Functions/fn_getPlayersStr.sqf | 24 ++ .../StatsBar/Functions/fn_getRespectStr.sqf | 24 ++ .../StatsBar/Functions/fn_getSBColor.sqf | 44 ++++ .../StatsBar/Functions/fn_getTempStr.sqf | 33 +++ .../StatsBar/Functions/fn_getThirstStr.sqf | 31 +++ .../StatsBar/Functions/fn_getTimerStr.sqf | 39 +++ .../StatsBar/Functions/fn_getWalletStr.sqf | 24 ++ .../StatsBar/Functions/fn_loadSB.sqf | 40 +++ .../StatsBar/Functions/fn_sbThread.sqf | 50 ++++ .../StatsBar/Functions/fn_toggleExileHUD.sqf | 51 ++++ .../ExAdClient/StatsBar/RscTitles.cpp | 41 +++ .../Exile.Altis/ExAdClient/StatsBar/base.cpp | 23 ++ .../ExAdClient/StatsBar/customize.sqf | 34 +++ .../ExAdClient/StatsBar/icons/compass.paa | Bin 0 -> 1522 bytes .../ExAdClient/StatsBar/icons/hunger.paa | Bin 0 -> 1522 bytes .../ExAdClient/StatsBar/icons/players.paa | Bin 0 -> 1522 bytes .../ExAdClient/StatsBar/icons/respect.paa | Bin 0 -> 26367 bytes .../ExAdClient/StatsBar/icons/restart.paa | Bin 0 -> 1522 bytes .../ExAdClient/StatsBar/icons/thermostat.paa | Bin 0 -> 35407 bytes .../ExAdClient/StatsBar/icons/thirst.paa | Bin 0 -> 1522 bytes .../ExAdClient/StatsBar/postInit.sqf | 84 +++++++ .../ExAdClient/XM8/Apps/Info/onLoad.sqf | 2 +- .../ExAdClient/XM8/Apps/Journal/onLoad.sqf | 2 +- .../XM8/Apps/SB_Settings/Icon_SB.paa | Bin 0 -> 22016 bytes .../XM8/Apps/SB_Settings/config.sqf | 75 ++++++ .../XM8/Apps/SB_Settings/onLoad.sqf | 238 ++++++++++++++++++ mpmissions/Exile.Altis/config.cpp | 10 +- 47 files changed, 1346 insertions(+), 4 deletions(-) create mode 100644 docs/StatsBar/changelog.md create mode 100644 docs/StatsBar/createApp.md create mode 100644 docs/StatsBar/examples.md create mode 100644 docs/StatsBar/installation.md create mode 100644 docs/StatsBar/update.md create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/CfgFunctions.cpp create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/CustomCode/ExileServer_system_territory_database_load.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_formatSBImage.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_formatSBOutput.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getBankStr.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getClanStr.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getCompassStr.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getFPSStr.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getGridStr.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getHPStr.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getHungerStr.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getKDStr.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getPlayersStr.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getRespectStr.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getSBColor.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getTempStr.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getThirstStr.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getTimerStr.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getWalletStr.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_loadSB.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_sbThread.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_toggleExileHUD.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/RscTitles.cpp create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/base.cpp create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/customize.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/compass.paa create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/hunger.paa create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/players.paa create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/respect.paa create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/restart.paa create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/thermostat.paa create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/thirst.paa create mode 100644 mpmissions/Exile.Altis/ExAdClient/StatsBar/postInit.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/XM8/Apps/SB_Settings/Icon_SB.paa create mode 100644 mpmissions/Exile.Altis/ExAdClient/XM8/Apps/SB_Settings/config.sqf create mode 100644 mpmissions/Exile.Altis/ExAdClient/XM8/Apps/SB_Settings/onLoad.sqf diff --git a/CHANGELOG.md b/CHANGELOG.md index 46052ca..2b92a7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,16 @@ #ExAd # Changelog: +## 160801 17:00 . v0.8.0 +### Fixed +* "ExadClient\CfgFunctions.cpp" to work with StatsBar (Core) +* "ExadClient\RscTitles.cpp" to work with StatsBar (Core) +* Go Back button didn't show text when VG wasn't loaded in the package (Apps; Info, Journal) + +### Added +* New plugin - StatsBar (StatsBar) +* New App to configure the StatsBar (XM8) + ## 1607330 11:00 . v0.7.11 ### Fixed * Modified fn_addApps. (XM8) diff --git a/docs/StatsBar/changelog.md b/docs/StatsBar/changelog.md new file mode 100644 index 0000000..dae7805 --- /dev/null +++ b/docs/StatsBar/changelog.md @@ -0,0 +1,21 @@ +#VirtualGarage +## Changelog: + +## 160726 17:15 . v0.7.10 +### Fixed +* Apply custom functions to "More" app buttons. + +### Added +* New App, deploy vehicles + +## 160720 01:15 . v0.7.9 +### Fixed +* Some design flaws in the Apps functions. +* Added ExAd_Journal class to config.cpp + +### Added +* New App, which is a tutorial app on YouTube + +### v0.7.7 +#### Added +* Introduced **XM8** to the ExAd package diff --git a/docs/StatsBar/createApp.md b/docs/StatsBar/createApp.md new file mode 100644 index 0000000..63cf99b --- /dev/null +++ b/docs/StatsBar/createApp.md @@ -0,0 +1,11 @@ +#Create Apps + +To create an app you need follow 4 simple steps + +1. + +2. + +3. + +4. diff --git a/docs/StatsBar/examples.md b/docs/StatsBar/examples.md new file mode 100644 index 0000000..b5f1edf --- /dev/null +++ b/docs/StatsBar/examples.md @@ -0,0 +1 @@ +#Examples diff --git a/docs/StatsBar/installation.md b/docs/StatsBar/installation.md new file mode 100644 index 0000000..ad7e335 --- /dev/null +++ b/docs/StatsBar/installation.md @@ -0,0 +1,37 @@ +# Installation + +Remember for this plugin to work you first need to install +* [Core](https://github.com/Bjanski/ExAd/blob/master/docs/core/installation.md) +* [XM8](https://github.com/Bjanski/ExAd/blob/master/docs/xm8/installation.md) + +## Client + +* Place the folder "StatsBar" into "mpmissions\exile.\ExAdClient\" + +* Goto "mpmissions\exile.\ExAdClient\CfgFunctions" and uncomment + +_From_ +```cpp + //#include "StatsBar\CfgFunctions.cpp" +``` +_To_ +```cpp + #include "StatsBar\CfgFunctions.cpp" +``` + +* In "config.cpp" in the mission root folder, add to the following class "CfgXM8" +```js +class CfgXM8 +{ + extraApps[] = {"ExAd_SB"}; + + class ExAd_SB + { + title = "Statsbar Settings"; + controlID = 50400; //IDC:50400 -> 50475 || These need to be unique and out of range from each other + config = "ExadClient\XM8\Apps\SB_Settings\config.sqf"; + logo = "exile_assets\texture\ui\xm8_app_settings_ca.paa"; + onLoad = "ExAdClient\XM8\Apps\SB_Settings\onLoad.sqf"; + }; +}; +``` diff --git a/docs/StatsBar/update.md b/docs/StatsBar/update.md new file mode 100644 index 0000000..d8793ee --- /dev/null +++ b/docs/StatsBar/update.md @@ -0,0 +1,5 @@ +#StatsBar +## Instructions: + +### 160801 . v0.8.0 +* Full installation diff --git a/mpmissions/Exile.Altis/ExAdClient/CfgFunctions.cpp b/mpmissions/Exile.Altis/ExAdClient/CfgFunctions.cpp index 6539250..2e4edaf 100644 --- a/mpmissions/Exile.Altis/ExAdClient/CfgFunctions.cpp +++ b/mpmissions/Exile.Altis/ExAdClient/CfgFunctions.cpp @@ -27,4 +27,5 @@ class ExAd //#include "Grinding\CfgFunctions.cpp" //#include "HaloParachute\CfgFunctions.cpp" //#include "XM8\CfgFunctions.cpp" + //#include "StatsBar\CfgFunctions.cpp" }; \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/RscTitles.cpp b/mpmissions/Exile.Altis/ExAdClient/RscTitles.cpp index 6016670..babe2a6 100644 --- a/mpmissions/Exile.Altis/ExAdClient/RscTitles.cpp +++ b/mpmissions/Exile.Altis/ExAdClient/RscTitles.cpp @@ -17,4 +17,4 @@ */ -//#include "HUD\RscTitles.cpp" \ No newline at end of file +//#include "StatsBar\RscTitles.cpp" \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/CfgFunctions.cpp b/mpmissions/Exile.Altis/ExAdClient/StatsBar/CfgFunctions.cpp new file mode 100644 index 0000000..b3d4ad9 --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/CfgFunctions.cpp @@ -0,0 +1,44 @@ +/* + CfgFunctions.cpp + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + + +class StatsBar +{ + file = "ExAdClient\StatsBar\Functions"; + class formatSBImage {}; + class formatSBOutput {}; + class getBankStr {}; + class getClanStr {}; + class getCompassStr {}; + class getFPSStr {}; + class getGridStr {}; + class getHPStr {}; + class getHungerStr {}; + class getKDStr {}; + class getPlayersStr {}; + class getRespectStr {}; + class getTempStr {}; + class getThirstStr {}; + class getTimerStr {}; + class getSBColor {}; + class getWalletStr {}; + class loadSB {}; + class sbThread {}; + class toggleExileHUD {}; + class postInitSB {file = "ExAdClient\StatsBar\postInit.sqf"; postInit = 1;}; +}; \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/CustomCode/ExileServer_system_territory_database_load.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/CustomCode/ExileServer_system_territory_database_load.sqf new file mode 100644 index 0000000..5fe53ba --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/CustomCode/ExileServer_system_territory_database_load.sqf @@ -0,0 +1,61 @@ +/** + * ExileServer_system_territory_database_load + * + * Exile Mod + * www.exilemod.com + * © 2015 Exile Mod Team + * + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. + */ + +private["_territoryID","_data","_id","_owner","_position","_radius","_level","_flagTexture","_flagStolen","_flagStolenBy","_lastPayed","_buildRights","_moderators","_flagObject"]; +_territoryID = _this; +_data = format ["loadTerritory:%1", _territoryID] call ExileServer_system_database_query_selectSingle; +_id = _data select 0; +_owner = _data select 1; +_name = _data select 2; +_position = +[ + _data select 3, + _data select 4, + _data select 5 +]; +_radius = _data select 6; +_level = _data select 7; +_flagTexture = _data select 8; +_flagStolen = _data select 9; +_flagStolenBy = _data select 10; +_lastPayed = _data select 11; +_buildRights = _data select 12; +_moderators = _data select 13; +_flagObject = createVehicle ["Exile_Construction_Flag_Static",_position, [], 0, "CAN_COLLIDE"]; +if (_flagStolen isEqualTo 0) then +{ + _flagObject setFlagTexture _flagTexture; +}; +ExileLocations pushBack _flagObject; +_flagObject setVariable ["ExileTerritoryName", _name, true]; +_flagObject setVariable ["ExileDatabaseID", _id]; +_flagObject setVariable ["ExileOwnerUID", _owner, true]; +_flagObject setVariable ["ExileTerritorySize", _radius, true]; +_flagObject setVariable ["ExileTerritoryBuildRights", _buildRights, true]; +_flagObject setVariable ["ExileTerritoryModerators", _moderators, true]; +_flagObject setVariable ["ExileTerritoryLevel", _level, true]; +_flagObject setVariable ["ExileTerritoryLastPayed", _lastPayed]; +_flagObject call ExileServer_system_territory_maintenance_recalculateDueDate; +_flagObject setVariable ["ExileTerritoryNumberOfConstructions", _data select 15, true]; +_flagObject setVariable ["ExileRadiusShown", false, true]; +_flagObject setVariable ["ExileFlagStolen",_flagStolen,true]; +_flagObject setVariable ["ExileFlagTexture",_flagTexture]; + +//////////////////////// +///// ExAd START ///// +//////////////////////// +_vehicles = format ["loadTerritoryVehicles:%1", _territoryID] call ExileServer_system_database_query_selectFull; +_flagObject setVariable ["ExAdVGVeh", _vehicles, true]; +//////////////////////// +///// ExAd END ///// +//////////////////////// + +true \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_formatSBImage.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_formatSBImage.sqf new file mode 100644 index 0000000..5aa5080 --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_formatSBImage.sqf @@ -0,0 +1,21 @@ +/* + fn_formatSBImage.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +params [["_src","",[""]],["_size",1,[0]]]; + +format["", _src,_size] \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_formatSBOutput.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_formatSBOutput.sqf new file mode 100644 index 0000000..ec5477a --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_formatSBOutput.sqf @@ -0,0 +1,26 @@ +/* + fn_formatSBOutput.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +params [["_elements", [], [[]]], ["_color","",[""]], ["_text",""]]; + +{ + _text = format["%1%3%2", _text, _x, ExAd_SB_Text_InnerMargin]; +}forEach _elements; + +_color = if(count _color > 0)then{format["color='%1'",_color]}else{_color}; +format["%1%2%1", ExAd_SB_Text_Margin , _text , _color ] \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getBankStr.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getBankStr.sqf new file mode 100644 index 0000000..c0f48a6 --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getBankStr.sqf @@ -0,0 +1,24 @@ +/* + fn_getBankStr.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +private["_img","_text"]; + +_img = [ExAd_SB_ICON_BANK] call ExAd_fnc_formatSBImage; +_text = player getVariable["ExileLocker",0]; + +[[_img, _text]] call ExAd_fnc_formatSBOutput \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getClanStr.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getClanStr.sqf new file mode 100644 index 0000000..e4be5a9 --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getClanStr.sqf @@ -0,0 +1,24 @@ +/* + fn_getClanStr.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +private["_img","_text"]; + +_img = [ExAd_SB_ICON_CLAN] call ExAd_fnc_formatSBImage; +_text = "1/1"; + +[[_img, _text]] call ExAd_fnc_formatSBOutput \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getCompassStr.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getCompassStr.sqf new file mode 100644 index 0000000..105c159 --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getCompassStr.sqf @@ -0,0 +1,40 @@ +/* + fn_getCompassStr.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +private["_img","_dir"]; + +_img = [ExAd_SB_ICON_COMPASS,0.75] call ExAd_fnc_formatSBImage; +_dir = direction player; + +try +{ + if(_dir >= 337.5 || _dir < 22.5 )then{throw "N"}; + if(_dir >= 22.5 && _dir < 67.5 )then{throw "NE"}; + if(_dir >= 67.5 && _dir < 112.5 )then{throw "E"}; + if(_dir >= 112.5 && _dir < 157.5 )then{throw "SE"}; + if(_dir >= 157.5 && _dir < 202.5 )then{throw "S"}; + if(_dir >= 202.5 && _dir < 247.5 )then{throw "SW"}; + if(_dir >= 247.5 && _dir < 292.5 )then{throw "W"}; + if(_dir >= 292.5 && _dir < 337.5 )then{throw "NW"}; + + throw "N/A" +} +catch +{ + [[_img, _exception, round _dir]] call ExAd_fnc_formatSBOutput +} \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getFPSStr.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getFPSStr.sqf new file mode 100644 index 0000000..bd514ca --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getFPSStr.sqf @@ -0,0 +1,31 @@ +/* + fn_getFPSStr.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +private["_request","_img","_text"]; + +_request = []; + +_img = "FPS"; +_text = floor diag_fps; +_request pushBack [_img,_text]; + +if(ExAd_SB_COMPONENTS_ACTIVE_COLORS)then{ + _request pushBack ([0,40,_text] call ExAd_fnc_getSBColor) +}; + +_request call ExAd_fnc_formatSBOutput \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getGridStr.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getGridStr.sqf new file mode 100644 index 0000000..83f4a84 --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getGridStr.sqf @@ -0,0 +1,26 @@ +/* + fn_getGridStr.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +private["_img","_grid","_text"]; + +_grid = mapGridPosition player; + +_img = [ExAd_SB_ICON_GRID, 1.4] call ExAd_fnc_formatSBImage; +_text = format["%1|%2",_grid select [0,3],_grid select [3,3]]; + +[[_img, _text]] call ExAd_fnc_formatSBOutput \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getHPStr.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getHPStr.sqf new file mode 100644 index 0000000..31b768a --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getHPStr.sqf @@ -0,0 +1,31 @@ +/* + fn_getHPStr.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +private["_request","_img","_text"]; + +_request = []; + +_img = [ExAd_SB_ICON_HP] call ExAd_fnc_formatSBImage; +_text = round (ExileClientPlayerAttributes select 0); +_request pushBack [_img,_text]; + +if(ExAd_SB_COMPONENTS_ACTIVE_COLORS)then{ + _request pushBack ([0,100,_text] call ExAd_fnc_getSBColor) +}; + +_request call ExAd_fnc_formatSBOutput \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getHungerStr.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getHungerStr.sqf new file mode 100644 index 0000000..fff3135 --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getHungerStr.sqf @@ -0,0 +1,31 @@ +/* + fn_getHungerStr.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +private["_request","_img","_text"]; + +_request = []; + +_img = [ExAd_SB_ICON_HUNGER,1.25] call ExAd_fnc_formatSBImage; +_text = round (ExileClientPlayerAttributes select 2); +_request pushBack [_img,_text]; + +if(ExAd_SB_COMPONENTS_ACTIVE_COLORS)then{ + _request pushBack ([0,100,_text] call ExAd_fnc_getSBColor) +}; + +_request call ExAd_fnc_formatSBOutput \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getKDStr.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getKDStr.sqf new file mode 100644 index 0000000..cb8767a --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getKDStr.sqf @@ -0,0 +1,34 @@ +/* + fn_getClanStr.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +private["_request","_death","_img","_text"]; + +_request = []; + +_death = if(ExileClientPlayerDeaths == 0)then{0.001}else{ExileClientPlayerDeaths}; + +_img = [ExAd_SB_ICON_KD] call ExAd_fnc_formatSBImage; +_text = [ExileClientPlayerKills / _death, 2] call ExileClient_util_math_round; + +_request pushBack [_img,_text]; + +if(ExAd_SB_COMPONENTS_ACTIVE_COLORS)then{ + _request pushBack ([0,2,_text] call ExAd_fnc_getSBColor) +}; + +_request call ExAd_fnc_formatSBOutput \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getPlayersStr.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getPlayersStr.sqf new file mode 100644 index 0000000..2b55c65 --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getPlayersStr.sqf @@ -0,0 +1,24 @@ +/* + fn_getPlayersStr.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +private["_img","_text"]; + +_img = [ExAd_SB_ICON_PLAYERS] call ExAd_fnc_formatSBImage; +_text = count playableUnits; + +[[_img, _text]] call ExAd_fnc_formatSBOutput \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getRespectStr.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getRespectStr.sqf new file mode 100644 index 0000000..8ee698e --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getRespectStr.sqf @@ -0,0 +1,24 @@ +/* + fn_getRespectStr.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +private["_img","_text"]; + +_img = [ExAd_SB_ICON_RESPECT,0.75] call ExAd_fnc_formatSBImage; +_text = ExileClientPlayerScore; + +[[_img, _text]] call ExAd_fnc_formatSBOutput \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getSBColor.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getSBColor.sqf new file mode 100644 index 0000000..8d07df2 --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getSBColor.sqf @@ -0,0 +1,44 @@ +/* + fn_getSBColor.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +params[["_min",0,[0]],["_max",1,[0]],["_cur",1,[0]],"_count","_diff","_color",""]; + +try +{ + if(isNil "ExAd_SB_COMPONENTS_COLORS")then{throw ""}; + + _count = count ExAd_SB_COMPONENTS_COLORS; + if(_count == 0)then{throw ""}; + + if(_cur > _max)then{_max = _cur}; + _diff = (_max - _min) / _count; + _color = ExAd_SB_COMPONENTS_COLORS select 0; + + for "_i" from 0 to _count do { + if(_cur >= (_i * _diff) && _cur <= ((_i + 1) * _diff))then{throw (ExAd_SB_COMPONENTS_COLORS select _i);} + }; + + throw _color; +} +catch +{ + if(count _exception == 0)then{ + ExAd_SB_COMPONENTS_ACTIVE_COLORS = false; + }; + _exception +} \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getTempStr.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getTempStr.sqf new file mode 100644 index 0000000..8ef7991 --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getTempStr.sqf @@ -0,0 +1,33 @@ +/* + fn_getTempStr.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +private["_request","_img","_text"]; + +_request = []; + +_img = [ExAd_SB_ICON_TEMP] call ExAd_fnc_formatSBImage; +_temp = [ExileClientPlayerAttributes select 5, 1] call ExileClient_util_math_round; +_text = _temp; + +_request pushBack [_img,_text, "°C"]; + +if(ExAd_SB_COMPONENTS_ACTIVE_COLORS)then{ + _request pushBack ([0,37,_text] call ExAd_fnc_getSBColor) +}; + +_request call ExAd_fnc_formatSBOutput \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getThirstStr.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getThirstStr.sqf new file mode 100644 index 0000000..86bb2cf --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getThirstStr.sqf @@ -0,0 +1,31 @@ +/* + fn_getThirstStr.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +private["_request","_img","_text"]; + +_request = []; + +_img = [ExAd_SB_ICON_THIRST, 1.25] call ExAd_fnc_formatSBImage; +_text = round (ExileClientPlayerAttributes select 3); +_request pushBack [_img,_text]; + +if(ExAd_SB_COMPONENTS_ACTIVE_COLORS)then{ + _request pushBack ([0,100,_text] call ExAd_fnc_getSBColor) +}; + +_request call ExAd_fnc_formatSBOutput \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getTimerStr.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getTimerStr.sqf new file mode 100644 index 0000000..ddfe30d --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getTimerStr.sqf @@ -0,0 +1,39 @@ +/* + fn_getTimerStr.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +private["_request","_time","_hours","_minutes","_img","_text"]; + +_request = []; + +_time = serverTime; +_hours = 2 - floor (_time / 3600); +_minutes = 59 - floor ((_time % 3600) / 60); + +_img = [ExAd_SB_ICON_TIMER] call ExAd_fnc_formatSBImage; +_text = format["%1:%2", _hours,_minutes]; +_request pushBack [_img,_text]; + +if(ExAd_SB_COMPONENTS_ACTIVE_COLORS)then{ + if(_hours > 0)then{ + _request pushBack ([0,1,_hours] call ExAd_fnc_getSBColor) + }else{ + _request pushBack ([0,60,_minutes] call ExAd_fnc_getSBColor) + }; +}; + +_request call ExAd_fnc_formatSBOutput \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getWalletStr.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getWalletStr.sqf new file mode 100644 index 0000000..4860d22 --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_getWalletStr.sqf @@ -0,0 +1,24 @@ +/* + fn_getWalletStr.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +private["_img","_text"]; + +_img = [ExAd_SB_ICON_Wallet] call ExAd_fnc_formatSBImage; +_text = player getVariable ["ExileMoney", 0]; + +[[_img, _text]] call ExAd_fnc_formatSBOutput \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_loadSB.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_loadSB.sqf new file mode 100644 index 0000000..d8844c5 --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_loadSB.sqf @@ -0,0 +1,40 @@ +/* + fn_loadSB.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +private["_display","_statsBarCtrl"]; + +disableSerialization; + +101 cutRsc ["ExAd_STATSBAR", "PLAIN", 1]; + +_display = uiNameSpace getVariable ["ExAd_STATSBAR",displayNull]; +_statsBarCtrl = _display displayCtrl ExAd_SB_Dialog_CtrlBar_IDC; +_logoCtrl = _display displayCtrl ExAd_SB_Dialog_CtrlLogo_IDC; + +if(count ExAd_SB_ICON_LOGO > 0)then{ + _logoCtrl ctrlSetText ExAd_SB_ICON_LOGO; +}; + +_statsBarCtrl ctrlSetPosition ExAd_SB_GUI_POS; +_statsBarCtrl ctrlSetBackgroundColor ExAd_SB_GUI_BgColor; +_statsBarCtrl ctrlSetTextColor ExAd_SB_GUI_TextColor; +_statsBarCtrl ctrlCommit 0; + +ExAd_SB_Thread = [ExAd_SB_Update_Rate, ExAd_fnc_sbThread, [], true] call ExileClient_system_thread_addtask; + +true \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_sbThread.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_sbThread.sqf new file mode 100644 index 0000000..37d9885 --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_sbThread.sqf @@ -0,0 +1,50 @@ +/* + fn_sbThread.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +private["_display","_statsBarCtrl","_text"]; + +disableSerialization; + +_display = uiNameSpace getVariable ["ExAd_STATSBAR",displayNull]; +_statsBarCtrl = _display displayCtrl ExAd_SB_Dialog_CtrlBar_IDC; + +_text = format[ + "%4%5%6%7%8%9%10%11%12%13%14%15%16%17%18%4", + ExAd_SB_Text_Font, + ExAd_SB_Text_Align, + ExAd_SB_Text_Size, + ExAd_SB_Text_Margin, + (if(ExAd_SB_Show_KD)then{call ExAd_fnc_getKDStr}else{""}), + (if(ExAd_SB_Show_HP)then{call ExAd_fnc_getHPStr}else{""}), + (if(ExAd_SB_Show_Thirst)then{call ExAd_fnc_getThirstStr}else{""}), + (if(ExAd_SB_Show_Hunger)then{call ExAd_fnc_getHungerStr}else{""}), + (if(ExAd_SB_Show_Wallet)then{call ExAd_fnc_getWalletStr}else{""}), + (if(ExAd_SB_Show_Bank)then{call ExAd_fnc_getBankStr}else{""}), + (if(ExAd_SB_Show_Respect)then{call ExAd_fnc_getRespectStr}else{""}), + (if(ExAd_SB_Show_FPS)then{call ExAd_fnc_getFPSStr}else{""}), + (if(ExAd_SB_Show_Time)then{call ExAd_fnc_getTimerStr}else{""}), + (if(ExAd_SB_Show_Temp)then{call ExAd_fnc_getTempStr}else{""}), + (if(ExAd_SB_Show_Grid)then{call ExAd_fnc_getGridStr}else{""}), + (if(ExAd_SB_Show_Compass)then{call ExAd_fnc_getCompassStr}else{""}), + (if(ExAd_SB_Show_PlayerCount)then{call ExAd_fnc_getPlayersStr}else{""}), + (if(ExAd_SB_Show_ClanCount)then{call ExAd_fnc_getClanStr}else{""}) +]; + +_statsBarCtrl ctrlSetStructuredText parseText _text; + +true \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_toggleExileHUD.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_toggleExileHUD.sqf new file mode 100644 index 0000000..69d1eb4 --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/Functions/fn_toggleExileHUD.sqf @@ -0,0 +1,51 @@ +/* + fn_sbThread.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ +private["_display","_exileCtrl","_text"]; + +disableSerialization; + +_display = uiNameSpace getVariable ["RscExileHUD",displayNull]; +_exileCtrl = _display displayCtrl 1300; + +_exileCtrl ctrlShow ExAd_SB_EXILE_HUD_ACTIVE; + +if(ExAd_SB_EXILE_HUD_ACTIVE)then{ + _hungerLabel = _display displayCtrl 1303; + _hungerLabel ctrlShow (ExileHudMode isEqualTo 0); + _hungerValue = _display displayCtrl 1302; + _hungerValue ctrlShow (ExileHudMode isEqualTo 0); + _thirstLabel = _display displayCtrl 1305; + _thirstLabel ctrlShow (ExileHudMode isEqualTo 0); + _thirstValue = _display displayCtrl 1304; + _thirstValue ctrlShow (ExileHudMode isEqualTo 0); + _healthLabel = _display displayCtrl 1307; + _healthLabel ctrlShow (ExileHudMode isEqualTo 1); + _healthValue = _display displayCtrl 1306; + _healthValue ctrlShow (ExileHudMode isEqualTo 1); + _environmentTemperatureLabel = _display displayCtrl 1309; + _environmentTemperatureLabel ctrlShow (ExileHudMode isEqualTo 2); + _environmentTemperatureValue = _display displayCtrl 1308; + _environmentTemperatureValue ctrlShow (ExileHudMode isEqualTo 2); + _bodyTemperatureLabel = _display displayCtrl 1311; + _bodyTemperatureLabel ctrlShow (ExileHudMode isEqualTo 2); + _bodyTemperatureValue = _display displayCtrl 1310; + _bodyTemperatureValue ctrlShow (ExileHudMode isEqualTo 2); +}; + +true \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/RscTitles.cpp b/mpmissions/Exile.Altis/ExAdClient/StatsBar/RscTitles.cpp new file mode 100644 index 0000000..ff3e716 --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/RscTitles.cpp @@ -0,0 +1,41 @@ +#include "base.cpp" + +class ExAd_STATSBAR +{ + idd = 2186; + movingEnable = 0; + enableSimulation = 1; + enableDisplay = 1; + duration = 10e10; + fadein = 0; + fadeout = 0; + name = "ExAd_STATSBAR"; + onLoad = "with uiNameSpace do { ExAd_STATSBAR = _this select 0 };"; + class controls + { + class StatsBar: RscStructuredText + { + idc = 1100; + text = ""; + x = "safeZoneX"; + y = "safeZoneY + safeZoneH - 32 * pixelH"; + w = "safeZoneW"; + h = "30 * pixelH"; + }; + class Logo + { + type= 0; + idc = 1000; + x = "safeZoneX + 60 * pixelW"; + y = "safeZoneY + 60 * pixelH - 32 * pixelH"; + w = "32 * pixelW"; + h = "32 * pixelH"; + style=0x800; + colorBackground[]={0,0,0,0}; + colorText[]={1,1,1,0.4}; + font="TahomaB"; + sizeEx=0; + text = ""; + }; + }; +}; \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/base.cpp b/mpmissions/Exile.Altis/ExAdClient/StatsBar/base.cpp new file mode 100644 index 0000000..2abc6f8 --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/base.cpp @@ -0,0 +1,23 @@ +class RscStructuredText +{ + deletable = 0; + fade = 0; + access = 0; + type = 13; + idc = -1; + style = 0; + colorText[] = {1,1,1,1}; + colorBackground[] = {0,0,0,0}; + class Attributes + { + font = "PuristaMedium"; + color = "#ffffff"; + colorLink = "#D09B43"; + align = "left"; + shadow = 0; + }; + x = 0; y = 0; h = 0.035; w = 0.1; + text = ""; + size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + shadow = 1; +}; diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/customize.sqf b/mpmissions/Exile.Altis/ExAdClient/StatsBar/customize.sqf new file mode 100644 index 0000000..5b564ab --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/StatsBar/customize.sqf @@ -0,0 +1,34 @@ +/* + customize.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +ExAd_SB_ICON_BANK = "exile_assets\texture\ui\map_safe_ca.paa"; +ExAd_SB_ICON_CLAN = "exile_assets\texture\ui\xm8_app_clan_ca.paa"; +ExAd_SB_ICON_COMPASS = "ExAdClient\StatsBar\icons\compass.paa"; +ExAd_SB_ICON_GRID = "\a3\ui_f\data\gui\rsc\rscdisplayarsenal\compass_ca.paa"; +ExAd_SB_ICON_HP = "exile_assets\texture\ui\xm8_app_health_scanner_ca.paa"; +ExAd_SB_ICON_HUNGER = "ExAdClient\StatsBar\icons\hunger.paa"; +ExAd_SB_ICON_KD = "\a3\ui_f\data\gui\cfg\respawnroles\recon_ca.paa"; +ExAd_SB_ICON_PLAYERS = "ExAdClient\StatsBar\icons\players.paa"; +ExAd_SB_ICON_RESPECT = "ExAdClient\StatsBar\icons\respect.paa"; +ExAd_SB_ICON_TEMP = "ExAdClient\StatsBar\icons\thermostat.paa"; +ExAd_SB_ICON_THIRST = "ExAdClient\StatsBar\icons\thirst.paa"; +ExAd_SB_ICON_TIMER = "ExAdClient\StatsBar\icons\restart.paa"; +ExAd_SB_ICON_Wallet = "exile_assets\texture\ui\poptab_ca.paa"; +ExAd_SB_ICON_LOGO = "ExAdClient\Core\Img\logo.paa"; + +ExAd_SB_COMPONENTS_COLORS = ["#000000", "#440B00","#FE1106","#CA7400","#A9C700","#11BF03"]; //From bad to good. \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/compass.paa b/mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/compass.paa new file mode 100644 index 0000000000000000000000000000000000000000..096b79ef06393b31ec864b8c30100461cd57c974 GIT binary patch literal 1522 zcmb7^ZAep57{||W;!EjtRs?Dq=1Yh|7=sesmN7M4_Tok#Bz0;cxI04_l9?6aG*Z(t zid2X|p@>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/mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/hunger.paa b/mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/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/mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/players.paa b/mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/players.paa new file mode 100644 index 0000000000000000000000000000000000000000..90e20229a40bd134ba91d9e7de3cb2c73b3b4615 GIT binary patch literal 1522 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 IAc+zBe?P>i)&Kwi literal 0 HcmV?d00001 diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/restart.paa b/mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/restart.paa new file mode 100644 index 0000000000000000000000000000000000000000..001f512ec173c3de373830447788c557a10605e1 GIT binary patch literal 1522 zcmeHHO=uHQ5T1oB$t9+Wdoc+Vn?nl`@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/mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/thermostat.paa b/mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/thermostat.paa new file mode 100644 index 0000000000000000000000000000000000000000..fc22f26cff4e1ae391233adb3e2e93fcbc54c2eb GIT binary patch literal 35407 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 literal 0 HcmV?d00001 diff --git a/mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/thirst.paa b/mpmissions/Exile.Altis/ExAdClient/StatsBar/icons/thirst.paa new file mode 100644 index 0000000000000000000000000000000000000000..e0a3aac806fcec6493b4632947401aceff3eec0a GIT binary patch literal 1522 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 S#G`ey3UJSo)fekb$o~MI+PN|S literal 0 HcmV?d00001 diff --git a/mpmissions/Exile.Altis/ExAdClient/XM8/Apps/SB_Settings/config.sqf b/mpmissions/Exile.Altis/ExAdClient/XM8/Apps/SB_Settings/config.sqf new file mode 100644 index 0000000..be72b30 --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/XM8/Apps/SB_Settings/config.sqf @@ -0,0 +1,75 @@ +ExAd_SB_fnc_prepareSlider = { + params["_ctrl","_range","_pos"]; + _ctrl sliderSetRange _range; + _ctrl sliderSetSpeed [500, 500]; + _ctrl sliderSetPosition _pos; +}; + +ExAd_SB_fnc_updateStatsBar = { + _display = uiNameSpace getVariable ["ExAd_STATSBAR",displayNull]; + _statsBarCtrl = _display displayCtrl ExAd_SB_Dialog_CtrlBar_IDC; + + _statsBarCtrl ctrlSetPosition ExAd_SB_GUI_POS; + _statsBarCtrl ctrlSetBackgroundColor ExAd_SB_GUI_BgColor; + _statsBarCtrl ctrlSetTextColor ExAd_SB_GUI_TextColor; + _statsBarCtrl ctrlCommit 0; +}; + +ExAd_SB_fnc_createSpace = { + params["_size"]; + _response = ""; + for "_i" from 0 to _size do { + _response = format["%1 ",_response] + }; + _response +}; + +ExAd_SB_fnc_save = { + profileNamespace setVariable ["ExAd_SB_Update_Rate", ExAd_SB_Update_Rate]; + profileNamespace setVariable ["ExAd_SB_Active", ExAd_SB_Active]; + + profileNamespace setVariable ["ExAd_SB_GUI_POS", ExAd_SB_GUI_POS]; + profileNamespace setVariable ["ExAd_SB_GUI_TextColor", ExAd_SB_GUI_TextColor]; + profileNamespace setVariable ["ExAd_SB_GUI_BgColor", ExAd_SB_GUI_BgColor]; + + profileNamespace setVariable ["ExAd_SB_Text_Margin", ExAd_SB_Text_Margin]; + profileNamespace setVariable ["ExAd_SB_Text_InnerMargin", ExAd_SB_Text_InnerMargin]; + profileNamespace setVariable ["ExAd_SB_Text_Font", ExAd_SB_Text_Font]; + profileNamespace setVariable ["ExAd_SB_Text_Align", ExAd_SB_Text_Align]; + profileNamespace setVariable ["ExAd_SB_Text_Size", ExAd_SB_Text_Size]; + + profileNamespace setVariable ["ExAd_SB_Show_KD", ExAd_SB_Show_KD]; + profileNamespace setVariable ["ExAd_SB_Show_HP", ExAd_SB_Show_HP]; + profileNamespace setVariable ["ExAd_SB_Show_Thirst", ExAd_SB_Show_Thirst]; + profileNamespace setVariable ["ExAd_SB_Show_Hunger", ExAd_SB_Show_Hunger]; + profileNamespace setVariable ["ExAd_SB_Show_Wallet", ExAd_SB_Show_Wallet]; + profileNamespace setVariable ["ExAd_SB_Show_Bank", ExAd_SB_Show_Bank]; + profileNamespace setVariable ["ExAd_SB_Show_Respect", ExAd_SB_Show_Respect]; + profileNamespace setVariable ["ExAd_SB_Show_FPS", ExAd_SB_Show_FPS]; + profileNamespace setVariable ["ExAd_SB_Show_Time", ExAd_SB_Show_Time]; + profileNamespace setVariable ["ExAd_SB_Show_Temp", ExAd_SB_Show_Temp]; + profileNamespace setVariable ["ExAd_SB_Show_Grid", ExAd_SB_Show_Grid]; + profileNamespace setVariable ["ExAd_SB_Show_Compass", ExAd_SB_Show_Compass]; + profileNamespace setVariable ["ExAd_SB_Show_PlayerCount", ExAd_SB_Show_PlayerCount]; + profileNamespace setVariable ["ExAd_SB_Show_ClanCount", ExAd_SB_Show_ClanCount]; + + profileNamespace setVariable ["ExAd_SB_COMPONENTS_ACTIVE_COLORS", ExAd_SB_COMPONENTS_ACTIVE_COLORS]; + profileNamespace setVariable ["ExAd_SB_EXILE_HUD_ACTIVE", ExAd_SB_EXILE_HUD_ACTIVE]; +}; + +ExAd_SB_fnc_stop = { + //101 cutRsc ["Default", "PLAIN", 0]; + 101 cutText ["", "PLAIN"]; + [ExAd_SB_Thread] call ExileClient_system_thread_removeTask; +}; + +ExAd_SB_fnc_powerToggle = { + if(ExAd_SB_Active)then{ + call ExAd_SB_fnc_stop + }else{ + call ExAd_fnc_loadSB + }; + ExAd_SB_Active = !ExAd_SB_Active; + (_this select 0) ctrlSetText (if(!ExAd_SB_Active)then{"Start"}else{"Stop"}); + call ExAd_SB_fnc_thread; +}; \ No newline at end of file diff --git a/mpmissions/Exile.Altis/ExAdClient/XM8/Apps/SB_Settings/onLoad.sqf b/mpmissions/Exile.Altis/ExAdClient/XM8/Apps/SB_Settings/onLoad.sqf new file mode 100644 index 0000000..be9c2ee --- /dev/null +++ b/mpmissions/Exile.Altis/ExAdClient/XM8/Apps/SB_Settings/onLoad.sqf @@ -0,0 +1,238 @@ +/* + onLoad.sqf + + Copyright 2016 Jan Babor + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +params["_display","_slide","_idc"]; + +_pW = 0.025; +_pH = 0.04; + +_rowH = 1.3 * _pH; +_leftCol = 0 * _pW; +_leftColW = 17 * _pW; + +_cbCompTop = 1 * _pH; +_cbW = 1.25 * _pW; +_cbH = _rowH * 0.8; + +_cbStr = _leftCol + _cbW; +_cbStrW = _leftColW - _cbW; + +_rightCol = _leftCol + _leftColW; +_rightCbStr = _rightCol + _cbW; + +_slideClass = "ExAd_SB"; + +[_display,_slide,([_slideClass,"backButton"] call ExAd_fnc_getNextIDC),[27 * _pW, 17 * _pH, 6 * _pW, 1 * _pH],'["extraApps", 1] call ExileClient_gui_xm8_slide;',"Go Back"] call ExAd_fnc_createButton; + + +_newParent = [_display,_slide,([_slideClass,"ctrlGrp"] call ExAd_fnc_getNextIDC),[0, _cbCompTop, 34 * _pW, 16 * _pH]] call ExAd_fnc_createCtrlGrp; +_newParent ctrlEnable true; + +//CheckBox setup +//First col +_cbStrAlign = "left"; _titleStrAlign = "center"; _cbStrTextColor = "#ffffff"; _cbStrTextFont = "PuristaMedium"; _cbStrTextSize = 1; +_cbKD = [_display,_newParent,([_slideClass,"cbShowKD"] call ExAd_fnc_getNextIDC),[_leftCol, _cbCompTop, _cbW, _cbH],"ExAd_SB_Show_KD = !ExAd_SB_Show_KD",""] call ExAd_fnc_createCheckBox; +[_display,_newParent,([_slideClass,"strTxtShowKD"] call ExAd_fnc_getNextIDC),[_cbStr, _cbCompTop, _cbStrW, _rowH],"Kill/Death Ratio",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; + +_cbHP = [_display,_newParent,([_slideClass,"cbShowHP"] call ExAd_fnc_getNextIDC),[_leftCol, _cbCompTop + _rowH * 1, _cbW, _cbH],"ExAd_SB_Show_HP = !ExAd_SB_Show_HP",""] call ExAd_fnc_createCheckBox; +[_display,_newParent,([_slideClass,"strTxtShowHP"] call ExAd_fnc_getNextIDC),[_cbStr, _cbCompTop + _rowH * 1, _cbStrW, _rowH],"Health",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; + +_cbThirst = [_display,_newParent,([_slideClass,"cbShowThirst"] call ExAd_fnc_getNextIDC),[_leftCol, _cbCompTop + _rowH * 2, _cbW, _cbH],"ExAd_SB_Show_Thirst = !ExAd_SB_Show_Thirst",""] call ExAd_fnc_createCheckBox; +[_display,_newParent,([_slideClass,"strTxtShowThirst"] call ExAd_fnc_getNextIDC),[_cbStr, _cbCompTop + _rowH * 2, _cbStrW, _rowH],"Thirst",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; + +_cbHunger = [_display,_newParent,([_slideClass,"cbShowHunger"] call ExAd_fnc_getNextIDC),[_leftCol, _cbCompTop + _rowH * 3, _cbW, _cbH],"ExAd_SB_Show_Hunger = !ExAd_SB_Show_Hunger",""] call ExAd_fnc_createCheckBox; +[_display,_newParent,([_slideClass,"strTxtShowHunger"] call ExAd_fnc_getNextIDC),[_cbStr, _cbCompTop + _rowH * 3, _cbStrW, _rowH],"Hunger",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; + +_cbWallet = [_display,_newParent,([_slideClass,"cbShowWallet"] call ExAd_fnc_getNextIDC),[_leftCol, _cbCompTop + _rowH * 4, _cbW, _cbH],"ExAd_SB_Show_Wallet = !ExAd_SB_Show_Wallet",""] call ExAd_fnc_createCheckBox; +[_display,_newParent,([_slideClass,"strTxtShowWallet"] call ExAd_fnc_getNextIDC),[_cbStr, _cbCompTop + _rowH * 4, _cbStrW, _rowH],"POP TABS in wallet",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; + +_cbBank = [_display,_newParent,([_slideClass,"cbShowBank"] call ExAd_fnc_getNextIDC),[_leftCol, _cbCompTop + _rowH * 5, _cbW, _cbH],"ExAd_SB_Show_Bank = !ExAd_SB_Show_Bank",""] call ExAd_fnc_createCheckBox; +[_display,_newParent,([_slideClass,"strTxtShowBank"] call ExAd_fnc_getNextIDC),[_cbStr, _cbCompTop + _rowH * 5, _cbStrW, _rowH],"POP TABS in bank",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; + +_cbRespect = [_display,_newParent,([_slideClass,"cbShowRespect"] call ExAd_fnc_getNextIDC),[_leftCol, _cbCompTop + _rowH * 6, _cbW, _cbH],"ExAd_SB_Show_Respect = !ExAd_SB_Show_Respect",""] call ExAd_fnc_createCheckBox; +[_display,_newParent,([_slideClass,"strTxtShowRespect"] call ExAd_fnc_getNextIDC),[_cbStr, _cbCompTop + _rowH * 6, _cbStrW, _rowH],"Respect",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; + +_cbColor = [_display,_newParent,([_slideClass,"cbShowColor"] call ExAd_fnc_getNextIDC),[_leftCol, _cbCompTop + _rowH * 7, _cbW, _cbH],"ExAd_SB_COMPONENTS_ACTIVE_COLORS = !ExAd_SB_COMPONENTS_ACTIVE_COLORS",""] call ExAd_fnc_createCheckBox; +[_display,_newParent,([_slideClass,"strTxtShowColor"] call ExAd_fnc_getNextIDC),[_cbStr, _cbCompTop + _rowH * 7, _cbStrW, _rowH],"Use color indications",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; + +//Second col +_cbFPS = [_display,_newParent,([_slideClass,"cbShowFPS"] call ExAd_fnc_getNextIDC),[_rightCol, _cbCompTop, _cbW, _cbH],"ExAd_SB_Show_FPS = !ExAd_SB_Show_FPS",""] call ExAd_fnc_createCheckBox; +[_display,_newParent,([_slideClass,"strTxtShowFPS"] call ExAd_fnc_getNextIDC),[_rightCbStr, _cbCompTop, _cbStrW, _rowH],"FPS",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; + +_cbTime = [_display,_newParent,([_slideClass,"cbShowTime"] call ExAd_fnc_getNextIDC),[_rightCol, _cbCompTop + _rowH * 1, _cbW, _cbH],"ExAd_SB_Show_Time = !ExAd_SB_Show_Time",""] call ExAd_fnc_createCheckBox; +[_display,_newParent,([_slideClass,"strTxtShowTime"] call ExAd_fnc_getNextIDC),[_rightCbStr, _cbCompTop + _rowH * 1, _cbStrW, _rowH],"Restart time",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; + +_cbTemp = [_display,_newParent,([_slideClass,"cbShowTemp"] call ExAd_fnc_getNextIDC),[_rightCol, _cbCompTop + _rowH * 2, _cbW, _cbH],"ExAd_SB_Show_Temp = !ExAd_SB_Show_Temp",""] call ExAd_fnc_createCheckBox; +[_display,_newParent,([_slideClass,"strTxtShowTemp"] call ExAd_fnc_getNextIDC),[_rightCbStr, _cbCompTop + _rowH * 2, _cbStrW, _rowH],"Body Temperature",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; + +_cbGrid = [_display,_newParent,([_slideClass,"cbShowGrid"] call ExAd_fnc_getNextIDC),[_rightCol, _cbCompTop + _rowH * 3, _cbW, _cbH],"ExAd_SB_Show_Grid = !ExAd_SB_Show_Grid",""] call ExAd_fnc_createCheckBox; +[_display,_newParent,([_slideClass,"strTxtShowGrid"] call ExAd_fnc_getNextIDC),[_rightCbStr, _cbCompTop + _rowH * 3, _cbStrW, _rowH],"Grid location",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; + +_cbCompass = [_display,_newParent,([_slideClass,"cbShowCompass"] call ExAd_fnc_getNextIDC),[_rightCol, _cbCompTop + _rowH * 4, _cbW, _cbH],"ExAd_SB_Show_Compass = !ExAd_SB_Show_Compass",""] call ExAd_fnc_createCheckBox; +[_display,_newParent,([_slideClass,"strTxtShowCompass"] call ExAd_fnc_getNextIDC),[_rightCbStr, _cbCompTop + _rowH * 4, _cbStrW, _rowH],"Compass",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; + +_cbPlayers = [_display,_newParent,([_slideClass,"cbShowPlayers"] call ExAd_fnc_getNextIDC),[_rightCol, _cbCompTop + _rowH * 5, _cbW, _cbH],"ExAd_SB_Show_PlayerCount = !ExAd_SB_Show_PlayerCount",""] call ExAd_fnc_createCheckBox; +[_display,_newParent,([_slideClass,"strTxtShowPlayers"] call ExAd_fnc_getNextIDC),[_rightCbStr, _cbCompTop + _rowH * 5, _cbStrW, _rowH],"Players online",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; + +_cbClan = [_display,_newParent,([_slideClass,"cbShowClan"] call ExAd_fnc_getNextIDC),[_rightCol, _cbCompTop + _rowH * 6, _cbW, _cbH],"ExAd_SB_Show_ClanCount = !ExAd_SB_Show_ClanCount",""] call ExAd_fnc_createCheckBox; +[_display,_newParent,([_slideClass,"strTxtShowClan"] call ExAd_fnc_getNextIDC),[_rightCbStr, _cbCompTop + _rowH * 6, _cbStrW, _rowH],"Family members online",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; + +_cbHUD = [_display,_newParent,([_slideClass,"cbShowHUD"] call ExAd_fnc_getNextIDC),[_rightCol, _cbCompTop + _rowH * 7, _cbW, _cbH],"ExAd_SB_EXILE_HUD_ACTIVE = !ExAd_SB_EXILE_HUD_ACTIVE;call ExAd_fnc_toggleExileHUD",""] call ExAd_fnc_createCheckBox; +[_display,_newParent,([_slideClass,"strTxtShowHUD"] call ExAd_fnc_getNextIDC),[_rightCbStr, _cbCompTop + _rowH * 7, _cbStrW, _rowH],"Hide Exile Status bar",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; + +_cbKD cbSetChecked ExAd_SB_Show_KD; +_cbHP cbSetChecked ExAd_SB_Show_HP; +_cbThirst cbSetChecked ExAd_SB_Show_Thirst; +_cbHunger cbSetChecked ExAd_SB_Show_Hunger; +_cbWallet cbSetChecked ExAd_SB_Show_Wallet; +_cbBank cbSetChecked ExAd_SB_Show_Bank; +_cbRespect cbSetChecked ExAd_SB_Show_Respect; +_cbFPS cbSetChecked ExAd_SB_Show_FPS; +_cbTime cbSetChecked ExAd_SB_Show_Time; +_cbTemp cbSetChecked ExAd_SB_Show_Temp; +_cbGrid cbSetChecked ExAd_SB_Show_Grid; +_cbCompass cbSetChecked ExAd_SB_Show_Compass; +_cbPlayers cbSetChecked ExAd_SB_Show_PlayerCount; +_cbClan cbSetChecked ExAd_SB_Show_ClanCount; + +_cbColor cbSetChecked ExAd_SB_COMPONENTS_ACTIVE_COLORS; +_cbHUD cbSetChecked !ExAd_SB_EXILE_HUD_ACTIVE; + + +//Setup sliders +_cbW = _cbW + 0.5 * _pW; _scale = 0.5; _margin = (_rowH * _scale / 2); _bgCompTop = _cbCompTop + _rowH * 9; +[_display,_newParent,([_slideClass,"strTxtTitleBgColor"] call ExAd_fnc_getNextIDC),[_leftCol, _bgCompTop, _leftColW, _rowH],"Background Color",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_titleStrAlign,1] call ExAd_fnc_createStructuredText; + +[_display,_newParent,([_slideClass,"strTxtSliderR"] call ExAd_fnc_getNextIDC),[_leftCol, _bgCompTop + _rowH * 1, _cbW, _cbH],"R",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; +_sliderR = [_display,_newParent,([_slideClass,"sliderR"] call ExAd_fnc_getNextIDC),[_cbStr, _bgCompTop + _rowH * 1 + _margin, _cbStrW, _rowH * _scale]] call ExAd_fnc_createXSliderH; + +[_display,_newParent,([_slideClass,"strTxtSliderG"] call ExAd_fnc_getNextIDC),[_leftCol, _bgCompTop + _rowH * 2, _cbW, _cbH],"G",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; +_sliderG = [_display,_newParent,([_slideClass,"sliderG"] call ExAd_fnc_getNextIDC),[_cbStr, _bgCompTop + _rowH * 2 + _margin, _cbStrW, _rowH * _scale]] call ExAd_fnc_createXSliderH; + +[_display,_newParent,([_slideClass,"strTxtSliderB"] call ExAd_fnc_getNextIDC),[_leftCol, _bgCompTop + _rowH * 3, _cbW, _cbH],"B",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; +_sliderB = [_display,_newParent,([_slideClass,"sliderB"] call ExAd_fnc_getNextIDC),[_cbStr, _bgCompTop + _rowH * 3 + _margin, _cbStrW, _rowH * _scale]] call ExAd_fnc_createXSliderH; + +[_display,_newParent,([_slideClass,"strTxtSliderA"] call ExAd_fnc_getNextIDC),[_leftCol, _bgCompTop + _rowH * 4, _cbW, _cbH],"A",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; +_sliderA = [_display,_newParent,([_slideClass,"sliderA"] call ExAd_fnc_getNextIDC),[_cbStr, _bgCompTop + _rowH * 4 + _margin, _cbStrW, _rowH * _scale]] call ExAd_fnc_createXSliderH; + + +[_display,_newParent,([_slideClass,"strTxtTitlePos"] call ExAd_fnc_getNextIDC),[_rightCol, _bgCompTop, _leftColW, _rowH],"Position/Size",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_titleStrAlign,1] call ExAd_fnc_createStructuredText; + +[_display,_newParent,([_slideClass,"strTxtSliderX"] call ExAd_fnc_getNextIDC),[_rightCol, _bgCompTop + _rowH * 1, _cbW, _cbH],"X",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; +_sliderX = [_display,_newParent,([_slideClass,"sliderX"] call ExAd_fnc_getNextIDC),[_rightCbStr, _bgCompTop + _rowH * 1 + _margin, _cbStrW, _rowH * _scale]] call ExAd_fnc_createXSliderH; + +[_display,_newParent,([_slideClass,"strTxtSliderY"] call ExAd_fnc_getNextIDC),[_rightCol, _bgCompTop + _rowH * 2, _cbW, _cbH],"Y",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; +_sliderY = [_display,_newParent,([_slideClass,"sliderY"] call ExAd_fnc_getNextIDC),[_rightCbStr, _bgCompTop + _rowH * 2 + _margin, _cbStrW, _rowH * _scale]] call ExAd_fnc_createXSliderH; + +[_display,_newParent,([_slideClass,"strTxtSliderW"] call ExAd_fnc_getNextIDC),[_rightCol, _bgCompTop + _rowH * 3, _cbW, _cbH],"W",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; +_sliderW = [_display,_newParent,([_slideClass,"sliderW"] call ExAd_fnc_getNextIDC),[_rightCbStr, _bgCompTop + _rowH * 3 + _margin, _cbStrW, _rowH * _scale]] call ExAd_fnc_createXSliderH; + +[_display,_newParent,([_slideClass,"strTxtSliderH"] call ExAd_fnc_getNextIDC),[_rightCol, _bgCompTop + _rowH * 4, _cbW, _cbH],"H",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; +_sliderH = [_display,_newParent,([_slideClass,"sliderH"] call ExAd_fnc_getNextIDC),[_rightCbStr, _bgCompTop + _rowH * 4 + _margin, _cbStrW, _rowH * _scale]] call ExAd_fnc_createXSliderH; + + +[_sliderR,[0,1],ExAd_SB_GUI_BgColor select 0] call ExAd_SB_fnc_prepareSlider; +[_sliderG,[0,1],ExAd_SB_GUI_BgColor select 1] call ExAd_SB_fnc_prepareSlider; +[_sliderB,[0,1],ExAd_SB_GUI_BgColor select 2] call ExAd_SB_fnc_prepareSlider; +[_sliderA,[0,1],ExAd_SB_GUI_BgColor select 3] call ExAd_SB_fnc_prepareSlider; + +_sliderR ctrlSetEventHandler ["SliderPosChanged", format["ExAd_SB_GUI_BgColor set [0, _this select 1];call ExAd_SB_fnc_updateStatsBar"]]; +_sliderG ctrlSetEventHandler ["SliderPosChanged", format["ExAd_SB_GUI_BgColor set [1, _this select 1];call ExAd_SB_fnc_updateStatsBar"]]; +_sliderB ctrlSetEventHandler ["SliderPosChanged", format["ExAd_SB_GUI_BgColor set [2, _this select 1];call ExAd_SB_fnc_updateStatsBar"]]; +_sliderA ctrlSetEventHandler ["SliderPosChanged", format["ExAd_SB_GUI_BgColor set [3, _this select 1];call ExAd_SB_fnc_updateStatsBar"]]; + +[_sliderX,[safeZoneX,safeZoneX + safeZoneW],ExAd_SB_GUI_POS select 0] call ExAd_SB_fnc_prepareSlider; +[_sliderY,[safeZoneY,safeZoneY + safeZoneH],ExAd_SB_GUI_POS select 1] call ExAd_SB_fnc_prepareSlider; +[_sliderW,[0,safeZoneW],ExAd_SB_GUI_POS select 2] call ExAd_SB_fnc_prepareSlider; +[_sliderH,[0,safeZoneH],ExAd_SB_GUI_POS select 3] call ExAd_SB_fnc_prepareSlider; + +_sliderX ctrlSetEventHandler ["SliderPosChanged", format["ExAd_SB_GUI_POS set [0, _this select 1];call ExAd_SB_fnc_updateStatsBar"]]; +_sliderY ctrlSetEventHandler ["SliderPosChanged", format["ExAd_SB_GUI_POS set [1, _this select 1];call ExAd_SB_fnc_updateStatsBar"]]; +_sliderW ctrlSetEventHandler ["SliderPosChanged", format["ExAd_SB_GUI_POS set [2, _this select 1];call ExAd_SB_fnc_updateStatsBar"]]; +_sliderH ctrlSetEventHandler ["SliderPosChanged", format["ExAd_SB_GUI_POS set [3, _this select 1];call ExAd_SB_fnc_updateStatsBar"]]; + +//Text Font +_textCompTop = _bgCompTop + _rowH * 6; +[_display,_newParent,([_slideClass,"strTxtTitleTextFont"] call ExAd_fnc_getNextIDC),[_rightCol, _textCompTop, _leftColW, _rowH],"Font",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_titleStrAlign,1] call ExAd_fnc_createStructuredText; +_comboFont = [_display,_newParent,([_slideClass,"comboFont"] call ExAd_fnc_getNextIDC),[_rightCol, _textCompTop + _rowH * 1, _cbStrW, _rowH * 0.75],"ExAd_SB_Text_Font = ((_this select 0) lbData (_this select 1))","Font"] call ExAd_fnc_createCombo; +{ + private["_index"]; + _index = _comboFont lbAdd _x; + _comboFont lbSetData [_index, _x] + +}forEach ((configfile >> "CfgFontFamilies") call BIS_fnc_getCfgSubClasses); + +for "_i" from 0 to lbSize _comboFont do { + if((_comboFont lbData _i) isEqualTo ExAd_SB_Text_Font)exitWith{ + _comboFont lbSetCurSel _i; + } +}; + +[_display,_newParent,([_slideClass,"strTxtTitleTextColor"] call ExAd_fnc_getNextIDC),[_leftCol, _textCompTop, _leftColW, _rowH],"Text Color",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_titleStrAlign,1] call ExAd_fnc_createStructuredText; + +[_display,_newParent,([_slideClass,"strTxtSliderFontR"] call ExAd_fnc_getNextIDC),[_leftCol, _textCompTop + _rowH * 1, _cbW, _cbH],"R",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; +_sliderFontR = [_display,_newParent,([_slideClass,"sliderFontR"] call ExAd_fnc_getNextIDC),[_cbStr, _textCompTop + _rowH * 1 + _margin, _cbStrW, _rowH * _scale]] call ExAd_fnc_createXSliderH; + +[_display,_newParent,([_slideClass,"strTxtSliderFontG"] call ExAd_fnc_getNextIDC),[_leftCol, _textCompTop + _rowH * 2, _cbW, _cbH],"G",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; +_sliderFontG = [_display,_newParent,([_slideClass,"sliderFontG"] call ExAd_fnc_getNextIDC),[_cbStr, _textCompTop + _rowH * 2 + _margin, _cbStrW, _rowH * _scale]] call ExAd_fnc_createXSliderH; + +[_display,_newParent,([_slideClass,"strTxtSliderFontB"] call ExAd_fnc_getNextIDC),[_leftCol, _textCompTop + _rowH * 3, _cbW, _cbH],"B",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; +_sliderFontB = [_display,_newParent,([_slideClass,"sliderFontB"] call ExAd_fnc_getNextIDC),[_cbStr, _textCompTop + _rowH * 3 + _margin, _cbStrW, _rowH * _scale]] call ExAd_fnc_createXSliderH; + +[_display,_newParent,([_slideClass,"strTxtSliderFontA"] call ExAd_fnc_getNextIDC),[_leftCol, _textCompTop + _rowH * 4, _cbW, _cbH],"A",_cbStrTextFont,_cbS6trTextSize,_cbStrTextColor,_cbStrAlign,1] call ExAd_fnc_createStructuredText; +_sliderFontA = [_display,_newParent,([_slideClass,"sliderFontA"] call ExAd_fnc_getNextIDC),[_cbStr, _textCompTop + _rowH * 4 + _margin, _cbStrW, _rowH * _scale]] call ExAd_fnc_createXSliderH; + +[_display,_newParent,([_slideClass,"strTxtTitleTextColor"] call ExAd_fnc_getNextIDC),[_leftCol, _textCompTop + _rowH * 5, _leftColW, _rowH],"Update Rate",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_titleStrAlign,1] call ExAd_fnc_createStructuredText; +_sliderUpdateRate = [_display,_newParent,([_slideClass,"sliderUpdateRate"] call ExAd_fnc_getNextIDC),[_cbStr, _textCompTop + _rowH * 6 + _margin, _cbStrW, _rowH * _scale]] call ExAd_fnc_createXSliderH; + + +[_display,_newParent,([_slideClass,"strTxtTitleTextSize"] call ExAd_fnc_getNextIDC),[_rightCol, _textCompTop + _rowH * 2, _leftColW, _rowH],"Text size",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_titleStrAlign,1] call ExAd_fnc_createStructuredText; +_sliderTextSize = [_display,_newParent,([_slideClass,"sliderTextSize"] call ExAd_fnc_getNextIDC),[_rightCbStr, _textCompTop + _rowH * 3 + _margin, _cbStrW, _rowH * _scale]] call ExAd_fnc_createXSliderH; + +[_display,_newParent,([_slideClass,"strTxtTitleTextSize"] call ExAd_fnc_getNextIDC),[_rightCol, _textCompTop + _rowH * 5, _leftColW, _rowH],"Margin",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_titleStrAlign,1] call ExAd_fnc_createStructuredText; +_sliderTextMargin = [_display,_newParent,([_slideClass,"sliderTextMargin"] call ExAd_fnc_getNextIDC),[_rightCbStr, _textCompTop + _rowH * 6 + _margin, _cbStrW, _rowH * _scale]] call ExAd_fnc_createXSliderH; + +[_display,_newParent,([_slideClass,"strTxtTitleTextSize"] call ExAd_fnc_getNextIDC),[_rightCol, _textCompTop + _rowH * 7, _leftColW, _rowH],"Padding",_cbStrTextFont,_cbStrTextSize,_cbStrTextColor,_titleStrAlign,1] call ExAd_fnc_createStructuredText; +_sliderTextPadding = [_display,_newParent,([_slideClass,"sliderTextMargin"] call ExAd_fnc_getNextIDC),[_rightCbStr, _textCompTop + _rowH * 8 + _margin, _cbStrW, _rowH * _scale]] call ExAd_fnc_createXSliderH; + + +[_sliderFontR,[0,1],ExAd_SB_GUI_TextColor select 0] call ExAd_SB_fnc_prepareSlider; +[_sliderFontG,[0,1],ExAd_SB_GUI_TextColor select 1] call ExAd_SB_fnc_prepareSlider; +[_sliderFontB,[0,1],ExAd_SB_GUI_TextColor select 2] call ExAd_SB_fnc_prepareSlider; +[_sliderFontA,[0,1],ExAd_SB_GUI_TextColor select 3] call ExAd_SB_fnc_prepareSlider; + +_sliderFontR ctrlSetEventHandler ["SliderPosChanged", format["ExAd_SB_GUI_TextColor set [0, _this select 1];call ExAd_SB_fnc_updateStatsBar"]]; +_sliderFontG ctrlSetEventHandler ["SliderPosChanged", format["ExAd_SB_GUI_TextColor set [1, _this select 1];call ExAd_SB_fnc_updateStatsBar"]]; +_sliderFontB ctrlSetEventHandler ["SliderPosChanged", format["ExAd_SB_GUI_TextColor set [2, _this select 1];call ExAd_SB_fnc_updateStatsBar"]]; +_sliderFontA ctrlSetEventHandler ["SliderPosChanged", format["ExAd_SB_GUI_TextColor set [3, _this select 1];call ExAd_SB_fnc_updateStatsBar"]]; + + +[_sliderTextSize,[0,2],ExAd_SB_Text_Size] call ExAd_SB_fnc_prepareSlider; +[_sliderTextMargin,[0,5],count ExAd_SB_Text_Margin] call ExAd_SB_fnc_prepareSlider; +[_sliderTextPadding,[0,5],count ExAd_SB_Text_InnerMargin] call ExAd_SB_fnc_prepareSlider; +[_sliderUpdateRate,[1,60],60 / ExAd_SB_Update_Rate] call ExAd_SB_fnc_prepareSlider; + +_sliderTextSize ctrlSetEventHandler ["SliderPosChanged", format["ExAd_SB_Text_Size = _this select 1"]]; +_sliderTextMargin ctrlSetEventHandler ["SliderPosChanged", format["ExAd_SB_Text_Margin = [_this select 1] call ExAd_SB_fnc_createSpace"]]; +_sliderTextPadding ctrlSetEventHandler ["SliderPosChanged", format["ExAd_SB_Text_InnerMargin = [_this select 1] call ExAd_SB_fnc_createSpace"]]; +_sliderUpdateRate ctrlSetEventHandler ["SliderPosChanged", format["ExAd_SB_Update_Rate = 60 / (_this select 1);if(ExAd_SB_Active)then{call ExAd_SB_fnc_stop; call ExAd_fnc_loadSB;call ExAd_fnc_sbThread}"]]; + + +[_display,_newParent,([_slideClass,"btnSave"] call ExAd_fnc_getNextIDC),[_leftCol + (_leftColW / 9), _textCompTop + _rowH * 8, _leftColW / 3, _rowH],"call ExAd_SB_fnc_save","Save"] call ExAd_fnc_createButton; +[_display,_newParent,([_slideClass,"btnOnOff"] call ExAd_fnc_getNextIDC),[_leftCol + (_leftColW / 2) + (_leftColW / 9), _textCompTop + _rowH * 8, _leftColW / 3, _rowH],"_this call ExAd_SB_fnc_powerToggle",(if(!ExAd_SB_Active)then{"Start"}else{"Stop"})] call ExAd_fnc_createButton; + +true \ No newline at end of file diff --git a/mpmissions/Exile.Altis/config.cpp b/mpmissions/Exile.Altis/config.cpp index c5c5f95..80395cd 100644 --- a/mpmissions/Exile.Altis/config.cpp +++ b/mpmissions/Exile.Altis/config.cpp @@ -1,6 +1,6 @@ class CfgXM8 { - extraApps[] = {"ExAd_VG","ExAd_Info","ExAd_CHVD","ExAd_Journal","ExAd_Bike","ExAd_Quad"}; + extraApps[] = {"ExAd_VG","ExAd_Info","ExAd_CHVD","ExAd_Journal","ExAd_Bike","ExAd_Quad","ExAd_SB"}; class ExAd_VG { @@ -60,6 +60,14 @@ class CfgXM8 packable = 1; quickFunction = "['ExAd_Quad'] call ExAd_XM8_DV_fnc_spawnVehicle"; }; + class ExAd_SB + { + title = "Statsbar Settings"; + controlID = 50400; //IDC:50300 -> 50305 || These need to be unique and out of range from each other + config = "ExadClient\XM8\Apps\SB_Settings\config.sqf"; + logo = "ExadClient\XM8\Apps\SB_Settings\Icon_SB.paa"; + onLoad = "ExAdClient\XM8\Apps\SB_Settings\onLoad.sqf"; + }; }; class CfgExileCustomCode