Added StatsBar App and plugin

This commit is contained in:
Bjanski 2016-08-01 17:25:05 +02:00
parent 8000b985db
commit b3c2e7c8f1
47 changed files with 1346 additions and 4 deletions

View File

@ -1,6 +1,16 @@
#<img src="logo.png" alt="ExAd" width="200" />
# 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)

View File

@ -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

View File

@ -0,0 +1,11 @@
#Create Apps
To create an app you need follow 4 simple steps
1.
2.
3.
4.

View File

@ -0,0 +1 @@
#Examples

View File

@ -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.<MAP>\ExAdClient\"
* Goto "mpmissions\exile.<MAP>\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";
};
};
```

5
docs/StatsBar/update.md Normal file
View File

@ -0,0 +1,5 @@
#StatsBar
## Instructions:
### 160801 . v0.8.0
* Full installation

View File

@ -27,4 +27,5 @@ class ExAd
//#include "Grinding\CfgFunctions.cpp"
//#include "HaloParachute\CfgFunctions.cpp"
//#include "XM8\CfgFunctions.cpp"
//#include "StatsBar\CfgFunctions.cpp"
};

View File

@ -17,4 +17,4 @@
*/
//#include "HUD\RscTitles.cpp"
//#include "StatsBar\RscTitles.cpp"

View File

@ -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;};
};

View File

@ -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

View File

@ -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["<img size='%2' image='%1' />", _src,_size]

View File

@ -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["<t %3>%1%2%1</t>", ExAd_SB_Text_Margin , _text , _color ]

View File

@ -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

View File

@ -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

View File

@ -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
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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[
"<t align='%2' shadow='0' valign='middle' font='%1' size='%3'>%4%5%6%7%8%9%10%11%12%13%14%15%16%17%18%4</t>",
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

View File

@ -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

View File

@ -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 = "";
};
};
};

View File

@ -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;
};

View File

@ -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.

View File

@ -0,0 +1,84 @@
/*
postInit.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.
*/
_path = "ExAdClient\StatsBar\customize.sqf";
call compile preprocessFileLineNumbers _path;
if(isNil "ExAd_SB_ICON_BANK")then{ExAd_SB_ICON_BANK = "exile_assets\texture\ui\map_safe_ca.paa";};
if(isNil "ExAd_SB_ICON_CLAN")then{ExAd_SB_ICON_CLAN = "exile_assets\texture\ui\xm8_app_clan_ca.paa";};
if(isNil "ExAd_SB_ICON_COMPASS")then{ExAd_SB_ICON_COMPASS = "ExAdClient\StatsBar\icons\compass.paa";};
if(isNil "ExAd_SB_ICON_GRID")then{ExAd_SB_ICON_GRID = "\a3\ui_f\data\gui\rsc\rscdisplayarsenal\compass_ca.paa";};
if(isNil "ExAd_SB_ICON_HP")then{ExAd_SB_ICON_HP = "exile_assets\texture\ui\xm8_app_health_scanner_ca.paa";};
if(isNil "ExAd_SB_ICON_HUNGER")then{ExAd_SB_ICON_HUNGER = "ExAdClient\StatsBar\icons\hunger.paa";};
if(isNil "ExAd_SB_ICON_PLAYERS")then{ExAd_SB_ICON_PLAYERS = "ExAdClient\StatsBar\icons\players.paa";};
if(isNil "ExAd_SB_ICON_RESPECT")then{ExAd_SB_ICON_RESPECT = "ExAdClient\StatsBar\icons\respect.paa";};
if(isNil "ExAd_SB_ICON_TEMP")then{ExAd_SB_ICON_TEMP = "ExAdClient\StatsBar\icons\thermostat.paa";};
if(isNil "ExAd_SB_ICON_THIRST")then{ExAd_SB_ICON_THIRST = "ExAdClient\StatsBar\icons\thirst.paa";};
if(isNil "ExAd_SB_ICON_TIMER")then{ExAd_SB_ICON_TIMER = "ExAdClient\StatsBar\icons\restart.paa";};
if(isNil "ExAd_SB_ICON_Wallet")then{ExAd_SB_ICON_Wallet = "exile_assets\texture\ui\poptab_ca.paa";};
if(isNil "ExAd_SB_ICON_LOGO")then{ExAd_SB_ICON_LOGO = "";};
if(isNil "ExAd_SB_COMPONENTS_COLORS")then{ExAd_SB_COMPONENTS_COLORS = ["#000000", "#440B00","#FE1106","#CA7400","#A9C700","#11BF03"];};
ExAd_SB_Dialog_CtrlBar_IDC = 1100;
ExAd_SB_Dialog_CtrlLogo_IDC = 1000;
ExAd_SB_Update_Rate = profileNamespace getVariable ["ExAd_SB_Update_Rate", 1];
ExAd_SB_Active = profileNamespace getVariable ["ExAd_SB_Active", true];
ExAd_SB_GUI_POS = profileNamespace getVariable ["ExAd_SB_GUI_POS", [safeZoneX, safeZoneY + safeZoneH - 32 * pixelH, safeZoneW, 30 * pixelH]];
ExAd_SB_GUI_TextColor = profileNamespace getVariable ["ExAd_SB_GUI_TextColor", [0,0,0,1]];
ExAd_SB_GUI_BgColor = profileNamespace getVariable ["ExAd_SB_GUI_BgColor", [0.6,0.05,0,1]];
ExAd_SB_Text_Margin = profileNamespace getVariable ["ExAd_SB_Text_Margin", " "];
ExAd_SB_Text_InnerMargin = profileNamespace getVariable ["ExAd_SB_Text_InnerMargin", ""];
ExAd_SB_Text_Font = profileNamespace getVariable ["ExAd_SB_Text_Font", "OrbitronLight"];
ExAd_SB_Text_Align = profileNamespace getVariable ["ExAd_SB_Text_Align", "center"];
ExAd_SB_Text_Size = profileNamespace getVariable ["ExAd_SB_Text_Size", 1];
ExAd_SB_Show_KD = profileNamespace getVariable ["ExAd_SB_Show_KD", true];
ExAd_SB_Show_HP = profileNamespace getVariable ["ExAd_SB_Show_HP", true];
ExAd_SB_Show_Thirst = profileNamespace getVariable ["ExAd_SB_Show_Thirst", true];
ExAd_SB_Show_Hunger = profileNamespace getVariable ["ExAd_SB_Show_Hunger", true];
ExAd_SB_Show_Wallet = profileNamespace getVariable ["ExAd_SB_Show_Wallet", true];
ExAd_SB_Show_Bank = profileNamespace getVariable ["ExAd_SB_Show_Bank", true];
ExAd_SB_Show_Respect = profileNamespace getVariable ["ExAd_SB_Show_Respect", true];
ExAd_SB_Show_FPS = profileNamespace getVariable ["ExAd_SB_Show_FPS", true];
ExAd_SB_Show_Time = profileNamespace getVariable ["ExAd_SB_Show_Time", true];
ExAd_SB_Show_Temp = profileNamespace getVariable ["ExAd_SB_Show_Temp", true];
ExAd_SB_Show_Grid = profileNamespace getVariable ["ExAd_SB_Show_Grid", true];
ExAd_SB_Show_Compass = profileNamespace getVariable ["ExAd_SB_Show_Compass", true];
ExAd_SB_Show_PlayerCount = profileNamespace getVariable ["ExAd_SB_Show_PlayerCount", true];
ExAd_SB_Show_ClanCount = profileNamespace getVariable ["ExAd_SB_Show_ClanCount", true];
ExAd_SB_COMPONENTS_ACTIVE_COLORS = profileNamespace getVariable ["ExAd_SB_COMPONENTS_ACTIVE_COLORS", true];
ExAd_SB_EXILE_HUD_ACTIVE = profileNamespace getVariable ["ExAd_SB_EXILE_HUD_ACTIVE", true];
if(!ExAd_SB_Active)exitWith{false};
[] spawn {
waituntil {!isnil "bis_fnc_init" && !isNull findDisplay 46 && alive player && ExileClientLoadedIn};
call ExAd_fnc_loadSB;
if(!ExAd_SB_EXILE_HUD_ACTIVE)then{
call ExAd_fnc_toggleExileHUD;
};
};

View File

@ -27,7 +27,7 @@ _margin = 0.2;
_slideClass = "ExAd_Info";
[_display,_slide,([_slideClass,"backButton"] call ExAd_fnc_getNextIDC),[27 * _pW, 17 * _pH, 6 * _pW, 1 * _pH],'["extraApps", 1] call ExileClient_gui_xm8_slide;',STR_ExAd_VG_APP_BTN_BACK] call ExAd_fnc_createButton;
[_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),[_leftCol * _pW, 1 * _pH, (_leftColW + _rightCol + 6) * _pW, 16 * _pH]] call ExAd_fnc_createCtrlGrp;
[_display,_newParent,([_slideClass,"strTxt"] call ExAd_fnc_getNextIDC),[_leftCol * _pW, 1.5 * _pH, (_leftColW + _rightCol + 5) * _pW, 15 * _pH],"","PuristaMedium",1,"#ffffff","right",1] call ExAd_fnc_createStructuredText;

View File

@ -29,7 +29,7 @@ _slideClass = "ExAd_Journal";
[_display,_slide,([_slideClass,"picBg"] call ExAd_fnc_getNextIDC),[1 * _pW, -1 * _pH, (_leftColW + _rightCol + 5) * _pW, 21 * _pH],"ExAdClient\XM8\Apps\Journal\ExAd_Scroll.paa",[1,1,1,1],false,false,""] call ExAd_fnc_createPicture;
[_display,_slide,([_slideClass,"btnBack"] call ExAd_fnc_getNextIDC),[27 * _pW, 17 * _pH, 6 * _pW, 1 * _pH],'["extraApps", 1] call ExileClient_gui_xm8_slide;',STR_ExAd_VG_APP_BTN_BACK] call ExAd_fnc_createButton;
[_display,_slide,([_slideClass,"btnBack"] 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),[6.5 * _pW, 3 * _pH, 21 * _pW, 13 * _pH]] call ExAd_fnc_createCtrlGrp;
_listCtrl = [_display,_newParent,([_slideClass,"listNotes"] call ExAd_fnc_getNextIDC),[0 * _pW, 0 * _pH, 21 * _pW, 13 * _pH],""] call ExAd_fnc_createList;

View File

@ -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;
};

View File

@ -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

View File

@ -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