/*%FSM*/ /*%FSM*/ /* item0[] = {"INIT",0,250,-25.000000,-375.000000,75.000000,-325.000000,0.000000,"INIT"}; item1[] = {"FINISH",1,250,-25.000000,1475.000000,75.000000,1525.000000,0.000000,"FINISH"}; item2[] = {"true",8,218,-150.000000,-125.000000,-50.000000,-75.000000,0.000000,"true"}; item3[] = {"Version_Check",2,250,-25.000000,-75.000000,75.000000,-25.000000,0.000000,"Version Check"}; item4[] = {"Player_Object_Re",4,218,-150.000000,75.000000,-50.000000,125.000000,0.000000,"Player" \n "Object Ready"}; item5[] = {"Check_Player_UID",2,250,-25.000000,125.000000,75.000000,175.000000,0.000000,"Check Player UID"}; item6[] = {"PlayerUID_Okay",4,218,-150.000000,175.000000,-50.000000,225.000000,10.000000,"PlayerUID" \n "Okay"}; item7[] = {"Wrong_Version",4,218,125.000000,-75.000000,225.000000,-25.000000,10.000000,"Wrong" \n "Version"}; item8[] = {"",7,210,471.000061,-54.000099,478.999939,-45.999901,0.000000,""}; item9[] = {"ERROR_Wrong_Version",2,250,275.000000,-75.000000,375.000000,-25.000000,0.000000,"ERROR" \n "Wrong Version" \n "Epoch"}; item10[] = {"Disconnect",2,250,600.000000,1225.000000,700.000000,1275.000000,0.000000,"Disconnect"}; item11[] = {"Server_Okay",4,218,-125.000000,425.000000,-25.000000,475.000000,0.000000,"Server" \n "Okay"}; item12[] = {"Empty_PlayerUID",4,218,125.000000,125.000000,225.000000,175.000000,0.000000,"Empty" \n "PlayerUID"}; item13[] = {"ERROR_PlayerUID",2,250,275.000000,125.000000,375.000000,175.000000,0.000000,"ERROR" \n "PlayerUID Empty"}; item14[] = {"",7,210,471.000061,145.999908,478.999939,154.000092,0.000000,""}; item15[] = {"Timeout_No_Respo",4,218,125.000000,875.000000,225.000000,925.000000,0.000000,"Timeout" \n "No Response"}; item16[] = {"Response",4,218,-150.000000,825.000000,-50.000000,875.000000,0.000000,"Response"}; item17[] = {"Setup_Player_Var",2,250,-25.000000,1075.000000,75.000000,1125.000000,0.000000,"Setup Player" \n "Variables"}; item18[] = {"Request_Hive",2,250,-25.000000,575.000000,75.000000,625.000000,0.000000,"Request Hive"}; item19[] = {"Timeout_No_Respo",4,218,125.000000,575.000000,225.000000,625.000000,0.000000,"Timeout" \n "No Response"}; item20[] = {"ERROR_Server_not",2,250,275.000000,875.000000,375.000000,925.000000,0.000000,"ERROR" \n "Server not" \n "Response"}; item21[] = {"",7,210,471.000000,895.999939,479.000000,904.000061,0.000000,""}; item22[] = {"Timeout_No_Respo",4,218,125.000000,775.000000,225.000000,825.000000,0.000000,"Timeout" \n "No Response"}; item23[] = {"Wrong_Server_Ver",4,218,125.000000,475.000000,225.000000,525.000000,10.000000,"Wrong" \n "Server Version"}; item24[] = {"true",8,218,-150.000000,1125.000000,-50.000000,1175.000000,0.000000,"true"}; item25[] = {"ERROR_Wrong_Server",2,250,275.000000,475.000000,375.000000,525.000000,0.000000,"ERROR" \n "Wrong" \n "Server Version"}; item26[] = {"Display_Message",4,218,600.000000,1150.000000,700.000000,1200.000000,0.000000,"" \n "Display Message" \n "Wait..."}; item27[] = {"Setup_Player_Obj",2,250,-25.000000,975.000000,75.000000,1025.000000,0.000000,"Setup Player" \n "Object"}; item28[] = {"Check_if_Player",4,218,750.000000,1225.000000,850.000000,1275.000000,0.000000,"Check if" \n "Player got Kicked"}; item29[] = {"Preload_done",8,218,-150.000000,1425.000000,-50.000000,1475.000000,0.000000,"Preload" \n "done"}; item30[] = {"",7,210,471.000000,796.000000,479.000000,804.000000,0.000000,""}; item31[] = {"",7,210,471.000000,796.000000,479.000000,804.000000,0.000000,""}; item32[] = {"true",8,218,425.000000,1075.000000,525.000000,1125.000000,0.000000,"true"}; item33[] = {"Display_Message",2,4346,600.000000,1075.000000,700.000000,1125.000000,0.000000,"Display" \n "Message"}; item34[] = {"Server_Ready",4,218,-25.000000,300.000000,75.000000,350.000000,0.000000,"Server" \n "Ready"}; item35[] = {"Check_Server",2,250,-25.000000,375.000000,75.000000,425.000000,0.000000,"Check Server"}; item36[] = {"Server_not_worki",4,218,125.000000,375.000000,225.000000,425.000000,10.000000,"Server" \n "not working"}; item37[] = {"ERROR_Server_not_1",2,250,275.000000,375.000000,375.000000,425.000000,0.000000,"ERROR" \n "Server not Ready"}; item38[] = {"",7,210,471.000000,396.000000,479.000000,404.000000,0.000000,""}; item39[] = {"Check_Server_1",2,250,-25.000000,225.000000,75.000000,275.000000,0.000000,"Check Server"}; item40[] = {"Timeout_No_Respo",4,218,125.000000,225.000000,225.000000,275.000000,0.000000,"Timeout" \n "No Response"}; item41[] = {"ERROR_Server_not_2",2,250,275.000000,225.000000,375.000000,275.000000,0.000000,"ERROR" \n "Server not Ready"}; item42[] = {"",7,210,471.000000,246.000031,479.000000,253.999969,0.000000,""}; item43[] = {"Reject_without_B",1,250,900.000000,1225.000000,1000.000000,1275.000000,0.000000,"Reject without" \n "BattlEye"}; item44[] = {"true",8,218,-150.000000,-25.000000,-50.000000,25.000000,0.000000,"true"}; item45[] = {"Arma_Version_Che",2,250,-25.000000,25.000000,75.000000,75.000000,0.000000,"Arma Version" \n "Check"}; item46[] = {"Outdated_Version",4,218,125.000000,25.000000,225.000000,75.000000,10.000000,"Outdated" \n "Version"}; item47[] = {"ERROR_Wrong_Version_1",2,250,275.000000,25.000000,375.000000,75.000000,0.000000,"ERROR" \n "Wrong Version" \n "ArmA"}; item48[] = {"",7,210,471.000061,45.999908,478.999939,54.000092,0.000000,""}; item49[] = {"new_player_____p",4,218,-150.000000,1025.000000,-50.000000,1075.000000,0.000000,"new player == " \n "player"}; item50[] = {"Setup_EH_s_and_H",2,250,-25.000000,1175.000000,75.000000,1225.000000,0.000000,"Setup EH's" \n "and" \n "HitPoints"}; item51[] = {"no_weapons",4,218,-25.000000,1275.000000,75.000000,1325.000000,0.000000,"no weapons"}; item52[] = {"Process",2,250,-25.000000,1375.000000,75.000000,1425.000000,0.000000,"Process"}; item53[] = {"Has_Current_Weap",4,218,100.000000,1175.000000,200.000000,1225.000000,10.000000,"Has" \n "Current" \n "Weapon"}; item54[] = {"Find_Active_Weap",2,250,225.000000,1175.000000,325.000000,1225.000000,0.000000,"Find" \n "Active" \n "Weapon"}; item55[] = {"Current_Weapon_Not",4,218,150.000000,1225.000000,250.000000,1275.000000,0.000000,"Current" \n "Weapon" \n "Not Selected"}; item56[] = {"Current_Weapon_S",4,218,300.000000,1225.000000,400.000000,1275.000000,0.000000,"Current" \n "Weapon" \n "Selected"}; item57[] = {"Select_Weapon",2,250,150.000000,1300.000000,250.000000,1350.000000,0.000000,"Select" \n "Weapon"}; item58[] = {"true",8,218,225.000000,1375.000000,325.000000,1425.000000,0.000000,"true"}; item59[] = {"Do_nothing",2,250,300.000000,1300.000000,400.000000,1350.000000,0.000000,"Do nothing"}; item60[] = {"Check_New_Player",2,250,-25.000000,875.000000,75.000000,925.000000,0.000000,"Check" \n "New Player" \n "Setup"}; item61[] = {"check_new__player",4,218,-150.000000,925.000000,-50.000000,975.000000,0.000000,"check new " \n "player not null"}; item62[] = {"true",8,218,-150.000000,-325.000000,-50.000000,-275.000000,0.000000,"true"}; item63[] = {"Process_1",2,250,-25.000000,-275.000000,75.000000,-225.000000,0.000000,"Process"}; item64[] = {"Wait_ArmA_Loading",4,218,-150.000000,-225.000000,-50.000000,-175.000000,0.000000,"Wait ArmA" \n "Loading Screen" \n "Done"}; item65[] = {"Start_Loading_Sc",2,250,-25.000000,-175.000000,75.000000,-125.000000,0.000000,"Start Loading" \n "Screen"}; item66[] = {"freshServer",4,218,-325.000000,225.000000,-225.000000,275.000000,0.000000,"freshServer"}; item67[] = {"Update_Loadingscreen",2,250,-325.000000,300.000000,-225.000000,350.000000,0.000000,"Update" \n "Loadingscreen" \n "Message"}; item68[] = {"true",8,218,-150.000000,300.000000,-50.000000,350.000000,0.000000,"true"}; item69[] = {"Timeout_",4,218,125.000000,975.000000,225.000000,1025.000000,0.000000,"" \n "Timeout" \n ""}; item70[] = {"ERROR_Player_Setup",2,250,275.000000,975.000000,375.000000,1025.000000,0.000000,"ERROR" \n "Player Setup" \n "Invalid"}; item71[] = {"",7,210,471.000000,996.000000,479.000000,1004.000000,0.000000,""}; item72[] = {"Server_Version_C",2,250,-25.000000,475.000000,75.000000,525.000000,0.000000,"Server Version" \n "Check"}; item73[] = {"Version_Okay",4,218,-125.000000,525.000000,-25.000000,575.000000,0.000000,"Version" \n "Okay"}; item74[] = {"",7,210,471.000000,496.000000,479.000000,504.000000,0.000000,""}; item75[] = {"ERROR_Server_not_3",2,250,275.000000,575.000000,375.000000,625.000000,0.000000,"ERROR" \n "Server not" \n "Response"}; item76[] = {"",7,210,471.000000,596.000000,479.000000,604.000000,0.000000,""}; item77[] = {"new_character",4,218,-250.000000,675.000000,-150.000000,725.000000,10.000000,"new" \n "character"}; item78[] = {"Hive_Response",4,218,-125.000000,625.000000,-25.000000,675.000000,0.000000,"Hive" \n "Response"}; item79[] = {"load_old_charact",4,218,-125.000000,725.000000,-25.000000,775.000000,0.000000,"load old" \n "character"}; item80[] = {"Process_2",2,250,-25.000000,675.000000,75.000000,725.000000,0.000000,"Process"}; item81[] = {"Open_Gender_Selection",2,250,-400.000000,675.000000,-300.000000,725.000000,0.000000,"Open Gender" \n "Selection Dialog"}; item82[] = {"Reopen_when_client",4,218,-400.000000,600.000000,-300.000000,650.000000,0.000000,"Reopen" \n "when client hit" \n "escape"}; item83[] = {"Gender_Selected",4,218,-450.000000,750.000000,-350.000000,800.000000,10.000000,"Gender" \n "Selected"}; item84[] = {"Timeout",4,218,-350.000000,750.000000,-250.000000,800.000000,0.000000,"Timeout"}; item85[] = {"Send_character_s",2,250,-400.000000,825.000000,-300.000000,875.000000,0.000000,"Send" \n "character" \n "selection"}; item86[] = {"Process_3",2,250,-25.000000,775.000000,75.000000,825.000000,0.000000,"Process"}; item87[] = {"ERROR_Server_not_4",2,250,275.000000,775.000000,375.000000,825.000000,0.000000,"ERROR" \n "Server not" \n "Response"}; link0[] = {0,62}; link1[] = {2,3}; link2[] = {3,7}; link3[] = {3,44}; link4[] = {4,5}; link5[] = {5,6}; link6[] = {5,12}; link7[] = {6,39}; link8[] = {7,9}; link9[] = {8,48}; link10[] = {9,8}; link11[] = {10,28}; link12[] = {11,72}; link13[] = {12,13}; link14[] = {13,14}; link15[] = {14,42}; link16[] = {15,20}; link17[] = {16,60}; link18[] = {17,24}; link19[] = {18,19}; link20[] = {18,78}; link21[] = {19,75}; link22[] = {20,21}; link23[] = {21,71}; link24[] = {22,87}; link25[] = {23,25}; link26[] = {24,50}; link27[] = {25,74}; link28[] = {26,10}; link29[] = {27,49}; link30[] = {27,69}; link31[] = {28,43}; link32[] = {29,1}; link33[] = {31,21}; link34[] = {32,33}; link35[] = {33,26}; link36[] = {34,35}; link37[] = {35,11}; link38[] = {35,36}; link39[] = {36,37}; link40[] = {37,38}; link41[] = {38,74}; link42[] = {39,34}; link43[] = {39,40}; link44[] = {39,66}; link45[] = {40,41}; link46[] = {41,42}; link47[] = {42,38}; link48[] = {44,45}; link49[] = {45,4}; link50[] = {45,46}; link51[] = {46,47}; link52[] = {47,48}; link53[] = {48,14}; link54[] = {49,17}; link55[] = {50,51}; link56[] = {50,53}; link57[] = {51,52}; link58[] = {52,29}; link59[] = {53,54}; link60[] = {54,55}; link61[] = {54,56}; link62[] = {55,57}; link63[] = {56,59}; link64[] = {57,58}; link65[] = {58,52}; link66[] = {59,58}; link67[] = {60,15}; link68[] = {60,61}; link69[] = {61,27}; link70[] = {62,63}; link71[] = {63,64}; link72[] = {64,65}; link73[] = {65,2}; link74[] = {66,67}; link75[] = {67,68}; link76[] = {68,39}; link77[] = {69,70}; link78[] = {70,71}; link79[] = {71,32}; link80[] = {72,23}; link81[] = {72,73}; link82[] = {73,18}; link83[] = {74,76}; link84[] = {75,76}; link85[] = {76,31}; link86[] = {77,81}; link87[] = {78,80}; link88[] = {79,86}; link89[] = {80,77}; link90[] = {80,79}; link91[] = {81,82}; link92[] = {81,83}; link93[] = {81,84}; link94[] = {82,81}; link95[] = {83,85}; link96[] = {84,85}; 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,314.041901,1103.864014,1613.338623,764.213013,586,630,1}; window[] = {2,-1,-1,-1,-1,942,130,1422,130,3,604}; *//*%FSM*/ class FSM { 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 { priority = 0.000000; to="Process_1"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"true"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%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 "" \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 { 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 "" \n "player reveal _playerObject;" \n "_playerPos = getposATL _playerObject;" \n "" \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 _playerPos"/*%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 """Loading Player Inventory... Please wait!"" call Epoch_updateLoadingScreen;" \n "progressLoadingScreen 0.6;" \n ""/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class check_new__player { priority = 0.000000; to="Setup_Player_Obj"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"!(isNull _playerObject) && {_playerObject getVariable [""SETUP"",false]} && {_magCount == magazines player}"/*%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*/