0.3.4 part 2

This commit is contained in:
vbawol 2015-10-05 13:40:04 -05:00
parent 9a21f87a10
commit f9e3a36ace
19 changed files with 1674 additions and 919 deletions

View File

@ -3,14 +3,26 @@ Client:
[Added] Totally new crafting system and UI.
[Added] Epoch variant of the unarmed Strider vehicle. (I_MRAP_03_EPOCH)
[Added] Melee weapons: a Broad Sword and Fishing Pole.
[Added] Halloween Clown mask and Wolf/Pumpkin masks as well as Meeps Candy re-added to loot tables.
[Fixed] Reduce client fps lag when first joining the server.
[Fixed] Being unable to removal of solar generator.
[Changed] Removed debug hint text for 3d rotation of objects.
[Changed] Re-enable Move button.
[Added] Halloween Clown mask and re-added to loot tables: Wolf/Pumpkin masks as well as Meeps Candy.
[Fixed] Dog not taming due to var reset in wrong place / BIS animal update.
[Fixed] Reduce client fps lag when first joining the server by preloading objects before exiting loadig screen.
[Fixed] Being unable to remove a solar generator.
[Changed] Removed debug hint text for 3d rotation of objects as it was not needed.
[Changed] Re-enable Move button, this system will stay and be refined in the next few patches.
**Improved Dog AI Dog Brain by Axeman**
[FIXED] Dog not taming due to var reset in wrong place / BIS animal update.
[UPDATED] Dog text format updated.
[UPDATED] Dog whine, instead of bark, when alerting of other nearby players (When player crouched).
[UPDATED] Dog prey kills now use animal looting system. i.e. Dog will loot dead animals, and other objects, then will fetch loot.
[UPDATED] Attached weapon (loot) holder is now dropped if dog finds a new one. Needs update.
[ADDED] New Quiet dog bark and whine.
[UPDATED] Make dog sounds global and use quieter sounds to alert player once dog is tamed. Untamed dog or when attacking is still loud.
[UPDATED] Add occasional quiet dog whine when other players in the area.
[UPDATED] General Dog timeout tweaks to compensate for Arma Animals 'doing their own thing'
Server:
[Added] Example code: Epoch Event provides an example on how to broadcast a message to all players using BE.
[Added] Example "Epoch Event" Code to provide an example on how to broadcast a message to all players using BE.
[Added] 'CfgTraderLimits' config can control stock limit per trader per item. Default is 100 per item class per trader.
[Added] storedVehicleLimit variable in CfgEpochServer can now control the total max allowed vehicles on traders. Default limit is 20.
[Fixed] Issue with trading vehicles that caused the trader data not to save or to save to the wrong slot.
@ -18,8 +30,5 @@ Server:
[Fixed] Error Generic error in expression in EPOCH_server_repairVehicle.
[Changed] Use new sort command instead of BIS_fncSortBy.
[Changed] Use new worldSize command as default if maps worldSize setting in CfgEpoch does not exist.
[Info] Removed old .bikey and added new one for 0331.
[Info] Removed old .bikey and added new one for 0340.
[Info] The source code for the a3_epoch_server.pbo is now on the GitHub.
MORE TBA

View File

@ -1 +1 @@
5 "" !"B_Parachute" !"B_AssaultPack_(cbr|dgtl|khk|mcamo|ocamo|rgr|sgg)" !"B_Carryall_(cbr|khk|mcamo|ocamo|oli|oucamo)" !"B_FieldPack_(blk|cbr|khk|ocamo|oli|oucamo)" !"B_Kitbag_(cbr|mcamo|rgr|sgg)" !"B_TacticalPack_(blk|mcamo|ocamo|oli|rgr)" !"smallbackpack_(red|green|teal|pink|)_epoch" !"(O|I|B)_UAV_01_backpack_F"
5 "" !"B_Parachute" !"B_AssaultPack_(cbr|dgtl|khk|mcamo|ocamo|rgr|sgg|blk)" !"B_Carryall_(cbr|khk|mcamo|ocamo|oli|oucamo)" !"B_FieldPack_(blk|cbr|khk|ocamo|oli|oucamo)" !"B_Kitbag_(cbr|mcamo|rgr|sgg)" !"B_TacticalPack_(blk|mcamo|ocamo|oli|rgr)" !"smallbackpack_(red|green|teal|pink|)_epoch" !"(O|I|B)_UAV_01_backpack_F"

View File

@ -59,7 +59,7 @@
7 remoteControl !"fn_moduleRemoteControl.sqf" !="\"BIS_fnc_moduleRemoteControl"\"
7 drawIcon3D !="drawIcon3D[\"\x\addons\a3_epoch_code\Data\Member.paa\",_color,_pos,1,1,0,_text,1,0.025,\"PuristaMedium\"];\n}forEach EPOCH_ESP_TARGETS;" !"drawIcon3D[format[\"\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa\",_stability],_color,(getPosATL EPOCH_stabilityTarget),5,5,0,\"\",1,0.05,\"PuristaMedium\"];" !"drawIcon3D[format[\"\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa\",_num],_color,_pos,4,4,0,\"\",1,0.05,\"PuristaMedium\"];" !"EPOCH_drawIcon3dStability" !"EPOCH_drawIcon3d" !"if (_condition) then {\ndrawIcon3D [_icon, _color, _position, _sizeX, _sizeY, _angle, _text," !="drawIcon3D [\"\A3\UI_F_MP_Mark\Data\Tasks\Misc\background.paa\""
7 drawLine3D !"{\nfor [{_i = 1}, {_i < count _x}, {_i = _i + 1}] do {\ndrawLine3D [_x select (_i - 1), _x select _i, ((BIS_tracedShooter getVari"
7 ctrlCreate !="_ctrl = _display ctrlCreate [\"RscProgress\",_idc + 1];" !="_display ctrlCreate [\"rmx_rscControlsGroup\"" !="_ListGroup = _display ctrlCreate [\"RscControlsGroupNoHScrollbars\""
7 ctrlCreate !="_ctrl = _display ctrlCreate [\"RscProgress\",_idc + 1];" !="_display ctrlCreate [\"rmx_rscControlsGroup\"" !="_ListGroup = _display ctrlCreate [\"RscControlsGroupNoHScrollbars\"" !="_ctrl = _display ctrlCreate [_x,call _getIDC];" !="_mainGrp = _display ctrlCreate [\"Epoch_main_config_group\",_value];"
7 ctrlDelete !="ctrlDelete _ListGroup;" !="ctrlDelete (rmx_var_crafting_ctrl_GROUP select 0);"
7 ctrlClassName
7 ctrlModel

View File

