diff --git a/@ExileServer/addons/a3_dms/config.sqf b/@ExileServer/addons/a3_dms/config.sqf
index 0576ba5..a5dfde0 100644
--- a/@ExileServer/addons/a3_dms/config.sqf
+++ b/@ExileServer/addons/a3_dms/config.sqf
@@ -610,14 +610,3 @@ DMS_DEBUG = false;
"Exile_Chopper_Taru_Transport_Black"
];
/* Loot Settings */
-
-
-// Debug Overwrites
-if(DMS_DEBUG) then
-{
- DMS_TimeBetweenMissions = [10,15];
- DMS_MissionTimeOut = [60,70];
- //DMS_BanditMissionTypes = [["testmission",1]];
- //DMS_BanditMissionTypes = [["mercbase",1]];
- diag_log format ["DMS_DEBUG CONFIG :: Overriding DMS_TimeBetweenMissions (%1) and DMS_MissionTimeOut (%2)",DMS_TimeBetweenMissions,DMS_MissionTimeOut];
-};
diff --git a/@ExileServer/addons/a3_dms/missions/bandit/bandits.sqf b/@ExileServer/addons/a3_dms/missions/bandit/bandits.sqf
index 384d74c..605490a 100644
--- a/@ExileServer/addons/a3_dms/missions/bandit/bandits.sqf
+++ b/@ExileServer/addons/a3_dms/missions/bandit/bandits.sqf
@@ -36,7 +36,7 @@ _group =
// Create Crate
_crate = ["Box_NATO_Wps_F",_pos] call DMS_fnc_SpawnCrate;
-_vehicle = ["Exile_Car_Offroad_Armed_Guerilla01",_pos] call DMS_fnc_SpawnNonPersistentVehicle;
+_vehicle = ["Exile_Car_Offroad_Armed_Guerilla01",[_pos,3+(random 5),random 360] call DMS_fnc_SelectOffsetPos] call DMS_fnc_SpawnNonPersistentVehicle;
// Set crate loot values
_crate_loot_values =
@@ -106,7 +106,9 @@ _added =
_missionObjs,
[_msgWIN,_msgLOSE],
_markers,
- _side
+ _side,
+ _difficulty,
+ []
] call DMS_fnc_AddMissionToMonitor;
// Check to see if it was added correctly, otherwise delete the stuff
diff --git a/@ExileServer/addons/a3_dms/missions/bandit/bauhaus.sqf b/@ExileServer/addons/a3_dms/missions/bandit/bauhaus.sqf
index db42eab..9fc931d 100644
--- a/@ExileServer/addons/a3_dms/missions/bandit/bauhaus.sqf
+++ b/@ExileServer/addons/a3_dms/missions/bandit/bauhaus.sqf
@@ -16,7 +16,7 @@ _side = "bandit";
// find position
-_pos = [10,100] call DMS_fnc_findSafePos;
+_pos = [10] call DMS_fnc_findSafePos;
// Set general mission difficulty
@@ -117,7 +117,9 @@ _added =
_missionObjs,
[_msgWIN,_msgLOSE],
_markers,
- _side
+ _side,
+ _difficulty,
+ []
] call DMS_fnc_AddMissionToMonitor;
// Check to see if it was added correctly, otherwise delete the stuff
diff --git a/@ExileServer/addons/a3_dms/missions/bandit/beertransport.sqf b/@ExileServer/addons/a3_dms/missions/bandit/beertransport.sqf
index da597c4..9a0ca26 100644
--- a/@ExileServer/addons/a3_dms/missions/bandit/beertransport.sqf
+++ b/@ExileServer/addons/a3_dms/missions/bandit/beertransport.sqf
@@ -16,11 +16,11 @@ _side = "bandit";
// find position
-_pos = [10,100] call DMS_fnc_findSafePos;
+_pos = [10] call DMS_fnc_findSafePos;
// Set general mission difficulty
-_difficulty = "difficult";
+_difficulty = "easy";
// Create AI
@@ -110,7 +110,9 @@ _added =
_missionObjs,
[_msgWIN,_msgLOSE],
_markers,
- _side
+ _side,
+ _difficulty,
+ []
] call DMS_fnc_AddMissionToMonitor;
// Check to see if it was added correctly, otherwise delete the stuff
diff --git a/@ExileServer/addons/a3_dms/missions/bandit/behindenemylines.sqf b/@ExileServer/addons/a3_dms/missions/bandit/behindenemylines.sqf
index 71554f1..9365890 100644
--- a/@ExileServer/addons/a3_dms/missions/bandit/behindenemylines.sqf
+++ b/@ExileServer/addons/a3_dms/missions/bandit/behindenemylines.sqf
@@ -16,7 +16,7 @@ _side = "bandit";
// find position
-_pos = [10,100] call DMS_fnc_findSafePos;
+_pos = [10] call DMS_fnc_findSafePos;
// Set general mission difficulty
@@ -110,7 +110,9 @@ _added =
_missionObjs,
[_msgWIN,_msgLOSE],
_markers,
- _side
+ _side,
+ _difficulty,
+ []
] call DMS_fnc_AddMissionToMonitor;
// Check to see if it was added correctly, otherwise delete the stuff
diff --git a/@ExileServer/addons/a3_dms/missions/bandit/blackhawkdown.sqf b/@ExileServer/addons/a3_dms/missions/bandit/blackhawkdown.sqf
index a745a3c..3d38577 100644
--- a/@ExileServer/addons/a3_dms/missions/bandit/blackhawkdown.sqf
+++ b/@ExileServer/addons/a3_dms/missions/bandit/blackhawkdown.sqf
@@ -16,7 +16,7 @@ _side = "bandit";
// find position
-_pos = [10,100] call DMS_fnc_findSafePos;
+_pos = [10] call DMS_fnc_findSafePos;
// Set general mission difficulty
@@ -110,7 +110,9 @@ _added =
_missionObjs,
[_msgWIN,_msgLOSE],
_markers,
- _side
+ _side,
+ _difficulty,
+ []
] call DMS_fnc_AddMissionToMonitor;
// Check to see if it was added correctly, otherwise delete the stuff
diff --git a/@ExileServer/addons/a3_dms/missions/bandit/cardealer.sqf b/@ExileServer/addons/a3_dms/missions/bandit/cardealer.sqf
index 405326d..44eaea0 100644
--- a/@ExileServer/addons/a3_dms/missions/bandit/cardealer.sqf
+++ b/@ExileServer/addons/a3_dms/missions/bandit/cardealer.sqf
@@ -16,7 +16,7 @@ _side = "bandit";
// find position
-_pos = [10,100] call DMS_fnc_findSafePos;
+_pos = [10] call DMS_fnc_findSafePos;
// Set general mission difficulty
@@ -115,7 +115,9 @@ _added =
_missionObjs,
[_msgWIN,_msgLOSE],
_markers,
- _side
+ _side,
+ _difficulty,
+ []
] call DMS_fnc_AddMissionToMonitor;
// Check to see if it was added correctly, otherwise delete the stuff
diff --git a/@ExileServer/addons/a3_dms/missions/bandit/construction.sqf b/@ExileServer/addons/a3_dms/missions/bandit/construction.sqf
index bd969c0..117941d 100644
--- a/@ExileServer/addons/a3_dms/missions/bandit/construction.sqf
+++ b/@ExileServer/addons/a3_dms/missions/bandit/construction.sqf
@@ -113,7 +113,9 @@ _added =
_missionObjs,
[_msgWIN,_msgLOSE],
_markers,
- _side
+ _side,
+ _difficulty,
+ []
] call DMS_fnc_AddMissionToMonitor;
// Check to see if it was added correctly, otherwise delete the stuff
diff --git a/@ExileServer/addons/a3_dms/missions/bandit/donthasslethehoff.sqf b/@ExileServer/addons/a3_dms/missions/bandit/donthasslethehoff.sqf
index 38e6105..10c360a 100644
--- a/@ExileServer/addons/a3_dms/missions/bandit/donthasslethehoff.sqf
+++ b/@ExileServer/addons/a3_dms/missions/bandit/donthasslethehoff.sqf
@@ -16,7 +16,7 @@ _side = "bandit";
// find position
-_pos = [10,100] call DMS_fnc_findSafePos;
+_pos = [10] call DMS_fnc_findSafePos;
// Set general mission difficulty
@@ -124,7 +124,9 @@ _added =
_missionObjs,
[_msgWIN,_msgLOSE],
_markers,
- _side
+ _side,
+ _difficulty,
+ []
] call DMS_fnc_AddMissionToMonitor;
// Check to see if it was added correctly, otherwise delete the stuff
diff --git a/@ExileServer/addons/a3_dms/missions/bandit/foodtransport.sqf b/@ExileServer/addons/a3_dms/missions/bandit/foodtransport.sqf
index c19ed85..b3d9a69 100644
--- a/@ExileServer/addons/a3_dms/missions/bandit/foodtransport.sqf
+++ b/@ExileServer/addons/a3_dms/missions/bandit/foodtransport.sqf
@@ -16,7 +16,7 @@ _side = "bandit";
// find position
-_pos = [10,100] call DMS_fnc_findSafePos;
+_pos = [10] call DMS_fnc_findSafePos;
// Set general mission difficulty
@@ -66,16 +66,16 @@ _missionObjs =
];
// Define Mission Start message
-_msgStart = format["Humantarian Supplies!
A humanitarian supply truck has been sized by ruthless bandits, stop them!"];
+_msgStart = format["Food Supplies!
A food supply truck has been sized by ruthless bandits, stop them!"];
// Define Mission Win message
-_msgWIN = format["Humantarian Supplies!
Convicts have successfully claimed the humanitarian supplies for themselves!"];
+_msgWIN = format["Food Supplies!
Convicts have successfully claimed the food supplies for themselves!"];
// Define Mission Lose message
-_msgLOSE = format["Humantarian Supplies!
The bandits have taken the humanitarian supplies and escaped!"];
+_msgLOSE = format["Food Supplies!
The bandits have taken the food supplies and escaped!"];
// Define mission name (for map marker and logging)
-_missionName = "Humantarian Supplies";
+_missionName = "Food Supplies";
// Create Markers
_markers =
@@ -110,7 +110,9 @@ _added =
_missionObjs,
[_msgWIN,_msgLOSE],
_markers,
- _side
+ _side,
+ _difficulty,
+ []
] call DMS_fnc_AddMissionToMonitor;
// Check to see if it was added correctly, otherwise delete the stuff
diff --git a/@ExileServer/addons/a3_dms/missions/bandit/guntransport.sqf b/@ExileServer/addons/a3_dms/missions/bandit/guntransport.sqf
index 39a8191..83a7c4a 100644
--- a/@ExileServer/addons/a3_dms/missions/bandit/guntransport.sqf
+++ b/@ExileServer/addons/a3_dms/missions/bandit/guntransport.sqf
@@ -16,7 +16,7 @@ _side = "bandit";
// find position
-_pos = [10,100] call DMS_fnc_findSafePos;
+_pos = [10] call DMS_fnc_findSafePos;
// Set general mission difficulty
@@ -110,7 +110,9 @@ _added =
_missionObjs,
[_msgWIN,_msgLOSE],
_markers,
- _side
+ _side,
+ _difficulty,
+ []
] call DMS_fnc_AddMissionToMonitor;
// Check to see if it was added correctly, otherwise delete the stuff
diff --git a/@ExileServer/addons/a3_dms/missions/bandit/humanitarian.sqf b/@ExileServer/addons/a3_dms/missions/bandit/humanitarian.sqf
index fcb62c6..af3f05a 100644
--- a/@ExileServer/addons/a3_dms/missions/bandit/humanitarian.sqf
+++ b/@ExileServer/addons/a3_dms/missions/bandit/humanitarian.sqf
@@ -16,7 +16,7 @@ _side = "bandit";
// find position
-_pos = [10,100] call DMS_fnc_findSafePos;
+_pos = [10] call DMS_fnc_findSafePos;
// Set general mission difficulty
@@ -110,7 +110,9 @@ _added =
_missionObjs,
[_msgWIN,_msgLOSE],
_markers,
- _side
+ _side,
+ _difficulty,
+ []
] call DMS_fnc_AddMissionToMonitor;
// Check to see if it was added correctly, otherwise delete the stuff
diff --git a/@ExileServer/addons/a3_dms/missions/bandit/lost_battalion.sqf b/@ExileServer/addons/a3_dms/missions/bandit/lost_battalion.sqf
index b3faf98..5780b13 100644
--- a/@ExileServer/addons/a3_dms/missions/bandit/lost_battalion.sqf
+++ b/@ExileServer/addons/a3_dms/missions/bandit/lost_battalion.sqf
@@ -16,7 +16,7 @@ _side = "bandit";
// find position
-_pos = [10,100] call DMS_fnc_findSafePos;
+_pos = [10] call DMS_fnc_findSafePos;
// Set general mission difficulty
@@ -108,7 +108,9 @@ _added =
_missionObjs,
[_msgWIN,_msgLOSE],
_markers,
- _side
+ _side,
+ _difficulty,
+ []
] call DMS_fnc_AddMissionToMonitor;
// Check to see if it was added correctly, otherwise delete the stuff
diff --git a/@ExileServer/addons/a3_dms/missions/bandit/medical.sqf b/@ExileServer/addons/a3_dms/missions/bandit/medical.sqf
index 94a3f51..37b3bbb 100644
--- a/@ExileServer/addons/a3_dms/missions/bandit/medical.sqf
+++ b/@ExileServer/addons/a3_dms/missions/bandit/medical.sqf
@@ -110,7 +110,9 @@ _added =
_missionObjs,
[_msgWIN,_msgLOSE],
_markers,
- _side
+ _side,
+ _difficulty,
+ []
] call DMS_fnc_AddMissionToMonitor;
// Check to see if it was added correctly, otherwise delete the stuff
diff --git a/@ExileServer/addons/a3_dms/missions/bandit/mercbase.sqf b/@ExileServer/addons/a3_dms/missions/bandit/mercbase.sqf
index 3668ef5..375affa 100644
--- a/@ExileServer/addons/a3_dms/missions/bandit/mercbase.sqf
+++ b/@ExileServer/addons/a3_dms/missions/bandit/mercbase.sqf
@@ -32,11 +32,18 @@ _group =
_side
] call DMS_fnc_SpawnAIGroup;
-// Use "base" waypoint instead
-while {(count (waypoints _group)) > 0} do
-{
- deleteWaypoint ((waypoints _group) select 0);
-};
+_veh =
+[
+ [
+ [_pos,100,random 360] call DMS_fnc_SelectOffsetPos,
+ _pos
+ ],
+ _group,
+ "assault",
+ _difficulty,
+ _side
+] call DMS_fnc_SpawnAIVehicle;
+
[
_group,
@@ -84,7 +91,7 @@ _missionAIUnits =
// Define mission-spawned objects and loot values
_missionObjs =
[
- _staticGuns+_baseObjs, // base objects and static gun
+ _staticGuns+_baseObjs+[_veh], // armed AI vehicle, base objects, and static gun
[],
[[_crate,"Sniper"]]
];
@@ -134,7 +141,9 @@ _added =
_missionObjs,
[_msgWIN,_msgLOSE],
_markers,
- _side
+ _side,
+ _difficulty,
+ []
] call DMS_fnc_AddMissionToMonitor;
// Check to see if it was added correctly, otherwise delete the stuff
diff --git a/@ExileServer/addons/a3_dms/missions/bandit/mercenaries.sqf b/@ExileServer/addons/a3_dms/missions/bandit/mercenaries.sqf
index 16315d3..a8c02d2 100644
--- a/@ExileServer/addons/a3_dms/missions/bandit/mercenaries.sqf
+++ b/@ExileServer/addons/a3_dms/missions/bandit/mercenaries.sqf
@@ -16,7 +16,7 @@ _side = "bandit";
// find position
-_pos = [10,100] call DMS_fnc_findSafePos;
+_pos = [10] call DMS_fnc_findSafePos;
// Set general mission difficulty
@@ -108,7 +108,9 @@ _added =
_missionObjs,
[_msgWIN,_msgLOSE],
_markers,
- _side
+ _side,
+ _difficulty,
+ []
] call DMS_fnc_AddMissionToMonitor;
// Check to see if it was added correctly, otherwise delete the stuff
diff --git a/@ExileServer/addons/a3_dms/missions/bandit/roguenavyseals.sqf b/@ExileServer/addons/a3_dms/missions/bandit/roguenavyseals.sqf
index 278f0f8..febbfa6 100644
--- a/@ExileServer/addons/a3_dms/missions/bandit/roguenavyseals.sqf
+++ b/@ExileServer/addons/a3_dms/missions/bandit/roguenavyseals.sqf
@@ -16,7 +16,7 @@ _side = "bandit";
// find position
-_pos = [10,100] call DMS_fnc_findSafePos;
+_pos = [10] call DMS_fnc_findSafePos;
// Set general mission difficulty
@@ -108,7 +108,9 @@ _added =
_missionObjs,
[_msgWIN,_msgLOSE],
_markers,
- _side
+ _side,
+ _difficulty,
+ []
] call DMS_fnc_AddMissionToMonitor;
// Check to see if it was added correctly, otherwise delete the stuff
diff --git a/@ExileServer/addons/a3_dms/missions/bandit/testmission.sqf b/@ExileServer/addons/a3_dms/missions/bandit/testmission.sqf
index 932f906..490ca5e 100644
--- a/@ExileServer/addons/a3_dms/missions/bandit/testmission.sqf
+++ b/@ExileServer/addons/a3_dms/missions/bandit/testmission.sqf
@@ -13,7 +13,7 @@ _side = "bandit";
// find position
-_pos = [10,10] call DMS_fnc_findSafePos;
+_pos = [10] call DMS_fnc_findSafePos;
// Set general mission difficulty
@@ -155,7 +155,9 @@ _added =
_missionObjs,
[_msgWIN,_msgLOSE],
_markers,
- _side
+ _side,
+ _difficulty,
+ []
] call DMS_fnc_AddMissionToMonitor;
// Check to see if it was added correctly, otherwise delete the stuff
diff --git a/@ExileServer/addons/a3_dms/missions/bandit/walmart.sqf b/@ExileServer/addons/a3_dms/missions/bandit/walmart.sqf
index d2bd715..efb871f 100644
--- a/@ExileServer/addons/a3_dms/missions/bandit/walmart.sqf
+++ b/@ExileServer/addons/a3_dms/missions/bandit/walmart.sqf
@@ -16,7 +16,7 @@ _side = "bandit";
// find position
-_pos = [10,100] call DMS_fnc_findSafePos;
+_pos = [10] call DMS_fnc_findSafePos;
// Set general mission difficulty
@@ -113,7 +113,9 @@ _added =
_missionObjs,
[_msgWIN,_msgLOSE],
_markers,
- _side
+ _side,
+ _difficulty,
+ []
] call DMS_fnc_AddMissionToMonitor;
// Check to see if it was added correctly, otherwise delete the stuff
diff --git a/@ExileServer/addons/a3_dms/scripts/fn_AddMissionToMonitor.sqf b/@ExileServer/addons/a3_dms/scripts/fn_AddMissionToMonitor.sqf
index 93e166b..a0d281f 100644
--- a/@ExileServer/addons/a3_dms/scripts/fn_AddMissionToMonitor.sqf
+++ b/@ExileServer/addons/a3_dms/scripts/fn_AddMissionToMonitor.sqf
@@ -42,15 +42,16 @@
],
[_msgWIN,_msgLose],
[_markerDot,_markerCircle],
- _side
+ _side,
+ _difficulty,
+ _missionEvents
] call DMS_fnc_AddMissionToMonitor;
Returns whether or not info was added successfully
- "_completionInfo", "_timeOutInfo", "_inputUnits", "_missionObjs", "_messages", "_markers", "_side", "_timeStarted", "_timeUntilFail"
*/
-private ["_added", "_pos", "_OK", "_completionInfo", "_timeOutInfo", "_inputUnits", "_missionObjs", "_mines", "_messages", "_markers", "_timeStarted", "_timeUntilFail", "_buildings", "_vehs", "_crate_info_array", "_msgWIN", "_msgLose", "_markerDot", "_markerCircle", "_side","_arr"];
+private ["_added", "_pos", "_OK", "_completionInfo", "_timeOutInfo", "_inputUnits", "_missionObjs", "_mines", "_messages", "_markers", "_timeStarted", "_timeUntilFail", "_buildings", "_vehs", "_crate_info_array", "_msgWIN", "_msgLose", "_markerDot", "_markerCircle", "_side", "_difficulty", "_missionEvents", "_arr"];
_added = false;
@@ -64,7 +65,9 @@ _OK = params
["_missionObjs","",[[]],[3,4]],
["_messages","",[[]],[2]],
["_markers","",[[]],[2]],
- ["_side","bandit",[""]]
+ ["_side","bandit",[""]],
+ ["_difficulty","moderate",[""]],
+ ["_missionEvents",[],[[]]]
];
if (!_OK) exitWith
@@ -124,6 +127,12 @@ try
_mines = _missionObjs param [3,[],[[]]];
};
+ // Don't spawn a minefield if there is one already defined in _missionObjs.
+ if (DMS_SpawnMinefieldForEveryMission && {_mines isEqualTo []}) then
+ {
+ _mines = [_pos, _difficulty, _side] call DMS_fnc_SpawnMinefield;
+ };
+
_OK = _messages params
[
@@ -170,7 +179,9 @@ try
_markerDot,
_markerCircle
],
- _side
+ _side,
+ _difficulty,
+ _missionEvents
];
DMS_Mission_Arr pushBack _arr;
_added = true;
diff --git a/@ExileServer/addons/a3_dms/scripts/fn_FindSafePos.sqf b/@ExileServer/addons/a3_dms/scripts/fn_FindSafePos.sqf
index 4d9c54b..743d634 100644
--- a/@ExileServer/addons/a3_dms/scripts/fn_FindSafePos.sqf
+++ b/@ExileServer/addons/a3_dms/scripts/fn_FindSafePos.sqf
@@ -74,8 +74,6 @@ while{!_validspot} do
if (DMS_MissionNearBlacklist>0) then
{
_missionPos = missionNamespace getVariable [format ["%1_pos",_x], []];
-
- diag_log format["Marker %1 has _missionPos: %2",_x,_missionPos];
if (!(_missionPos isEqualTo []) && {(_missionPos distance2D _pos)<=DMS_MissionNearBlacklist}) then
{
throw ("another mission");
diff --git a/@ExileServer/addons/a3_dms/scripts/fn_ImportFromM3E_Convert.sqf b/@ExileServer/addons/a3_dms/scripts/fn_ImportFromM3E_Convert.sqf
index 781593f..465cdc2 100644
--- a/@ExileServer/addons/a3_dms/scripts/fn_ImportFromM3E_Convert.sqf
+++ b/@ExileServer/addons/a3_dms/scripts/fn_ImportFromM3E_Convert.sqf
@@ -58,7 +58,7 @@ _export = call compile preprocessFileLineNumbers (format ["\x\addons\DMS\objects
if (_x select 4) then
{
_obj setDir (_x select 2);
- _obj setPos _pos;
+ _obj setPosATL _pos;
}
else
{
diff --git a/@ExileServer/addons/a3_dms/scripts/fn_OnKilled.sqf b/@ExileServer/addons/a3_dms/scripts/fn_OnKilled.sqf
index 1d7dff6..6eba288 100644
--- a/@ExileServer/addons/a3_dms/scripts/fn_OnKilled.sqf
+++ b/@ExileServer/addons/a3_dms/scripts/fn_OnKilled.sqf
@@ -15,7 +15,7 @@
*/
-private ["_unit", "_killer", "_side", "_type", "_launcher", "_playerObj", "_rockets", "_grpUnits", "_av", "_memCount", "_gunner", "_driver", "_veh", "_moneyChange", "_repChange", "_money", "_respect", "_roadKilled"];
+private ["_unit", "_killer", "_side", "_type", "_launcher", "_launcherVar", "_playerObj", "_removeAll", "_rockets", "_grpUnits", "_av", "_memCount", "_gunner", "_driver", "_gunnerIsAlive", "_driverIsAlive", "_grp", "_owner", "_start", "_roadKilled", "_veh", "_boom", "_revealAmount", "_silencer", "_moneyChange", "_repChange", "_money", "_respect", "_msgType", "_msgParams"];
if (DMS_DEBUG) then
@@ -245,16 +245,6 @@ if (isPlayer _killer) then
_playerObj = _killer;
- // Reveal the killer to the AI units
- if (DMS_ai_share_info) then
- {
- {
- if (((position _x) distance2D (position _unit)) <= DMS_ai_share_info_distance ) then
- {
- _x reveal [_killer, 4.0];
- };
- } forEach allUnits;
- };
// Fix for players killing AI from mounted vehicle guns
if (!(_killer isKindOf "Exile_Unit_Player") && {!isNull (gunner _killer)}) then
@@ -286,6 +276,27 @@ if (isPlayer _killer) then
_unit call _removeAll;
};
};
+
+
+ // Reveal the killer to the AI units
+ if (DMS_ai_share_info) then
+ {
+ _revealAmount = 4.0;
+
+ _silencer = _playerObj weaponAccessories currentMuzzle _playerObj select 0;
+ if (!isNil "_silencer" && {_silencer != ""}) then
+ {
+ _revealAmount = 2.0;
+ };
+
+
+ {
+ if ((alive _x) && {!(isPlayer _x) && {((getPosWorld _x) distance2D (getPosWorld _unit)) <= DMS_ai_share_info_distance}}) then
+ {
+ _x reveal [_killer, _revealAmount max (_x knowsAbout _playerObj)];
+ };
+ } forEach allUnits;
+ };
};
diff --git a/@ExileServer/addons/a3_dms/scripts/fn_SetGroupBehavior.sqf b/@ExileServer/addons/a3_dms/scripts/fn_SetGroupBehavior.sqf
index cc08b03..907a69e 100644
--- a/@ExileServer/addons/a3_dms/scripts/fn_SetGroupBehavior.sqf
+++ b/@ExileServer/addons/a3_dms/scripts/fn_SetGroupBehavior.sqf
@@ -45,6 +45,14 @@ if(_difficulty == "random") then
_radius = missionNamespace getVariable [format["DMS_AI_WP_Radius_%1",_difficulty],40];
+
+// Remove all previous waypoints
+for "_i" from count (waypoints _group) to 1 step -1 do
+{
+ deleteWaypoint ((waypoints _group) select _i);
+};
+
+// Add waypoints around the center position.
for "_i" from 0 to 359 step 45 do
{
_npos = [(_pos select 0) + (sin(_i)*_radius), (_pos select 1) + (cos(_i)*_radius)];
diff --git a/@ExileServer/addons/a3_dms/scripts/fn_SpawnAIGroup.sqf b/@ExileServer/addons/a3_dms/scripts/fn_SpawnAIGroup.sqf
index 865d938..ca1fea1 100644
--- a/@ExileServer/addons/a3_dms/scripts/fn_SpawnAIGroup.sqf
+++ b/@ExileServer/addons/a3_dms/scripts/fn_SpawnAIGroup.sqf
@@ -8,7 +8,7 @@
_pos, // Position of AI
_count, // Number of AI
_difficulty, // AI Difficulty: "random","hardcore","difficult","moderate", or "easy"
- _class // AI Class: "random","assault","MG","sniper" or "unarmed" OR [_class,_launcher]
+ _class, // AI Class: "random","assault","MG","sniper" or "unarmed" OR [_class,_launcher]
_side // Only "bandit" is supported atm
] call DMS_fnc_SpawnAIGroup;
diff --git a/@ExileServer/addons/a3_dms/scripts/fn_SpawnAISoldier.sqf b/@ExileServer/addons/a3_dms/scripts/fn_SpawnAISoldier.sqf
index e6468eb..efc4f0e 100644
--- a/@ExileServer/addons/a3_dms/scripts/fn_SpawnAISoldier.sqf
+++ b/@ExileServer/addons/a3_dms/scripts/fn_SpawnAISoldier.sqf
@@ -104,7 +104,7 @@ switch (toLower _class) do
};
// Unit name
-_unit setName format["[DMS_Unit_%1%2]",_class,floor(random 1000)];
+_unit setName format["[DMS_%3Unit_%1%2]",_class,floor(random 1000),toUpper _side];
if (!_useCustomGear) then
{
diff --git a/@ExileServer/addons/a3_dms/scripts/fn_SpawnMinefield.sqf b/@ExileServer/addons/a3_dms/scripts/fn_SpawnMinefield.sqf
index 3fad2b5..74729e7 100644
--- a/@ExileServer/addons/a3_dms/scripts/fn_SpawnMinefield.sqf
+++ b/@ExileServer/addons/a3_dms/scripts/fn_SpawnMinefield.sqf
@@ -12,7 +12,7 @@
] call DMS_fnc_SpawnMinefield;
*/
-private ["_centerPos", "_difficulty", "_side", "_mines", "_minesInfo", "_AISide", "_mineCount", "_radius"];
+private ["_centerPos", "_difficulty", "_side", "_mines", "_minesInfo", "_AISide", "_mineCount", "_radius", "_randDirOffset", "_sign"];
_mines = [];
@@ -80,9 +80,10 @@ if (DMS_SpawnMinesAroundMissions) then
if (_spawnWarningSign) then
{
+ _randDirOffset = random 45;
for "_i" from 0 to 359 step 90 do
{
- _sign = createVehicle ["Land_Sign_Mines_F",[_centerPos, _radius+2, _i] call DMS_fnc_SelectOffsetPos, [], 0, "CAN_COLLIDE"];
+ _sign = createVehicle ["Land_Sign_Mines_F",[_centerPos, _radius+2, _randDirOffset+_i] call DMS_fnc_SelectOffsetPos, [], 0, "CAN_COLLIDE"];
_sign setDir _i;
_sign setVectorUp [0,0,1];
@@ -93,7 +94,7 @@ if (DMS_SpawnMinesAroundMissions) then
if (DMS_DEBUG) then
{
- diag_log format ["DMS_DEBUG SpawnMinefield :: Spawned %1 mines around %2 with _minesInfo: %3 | _mines: %4",count _mines,_centerPos,_minesInfo,_mines];
+ diag_log format ["DMS_DEBUG SpawnMinefield :: Spawned %1 mines around %2 with _minesInfo: %3 | Warning signs spawned: %5 | _mines: %4",_mineCount,_centerPos,_minesInfo,_mines,_spawnWarningSign];
};
};
diff --git a/Pre-Packed PBO/a3_dms.pbo b/Pre-Packed PBO/a3_dms.pbo
index 22364f5..12e3f74 100644
Binary files a/Pre-Packed PBO/a3_dms.pbo and b/Pre-Packed PBO/a3_dms.pbo differ
diff --git a/README.md b/README.md
index 8bdeaee..481ac0e 100644
--- a/README.md
+++ b/README.md
@@ -52,6 +52,20 @@ if (!hasInterface && !isServer) then
## Changelog:
+#### September 30, 2015 (9:30 PM CST-America):
+* NEW CONFIG VALUE: DMS_SpawnMinefieldForEveryMission
+* You can now force-spawn an AT mine minefield on every mission with the above config. These mines will only blow up on Tanks, APCs, and MRAPs (Ifrits, Hunters, Striders).
+* ALL MISSIONS HAVE BEEN EDITED TO MATCH THE NEW STANDARD FOR DMS_fnc_AddMissionToMonitor. **If you have made any custom missions or modified any of the current mission scripts, make sure you merge your changes**!
+* Adjusted the placement of the armed car in "bandits" mission. It should no longer spawn right on the crate.
+* Marker and message names for the "foodtransport" mission have been adjusted.
+* Added the AI vehicle to the "mercbase" mission.
+* Removed some RPT spam...
+* Standardize ATL for DMS_fnc_importFromM3E_Convert
+* When revealing a player to AI, the reveal amount will be reduced if the player has a suppressor.
+* DMS_fnc_SetGroupBehavior will now remove all previous waypoints from the AI group.
+* Improved logging message for DMS_fnc_SpawnMinefield. Also, the mine warning signs should be on a random offset (instead of always spawning at 0, 90, 180, and 270 degrees)
+
+
#### September 25, 2015 (11:30 PM CST-America):
* Improved DMS_fnc_FindSafePos when checking for nearby missions - it should now use the proper mission location (if it was given correctly in the parameters for DMS_fnc_CreateMarker) instead of the marker position, which could be offset. Thanks to [Rod Serling](https://github.com/Rod-Serling) for complaining about this "issue" :P