mirror of
https://github.com/Defent/DMS_Exile.git
synced 2024-08-30 16:52:12 +00:00
0544cfe9e7
Created disclaimer for DMS. Now mentioning that HC for DMS isn't that good. Some structure stuff in readme (let's see if it works lol) * **NEW CONFIG VALUE: DMS_Use_Map_Config** * You can now overwrite "main config values" with map-specific config values located in the new "map_configs" folder. This should allow you to use one DMS PBO if you have multiple servers with different maps. Included examples for Altis, Bornholm, Esseker, and Tavi (Taviana). * Because of the above implementation, DMS by default will not include the salt flats blacklist for findSafePos. In addition, it is preconfigured to the hilly terrains in Esseker and Taviana, as well as reducing all of the blacklist distances due to the smaller map size in Esseker. * Created new function "DMS_fnc_DebugLog". All DMS files (that produced debug logs) have been changed, including mission files. However, updating them is not important (and completely pointless if you don't even use DMS_DEBUG). * Fixed a few locations where it said "sized" instead of "seized". Thanks to [icomrade](https://github.com/icomrade) for pointing them out. * DMS now utilizes the "ARMA_LOG" DLL (if it exists) by infiSTAR to produce debug logs (if enabled). All debug logs now also include server uptime (in seconds) and server FPS. * The FSM no longer produces debug logs. * AI Locality manager will now run every minute. * Debug logs for "DMS_fnc_MissionsMonitor" will only output the mission name and the position, instead of all of the parameters. * "DMS_fnc_IsNearWater" will now check the provided position itself for water. * "DMS_fnc_IsValidPosition" will now do a surfaceNormal check within a 5 meter radius of the provided position as well. * "_customGearSet" should now actually work for "DMS_fnc_SpawnAISoldier", and the function title comment has been updated for the slightly tweaked syntax.
274 lines
15 KiB
Plaintext
274 lines
15 KiB
Plaintext
/*%FSM<COMPILE "scriptedFSM.cfg, missions">*/
|
|
/*%FSM<HEAD>*/
|
|
/*
|
|
item0[] = {"",7,210,743.923157,366.553040,751.923157,374.553040,0.000000,""};
|
|
item1[] = {"INIT",0,250,499.929565,-106.207787,589.929565,-56.207787,0.000000,"INIT"};
|
|
item2[] = {"true",8,218,758.881348,3.975540,858.881348,53.975540,0.000000,"true"};
|
|
item3[] = {"Waiting",2,250,758.881226,84.582077,858.881226,134.582092,0.000000,"Waiting"};
|
|
item4[] = {"",7,210,518.910339,366.553040,526.910339,374.553040,0.000000,""};
|
|
item5[] = {"__5_sec_loop_",4,218,547.923096,174.999939,647.923096,224.999939,1.000000,"15 sec loop" \n ""};
|
|
item6[] = {"Check_Mission_Running",2,250,547.923035,248.598328,647.923035,298.598328,0.000000,"Check Mission" \n "Running" \n "Status"};
|
|
item7[] = {"",7,210,518.897522,321.700806,526.897522,329.700806,0.000000,""};
|
|
item8[] = {"___min_loop_1",4,218,702.828857,170.094177,792.828857,220.094177,2.000000,"5 min loop"};
|
|
item9[] = {"",7,210,518.897522,24.975555,526.897522,32.975555,0.000000,""};
|
|
item10[] = {"",7,210,593.923096,366.553040,601.923096,374.553040,0.000000,""};
|
|
item11[] = {"Mission_Cleanup",2,250,697.923035,248.598328,797.923035,298.598328,0.000000,"Mission Cleanup"};
|
|
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,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,4314,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,""};
|
|
link0[] = {0,10};
|
|
link1[] = {1,12};
|
|
link2[] = {2,3};
|
|
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,563,1};
|
|
window[] = {0,-1,-1,-1,-1,1045,285,1579,311,1,817};
|
|
*//*%FSM</HEAD>*/
|
|
class FSM
|
|
{
|
|
fsmName = "missions";
|
|
class States
|
|
{
|
|
/*%FSM<STATE "INIT">*/
|
|
class INIT
|
|
{
|
|
name = "INIT";
|
|
itemno = 1;
|
|
init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "INITIALIZE">*/
|
|
class INITIALIZE
|
|
{
|
|
itemno = 12;
|
|
priority = 0.000000;
|
|
to="PREPARE";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"!isnil ""bis_fnc_init"""/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Waiting">*/
|
|
class Waiting
|
|
{
|
|
name = "Waiting";
|
|
itemno = 3;
|
|
init = /*%FSM<STATEINIT""">*/"// Waiting for next task to proceed with."/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "___min_loop">*/
|
|
class ___min_loop
|
|
{
|
|
itemno = 14;
|
|
priority = 3.000000;
|
|
to="Select_Mission";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"((diag_tickTime - _selectMission) > 60)" \n
|
|
""/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
/*%FSM<LINK "___min_loop_1">*/
|
|
class ___min_loop_1
|
|
{
|
|
itemno = 8;
|
|
priority = 2.000000;
|
|
to="Mission_Cleanup";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"((diag_tickTime - _cleanupTime) > 300)"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/"_missionsMonitor = time;"/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
/*%FSM<LINK "__5_sec_loop_">*/
|
|
class __5_sec_loop_
|
|
{
|
|
itemno = 5;
|
|
priority = 1.000000;
|
|
to="Check_Mission_Running";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"((diag_tickTime - _missionsMonitor) > 15)"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
/*%FSM<LINK "___min_loop__AI">*/
|
|
class ___min_loop__AI
|
|
{
|
|
itemno = 17;
|
|
priority = 0.000000;
|
|
to="Set_AI_Ownership";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"((diag_tickTime - _aiLocality) > 60)"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Check_Mission_Running">*/
|
|
class Check_Mission_Running
|
|
{
|
|
name = "Check_Mission_Running";
|
|
itemno = 6;
|
|
init = /*%FSM<STATEINIT""">*/"//(format [""FSM CHECK :: calling DMS_fnc_MissionsMonitor""]) call DMS_fnc_DebugLog;" \n
|
|
"" \n
|
|
"_missionsMonitor = diag_tickTime;" \n
|
|
"call DMS_fnc_MissionsMonitor;"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "true">*/
|
|
class true
|
|
{
|
|
itemno = 2;
|
|
priority = 0.000000;
|
|
to="Waiting";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Mission_Cleanup">*/
|
|
class Mission_Cleanup
|
|
{
|
|
name = "Mission_Cleanup";
|
|
itemno = 11;
|
|
init = /*%FSM<STATEINIT""">*/"//(format [""FSM CHECK :: calling DMS_fnc_CleanUpManager""]) call DMS_fnc_DebugLog;" \n
|
|
"" \n
|
|
"_cleanupTime = diag_tickTime;" \n
|
|
"call DMS_fnc_CleanUpManager;"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "true">*/
|
|
class true
|
|
{
|
|
itemno = 2;
|
|
priority = 0.000000;
|
|
to="Waiting";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "PREPARE">*/
|
|
class PREPARE
|
|
{
|
|
name = "PREPARE";
|
|
itemno = 13;
|
|
init = /*%FSM<STATEINIT""">*/"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</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "true">*/
|
|
class true
|
|
{
|
|
itemno = 2;
|
|
priority = 0.000000;
|
|
to="Waiting";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Select_Mission">*/
|
|
class Select_Mission
|
|
{
|
|
name = "Select_Mission";
|
|
itemno = 15;
|
|
init = /*%FSM<STATEINIT""">*/"//(format [""FSM CHECK :: calling DMS_fnc_SelectMission""]) call DMS_fnc_DebugLog;" \n
|
|
"" \n
|
|
"_selectMission = diag_tickTime;" \n
|
|
"call DMS_fnc_SelectMission;"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "true">*/
|
|
class true
|
|
{
|
|
itemno = 2;
|
|
priority = 0.000000;
|
|
to="Waiting";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
/*%FSM<STATE "Set_AI_Ownership">*/
|
|
class Set_AI_Ownership
|
|
{
|
|
name = "Set_AI_Ownership";
|
|
itemno = 18;
|
|
init = /*%FSM<STATEINIT""">*/"//(format [""FSM CHECK :: calling DMS_fnc_AILocalityManager""]) call DMS_fnc_DebugLog;" \n
|
|
"" \n
|
|
"_aiLocality = diag_tickTime;" \n
|
|
"call DMS_fnc_AILocalityManager;"/*%FSM</STATEINIT""">*/;
|
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
|
class Links
|
|
{
|
|
/*%FSM<LINK "true">*/
|
|
class true
|
|
{
|
|
itemno = 2;
|
|
priority = 0.000000;
|
|
to="Waiting";
|
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
|
condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
|
|
action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
|
|
};
|
|
/*%FSM</LINK>*/
|
|
};
|
|
};
|
|
/*%FSM</STATE>*/
|
|
};
|
|
initState="INIT";
|
|
finalStates[] =
|
|
{
|
|
};
|
|
};
|
|
/*%FSM</COMPILE>*/ |