@ -1,62 +1,67 @@
/*%FSM<COMPILE "C:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, dog">*/
/*%FSM<HEAD>*/
/*
item0[] = {"dog_init",0,4346,-308.811646,-174.618637,-218.811722,-124.618736,0.000000,"dog" \n "init"};
item1[] = {"_",8,218,99.301392,-164.592987,151.253540,-136.187683,0.000000,""};
item2[] = {"decision",2,250,208.563339,-220.761597,298.563293,-170.761597,0.000000,"decision"};
item3[] = {"decision_made",4,218,45.078499,-26.190031,135.078552,23.809971,100.000000,"decision made"};
item4[] = {"action",2,250,45.978439,130.034073,135.978394,180.034134,0.000000,"action"};
item5[] = {"sit",4,218,213.642075,-401.053680,303.642059,-351.053680,75.000000,"sit"};
item6[] = {"dispose",4,218,106.293663,-345.154877,196.293686,-295.154907,80.000000,"dispose"};
item7[] = {"",7,210,591.173462,637.283325,599.173462,645.283325,0.000000,""};
item8[] = {"reset_vars",2,250,-57.248745,-175.970840,32.751255,-125.970863,0.000000,"reset vars"};
item9[] = {"_",8,218,-150.031967,-163.898819,-98.079796,-135.493515,0.000000,""};
item10[] = {"complete",4,218,-57.303970,-27.236908,32.696198,22.763115,10.000000,"complete"};
item11[] = {"Wait_120sec",4,218,599.501099,34.548668,689.501099,84.548660,0.000000,"Wait" \n "120sec"};
item12[] = {"end",1,250,599.472717,-87.843658,689.472839,-37.843731,0.000000,"end"};
item13[] = {"dispose",4,218,222.476715,3.262041,312.476715,53.262005,80.000000,"dispose"};
item14[] = {"sit",4,218,-111.822372,281.911530,-21.822369,331.911530,0.000000,"sit"};
item15[] = {"do_stay",2,250,-311.604431,441.158081,-221.604416,491.158081,0.000000,"do stay"};
item16[] = {"look_at",4,218,441.281158,-269.172302,531.281128,-221.575928,30.000000,"look at"};
item17[] = {"look_at",4,218,142.862396,305.132690,232.862579,355.132629,0.000000,"look at"};
item18[] = {"look_at_player",2,250,183.029541,439.919250,273.029846,489.919220,0.000000,"look at player"};
item19[] = {"no_decision",4,218,0.928818,-278.012878,90.928802,-228.012848,100.000000,"no decision"};
item20[] = {"track_wander",4,218,376.743683,-166.765533,466.743683,-116.765511,10.000000,"track wander"};
item21[] = {"follow",4,218,383.032623,-365.181488,473.032501,-315.181610,50.000000,"follow"};
item22[] = {"attack",4,218,438.592499,-326.404816,528.592773,-276.404724,40.000000,"attack"};
item23[] = {"see_food",4,218,333.484619,-399.399414,423.484528,-349.399353,60.000000,"see food"};
item24[] = {"attack",4,218,282.915100,218.351776,372.915100,268.351807,0.000000,"attack"};
item25[] = {"see_food",4,218,235.523438,248.096436,325.523621,298.096375,0.000000,"see food"};
item26[] = {"follow",4,218,43.211121,366.529541,133.210968,416.529510,0.000000,"follow"};
item27[] = {"do_attack",2,250,475.892395,443.436249,565.892395,493.436249,0.000000,"do attack"};
item28[] = {"move_to_food",2,250,378.591339,441.849182,468.591644,491.849152,0.000000,"move to food"};
item29[] = {"do_follow",2,250,-12.356815,438.900574,77.643143,488.900665,0.000000,"do follow"};
item30[] = {"hide",4,218,408.775177,-216.764954,498.775146,-166.765060,20.000000,"hide"};
item31[] = {"hide",4,218,93.460350,337.900269,183.460388,387.900208,0.000000,"hide"};
item32[] = {"do_hide",2,250,86.508911,440.972290,176.508820,490.972443,0.000000,"do hide"};
item33[] = {"eat",4,218,269.500305,-432.050049,359.500397,-382.050049,70.000000,"eat"};
item34[] = {"eat",4,218,189.995667,276.664276,279.995605,326.664307,0.000000,"eat"};
item35[] = {"do_eat",2,250,280.691498,440.967438,370.691589,490.967438,0.000000,"do eat"};
item36[] = {"alert",4,218,332.989319,-116.810501,422.989319,-66.810547,5.000000,"alert"};
item37[] = {"alert",4,218,-11.409309,336.534821,78.590752,386.534729,0.000000,"alert"};
item38[] = {"do_alert",2,250,-110.595520,440.943939,-20.595509,490.944031,0.000000,"do alert"};
item39[] = {"play",4,218,159.478867,-373.192657,249.478699,-323.192596,78.000000,"play"};
item40[] = {"play",4,218,-61.277840,309.296783,28.722137,359.296478,0.000000,"play"};
item41[] = {"do_play",2,250,-210.527878,441.384155,-120.528084,491.383759,0.000000,"do play"};
item42[] = {"mourn",4,218,52.084259,-312.505798,142.084351,-262.505737,90.000000,"mourn"};
item43[] = {"mourn",4,218,270.790802,67.418800,360.790863,117.418747,0.000000,"mourn"};
item44[] = {"do_mourn",2,250,448.517395,67.609764,538.517212,117.609756,0.000000,"do mourn"};
item45[] = {"wander",4,218,-214.253967,224.673553,-124.253967,274.673584,0.000000,"wander"};
item46[] = {"_",8,218,568.164734,141.965942,620.116821,170.371155,5.000000,""};
item47[] = {"track",4,218,-160.918762,254.950806,-70.918755,304.950806,0.000000,"track"};
item48[] = {"do_track",2,250,-409.868256,438.978760,-319.868225,488.978760,0.000000,"do track"};
item49[] = {"",7,210,-67.774078,635.077393,-59.774075,643.077393,0.000000,""};
item50[] = {"do_wander",2,250,-506.306610,440.399109,-416.306580,490.399109,0.000000,"do wander"};
item51[] = {"kill_prey",4,218,-265.259827,194.049530,-175.259766,244.049530,0.000000,"kill prey"};
item52[] = {"do_kill",2,250,-604.120972,440.934174,-514.120972,490.934174,0.000000,"do kill"};
item53[] = {"clean_up",2,250,448.864868,3.913227,538.864990,53.913231,0.000000,"clean up"};
link0[] = {0,9};
link1[] = {1,2};
item0[] = {"dog",0,250,-350.000000,-125.000000,-250.000000,-75.000000,0.000000,"dog"};
item1[] = {"_",8,218,675.000000,150.000000,775.000000,200.000000,0.000000,""};
item2[] = {"decision",2,250,50.000000,-125.000000,150.000000,-75.000000,0.000000,"decision"};
item3[] = {"decision_made",4,218,50.000000,0.000000,150.000000,50.000000,100.000000,"decision made"};
item4[] = {"action",2,250,50.000000,150.000000,150.000000,200.000000,0.000000,"action"};
item5[] = {"sit",4,218,-200.000000,-425.000000,-100.000000,-375.000000,75.000000,"sit"};
item6[] = {"dispose",4,218,-200.000000,-350.000000,-100.000000,-300.000000,80.000000,"dispose"};
item7[] = {"",7,210,721.000000,621.000000,729.000000,629.000000,0.000000,""};
item8[] = {"reset_vars",2,250,-200.000000,0.000000,-100.000000,50.000000,0.000000,"reset vars"};
item9[] = {"_",8,218,-200.000000,-125.000000,-100.000000,-75.000000,0.000000,""};
item10[] = {"complete",4,218,-200.000000,150.000000,-100.000000,200.000000,10.000000,"complete"};
item11[] = {"Wait_120sec",4,218,675.000000,50.000000,775.000000,100.000000,0.000000,"Wait" \n "120sec"};
item12[] = {"end",1,250,675.000000,-125.000000,775.000000,-75.000000,0.000000,"end"};
item13[] = {"dispose",4,218,275.000000,0.000000,375.000000,50.000000,80.000000,"dispose"};
item14[] = {"sit",4,218,-325.000000,300.000000,-225.000000,350.000000,0.000000,"sit"};
item15[] = {"do_stay",2,250,-325.000000,450.000000,-225.000000,500.000000,0.000000,"do stay"};
item16[] = {"look_at",4,218,425.000000,-350.000000,525.000000,-300.000000,30.000000,"look at"};
item17[] = {"look_at",4,218,200.000000,350.000000,300.000000,400.000000,0.000000,"look at"};
item18[] = {"look_at_player",2,250,200.000000,450.000000,300.000000,500.000000,0.000000,"look at player"};
item19[] = {"no_decision",4,218,-200.000000,-200.000000,-100.000000,-150.000000,100.000000,"no decision"};
item20[] = {"track_wander",4,218,425.000000,-200.000000,525.000000,-150.000000,10.000000,"track wander"};
item21[] = {"follow",4,218,175.000000,-425.000000,275.000000,-375.000000,50.000000,"follow"};
item22[] = {"attack",4,218,425.000000,-425.000000,525.000000,-375.000000,40.000000,"attack"};
item23[] = {"see_food",4,218,50.000000,-425.000000,150.000000,-375.000000,60.000000,"see food"};
item24[] = {"attack",4,218,500.000000,275.000000,600.000000,325.000000,0.000000,"attack"};
item25[] = {"see_food",4,218,400.000000,300.000000,500.000000,350.000000,0.000000,"see food"};
item26[] = {"follow",4,218,-25.000000,375.000000,75.000000,425.000000,0.000000,"follow"};
item27[] = {"do_attack",2,4346,500.000000,450.000000,600.000000,500.000000,0.000000,"do attack"};
item28[] = {"move_to_food",2,250,400.000000,450.000000,500.000000,500.000000,0.000000,"move to food"};
item29[] = {"do_follow",2,250,-25.000000,450.000000,75.000000,500.000000,0.000000,"do follow"};
item30[] = {"hide",4,218,425.000000,-275.000000,525.000000,-225.000000,20.000000,"hide"};
item31[] = {"hide",4,218,100.000000,375.000000,200.000000,425.000000,0.000000,"hide"};
item32[] = {"do_hide",2,250,100.000000,450.000000,200.000000,500.000000,0.000000,"do hide"};
item33[] = {"eat",4,218,-75.000000,-425.000000,25.000000,-375.000000,70.000000,"eat"};
item34[] = {"eat",4,218,300.000000,325.000000,400.000000,375.000000,0.000000,"eat"};
item35[] = {"do_eat",2,250,300.000000,450.000000,400.000000,500.000000,0.000000,"do eat"};
item36[] = {"alert",4,218,425.000000,-125.000000,525.000000,-75.000000,5.000000,"alert"};
item37[] = {"alert",4,218,-125.000000,350.000000,-25.000000,400.000000,0.000000,"alert"};
item38[] = {"do_alert",2,250,-125.000000,450.000000,-25.000000,500.000000,0.000000,"do alert"};
item39[] = {"play",4,218,300.000000,-425.000000,400.000000,-375.000000,45.000000,"play"};
item40[] = {"play",4,218,-225.000000,325.000000,-125.000000,375.000000,0.000000,"play"};
item41[] = {"do_play",2,250,-225.000000,450.000000,-125.000000,500.000000,0.000000,"do play"};
item42[] = {"mourn",4,218,-200.000000,-275.000000,-100.000000,-225.000000,90.000000,"mourn"};
item43[] = {"mourn",4,218,275.000000,75.000000,375.000000,125.000000,0.000000,"mourn"};
item44[] = {"do_mourn",2,250,425.000000,75.000000,525.000000,125.000000,0.000000,"do mourn"};
item45[] = {"wander",4,218,-525.000000,250.000000,-425.000000,300.000000,0.000000,"wander"};
item46[] = {"wait_for_loot",2,250,-750.000000,525.000000,-650.000000,575.000000,0.000000,"wait for loot"};
item47[] = {"track",4,218,-425.000000,275.000000,-325.000000,325.000000,0.000000,"track"};
item48[] = {"do_track",2,250,-425.000000,450.000000,-325.000000,500.000000,0.000000,"do track"};
item49[] = {"",7,210,20.999996,621.000000,29.000002,629.000000,0.000000,""};
item50[] = {"do_wander",2,250,-525.000000,450.000000,-425.000000,500.000000,0.000000,"do wander"};
item51[] = {"kill_prey",4,218,-625.000000,225.000000,-525.000000,275.000000,0.000000,"kill prey"};
item52[] = {"do_kill",2,250,-625.000000,450.000000,-525.000000,500.000000,0.000000,"do kill"};
item53[] = {"clean_up",2,250,425.000000,0.000000,525.000000,50.000000,0.000000,"clean up"};
item54[] = {"check",4,218,-625.000000,525.000000,-525.000000,575.000000,10.000000,"check"};
item55[] = {"_",8,218,-750.000000,450.000000,-650.000000,500.000000,0.000000,""};
item56[] = {"_",8,218,-350.000000,0.000000,-250.000000,50.000000,0.000000,""};
item57[] = {"found",4,218,-750.000000,600.000000,-650.000000,650.000000,20.000000,"found"};
item58[] = {"attach_loot",2,250,-625.000000,600.000000,-525.000000,650.000000,0.000000,"attach loot"};
link0[] = {0,56};
link1[] = {1,4};
link2[] = {2,3};
link3[] = {2,5};
link4[] = {2,6};
@ -89,9 +94,9 @@ link30[] = {4,47};
link31[] = {4,51};
link32[] = {5,2};
link33[] = {6,2};
link34[] = {7,46};
link35[] = {8,1};
link36[] = {9,8};
link34[] = {7,1};
link35[] = {8,9};
link36[] = {9,2};
link37[] = {10,8};
link38[] = {11,12};
link39[] = {13,53};
@ -127,26 +132,32 @@ link68[] = {42,2};
link69[] = {43,44};
link70[] = {44,11};
link71[] = {45,50};
link72[] = {46,4};
link73[] = {47,48};
link74[] = {48,49};
link75[] = {49,7};
link76[] = {50,49};
link77[] = {51,52};
link78[] = {52,49};
link79[] = {53,11};
globals[] = {0.000000,0,0,0,16777215,640,480,1,135,6316128,1,-294.824829,718.133667,557.528687,-469.195953,770,895,1};
window[] = {2,-1,-1,-1,-1,550,-1255,-230,25,3,788};
link72[] = {46,54};
link73[] = {46,57};
link74[] = {47,48};
link75[] = {48,49};
link76[] = {49,7};
link77[] = {50,49};
link78[] = {51,52};
link79[] = {52,55};
link80[] = {53,11};
link81[] = {54,46};
link82[] = {55,46};
link83[] = {56,8};
link84[] = {57,58};
link85[] = {58,49};
globals[] = {25.000000,1,0,0,16777215,640,480,1,143,6316128,1,-416.230286,740.374207,636.167480,-260.139587,942,730,1};
window[] = {2,-1,-1,-1,-1,629,104,1129,104,3,960};
*//*%FSM</HEAD>*/
class FSM
{
fsmName = "dog";
class States
{
/*%FSM<STATE "dog_init">*/
class dog_init
/*%FSM<STATE "dog">*/
class dog
{
name = "dog_init";
name = "dog";
init = /*%FSM<STATEINIT""">*/"_dog = _this select 0;" \n
"_plyr = player;" \n
"" \n
@ -170,6 +181,8 @@ class FSM
"_followSpeed = 8;" \n
"_forgive = 28;" \n
"_dogHolder = objNull;" \n
"_disposeAt = 1000;" \n
"_dogHolder = objNull;" \n
"" \n
"//Set Vars" \n
"_rnd = 0;" \n
@ -191,8 +204,8 @@ class FSM
"" \n
"//DEBUG" \n
"_doDebug = false;" \n
"//_count = 0;" \n
"//_debugDo = ""INIT"";" \n
"_count = 0;" \n
"_debugDo = ""INIT"";" \n
"//_hunger = 61;" \n
"" \n
"" \n
@ -210,7 +223,7 @@ class FSM
priority = 0.000000;
to="reset_vars";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
@ -246,9 +259,9 @@ class FSM
"_dogHolder hideobject false;" \n
"};" \n
"};"/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"!_decisionMade && (diag_tickTime - _t) > 6;"/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"!_decisionMade && (diag_tickTime - _t) > 1;"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_dogPos = getPosATL _dog;" \n
"_nrPlyrs = _dog nearEntities [_trgtArray, _trgtRange];" \n
"_nrPlyrs = _dogPos nearEntities [_trgtArray, _trgtRange];" \n
"_plyrDist = _dog distance _plyr;" \n
"_plyrPos = getPosATL player;" \n
"_plyrVar = _plyr getVariable [""dog"",""""];" \n
@ -296,23 +309,11 @@ class FSM
priority = 80.000000;
to="decision";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(!alive _dog) || (_plyrDist > 1000) || (!alive _plyr);"/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(!alive _dog) || (_plyrDist > _disposeAt) || (!alive _plyr);"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_doDispose = true;" \n
"_decisionMade = true;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "play">*/
class play
{
priority = 78.000000;
to="decision";
precondition = /*%FSM<CONDPRECONDITION""">*/"_nrChases=_dogPos nearEntities [_dogChaseArray, 42];"/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(_plyrDist < 42) && (count _nrChases > 0) && (_plyrVar == _dogName);"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_nrChase = _nrChases select 0;" \n
"_doPlay = true;" \n
"_decisionMade = true;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "sit">*/
class sit
{
@ -362,6 +363,18 @@ class FSM
"_decisionMade = true;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "play">*/
class play
{
priority = 45.000000;
to="decision";
precondition = /*%FSM<CONDPRECONDITION""">*/"_nrChases=_dogPos nearEntities [_dogChaseArray, 42];"/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(_plyrDist < 42) && (count _nrChases > 0) && (_plyrVar == _dogName);"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_nrChase = _nrChases select 0;" \n
"_doPlay = true;" \n
"_decisionMade = true;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "attack">*/
class attack
{
@ -592,7 +605,7 @@ class FSM
priority = 0.000000;
to="do_track";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_doTrack;"/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"_doTrack"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_doTrack = false;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
@ -614,6 +627,15 @@ class FSM
{
name = "reset_vars";
init = /*%FSM<STATEINIT""">*/"//Default Vars" \n
"" \n
"_criteriaMetAction = nil;" \n
"_foodHolder = objNull;" \n
"_nrFood = """";" \n
"_foodPos = [0,0,0];" \n
"_nrChases=[];" \n
"_nrChase = objNull;" \n
"_chaseDist = 0;" \n
"_maxTravelTime = 8;" \n
"" \n
"_rnd = 0;" \n
"_actionDone = false;" \n
@ -650,20 +672,25 @@ class FSM
"};" \n
"};" \n
"" \n
"if (count _nrPlyrs > 1) then {" \n
"_nrOtherPlyrs = [];" \n
"{" \n
"if(_x != player)then{" \n
"_nrOtherPlyrs pushBack _x;" \n
"}; " \n
"} forEach _nrPlyrs;" \n
"" \n
"_countNrPlyrs = count _nrOtherPlyrs;" \n
"if (_countNrPlyrs > 1) then {" \n
"_maxTravelTime = _maxTravelTime * 2;" \n
"};" \n
"" \n
"_criteriaMetAction = nil;" \n
"_plyrStance = """";" \n
"_foodHolder = objNull;" \n
"_nrFood = """";" \n
"_foodPos = [0,0,0];" \n
"_plyrVar = _plyr getVariable [""dog"",""""];" \n
"_nrChases=[];" \n
"_nrChase = objNull;" \n
"_chaseDist = 0;" \n
"_maxTravelTime = 8;" \n
"//Dog whine warning of nearby players." \n
"if((random 100) < (_countNrPlyrs * 10))then{" \n
"[_dog, _plyr] say3D ""dog_cry"";" \n
"EPOCH_say3D_PVS = [player, _dog, 17,Epoch_personalToken];" \n
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
"};" \n
"" \n
""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
@ -674,7 +701,7 @@ class FSM
priority = 0.000000;
to="decision";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
@ -702,11 +729,12 @@ class FSM
"" \n
"if (floor(random 100)< 8) then {" \n
"[_dog, _plyr] say3D ""dog_cry"";" \n
"EPOCH_say3D_PVS = [player, _dog, 17,Epoch_personalToken];" \n
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
"_hunger = _hunger + 2;" \n
"};" \n
"" \n
"_criteria = ""(false)"";" \n
"_criteriaMetAction = ""_dog forceSpeed 0"";" \n
"_sWait = 24;" \n
"_actionDone = true;" \n
"_t = diag_tickTime;" \n
@ -721,10 +749,10 @@ class FSM
/*%FSM<LINK "_">*/
class _
{
priority = 5.000000;
priority = 0.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
@ -739,7 +767,7 @@ class FSM
"_dirTo = [_dog, _plyrPos] call BIS_fnc_dirTo;" \n
"_posTo = [_dog, 2,_dirTo] call BIS_fnc_relPos;" \n
"_dog moveTo _posTo;" \n
"_criteria = ""(_dog distance _posTo < 1)"";" \n
"_criteria = ""(moveToCompleted _dog) || (_dog distance _posTo < 1.5)"";" \n
"_sWait = 4;" \n
"" \n
"}else{" \n
@ -761,6 +789,8 @@ class FSM
"" \n
"if (floor(random 100)<_dogNoise) then {" \n
"[_dog, _plyr] say3D ""dog_cry"";" \n
"EPOCH_say3D_PVS = [player, _dog, 17,Epoch_personalToken];" \n
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
"};" \n
"" \n
"" \n
@ -774,10 +804,10 @@ class FSM
/*%FSM<LINK "_">*/
class _
{
priority = 5.000000;
priority = 0.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
@ -788,21 +818,19 @@ class FSM
class do_attack
{
name = "do_attack";
init = /*%FSM<STATEINIT""">*/"_dog forceSpeed 7;" \n
init = /*%FSM<STATEINIT""">*/"_dog forceSpeed 5;" \n
"_moveTo = _plyrPos;" \n
"" \n
"if (! surfaceIsWater _moveTo) then {" \n
"if !( surfaceIsWater _moveTo) then {" \n
"_dog moveTo _moveTo;" \n
"_criteria = ""(_dog distance _moveTo < 2)"";" \n
"_criteria = ""(moveToCompleted _dog) || (_dog distance _plyr < 1.5)"";" \n
"_sWait = 8;" \n
"}else{" \n
"_criteria = ""(true)"";" \n
"_sWait = 0;" \n
"};" \n
"" \n
"" \n
"" \n
"if (_dog distance _plyr < 3) then {" \n
"if (_dog distance _plyr < 1.5) then {" \n
"_plyPos = getPosATL _plyr;" \n
"" \n
"_dog call EPOCH_client_bitePlayer;" \n
@ -819,8 +847,10 @@ class FSM
"_actionDone = true;" \n
"_t = diag_tickTime;" \n
"" \n
"if (floor(random 100) < 32) then {" \n
"if (floor(random 100) < 6) then {" \n
"[_dog, _plyr] say3D ""dog_bark"";" \n
"EPOCH_say3D_PVS = [player, _dog, 2,Epoch_personalToken];" \n
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
"};" \n
"" \n
"if (floor(random 100)<_forgive) then {" \n
@ -837,10 +867,10 @@ class FSM
/*%FSM<LINK "_">*/
class _
{
priority = 5.000000;
priority = 0.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
@ -852,9 +882,10 @@ class FSM
{
name = "move_to_food";
init = /*%FSM<STATEINIT""">*/"_dog forceSpeed 4;" \n
"_foodPos set [2,0];" \n
"_dog moveTo _foodPos;" \n
"" \n
"_criteria = ""(false)"";" \n
"_criteria = ""(moveToCompleted _dog) || (_dog distance _foodPos < 1.5)"";" \n
"_sWait = (_dog distance _foodPos) max 1;" \n
"_actionDone = true;" \n
"_t = diag_tickTime;" \n
@ -869,10 +900,10 @@ class FSM
/*%FSM<LINK "_">*/
class _
{
priority = 5.000000;
priority = 0.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
@ -888,7 +919,8 @@ class FSM
"" \n
"if (! surfaceIsWater _moveTo) then {" \n
"_dog moveTo _moveTo;" \n
"_criteria = ""(_dog distance _moveTo < 2)"";" \n
"_criteria = ""(moveToCompleted _dog) || (_dog distance _moveTo < 1.5) || (_dog distance _plyr < 1.5)"";" \n
"_criteriaMetAction = """";" \n
"_sWait = (_dog distance _moveTo) max _maxTravelTime;" \n
"}else{" \n
"_criteria = ""(true)"";" \n
@ -914,10 +946,10 @@ class FSM
/*%FSM<LINK "_">*/
class _
{
priority = 5.000000;
priority = 0.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
@ -943,9 +975,11 @@ class FSM
"" \n
"if (floor(random 100)<_dogNoise) then {" \n
"[_dog, _plyr] say3D ""dog_cry"";" \n
"EPOCH_say3D_PVS = [player, _dog, 17,Epoch_personalToken];" \n
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
"};" \n
"" \n
"_criteria = ""(_dog distance _moveTo < 3)"";" \n
"_criteria = ""(moveToCompleted _dog) || (_dog distance _moveTo < 1.5)"";" \n
"_sWait = _maxTravelTime;" \n
"_actionDone = true;" \n
"_t = diag_tickTime;" \n
@ -961,10 +995,10 @@ class FSM
/*%FSM<LINK "_">*/
class _
{
priority = 5.000000;
priority = 0.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
@ -978,17 +1012,17 @@ class FSM
init = /*%FSM<STATEINIT""">*/"deleteVehicle _foodHolder;" \n
"" \n
"if (_plyrVar == _dogName) then {" \n
"titleText [format[""You have fed %1."",_dogName], ""PLAIN""];" \n
"_dt = [format[""<t size='0.8' shadow='0' color='#99ffffff'>You have fed %1</t>"",_dogName], 0, 1, 6, 2, 0, 1] spawn bis_fnc_dynamictext;" \n
"}else{" \n
"_plyr setVariable [""dog"", _dogName];" \n
"titleText [format[""You have tamed %1."",_dogName], ""PLAIN""];" \n
"_dt = [format[""<t size='0.8' shadow='0' color='#99ffffff'>You have tamed %1</t>"",_dogName], 0, 1, 6, 2, 0, 1] spawn bis_fnc_dynamictext;" \n
"};" \n
"_hunger = _hunger - 40;" \n
"" \n
"_sWait = 1;" \n
"_actionDone = true;" \n
"_t = diag_tickTime;" \n
"_criteria = ""(true)"";" \n
"_criteria = ""isNull _foodHolder"";" \n
"" \n
"" \n
"if (_doDebug) then {" \n
@ -1000,10 +1034,10 @@ class FSM
/*%FSM<LINK "_">*/
class _
{
priority = 5.000000;
priority = 0.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
@ -1016,7 +1050,9 @@ class FSM
name = "do_alert";
init = /*%FSM<STATEINIT""">*/"_dog forceSpeed 0;" \n
"if (floor(random 75)<_dogNoise) then {" \n
"[_dog, _plyr] say3D ""dog_bark"";" \n
"[_dog, _plyr] say3D ""dog_cry_quiet"";" \n
"EPOCH_say3D_PVS = [player, _dog, 17,Epoch_personalToken];" \n
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
"};" \n
"" \n
"_dirTo = [_dog, getPos (_nrPlyrs select 1)] call BIS_fnc_dirTo;" \n
@ -1037,10 +1073,10 @@ class FSM
/*%FSM<LINK "_">*/
class _
{
priority = 5.000000;
priority = 0.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
@ -1055,6 +1091,8 @@ class FSM
"" \n
"if (_rnd < 42) then {" \n
"[_dog, _plyr] say3D ""dog_bark"";" \n
"EPOCH_say3D_PVS = [player, _dog, 18,Epoch_personalToken];" \n
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
"};" \n
"" \n
"if (_rnd < 6) then {" \n
@ -1067,7 +1105,7 @@ class FSM
"" \n
"" \n
"" \n
"_criteria = ""(_dog distance _moveTo < 2)"";" \n
"_criteria = ""(moveToCompleted _dog) || (_dog distance _moveTo < 1.5)"";" \n
"_sWait = (_dog distance _moveTo) max 4;" \n
"_actionDone = true;" \n
"_t = diag_tickTime;" \n
@ -1091,10 +1129,10 @@ class FSM
/*%FSM<LINK "_">*/
class _
{
priority = 5.000000;
priority = 0.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
@ -1134,6 +1172,38 @@ class FSM
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "wait_for_loot">*/
class wait_for_loot
{
name = "wait_for_loot";
init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "found">*/
class found
{
priority = 20.000000;
to="attach_loot";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"!(isNull _dogHolder)"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
/*%FSM<LINK "check">*/
class check
{
priority = 10.000000;
to="wait_for_loot";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _l > 1) && count (nearestObjects [_dogPos, [""WeaponHolder""],3]) > 0"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/"_l = diag_tickTime;" \n
"_dogHolder = nearestObjects [_dogPos, [""WeaponHolder""], 3] select 0;"/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "do_track">*/
class do_track
{
@ -1144,7 +1214,7 @@ class FSM
"" \n
"if (! surfaceIsWater _moveTo) then {" \n
"_dog moveTo _moveTo;" \n
"_criteria = ""(_dog distance _moveTo < 2)"";" \n
"_criteria = ""(moveToCompleted _dog) || (_dog distance _moveTo < 1.5)"";" \n
"_sWait = _plyrDist max _maxTravelTime;" \n
"}else{" \n
"_criteria = ""(true)"";" \n
@ -1155,15 +1225,21 @@ class FSM
"" \n
"if (_rnd< 12) then {" \n
"[_dog, _plyr] say3D ""dog_bark"";" \n
"EPOCH_say3D_PVS = [player, _dog, 2,Epoch_personalToken];" \n
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
"};" \n
"" \n
"if (_rnd < 6) then {" \n
"_hunger = _hunger + 1;" \n
"[_dog, _plyr] say3D ""dog_cry"";" \n
"EPOCH_say3D_PVS = [player, _dog, 3,Epoch_personalToken];" \n
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
"};" \n
"" \n
"if ((_hunger > 56) && (_rnd < 48)) then {" \n
"[_dog, _plyr] say3D ""dog_cry"";" \n
"EPOCH_say3D_PVS = [player, _dog, 2,Epoch_personalToken];" \n
"publicVariableServer ""EPOCH_say3D_PVS"";" \n
"};" \n
"" \n
"" \n
@ -1181,10 +1257,10 @@ class FSM
/*%FSM<LINK "_">*/
class _
{
priority = 5.000000;
priority = 0.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
@ -1201,7 +1277,7 @@ class FSM
"if (! surfaceIsWater _moveTo) then {" \n
"_dog forceSpeed 4;" \n
"_dog moveTo _moveTo;" \n
"_criteria = ""(_dog distance _moveTo < 2)"";" \n
"_criteria = ""(moveToCompleted _dog) || (_dog distance _moveTo < 1.5)"";" \n
"_sWait = floor (_dog distance _moveTo) max _maxTravelTime;" \n
"}else{" \n
"_criteria = ""(true)"";" \n
@ -1226,10 +1302,10 @@ class FSM
/*%FSM<LINK "_">*/
class _
{
priority = 5.000000;
priority = 0.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
@ -1240,31 +1316,28 @@ class FSM
class do_kill
{
name = "do_kill";
init = /*%FSM<STATEINIT""">*/"if (isNull _dogHolder) then {" \n
"_dogHolder = createVehicle [""WeaponHolderSimulated"", getPosATL _dog, [], 0, ""CAN_COLLIDE""];" \n
"_dogHolder attachTo [_dog, [-0.2,1.2,0.7]];" \n
"_dogHolder hideobject true;" \n
"};" \n
init = /*%FSM<STATEINIT""">*/"{" \n
" if !(alive _x) then {" \n
" if ((_x isKindOf ""Animal_Base_F"" && !(_x isKindOf ""Dog_Base_F"")) || (typeOf _x) in[""Epoch_Sapper_F"", ""Epoch_SapperB_F"", ""Epoch_Cloak_F"", ""I_UAV_01_F""]) then {" \n
" EPOCH_lootAnimal = [_x, player, Epoch_personalToken];" \n
" publicVariableServer ""EPOCH_lootAnimal"";" \n
" };" \n
" };" \n
"" \n
"}forEach nearestObjects[_dog, [], 2];" \n
"" \n
"if (typeOf _nrChase == ""Rabbit_EPOCH"") then {" \n
"_dogHolder addMagazineCargo [""RabbitCarcass_EPOCH"", 1] ;" \n
"_dogHolder addMagazineCargo [""Pelt_EPOCH"", 1] ;" \n
"};" \n
"_dogPos = getPosATL _dog;" \n
"_l = diag_tickTime;" \n
"" \n
"if (_nrChase isKindOf ""Snake_random_EPOCH"") then {" \n
"_dogHolder addMagazineCargo [""Venom_EPOCH"", 1] ;" \n
"_dogHolder addMagazineCargo [""SnakeCarcass_EPOCH"", 1] ;" \n
"};" \n
"" \n
"if (typeOf _nrChase in [""Hen_random_EPOCH"",""Cock_random_EPOCH""]) then {" \n
"_dogHolder addMagazineCargo [""ChickenCarcass_EPOCH"", 1] ;" \n
"//Drop existing loot holder - Update to manage loot" \n
"if!(isNull _dogHolder)then{" \n
"_dogHolder hideobject false;" \n
"detach _dogHolder;" \n
"};" \n
"_dogHolder = objNull;" \n
"" \n
"_hunger = _hunger - 4;" \n
"" \n
"deleteVehicle _nrChase;" \n
"" \n
"_criteria = ""(true)"";" \n
"_sWait = _maxTravelTime;" \n
"_actionDone = true;" \n
@ -1279,10 +1352,10 @@ class FSM
/*%FSM<LINK "_">*/
class _
{
priority = 5.000000;
to="action";
priority = 0.000000;
to="wait_for_loot";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/""/*%FSM</CONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
@ -1314,11 +1387,33 @@ class FSM
};
};
/*%FSM</STATE>*/
/*%FSM<STATE "attach_loot">*/
class attach_loot
{
name = "attach_loot";
init = /*%FSM<STATEINIT""">*/"_dogHolder attachTo [_dog, [-0.2,1.2,0.7]];" \n
"_dogHolder hideobject true;"/*%FSM</STATEINIT""">*/;
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
class Links
{
/*%FSM<LINK "_">*/
class _
{
priority = 0.000000;
to="action";
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
};
/*%FSM</LINK>*/
};
};
/*%FSM</STATE>*/
};
initState="dog_init";
initState="dog";
finalStates[] =
{
"end"
};
};
/*%FSM</COMPILE>*/
/*%FSM</COMPILE>*/

View File

@ -0,0 +1,60 @@
private ["_keyMap","_args","_input","_return"];
params [["_args",0],["_input",0]];
_keyMap =
[
//["Name", "Variable name", Default value],
["Build: Mode 1", "EPOCH_keysBuildMode1", 2],
["Build: Mode 2", "EPOCH_keysBuildMode2", 3],
["Build: Direction", "EPOCH_keysBuildDir", 4],
//["Build: Static", "EPOCH_keysBuildStatic", 5],
["Build: Move UP", "EPOCH_keysBuildMovUp", 0xC9],
["Build: Move DOWN", "EPOCH_keysBuildMovDn", 0xD1],
["Build: Move FORWARD", "EPOCH_keysBuildMovFwd", 0xC7],
["Build: Move BACK", "EPOCH_keysBuildMovBak", 0xCF],
["Build: Move LEFT", "EPOCH_keysBuildMovL", 0xD2],
["Build: Move RIGHT", "EPOCH_keysBuildMovR", 0xD3],
["Build: Rotate LEFT", "EPOCH_keysBuildRotL", 0x12],
["Build: Rotate RIGHT", "EPOCH_keysBuildRotR", 0x10],
["Build: BUILD", "EPOCH_keysBuildIt", 0x39],
["Trade", "EPOCH_keysAcceptTrade", 0x14],
["Holster Weapon", "EPOCH_keysHolster", 35],
["Debug Monitor", "EPOCH_keysDebugMon", 41]
];
switch (_args) do {
case 0: //load variables
{
{
call compile format ["%1 = profileNamespace getVariable ['%1', %2]",_x select 1, _x select 2];
} forEach _keyMap;
_return = true;
};
case 1: //delete all profile namespace variables
{
{
profileNamespace setVariable [_x select 1, nil];
} forEach _keyMap;
_return = true;
};
case 2: //returns keymap to a caller for processing
{
_return = _keyMap;
};
case 3: //search by variable name and return element if exists (not tested)
{
_return =
{
_s = toLower(_x select 1) find toLower _input;
if (_s > -1) exitWith {_x};
[]
} forEach _keyMap;
};
};
_return

View File

@ -188,6 +188,7 @@ class CfgClientFunctions
class clientRespawn {};
class clientRevive {};
class client_rejectPlayer {};
class clientKeyMap {};
};
class p2p_trading
@ -262,8 +263,14 @@ class CfgClientFunctions
class 3DctrlPitchYaw {};
class 3DctrlSpin {};
class 3DctrlYaw {};
class InterruptConfig {};
class InterruptConfigActions {};
};
class config {
file = "\x\addons\a3_epoch_code\gui\scripts\config";
class config_keymap {};
};
class gui_craft {
file = "\x\addons\a3_epoch_code\gui\scripts\craftingv2";
class crafting_animate {};

View File

@ -0,0 +1,294 @@
/*
The x and y coords of the child control are relative to the parent class, the height and width are not
If the height and / or width of the child control are greater than the parent control then scrollbars will be seen
This allows the creation of scrollable active text controls etc
The entire child class needs to be defined in the parents subclass class Controls {};
External parent classes:
RscControlsGroup
RscControlsGroupNoScrollbars
RscControlsGroupNoHScrollbars
http://ru.armacomref.wikia.com/wiki/Dialog_Control
*/
/** ---- TEMPLATE ----
Copy the array part of text below, from $[ to ]
Open GUI editor in game and press CTRL + O
That's it!
Note: IDCs for groups are automatically generated, but not for the controls inside groups!
Note: x and y from the output should be set to 0!
**/
/* #Xasyno
$[
1.063,
["interrupTemplate",[[0,0,1,1],0.025,0.04,"GUI_GRID"],0,0,0],
[2300,"EpochConfigTemplateGROUP",[1,"",["0.29375 * safezoneW + safezoneX","0.225 * safezoneH + safezoneY","0.4135 * safezoneW","0.4202 * safezoneH"],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],"","-1"],[]]
]
*/
/** Inherit from this template if confused **/
class Epoch_main_config_template: RscControlsGroup
{
idc = -1;
x = 0; //keep x and y absolute
y = 0;
w = 0.4135 * safezoneW;
h = 0.4202 * safezoneH;
class controls {};
};
class Epoch_main_config_changelog: Epoch_main_config_template
{
onLoad = "((findDisplay 49) displayCtrl 71000) htmlLoad 'x\addons\a3_epoch_code\gui\changelog.html';";
class controls
{
class Epoch_main_config_html: RscHtml //https://community.bistudio.com/wiki/DialogControls-Text#CT_HTML.3D9
{
idc = 71000;
type = 9;
style = 0x00;
x = 0; //keep x and y absolute
y = 0;
w = 0.4135 * safezoneW;
h = 0.4202 * safezoneH;
filename = "changelog.html";
text="test";
colorText[] = {1,1,1,1.0};
colorBold[] = {0.76,0.5,0.07,0.8};
colorLink[] = {1,1,1,0.75};
colorLinkActive[] = {1,1,1,1.0};
colorBackground[] = {0.2,0.2,0.2,1};
colorPicture[] = {1, 1, 1, 1};
colorPictureBorder[] = {1, 0, 0, 1};
colorPictureLink[] = {0, 0, 1, 1};
colorPictureSelected[] = {0, 1, 0, 1};
sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
prevPage = "\A3\ui_f\data\gui\rsccommon\rschtml\arrow_left_ca.paa";
nextPage = "\A3\ui_f\data\gui\rsccommon\rschtml\arrow_right_ca.paa";
shadow = 2;
class H1
{
font = "PuristaMedium";
fontBold = "PuristaSemibold";
sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)";
align = "left";
};
class H2
{
font = "PuristaMedium";
fontBold = "PuristaSemibold";
sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
align = "right";
};
class H3
{
font = "PuristaMedium";
fontBold = "PuristaSemibold";
sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
align = "left";
};
class H4
{
font = "PuristaMedium";
fontBold = "PuristaSemibold";
sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
align = "left";
};
class H5
{
font = "PuristaMedium";
fontBold = "PuristaSemibold";
sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
align = "left";
};
class H6
{
font = "PuristaMedium";
fontBold = "PuristaSemibold";
sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
align = "left";
};
class P
{
font = "PuristaMedium";
fontBold = "PuristaSemibold";
sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
align = "left";
};
};
};
};
/* #Tefyru
$[
1.063,
["asd",[[0,0,1,1],0.025,0.04,"GUI_GRID"],0,0,0],
[-2300,"EpochConfigKeyMap",[1,"",["0.29375 * safezoneW + safezoneX","0.225 * safezoneH + safezoneY","0.237183 * safezoneW","0.308 * safezoneH"],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],"","-1"],[]],
[2200,"mainBG",[2300,"",["0 * safezoneW","1.63913e-008 * safezoneH","0.237183 * safezoneW","0.308 * safezoneH"],[-1,-1,-1,-1],[0.2,0.2,0.2,1],[-1,-1,-1,-1],"","-1"],[]],
[2201,"IGUIBack_2202",[2300,"",["0.123747 * safezoneW","0.022 * safezoneH","0.103171 * safezoneW","0.022 * safezoneH"],[-1,-1,-1,-1],[0.76,0.5,0.07,0.8],[-1,-1,-1,-1],"","-1"],["idc = 2202;"]],
[2202,"IGUIBack_2201",[2300,"",["0.0103125 * safezoneW","0.022 * safezoneH","0.103171 * safezoneW","0.022 * safezoneH"],[-1,-1,-1,-1],[0.76,0.5,0.07,0.8],[-1,-1,-1,-1],"","-1"],["idc = 2201;"]],
[1000,"RscText_1001",[2300,"Assign a key:",["0.125811 * safezoneW","0.0264 * safezoneH","0.0989998 * safezoneW","0.0154 * safezoneH"],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],"","-1"],["idc = 1001;"]],
[1001,"RscText_1000",[2300,"Action:",["0.0123751 * safezoneW","0.0264 * safezoneH","0.0989997 * safezoneW","0.0154 * safezoneH"],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],"","-1"],["idc = 1000;"]],
[1002,"RscListbox_1500: RscListBox",[2300,"",["0.0103125 * safezoneW","0.044 * safezoneH","0.103125 * safezoneW","0.242 * safezoneH"],[-1,-1,-1,-1],[0,0,0,0.5],[-1,-1,-1,-1],"","-1"],["idc = 1500;"]],
[1400,"RscEdit_1400",[2300,"",["0.124779 * safezoneW","0.154 * safezoneH","0.102093 * safezoneW","0.0242 * safezoneH"],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],"","-1"],["idc = 1400;"]],
[1003,"RscText_1002",[2300,"New Key:",["0.125809 * safezoneW","0.1364 * safezoneH","0.0989998 * safezoneW","0.0154 * safezoneH"],[-1,-1,-1,-1],[0,0,0,0],[-1,-1,-1,-1],"","-1"],["idc = 1002;"]],
[1004,"RscText_1003",[2300,"Default:",["0.123747 * safezoneW","0.066 * safezoneH","0.103124 * safezoneW","0.022 * safezoneH"],[-1,-1,-1,-1],[0,0,0,0.5],[-1,-1,-1,-1],"","-1"],["idc = 1003;"]],
[1700,"",[2300,"Save",["0.12684 * safezoneW","0.198 * safezoneH","0.0464063 * safezoneW","0.0308 * safezoneH"],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],"","-1"],[]],
[1701,"",[2300,"Reset",["0.17531 * safezoneW","0.198 * safezoneH","0.0484687 * safezoneW","0.0308 * safezoneH"],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],"","-1"],[]],
[2400,"",[2300,"Reset all keys",["0.123747 * safezoneW","0.264 * safezoneH","0.103125 * safezoneW","0.022 * safezoneH"],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],"","-1"],[]],
[1005,"",[2300,"Current:",["0.12375 * safezoneW","0.088 * safezoneH","0.103124 * safezoneW","0.022 * safezoneH"],[-1,-1,-1,-1],[0,0,0,0.5],[-1,-1,-1,-1],"","-1"],["idc = 1003;"]]
]
*/
class EpochConfigKeyMap: RscControlsGroupNoScrollbars
{
x = 0;
y = 0;
w = 0.237183 * safezoneW;
h = 0.308 * safezoneH;
onLoad = "'load' call Epoch_config_keymap;";
class controls
{
class rmx_eckm_BG: IGUIBack
{
idc = 78000;
x = 0 * safezoneW;
y = 0 * safezoneH;
w = 0.237183 * safezoneW;
h = 0.308 * safezoneH;
colorBackground[] = {0.2,0.2,0.2,1};
};
class rmx_eckm_BG_assign: IGUIBack
{
idc = 78001;
x = 0.123747 * safezoneW;
y = 0.022 * safezoneH;
w = 0.103171 * safezoneW;
h = 0.022 * safezoneH;
colorBackground[] = {0.76,0.5,0.07,0.8};
};
class rmx_eckm_BG_action: IGUIBack
{
idc = 78002;
x = 0.0103125 * safezoneW;
y = 0.022 * safezoneH;
w = 0.103171 * safezoneW;
h = 0.022 * safezoneH;
colorBackground[] = {0.76,0.5,0.07,0.8};
};
class rmx_eckm_txt_assign: RscText
{
idc = 78003;
text = "Assign a key:"; //--- ToDo: Localize;
x = 0.125811 * safezoneW;
y = 0.0264 * safezoneH;
w = 0.0989998 * safezoneW;
h = 0.0154 * safezoneH;
};
class rmx_eckm_txt_action: RscText
{
idc = 78004;
text = "Action:"; //--- ToDo: Localize;
x = 0.0123751 * safezoneW;
y = 0.0264 * safezoneH;
w = 0.0989997 * safezoneW;
h = 0.0154 * safezoneH;
};
class rmx_eckm_txt_nk: RscText
{
idc = 78005;
text = "New Key:"; //--- ToDo: Localize;
x = 0.125809 * safezoneW;
y = 0.1364 * safezoneH;
w = 0.0989998 * safezoneW;
h = 0.0154 * safezoneH;
colorBackground[] = {0,0,0,0};
};
class rmx_eckm_txt_default: RscText
{
idc = 78006;
text = "Default:"; //--- ToDo: Localize;
x = 0.123747 * safezoneW;
y = 0.066 * safezoneH;
w = 0.103124 * safezoneW;
h = 0.022 * safezoneH;
colorBackground[] = {0,0,0,0.5};
};
class rmx_eckm_txt_current: RscText
{
idc = 78007;
text = "Current:"; //--- ToDo: Localize;
x = 0.12375 * safezoneW;
y = 0.088 * safezoneH;
w = 0.103124 * safezoneW;
h = 0.022 * safezoneH;
colorBackground[] = {0,0,0,0.5};
};
class rmx_eckm_lb: RscListBox
{
idc = 78008;
x = 0.0103125 * safezoneW;
y = 0.044 * safezoneH;
w = 0.103125 * safezoneW;
h = 0.242 * safezoneH;
colorBackground[] = {0,0,0,0.5};
onLBSelChanged = "_this call Epoch_config_keymap;";
};
class rmx_eckm_edit: RscEdit
{
idc = 78009;
x = 0.124779 * safezoneW;
y = 0.154 * safezoneH;
w = 0.102093 * safezoneW;
h = 0.0242 * safezoneH;
onKeyUp = "_this call Epoch_config_keymap;";
};
class rmx_eckm_btn_save: RscShortcutButton
{
idc = 78010;
text = "Save"; //--- ToDo: Localize;
x = 0.12684 * safezoneW;
y = 0.198 * safezoneH;
w = 0.0464063 * safezoneW;
h = 0.0308 * safezoneH;
onMouseButtonClick = "_this call Epoch_config_keymap;";
};
class rmx_eckm_btn_reset: RscShortcutButton
{
idc = 78011;
text = "Reset"; //--- ToDo: Localize;
x = 0.17531 * safezoneW;
y = 0.198 * safezoneH;
w = 0.0484687 * safezoneW;
h = 0.0308 * safezoneH;
onMouseButtonClick = "_this call Epoch_config_keymap;";
};
class rmx_eckm_btn_resetall: RscButtonMenu
{
idc = 78012;
text = "Reset all keys"; //--- ToDo: Localize;
x = 0.123747 * safezoneW;
y = 0.264 * safezoneH;
w = 0.103125 * safezoneW;
h = 0.022 * safezoneH;
onMouseButtonClick = "_this call Epoch_config_keymap;";
};
};
};

View File

@ -10,6 +10,7 @@ class RscCombo;
class RscProgress;
class RscButton;
class RscButtonMenu;
class RscShortcutButton;
class RscObject;
class RscStandardDisplay;
class RscStructuredText;
@ -38,548 +39,12 @@ class IGUIBack;
class CA_Title;
class ScrollBar;
class rmx_dynamenu {
idd = 66600;
enableSimulation = 1;
movingEnable = 1;
onLoad = "setMousePosition [0.5, 0.5];";
class controls {};
};
#include "Epoch_GUI_ClientConfigs.hpp"
#include "Epoch_GUI_rmx.hpp"
class rmx_rscPicture: RscPicture {
idc = -1;
x = 0.425; y = 0.4; w = 0.15; h = 0.2;
text = "";
};
class rmx_rscObject
class RscTitles
{
idd = 77770;
movingEnable = 0;
enableSimulation = 1;
class Objects
{
class randomItem //pref less polies for starting item
{
idc = 77771;
type = 82;
model = "\x\addons\a3_epoch_assets\models\logo.p3d";
scale = 1;
direction[] = {0, -0.35, -0.65};
up[] = {0, 0.65, -0.35};
x = 0.5;
y = 0.5;
z = 0.2;
xBack = 0.5;
yBack = 0.5;
zBack = 1.2;
inBack = 1;
enableZoom = 0;
zoomDuration = 0.001;
};
};
};
class rmx_rscControlsGroup: RscControlsGroup
{
idc = -1;
x = 0; y = 0; w = 0; h = 0;
colorBackground[] = {0,0,0,0};
class VScrollbar: VScrollbar
{
width = 0;
};
class HScrollbar: VScrollbar
{
height = 0;
};
class controls {};
};
class rmx_craftingUI {
idd = 77700;
enableSimulation = 1;
movingEnable = 1;
onUnload = "call EPOCH_crafting_unload;";
onLoad = "setMousePosition [0.5, 0.5];";
class Objects
{
class randomItem2 //pref less polies for starting item
{
idc = 77701;
type = 82;
model = "\x\addons\a3_epoch_assets\models\logo.p3d";
scale = 1;
direction[] = {0, -0.35, -0.65};
up[] = {0, 0.65, -0.35};
x = 0.8125;
y = 0.287782;
z = 1;
xBack = 0.8125;
yBack = 0.287782;
zBack = 1.2;
inBack = 1;
enableZoom = 0;
zoomDuration = 0.001;
};
};
class controls
{
//Developer menu (DISABLE ON RELEASE)
//background
class dev_backgrnd: IGUIBack
{
idc = 77703;
x = 0.710375 * safezoneW + safezoneX;
y = 0.224906 * safezoneH + safezoneY;
w = 0.0845625 * safezoneW;
h = 0.22001 * safezoneH;
colorBackground[] = {0,0,0,0.5};
onLoad = "(_this select 0) ctrlShow false";
};
//buttons
class dev_btn_pic: RscPicture
{
idc = 77702;
text = "x\addons\a3_epoch_code\Data\UI\dev_mode_off.paa";
x = 0.795;
y = -0.064;
w = 0.2;
h = 0.075;
onLoad = "(_this select 0) ctrlShow false";
onMouseButtonDown = "call EPOCH_crafting_dev_toggle;";
};
class dev_btn_set: RscButton
{
idc = 77704;
text = "Set"; //--- ToDo: Localize;
x = 0.770187 * safezoneW + safezoneX;
y = 0.2316 * safezoneH + safezoneY;
w = 0.020625 * safezoneW;
h = 0.022 * safezoneH;
onLoad = "(_this select 0) ctrlShow false";
};
class dev_btn_rpt: RscButton
{
idc = 77705;
text = "Export"; //--- ToDo: Localize;
x = 0.712437 * safezoneW + safezoneX;
y = 0.414171 * safezoneH + safezoneY;
w = 0.0804375 * safezoneW;
h = 0.022 * safezoneH;
onLoad = "(_this select 0) ctrlShow false";
};
class dev_btn_setPos: RscButton
{
idc = 77706;
onLoad = "(_this select 0) ctrlShow false";
text = "Set Position"; //--- ToDo: Localize;
x = 0.712575 * safezoneW + safezoneX;
y = 0.384407 * safezoneH + safezoneY;
w = 0.0804375 * safezoneW;
h = 0.022 * safezoneH;
};
class dev_btn_vectorPlus: RscButton
{
idc = 77707;
onLoad = "(_this select 0) ctrlShow false";
text = "+"; //--- ToDo: Localize;
x = 0.778437 * safezoneW + safezoneX;
y = 0.266721 * safezoneH + safezoneY;
w = 0.012375 * safezoneW;
h = 0.022 * safezoneH;
action = "rmx_var_3dCtrlSpin_Vector = rmx_var_3dCtrlSpin_Vector + 0.1; (rmx_var_crafting_ctrl_DEV select 10) ctrlSetText str rmx_var_3dCtrlSpin_Vector;";
};
class dev_btn_vectorMinus: RscButton
{
idc = 77708;
onLoad = "(_this select 0) ctrlShow false";
text = "-"; //--- ToDo: Localize;
x = 0.73925 * safezoneW + safezoneX;
y = 0.266721 * safezoneH + safezoneY;
w = 0.012375 * safezoneW;
h = 0.022 * safezoneH;
action = "rmx_var_3dCtrlSpin_Vector = rmx_var_3dCtrlSpin_Vector - 0.1; (rmx_var_crafting_ctrl_DEV select 10) ctrlSetText str rmx_var_3dCtrlSpin_Vector;";
};
//edit
class dev_edit_scale: RscEdit
{
idc = 77709;
text = "1"; //--- ToDo: Localize;
x = 0.743375 * safezoneW + safezoneX;
y = 0.2316 * safezoneH + safezoneY;
w = 0.02475 * safezoneW;
h = 0.022 * safezoneH;
onLoad = "(_this select 0) ctrlShow false";
};
class dev_edit_x: RscEdit
{
idc = 77710;
onLoad = "(_this select 0) ctrlShow false";
text = "0.123456"; //--- ToDo: Localize;
x = 0.748524 * safezoneW + safezoneX;
y = 0.2998 * safezoneH + safezoneY;
w = 0.0443435 * safezoneW;
h = 0.022 * safezoneH;
};
class dev_edit_z: RscEdit
{
idc = 77711;
onLoad = "(_this select 0) ctrlShow false";
text = "0.123456"; //--- ToDo: Localize;
x = 0.748948 * safezoneW + safezoneX;
y = 0.325807 * safezoneH + safezoneY;
w = 0.0443435 * safezoneW;
h = 0.022 * safezoneH;
};
class dev_edit_y: RscEdit
{
idc = 77712;
onLoad = "(_this select 0) ctrlShow false";
text = "0.123456"; //--- ToDo: Localize;
x = 0.749458 * safezoneW + safezoneX;
y = 0.352082 * safezoneH + safezoneY;
w = 0.0443435 * safezoneW;
h = 0.022 * safezoneH;
};
class dev_edit_vector: RscEdit
{
idc = 77713;
onLoad = "(_this select 0) ctrlShow false";
text = "0"; //--- ToDo: Localize;
x = 0.755234 * safezoneW + safezoneX;
y = 0.267601 * safezoneH + safezoneY;
w = 0.0195937 * safezoneW;
h = 0.022 * safezoneH;
};
//text
class dev_txt_scale: RscText
{
idc = 77714;
text = "Scale:"; //--- ToDo: Localize;
x = 0.712437 * safezoneW + safezoneX;
y = 0.2338 * safezoneH + safezoneY;
w = 0.028875 * safezoneW;
h = 0.0154 * safezoneH;
onLoad = "(_this select 0) ctrlShow false";
};
class dev_txt_X: RscText
{
idc = 77715;
onLoad = "(_this select 0) ctrlShow false";
text = "X:"; //--- ToDo: Localize;
x = 0.712703 * safezoneW + safezoneX;
y = 0.303578 * safezoneH + safezoneY;
w = 0.028875 * safezoneW;
h = 0.0154 * safezoneH;
};
class dev_txt_z: RscText
{
idc = 77716;
onLoad = "(_this select 0) ctrlShow false";
text = "Z:"; //--- ToDo: Localize;
x = 0.712543 * safezoneW + safezoneX;
y = 0.329511 * safezoneH + safezoneY;
w = 0.028875 * safezoneW;
h = 0.0154 * safezoneH;
};
class dev_txt_y: RscText
{
idc = 77717;
onLoad = "(_this select 0) ctrlShow false";
text = "Y:"; //--- ToDo: Localize;
x = 0.712564 * safezoneW + safezoneX;
y = 0.356482 * safezoneH + safezoneY;
w = 0.028875 * safezoneW;
h = 0.0154 * safezoneH;
};
class dev_txt_3D: RscText //3d preview red
{
idc = 77718;
text = "";
x = 0.6;
y = 0.04;
w = 0.4;
h = 0.44;
colorBackground[] = {1,0,0,0.3};
onLoad = "(_this select 0) ctrlShow false";
};
class dev_txt_Vector: RscText
{
idc = 77719;
onLoad = "(_this select 0) ctrlShow false";
text = "vUP:"; //--- ToDo: Localize;
x = 0.712437 * safezoneW + safezoneX;
y = 0.268921 * safezoneH + safezoneY;
w = 0.0226875 * safezoneW;
h = 0.0154 * safezoneH;
};
// ----------- MAIN GUI PART ----------- //
//background
class rmx_cUI_back: IGUIBack
{
idc = 77800;
x = 0;
y = 0;
w = 1;
h = 1;
colorBackground[] = {0,0,0,0.1};
onLoad = "_cl = _this select 0; _cl ctrlSetFade 1; _cl ctrlCommit 0; _cl ctrlSetFade 0; _cl ctrlCommit 1;";
};
//Buttons
class rmx_cUI_btn_craft: RscPicture
{
idc = 77801;
text = "\x\addons\a3_epoch_code\Data\UI\crafting\close.paa";
x = 0.9;
y = 0.92;
w = 0.1;
h = 0.08;
onLoad = "[(_this select 0),[1,0.92,0,0.08],[0.9,0.92,0.1,0.08]] call EPOCH_crafting_animate;";
onMouseButtonUp = "call epoch_crafting_craft;";
};
class rmx_cUI_btn_clear: RscButton
{
idc = 77802;
text = "X"; //--- ToDo: Localize;
x = 0.26;
y = 0.04;
w = 0.04;
h = 0.052;
onLoad = "[(_this select 0),[0.26,0.04,0,0],[0.26,0.04,0.04,0.052]] call EPOCH_crafting_animate;";
action = "(rmx_var_crafting_ctrl_Interact select 4) ctrlSetText ''; lbClear (rmx_var_crafting_ctrl_main select 1);";
};
//Progressbar
class rmx_cUI_pb: RscProgress
{
idc = 77803;
texture = "#(argb,8,8,3)color(1,1,1,1)";
textureExt = "";
colorBar[] = {1, 1, 1, 0.1};
colorExtBar[] = {1, 1, 1, 1};
colorFrame[] = {1, 1, 1, 1};
x = 0.6;
y = 0.92;
w = 0.3;
h = 0.08;
onLoad = "[(_this select 0),[0.6,0.92,0,0.08],[0.6,0.92,0.3,0.08]] call EPOCH_crafting_animate; (_this select 0) ctrlEnable true;";
onMouseMoving = "if (rmx_var_crafting_progressClicked && rmx_var_craftQTY != 0) then {(_this select 0) progressSetPosition (((_this select 1)-0.6)*3.3 );};";
onMouseHolding = "if (rmx_var_crafting_progressClicked && rmx_var_craftQTY != 0) then {(_this select 0) progressSetPosition (((_this select 1)-0.6)*3.3 );};";
onMouseButtonDown = "rmx_var_crafting_progressClicked = true;";
onMouseButtonUp = "rmx_var_crafting_progressClicked = false;";
};
//progressbar QTY
class rmx_cUI_txt_QTY: RscText
{
idc = 77804;
style = 0x02; //vcenter = 0x0c
text = "";
x = 0.6;
y = 0.92;
w = 0.3;
h = 0.08;
colorBackground[] = {0,0,0,0.2};
colorText[] = {1,0.6,0.01,1};
onLoad = "[(_this select 0),[0.6,0.92,0,0.08],[0.6,0.92,0.3,0.08]] call EPOCH_crafting_animate;";
};
//edit
class rmx_cUI_edit_searchField: RscEdit
{
idc = 77810;
text = ""; //--- ToDo: Localize;
x = 0.0025;
y = 0.04;
w = 0.2575;
h = 0.052;
colorBackground[] = {0,0,0,0.5};
onLoad = "[(_this select 0),[0.0025,0.04,0,0.052],[0.0025,0.04,0.2575,0.052]] call EPOCH_crafting_animate;";
};
//listboxes
class rmx_cUI_LB_recipes: RscListbox
{
idc = 77811;
x = 0;
y = 0.092;
w = 0.3;
h = 0.908;
onLoad = "[(_this select 0),[0,0.092,0.3,0],[0,0.092,0.3,0.908]] call EPOCH_crafting_animate;";
onLBSelChanged = "call EPOCH_crafting_LB_click;";
};
class rmx_cUI_LB_ingredients: RscListbox
{
idc = 77812;
x = 0.3;
y = 0.04;
w = 0.3;
h = 0.96;
onLoad = "[(_this select 0),[0.3,0.04,0.3,0],[0.3,0.04,0.3,0.96]] call EPOCH_crafting_animate;";
onLBDblClick = "call EPOCH_crafting_LB_doubleClick;";
};
//Structured Text
class rmx_cUI_st_description: RscStructuredText
{
idc = 77820;
text = "..............................."; //--- ToDo: Localize;
x = 0.6;
y = 0.524;
w = 0.4;
h = 0.392;
colorBackground[] = {0,0,0,0};
};
//Text
class rmx_cUI_txt_recipes: RscText
{
idc = 77840;
text = "Recipes"; //--- ToDo: Localize;
x = 0;
y = 0;
w = 0.3;
h = 0.04;
colorBackground[] = {0,0,0,0.8};
onLoad = "[(_this select 0),[0,0,0,0.04],[0,0,0.3,0.04]] call EPOCH_crafting_animate;";
};
class rmx_cUI_txt_ingredients: RscText
{
idc = 77841;
text = "Ingredients"; //--- ToDo: Localize;
x = 0.3;
y = 0;
w = 0.2975;
h = 0.04;
colorBackground[] = {0,0,0,0.8};
onLoad = "[(_this select 0),[0.3,0,0,0.04],[0.3,0,0.2975,0.04]] call EPOCH_crafting_animate;";
};
class rmx_cUI_txt_preview: RscText
{
idc = 77842;
text = "Preview"; //--- ToDo: Localize;
x = 0.6;
y = 0;
w = 0.3975;
h = 0.04;
colorBackground[] = {1,0.6,0.01,0.8};
onLoad = "[(_this select 0),[0.6,0,0,0.04],[0.6,0,0.3975,0.04]] call EPOCH_crafting_animate;";
};
class rmx_cUI_txt_resources: RscText
{
idc = 77843;
text = "Resources"; //--- ToDo: Localize;
x = 0.3;
y = 0.96;
w = 0.2975;
h = 0.04;
colorBackground[] = {0,0,0,0.8};
onLoad = "(_this select 0) ctrlShow false";
};
class rmx_cUI_txt_description: RscText
{
idc = 77844;
text = "Description"; //--- ToDo: Localize;
x = 0.6;
y = 0.48;
w = 0.3975;
h = 0.04;
colorBackground[] = {0,0,0,0.8};
onLoad = "[(_this select 0),[0.6,0.48,0,0.04],[0.6,0.48,0.3975,0.04]] call EPOCH_crafting_animate;";
};
//frames
class rmx_cUI_frame_recipes: RscFrame
{
idc = 77830;
x = 0;
y = 0;
w = 0.3;
h = 1;
};
class rmx_cUI_frame_craft: RscFrame
{
idc = 77831;
x = 0.3;
y = 0;
w = 0.3;
h = 1;
};
class rmx_cUI_frame_preview: RscFrame
{
idc = 77832;
x = 0.6;
y = 0;
w = 0.4;
h = 0.48;
};
class rmx_cUI_frame_resources: RscFrame
{
idc = 77833;
x = 0.3;
y = 0.92;
w = 0.3;
h = 0.08;
onLoad = "(_this select 0) ctrlShow false";
};
class rmx_cUI_frame_description: RscFrame
{
idc = 77834;
x = 0.6;
y = 0.48;
w = 0.4;
h = 0.44;
};
class rmx_cUI_frame_qty: RscFrame
{
idc = 77835;
x = 0.6;
y = 0.92;
w = 0.4;
h = 0.08;
};
};
#include "Epoch_RscTitles.hpp"
};
class RscCustomProgress : RscProgress
@ -622,188 +87,6 @@ class SKN_RscEdit
tooltipColorShade[] = { 0, 0, 0, 0.65 };
};
class RscTitles
{
class EpochGameUI
{
idd = -2;
duration = 999999;
onLoad = "uiNamespace setVariable ['EPOCH_EpochGameUI', _this select 0];";
class controls
{
class custom_picture: RscPicture
{
style = 48 + 0x800;
};
class icon1: custom_picture
{
idc = 21201;
text = "\x\addons\a3_epoch_code\Data\UI\thirst_ca.paa";
x = "10 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_X"", ((safezoneX + safezoneW) - (12.4 * ( ((safezoneW / safezoneH) min 1.2) / 40)) - 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "0 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_Y"", (safezoneY + 0.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25))])";
w = "2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class icon2: custom_picture
{
idc = 21202;
text = "\x\addons\a3_epoch_code\Data\UI\hunger_ca.paa";
x = "7.5 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_X"", ((safezoneX + safezoneW) - (12.4 * ( ((safezoneW / safezoneH) min 1.2) / 40)) - 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "0 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_Y"", (safezoneY + 0.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25))])";
w = "2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class icon3: custom_picture
{
idc = 21203;
text = "\x\addons\a3_epoch_code\Data\UI\broken_ca.paa";
x = "5 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_X"", ((safezoneX + safezoneW) - (12.4 * ( ((safezoneW / safezoneH) min 1.2) / 40)) - 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "0 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_Y"", (safezoneY + 0.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25))])";
w = "2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class icon4: custom_picture
{
idc = 21204;
text = "\x\addons\a3_epoch_code\Data\UI\oxygen_ca.paa";
x = "2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_X"", ((safezoneX + safezoneW) - (12.4 * ( ((safezoneW / safezoneH) min 1.2) / 40)) - 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "0 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_Y"", (safezoneY + 0.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25))])";
w = "2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class icon5: custom_picture
{
idc = 21205;
text = "\x\addons\a3_epoch_code\Data\UI\hazzard_ca.paa";
x = "0 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_X"", ((safezoneX + safezoneW) - (12.4 * ( ((safezoneW / safezoneH) min 1.2) / 40)) - 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "0 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_Y"", (safezoneY + 0.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25))])";
w = "2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class icon6: custom_picture
{
idc = 21206;
text = "\x\addons\a3_epoch_code\Data\UI\bleeding_ca.paa";
x = "-2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_X"", ((safezoneX + safezoneW) - (12.4 * ( ((safezoneW / safezoneH) min 1.2) / 40)) - 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "0 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_Y"", (safezoneY + 0.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25))])";
w = "2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
};
};
class EpochGameUI2
{
idd = -3;
duration = 10;
onLoad = "uiNamespace setVariable ['EPOCH_EpochGameUI2', _this select 0];";
class controls
{
class custom_picture : RscPicture
{
style = 48 + 0x800;
};
class icon1 : custom_picture
{
idc = 21207;
text = "\x\addons\a3_epoch_code\Data\UI\cc_ca.paa";
x = "0 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_VEHICLE_X"", (safezoneX + 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "-2.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2)) + 18 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20))";
w = "2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class RscCryptoText : RscText
{
idc = 21208;
text = "";
colorText[] = { 1, 1, 1, 0.5 };
shadow = 0;
sizeEx = 0.08;
x = "2.1 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_VEHICLE_X"", (safezoneX + 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "-2.2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2)) + 18 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20))";
w = "15 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
};
};
class EpochGameUI3
{
idd = -4;
duration = 10;
onLoad = "uiNamespace setVariable ['EPOCH_EpochGameUI3', _this select 0];";
class controls
{
class custom_picture : RscPicture
{
style = 48 + 0x800;
};
class icon1 : custom_picture
{
idc = 21209;
text = "\x\addons\a3_epoch_code\Data\UI\battery_ca.paa";
x = "0 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_VEHICLE_X"", (safezoneX + 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "0 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2)) + 18 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20))";
w = "2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class RscEnergyText : RscText
{
idc = 21210;
text = "";
colorText[] = { 1, 1, 1, 0.5 };
shadow = 0;
sizeEx = 0.08;
x = "2.1 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_VEHICLE_X"", (safezoneX + 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "-0.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2)) + 18 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20))";
w = "15 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
};
};
class rmx_progressTest
{
idd = 10200;
duration = 999999;
fadein = 0.5;
fadeout = 0.5;
onLoad = "uiNamespace setVariable ['rmx_var_progressTestDisplay',_this select 0]";
class controls {};
};
class rmx_CraftingProgress
{
idd = 10100;
duration = 999999;
fadein = 0.2;
fadeout = 0.2;
onLoad = "uiNamespace setVariable ['rmx_var_CraftingProgressDisplay',_this select 0]";
class controls {};
};
class Default //use to delete title resources
{
idd = -1;
fadein = 0;
fadeout = 0;
duration = 0;
};
};
/*
class TradeRequest
{
@ -4034,10 +3317,14 @@ class RscDisplayInventory
};
};
};
class RscDisplayInterrupt: RscStandardDisplay //convert to preprocessFileNumbers
{
onLoad = "[""onLoad"",_this,""RscDisplayInterrupt"",'GUI'] call (uinamespace getvariable 'BIS_fnc_initDisplay'); _this call EPOCH_InterruptConfig;";
};
class RscDisplayMPInterrupt: RscStandardDisplay
{
onLoad = "[""onLoad"",_this,""Epoch_onPause"",'Epoch'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"";[""onLoad"",_this,""RscDisplayMPInterrupt"",'Epoch'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
onLoad = "[""onLoad"",_this,""Epoch_onPause"",'Epoch'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"";[""onLoad"",_this,""RscDisplayMPInterrupt"",'Epoch'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"";_this call EPOCH_InterruptConfig;";
//onLoad = "[""onLoad"",_this,""RscDisplayMPInterrupt"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
onUnload = "[""onUnload"",_this,""RscDisplayMPInterrupt"",'Epoch'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";
};

View File

@ -0,0 +1,603 @@
class rmx_dynamenu {
idd = 66600;
enableSimulation = 1;
movingEnable = 1;
onLoad = "setMousePosition [0.5, 0.5];";
class controls {};
};
class rmx_rscPicture: RscPicture {
idc = -1;
x = 0.425; y = 0.4; w = 0.15; h = 0.2;
text = "";
};
class rmx_rscObject
{
idd = 77770;
movingEnable = 0;
enableSimulation = 1;
class Objects
{
class randomItem //pref less polies for starting item
{
idc = 77771;
type = 82;
model = "\x\addons\a3_epoch_assets\models\logo.p3d";
scale = 1;
direction[] = {0, -0.35, -0.65};
up[] = {0, 0.65, -0.35};
x = 0.5;
y = 0.5;
z = 0.2;
xBack = 0.5;
yBack = 0.5;
zBack = 1.2;
inBack = 1;
enableZoom = 0;
zoomDuration = 0.001;
};
};
};
class rmx_rscControlsGroup: RscControlsGroup
{
idc = -1;
x = 0; y = 0; w = 0; h = 0;
colorBackground[] = {0,0,0,0};
class VScrollbar: VScrollbar
{
width = 0;
};
class HScrollbar: VScrollbar
{
height = 0;
};
class controls {};
};
class rmx_craftingUI {
idd = 77700;
enableSimulation = 1;
movingEnable = 1;
onUnload = "call EPOCH_crafting_unload;";
onLoad = "setMousePosition [0.5, 0.5];";
class Objects
{
class randomItem2 //pref less polies for starting item
{
idc = 77701;
type = 82;
model = "\x\addons\a3_epoch_assets\models\logo.p3d";
scale = 1;
direction[] = {0, -0.35, -0.65};
up[] = {0, 0.65, -0.35};
x = 0.8125;
y = 0.287782;
z = 1;
xBack = 0.8125;
yBack = 0.287782;
zBack = 1.2;
inBack = 1;
enableZoom = 0;
zoomDuration = 0.001;
};
};
class controls
{
//Developer menu (DISABLE ON RELEASE)
//background
class dev_backgrnd: IGUIBack
{
idc = 77703;
x = 0.710375 * safezoneW + safezoneX;
y = 0.224906 * safezoneH + safezoneY;
w = 0.0845625 * safezoneW;
h = 0.22001 * safezoneH;
colorBackground[] = {0,0,0,0.5};
onLoad = "(_this select 0) ctrlShow false";
};
//buttons
class dev_btn_pic: RscPicture
{
idc = 77702;
text = "x\addons\a3_epoch_code\Data\UI\dev_mode_off.paa";
x = 0.795;
y = -0.064;
w = 0.2;
h = 0.075;
onLoad = "(_this select 0) ctrlShow false";
onMouseButtonDown = "call EPOCH_crafting_dev_toggle;";
};
class dev_btn_set: RscButton
{
idc = 77704;
text = "Set"; //--- ToDo: Localize;
x = 0.770187 * safezoneW + safezoneX;
y = 0.2316 * safezoneH + safezoneY;
w = 0.020625 * safezoneW;
h = 0.022 * safezoneH;
onLoad = "(_this select 0) ctrlShow false";
};
class dev_btn_rpt: RscButton
{
idc = 77705;
text = "Export"; //--- ToDo: Localize;
x = 0.712437 * safezoneW + safezoneX;
y = 0.414171 * safezoneH + safezoneY;
w = 0.0804375 * safezoneW;
h = 0.022 * safezoneH;
onLoad = "(_this select 0) ctrlShow false";
};
class dev_btn_setPos: RscButton
{
idc = 77706;
onLoad = "(_this select 0) ctrlShow false";
text = "Set Position"; //--- ToDo: Localize;
x = 0.712575 * safezoneW + safezoneX;
y = 0.384407 * safezoneH + safezoneY;
w = 0.0804375 * safezoneW;
h = 0.022 * safezoneH;
};
class dev_btn_vectorPlus: RscButton
{
idc = 77707;
onLoad = "(_this select 0) ctrlShow false";
text = "+"; //--- ToDo: Localize;
x = 0.778437 * safezoneW + safezoneX;
y = 0.266721 * safezoneH + safezoneY;
w = 0.012375 * safezoneW;
h = 0.022 * safezoneH;
action = "rmx_var_3dCtrlSpin_Vector = rmx_var_3dCtrlSpin_Vector + 0.1; (rmx_var_crafting_ctrl_DEV select 10) ctrlSetText str rmx_var_3dCtrlSpin_Vector;";
};
class dev_btn_vectorMinus: RscButton
{
idc = 77708;
onLoad = "(_this select 0) ctrlShow false";
text = "-"; //--- ToDo: Localize;
x = 0.73925 * safezoneW + safezoneX;
y = 0.266721 * safezoneH + safezoneY;
w = 0.012375 * safezoneW;
h = 0.022 * safezoneH;
action = "rmx_var_3dCtrlSpin_Vector = rmx_var_3dCtrlSpin_Vector - 0.1; (rmx_var_crafting_ctrl_DEV select 10) ctrlSetText str rmx_var_3dCtrlSpin_Vector;";
};
//edit
class dev_edit_scale: RscEdit
{
idc = 77709;
text = "1"; //--- ToDo: Localize;
x = 0.743375 * safezoneW + safezoneX;
y = 0.2316 * safezoneH + safezoneY;
w = 0.02475 * safezoneW;
h = 0.022 * safezoneH;
onLoad = "(_this select 0) ctrlShow false";
};
class dev_edit_x: RscEdit
{
idc = 77710;
onLoad = "(_this select 0) ctrlShow false";
text = "0.123456"; //--- ToDo: Localize;
x = 0.748524 * safezoneW + safezoneX;
y = 0.2998 * safezoneH + safezoneY;
w = 0.0443435 * safezoneW;
h = 0.022 * safezoneH;
};
class dev_edit_z: RscEdit
{
idc = 77711;
onLoad = "(_this select 0) ctrlShow false";
text = "0.123456"; //--- ToDo: Localize;
x = 0.748948 * safezoneW + safezoneX;
y = 0.325807 * safezoneH + safezoneY;
w = 0.0443435 * safezoneW;
h = 0.022 * safezoneH;
};
class dev_edit_y: RscEdit
{
idc = 77712;
onLoad = "(_this select 0) ctrlShow false";
text = "0.123456"; //--- ToDo: Localize;
x = 0.749458 * safezoneW + safezoneX;
y = 0.352082 * safezoneH + safezoneY;
w = 0.0443435 * safezoneW;
h = 0.022 * safezoneH;
};
class dev_edit_vector: RscEdit
{
idc = 77713;
onLoad = "(_this select 0) ctrlShow false";
text = "0"; //--- ToDo: Localize;
x = 0.755234 * safezoneW + safezoneX;
y = 0.267601 * safezoneH + safezoneY;
w = 0.0195937 * safezoneW;
h = 0.022 * safezoneH;
};
//text
class dev_txt_scale: RscText
{
idc = 77714;
text = "Scale:"; //--- ToDo: Localize;
x = 0.712437 * safezoneW + safezoneX;
y = 0.2338 * safezoneH + safezoneY;
w = 0.028875 * safezoneW;
h = 0.0154 * safezoneH;
onLoad = "(_this select 0) ctrlShow false";
};
class dev_txt_X: RscText
{
idc = 77715;
onLoad = "(_this select 0) ctrlShow false";
text = "X:"; //--- ToDo: Localize;
x = 0.712703 * safezoneW + safezoneX;
y = 0.303578 * safezoneH + safezoneY;
w = 0.028875 * safezoneW;
h = 0.0154 * safezoneH;
};
class dev_txt_z: RscText
{
idc = 77716;
onLoad = "(_this select 0) ctrlShow false";
text = "Z:"; //--- ToDo: Localize;
x = 0.712543 * safezoneW + safezoneX;
y = 0.329511 * safezoneH + safezoneY;
w = 0.028875 * safezoneW;
h = 0.0154 * safezoneH;
};
class dev_txt_y: RscText
{
idc = 77717;
onLoad = "(_this select 0) ctrlShow false";
text = "Y:"; //--- ToDo: Localize;
x = 0.712564 * safezoneW + safezoneX;
y = 0.356482 * safezoneH + safezoneY;
w = 0.028875 * safezoneW;
h = 0.0154 * safezoneH;
};
class dev_txt_3D: RscText //3d preview red
{
idc = 77718;
text = "";
x = 0.6;
y = 0.04;
w = 0.4;
h = 0.44;
colorBackground[] = {1,0,0,0.3};
onLoad = "(_this select 0) ctrlShow false";
};
class dev_txt_Vector: RscText
{
idc = 77719;
onLoad = "(_this select 0) ctrlShow false";
text = "vUP:"; //--- ToDo: Localize;
x = 0.712437 * safezoneW + safezoneX;
y = 0.268921 * safezoneH + safezoneY;
w = 0.0226875 * safezoneW;
h = 0.0154 * safezoneH;
};
// ----------- MAIN GUI PART ----------- //
//background
class rmx_cUI_back: IGUIBack
{
idc = 77800;
x = 0;
y = 0;
w = 1;
h = 1;
colorBackground[] = {0,0,0,0.1};
onLoad = "_cl = _this select 0; _cl ctrlSetFade 1; _cl ctrlCommit 0; _cl ctrlSetFade 0; _cl ctrlCommit 1;";
};
//Buttons
class rmx_cUI_btn_craft: RscPicture
{
idc = 77801;
text = "\x\addons\a3_epoch_code\Data\UI\crafting\close.paa";
x = 0.9;
y = 0.92;
w = 0.1;
h = 0.08;
onLoad = "[(_this select 0),[1,0.92,0,0.08],[0.9,0.92,0.1,0.08]] call EPOCH_crafting_animate;";
onMouseButtonUp = "call epoch_crafting_craft;";
};
class rmx_cUI_btn_clear: RscButton
{
idc = 77802;
text = "X"; //--- ToDo: Localize;
x = 0.26;
y = 0.04;
w = 0.04;
h = 0.052;
onLoad = "[(_this select 0),[0.26,0.04,0,0],[0.26,0.04,0.04,0.052]] call EPOCH_crafting_animate;";
action = "(rmx_var_crafting_ctrl_Interact select 4) ctrlSetText ''; lbClear (rmx_var_crafting_ctrl_main select 1);";
};
//Progressbar
class rmx_cUI_pb: RscProgress
{
idc = 77803;
texture = "#(argb,8,8,3)color(1,1,1,1)";
textureExt = "";
colorBar[] = {1, 1, 1, 0.1};
colorExtBar[] = {1, 1, 1, 1};
colorFrame[] = {1, 1, 1, 1};
x = 0.6;
y = 0.92;
w = 0.3;
h = 0.08;
onLoad = "[(_this select 0),[0.6,0.92,0,0.08],[0.6,0.92,0.3,0.08]] call EPOCH_crafting_animate; (_this select 0) ctrlEnable true;";
onMouseMoving = "if (rmx_var_crafting_progressClicked && rmx_var_craftQTY != 0) then {(_this select 0) progressSetPosition (((_this select 1)-0.6)*3.3 );};";
onMouseHolding = "if (rmx_var_crafting_progressClicked && rmx_var_craftQTY != 0) then {(_this select 0) progressSetPosition (((_this select 1)-0.6)*3.3 );};";
onMouseButtonDown = "rmx_var_crafting_progressClicked = true;";
onMouseButtonUp = "rmx_var_crafting_progressClicked = false;";
};
//progressbar QTY
class rmx_cUI_txt_QTY: RscText
{
idc = 77804;
style = 0x02; //vcenter = 0x0c
text = "";
x = 0.6;
y = 0.92;
w = 0.3;
h = 0.08;
colorBackground[] = {0,0,0,0.2};
colorText[] = {1,0.6,0.01,1};
onLoad = "[(_this select 0),[0.6,0.92,0,0.08],[0.6,0.92,0.3,0.08]] call EPOCH_crafting_animate;";
};
//edit
class rmx_cUI_edit_searchField: RscEdit
{
idc = 77810;
text = ""; //--- ToDo: Localize;
x = 0.0025;
y = 0.04;
w = 0.2575;
h = 0.052;
colorBackground[] = {0,0,0,0.5};
onLoad = "[(_this select 0),[0.0025,0.04,0,0.052],[0.0025,0.04,0.2575,0.052]] call EPOCH_crafting_animate;";
};
//listboxes
class rmx_cUI_LB_recipes: RscListbox
{
idc = 77811;
x = 0;
y = 0.092;
w = 0.3;
h = 0.908;
onLoad = "[(_this select 0),[0,0.092,0.3,0],[0,0.092,0.3,0.908]] call EPOCH_crafting_animate;";
onLBSelChanged = "call EPOCH_crafting_LB_click;";
};
class rmx_cUI_LB_ingredients: RscListbox
{
idc = 77812;
x = 0.3;
y = 0.04;
w = 0.3;
h = 0.96;
onLoad = "[(_this select 0),[0.3,0.04,0.3,0],[0.3,0.04,0.3,0.96]] call EPOCH_crafting_animate;";
onLBDblClick = "call EPOCH_crafting_LB_doubleClick;";
};
//Structured Text
class rmx_cUI_st_description: RscStructuredText
{
idc = 77820;
text = "..............................."; //--- ToDo: Localize;
x = 0.6;
y = 0.524;
w = 0.4;
h = 0.392;
colorBackground[] = {0,0,0,0};
};
//Text
class rmx_cUI_txt_recipes: RscText
{
idc = 77840;
text = "Recipes"; //--- ToDo: Localize;
x = 0;
y = 0;
w = 0.3;
h = 0.04;
colorBackground[] = {0,0,0,0.8};
onLoad = "[(_this select 0),[0,0,0,0.04],[0,0,0.3,0.04]] call EPOCH_crafting_animate;";
};
class rmx_cUI_txt_ingredients: RscText
{
idc = 77841;
text = "Ingredients"; //--- ToDo: Localize;
x = 0.3;
y = 0;
w = 0.2975;
h = 0.04;
colorBackground[] = {0,0,0,0.8};
onLoad = "[(_this select 0),[0.3,0,0,0.04],[0.3,0,0.2975,0.04]] call EPOCH_crafting_animate;";
};
class rmx_cUI_txt_preview: RscText
{
idc = 77842;
text = "Preview"; //--- ToDo: Localize;
x = 0.6;
y = 0;
w = 0.3975;
h = 0.04;
colorBackground[] = {1,0.6,0.01,0.8};
onLoad = "[(_this select 0),[0.6,0,0,0.04],[0.6,0,0.3975,0.04]] call EPOCH_crafting_animate;";
};
class rmx_cUI_txt_resources: RscText
{
idc = 77843;
text = "Resources"; //--- ToDo: Localize;
x = 0.3;
y = 0.96;
w = 0.2975;
h = 0.04;
colorBackground[] = {0,0,0,0.8};
onLoad = "(_this select 0) ctrlShow false";
};
class rmx_cUI_txt_description: RscText
{
idc = 77844;
text = "Description"; //--- ToDo: Localize;
x = 0.6;
y = 0.48;
w = 0.3975;
h = 0.04;
colorBackground[] = {0,0,0,0.8};
onLoad = "[(_this select 0),[0.6,0.48,0,0.04],[0.6,0.48,0.3975,0.04]] call EPOCH_crafting_animate;";
};
//frames
class rmx_cUI_frame_recipes: RscFrame
{
idc = 77830;
x = 0;
y = 0;
w = 0.3;
h = 1;
};
class rmx_cUI_frame_craft: RscFrame
{
idc = 77831;
x = 0.3;
y = 0;
w = 0.3;
h = 1;
};
class rmx_cUI_frame_preview: RscFrame
{
idc = 77832;
x = 0.6;
y = 0;
w = 0.4;
h = 0.48;
};
class rmx_cUI_frame_resources: RscFrame
{
idc = 77833;
x = 0.3;
y = 0.92;
w = 0.3;
h = 0.08;
onLoad = "(_this select 0) ctrlShow false";
};
class rmx_cUI_frame_description: RscFrame
{
idc = 77834;
x = 0.6;
y = 0.48;
w = 0.4;
h = 0.44;
};
class rmx_cUI_frame_qty: RscFrame
{
idc = 77835;
x = 0.6;
y = 0.92;
w = 0.4;
h = 0.08;
};
};
};
class Epoch_main_config_group: RscControlsGroupNoScrollbars
{
idc = -1;
x = 0.208156 * safezoneW + safezoneX;
y = 0.511 * safezoneH + safezoneY;
w = 0.4135 * safezoneW;
h = 0.4246 * safezoneH;
class controls{};
};
class Epoch_main_config_title: RscText
{
idc = -1;
x = 0.208156 * safezoneW + safezoneX;
y = 0.4604 * safezoneH + safezoneY; //4582 0.4604
w = 0.4135 * safezoneW;
h = 0.0242 * safezoneH;
text = "Epoch Configuration";
colorBackground[] = {0.76,0.5,0.07,0.8};
colorText[] = {1,1,1,1};
shadow = 1;
};
class Epoch_main_config_combo: RscCombo
{
idc = -1;
x = 0.208156 * safezoneW + safezoneX;
y = 0.4868 * safezoneH + safezoneY;
w = 0.4135 * safezoneW;
h = 0.0242 * safezoneH;
colorSelect[] = {0.1,0.1,0.1,1};
colorText[] = {1,1,1,1.0};
colorBackground[] = {0.1,0.1,0.1,1};
colorSelectBackground[] = {0.76,0.5,0.07,1};
colorScrollbar[] = {1,0,0,1};
wholeHeight = 5 * GUI_GRID_CENTER_H;
colorActive[] = {1,0,0,1};
colorTextRight[] = {1,1,1,1};
colorSelectRight[] = {0,0,0,1};
colorSelect2Right[] = {0,0,0,1};
class ComboScrollBar: ScrollBar
{
width = 0; // width of ComboScrollBar
height = 0; // height of ComboScrollBar
scrollSpeed = 0.01; // scrollSpeed of ComboScrollBar
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; // Arrow
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; // Arrow when clicked on
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; // Slider background (stretched vertically)
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; // Dragging element (stretched vertically)
color[] = {1,1,1,1};
};
onLBSelChanged = "_this call EPOCH_InterruptConfigActions;";
};

View File

@ -0,0 +1,178 @@
class EpochGameUI
{
idd = -2;
duration = 999999;
onLoad = "uiNamespace setVariable ['EPOCH_EpochGameUI', _this select 0];";
class controls
{
class custom_picture: RscPicture
{
style = 48 + 0x800;
};
class icon1: custom_picture
{
idc = 21201;
text = "\x\addons\a3_epoch_code\Data\UI\thirst_ca.paa";
x = "10 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_X"", ((safezoneX + safezoneW) - (12.4 * ( ((safezoneW / safezoneH) min 1.2) / 40)) - 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "0 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_Y"", (safezoneY + 0.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25))])";
w = "2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class icon2: custom_picture
{
idc = 21202;
text = "\x\addons\a3_epoch_code\Data\UI\hunger_ca.paa";
x = "7.5 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_X"", ((safezoneX + safezoneW) - (12.4 * ( ((safezoneW / safezoneH) min 1.2) / 40)) - 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "0 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_Y"", (safezoneY + 0.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25))])";
w = "2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class icon3: custom_picture
{
idc = 21203;
text = "\x\addons\a3_epoch_code\Data\UI\broken_ca.paa";
x = "5 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_X"", ((safezoneX + safezoneW) - (12.4 * ( ((safezoneW / safezoneH) min 1.2) / 40)) - 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "0 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_Y"", (safezoneY + 0.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25))])";
w = "2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class icon4: custom_picture
{
idc = 21204;
text = "\x\addons\a3_epoch_code\Data\UI\oxygen_ca.paa";
x = "2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_X"", ((safezoneX + safezoneW) - (12.4 * ( ((safezoneW / safezoneH) min 1.2) / 40)) - 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "0 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_Y"", (safezoneY + 0.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25))])";
w = "2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class icon5: custom_picture
{
idc = 21205;
text = "\x\addons\a3_epoch_code\Data\UI\hazzard_ca.paa";
x = "0 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_X"", ((safezoneX + safezoneW) - (12.4 * ( ((safezoneW / safezoneH) min 1.2) / 40)) - 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "0 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_Y"", (safezoneY + 0.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25))])";
w = "2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class icon6: custom_picture
{
idc = 21206;
text = "\x\addons\a3_epoch_code\Data\UI\bleeding_ca.paa";
x = "-2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_X"", ((safezoneX + safezoneW) - (12.4 * ( ((safezoneW / safezoneH) min 1.2) / 40)) - 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "0 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (profilenamespace getvariable [""IGUI_GRID_WEAPON_Y"", (safezoneY + 0.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25))])";
w = "2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
};
};
class EpochGameUI2
{
idd = -3;
duration = 10;
onLoad = "uiNamespace setVariable ['EPOCH_EpochGameUI2', _this select 0];";
class controls
{
class custom_picture : RscPicture
{
style = 48 + 0x800;
};
class icon1 : custom_picture
{
idc = 21207;
text = "\x\addons\a3_epoch_code\Data\UI\cc_ca.paa";
x = "0 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_VEHICLE_X"", (safezoneX + 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "-2.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2)) + 18 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20))";
w = "2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class RscCryptoText : RscText
{
idc = 21208;
text = "";
colorText[] = { 1, 1, 1, 0.5 };
shadow = 0;
sizeEx = 0.08;
x = "2.1 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_VEHICLE_X"", (safezoneX + 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "-2.2 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2)) + 18 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20))";
w = "15 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
};
};
class EpochGameUI3
{
idd = -4;
duration = 10;
onLoad = "uiNamespace setVariable ['EPOCH_EpochGameUI3', _this select 0];";
class controls
{
class custom_picture : RscPicture
{
style = 48 + 0x800;
};
class icon1 : custom_picture
{
idc = 21209;
text = "\x\addons\a3_epoch_code\Data\UI\battery_ca.paa";
x = "0 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_VEHICLE_X"", (safezoneX + 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "0 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2)) + 18 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20))";
w = "2.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class RscEnergyText : RscText
{
idc = 21210;
text = "";
colorText[] = { 1, 1, 1, 0.5 };
shadow = 0;
sizeEx = 0.08;
x = "2.1 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (profilenamespace getvariable [""IGUI_GRID_VEHICLE_X"", (safezoneX + 0.5 * ( ((safezoneW / safezoneH) min 1.2) / 40))])";
y = "-0.1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2)) + 18 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20))";
w = "15 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
h = "2.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
};
};
class rmx_progressTest
{
idd = 10200;
duration = 999999;
fadein = 0.5;
fadeout = 0.5;
onLoad = "uiNamespace setVariable ['rmx_var_progressTestDisplay',_this select 0]";
class controls {};
};
class rmx_CraftingProgress
{
idd = 10100;
duration = 999999;
fadein = 0.2;
fadeout = 0.2;
onLoad = "uiNamespace setVariable ['rmx_var_CraftingProgressDisplay',_this select 0]";
class controls {};
};
class Default //use to delete title resources
{
idd = -1;
fadein = 0;
fadeout = 0;
duration = 0;
};

View File

@ -0,0 +1,20 @@
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1250">
<meta name="GENERATOR" content="ofp">
<title>PageTitle</title>
</head>
<body>
<br>
<p align="center"><img src="\x\addons\a3_epoch_code\Data\EpochLogo.paa"" width="256" height="64"></p>
<br>
<p>Seems like Arma has very limited HTML features, no colors except for link, active link and bold text. Headings can have different fonts, see Epoch_GUI_ClientConfigs.hpp file for more info on this. </p>
<br>
<p>Depending on size of HTML, you might need to increase height of control to enable scrolling. You can do that in inside Epoch_main_config_html in before mentioned file. Height is calculated in percentages (42% = 0.42 * safezoneH) </p>
<br>
<p>TIP: Use filepatching to edit it live, file is reloaded when ESC is pressed</p>
</body>
</html>

View File

@ -0,0 +1,56 @@
disableSerialization;
_display = param [0,displayNull];
if (isNull _display) exitWith {false};
private ["_offset","_cfg","_configs","_idc","_getIDC","_mainCTRLS"];
_offset = if (isServer) then { 0.496012 * safezoneW + safezoneX } else {
if (getNumber (missionConfigFile >> "enableDebugConsole") > 0) then {
0.496012 * safezoneW + safezoneX
} else {
0.208156 * safezoneW + safezoneX
};
};
_cfg = 'CfgEpochConfiguration' call EPOCH_returnConfig;
_configs = "true" configClasses _cfg;
_idc = -70000;
_getIDC = {_idc = _idc - 1; _idc};
Epoch_interrupt_controls = [];
if (isNil "Epoch_interrupt_index") then {Epoch_interrupt_index = 0};
{
_ctrl = _display ctrlCreate [_x,call _getIDC];
_ctrlPos = ctrlPosition _ctrl;
_ctrlPos set [0,_offset];
_ctrl ctrlSetPosition _ctrlPos;
_ctrl ctrlCommit 0;
Epoch_interrupt_controls set [_forEachIndex, _ctrl];
} forEach ["Epoch_main_config_combo","Epoch_main_config_group","Epoch_main_config_title"];
_lb = Epoch_interrupt_controls select 0;
_groupIDC = call _getIDC;
{
_name = getText (_x >> "name");
_color = getArray (_x >> "color");
_icon = getText (_x >> "icon");
_group = getText (_x >> "controlGroup"); //convert to actual hidden control
_idx = _lb lbAdd _name;
_lb lbSetColor [_idx, _color];
_lb lbSetPicture [_idx, _icon];
_lb lbSetData [_idx, _group];
_lb lbSetValue [_idx, _groupIDC];
} forEach _configs;
//display does not exist yet for whatever reason
[_lb] spawn {
waitUntil {!isNull findDisplay 49};
(_this select 0) lbSetCurSel Epoch_interrupt_index;
};
true

View File

@ -0,0 +1,34 @@
disableSerialization;
private ["_mainGrp","_display","_data","_value","_ctrl","_idx","_mainGrpPos","_group","_width","_pos"];
params ["_ctrl","_idx"];
_mainGrp = Epoch_interrupt_controls select 1;
_display = ctrlParent _mainGrp;
_data = _ctrl lbData _idx;
_value = _ctrl lbValue _idx;
Epoch_interrupt_index = _idx;
_mainGrpPos = ctrlPosition _mainGrp;
//_mainGrpPos set [0,Epoch_interrupt_offset]; //convert to global if having problems with x pos
ctrlDelete _mainGrp;
_mainGrp = _display ctrlCreate ["Epoch_main_config_group",_value];
_mainGrp ctrlSetPosition _mainGrpPos;
_mainGrp ctrlCommit 0;
_group = _display ctrlCreate [_data, _value + 1, _mainGrp];
_width = (ctrlPosition _group) select 2;
Epoch_interrupt_controls set [1, _mainGrp];
{
_pos = ctrlPosition _x;
_pos set [2,_width];
_x ctrlSetPosition _pos;
_x ctrlCommit 0;
} forEach Epoch_interrupt_controls;
ctrlSetFocus _mainGrp;
true

View File

@ -0,0 +1,108 @@
private ["_ctrl","_input","_display"];
params ["_ctrl","_input"];
_display = if (typeName _ctrl isEqualTo "CONTROL") then {ctrlParent _ctrl} else {displayNull};
_input = if (typeName _ctrl isEqualTo "STRING") then {_ctrl} else {str _ctrl};
switch (_input) do {
default {diag_log format ["[Epoch_config_keymap] Wrong params: %1",_this]};
case "load":
{
private ["_ctrl","_arr","_idx"];
_ctrl = (findDisplay 49) displayCtrl 78008;
_arr = 2 call EPOCH_clientKeyMap;
{
_idx = _ctrl lbAdd (_x select 0);
_ctrl lbSetTooltip [_idx, _x select 0];
_ctrl lbSetData [_idx, _x select 1];
} forEach _arr;
_ctrl lbSetCurSel 0;
};
case "Control #78008": //lb
{
private ["_ctrlDefault","_ctrlCurrent","_ctrlEdit","_arr","_var","_default","_txtDefault","_txtCurrent"];
params ["_lb","_idx"];
_ctrlDefault = _display displayCtrl 78006;
_ctrlCurrent = _display displayCtrl 78007;
_ctrlEdit = _display displayCtrl 78009;
_ctrlEdit ctrlSetText "";
_arr = 2 call EPOCH_clientKeyMap;
_var = _arr select _idx select 1;
_default = _arr select _idx select 2;
_txtDefault = _default call BIS_fnc_keyCode;
_ctrlDefault ctrlSetText format ["Default: [%1]",_txtDefault];
_txtCurrent = (missionNamespace getVariable _var) call BIS_fnc_keyCode;
_ctrlCurrent ctrlSetText format ["Current: [%1]",_txtCurrent];
};
case "Control #78009": //edit
{
private ["_edit","_key","_shift","_ctrl","_alt","_txt"];
params ["_edit","_key","_shift","_ctrl","_alt"];
if !(_shift || _ctrl || _alt) then { //blacklisted modifiers
if !(_key in [29,42,54,56,157,184,219]) then { //blacklisted keys
_txt = _key call BIS_fnc_keyCode;
_edit ctrlSetText _txt;
};
} else {
_edit ctrlSetText "";
};
};
case "Control #78010": //save
{
private ["_ctrlEdit","_lb","_new","_idx","_data"];
_ctrlEdit = _display displayCtrl 78009;
_lb = _display displayCtrl 78008;
_new = ctrlText _ctrlEdit;
_idx = lbCurSel _lb;
_data = _lb lbData _idx;
if !(_new isEqualTo "") then {
missionNamespace setVariable [_data, _new call BIS_fnc_keyCode];
profileNamespace setVariable [_data, _new call BIS_fnc_keyCode];
_lb lbSetCurSel _idx;
} else {
_ctrlEdit ctrlSetText "Empty field";
};
};
case "Control #78011": //reset
{
private ["_ctrlEdit","_lb","_idx","_data","_arr","_old"];
_ctrlEdit = _display displayCtrl 78009;
_lb = _display displayCtrl 78008;
_idx = lbCurSel _lb;
_data = _lb lbData _idx;
_arr = 2 call EPOCH_clientKeyMap;
_old = _arr select _idx select 2;
missionNamespace setVariable [_data, _old];
profileNamespace setVariable [_data, _old];
_lb lbSetCurSel _idx;
};
case "Control #78012": //reset all
{
private ["_lb","_idx"];
1 call EPOCH_clientKeyMap;
0 call EPOCH_clientKeyMap;
_lb = _display displayCtrl 78008;
_idx = lbCurSel _lb;
_lb lbSetCurSel _idx;
};
};
true

View File

@ -49,22 +49,7 @@ if(EPOCH_AirDropChance < 0)then{EPOCH_AirDropChance = 101;EPOCH_AirDropCheck = 9
EPOCH_droneRndChance = 100;
// Custom Keys
EPOCH_keysBuildMode1 = profileNamespace getVariable["EPOCH_BuildMode1", 2]; // 2 = 1
EPOCH_keysBuildMode2 = profileNamespace getVariable["EPOCH_BuildMode2", 3]; // 3 = 2
EPOCH_keysBuildDir = profileNamespace getVariable["EPOCH_BuildDir", 4]; // 4 = 3
EPOCH_keysBuildStatic = profileNamespace getVariable["EPOCH_BuildStatic", 5]; // 5 = 4
EPOCH_keysHolster = profileNamespace getVariable["EPOCH_Holster", 35]; // 35 = H
EPOCH_keysDebugMon = profileNamespace getVariable["EPOCH_DebugMon", 41]; // 41 = ~
EPOCH_keysBuildMovUp = profileNamespace getVariable["EPOCH_BuildMovUp", 0xC9]; // PgUp
EPOCH_keysBuildMovDn = profileNamespace getVariable["EPOCH_BuildMovDn", 0xD1]; // PgDown
EPOCH_keysBuildMovFwd = profileNamespace getVariable["EPOCH_BuildMovFwd", 0xC7]; // Home
EPOCH_keysBuildMovBak = profileNamespace getVariable["EPOCH_BuildMovBak", 0xCF]; // End
EPOCH_keysBuildMovL = profileNamespace getVariable["EPOCH_BuildMovL", 0xD2]; // Left
EPOCH_keysBuildMovR = profileNamespace getVariable["EPOCH_BuildMovR", 0xD3]; // Right
EPOCH_keysBuildRotL = profileNamespace getVariable["EPOCH_BuildRotL", 0x12]; // E
EPOCH_keysBuildRotR = profileNamespace getVariable["EPOCH_BuildRotR", 0x10]; // Q
EPOCH_keysBuildIt = profileNamespace getVariable["EPOCH_BuildIt", 0x39]; // Space
EPOCH_keysAcceptTrade = profileNamespace getVariable["EPOCH_AcceptTrade", 0x14]; // T
0 call EPOCH_clientKeyMap;
//ON INIT and RESPAWN
call EPOCH_clientInit;

View File

@ -0,0 +1,18 @@
class CfgEpochConfiguration
{
/** class order here decides order of buttons on gui **/
class html
{
name = "Changelog";
color[] = {1,1,1,1};
icon = "\x\addons\a3_epoch_code\Data\owner.paa";
controlGroup = "Epoch_main_config_changelog";
};
class remap
{
name = "Controls";
color[] = {1,1,1,1};
icon = "\x\addons\a3_epoch_code\Data\owner.paa";
controlGroup = "EpochConfigKeyMap";
};
};

View File

@ -45,6 +45,7 @@ class CfgAddons
//gitmerge fix
#include "\x\addons\a3_epoch_config\Configs\CfgDynamicMenu.hpp"
#include "\x\addons\a3_epoch_config\Configs\CfgEpochConfiguration.hpp"
class DefaultEventhandlers;
class WeaponFireGun;

View File

@ -48,7 +48,7 @@ if (typeOf _object == "PlotPole_EPOCH") then {
_object call EPOCH_fnc_saveBuilding;
};
};
if (_counter >= _maintCount) exitWith{};
if (_counter > _maintCount) exitWith{};
} forEach nearestObjects[_object, ["Constructions_static_F","Constructions_foundation_F"], _buildingJammerRange];
// effect crypto