diff --git a/@ExileServer/addons/a3_dms/FSM/missions.fsm b/@ExileServer/addons/a3_dms/FSM/missions.fsm
index 5195dba..f4b5484 100644
--- a/@ExileServer/addons/a3_dms/FSM/missions.fsm
+++ b/@ExileServer/addons/a3_dms/FSM/missions.fsm
@@ -16,11 +16,14 @@ item11[] = {"Mission_Cleanup",2,250,697.923035,248.598328,797.923035,298.598328,
item12[] = {"INITIALIZE",4,218,638.875183,-106.463760,728.875183,-56.463760,0.000000,"INITIALIZE"};
item13[] = {"PREPARE",2,250,763.528931,-107.864372,853.528931,-57.864372,0.000000,"PREPARE"};
item14[] = {"___min_loop",4,218,838.578918,171.729218,928.578918,221.729218,3.000000,"1 min loop"};
-item15[] = {"Select_Mission",2,4346,839.279602,248.118042,929.279663,298.118042,0.000000,"Select Mission"};
+item15[] = {"Select_Mission",2,250,839.279602,248.118042,929.279663,298.118042,0.000000,"Select Mission"};
item16[] = {"",7,210,880.582092,366.639160,888.582092,374.639160,0.000000,""};
-item17[] = {"___min_loop__AI",4,218,975.237671,175.934219,1065.237793,225.934219,0.000000,"1 min loop (AI)"};
-item18[] = {"Set_AI_Ownership",2,250,975.237732,250.921417,1065.237305,300.921417,0.000000,"Set AI Ownership"};
-item19[] = {"",7,210,1016.540222,366.725281,1024.540283,374.725281,0.000000,""};
+item17[] = {"___min_loop__AI",4,218,954.751831,174.416748,1044.750732,224.416748,0.000000,"1 min loop (AI)"};
+item18[] = {"Set_AI_Ownership",2,250,953.993164,247.127747,1043.991455,297.127747,0.000000,"Set AI Ownership"};
+item19[] = {"",7,210,995.295715,366.725281,1003.295776,374.725281,0.000000,""};
+item20[] = {"Freeze_Loop",4,218,1067.345947,174.190506,1157.346191,224.190506,0.000000,"Freeze Loop"};
+item21[] = {"Freeze_Manager",2,250,1067.652466,248.645218,1157.652100,298.645233,0.000000,"Freeze Manager"};
+item22[] = {"",7,210,1108.954956,366.725311,1116.955078,374.725311,0.000000,""};
link0[] = {0,10};
link1[] = {1,12};
link2[] = {2,3};
@@ -28,24 +31,28 @@ link3[] = {3,5};
link4[] = {3,8};
link5[] = {3,14};
link6[] = {3,17};
-link7[] = {4,7};
-link8[] = {5,6};
-link9[] = {6,10};
-link10[] = {7,9};
-link11[] = {8,11};
-link12[] = {9,2};
-link13[] = {10,4};
-link14[] = {11,0};
-link15[] = {12,13};
-link16[] = {13,2};
-link17[] = {14,15};
-link18[] = {15,16};
-link19[] = {16,0};
-link20[] = {17,18};
-link21[] = {18,19};
-link22[] = {19,16};
-globals[] = {0.000000,0,0,0,0,640,480,2,454,6316128,1,432.812775,1219.813965,504.306030,-50.239235,799,589,1};
-window[] = {0,-1,-1,-1,-1,834,100,1394,100,1,817};
+link7[] = {3,20};
+link8[] = {4,7};
+link9[] = {5,6};
+link10[] = {6,10};
+link11[] = {7,9};
+link12[] = {8,11};
+link13[] = {9,2};
+link14[] = {10,4};
+link15[] = {11,0};
+link16[] = {12,13};
+link17[] = {13,2};
+link18[] = {14,15};
+link19[] = {15,16};
+link20[] = {16,0};
+link21[] = {17,18};
+link22[] = {18,19};
+link23[] = {19,16};
+link24[] = {20,21};
+link25[] = {21,22};
+link26[] = {22,19};
+globals[] = {0.000000,0,0,0,0,640,480,2,457,6316128,1,382.327179,1353.613037,520.585144,-195.419098,799,589,1};
+window[] = {0,-1,-1,-32000,-32030,859,125,1419,125,1,817};
*//*%FSM*/
class FSM
{
@@ -112,6 +119,16 @@ class FSM
action=/*%FSM*/""/*%FSM*/;
};
/*%FSM*/
+ /*%FSM*/
+ class Freeze_Loop
+ {
+ priority = 0.000000;
+ to="Freeze_Manager";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"((diag_tickTime - _freeze) > DMS_ai_freezeCheckingDelay)"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
/*%FSM*/
class ___min_loop__AI
{
@@ -180,10 +197,11 @@ class FSM
init = /*%FSM*/"private [""_missionsMonitor"",""_cleanupTime"",""_selectMission""];" \n
"diag_log (""DMS :: Initializing FSM mission script"");" \n
"" \n
- "_missionsMonitor = diag_tickTime;" \n
- "_cleanupTime = diag_tickTime;" \n
- "_selectMission = diag_tickTime;" \n
- "_aiLocality = diag_tickTime;"/*%FSM*/;
+ "_missionsMonitor = 0;" \n
+ "_cleanupTime = 0;" \n
+ "_selectMission = 0;" \n
+ "_aiLocality = 0;" \n
+ "_freeze = 0;"/*%FSM*/;
precondition = /*%FSM*/""/*%FSM*/;
class Links
{
@@ -255,6 +273,30 @@ class FSM
};
};
/*%FSM*/
+ /*%FSM*/
+ class Freeze_Manager
+ {
+ name = "Freeze_Manager";
+ init = /*%FSM*/"//(format [""FSM CHECK :: calling DMS_fnc_AILocalityManager""]) call DMS_fnc_DebugLog;" \n
+ "" \n
+ "_freeze = diag_tickTime;" \n
+ "call DMS_fnc_FreezeManager;"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class true
+ {
+ priority = 0.000000;
+ to="Waiting";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"true"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
};
initState="INIT";
finalStates[] =
diff --git a/@ExileServer/addons/a3_dms/config.cpp b/@ExileServer/addons/a3_dms/config.cpp
index e0c2240..ad57928 100644
--- a/@ExileServer/addons/a3_dms/config.cpp
+++ b/@ExileServer/addons/a3_dms/config.cpp
@@ -4,7 +4,7 @@ class CfgPatches
{
units[] = {};
weapons[] = {};
- a3_DMS_version = "July 9, 2016";
+ a3_DMS_version = "July 11, 2016";
requiredVersion = 1.36;
requiredAddons[] = {"exile_client","exile_server_config"};
};
diff --git a/@ExileServer/addons/a3_dms/fn_DMS_postInit.sqf b/@ExileServer/addons/a3_dms/fn_DMS_postInit.sqf
index 6c92504..d73b26c 100644
--- a/@ExileServer/addons/a3_dms/fn_DMS_postInit.sqf
+++ b/@ExileServer/addons/a3_dms/fn_DMS_postInit.sqf
@@ -216,15 +216,28 @@ if (DMS_ShowDifficultyColorLegend) then
{
+ missionNamespace setVariable
+ [
+ format["DMS_Mission_%1",_missionName],
+ compileFinal preprocessFileLineNumbers (format ["\x\addons\DMS\missions\bandit\%1.sqf",_missionName])
+ ];
+
[_x] call DMS_fnc_SpawnBanditMission;
} forEach DMS_BanditMissionsOnServerStart;
+
if (DMS_StaticMission) then
{
private _temp = DMS_StaticMinPlayerDistance;
DMS_StaticMinPlayerDistance = 0;
{
+ missionNamespace setVariable
+ [
+ format["DMS_StaticMission_%1",_x],
+ compileFinal preprocessFileLineNumbers (format ["\x\addons\DMS\missions\static\%1.sqf",_x])
+ ];
+
[_x] call DMS_fnc_SpawnStaticMission;
} forEach DMS_StaticMissionsOnServerStart;
@@ -235,9 +248,6 @@ if (DMS_StaticMission) then
// Add heli paratroopers monitor to the thread system.
[5, DMS_fnc_HeliParatroopers_Monitor, [], true] call ExileServer_system_thread_addTask;
-// Add "freeze" monitor to the thread system.
-[DMS_ai_freezeCheckingDelay, DMS_fnc_FreezeManager, [], true] call ExileServer_system_thread_addTask;
-
diff --git a/@ExileServer/addons/a3_dms/scripts/fn_CreateMarker.sqf b/@ExileServer/addons/a3_dms/scripts/fn_CreateMarker.sqf
index a3285c6..36cc4f7 100644
--- a/@ExileServer/addons/a3_dms/scripts/fn_CreateMarker.sqf
+++ b/@ExileServer/addons/a3_dms/scripts/fn_CreateMarker.sqf
@@ -45,39 +45,38 @@ private _randomMarker =
private _num = DMS_MissionCount;
-private _color = "ColorGreen";
+
private _markerType = "mil_dot";
+private _color =
+ switch (toLower _difficulty) do
+ {
+ case "easy":
+ {
+ _markerType = "ExileMissionEasyIcon";
+ "ColorGreen"
+ };
+ case "moderate":
+ {
+ _markerType = "ExileMissionModerateIcon";
+ "ColorYellow"
+ };
+ case "difficult":
+ {
+ _markerType = "ExileMissionDifficultIcon";
+ "ColorRed"
+ };
+ case "hardcore":
+ {
+ _markerType = "ExileMissionHardcoreIcon";
+ "ColorBlack"
+ };
-switch (toLower _difficulty) do
-{
- case "easy":
- {
- _color = "ColorGreen";
- _markerType = "ExileMissionEasyIcon";
+ default
+ {
+ _difficulty
+ };
};
- case "moderate":
- {
- _color = "ColorYellow";
- _markerType = "ExileMissionModerateIcon";
- };
- case "difficult":
- {
- _color = "ColorRed";
- _markerType = "ExileMissionDifficultIcon";
- };
- case "hardcore":
- {
- _color = "ColorBlack";
- _markerType = "ExileMissionHardcoreIcon";
- };
-
- default
- {
- _color = _difficulty;
- _markerType = "mil_dot";
- };
-};
/*
// Don't think this is really needed, ArmA gives you an error anyways.
diff --git a/Changelog.md b/Changelog.md
index 43fe837..10b6b78 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -4,6 +4,11 @@
### Main Branch
+### July 11, 2016 (7:00 PM CST-America):
+* Fixed spawning missions on server start if it wasn't listed in static/bandit missions.
+* Moved the freeze manager to FSM.
+* Slight optimizations + fixes for the new markers (they look amazing btw :D ).
+
### July 11, 2016 (5:20 PM CST-America):
* **NEW CONFIG VALUE**