/*%FSM*/ /*%FSM*/ /* item0[] = {"init",0,250,-150.000000,75.000000,-50.000000,125.000000,0.000000,"init"}; item1[] = {"wait",2,250,-25.000000,300.000000,75.000000,350.000000,0.000000,"wait"}; item2[] = {"End",1,250,100.000000,225.000000,200.000000,275.000000,0.000000,"End"}; item3[] = {"Not_Alive",4,218,-150.000000,300.000000,-50.000000,350.000000,4.000000,"Not" \n "Alive"}; item4[] = {"Loiter",2,250,-150.000000,225.000000,-50.000000,275.000000,0.000000,"Loiter"}; item5[] = {"In_Position",4,4314,-250.000000,275.000000,-150.000000,325.000000,2.000000,"In Position"}; item6[] = {"preloaded",4,218,-150.000000,150.000000,-50.000000,200.000000,0.000000,"preloaded"}; item7[] = {"time_up",4,218,-25.000000,225.000000,75.000000,275.000000,0.000000,"time" \n "up"}; item8[] = {"player_check",4,218,-250.000000,175.000000,-150.000000,225.000000,1.000000,"player" \n "check"}; item9[] = {"player_check",4,218,100.000000,300.000000,200.000000,350.000000,1.000000,"player" \n "check"}; item10[] = {"tamed",4,218,-25.000000,150.000000,75.000000,200.000000,3.000000,"tamed"}; link0[] = {0,6}; link1[] = {1,7}; link2[] = {1,9}; link3[] = {3,1}; link4[] = {4,3}; link5[] = {4,5}; link6[] = {4,7}; link7[] = {4,8}; link8[] = {4,10}; link9[] = {5,4}; link10[] = {6,4}; link11[] = {7,2}; link12[] = {8,4}; link13[] = {9,1}; link14[] = {10,2}; globals[] = {25.000000,1,0,0,0,640,480,1,89,6316128,1,-299.424194,296.746490,405.380127,-436.653168,303,856,1}; window[] = {0,-1,-1,-1,-1,1076,75,1283,75,1,321}; *//*%FSM*/ class FSM { fsmName = "DayZ Animal Agent"; class States { /*%FSM*/ class init { name = "init"; init = /*%FSM*/"_pos = _this select 0;" \n "_agent = _this select 1;" \n "" \n "_isSomeone = true;" \n "_timeA = time;" \n "_isTamed = false;"/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class preloaded { priority = 0.000000; to="Loiter"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"dayz_clientPreload"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ /*%FSM*/ class wait { name = "wait"; init = /*%FSM*/"_entityTime = time;"/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class player_check { priority = 1.000000; to="wait"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"(time - _entityTime) > 30"/*%FSM*/; action=/*%FSM*/"_entityTime = time;" \n "" \n "_list = (getposATL _agent) nearEntities [[""CAManBase"",""AllVehicles""],300];" \n "_isSomeone = ({isPlayer _x} count _list) > 0;" \n "" \n "if (_isSomeone) then {" \n " _timeA = time;" \n "};"/*%FSM*/; }; /*%FSM*/ /*%FSM*/ class time_up { priority = 0.000000; to="End"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"(time - _timeA) > 120 and !_isSomeone"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ /*%FSM*/ class End { name = "End"; init = /*%FSM*/"if (!_isTamed) then {" \n " if (!_isSomeone) then {" \n " deleteVehicle _agent;" \n " } else {" \n " dayz_bodyMonitor set [count dayz_bodyMonitor,_agent];" \n " };" \n "};"/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { }; }; /*%FSM*/ /*%FSM*/ class Loiter { name = "Loiter"; init = /*%FSM*/"_isAlive = alive _agent;" \n "" \n "//_agent forceSpeed 2;" \n "_entityTime = time;"/*%FSM*/; precondition = /*%FSM*/""/*%FSM*/; class Links { /*%FSM*/ class Not_Alive { priority = 4.000000; to="wait"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"!_isAlive"/*%FSM*/; action=/*%FSM*/"_timeA = time;"/*%FSM*/; }; /*%FSM*/ /*%FSM*/ class tamed { priority = 3.000000; to="End"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"_isTamed"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ /*%FSM*/ class In_Position { priority = 2.000000; to="Loiter"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"_agent distance _pos < 3"/*%FSM*/; action=/*%FSM*/"_pos = [_pos,10,90,4,0,5,0] call BIS_fnc_findSafePos;" \n "_agent moveTo _pos;"/*%FSM*/; }; /*%FSM*/ /*%FSM*/ class player_check { priority = 1.000000; to="Loiter"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"(time - _entityTime) > 30"/*%FSM*/; action=/*%FSM*/"_entityTime = time;" \n "" \n "_list = (getposATL _agent) nearEntities [[""CAManBase"",""AllVehicles""],300];" \n "_isSomeone = ({isPlayer _x} count _list) > 0;" \n "" \n "if (_isSomeone) then {" \n " _timeA = time;" \n "};"/*%FSM*/; }; /*%FSM*/ /*%FSM*/ class time_up { priority = 0.000000; to="End"; precondition = /*%FSM*/""/*%FSM*/; condition=/*%FSM*/"(time - _timeA) > 120 and !_isSomeone"/*%FSM*/; action=/*%FSM*/""/*%FSM*/; }; /*%FSM*/ }; }; /*%FSM*/ }; initState="init"; finalStates[] = { "End", }; }; /*%FSM*/