mirror of
https://github.com/Defent/DMS_Exile.git
synced 2024-08-30 16:52:12 +00:00
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)
This commit is contained in:
parent
01f04a0d96
commit
1997fb7614
@ -610,14 +610,3 @@ DMS_DEBUG = false;
|
|||||||
"Exile_Chopper_Taru_Transport_Black"
|
"Exile_Chopper_Taru_Transport_Black"
|
||||||
];
|
];
|
||||||
/* Loot Settings */
|
/* 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];
|
|
||||||
};
|
|
||||||
|
@ -36,7 +36,7 @@ _group =
|
|||||||
|
|
||||||
// Create Crate
|
// Create Crate
|
||||||
_crate = ["Box_NATO_Wps_F",_pos] call DMS_fnc_SpawnCrate;
|
_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
|
// Set crate loot values
|
||||||
_crate_loot_values =
|
_crate_loot_values =
|
||||||
@ -106,7 +106,9 @@ _added =
|
|||||||
_missionObjs,
|
_missionObjs,
|
||||||
[_msgWIN,_msgLOSE],
|
[_msgWIN,_msgLOSE],
|
||||||
_markers,
|
_markers,
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
[]
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
// Check to see if it was added correctly, otherwise delete the stuff
|
// Check to see if it was added correctly, otherwise delete the stuff
|
||||||
|
@ -16,7 +16,7 @@ _side = "bandit";
|
|||||||
|
|
||||||
|
|
||||||
// find position
|
// find position
|
||||||
_pos = [10,100] call DMS_fnc_findSafePos;
|
_pos = [10] call DMS_fnc_findSafePos;
|
||||||
|
|
||||||
|
|
||||||
// Set general mission difficulty
|
// Set general mission difficulty
|
||||||
@ -117,7 +117,9 @@ _added =
|
|||||||
_missionObjs,
|
_missionObjs,
|
||||||
[_msgWIN,_msgLOSE],
|
[_msgWIN,_msgLOSE],
|
||||||
_markers,
|
_markers,
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
[]
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
// Check to see if it was added correctly, otherwise delete the stuff
|
// Check to see if it was added correctly, otherwise delete the stuff
|
||||||
|
@ -16,11 +16,11 @@ _side = "bandit";
|
|||||||
|
|
||||||
|
|
||||||
// find position
|
// find position
|
||||||
_pos = [10,100] call DMS_fnc_findSafePos;
|
_pos = [10] call DMS_fnc_findSafePos;
|
||||||
|
|
||||||
|
|
||||||
// Set general mission difficulty
|
// Set general mission difficulty
|
||||||
_difficulty = "difficult";
|
_difficulty = "easy";
|
||||||
|
|
||||||
|
|
||||||
// Create AI
|
// Create AI
|
||||||
@ -110,7 +110,9 @@ _added =
|
|||||||
_missionObjs,
|
_missionObjs,
|
||||||
[_msgWIN,_msgLOSE],
|
[_msgWIN,_msgLOSE],
|
||||||
_markers,
|
_markers,
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
[]
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
// Check to see if it was added correctly, otherwise delete the stuff
|
// Check to see if it was added correctly, otherwise delete the stuff
|
||||||
|
@ -16,7 +16,7 @@ _side = "bandit";
|
|||||||
|
|
||||||
|
|
||||||
// find position
|
// find position
|
||||||
_pos = [10,100] call DMS_fnc_findSafePos;
|
_pos = [10] call DMS_fnc_findSafePos;
|
||||||
|
|
||||||
|
|
||||||
// Set general mission difficulty
|
// Set general mission difficulty
|
||||||
@ -110,7 +110,9 @@ _added =
|
|||||||
_missionObjs,
|
_missionObjs,
|
||||||
[_msgWIN,_msgLOSE],
|
[_msgWIN,_msgLOSE],
|
||||||
_markers,
|
_markers,
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
[]
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
// Check to see if it was added correctly, otherwise delete the stuff
|
// Check to see if it was added correctly, otherwise delete the stuff
|
||||||
|
@ -16,7 +16,7 @@ _side = "bandit";
|
|||||||
|
|
||||||
|
|
||||||
// find position
|
// find position
|
||||||
_pos = [10,100] call DMS_fnc_findSafePos;
|
_pos = [10] call DMS_fnc_findSafePos;
|
||||||
|
|
||||||
|
|
||||||
// Set general mission difficulty
|
// Set general mission difficulty
|
||||||
@ -110,7 +110,9 @@ _added =
|
|||||||
_missionObjs,
|
_missionObjs,
|
||||||
[_msgWIN,_msgLOSE],
|
[_msgWIN,_msgLOSE],
|
||||||
_markers,
|
_markers,
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
[]
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
// Check to see if it was added correctly, otherwise delete the stuff
|
// Check to see if it was added correctly, otherwise delete the stuff
|
||||||
|
@ -16,7 +16,7 @@ _side = "bandit";
|
|||||||
|
|
||||||
|
|
||||||
// find position
|
// find position
|
||||||
_pos = [10,100] call DMS_fnc_findSafePos;
|
_pos = [10] call DMS_fnc_findSafePos;
|
||||||
|
|
||||||
|
|
||||||
// Set general mission difficulty
|
// Set general mission difficulty
|
||||||
@ -115,7 +115,9 @@ _added =
|
|||||||
_missionObjs,
|
_missionObjs,
|
||||||
[_msgWIN,_msgLOSE],
|
[_msgWIN,_msgLOSE],
|
||||||
_markers,
|
_markers,
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
[]
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
// Check to see if it was added correctly, otherwise delete the stuff
|
// Check to see if it was added correctly, otherwise delete the stuff
|
||||||
|
@ -113,7 +113,9 @@ _added =
|
|||||||
_missionObjs,
|
_missionObjs,
|
||||||
[_msgWIN,_msgLOSE],
|
[_msgWIN,_msgLOSE],
|
||||||
_markers,
|
_markers,
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
[]
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
// Check to see if it was added correctly, otherwise delete the stuff
|
// Check to see if it was added correctly, otherwise delete the stuff
|
||||||
|
@ -16,7 +16,7 @@ _side = "bandit";
|
|||||||
|
|
||||||
|
|
||||||
// find position
|
// find position
|
||||||
_pos = [10,100] call DMS_fnc_findSafePos;
|
_pos = [10] call DMS_fnc_findSafePos;
|
||||||
|
|
||||||
|
|
||||||
// Set general mission difficulty
|
// Set general mission difficulty
|
||||||
@ -124,7 +124,9 @@ _added =
|
|||||||
_missionObjs,
|
_missionObjs,
|
||||||
[_msgWIN,_msgLOSE],
|
[_msgWIN,_msgLOSE],
|
||||||
_markers,
|
_markers,
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
[]
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
// Check to see if it was added correctly, otherwise delete the stuff
|
// Check to see if it was added correctly, otherwise delete the stuff
|
||||||
|
@ -16,7 +16,7 @@ _side = "bandit";
|
|||||||
|
|
||||||
|
|
||||||
// find position
|
// find position
|
||||||
_pos = [10,100] call DMS_fnc_findSafePos;
|
_pos = [10] call DMS_fnc_findSafePos;
|
||||||
|
|
||||||
|
|
||||||
// Set general mission difficulty
|
// Set general mission difficulty
|
||||||
@ -66,16 +66,16 @@ _missionObjs =
|
|||||||
];
|
];
|
||||||
|
|
||||||
// Define Mission Start message
|
// Define Mission Start message
|
||||||
_msgStart = format["<t color='#FFFF00' size='1.25'>Humantarian Supplies! </t><br/> A humanitarian supply truck has been sized by ruthless bandits, stop them!"];
|
_msgStart = format["<t color='#FFFF00' size='1.25'>Food Supplies! </t><br/> A food supply truck has been sized by ruthless bandits, stop them!"];
|
||||||
|
|
||||||
// Define Mission Win message
|
// Define Mission Win message
|
||||||
_msgWIN = format["<t color='#0080ff' size='1.25'>Humantarian Supplies! </t><br/> Convicts have successfully claimed the humanitarian supplies for themselves!"];
|
_msgWIN = format["<t color='#0080ff' size='1.25'>Food Supplies! </t><br/> Convicts have successfully claimed the food supplies for themselves!"];
|
||||||
|
|
||||||
// Define Mission Lose message
|
// Define Mission Lose message
|
||||||
_msgLOSE = format["<t color='#FF0000' size='1.25'>Humantarian Supplies! </t><br/> The bandits have taken the humanitarian supplies and escaped!"];
|
_msgLOSE = format["<t color='#FF0000' size='1.25'>Food Supplies! </t><br/> The bandits have taken the food supplies and escaped!"];
|
||||||
|
|
||||||
// Define mission name (for map marker and logging)
|
// Define mission name (for map marker and logging)
|
||||||
_missionName = "Humantarian Supplies";
|
_missionName = "Food Supplies";
|
||||||
|
|
||||||
// Create Markers
|
// Create Markers
|
||||||
_markers =
|
_markers =
|
||||||
@ -110,7 +110,9 @@ _added =
|
|||||||
_missionObjs,
|
_missionObjs,
|
||||||
[_msgWIN,_msgLOSE],
|
[_msgWIN,_msgLOSE],
|
||||||
_markers,
|
_markers,
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
[]
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
// Check to see if it was added correctly, otherwise delete the stuff
|
// Check to see if it was added correctly, otherwise delete the stuff
|
||||||
|
@ -16,7 +16,7 @@ _side = "bandit";
|
|||||||
|
|
||||||
|
|
||||||
// find position
|
// find position
|
||||||
_pos = [10,100] call DMS_fnc_findSafePos;
|
_pos = [10] call DMS_fnc_findSafePos;
|
||||||
|
|
||||||
|
|
||||||
// Set general mission difficulty
|
// Set general mission difficulty
|
||||||
@ -110,7 +110,9 @@ _added =
|
|||||||
_missionObjs,
|
_missionObjs,
|
||||||
[_msgWIN,_msgLOSE],
|
[_msgWIN,_msgLOSE],
|
||||||
_markers,
|
_markers,
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
[]
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
// Check to see if it was added correctly, otherwise delete the stuff
|
// Check to see if it was added correctly, otherwise delete the stuff
|
||||||
|
@ -16,7 +16,7 @@ _side = "bandit";
|
|||||||
|
|
||||||
|
|
||||||
// find position
|
// find position
|
||||||
_pos = [10,100] call DMS_fnc_findSafePos;
|
_pos = [10] call DMS_fnc_findSafePos;
|
||||||
|
|
||||||
|
|
||||||
// Set general mission difficulty
|
// Set general mission difficulty
|
||||||
@ -110,7 +110,9 @@ _added =
|
|||||||
_missionObjs,
|
_missionObjs,
|
||||||
[_msgWIN,_msgLOSE],
|
[_msgWIN,_msgLOSE],
|
||||||
_markers,
|
_markers,
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
[]
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
// Check to see if it was added correctly, otherwise delete the stuff
|
// Check to see if it was added correctly, otherwise delete the stuff
|
||||||
|
@ -16,7 +16,7 @@ _side = "bandit";
|
|||||||
|
|
||||||
|
|
||||||
// find position
|
// find position
|
||||||
_pos = [10,100] call DMS_fnc_findSafePos;
|
_pos = [10] call DMS_fnc_findSafePos;
|
||||||
|
|
||||||
|
|
||||||
// Set general mission difficulty
|
// Set general mission difficulty
|
||||||
@ -108,7 +108,9 @@ _added =
|
|||||||
_missionObjs,
|
_missionObjs,
|
||||||
[_msgWIN,_msgLOSE],
|
[_msgWIN,_msgLOSE],
|
||||||
_markers,
|
_markers,
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
[]
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
// Check to see if it was added correctly, otherwise delete the stuff
|
// Check to see if it was added correctly, otherwise delete the stuff
|
||||||
|
@ -110,7 +110,9 @@ _added =
|
|||||||
_missionObjs,
|
_missionObjs,
|
||||||
[_msgWIN,_msgLOSE],
|
[_msgWIN,_msgLOSE],
|
||||||
_markers,
|
_markers,
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
[]
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
// Check to see if it was added correctly, otherwise delete the stuff
|
// Check to see if it was added correctly, otherwise delete the stuff
|
||||||
|
@ -32,11 +32,18 @@ _group =
|
|||||||
_side
|
_side
|
||||||
] call DMS_fnc_SpawnAIGroup;
|
] call DMS_fnc_SpawnAIGroup;
|
||||||
|
|
||||||
// Use "base" waypoint instead
|
_veh =
|
||||||
while {(count (waypoints _group)) > 0} do
|
[
|
||||||
{
|
[
|
||||||
deleteWaypoint ((waypoints _group) select 0);
|
[_pos,100,random 360] call DMS_fnc_SelectOffsetPos,
|
||||||
};
|
_pos
|
||||||
|
],
|
||||||
|
_group,
|
||||||
|
"assault",
|
||||||
|
_difficulty,
|
||||||
|
_side
|
||||||
|
] call DMS_fnc_SpawnAIVehicle;
|
||||||
|
|
||||||
|
|
||||||
[
|
[
|
||||||
_group,
|
_group,
|
||||||
@ -84,7 +91,7 @@ _missionAIUnits =
|
|||||||
// Define mission-spawned objects and loot values
|
// Define mission-spawned objects and loot values
|
||||||
_missionObjs =
|
_missionObjs =
|
||||||
[
|
[
|
||||||
_staticGuns+_baseObjs, // base objects and static gun
|
_staticGuns+_baseObjs+[_veh], // armed AI vehicle, base objects, and static gun
|
||||||
[],
|
[],
|
||||||
[[_crate,"Sniper"]]
|
[[_crate,"Sniper"]]
|
||||||
];
|
];
|
||||||
@ -134,7 +141,9 @@ _added =
|
|||||||
_missionObjs,
|
_missionObjs,
|
||||||
[_msgWIN,_msgLOSE],
|
[_msgWIN,_msgLOSE],
|
||||||
_markers,
|
_markers,
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
[]
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
// Check to see if it was added correctly, otherwise delete the stuff
|
// Check to see if it was added correctly, otherwise delete the stuff
|
||||||
|
@ -16,7 +16,7 @@ _side = "bandit";
|
|||||||
|
|
||||||
|
|
||||||
// find position
|
// find position
|
||||||
_pos = [10,100] call DMS_fnc_findSafePos;
|
_pos = [10] call DMS_fnc_findSafePos;
|
||||||
|
|
||||||
|
|
||||||
// Set general mission difficulty
|
// Set general mission difficulty
|
||||||
@ -108,7 +108,9 @@ _added =
|
|||||||
_missionObjs,
|
_missionObjs,
|
||||||
[_msgWIN,_msgLOSE],
|
[_msgWIN,_msgLOSE],
|
||||||
_markers,
|
_markers,
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
[]
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
// Check to see if it was added correctly, otherwise delete the stuff
|
// Check to see if it was added correctly, otherwise delete the stuff
|
||||||
|
@ -16,7 +16,7 @@ _side = "bandit";
|
|||||||
|
|
||||||
|
|
||||||
// find position
|
// find position
|
||||||
_pos = [10,100] call DMS_fnc_findSafePos;
|
_pos = [10] call DMS_fnc_findSafePos;
|
||||||
|
|
||||||
|
|
||||||
// Set general mission difficulty
|
// Set general mission difficulty
|
||||||
@ -108,7 +108,9 @@ _added =
|
|||||||
_missionObjs,
|
_missionObjs,
|
||||||
[_msgWIN,_msgLOSE],
|
[_msgWIN,_msgLOSE],
|
||||||
_markers,
|
_markers,
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
[]
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
// Check to see if it was added correctly, otherwise delete the stuff
|
// Check to see if it was added correctly, otherwise delete the stuff
|
||||||
|
@ -13,7 +13,7 @@ _side = "bandit";
|
|||||||
|
|
||||||
|
|
||||||
// find position
|
// find position
|
||||||
_pos = [10,10] call DMS_fnc_findSafePos;
|
_pos = [10] call DMS_fnc_findSafePos;
|
||||||
|
|
||||||
|
|
||||||
// Set general mission difficulty
|
// Set general mission difficulty
|
||||||
@ -155,7 +155,9 @@ _added =
|
|||||||
_missionObjs,
|
_missionObjs,
|
||||||
[_msgWIN,_msgLOSE],
|
[_msgWIN,_msgLOSE],
|
||||||
_markers,
|
_markers,
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
[]
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
// Check to see if it was added correctly, otherwise delete the stuff
|
// Check to see if it was added correctly, otherwise delete the stuff
|
||||||
|
@ -16,7 +16,7 @@ _side = "bandit";
|
|||||||
|
|
||||||
|
|
||||||
// find position
|
// find position
|
||||||
_pos = [10,100] call DMS_fnc_findSafePos;
|
_pos = [10] call DMS_fnc_findSafePos;
|
||||||
|
|
||||||
|
|
||||||
// Set general mission difficulty
|
// Set general mission difficulty
|
||||||
@ -113,7 +113,9 @@ _added =
|
|||||||
_missionObjs,
|
_missionObjs,
|
||||||
[_msgWIN,_msgLOSE],
|
[_msgWIN,_msgLOSE],
|
||||||
_markers,
|
_markers,
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
[]
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
// Check to see if it was added correctly, otherwise delete the stuff
|
// Check to see if it was added correctly, otherwise delete the stuff
|
||||||
|
@ -42,15 +42,16 @@
|
|||||||
],
|
],
|
||||||
[_msgWIN,_msgLose],
|
[_msgWIN,_msgLose],
|
||||||
[_markerDot,_markerCircle],
|
[_markerDot,_markerCircle],
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
_missionEvents
|
||||||
] call DMS_fnc_AddMissionToMonitor;
|
] call DMS_fnc_AddMissionToMonitor;
|
||||||
|
|
||||||
Returns whether or not info was added successfully
|
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;
|
_added = false;
|
||||||
@ -64,7 +65,9 @@ _OK = params
|
|||||||
["_missionObjs","",[[]],[3,4]],
|
["_missionObjs","",[[]],[3,4]],
|
||||||
["_messages","",[[]],[2]],
|
["_messages","",[[]],[2]],
|
||||||
["_markers","",[[]],[2]],
|
["_markers","",[[]],[2]],
|
||||||
["_side","bandit",[""]]
|
["_side","bandit",[""]],
|
||||||
|
["_difficulty","moderate",[""]],
|
||||||
|
["_missionEvents",[],[[]]]
|
||||||
];
|
];
|
||||||
|
|
||||||
if (!_OK) exitWith
|
if (!_OK) exitWith
|
||||||
@ -124,6 +127,12 @@ try
|
|||||||
_mines = _missionObjs param [3,[],[[]]];
|
_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
|
_OK = _messages params
|
||||||
[
|
[
|
||||||
@ -170,7 +179,9 @@ try
|
|||||||
_markerDot,
|
_markerDot,
|
||||||
_markerCircle
|
_markerCircle
|
||||||
],
|
],
|
||||||
_side
|
_side,
|
||||||
|
_difficulty,
|
||||||
|
_missionEvents
|
||||||
];
|
];
|
||||||
DMS_Mission_Arr pushBack _arr;
|
DMS_Mission_Arr pushBack _arr;
|
||||||
_added = true;
|
_added = true;
|
||||||
|
@ -74,8 +74,6 @@ while{!_validspot} do
|
|||||||
if (DMS_MissionNearBlacklist>0) then
|
if (DMS_MissionNearBlacklist>0) then
|
||||||
{
|
{
|
||||||
_missionPos = missionNamespace getVariable [format ["%1_pos",_x], []];
|
_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
|
if (!(_missionPos isEqualTo []) && {(_missionPos distance2D _pos)<=DMS_MissionNearBlacklist}) then
|
||||||
{
|
{
|
||||||
throw ("another mission");
|
throw ("another mission");
|
||||||
|
@ -58,7 +58,7 @@ _export = call compile preprocessFileLineNumbers (format ["\x\addons\DMS\objects
|
|||||||
if (_x select 4) then
|
if (_x select 4) then
|
||||||
{
|
{
|
||||||
_obj setDir (_x select 2);
|
_obj setDir (_x select 2);
|
||||||
_obj setPos _pos;
|
_obj setPosATL _pos;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -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
|
if (DMS_DEBUG) then
|
||||||
@ -245,16 +245,6 @@ if (isPlayer _killer) then
|
|||||||
|
|
||||||
_playerObj = _killer;
|
_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
|
// Fix for players killing AI from mounted vehicle guns
|
||||||
if (!(_killer isKindOf "Exile_Unit_Player") && {!isNull (gunner _killer)}) then
|
if (!(_killer isKindOf "Exile_Unit_Player") && {!isNull (gunner _killer)}) then
|
||||||
@ -286,6 +276,27 @@ if (isPlayer _killer) then
|
|||||||
_unit call _removeAll;
|
_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;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -45,6 +45,14 @@ if(_difficulty == "random") then
|
|||||||
|
|
||||||
_radius = missionNamespace getVariable [format["DMS_AI_WP_Radius_%1",_difficulty],40];
|
_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
|
for "_i" from 0 to 359 step 45 do
|
||||||
{
|
{
|
||||||
_npos = [(_pos select 0) + (sin(_i)*_radius), (_pos select 1) + (cos(_i)*_radius)];
|
_npos = [(_pos select 0) + (sin(_i)*_radius), (_pos select 1) + (cos(_i)*_radius)];
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
_pos, // Position of AI
|
_pos, // Position of AI
|
||||||
_count, // Number of AI
|
_count, // Number of AI
|
||||||
_difficulty, // AI Difficulty: "random","hardcore","difficult","moderate", or "easy"
|
_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
|
_side // Only "bandit" is supported atm
|
||||||
] call DMS_fnc_SpawnAIGroup;
|
] call DMS_fnc_SpawnAIGroup;
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ switch (toLower _class) do
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Unit name
|
// 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
|
if (!_useCustomGear) then
|
||||||
{
|
{
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
] call DMS_fnc_SpawnMinefield;
|
] 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 = [];
|
_mines = [];
|
||||||
@ -80,9 +80,10 @@ if (DMS_SpawnMinesAroundMissions) then
|
|||||||
|
|
||||||
if (_spawnWarningSign) then
|
if (_spawnWarningSign) then
|
||||||
{
|
{
|
||||||
|
_randDirOffset = random 45;
|
||||||
for "_i" from 0 to 359 step 90 do
|
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 setDir _i;
|
||||||
_sign setVectorUp [0,0,1];
|
_sign setVectorUp [0,0,1];
|
||||||
|
|
||||||
@ -93,7 +94,7 @@ if (DMS_SpawnMinesAroundMissions) then
|
|||||||
|
|
||||||
if (DMS_DEBUG) 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];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Binary file not shown.
14
README.md
14
README.md
@ -52,6 +52,20 @@ if (!hasInterface && !isServer) then
|
|||||||
|
|
||||||
|
|
||||||
## Changelog:
|
## 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):
|
#### 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
|
* 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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user