/*%FSM*/ /*%FSM*/ /* item0[] = {"init",0,250,-75.000000,-400.000000,25.000000,-350.000000,0.000000,"init"}; item1[] = {"No_More_Needed",4,218,-250.000000,-250.000000,-150.000000,-200.000000,0.000000,"No More" \n "Needed"}; item2[] = {"Delay_",2,250,-75.000000,50.000000,25.000000,100.000000,0.000000,"Delay" \n ""}; item3[] = {"Need_more",4,218,-75.000000,-175.000000,25.000000,-125.000000,3.000000,"Need more"}; item4[] = {"Spawn",2,250,-75.000000,-100.000000,25.000000,-50.000000,0.000000,"Spawn"}; item5[] = {"Timeout",4,218,50.000000,-250.000000,150.000000,-200.000000,0.000000,"Timeout"}; item6[] = {"Return",8,218,-75.000000,-25.000000,25.000000,25.000000,0.000000,"Return"}; item7[] = {"initialized",4,218,-75.000000,-325.000000,25.000000,-275.000000,0.000000,"initialized"}; item8[] = {"prepare",2,250,-75.000000,-250.000000,25.000000,-200.000000,0.000000,"prepare"}; item9[] = {"Check",2,250,-250.000000,-25.000000,-150.000000,25.000000,0.000000,"Check"}; item10[] = {"",7,210,-204.000000,-154.000000,-196.000000,-146.000000,0.000000,""}; item11[] = {"Released_Delay_",4,4314,-250.000000,50.000000,-150.000000,100.000000,0.000000,"Released" \n "Delay" \n ""}; link0[] = {0,7}; link1[] = {1,8}; link2[] = {2,11}; link3[] = {3,4}; link4[] = {4,6}; link5[] = {5,8}; link6[] = {6,2}; link7[] = {7,8}; link8[] = {8,3}; link9[] = {8,5}; link10[] = {9,10}; link11[] = {10,1}; link12[] = {10,3}; link13[] = {11,9}; globals[] = {25.000000,1,0,0,0,640,480,1,47,6316128,1,-497.761261,579.685730,295.259521,-641.446960,689,599,1}; window[] = {2,-1,-1,-32000,-32000,930,150,1479,150,3,707}; *//*%FSM*/ class FSM { fsmName = "DayZ Wild Zeds Control"; class States { /*%FSM*/ class init { name = "init"; init = /*%FSM*/""/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class initialized { priority = 0.000000; to="prepare"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"!isnil ""bis_fnc_init"""/*%FSM*/; action=/*%FSM*/"diag_log (""WILD SPAWN: INITIALIZING WILD SPAWN SCRIPT"");" \n ""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ /*%FSM*/ class Delay_ { name = "Delay_"; init = /*%FSM*/"_timeD = diag_tickTime;"/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class Released_Delay_ { priority = 0.000000; to="Check"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"(diag_tickTime - _timeD) > 5"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ /*%FSM*/ class Spawn { name = "Spawn"; init = /*%FSM*/"_timeN = diag_tickTime;" \n "" \n "" \n "_tmp = [_unitTypes, _amount2Spawn];" \n "_waiting = _tmp call server_Wildgenerate;" \n "" \n "" \n "" \n "" \n ""/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class Return { priority = 0.000000; to="Delay_"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"_waiting"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ /*%FSM*/ class prepare { name = "prepare"; init = /*%FSM*/"_timeN = diag_tickTime;" \n "_spawnmore = false;" \n "_amount2Spawn = 100;" \n "_totalamount=1000;" \n "_unitTypes = [""Wild_Civ_newBase""];" \n "" \n "" \n "_debugarea = getMarkerPos ""respawn_west"";" \n "_pos = getMarkerPos ""center"";" \n "" \n "_wildZombies = {local _x} count (_pos nearEntities [""WildZombie_Base"",7500]);" \n "_count = _totalamount - _wildZombies;" \n "" \n "if (_count > _amount2Spawn) then {" \n " _spawnmore = true;" \n "};" \n "" \n "diag_log format [""WILD SPAWN: Active: %1, Waiting: %2"",_wildZombies,_count]" \n ""/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class Need_more { priority = 3.000000; to="Spawn"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"_spawnmore"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ /*%FSM*/ class Timeout { priority = 0.000000; to="prepare"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"(diag_tickTime - _timeN) > 600"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ /*%FSM*/ class Check { name = "Check"; init = /*%FSM*/"_spawnmore = false;" \n "_wildZombies = {local _x} count (_pos nearEntities [""WildZombie_Base"",7500]);" \n "_count = 200 - _wildZombies;" \n "" \n "if (_count > _amount2Spawn) then {" \n " _spawnmore = true;" \n "};"/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class Need_more { priority = 3.000000; to="Spawn"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"_spawnmore"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ /*%FSM*/ class No_More_Needed { priority = 0.000000; to="prepare"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"!_spawnmore"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ }; initState="init"; finalStates[] = { }; }; /*%FSM*/