mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
bump version to 0.4
* Adds experimental test of new HUD from @raymix * Hud elements are added and removed dynamically so that all active icons are always right justified. * Icons scale in size when critical levels are reached. * added use of new A3 features to control angle and scale of hud icons. * warning and critical levels are controlled via customVarsDefaults. * Added larger group sizes up to 64 players and increased Krypto costs. * reworked Finsh login in login fsm to wait for display 46 not to be Null.
This commit is contained in:
parent
9d8734acdc
commit
810fe5d65c
1
Changelogs/0.4.0.0.txt
Normal file
1
Changelogs/0.4.0.0.txt
Normal file
@ -0,0 +1 @@
|
||||
TBA
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,8 +1,8 @@
|
||||
/*%FSM<COMPILE "D:\SteamLibrary\steamapps\common\Arma 3 Tools\FSMEditor\scriptedFSM.cfg, Epoch Login">*/
|
||||
/*%FSM<COMPILE "F:\Program Files (x86)\Steam\steamapps\common\Arma 3 Tools\FSMEditor\scriptedFSM.cfg, Epoch Login">*/
|
||||
/*%FSM<HEAD>*/
|
||||
/*
|
||||
item0[] = {"INIT",0,250,-25.000000,-375.000000,75.000000,-325.000000,0.000000,"INIT"};
|
||||
item1[] = {"FINISH",1,4346,-25.000000,1475.000000,75.000000,1525.000000,0.000000,"FINISH"};
|
||||
item1[] = {"FINISH",1,4346,-149.463196,1518.792480,-49.463196,1568.792480,0.000000,"FINISH"};
|
||||
item2[] = {"true",8,218,-150.000000,-125.000000,-50.000000,-75.000000,0.000000,"true"};
|
||||
item3[] = {"Version_Check",2,250,-25.000000,-75.000000,75.000000,-25.000000,0.000000,"Version Check"};
|
||||
item4[] = {"Player_Object_Re",4,218,-150.000000,75.000000,-50.000000,125.000000,0.000000,"Player" \n "Object Ready"};
|
||||
@ -183,8 +183,8 @@ link93[] = {82,76};
|
||||
link94[] = {83,16};
|
||||
link95[] = {83,22};
|
||||
link96[] = {84,31};
|
||||
globals[] = {0.000000,0,0,0,0,640,480,1,247,6316128,1,-534.004700,883.834412,1895.573975,986.017029,1287,884,1};
|
||||
window[] = {2,-1,-1,-32000,-32000,1149,2931,3915,382,3,1305};
|
||||
globals[] = {0.000000,0,0,0,0,640,480,1,247,6316128,1,-566.678223,916.507324,1906.129761,921.949097,1287,854,1};
|
||||
window[] = {2,-1,-1,-1,-1,923,-1524,-540,156,3,1305};
|
||||
*//*%FSM</HEAD>*/
|
||||
class FSM
|
||||
{
|
||||
@ -236,35 +236,34 @@ class FSM
|
||||
{
|
||||
name = "FINISH";
|
||||
itemno = 1;
|
||||
init = /*%FSM<STATEINIT""">*/"[] spawn {" \n
|
||||
" disableSerialization;" \n
|
||||
" waitUntil{!isNull (findDisplay 46)};" \n
|
||||
" _display = findDisplay 46;" \n
|
||||
" {" \n
|
||||
" _display displayAddEventHandler [_x,([""CfgEpochClient"", _x, """"] call EPOCH_fnc_returnConfigEntryV2)];" \n
|
||||
" } forEach ([""CfgEpochClient"", ""displayAddEventHandler"", []] call EPOCH_fnc_returnConfigEntryV2);" \n
|
||||
" call epoch_dynamicHUD_start; " \n
|
||||
" player switchMove """";" \n
|
||||
"};" \n
|
||||
init = /*%FSM<STATEINIT""">*/"// setup display EH's" \n
|
||||
"{" \n
|
||||
" (findDisplay 46) displayAddEventHandler [_x,([""CfgEpochClient"", _x, """"] call EPOCH_fnc_returnConfigEntryV2)];" \n
|
||||
"} forEach ([""CfgEpochClient"", ""displayAddEventHandler"", []] call EPOCH_fnc_returnConfigEntryV2);" \n
|
||||
"" \n
|
||||
"3 fadeSound 1;" \n
|
||||
"// reset anim state" \n
|
||||
"player switchMove """";" \n
|
||||
"" \n
|
||||
"if (_debug) then {" \n
|
||||
" diag_log ""EPOCH-LOGIN: Finish!"";" \n
|
||||
"};" \n
|
||||
"// setup Epoch Hud" \n
|
||||
"call epoch_dynamicHUD_start;" \n
|
||||
"[] spawn EPOCH_masterLoop;" \n
|
||||
"" \n
|
||||
"EPOCH_loginFSM = nil;" \n
|
||||
"EPOCH_playerLoginInit = nil;" \n
|
||||
"" \n
|
||||
"//player enableSimulation true;" \n
|
||||
"" \n
|
||||
"// fade in sound and screen" \n
|
||||
"3 fadeSound 1;" \n
|
||||
"titleCut ["""", ""BLACK IN"", 1];" \n
|
||||
"1338 cutText ["""",""PLAIN"",0]; " \n
|
||||
"" \n
|
||||
"progressLoadingScreen 1.0;" \n
|
||||
"" \n
|
||||
"endLoadingScreen;" \n
|
||||
"EPOCH_loadingScreenDone = true;"/*%FSM</STATEINIT""">*/;
|
||||
"EPOCH_loadingScreenDone = true;" \n
|
||||
"" \n
|
||||
"if (_debug) then {" \n
|
||||
" diag_log ""EPOCH-LOGIN: Finish!"";" \n
|
||||
"};" \n
|
||||
""/*%FSM</STATEINIT""">*/;
|
||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||
class Links
|
||||
{
|
||||
@ -911,7 +910,6 @@ class FSM
|
||||
" }forEach EPOCH_playerHitPoints;" \n
|
||||
"};" \n
|
||||
"" \n
|
||||
"[] spawn EPOCH_masterLoop;" \n
|
||||
"true call EPOCH_fnc_Weather;" \n
|
||||
"[5,100] spawn EPOCH_niteLight;" \n
|
||||
"" \n
|
||||
@ -965,7 +963,7 @@ class FSM
|
||||
priority = 0.000000;
|
||||
to="FINISH";
|
||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||
condition=/*%FSM<CONDITION""">*/"preloadCamera _playerPos"/*%FSM</CONDITION""">*/;
|
||||
condition=/*%FSM<CONDITION""">*/"!(isNull (findDisplay 46)) && {preloadCamera _playerPos}"/*%FSM</CONDITION""">*/;
|
||||
action=/*%FSM<ACTION""">*/"call compile _extraPayload;"/*%FSM</ACTION""">*/;
|
||||
};
|
||||
/*%FSM</LINK>*/
|
||||
|
@ -81,39 +81,133 @@ _hungry = EPOCH_playerHunger <= 0;
|
||||
_thirsty = EPOCH_playerThirst <= 0;
|
||||
_warnbloodPressure = EPOCH_playerBloodP > 120;
|
||||
|
||||
_thirst ctrlShow (EPOCH_playerThirst <= 625);
|
||||
if (ctrlShown _thirst) then {
|
||||
[_thirst,_thirsty] call _fadeUI;
|
||||
//_thirst ctrlShow (EPOCH_playerThirst <= 625);
|
||||
/*
|
||||
if (EPOCH_playerThirst <= 625) then {
|
||||
_thirst = ["topRight",_hudIndex] call epoch_getHUDCtrl;
|
||||
_hudIndex = _hudIndex + 1;
|
||||
|
||||
_thirst ctrlSetText "x\addons\a3_epoch_code\Data\UI\thirst_ca.paa";
|
||||
[_thirst,_thirsty] call _scaleUI;
|
||||
_color = [2500,0,EPOCH_playerThirst,1] call EPOCH_colorRange;
|
||||
_thirst ctrlSetTextColor _color;
|
||||
};
|
||||
|
||||
_hunger ctrlShow (EPOCH_playerHunger <= 1250);
|
||||
if (ctrlShown _hunger) then {
|
||||
[_hunger,_hungry] call _fadeUI;
|
||||
if (EPOCH_playerHunger <= 1250) then {
|
||||
_hunger = ["topRight",_hudIndex] call epoch_getHUDCtrl;
|
||||
_hudIndex = _hudIndex + 1;
|
||||
_hunger ctrlSetText "x\addons\a3_epoch_code\Data\UI\hunger_ca.paa";
|
||||
|
||||
[_hunger,_hungry] call _scaleUI;
|
||||
_color = [5000,0,EPOCH_playerHunger,1] call EPOCH_colorRange;
|
||||
_hunger ctrlSetTextColor _color;
|
||||
};
|
||||
*/
|
||||
|
||||
_playerOxygen = getOxygenRemaining player;
|
||||
_oxygen ctrlShow (_playerOxygen < 1);
|
||||
if (ctrlShown _oxygen) then {
|
||||
[_oxygen,(_playerOxygen <= 0.55)] call _fadeUI;
|
||||
//_oxygen ctrlShow (_playerOxygen < 1);
|
||||
if (_playerOxygen < 1) then {
|
||||
_hudIndex = missionNamespace getVariable [format["EPOCH_dynHUD_%1","topRight"],1];
|
||||
_oxygen = ["topRight",_hudIndex] call epoch_getHUDCtrl;
|
||||
missionNamespace setVariable [format["EPOCH_dynHUD_%1","topRight"], _hudIndex + 1];
|
||||
_oxygen ctrlSetText "x\addons\a3_epoch_code\Data\UI\oxygen_ca.paa";
|
||||
|
||||
[_oxygen,(_playerOxygen <= 0.55)] call _scaleUI;
|
||||
_color = [0,1,_playerOxygen,1] call EPOCH_colorRange;
|
||||
_oxygen ctrlSetTextColor _color;
|
||||
};
|
||||
|
||||
_hazzard ctrlShow (EPOCH_playerToxicity > 35);
|
||||
if (ctrlShown _hazzard) then {
|
||||
[_hazzard,(EPOCH_playerToxicity >= 55)] call _fadeUI;
|
||||
_color = [0,100,EPOCH_playerToxicity,1] call EPOCH_colorRange;
|
||||
_hazzard ctrlSetTextColor _color;
|
||||
};
|
||||
// dynamic start (greater than)
|
||||
{
|
||||
_x params [["_selVarName",""],["_HUDclass","topRight"],["_ctrlText",""]];
|
||||
_varIndex = EPOCH_customVars find _selVarName;
|
||||
if (_varIndex != -1) then {
|
||||
_currentVarVal = missionNamespace getVariable[format['EPOCH_player%1', _selVarName],EPOCH_defaultVars select _varIndex];
|
||||
(EPOCH_customVarLimits select _varIndex) params [["_playerLimitMax",100],["_playerLimitMin",0],["_playerWarnLimit",25],["_playerCriticalLimit",75],["_playerWarnLow",0],["_playerCriticalLow",0]];
|
||||
if (_playerLimitMax isEqualType "") then {
|
||||
_playerLimitMax = missionNamespace getVariable [_playerLimitMax, 0];
|
||||
};
|
||||
if (_playerLimitMin isEqualType "") then {
|
||||
_playerLimitMin = missionNamespace getVariable [_playerLimitMin, 0];
|
||||
};
|
||||
_warnLow = _currentVarVal < _playerWarnLow;
|
||||
_warnHigh = _currentVarVal > _playerWarnLimit;
|
||||
_criticalLow = _currentVarVal <= _playerCriticalLow;
|
||||
_criticalHigh = _currentVarVal >= _playerCriticalLimit;
|
||||
if (_warnHigh || _warnLow) then {
|
||||
_hudIndex = missionNamespace getVariable [format["EPOCH_dynHUD_%1",_HUDclass],1];
|
||||
_curCtrl = [_HUDclass,_hudIndex] call epoch_getHUDCtrl;
|
||||
missionNamespace setVariable [format["EPOCH_dynHUD_%1",_HUDclass], _hudIndex + 1];
|
||||
if (_ctrlText isEqualType []) then {
|
||||
_ctrlText = if (_warnHigh) then {_ctrlText select 0} else {_ctrlText select 1};
|
||||
};
|
||||
_curCtrl ctrlSetText _ctrlText;
|
||||
_critical = (_criticalHigh || _criticalLow);
|
||||
[_curCtrl,_critical] call _scaleUI;
|
||||
_color = [_playerLimitMin,_playerLimitMax,_currentVarVal,1] call EPOCH_colorRange;
|
||||
_curCtrl ctrlSetTextColor _color;
|
||||
};
|
||||
};
|
||||
} forEach
|
||||
[
|
||||
[
|
||||
'Temp',
|
||||
"topRight",
|
||||
[
|
||||
"x\addons\a3_epoch_code\Data\UI\hot_ca.paa",
|
||||
"x\addons\a3_epoch_code\Data\UI\cold_ca.paa"
|
||||
]
|
||||
],
|
||||
[
|
||||
'Hunger',
|
||||
"topRight",
|
||||
"x\addons\a3_epoch_code\Data\UI\hunger_ca.paa"
|
||||
],
|
||||
[
|
||||
'Thirst',
|
||||
"topRight",
|
||||
"x\addons\a3_epoch_code\Data\UI\thirst_ca.paa"
|
||||
],
|
||||
[ 'Toxicity',
|
||||
"topRight",
|
||||
"x\addons\a3_epoch_code\Data\UI\hazzard_ca.paa"
|
||||
],
|
||||
[
|
||||
'Wet',
|
||||
"topRight",
|
||||
"x\addons\a3_epoch_code\Data\UI\wet_ca.paa"
|
||||
],
|
||||
[
|
||||
'BloodP',
|
||||
"topRight",
|
||||
"x\addons\a3_epoch_code\Data\UI\bleeding_ca.paa"
|
||||
],
|
||||
[
|
||||
'Alcohol',
|
||||
"topRight",
|
||||
"x\addons\a3_epoch_code\Data\UI\drunk_ca.paa"
|
||||
],
|
||||
[
|
||||
'Soiled',
|
||||
"topRight",
|
||||
"x\addons\a3_epoch_code\Data\UI\soiled_ca.paa"
|
||||
],
|
||||
[
|
||||
'Radiation',
|
||||
"topRight",
|
||||
"x\addons\a3_epoch_code\Data\UI\rads_ca.paa"
|
||||
]
|
||||
];
|
||||
// dynamic end
|
||||
|
||||
_legDamage = player getHitPointDamage "HitLegs";
|
||||
_broken ctrlShow (_legDamage >= 0.5);
|
||||
if (ctrlShown _broken) then {
|
||||
[_broken,true] call _fadeUI;
|
||||
// _broken ctrlShow (_legDamage >= 0.5);
|
||||
if (_legDamage >= 0.5) then {
|
||||
_hudIndex = missionNamespace getVariable [format["EPOCH_dynHUD_%1","topRight"],1];
|
||||
_broken = ["topRight",_hudIndex] call epoch_getHUDCtrl;
|
||||
missionNamespace setVariable [format["EPOCH_dynHUD_%1","topRight"], _hudIndex + 1];
|
||||
_broken ctrlSetText "x\addons\a3_epoch_code\Data\UI\broken_ca.paa";
|
||||
[_broken,true] call _scaleUI;
|
||||
_color = [1,0,_legDamage,1] call EPOCH_colorRange;
|
||||
_broken ctrlSetTextColor _color;
|
||||
};
|
||||
@ -136,9 +230,13 @@ if (_envCold || _envHot || _hungry || _thirsty) then {
|
||||
};
|
||||
|
||||
_critical = (damage player >= 0.7 || _warnbloodPressure);
|
||||
_emergency ctrlShow _critical;
|
||||
if (ctrlShown _emergency) then {
|
||||
[_emergency,(EPOCH_playerBloodP > 140)] call _fadeUI;
|
||||
// _emergency ctrlShow _critical;
|
||||
if (_critical) then {
|
||||
_hudIndex = missionNamespace getVariable [format["EPOCH_dynHUD_%1","topRight"],1];
|
||||
_emergency = ["topRight",_hudIndex] call epoch_getHUDCtrl;
|
||||
missionNamespace setVariable [format["EPOCH_dynHUD_%1","topRight"], _hudIndex + 1];
|
||||
_emergency ctrlSetText "x\addons\a3_epoch_code\Data\UI\bleeding_ca.paa";
|
||||
[_emergency,(EPOCH_playerBloodP > 140)] call _scaleUI;
|
||||
_color = [180,100,EPOCH_playerBloodP,1] call EPOCH_colorRange;
|
||||
_emergency ctrlSetTextColor _color;
|
||||
};
|
||||
@ -154,3 +252,12 @@ if (EPOCH_debugMode) then {
|
||||
};
|
||||
|
||||
call EPOCH_TradeLoop;
|
||||
|
||||
// blank out unused hud elements
|
||||
|
||||
_hudIndex = missionNamespace getVariable [format["EPOCH_dynHUD_%1","topRight"],1];
|
||||
for "_i" from _hudIndex to 9 do {
|
||||
_c = ["topRight",_i] call epoch_getHUDCtrl;
|
||||
_c ctrlSetText "";
|
||||
};
|
||||
missionNamespace setVariable [format["EPOCH_dynHUD_%1","topRight"], nil];
|
||||
|
@ -22,20 +22,33 @@ if (count EPOCH_playerSpawnArray != count EPOCH_spawnIndex) then{
|
||||
{ EPOCH_playerSpawnArray pushBack 0 } forEach EPOCH_spawnIndex;
|
||||
};
|
||||
|
||||
9990 cutRsc ["EpochGameUI","PLAIN",2,false];
|
||||
_display = uiNamespace getVariable "EPOCH_EpochGameUI";
|
||||
//9990 cutRsc ["EpochGameUI","PLAIN",2,false];
|
||||
//_display = uiNamespace getVariable "EPOCH_EpochGameUI";
|
||||
/*
|
||||
EPOCH_fnc_makeCtrl = {
|
||||
params [["_picture",""],["_HUDclass","topRight"]];
|
||||
private _index = missionNamespace getvariable ["EPOCH_dynamicCtrlIndex",1];
|
||||
private _ctrl = [_HUDclass,_index] call epoch_getHUDCtrl;
|
||||
_ctrl ctrlSetText _picture;
|
||||
missionNamespace setvariable ["EPOCH_dynamicCtrlIndex",_index + 1];
|
||||
_ctrl
|
||||
};
|
||||
|
||||
_thirst = _display displayCtrl 21201;
|
||||
_hunger = _display displayCtrl 21202;
|
||||
_broken = _display displayCtrl 21203;
|
||||
_oxygen = _display displayCtrl 21204;
|
||||
_hazzard = _display displayCtrl 21205;
|
||||
_emergency = _display displayCtrl 21206;
|
||||
_thirst = ["x\addons\a3_epoch_code\Data\UI\thirst_ca.paa"] call EPOCH_fnc_makeCtrl;
|
||||
_hunger = ["x\addons\a3_epoch_code\Data\UI\hunger_ca.paa"] call EPOCH_fnc_makeCtrl;
|
||||
_broken = ["x\addons\a3_epoch_code\Data\UI\broken_ca.paa"] call EPOCH_fnc_makeCtrl;
|
||||
_oxygen = ["x\addons\a3_epoch_code\Data\UI\oxygen_ca.paa"] call EPOCH_fnc_makeCtrl;
|
||||
_hazzard = ["x\addons\a3_epoch_code\Data\UI\hazzard_ca.paa"] call EPOCH_fnc_makeCtrl;
|
||||
_emergency = ["x\addons\a3_epoch_code\Data\UI\bleeding_ca.paa"] call EPOCH_fnc_makeCtrl;
|
||||
|
||||
diag_log format ["init HUD: %1 %2 %3 %4 %5 %6", _thirst,_hunger,_broken,_oxygen,_hazzard,_emergency];
|
||||
|
||||
{
|
||||
|
||||
_x ctrlShow false;
|
||||
}forEach[_thirst,_hunger,_broken,_oxygen,_hazzard,_emergency];
|
||||
|
||||
*/
|
||||
// find radio
|
||||
{
|
||||
if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _x)) == "ItemRadio") exitWith{
|
||||
@ -97,6 +110,26 @@ _fadeUI = {
|
||||
};
|
||||
_bool
|
||||
};
|
||||
_scaleUI = {
|
||||
params ["_ctrl","_bool"];
|
||||
private _oemScale = _ctrl getVariable ["ctrl_scale", 1];
|
||||
private _curScale = ctrlScale _ctrl;
|
||||
if (_bool) then {
|
||||
if (_curScale isEqualTo _oemScale) then {
|
||||
_ctrl ctrlSetScale (_oemScale - 0.1);
|
||||
_ctrl ctrlCommit 0.5;
|
||||
} else {
|
||||
_ctrl ctrlSetScale _oemScale;
|
||||
_ctrl ctrlCommit 0.5;
|
||||
};
|
||||
} else {
|
||||
if !(_curScale isEqualTo _oemScale) then {
|
||||
_ctrl ctrlSetScale _oemScale;
|
||||
_ctrl ctrlCommit 0.5;
|
||||
};
|
||||
};
|
||||
_bool
|
||||
};
|
||||
|
||||
_cursorTarget = objNull;
|
||||
|
||||
|
@ -13,22 +13,21 @@
|
||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/gui/scripts/dynamicHUD/Epoch_dynamicHUD_start.sqf
|
||||
*/
|
||||
#include "\A3\ui_f\hpp\defineCommonGrids.inc"
|
||||
|
||||
|
||||
_cfg = "rmx_dynamicHUD" call EPOCH_returnConfig;
|
||||
_configs = "true" configClasses _cfg;
|
||||
|
||||
diag_log format ["Epoch_dynamicHUD_start: %1", _configs];
|
||||
|
||||
setMousePosition [0.5,0.5];
|
||||
|
||||
disableSerialization;
|
||||
_dsp = findDisplay 46;
|
||||
|
||||
rmx_var_dynamicHUD_groups = [];
|
||||
rmx_var_dynamicHUD_groupCTRL = [];
|
||||
|
||||
{
|
||||
_group = _dsp ctrlCreate ["rscControlsGroup", call Epoch_getIDC];
|
||||
rmx_var_dynamicHUD_groups set [_forEachIndex, _group];
|
||||
|
||||
|
||||
_defaultPopulate = getNumber (_x >> "defaultPopulate");
|
||||
_defaultPos = getNumber (_x >> "defaultPos");
|
||||
_arraySize = getNumber (_x >> "arraySize");
|
||||
@ -38,6 +37,9 @@ rmx_var_dynamicHUD_groupCTRL = [];
|
||||
_height = getNumber (_x >> "height");
|
||||
_width = getNumber (_x >> "width");
|
||||
|
||||
(getArray (_x >> "angle")) params [["_deg",0],["_xCenter",0.5],["_yCenter",0.5],["_tilt",0]];
|
||||
(getArray (_x >> "scale")) params [["_scale",1.0],["_reduction",0]];
|
||||
|
||||
_wCtrl = _width * GUI_GRID_W;
|
||||
_hCtrl = _height * GUI_GRID_H;
|
||||
_oX = _offsetX * _wCtrl;
|
||||
@ -64,19 +66,27 @@ rmx_var_dynamicHUD_groupCTRL = [];
|
||||
case 8: {[(safezoneW + safezoneX) - _w, (safezoneH + safezoneY) - _h, _w, _h]};
|
||||
default {[0,0,0,0]};
|
||||
};
|
||||
|
||||
|
||||
_groupPos set [0, (_groupPos select 0)+_oX];
|
||||
_groupPos set [1, (_groupPos select 1)+_oY];
|
||||
_group ctrlSetPosition _groupPos;
|
||||
|
||||
_group ctrlCommit 0;
|
||||
|
||||
|
||||
_evenOdd = true;
|
||||
rmx_var_dynamicHUD_groupCTRL set [_forEachIndex, [(configName _x)]];
|
||||
|
||||
_angle = [_deg,_xCenter,_yCenter];
|
||||
|
||||
|
||||
for "_i" from 0 to (_arraySize - 1) do {
|
||||
_c = _dsp ctrlCreate [_classname, call Epoch_getIDC, _group];
|
||||
_c ctrlSetAngle _angle;
|
||||
|
||||
_angle set [0, (_angle select 0) - _tilt];
|
||||
|
||||
(rmx_var_dynamicHUD_groupCTRL select _forEachIndex) pushBack _c;
|
||||
|
||||
|
||||
_cPos = switch _defaultPopulate do {
|
||||
case 0: {[_i * _wCtrl,0,_wCtrl, _hCtrl]};
|
||||
case 1: {[(_arraySize - 1 - _i) * _wCtrl,0,_wCtrl, _hCtrl]};
|
||||
@ -85,7 +95,7 @@ rmx_var_dynamicHUD_groupCTRL = [];
|
||||
case 4:
|
||||
{
|
||||
_center = _w/2 - _wCtrl/2;
|
||||
|
||||
|
||||
_result = if (_i == 0) then {
|
||||
[_center, 0, _wCtrl, _hCtrl]
|
||||
} else {
|
||||
@ -101,7 +111,7 @@ rmx_var_dynamicHUD_groupCTRL = [];
|
||||
case 5:
|
||||
{
|
||||
_center = _h/2 - _hCtrl/2;
|
||||
|
||||
|
||||
_result = if (_i == 0) then {
|
||||
[0, _center, _wCtrl, _hCtrl]
|
||||
} else {
|
||||
@ -117,10 +127,13 @@ rmx_var_dynamicHUD_groupCTRL = [];
|
||||
default {[0,0,0,0]};
|
||||
};
|
||||
_c ctrlSetPosition _cPos;
|
||||
_c ctrlSetScale _scale;
|
||||
_c setVariable ["ctrl_scale", _scale];
|
||||
_scale = _scale - _reduction;
|
||||
_c ctrlCommit 0;
|
||||
};
|
||||
} forEach _configs;
|
||||
|
||||
//dump default positions into an array
|
||||
|
||||
|
||||
true
|
||||
|
@ -55,7 +55,10 @@ EPOCH_arr_interactedObjs = [];
|
||||
EPOCH_buildOption = 0;
|
||||
EPOCH_nearestLocations = [];
|
||||
EPOCH_lastFiredLocation = [];
|
||||
|
||||
rmx_var_drag_MouseDown = false;
|
||||
rmx_var_dynamicHUD_groups = [];
|
||||
rmx_var_dynamicHUD_groupCTRL = [];
|
||||
|
||||
["EPOCH_onEachFrame", "onEachFrame", EPOCH_onEachFrame] call BIS_fnc_addStackedEventHandler;
|
||||
|
||||
|
@ -21,7 +21,7 @@ defaultPopulate:
|
||||
offSetX: Positive = right, Negative = left
|
||||
offSetY: Positive = down, Negative = up
|
||||
Offsets group of controls, unit measurement is width or height of group. The bigger the group the more it will be offset.
|
||||
Offsets are optional, don't have to be included
|
||||
Offsets are optional, don't have to be included
|
||||
|
||||
classname:
|
||||
https://community.bistudio.com/wiki/ctrlCreate/classnames
|
||||
@ -41,11 +41,13 @@ class rmx_dynamicHUD
|
||||
classname = "RscPicture";
|
||||
defaultPos = 2;
|
||||
defaultPopulate = 1;
|
||||
arraySize = 8;
|
||||
arraySize = 10;
|
||||
width = 4;
|
||||
height = 4;
|
||||
offSetX = 0;
|
||||
offSetY = 0;
|
||||
angle[] = {15, 0.5, 0.5, 1.5}; // [start degrees, x, y, tilt]
|
||||
scale[] = {1, 0.05}; // [start scale, size reduction]
|
||||
};
|
||||
class botcenter
|
||||
{
|
||||
@ -55,6 +57,7 @@ class rmx_dynamicHUD
|
||||
arraySize = 9;
|
||||
width = 5;
|
||||
height = 5;
|
||||
//angle[] = {25, 0.5, 0.5};
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
@ -13,7 +13,7 @@
|
||||
*/
|
||||
class CfgEpochClient
|
||||
{
|
||||
epochVersion = "0.3.9.0";
|
||||
epochVersion = "0.4.0.0";
|
||||
sapperRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = 1% - 55% if soiled (+ 2% if in city) chance to spawn sapper
|
||||
droneRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = // 2% chance (+ 4% chance if in city) (1% - 2% Half if using silencer) to spawn drone if shot fired
|
||||
buildingNearbyMilitary = 0; //1 to allow building nearby Military buildings
|
||||
@ -36,7 +36,7 @@ class CfgEpochClient
|
||||
disableRemoteSensors = true; // disableRemoteSensors true
|
||||
EPOCH_news[] = {"Word is that Sappers have a new boss.","Dogs will often lure them monsters away.","My dog was blown up. I miss him.."};
|
||||
deathMorphClass[] = {"Epoch_Sapper_F","Epoch_SapperB_F","I_UAV_01_F","Epoch_Cloak_F"};//Random selection of these classes when player morphs after death. Currently available: Epoch_Cloak_F, Epoch_SapperB_F, Epoch_Sapper_F, I_UAV_01_F
|
||||
niteLight[] = {1.88,22};//Set ambient lighting at night: {Brightness of light,Height of light}. Default (Low Ambient): {1.88,22} | Twilight: {7.2,88} | Distant: {12.8,142}
|
||||
niteLight[] = {1, 1.88, 22};//Set ambient lighting at night: {1 = enabled/0 = disabled, Brightness of light,Height of light}. Default (Low Ambient): {1.88,22} | Twilight: {7.2,88} | Distant: {12.8,142}
|
||||
ryanZombiesEnabled = true; // enabled by default, false to disable
|
||||
antagonistSpawnIndex[] = {
|
||||
{"Epoch_Cloak_F", 1}, // {"type", limit}
|
||||
@ -49,29 +49,29 @@ class CfgEpochClient
|
||||
{"EPOCH_RyanZombie_1",12}
|
||||
};
|
||||
customVarsDefaults[] = {
|
||||
// EPOCH_player + varName, default value, {max,min}
|
||||
{"Temp",98.6,{106.7,95}},
|
||||
{"Hunger",5000,{5000,0}},
|
||||
{"Thirst",2500,{2500,0}},
|
||||
// EPOCH_player + varName, default value, {max,min,warn-high,critical-high,warn-low,critical-low}
|
||||
{"Temp",98.6,{106.7,95,102,105,96,95}},
|
||||
{"Hunger",5000,{5000,0,5001,5001,1250,0}},
|
||||
{"Thirst",2500,{2500,0,2501,2501,625,0}},
|
||||
{"AliveTime",0,{-2,0}},
|
||||
{"Energy",0,{2500,0}},
|
||||
{"Wet",0,{100,0}},
|
||||
{"Soiled",0,{100,0}},
|
||||
{"Wet",0,{100,0,35,55,-1,-1}},
|
||||
{"Soiled",0,{100,0,35,55,-1,-1}},
|
||||
{"Immunity",0,{100,0}},
|
||||
{"Toxicity",0,{100,0}},
|
||||
{"Toxicity",0,{100,0,35,55,-1,-1}},
|
||||
{"Stamina",100,{"EPOCH_playerStaminaMax",0}},
|
||||
{"Crypto",0,{250000,0}},
|
||||
{"HitPoints",{0,0,0,0},{1,1,1,1}},
|
||||
{"BloodP",100,{190,0}},
|
||||
{"BloodP",100,{190,0,120,140,99,0}},
|
||||
{"SpawnArray",{},{}},
|
||||
{"Karma",0,{50000,-50000}},
|
||||
{"Alcohol",0,{100,0}},
|
||||
{"Radiation",0,{100,0}},
|
||||
{"Alcohol",0,{100,0,35,55,-1,-1}},
|
||||
{"Radiation",0,{100,0,35,55,-1,-1}},
|
||||
{"Nuisance",0,{100,0}},
|
||||
{"MissionArray",{},{}}
|
||||
};
|
||||
// controls max group limit and cost
|
||||
group_upgrade_lvl[] = {4,"100",6,"300",8,"500",10,"1000",12,"1500",13,"1750",14,"2000",15,"3000",16,"5000"};
|
||||
group_upgrade_lvl[] = {4,"1000",6,"1500",8,"2000",10,"2500",12,"3000",14,"3500",16,"4000",32,"8000",64,"16000"};
|
||||
|
||||
// Event handler code
|
||||
displayAddEventHandler[] = {"keyDown","keyUp"};
|
||||
|
@ -1 +1 @@
|
||||
build=570;
|
||||
build=582;
|
||||
|
@ -1 +1 @@
|
||||
build=570;
|
||||
build=582;
|
||||
|
@ -145,7 +145,7 @@ class CfgServerFunctions
|
||||
};
|
||||
class CfgServerVersion
|
||||
{
|
||||
client = "0.3.9.0";
|
||||
config = "0.3.9.0";
|
||||
client = "0.4.0.0";
|
||||
config = "0.4.0.0";
|
||||
hive = "0.5.1.7";
|
||||
};
|
||||
|
Binary file not shown.
@ -1 +1 @@
|
||||
build=570;
|
||||
build=582;
|
||||
|
Binary file not shown.
@ -1 +1 @@
|
||||
build=570;
|
||||
build=582;
|
||||
|
@ -20,7 +20,7 @@ class CfgPatches {
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.1;
|
||||
epochVersion = "0.3.9.0";
|
||||
epochVersion = "0.4.0.0";
|
||||
requiredAddons[] = {};
|
||||
#include "build.hpp"
|
||||
};
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user