diff --git a/Changelogs/0.3.7.0.txt b/Changelogs/0.3.7.0.txt
index 0eb04744..5e4c9410 100644
--- a/Changelogs/0.3.7.0.txt
+++ b/Changelogs/0.3.7.0.txt
@@ -1,8 +1,12 @@
+**Client**
+[Changed] Change all publicVariableServer calls to use remoteExec calls for better performance.
[Fixed] Custom epoch swing animations for Hatchet and sledge now work correctly.
-WIP
-[Added] Hotwire Kit
-[Added] Key Makers Kit
-[Added] Keys in colors: (Black,Red,Green,Blue,Yellow)
-[Added] 55 Gallon Fuel Barrel (Full/Empty)
-[Added] Metal Pipes
-[Added] Documents (Trash,Vehicle Upgrades)
+[WIP] Hotwire Kit
+[WIP] Key Makers Kit
+[WIP] Keys in colors: (Black,Red,Green,Blue,Yellow)
+[WIP] 55 Gallon Fuel Barrel (Full/Empty)
+[WIP] Metal Pipes
+[WIP] Documents (Trash,Vehicle Upgrades)
+**Server**
+[Updated] New Battleye remoteExec.txt for added remoteExec calls.
+[Info] Removed old .bikey and added new one for 0370.
diff --git a/Server_Install_Pack/sc/battleye/remoteexec.txt b/Server_Install_Pack/sc/battleye/remoteexec.txt
index 131be11c..3121fdca 100644
--- a/Server_Install_Pack/sc/battleye/remoteexec.txt
+++ b/Server_Install_Pack/sc/battleye/remoteexec.txt
@@ -1 +1 @@
-5 "" !="epoch_server_save_vehicles \[.+\]"
+5 "" !="epoch_server_checkplayer [A-Z]{1} [A-Za-z]{4,10} [0-9]{1,3}-[0-9]{1,3}:[0-9]{1,3} \(.+\) REMOTE" !="epoch_server_(save(_vehicles|building)|(lock|pack)Storage|(upgrade|remove|paint|maint)build) \[.+\]" !="epoch_server_((load|respawn|dead|invite|revive|teleport)Player|(upgrade|updateplayer|create|delete)Group) \[.+\]" !="epoch_server_(knockDownTree|mineRocks|lootAnimal|handle_(say3d|switchmove|sapperObjs)) \[.+\]" !="epoch_server_((repair|fill|lock)Vehicle|(loot|fill)Container|(store|take)Crypto|make(NPC|)Trade) \[.+\]" !="epoch_server_(tradeRequest|equippeditem|packJack|localCleanup|createAirDrop|airDropCrate) \[.+\]"
diff --git a/Sources/epoch_code/System/gender_selection.fsm b/Sources/epoch_code/System/gender_selection.fsm
index a043f63c..bcdb8571 100644
--- a/Sources/epoch_code/System/gender_selection.fsm
+++ b/Sources/epoch_code/System/gender_selection.fsm
@@ -1,4 +1,4 @@
-/*%FSM*/
+/*%FSM*/
/*%FSM*/
/*
item0[] = {"INIT",0,250,-250.000000,-150.000000,-150.000000,-100.000000,0.000000,"INIT"};
@@ -12,12 +12,12 @@ item7[] = {"Process",2,250,-400.000000,75.000000,-300.000000,125.000000,0.000000
item8[] = {"same_gender",4,218,-250.000000,75.000000,-150.000000,125.000000,10.000000,"same" \n "gender"};
item9[] = {"other_gender",4,218,-400.000000,150.000000,-300.000000,200.000000,0.000000,"other" \n "gender"};
item10[] = {"Send_To_Server",3,250,-125.000000,75.000000,-25.000000,125.000000,0.000000,"Send To Server"};
-item11[] = {"TODO__ADD_TIMEOUT",4,4314,-275.000000,250.000000,-175.000000,300.000000,0.000000,"TODO:" \n "ADD TIMEOUT" \n "AND LOBBY KICK"};
+item11[] = {"TODO__ADD_TIMEOUT",4,218,-275.000000,250.000000,-175.000000,300.000000,0.000000,"TODO:" \n "ADD TIMEOUT" \n "AND LOBBY KICK"};
item12[] = {"END",1,250,0.000000,450.000000,100.000000,500.000000,0.000000,"END"};
item13[] = {"Send_new_selection",2,250,-400.000000,250.000000,-300.000000,300.000000,0.000000,"Send new" \n "selection to" \n "server"};
item14[] = {"Select_Model",2,250,-400.000000,350.000000,-300.000000,400.000000,0.000000,"Select Model"};
item15[] = {"new_model____pla",4,218,-525.000000,400.000000,-425.000000,450.000000,0.000000,"new model" \n "==" \n "player"};
-item16[] = {"Setup_EH",2,250,-400.000000,450.000000,-300.000000,500.000000,0.000000,"Setup EH"};
+item16[] = {"Setup_EH",2,4346,-400.000000,450.000000,-300.000000,500.000000,0.000000,"Setup EH"};
item17[] = {"true",8,218,-125.000000,450.000000,-25.000000,500.000000,0.000000,"true"};
item18[] = {"____FAKE____",9,720,0.000000,0.000000,0.000000,0.000000,0.000000,"____FAKE____"};
link0[] = {0,2};
@@ -41,8 +41,8 @@ link17[] = {15,16};
link18[] = {16,17};
link19[] = {17,12};
link20[] = {11,18};
-globals[] = {25.000000,1,0,0,0,640,480,1,250,6316128,1,-786.968628,194.189285,571.765747,-266.728790,1066,911,1};
-window[] = {2,-1,-1,-1,-1,753,25,1063,25,3,1084};
+globals[] = {25.000000,1,0,0,0,640,480,1,250,6316128,1,-825.287720,232.508224,685.682007,60.530540,687,630,1};
+window[] = {2,-1,-1,-1,-1,884,156,1194,156,3,705};
*//*%FSM*/
class FSM
{
@@ -157,7 +157,7 @@ class FSM
{
name = "Send_To_Server";
init = /*%FSM*/"[player, Epoch_personalToken] remoteExec [""EPOCH_server_respawnPlayer"",2];" \n
- "";"/*%FSM*/;
+ """;"/*%FSM*/;
precondition = /*%FSM*/""/*%FSM*/;
class Links
{
@@ -246,13 +246,9 @@ class FSM
class Setup_EH
{
name = "Setup_EH";
- init = /*%FSM*/"player addEventHandler [""Respawn"", {(_this select 0) call EPOCH_clientRespawn}];" \n
- "player addEventHandler [""Put"", {(_this select 1) call EPOCH_interact;_this call EPOCH_PutHandler}];" \n
- "player addEventHandler [""Take"", {(_this select 1) call EPOCH_interact;_this call EPOCH_UnisexCheck}];" \n
- "player addEventHandler [""InventoryClosed"", {if !(EPOCH_arr_interactedObjs isEqualTo[]) then {EPOCH_arr_interactedObjs remoteExec[""EPOCH_server_save_vehicles"", 2]; EPOCH_arr_interactedObjs = [];};}];" \n
- "player addEventHandler [""InventoryOpened"", {_this spawn EPOCH_initUI; (locked (_this select 1) in [2, 3] || (_this select 1) getVariable[""EPOCH_Locked"", false])}];" \n
- "player addEventHandler [""Fired"", {_this call EPOCH_fnc_playerFired}];" \n
- "player addEventHandler [""Killed"", {_this call EPOCH_fnc_playerDeath}];"/*%FSM*/;
+ init = /*%FSM*/"{" \n
+ " player addEventHandler [_x,([""CfgEpochClient"", _x, """"] call EPOCH_fnc_returnConfigEntryV2)];" \n
+ "} forEach ([""CfgEpochClient"", ""addEventHandler"", []] call EPOCH_fnc_returnConfigEntryV2);"/*%FSM*/;
precondition = /*%FSM*/""/*%FSM*/;
class Links
{
@@ -284,7 +280,7 @@ class FSM
initState="INIT";
finalStates[] =
{
- "END"
+ "END",
};
};
-/*%FSM*/
+/*%FSM*/
\ No newline at end of file
diff --git a/Sources/epoch_code/System/player_login.fsm b/Sources/epoch_code/System/player_login.fsm
index ccf94652..e43e7690 100644
--- a/Sources/epoch_code/System/player_login.fsm
+++ b/Sources/epoch_code/System/player_login.fsm
@@ -1,4 +1,4 @@
-/*%FSM*/
+/*%FSM*/
/*%FSM*/
/*
item0[] = {"INIT",0,250,-25.000000,-375.000000,75.000000,-325.000000,0.000000,"INIT"};
@@ -190,1294 +190,1204 @@ link97[] = {85,79};
link98[] = {86,16};
link99[] = {86,22};
link100[] = {87,31};
-globals[] = {0.000000,0,0,0,0,640,480,1,244,6316128,1,-494.255402,984.732300,1761.360352,737.509033,585,832,1};
-window[] = {0,-1,-1,-1,-1,1079,713,2114,75,1,603};
+globals[] = {0.000000,0,0,0,0,640,480,1,244,6316128,1,-35.555386,526.032166,1670.387451,1066.632935,586,630,1};
+window[] = {2,-1,-1,-1,-1,994,182,1474,182,3,604};
*//*%FSM*/
class FSM
{
- fsmName = "Epoch Login";
- class States
+ fsmName = "Epoch Login";
+ class States
+ {
+ /*%FSM*/
+ class INIT
+ {
+ name = "INIT";
+ init = /*%FSM*/"titleCut ["""", ""BLACK FADED"", 1337];" \n
+ "0 fadeSound 0;" \n
+ "player enableSimulation false;" \n
+ "" \n
+ "_debug = true;" \n
+ "_myTime = diag_tickTime;" \n
+ "if (_debug) then {" \n
+ " diag_log ""EPOCH-LOGIN: Init"";" \n
+ "};" \n
+ ""/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class true
{
- /*%FSM*/
- class INIT
- {
- name = "INIT";
- itemno = 0;
- init = /*%FSM*/"titleCut ["""", ""BLACK FADED"", 1337];" \n
- "0 fadeSound 0;" \n
- "player enableSimulation false;" \n
- "" \n
- "_debug = true;" \n
- "_myTime = diag_tickTime;" \n
- "if (_debug) then {" \n
- " diag_log ""EPOCH-LOGIN: Init"";" \n
- "};" \n
- ""/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class true
- {
- itemno = 62;
- priority = 0.000000;
- to="Process_1";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"true"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class FINISH
- {
- name = "FINISH";
- itemno = 1;
- init = /*%FSM*/"[] spawn {" \n
- " waitUntil{!isNull (findDisplay 46)};" \n
- " (findDisplay 46) displayAddEventHandler [""KeyDown"",""_this call EPOCH_KeyDown""];" \n
- " (findDisplay 46) displayAddEventHandler [""KeyUp"",""_this call EPOCH_KeyUp""];" \n
- "};" \n
- "" \n
- "3 fadeSound 1;" \n
- "" \n
- "if (_debug) then {" \n
- " diag_log ""EPOCH-LOGIN: Finish!"";" \n
- "};" \n
- "" \n
- "" \n
- "player enableSimulation true;" \n
- "" \n
- "titleCut ["""", ""BLACK IN"", 1];" \n
- "1338 cutText ["""",""PLAIN"",0]; " \n
- "" \n
- "progressLoadingScreen 1.0;" \n
- "" \n
- "endLoadingScreen;" \n
- "EPOCH_loadingScreenDone = true;" \n
- "" \n
- "player switchMove """";"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Version_Check
- {
- name = "Version_Check";
- itemno = 3;
- init = /*%FSM*/"if (_debug) then {" \n
- " diag_log ""EPOCH-LOGIN: Version Check"";" \n
- "};" \n
- "" \n
- "// SHOULD BE:" \n
- "_epoch_assets0 = getText(configFile >> ""Epoch"" >> ""Version"" >> ""A3_epoch_assets"");" \n
- "_epoch_assets1 = getText(configFile >> ""Epoch"" >> ""Version"" >> ""A3_epoch_assets_1"");" \n
- "_epoch_assets2 = getText(configFile >> ""Epoch"" >> ""Version"" >> ""epoch_objects"");" \n
- "_epoch_assets3 = getText(configFile >> ""Epoch"" >> ""Version"" >> ""A3_epoch_assets_3"");" \n
- "_epoch_config = getText(configFile >> ""Epoch"" >> ""Version"" >> ""A3_epoch_config"");" \n
- "_epoch_language = getText(configFile >> ""Epoch"" >> ""Version"" >> ""A3_epoch_language"");" \n
- "_epoch_underground = getText(configFile >> ""Epoch"" >> ""Version"" >> ""Underground_Epoch"");" \n
- "_epoch_vehicles = getText(configFile >> ""Epoch"" >> ""Version"" >> ""A3_epoch_vehicles"");" \n
- "_epoch_weapons = getText(configFile >> ""Epoch"" >> ""Version"" >> ""a3_epoch_weapons"");" \n
- "" \n
- "" \n
- "// IS:" \n
- "_my_epoch_assets0 = getText(configFile >> ""CfgPatches"" >> ""A3_epoch_assets"" >> ""epochVersion"");" \n
- "_my_epoch_assets1 = getText(configFile >> ""CfgPatches"" >> ""A3_epoch_assets_1"" >> ""epochVersion"");" \n
- "_my_epoch_assets2 = getText(configFile >> ""CfgPatches"" >> ""epoch_objects"" >> ""epochVersion"");" \n
- "_my_epoch_assets3 = getText(configFile >> ""CfgPatches"" >> ""A3_epoch_assets_3"" >> ""epochVersion"");" \n
- "_my_epoch_config = getText(configFile >> ""CfgPatches"" >> ""A3_epoch_config"" >> ""epochVersion"");" \n
- "_my_epoch_language = getText(configFile >> ""CfgPatches"" >> ""A3_epoch_language"" >> ""epochVersion"");" \n
- "_my_epoch_underground = getText(configFile >> ""CfgPatches"" >> ""Underground_Epoch"" >> ""epochVersion"");" \n
- "_my_epoch_vehicles = getText(configFile >> ""CfgPatches"" >> ""A3_epoch_vehicles"" >> ""epochVersion"");" \n
- "_my_epoch_weapons = getText(configFile >> ""CfgPatches"" >> ""a3_epoch_weapons"" >> ""epochVersion"");" \n
- "" \n
- "progressLoadingScreen 0.1;" \n
- ""/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Wrong_Version
- {
- itemno = 7;
- priority = 10.000000;
- to="ERROR_Wrong_Version";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"_epoch_assets0 != _epoch_assets0 ||" \n
- "_my_epoch_assets1 != _epoch_assets1 ||" \n
- "_my_epoch_assets2 != _epoch_assets2 ||" \n
- "_my_epoch_assets3 != _epoch_assets3 ||" \n
- "_my_epoch_config != _epoch_config ||" \n
- "_my_epoch_language != _epoch_language ||" \n
- "_my_epoch_underground != _epoch_underground ||" \n
- "_my_epoch_vehicles != _epoch_vehicles ||" \n
- "_my_epoch_weapons != _epoch_weapons"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class true
- {
- itemno = 44;
- priority = 0.000000;
- to="Arma_Version_Che";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/""/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Check_Player_UID
- {
- name = "Check_Player_UID";
- itemno = 5;
- init = /*%FSM*/"if (_debug) then {" \n
- " diag_log ""EPOCH-LOGIN: Check PlayerUID"";" \n
- "};" \n
- "" \n
- "_playerUID = getPlayerUID player;" \n
- "" \n
- "progressLoadingScreen 0.2;"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class PlayerUID_Okay
- {
- itemno = 6;
- priority = 10.000000;
- to="Check_Server_1";
- precondition = /*%FSM*/"!isNil ""_playerUID"""/*%FSM*/;
- condition=/*%FSM*/"_playerUID != """""/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class Empty_PlayerUID
- {
- itemno = 12;
- priority = 0.000000;
- to="ERROR_PlayerUID";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"true"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class ERROR_Wrong_Version
- {
- name = "ERROR_Wrong_Version";
- itemno = 9;
- init = /*%FSM*/"_msg = ""You have an outdated version of Epoch"";" \n
- "_msg call Epoch_updateLoadingScreen;" \n
- "diag_log _msg;" \n
- "" \n
- "_rejectPlayer = {" \n
- " PLAYER_REJECT_EPOCHVERSION = true;" \n
- " publicVariableServer ""PLAYER_REJECT_EPOCHVERSION"";" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class true
- {
- itemno = 32;
- priority = 0.000000;
- to="Display_Message";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"true"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Disconnect
- {
- name = "Disconnect";
- itemno = 10;
- init = /*%FSM*/"endLoadingScreen;" \n
- "1338 cutText [_msg,""PLAIN"",0]; " \n
- "deleteVehicle player;" \n
- "call _rejectPlayer;" \n
- "diag_log format [""(%1) %2"",diag_tickTime,_msg];" \n
- "_myTime = diag_tickTime;"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Check_if_Player
- {
- itemno = 28;
- priority = 0.000000;
- to="Reject_without_B";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"(diag_tickTime - _myTime) > 2"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class ERROR_PlayerUID
- {
- name = "ERROR_PlayerUID";
- itemno = 13;
- init = /*%FSM*/"_msg = ""Can not setup Player Object! (Error 01)"";" \n
- "_msg call Epoch_updateLoadingScreen;" \n
- "diag_log _msg;" \n
- "" \n
- "_rejectPlayer = {" \n
- " PLAYER_REJECT_UID = true;" \n
- " publicVariableServer ""PLAYER_REJECT_UID"";" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class true
- {
- itemno = 32;
- priority = 0.000000;
- to="Display_Message";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"true"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Setup_Player_Var
- {
- name = "Setup_Player_Var";
- itemno = 17;
- init = /*%FSM*/"diag_log format[""DEBUG TIME WAITED: %1"", (diag_tickTime - _myTime)];" \n
- "{" \n
- " missionNamespace setVariable[(format[""EPOCH_player%1"", EPOCH_customVars select _forEachIndex]), _x];" \n
- "} forEach _playerVariables;" \n
- "" \n
- """Loading Player Variables... Please wait!"" call Epoch_updateLoadingScreen;" \n
- "" \n
- "EPOCH_lastPlayerPos = getPosATL vehicle player;" \n
- "" \n
- "progressLoadingScreen 0.7;" \n
- "" \n
- "if (_debug) then {" \n
- " diag_log ""EPOCH-LOGIN: Setup Player Variables"";" \n
- "};" \n
- ""/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class true
- {
- itemno = 24;
- priority = 0.000000;
- to="Setup_EH_s_and_H";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"true"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Request_Hive
- {
- name = "Request_Hive";
- itemno = 18;
- init = /*%FSM*/"_myTime = diag_tickTime;" \n
- "" \n
- "Epoch_my_Group = [];" \n
- "" \n
- "player remoteExec [""EPOCH_server_checkPlayer"",2];" \n
- "" \n
- "" \n
- """Loading Player Data... Please wait!"" call Epoch_updateLoadingScreen;" \n
- "progressLoadingScreen 0.5;" \n
- ""/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Hive_Response
- {
- itemno = 78;
- priority = 0.000000;
- to="Process_2";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"!isNil ""EPOCH_checkPlayer_PVC"""/*%FSM*/;
- action=/*%FSM*/"_newChar = EPOCH_checkPlayer_PVC;" \n
- "EPOCH_checkPlayer_PVC = nil;"/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class Timeout_No_Respo
- {
- itemno = 19;
- priority = 0.000000;
- to="ERROR_Server_not_3";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"(diag_tickTime - _myTime) > 120"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class ERROR_Server_not
- {
- name = "ERROR_Server_not";
- itemno = 20;
- init = /*%FSM*/"_msg = ""Authentication Failed, Disconnect and try again"";" \n
- "_msg call Epoch_updateLoadingScreen;" \n
- "diag_log _msg;" \n
- "" \n
- "_rejectPlayer = {" \n
- " PLAYER_REJECT_NoResponse2 = true;" \n
- " publicVariableServer ""PLAYER_REJECT_NoResponse2"";" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class true
- {
- itemno = 32;
- priority = 0.000000;
- to="Display_Message";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"true"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class ERROR_Wrong_Server
- {
- name = "ERROR_Wrong_Server";
- itemno = 25;
- init = /*%FSM*/"_msg = format[""Server and Client running with different Version! (You: %1 // Server: %2)"",getText(configFile >> ""CfgMods"" >> ""Epoch"" >> ""version""),_serverVersion];" \n
- "_msg call Epoch_updateLoadingScreen;" \n
- "diag_log _msg;" \n
- "" \n
- "_rejectPlayer = {" \n
- " PLAYER_REJECT_ServerVersion = true;" \n
- " publicVariableServer ""PLAYER_REJECT_ServerVersion"";" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class true
- {
- itemno = 32;
- priority = 0.000000;
- to="Display_Message";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"true"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Setup_Player_Obj
- {
- name = "Setup_Player_Obj";
- itemno = 27;
- init = /*%FSM*/"_ply = player;" \n
- "_group = group player;" \n
- "selectPlayer _playerObject;" \n
- "" \n
- "deleteVehicle _ply;" \n
- "deleteGroup _group;" \n
- "" \n
- """Loading Player Body... Please wait!"" call Epoch_updateLoadingScreen;" \n
- "progressLoadingScreen 0.8;" \n
- "" \n
- "if (_debug) then {" \n
- " diag_log ""EPOCH-LOGIN: Setup Player Object"";" \n
- "};" \n
- "" \n
- "_myTime = diag_tickTime;"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Timeout_
- {
- itemno = 69;
- priority = 0.000000;
- to="ERROR_Player_Setup";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"(diag_tickTime - _myTime) > 60"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class new_player_____p
- {
- itemno = 49;
- priority = 0.000000;
- to="Setup_Player_Var";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"_playerObject == player"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Display_Message
- {
- name = "Display_Message";
- itemno = 33;
- init = /*%FSM*/"[] spawn {" \n
- " waitUntil{!isNull (findDisplay 46)};" \n
- " (findDisplay 46) displayAddEventHandler [""KeyDown"",""true""];" \n
- " (findDisplay 46) displayAddEventHandler [""KeyUp"",""true""];" \n
- "};" \n
- "diag_log format [""(%1) %2"",diag_tickTime,_msg];" \n
- "_myTime = diag_tickTime;" \n
- ""/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Display_Message
- {
- itemno = 26;
- priority = 0.000000;
- to="Disconnect";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"(diag_tickTime - _myTime) > 10"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Check_Server
- {
- name = "Check_Server";
- itemno = 35;
- init = /*%FSM*/"_myTime = diag_tickTime;" \n
- "if (_debug) then {" \n
- " diag_log ""EPOCH-LOGIN: Check Server"";" \n
- "};" \n
- """Checking Server... Please wait!"" call Epoch_updateLoadingScreen;" \n
- "progressLoadingScreen 0.4;"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Server_not_worki
- {
- itemno = 36;
- priority = 10.000000;
- to="ERROR_Server_not_1";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"!isNil ""EPOCH_BADHIVE""" \n
- ""/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class Server_Okay
- {
- itemno = 11;
- priority = 0.000000;
- to="Server_Version_C";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"!isNil ""Epoch_ServerVersion"""/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class ERROR_Server_not_1
- {
- name = "ERROR_Server_not_1";
- itemno = 37;
- init = /*%FSM*/"_msg = ""Server not Ready (Error 03)"";" \n
- "_msg call Epoch_updateLoadingScreen;" \n
- "diag_log _msg;" \n
- "" \n
- "_rejectPlayer = {" \n
- " PLAYER_REJECT_NotReady2 = true;" \n
- " publicVariableServer ""PLAYER_REJECT_NotReady2"";" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class true
- {
- itemno = 32;
- priority = 0.000000;
- to="Display_Message";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"true"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Check_Server_1
- {
- name = "Check_Server_1";
- itemno = 39;
- init = /*%FSM*/"progressLoadingScreen 0.3;"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Timeout_No_Respo
- {
- itemno = 40;
- priority = 0.000000;
- to="ERROR_Server_not_2";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"(diag_tickTime - _myTime) > 180"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class freshServer
- {
- itemno = 66;
- priority = 0.000000;
- to="Update_Loadingscreen";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"uiNamespace getVariable ['Epoch_freshServer', false]"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class Server_Ready
- {
- itemno = 34;
- priority = 0.000000;
- to="Check_Server";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"!isNil ""EPOCH_SERVER"""/*%FSM*/;
- action=/*%FSM*/"_serverUptime = EPOCH_SERVER;" \n
- "EPOCH_SERVER = nil;"/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class ERROR_Server_not_2
- {
- name = "ERROR_Server_not_2";
- itemno = 41;
- init = /*%FSM*/"_msg = ""Server not Ready (Error 02)"";" \n
- "_msg call Epoch_updateLoadingScreen;" \n
- "diag_log _msg;" \n
- "" \n
- "_rejectPlayer = {" \n
- " PLAYER_REJECT_NotReady1 = true;" \n
- " publicVariableServer ""PLAYER_REJECT_NotReady1"";" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class true
- {
- itemno = 32;
- priority = 0.000000;
- to="Display_Message";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"true"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Reject_without_B
- {
- name = "Reject_without_B";
- itemno = 43;
- init = /*%FSM*/"[] spawn {" \n
- " waitUntil{!isNull (findDisplay 46)};" \n
- " waitUntil {" \n
- " (findDisplay 46) closeDisplay 0;" \n
- " isNull (findDisplay 46)" \n
- " };" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Arma_Version_Che
- {
- name = "Arma_Version_Che";
- itemno = 45;
- init = /*%FSM*/"progressLoadingScreen 0.15;" \n
- ""/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Outdated_Version
- {
- itemno = 46;
- priority = 10.000000;
- to="ERROR_Wrong_Version_1";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"productVersion select 2 < getNumber(configFile >> ""CfgMods"" >> ""Epoch"" >> ""ArmAVersion"")"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class Player_Object_Re
- {
- itemno = 4;
- priority = 0.000000;
- to="Check_Player_UID";
- precondition = /*%FSM*/"!isNull player"/*%FSM*/;
- condition=/*%FSM*/"player == player"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class ERROR_Wrong_Version_1
- {
- name = "ERROR_Wrong_Version_1";
- itemno = 47;
- init = /*%FSM*/"_msg = ""You have an outdated version of ArmA 3"";" \n
- "_msg call Epoch_updateLoadingScreen;" \n
- "diag_log _msg;" \n
- "" \n
- "_rejectPlayer = {" \n
- " PLAYER_REJECT_ARMAVERSION = true;" \n
- " publicVariableServer ""PLAYER_REJECT_ARMAVERSION"";" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class true
- {
- itemno = 32;
- priority = 0.000000;
- to="Display_Message";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"true"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Setup_EH_s_and_H
- {
- name = "Setup_EH_s_and_H";
- itemno = 50;
- init = /*%FSM*/"player addEventHandler [""Respawn"", {(_this select 0) call EPOCH_clientRespawn}];" \n
- "player addEventHandler [""Put"", {(_this select 1) call EPOCH_interact;_this call EPOCH_PutHandler}];" \n
- "player addEventHandler [""Take"", {(_this select 1) call EPOCH_interact;_this call EPOCH_UnisexCheck}];" \n
- "player addEventHandler [""InventoryClosed"", {if !(EPOCH_arr_interactedObjs isEqualTo[]) then {EPOCH_arr_interactedObjs remoteExec[""EPOCH_server_save_vehicles"", 2]; EPOCH_arr_interactedObjs = [];};}];" \n
- "player addEventHandler [""InventoryOpened"", {_this spawn EPOCH_initUI; (locked (_this select 1) in [2, 3] || (_this select 1) getVariable[""EPOCH_Locked"", false])}];" \n
- "player addEventHandler [""Fired"", {_this call EPOCH_fnc_playerFired}];" \n
- "player addEventHandler [""Killed"", {_this call EPOCH_fnc_playerDeath}];" \n
- "" \n
- "if (count EPOCH_playerHitPoints isEqualTo count ((getAllHitPointsDamage player) param [0,[]])) then {" \n
- " {" \n
- " player setHitIndex [_forEachIndex, _x];" \n
- " }forEach EPOCH_playerHitPoints;" \n
- "};" \n
- "" \n
- "[] spawn EPOCH_masterLoop;" \n
- "true call EPOCH_fnc_Weather;" \n
- "[5,100] spawn EPOCH_niteLight;" \n
- "" \n
- "if (_debug) then {" \n
- " diag_log ""EPOCH-LOGIN: Setup EH's"";" \n
- "};" \n
- "" \n
- """Loading... Please wait!"" call Epoch_updateLoadingScreen;" \n
- "progressLoadingScreen 0.9;"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Has_Current_Weap
- {
- itemno = 53;
- priority = 10.000000;
- to="Find_Active_Weap";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"_currentWeapon != """""/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class no_weapons
- {
- itemno = 51;
- priority = 0.000000;
- to="Process";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"_currentWeapon == """""/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Process
- {
- name = "Process";
- itemno = 52;
- init = /*%FSM*/"progressLoadingScreen 0.975;"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Preload_done
- {
- itemno = 29;
- priority = 0.000000;
- to="FINISH";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"preloadCamera (getposATL player)"/*%FSM*/;
- action=/*%FSM*/"call compile _playerGroupOnline;"/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Find_Active_Weap
- {
- name = "Find_Active_Weap";
- itemno = 54;
- init = /*%FSM*/"_activeWeapon = currentWeapon player;" \n
- "progressLoadingScreen 0.95;"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Current_Weapon_S
- {
- itemno = 56;
- priority = 0.000000;
- to="Do_nothing";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"_activeWeapon == _currentWeapon"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class Current_Weapon_Not
- {
- itemno = 55;
- priority = 0.000000;
- to="Select_Weapon";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"_activeWeapon != _currentWeapon"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Select_Weapon
- {
- name = "Select_Weapon";
- itemno = 57;
- init = /*%FSM*/"_currentWeapon spawn {" \n
- " uiSleep 1; " \n
- " player selectWeapon _this;" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class true
- {
- itemno = 58;
- priority = 0.000000;
- to="Process";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"true"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Do_nothing
- {
- name = "Do_nothing";
- itemno = 59;
- init = /*%FSM*/""/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class true
- {
- itemno = 58;
- priority = 0.000000;
- to="Process";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"true"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Check_New_Player
- {
- name = "Check_New_Player";
- itemno = 60;
- init = /*%FSM*/"_myTime = diag_tickTime;" \n
- "" \n
- "// player reveal [_playerObject, 4];" \n
- "" \n
- "" \n
- """Loading Player Inventory... Please wait!"" call Epoch_updateLoadingScreen;" \n
- "progressLoadingScreen 0.6;" \n
- ""/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Wait_mag_count_m
- {
- itemno = 61;
- priority = 0.000000;
- to="Setup_Player_Obj";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"_magCount == count (magazines _playerObject)"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class Timeout_No_Respo
- {
- itemno = 15;
- priority = 0.000000;
- to="ERROR_Server_not";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"(diag_tickTime - _myTime) > 120"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Process_1
- {
- name = "Process_1";
- itemno = 63;
- init = /*%FSM*/""/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Wait_ArmA_Loading
- {
- itemno = 64;
- priority = 0.000000;
- to="Start_Loading_Sc";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"{!isnull _x} count ((uinamespace getvariable ""loading_displays"") - [finddisplay 18]) == 0"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Start_Loading_Sc
- {
- name = "Start_Loading_Sc";
- itemno = 65;
- init = /*%FSM*/"startLoadingScreen ["""",""EpochLoadingScreen""];" \n
- "if (_debug) then {" \n
- " diag_log ""EPOCH-LOGIN: Start Loadingscreen"";" \n
- "};" \n
- """Starting Epoch... Please wait!"" call Epoch_updateLoadingScreen;"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class true
- {
- itemno = 2;
- priority = 0.000000;
- to="Version_Check";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"true"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Update_Loadingscreen
- {
- name = "Update_Loadingscreen";
- itemno = 67;
- init = /*%FSM*/"uiNamespace setVariable ['Epoch_freshServer', false];" \n
- "" \n
- """Server initializing... Please wait!"" call Epoch_updateLoadingScreen;"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class true
- {
- itemno = 68;
- priority = 0.000000;
- to="Check_Server_1";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/""/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class ERROR_Player_Setup
- {
- name = "ERROR_Player_Setup";
- itemno = 70;
- init = /*%FSM*/"_msg = ""Problem setting up player"";" \n
- "_msg call Epoch_updateLoadingScreen;" \n
- "diag_log _msg;" \n
- "" \n
- "_rejectPlayer = {" \n
- " PLAYER_REJECT_InvaildSetup = true;" \n
- " publicVariableServer ""PLAYER_REJECT_InvaildSetup"";" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class true
- {
- itemno = 32;
- priority = 0.000000;
- to="Display_Message";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"true"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Server_Version_C
- {
- name = "Server_Version_C";
- itemno = 72;
- init = /*%FSM*/""/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Wrong_Server_Ver
- {
- itemno = 23;
- priority = 10.000000;
- to="ERROR_Wrong_Server";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"Epoch_ServerVersion != getText(configFile >> ""CfgMods"" >> ""Epoch"" >> ""version"")"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class Version_Okay
- {
- itemno = 73;
- priority = 0.000000;
- to="Request_Hive";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/""/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class ERROR_Server_not_3
- {
- name = "ERROR_Server_not_3";
- itemno = 75;
- init = /*%FSM*/"_msg = ""Authentication Failed, Disconnect and try again"";" \n
- "_msg call Epoch_updateLoadingScreen;" \n
- "diag_log _msg;" \n
- "" \n
- "_rejectPlayer = {" \n
- " PLAYER_REJECT_HiveNotResponse = true;" \n
- " publicVariableServer ""PLAYER_REJECT_HiveNotResponse"";" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class true
- {
- itemno = 32;
- priority = 0.000000;
- to="Display_Message";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"true"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Process_2
- {
- name = "Process_2";
- itemno = 80;
- init = /*%FSM*/""/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class new_character
- {
- itemno = 77;
- priority = 10.000000;
- to="Open_Gender_Selection";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"_newChar"/*%FSM*/;
- action=/*%FSM*/"endLoadingScreen;" \n
- "_myGenderTime = diag_tickTime;"/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class load_old_charact
- {
- itemno = 79;
- priority = 0.000000;
- to="Process_3";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/""/*%FSM*/;
- action=/*%FSM*/"_myTime = diag_tickTime;"/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Open_Gender_Selection
- {
- name = "Open_Gender_Selection";
- itemno = 81;
- init = /*%FSM*/"createdialog ""SelectGender"";"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Gender_Selected
- {
- itemno = 83;
- priority = 10.000000;
- to="Send_character_s";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"!isNil ""EPOCH_PlayerIsMale"""/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class Timeout
- {
- itemno = 84;
- priority = 0.000000;
- to="Send_character_s";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"((diag_tickTime - _myGenderTime) > 30)"/*%FSM*/;
- action=/*%FSM*/"EPOCH_PlayerIsMale = true;" \n
- "closeDialog 0;"/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class Reopen_when_client
- {
- itemno = 82;
- priority = 0.000000;
- to="Open_Gender_Selection";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"!dialog && isNil ""EPOCH_PlayerIsMale"""/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Send_character_s
- {
- name = "Send_character_s";
- itemno = 85;
- init = /*%FSM*/"startLoadingScreen ["""",""EpochLoadingScreen""];" \n
- """Gender Selected... Please wait!"" call Epoch_updateLoadingScreen;" \n
- "" \n
- "[player,EPOCH_PlayerIsMale] remoteExec [""EPOCH_server_loadPlayer"",2];" \n
- "EPOCH_PlayerIsMale = nil;"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class load_old_charact
- {
- itemno = 79;
- priority = 0.000000;
- to="Process_3";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/""/*%FSM*/;
- action=/*%FSM*/"_myTime = diag_tickTime;"/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Process_3
- {
- name = "Process_3";
- itemno = 86;
- init = /*%FSM*/""/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Timeout_No_Respo
- {
- itemno = 22;
- priority = 0.000000;
- to="ERROR_Server_not_4";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"(diag_tickTime - _myTime) > 120"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class Response
- {
- itemno = 16;
- priority = 0.000000;
- to="Check_New_Player";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"!isNil ""EPOCH_C_SET"""/*%FSM*/;
- action=/*%FSM*/"_array = EPOCH_C_SET;" \n
- "EPOCH_C_SET = nil;" \n
- "_playerObject = _array deleteAt 0;" \n
- "_playerVariables = _array deleteAt 0;" \n
- "_currentWeapon = _array deleteAt 0;" \n
- "_magCount = _array deleteAt 0;" \n
- "Epoch_my_GroupUID = _array deleteAt 0;" \n
- "Epoch_canBeRevived = _array deleteAt 0;" \n
- "Epoch_personalToken = _array deleteAt 0;" \n
- "reverse _serverUptime;" \n
- "_serverUptime pushBack (_array deleteAt 0);" \n
- "reverse _serverUptime;" \n
- "_serverUptime call EPOCH_client_publicEH;" \n
- "_playerGroupOnline = _array deleteAt 0;" \n
- "" \n
- ""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class ERROR_Server_not_4
- {
- name = "ERROR_Server_not_4";
- itemno = 87;
- init = /*%FSM*/"_msg = ""Authentication Failed, Disconnect and try again"";" \n
- "_msg call Epoch_updateLoadingScreen;" \n
- "diag_log _msg;" \n
- "" \n
- "_rejectPlayer = {" \n
- " PLAYER_REJECT_HiveLoadChar = true;" \n
- " publicVariableServer ""PLAYER_REJECT_HiveLoadChar"";" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class true
- {
- itemno = 32;
- priority = 0.000000;
- to="Display_Message";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"true"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
+ priority = 0.000000;
+ to="Process_1";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"true"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
};
- initState="INIT";
- finalStates[] =
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class FINISH
+ {
+ name = "FINISH";
+ init = /*%FSM*/"[] spawn {" \n
+ " disableSerialization;" \n
+ " waitUntil{!isNull (findDisplay 46)};" \n
+ " _display = findDisplay 46;" \n
+ " {" \n
+ " _display displayAddEventHandler [_x,([""CfgEpochClient"", _x, """"] call EPOCH_fnc_returnConfigEntryV2)];" \n
+ " } forEach ([""CfgEpochClient"", ""displayAddEventHandler"", []] call EPOCH_fnc_returnConfigEntryV2);" \n
+ " " \n
+ " player switchMove """";" \n
+ "};" \n
+ "" \n
+ "3 fadeSound 1;" \n
+ "" \n
+ "if (_debug) then {" \n
+ " diag_log ""EPOCH-LOGIN: Finish!"";" \n
+ "};" \n
+ "" \n
+ "player enableSimulation true;" \n
+ "" \n
+ "titleCut ["""", ""BLACK IN"", 1];" \n
+ "1338 cutText ["""",""PLAIN"",0]; " \n
+ "" \n
+ "progressLoadingScreen 1.0;" \n
+ "" \n
+ "endLoadingScreen;" \n
+ "EPOCH_loadingScreenDone = true;"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Version_Check
+ {
+ name = "Version_Check";
+ init = /*%FSM*/"if (_debug) then {" \n
+ " diag_log ""EPOCH-LOGIN: Version Check"";" \n
+ "};" \n
+ "" \n
+ "// SHOULD BE:" \n
+ "_epoch_assets0 = getText(configFile >> ""Epoch"" >> ""Version"" >> ""A3_epoch_assets"");" \n
+ "_epoch_assets1 = getText(configFile >> ""Epoch"" >> ""Version"" >> ""A3_epoch_assets_1"");" \n
+ "_epoch_assets2 = getText(configFile >> ""Epoch"" >> ""Version"" >> ""epoch_objects"");" \n
+ "_epoch_assets3 = getText(configFile >> ""Epoch"" >> ""Version"" >> ""A3_epoch_assets_3"");" \n
+ "_epoch_config = getText(configFile >> ""Epoch"" >> ""Version"" >> ""A3_epoch_config"");" \n
+ "_epoch_language = getText(configFile >> ""Epoch"" >> ""Version"" >> ""A3_epoch_language"");" \n
+ "_epoch_underground = getText(configFile >> ""Epoch"" >> ""Version"" >> ""Underground_Epoch"");" \n
+ "_epoch_vehicles = getText(configFile >> ""Epoch"" >> ""Version"" >> ""A3_epoch_vehicles"");" \n
+ "_epoch_weapons = getText(configFile >> ""Epoch"" >> ""Version"" >> ""a3_epoch_weapons"");" \n
+ "" \n
+ "" \n
+ "// IS:" \n
+ "_my_epoch_assets0 = getText(configFile >> ""CfgPatches"" >> ""A3_epoch_assets"" >> ""epochVersion"");" \n
+ "_my_epoch_assets1 = getText(configFile >> ""CfgPatches"" >> ""A3_epoch_assets_1"" >> ""epochVersion"");" \n
+ "_my_epoch_assets2 = getText(configFile >> ""CfgPatches"" >> ""epoch_objects"" >> ""epochVersion"");" \n
+ "_my_epoch_assets3 = getText(configFile >> ""CfgPatches"" >> ""A3_epoch_assets_3"" >> ""epochVersion"");" \n
+ "_my_epoch_config = getText(configFile >> ""CfgPatches"" >> ""A3_epoch_config"" >> ""epochVersion"");" \n
+ "_my_epoch_language = getText(configFile >> ""CfgPatches"" >> ""A3_epoch_language"" >> ""epochVersion"");" \n
+ "_my_epoch_underground = getText(configFile >> ""CfgPatches"" >> ""Underground_Epoch"" >> ""epochVersion"");" \n
+ "_my_epoch_vehicles = getText(configFile >> ""CfgPatches"" >> ""A3_epoch_vehicles"" >> ""epochVersion"");" \n
+ "_my_epoch_weapons = getText(configFile >> ""CfgPatches"" >> ""a3_epoch_weapons"" >> ""epochVersion"");" \n
+ "" \n
+ "progressLoadingScreen 0.1;" \n
+ ""/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Wrong_Version
{
- "FINISH",
- "Reject_without_B",
+ priority = 10.000000;
+ to="ERROR_Wrong_Version";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"_epoch_assets0 != _epoch_assets0 ||" \n
+ "_my_epoch_assets1 != _epoch_assets1 ||" \n
+ "_my_epoch_assets2 != _epoch_assets2 ||" \n
+ "_my_epoch_assets3 != _epoch_assets3 ||" \n
+ "_my_epoch_config != _epoch_config ||" \n
+ "_my_epoch_language != _epoch_language ||" \n
+ "_my_epoch_underground != _epoch_underground ||" \n
+ "_my_epoch_vehicles != _epoch_vehicles ||" \n
+ "_my_epoch_weapons != _epoch_weapons"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
};
+ /*%FSM*/
+ /*%FSM*/
+ class true
+ {
+ priority = 0.000000;
+ to="Arma_Version_Che";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/""/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Check_Player_UID
+ {
+ name = "Check_Player_UID";
+ init = /*%FSM*/"if (_debug) then {" \n
+ " diag_log ""EPOCH-LOGIN: Check PlayerUID"";" \n
+ "};" \n
+ "" \n
+ "_playerUID = getPlayerUID player;" \n
+ "" \n
+ "progressLoadingScreen 0.2;"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class PlayerUID_Okay
+ {
+ priority = 10.000000;
+ to="Check_Server_1";
+ precondition = /*%FSM*/"!isNil ""_playerUID"""/*%FSM*/;
+ condition=/*%FSM*/"_playerUID != """""/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Empty_PlayerUID
+ {
+ priority = 0.000000;
+ to="ERROR_PlayerUID";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"true"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class ERROR_Wrong_Version
+ {
+ name = "ERROR_Wrong_Version";
+ init = /*%FSM*/"_msg = ""You have an outdated version of Epoch"";" \n
+ "_msg call Epoch_updateLoadingScreen;" \n
+ "diag_log _msg;" \n
+ "" \n
+ "_rejectPlayer = {" \n
+ " PLAYER_REJECT_EPOCHVERSION = true;" \n
+ " publicVariableServer ""PLAYER_REJECT_EPOCHVERSION"";" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class true
+ {
+ priority = 0.000000;
+ to="Display_Message";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"true"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Disconnect
+ {
+ name = "Disconnect";
+ init = /*%FSM*/"endLoadingScreen;" \n
+ "1338 cutText [_msg,""PLAIN"",0]; " \n
+ "deleteVehicle player;" \n
+ "call _rejectPlayer;" \n
+ "diag_log format [""(%1) %2"",diag_tickTime,_msg];" \n
+ "_myTime = diag_tickTime;"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Check_if_Player
+ {
+ priority = 0.000000;
+ to="Reject_without_B";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"(diag_tickTime - _myTime) > 2"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class ERROR_PlayerUID
+ {
+ name = "ERROR_PlayerUID";
+ init = /*%FSM*/"_msg = ""Can not setup Player Object! (Error 01)"";" \n
+ "_msg call Epoch_updateLoadingScreen;" \n
+ "diag_log _msg;" \n
+ "" \n
+ "_rejectPlayer = {" \n
+ " PLAYER_REJECT_UID = true;" \n
+ " publicVariableServer ""PLAYER_REJECT_UID"";" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class true
+ {
+ priority = 0.000000;
+ to="Display_Message";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"true"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Setup_Player_Var
+ {
+ name = "Setup_Player_Var";
+ init = /*%FSM*/"diag_log format[""DEBUG TIME WAITED: %1"", (diag_tickTime - _myTime)];" \n
+ "{" \n
+ " missionNamespace setVariable[(format[""EPOCH_player%1"", EPOCH_customVars select _forEachIndex]), _x];" \n
+ "} forEach _playerVariables;" \n
+ "" \n
+ """Loading Player Variables... Please wait!"" call Epoch_updateLoadingScreen;" \n
+ "" \n
+ "EPOCH_lastPlayerPos = getPosATL vehicle player;" \n
+ "" \n
+ "progressLoadingScreen 0.7;" \n
+ "" \n
+ "if (_debug) then {" \n
+ " diag_log ""EPOCH-LOGIN: Setup Player Variables"";" \n
+ "};" \n
+ ""/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class true
+ {
+ priority = 0.000000;
+ to="Setup_EH_s_and_H";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"true"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Request_Hive
+ {
+ name = "Request_Hive";
+ init = /*%FSM*/"_myTime = diag_tickTime;" \n
+ "" \n
+ "Epoch_my_Group = [];" \n
+ "" \n
+ "player remoteExec [""EPOCH_server_checkPlayer"",2];" \n
+ "" \n
+ "" \n
+ """Loading Player Data... Please wait!"" call Epoch_updateLoadingScreen;" \n
+ "progressLoadingScreen 0.5;" \n
+ ""/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Hive_Response
+ {
+ priority = 0.000000;
+ to="Process_2";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"!isNil ""EPOCH_checkPlayer_PVC"""/*%FSM*/;
+ action=/*%FSM*/"_newChar = EPOCH_checkPlayer_PVC;" \n
+ "EPOCH_checkPlayer_PVC = nil;"/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Timeout_No_Respo
+ {
+ priority = 0.000000;
+ to="ERROR_Server_not_3";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"(diag_tickTime - _myTime) > 120"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class ERROR_Server_not
+ {
+ name = "ERROR_Server_not";
+ init = /*%FSM*/"_msg = ""Authentication Failed, Disconnect and try again"";" \n
+ "_msg call Epoch_updateLoadingScreen;" \n
+ "diag_log _msg;" \n
+ "" \n
+ "_rejectPlayer = {" \n
+ " PLAYER_REJECT_NoResponse2 = true;" \n
+ " publicVariableServer ""PLAYER_REJECT_NoResponse2"";" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class true
+ {
+ priority = 0.000000;
+ to="Display_Message";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"true"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class ERROR_Wrong_Server
+ {
+ name = "ERROR_Wrong_Server";
+ init = /*%FSM*/"_msg = format[""Server and Client running with different Version! (You: %1 // Server: %2)"",getText(configFile >> ""CfgMods"" >> ""Epoch"" >> ""version""),_serverVersion];" \n
+ "_msg call Epoch_updateLoadingScreen;" \n
+ "diag_log _msg;" \n
+ "" \n
+ "_rejectPlayer = {" \n
+ " PLAYER_REJECT_ServerVersion = true;" \n
+ " publicVariableServer ""PLAYER_REJECT_ServerVersion"";" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class true
+ {
+ priority = 0.000000;
+ to="Display_Message";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"true"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Setup_Player_Obj
+ {
+ name = "Setup_Player_Obj";
+ init = /*%FSM*/"_ply = player;" \n
+ "_group = group player;" \n
+ "selectPlayer _playerObject;" \n
+ "" \n
+ "deleteVehicle _ply;" \n
+ "deleteGroup _group;" \n
+ "" \n
+ """Loading Player Body... Please wait!"" call Epoch_updateLoadingScreen;" \n
+ "progressLoadingScreen 0.8;" \n
+ "" \n
+ "if (_debug) then {" \n
+ " diag_log ""EPOCH-LOGIN: Setup Player Object"";" \n
+ "};" \n
+ "" \n
+ "_myTime = diag_tickTime;"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Timeout_
+ {
+ priority = 0.000000;
+ to="ERROR_Player_Setup";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"(diag_tickTime - _myTime) > 60"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class new_player_____p
+ {
+ priority = 0.000000;
+ to="Setup_Player_Var";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"_playerObject == player"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Display_Message
+ {
+ name = "Display_Message";
+ init = /*%FSM*/"[] spawn {" \n
+ " waitUntil{!isNull (findDisplay 46)};" \n
+ " (findDisplay 46) displayAddEventHandler [""KeyDown"",""true""];" \n
+ " (findDisplay 46) displayAddEventHandler [""KeyUp"",""true""];" \n
+ "};" \n
+ "diag_log format [""(%1) %2"",diag_tickTime,_msg];" \n
+ "_myTime = diag_tickTime;" \n
+ ""/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Display_Message
+ {
+ priority = 0.000000;
+ to="Disconnect";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"(diag_tickTime - _myTime) > 10"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Check_Server
+ {
+ name = "Check_Server";
+ init = /*%FSM*/"_myTime = diag_tickTime;" \n
+ "if (_debug) then {" \n
+ " diag_log ""EPOCH-LOGIN: Check Server"";" \n
+ "};" \n
+ """Checking Server... Please wait!"" call Epoch_updateLoadingScreen;" \n
+ "progressLoadingScreen 0.4;"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Server_not_worki
+ {
+ priority = 10.000000;
+ to="ERROR_Server_not_1";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"!isNil ""EPOCH_BADHIVE""" \n
+ ""/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Server_Okay
+ {
+ priority = 0.000000;
+ to="Server_Version_C";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"!isNil ""Epoch_ServerVersion"""/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class ERROR_Server_not_1
+ {
+ name = "ERROR_Server_not_1";
+ init = /*%FSM*/"_msg = ""Server not Ready (Error 03)"";" \n
+ "_msg call Epoch_updateLoadingScreen;" \n
+ "diag_log _msg;" \n
+ "" \n
+ "_rejectPlayer = {" \n
+ " PLAYER_REJECT_NotReady2 = true;" \n
+ " publicVariableServer ""PLAYER_REJECT_NotReady2"";" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class true
+ {
+ priority = 0.000000;
+ to="Display_Message";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"true"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Check_Server_1
+ {
+ name = "Check_Server_1";
+ init = /*%FSM*/"progressLoadingScreen 0.3;"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Timeout_No_Respo
+ {
+ priority = 0.000000;
+ to="ERROR_Server_not_2";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"(diag_tickTime - _myTime) > 180"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class freshServer
+ {
+ priority = 0.000000;
+ to="Update_Loadingscreen";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"uiNamespace getVariable ['Epoch_freshServer', false]"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Server_Ready
+ {
+ priority = 0.000000;
+ to="Check_Server";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"!isNil ""EPOCH_SERVER"""/*%FSM*/;
+ action=/*%FSM*/"_serverUptime = EPOCH_SERVER;" \n
+ "EPOCH_SERVER = nil;"/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class ERROR_Server_not_2
+ {
+ name = "ERROR_Server_not_2";
+ init = /*%FSM*/"_msg = ""Server not Ready (Error 02)"";" \n
+ "_msg call Epoch_updateLoadingScreen;" \n
+ "diag_log _msg;" \n
+ "" \n
+ "_rejectPlayer = {" \n
+ " PLAYER_REJECT_NotReady1 = true;" \n
+ " publicVariableServer ""PLAYER_REJECT_NotReady1"";" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class true
+ {
+ priority = 0.000000;
+ to="Display_Message";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"true"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Reject_without_B
+ {
+ name = "Reject_without_B";
+ init = /*%FSM*/"[] spawn {" \n
+ " waitUntil{!isNull (findDisplay 46)};" \n
+ " waitUntil {" \n
+ " (findDisplay 46) closeDisplay 0;" \n
+ " isNull (findDisplay 46)" \n
+ " };" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Arma_Version_Che
+ {
+ name = "Arma_Version_Che";
+ init = /*%FSM*/"progressLoadingScreen 0.15;" \n
+ ""/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Outdated_Version
+ {
+ priority = 10.000000;
+ to="ERROR_Wrong_Version_1";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"productVersion select 2 < getNumber(configFile >> ""CfgMods"" >> ""Epoch"" >> ""ArmAVersion"")"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Player_Object_Re
+ {
+ priority = 0.000000;
+ to="Check_Player_UID";
+ precondition = /*%FSM*/"!isNull player"/*%FSM*/;
+ condition=/*%FSM*/"player == player"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class ERROR_Wrong_Version_1
+ {
+ name = "ERROR_Wrong_Version_1";
+ init = /*%FSM*/"_msg = ""You have an outdated version of ArmA 3"";" \n
+ "_msg call Epoch_updateLoadingScreen;" \n
+ "diag_log _msg;" \n
+ "" \n
+ "_rejectPlayer = {" \n
+ " PLAYER_REJECT_ARMAVERSION = true;" \n
+ " publicVariableServer ""PLAYER_REJECT_ARMAVERSION"";" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class true
+ {
+ priority = 0.000000;
+ to="Display_Message";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"true"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Setup_EH_s_and_H
+ {
+ name = "Setup_EH_s_and_H";
+ init = /*%FSM*/"{" \n
+ " player addEventHandler [_x,([""CfgEpochClient"", _x, """"] call EPOCH_fnc_returnConfigEntryV2)];" \n
+ "} forEach ([""CfgEpochClient"", ""addEventHandler"", []] call EPOCH_fnc_returnConfigEntryV2);" \n
+ "" \n
+ "if (count EPOCH_playerHitPoints isEqualTo count ((getAllHitPointsDamage player) param [0,[]])) then {" \n
+ " {" \n
+ " player setHitIndex [_forEachIndex, _x];" \n
+ " }forEach EPOCH_playerHitPoints;" \n
+ "};" \n
+ "" \n
+ "[] spawn EPOCH_masterLoop;" \n
+ "true call EPOCH_fnc_Weather;" \n
+ "[5,100] spawn EPOCH_niteLight;" \n
+ "" \n
+ "if (_debug) then {" \n
+ " diag_log ""EPOCH-LOGIN: Setup EH's"";" \n
+ "};" \n
+ "" \n
+ """Loading... Please wait!"" call Epoch_updateLoadingScreen;" \n
+ "progressLoadingScreen 0.9;"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Has_Current_Weap
+ {
+ priority = 10.000000;
+ to="Find_Active_Weap";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"_currentWeapon != """""/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class no_weapons
+ {
+ priority = 0.000000;
+ to="Process";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"_currentWeapon == """""/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Process
+ {
+ name = "Process";
+ init = /*%FSM*/"progressLoadingScreen 0.975;"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Preload_done
+ {
+ priority = 0.000000;
+ to="FINISH";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"preloadCamera (getposATL player)"/*%FSM*/;
+ action=/*%FSM*/"call compile _playerGroupOnline;"/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Find_Active_Weap
+ {
+ name = "Find_Active_Weap";
+ init = /*%FSM*/"_activeWeapon = currentWeapon player;" \n
+ "progressLoadingScreen 0.95;"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Current_Weapon_S
+ {
+ priority = 0.000000;
+ to="Do_nothing";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"_activeWeapon == _currentWeapon"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Current_Weapon_Not
+ {
+ priority = 0.000000;
+ to="Select_Weapon";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"_activeWeapon != _currentWeapon"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Select_Weapon
+ {
+ name = "Select_Weapon";
+ init = /*%FSM*/"_currentWeapon spawn {" \n
+ " uiSleep 1; " \n
+ " player selectWeapon _this;" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class true
+ {
+ priority = 0.000000;
+ to="Process";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"true"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Do_nothing
+ {
+ name = "Do_nothing";
+ init = /*%FSM*/""/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class true
+ {
+ priority = 0.000000;
+ to="Process";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"true"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Check_New_Player
+ {
+ name = "Check_New_Player";
+ init = /*%FSM*/"_myTime = diag_tickTime;" \n
+ "" \n
+ "// player reveal [_playerObject, 4];" \n
+ "" \n
+ "" \n
+ """Loading Player Inventory... Please wait!"" call Epoch_updateLoadingScreen;" \n
+ "progressLoadingScreen 0.6;" \n
+ ""/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Wait_mag_count_m
+ {
+ priority = 0.000000;
+ to="Setup_Player_Obj";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"_magCount == count (magazines _playerObject)"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Timeout_No_Respo
+ {
+ priority = 0.000000;
+ to="ERROR_Server_not";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"(diag_tickTime - _myTime) > 120"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Process_1
+ {
+ name = "Process_1";
+ init = /*%FSM*/""/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Wait_ArmA_Loading
+ {
+ priority = 0.000000;
+ to="Start_Loading_Sc";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"{!isnull _x} count ((uinamespace getvariable ""loading_displays"") - [finddisplay 18]) == 0"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Start_Loading_Sc
+ {
+ name = "Start_Loading_Sc";
+ init = /*%FSM*/"startLoadingScreen ["""",""EpochLoadingScreen""];" \n
+ "if (_debug) then {" \n
+ " diag_log ""EPOCH-LOGIN: Start Loadingscreen"";" \n
+ "};" \n
+ """Starting Epoch... Please wait!"" call Epoch_updateLoadingScreen;"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class true
+ {
+ priority = 0.000000;
+ to="Version_Check";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"true"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Update_Loadingscreen
+ {
+ name = "Update_Loadingscreen";
+ init = /*%FSM*/"uiNamespace setVariable ['Epoch_freshServer', false];" \n
+ "" \n
+ """Server initializing... Please wait!"" call Epoch_updateLoadingScreen;"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class true
+ {
+ priority = 0.000000;
+ to="Check_Server_1";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/""/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class ERROR_Player_Setup
+ {
+ name = "ERROR_Player_Setup";
+ init = /*%FSM*/"_msg = ""Problem setting up player"";" \n
+ "_msg call Epoch_updateLoadingScreen;" \n
+ "diag_log _msg;" \n
+ "" \n
+ "_rejectPlayer = {" \n
+ " PLAYER_REJECT_InvaildSetup = true;" \n
+ " publicVariableServer ""PLAYER_REJECT_InvaildSetup"";" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class true
+ {
+ priority = 0.000000;
+ to="Display_Message";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"true"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Server_Version_C
+ {
+ name = "Server_Version_C";
+ init = /*%FSM*/""/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Wrong_Server_Ver
+ {
+ priority = 10.000000;
+ to="ERROR_Wrong_Server";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"Epoch_ServerVersion != getText(configFile >> ""CfgMods"" >> ""Epoch"" >> ""version"")"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Version_Okay
+ {
+ priority = 0.000000;
+ to="Request_Hive";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/""/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class ERROR_Server_not_3
+ {
+ name = "ERROR_Server_not_3";
+ init = /*%FSM*/"_msg = ""Authentication Failed, Disconnect and try again"";" \n
+ "_msg call Epoch_updateLoadingScreen;" \n
+ "diag_log _msg;" \n
+ "" \n
+ "_rejectPlayer = {" \n
+ " PLAYER_REJECT_HiveNotResponse = true;" \n
+ " publicVariableServer ""PLAYER_REJECT_HiveNotResponse"";" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class true
+ {
+ priority = 0.000000;
+ to="Display_Message";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"true"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Process_2
+ {
+ name = "Process_2";
+ init = /*%FSM*/""/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class new_character
+ {
+ priority = 10.000000;
+ to="Open_Gender_Selection";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"_newChar"/*%FSM*/;
+ action=/*%FSM*/"endLoadingScreen;" \n
+ "_myGenderTime = diag_tickTime;"/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class load_old_charact
+ {
+ priority = 0.000000;
+ to="Process_3";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/""/*%FSM*/;
+ action=/*%FSM*/"_myTime = diag_tickTime;"/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Open_Gender_Selection
+ {
+ name = "Open_Gender_Selection";
+ init = /*%FSM*/"createdialog ""SelectGender"";"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Gender_Selected
+ {
+ priority = 10.000000;
+ to="Send_character_s";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"!isNil ""EPOCH_PlayerIsMale"""/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Timeout
+ {
+ priority = 0.000000;
+ to="Send_character_s";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"((diag_tickTime - _myGenderTime) > 30)"/*%FSM*/;
+ action=/*%FSM*/"EPOCH_PlayerIsMale = true;" \n
+ "closeDialog 0;"/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Reopen_when_client
+ {
+ priority = 0.000000;
+ to="Open_Gender_Selection";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"!dialog && isNil ""EPOCH_PlayerIsMale"""/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Send_character_s
+ {
+ name = "Send_character_s";
+ init = /*%FSM*/"startLoadingScreen ["""",""EpochLoadingScreen""];" \n
+ """Gender Selected... Please wait!"" call Epoch_updateLoadingScreen;" \n
+ "" \n
+ "[player,EPOCH_PlayerIsMale] remoteExec [""EPOCH_server_loadPlayer"",2];" \n
+ "EPOCH_PlayerIsMale = nil;"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class load_old_charact
+ {
+ priority = 0.000000;
+ to="Process_3";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/""/*%FSM*/;
+ action=/*%FSM*/"_myTime = diag_tickTime;"/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Process_3
+ {
+ name = "Process_3";
+ init = /*%FSM*/""/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Timeout_No_Respo
+ {
+ priority = 0.000000;
+ to="ERROR_Server_not_4";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"(diag_tickTime - _myTime) > 120"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Response
+ {
+ priority = 0.000000;
+ to="Check_New_Player";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"!isNil ""EPOCH_C_SET"""/*%FSM*/;
+ action=/*%FSM*/"_array = EPOCH_C_SET;" \n
+ "EPOCH_C_SET = nil;" \n
+ "_playerObject = _array deleteAt 0;" \n
+ "_playerVariables = _array deleteAt 0;" \n
+ "_currentWeapon = _array deleteAt 0;" \n
+ "_magCount = _array deleteAt 0;" \n
+ "Epoch_my_GroupUID = _array deleteAt 0;" \n
+ "Epoch_canBeRevived = _array deleteAt 0;" \n
+ "Epoch_personalToken = _array deleteAt 0;" \n
+ "reverse _serverUptime;" \n
+ "_serverUptime pushBack (_array deleteAt 0);" \n
+ "reverse _serverUptime;" \n
+ "_serverUptime call EPOCH_client_publicEH;" \n
+ "_playerGroupOnline = _array deleteAt 0;" \n
+ "" \n
+ ""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class ERROR_Server_not_4
+ {
+ name = "ERROR_Server_not_4";
+ init = /*%FSM*/"_msg = ""Authentication Failed, Disconnect and try again"";" \n
+ "_msg call Epoch_updateLoadingScreen;" \n
+ "diag_log _msg;" \n
+ "" \n
+ "_rejectPlayer = {" \n
+ " PLAYER_REJECT_HiveLoadChar = true;" \n
+ " publicVariableServer ""PLAYER_REJECT_HiveLoadChar"";" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class true
+ {
+ priority = 0.000000;
+ to="Display_Message";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"true"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ };
+ initState="INIT";
+ finalStates[] =
+ {
+ "FINISH",
+ "Reject_without_B",
+ };
};
-/*%FSM*/
+/*%FSM*/
\ No newline at end of file
diff --git a/Sources/epoch_code/compile/setup/EPOCH_clientRevive.sqf b/Sources/epoch_code/compile/setup/EPOCH_clientRevive.sqf
index d9af566f..905ef133 100644
--- a/Sources/epoch_code/compile/setup/EPOCH_clientRevive.sqf
+++ b/Sources/epoch_code/compile/setup/EPOCH_clientRevive.sqf
@@ -31,7 +31,6 @@ if !(alive player && alive _playerObject && !isPlayer _playerObject) then {
// deleteGroup _group;
Epoch_canBeRevived = false;
-
Epoch_personalToken = _this select 1;
// call EPOCH_clientInit;
@@ -41,13 +40,9 @@ if !(alive player && alive _playerObject && !isPlayer _playerObject) then {
closeDialog 0;
("BIS_fnc_respawnCounter" call BIS_fnc_rscLayer) cutText ["","PLAIN"];
- player addEventHandler ["Respawn", {(_this select 0) call EPOCH_clientRespawn}];
- player addEventHandler ["Put", {(_this select 1) call EPOCH_interact;_this call EPOCH_PutHandler}];
- player addEventHandler ["Take", {(_this select 1) call EPOCH_interact;_this call EPOCH_UnisexCheck}];
- player addEventHandler ["InventoryClosed", { if !(EPOCH_arr_interactedObjs isEqualTo[]) then{EPOCH_arr_interactedObjs remoteExec["EPOCH_server_save_vehicles", 2]; EPOCH_arr_interactedObjs = []; }; }];
- player addEventHandler ["InventoryOpened", {_this spawn EPOCH_initUI; (locked (_this select 1) in [2, 3] || (_this select 1) getVariable["EPOCH_Locked", false]) }];
- player addEventHandler ["Fired", {_this call EPOCH_fnc_playerFired}];
- player addEventHandler ["Killed", {_this call EPOCH_fnc_playerDeath}];
+ {
+ player addEventHandler [_x,(["CfgEpochClient", _x, ""] call EPOCH_fnc_returnConfigEntryV2)];
+ } forEach (["CfgEpochClient", "addEventHandler", []] call EPOCH_fnc_returnConfigEntryV2);
} else {
deleteVehicle _playerObject;
};
diff --git a/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp b/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp
index 2263dffe..cca6f3aa 100644
--- a/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp
+++ b/Sources/epoch_config/Configs/CfgActionMenu/CfgActionMenu_target.hpp
@@ -119,7 +119,7 @@ class lock_safe
class pack_lockbox
{
condition = "(dyna_cursorTargetType in ['LockBox_EPOCH','LockBoxProxy_EPOCH']) && (dyna_cursorTarget getVariable ['EPOCH_Locked',false])";
- action = "[dyna_cursorTarget,player,Epoch_personalToken] remoteExec ['EPOCH_server_lockStorage',2];";
+ action = "[dyna_cursorTarget,player,Epoch_personalToken] remoteExec ['EPOCH_server_packStorage',2];";
icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_pack.paa";
tooltip = "Pack Lockbox";
};
diff --git a/Sources/epoch_config/Configs/CfgEpochClient.hpp b/Sources/epoch_config/Configs/CfgEpochClient.hpp
index 4c206fa8..fc7e54cb 100644
--- a/Sources/epoch_config/Configs/CfgEpochClient.hpp
+++ b/Sources/epoch_config/Configs/CfgEpochClient.hpp
@@ -81,6 +81,18 @@ class CfgEpochClient
{ "cabinetPos", "Cabinet_EPOCH", false }
};
+ displayAddEventHandler[] = {"keyDown","keyUp"};
+ keyDown = "_this call EPOCH_KeyDown;";
+ keyUp = "_this call EPOCH_KeyUp;";
+
+ addEventHandler[] = {"Respawn","Put","Take","InventoryClosed","InventoryOpened","Fired","Killed"};
+ Respawn = "(_this select 0) call EPOCH_clientRespawn";
+ Put = "(_this select 1) call EPOCH_interact;_this call EPOCH_PutHandler";
+ Take = "(_this select 1) call EPOCH_interact;_this call EPOCH_UnisexCheck";
+ Fired = "_this call EPOCH_fnc_playerFired;";
+ InventoryClosed = "if !(EPOCH_arr_interactedObjs isEqualTo[]) then {EPOCH_arr_interactedObjs remoteExec['EPOCH_server_save_vehicles', 2]; EPOCH_arr_interactedObjs = [];};";
+ InventoryOpened = "_this spawn EPOCH_initUI;_container = _this select 1;_lockedNear = false;if (_container isKindOf 'GroundWeaponHolder' || _container isKindOf 'WeaponHolderSimulated') then {{if (locked _x in [2, 3] ||_x getVariable['EPOCH_Locked', false]) exitWith {_lockedNear = true}} forEach (player nearSupplies 10);};if (locked _container in [2, 3] || _container getVariable['EPOCH_Locked', false] || _lockedNear) then {[] spawn {disableSerialization;waitUntil {!isNull findDisplay 602};_display = findDisplay 602;_ctrl_cargo = _display displayCtrl 6401;_ctrl_ground = _display displayCtrl 6321;_ctrl_cargo ctrlEnable false;ctrlSetFocus _ctrl_ground;ctrlActivate _ctrl_ground;};};";
+ Killed = "_this call EPOCH_fnc_playerDeath;";
#include "CfgEpochClient\takistan.hpp"
#include "CfgEpochClient\australia.hpp"