From 1997fb76146f179104d507391eec33f2f621cc20 Mon Sep 17 00:00:00 2001 From: eraser1 Date: Wed, 30 Sep 2015 21:29:33 -0500 Subject: [PATCH] Finally another update... warming up * 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) --- @ExileServer/addons/a3_dms/config.sqf | 11 ------ .../addons/a3_dms/missions/bandit/bandits.sqf | 6 ++-- .../addons/a3_dms/missions/bandit/bauhaus.sqf | 6 ++-- .../a3_dms/missions/bandit/beertransport.sqf | 8 +++-- .../missions/bandit/behindenemylines.sqf | 6 ++-- .../a3_dms/missions/bandit/blackhawkdown.sqf | 6 ++-- .../a3_dms/missions/bandit/cardealer.sqf | 6 ++-- .../a3_dms/missions/bandit/construction.sqf | 4 ++- .../missions/bandit/donthasslethehoff.sqf | 6 ++-- .../a3_dms/missions/bandit/foodtransport.sqf | 14 ++++---- .../a3_dms/missions/bandit/guntransport.sqf | 6 ++-- .../a3_dms/missions/bandit/humanitarian.sqf | 6 ++-- .../a3_dms/missions/bandit/lost_battalion.sqf | 6 ++-- .../addons/a3_dms/missions/bandit/medical.sqf | 4 ++- .../a3_dms/missions/bandit/mercbase.sqf | 23 ++++++++---- .../a3_dms/missions/bandit/mercenaries.sqf | 6 ++-- .../a3_dms/missions/bandit/roguenavyseals.sqf | 6 ++-- .../a3_dms/missions/bandit/testmission.sqf | 6 ++-- .../addons/a3_dms/missions/bandit/walmart.sqf | 6 ++-- .../a3_dms/scripts/fn_AddMissionToMonitor.sqf | 21 ++++++++--- .../addons/a3_dms/scripts/fn_FindSafePos.sqf | 2 -- .../scripts/fn_ImportFromM3E_Convert.sqf | 2 +- .../addons/a3_dms/scripts/fn_OnKilled.sqf | 33 ++++++++++++------ .../a3_dms/scripts/fn_SetGroupBehavior.sqf | 8 +++++ .../addons/a3_dms/scripts/fn_SpawnAIGroup.sqf | 2 +- .../a3_dms/scripts/fn_SpawnAISoldier.sqf | 2 +- .../a3_dms/scripts/fn_SpawnMinefield.sqf | 7 ++-- Pre-Packed PBO/a3_dms.pbo | Bin 209809 -> 210892 bytes README.md | 14 ++++++++ 29 files changed, 154 insertions(+), 79 deletions(-) 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 22364f5a9078a970c58214cc45e34de9eaaa1072..12e3f746ea6cbc479c71ccde8f677c40a38bec61 100644 GIT binary patch delta 2830 zcma)7eQXrR74Mt9^ZD%C!^So#=4*V$_MJIHZEQgZ4m~gq4t8z6&Z-XgSl{iLrR&}E z?j6QXT&EFnN{~pb4IL6usYwH+B}C9mnM747R6;@h3L=V7oVF2d8d?{XNHj=^=*R5t z+1vqt#L~$-zxUqn&HUcHH%#-J~ZF0P($%bw$7hO`;`xoZBItj{i%>>1-tZmBnvP1bzC6AqOcpK!JO z_H5WcS=e@CzN4OhI*Z(7$kRrTqmF+gyX#vFdBfQ6sOCqrMCgboJZik@IOFa0+9z9S zc*4EjjP6VWuktq5o%DoNYXwF{Q60Z)scm|A(i7fgbQImF{GixI=#!qX`K`w^DVfrDCY0~j zK;^vU`cT4hSY2rQ73}ncS7*kH_kVR!LK5Y8yQ*#6D{3QMlCDdt;%>zWLDt1bjD<^a zt$+t5MYQ~ILe;QndgAzqA`D6~X0t+;XKqyogv{ZIb)9n~(WI&eS1$8wf)ZB;aZ7;w zaWNMlol~%aOl^XCQu#8>&piHKX92nPA(Wv=A04_3=N)I$a0lr5Hn}kMbQSJ=h3)Joly93dGe0KR0uoEV|En-|?eH=dA`o_1&w&N>#xY1DGWsF>i2nHm zh+M<6NOZ5byD#W=yH~8hf;K3|ai{|`Op3{35cdnZh}Hf*Vl1TxY4~**aOU!!cTl#W zcY*f21*h|hGh@lt@h462O}g$9H03#s6l4$a(p5<1ZP*U40n$?fh2(`sm`}?70cXrS z8xSqN0l&y2I*4eC0at*OECDC=e-5WhYlD1|+Z~NdiG&nO%c&82o$V#oib_gn9%Rcd zs3WKtts)f_Tq(U$j0%Bhb6{>so~tj2>68a80J7;LR8FRw(VT@QW5gG|$1l%31r36mx7Bvw|I#v}C3$i8(aW(+hNKjZs zBn8i8>F(d7FK2mKh`+6CTXdUA)-^Lc?in(;wiZ9ZA{9}8lyPqyN(=IK6-WBU0%k&m z@jStPZrcU7VtcIMT-9(?m*OI6EQ4~=RmpkiM;Tx38?S{8L!5p702C1@#|O%>vsC0Q2Z){@<8>wmwh4%&7$X$3hnsHPP=K$m1u ziDh{PSusX7>?SWALJefeDYTGYJ%py`(bLCKm?OVDhPub2S`GtKuzC5{9^s2DQD>+a zdiRWYSQL_~5{kt{T~{?p)Nw4WY3w$3rAJ3)G1pZWW!87tBy?K^uafj{NHUXbhT1o7 zmw0B4t6H(ocelEBdENJJvdP+{+dXD&)nvD>ftABAm{Q~DzJNtt<(Kpxt3b1m-#;Lx zdQ`nv)#OES3yw=nawc0-8_qGt$-~D{E!o$|@#IcBDkS=GRMwEcnL%M6_DA>OZ!7As z9_m-qsT>6YedJRE%_BcNj!J03PtikFy?hbtqpj8*VQnJgB-39~(>fj&Mv|&zHMRMI z`l6B#Cp7jn#?0Dc|EwKH2Q)REWF4U5My#jAByMOVubzOFYobzsDPpU_(uCsiyR>XL zGNQQIH#o-1C2E*G!BUF7<*XmcnITk7zy4cv9Uw^kzekrILNzPNryrvlZ!o3qNG6%T z)k(DCZz$7JXg zMy(N*4d2G1>B~OO<>FY6(qjQ`BOtzrPS9_V54jpB+8((YzlQO$pEa F`u`M0n^FJ( delta 2068 zcmah}ZA?>F7~VOz<)d&bA1YWK9twrRs#LNDbiw59g~G6ZAB z=J>H#a-1hybXj7IhG5iHbM~1`Gv=~5M$pB@Z4%TBnJfc|BlE}D?MG;x(Vai{%!kD_cQ0_lcredP!x&HAoc3@E;lG`@L4d8r`#(LsH zhzHw27HbYe%=kDkX=lRznpuQz03*91jI;vBLIcak2ZRP6OmjTm0FA6AAtY_V5?sZ$ zhjH5R8JNZ14b!=c??B^!lPzO1*~uVjx@ex8#N|vjyC&$U>z_ZkHMo~aV_jiFE_{JW z*UkiyLiQmy6Ni6eGT7psx(#%y7o0q z#1~ZOwL95BWj@YM)+?#o084||Ur7)=RzBh?ahYaHXNw6S+m(~`?WG2{=#r(~ zjSg}!9q5*>mRcMAjQpqo@oMQjm+w6g)0^yVPhZ9-u^LvBlY>fx`ZhbNXcycaZc!E_ z;<*NO_|alrZXv3*m`#>-bp@;@x}^M7Yq=;%qSH|&wg?q%aV3BGWP;BKhrB_R+a?8ukZ zm+oaj?hph=(13)D21^#=9X5pHe@e_V8gjGrrl)ZI_~XufcDf6^@4mHZJ2^1`lF7N7 zV7d3j(Zdm>>=zJE=g)&uHQgux8(>TpGa0!8s=W8dx}%>S#`ni|QClkb6p)xs&`0L_ zK)iSDtm_$yWKk;M=<@*dMLk_tNjnSZmkD5Lb zmssBe9t79djG(p4!+an6df`W9g-~YHdfQoBsL4E%Sbj3!{mr8v;mpBi7*V; zM4GewgGO(i26iUVq}&%p%O``J^?QT{S)%SiU{^1s?1@-7394AE3mrlrLX|-r3xQ9Z zGd?qXR^_|1WSmn*%X0&KAFAiNnwU8dMXZzHyT{T@1KK0qK=Fa43hx!n^kh?!aCWZ35XH3)9HKOE8h%iGfjovMgK<$hlZ1f_ya! zV`-NbjxaPQ5pIR_gC%fVX^HZpD9a}Dc5AcKjvAfr7GAE^m;05G!GfB230Z?rNTpL+ zj|{nblXagd45Q<_AzG|PR+m#Eub03jG^G{pNQrhe^PPgbqJ9rKdKhkH+Jz=ks=eoJB_G8&DFpeQRZ9kTArLN-y7c}Ihg zTY?q>qlBap{;EI 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