#### October 17, 2015 (2:30 PM CST-America):
* **NEW CONFIG VALUES**:
|DMS_TimeToFirstMission|
|DMS_ShowDifficultyColorLegend|
|DMS_TerritoryNearBlacklist|
|DMS_MinSurfaceNormal| (Used to be DMS_MaxSurfaceNormal, simply renamed)
|DMS_ai_launchers_per_group|
* **UPDATING ALL OF YOUR MISSION FILES IS HIGHLY RECOMMENDED UNLESS YOU
KNOW WHAT YOU'RE DOING**
* RENAMED "DMS_MaxSurfaceNormal" to "DMS_MinSurfaceNormal". I must have
been very tired when I named it...
* DMS_MinSurfaceNormal is now 0.9 by default, but will be 0.95 for Altis
and Bornholm (since they're relatively large/flat maps). Esseker is
still 0.85. If you want to convert DMS_MinSurfaceNormal to degrees, you
would take the arc-cosine of the surfaceNormal, and that will give you
the degrees from horizontal. For example, arccos(0.9) is about 25
degrees. Google: "arccos(0.9) in degrees"
* Tweaked and rebalanced "DMS_BanditMissionTypes". Most of the spawn
chances are the same, they're just reduced in order to prevent the
creation of arrays that are far larger than they need to be.
* You can now manually define how long it takes for the first mission to
spawn after a restart.
* DMS will now by default create markers on the bottom left of the map
to show which colors correspond to which difficulty. It isn't very
pretty, but it gets the point across.
* DMS will now manually calculate the center of the map and its radius,
if it isn't preconfigured by DMS.
* You can now specify the vehicles to spawn for missions: "bandits",
"cardealer", "construction", "donthasslethehoff", and "thieves".
* You can now specify the spawning location of any mission (and whether
or not to use an alternative location if the provided location is
invalid). This will allow for easy integration of DMS into admin tools.
* Added support for scripts to be executed on mission completion or
mission failure (this will allow you to have "multi-part" missions,
where you would simply spawn the next part of the mission if the
previous is completed).
* Restructured DMS_DEBUG from the previous patch in favor of a more
"optimized" method.
* DMS_fnc_findSafePos is completely overhauled; DMS no longer uses
"BIS_fnc_findSafePos". It also now throttles minSurfaceNormal on
repeated failure. You can now determine whether or not the mission
should spawn on water (however, I don't suggest you use this function
for water spawns yet).
* You can also now define a minimum distance from other territories for
missions.
* DMS_fnc_IsValidPosition will now check for water depth if the provided
position is meant to be checked as a "water spawn". It will now also
check for nearby missions from A3XAI or VEMF (untested).
* DMS_fnc_IsValidPosition now checks whether or not the position is
outside of the map borders.
* DMS_fnc_SelectOffsetPos will now return the 3rd element of the
provided position as-is.
* You can now have multiple AI within a group with a launcher.
* AI now have a 5-second godmode after spawning.
* You can now spawn a crate using ASL pos. DMS_fnc_SpawnCrate will also
make sure that the provided classname is valid.
* Just like SpawnCrate, "DMS_fnc_SpawnNonPersistentVehicle" and
"DMS_fnc_SpawnPersistentVehicle" will now make sure that the provided
classname is valid.
* "DMS_fnc_SpawnPersistentVehicle" now supports ASL spawning.
* Added support for [Rod Serling's](https://github.com/Rod-Serling) AVS.
* General optimization.
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.
* **NEW CONFIG VALUES**:
|DMS_Show_Kill_Poptabs_Notification|
|DMS_Show_Kill_Respect_Notification|
|DMS_dynamicText_Duration|
|DMS_dynamicText_FadeTime|
|DMS_dynamicText_Title_Size|
|DMS_dynamicText_Title_Font|
|DMS_dynamicText_Message_Color|
|DMS_dynamicText_Message_Size|
|DMS_dynamicText_Message_Font|
|DMS_standardHint_Title_Size|
|DMS_standardHint_Title_Font|
|DMS_standardHint_Message_Color|
|DMS_standardHint_Message_Size|
|DMS_standardHint_Message_Font|
|DMS_textTiles_Duration|
|DMS_textTiles_FadeTime|
|DMS_textTiles_Title_Size|
|DMS_textTiles_Title_Font|
|DMS_textTiles_Message_Color|
|DMS_textTiles_Message_Size|
|DMS_textTiles_Message_Font|
* "DMS_PlayerNotificationTypes" has been adjusted to include
"systemChatRequest" and the brand new "textTilesRequest". **NOTE:** Due
to the way "text tiles" work, a player can only have one on his screen
at a time. As a result, if another text tile is created while the
mission message is up, the message will immediately disappear to display
the new text tile. Currently, the "Frag Messages" (the ones that say
"Player Kill +100") use text tiles. I don't think it should be a major
issue (especially if you use "systemChatRequest", so the player can just
scroll up), but if I get reports of it being stupid, I will default to
"dynamicTextRequest", which should also look pretty damn nice.
* These changes should make it much easier for people to use DMS
notification functions for other purposes.
* Fixed AI waypoints - the AI should now properly circle the objective
at the proper radius.
* Tweaked "DMS_AI_WP_Radius_moderate" and "DMS_AI_WP_Radius_difficult"
(reduced the radii). Due to the AI pathing fix.
* Fixed a couple typos in "DMS_fnc_SpawnAISoldier". "_customGearSet"
should work now (although I'm fairly certain nobody uses it since nobody
ever complained :P )
* Improved "DMS_fnc_SpawnNonPersistentVehicle"; Vehicles should no
longer spawn jumbled up in most cases (like cardealer). Also, it's
updated to the latest Exile methods to ensure that vehicles have no
nightvision/thermal if configured to do so in Exile configs. Also added
the "MPKilled" EH used by Exile for non-persistent (persistent vehicles
already had it).
* You can now choose whether or not you want to display the poptabs or
respect kill messages when killing an AI with
"DMS_Show_Kill_Poptabs_Notification" and
"DMS_Show_Kill_Respect_Notification". Both are enabled by default.
* Fixed typos in the "OnKilled" EH (didn't really affect anything)
* Fixed cases when "currentMuzzle" would return a number. Thanks to
[azmodii](https://github.com/azmodii) for the reminder.
* Optimized the "AI share info" function in "OnKilled"
* **NEW CONFIG VALUES**:
|DMS_MarkerText_ShowMissionPrefix|
|DMS_MarkerText_MissionPrefix|
|DMS_MarkerText_ShowAICount|
|DMS_MarkerText_AIName|
* New function: DMS_fnc_SpawnPersistentVehicle. It will spawn
inaccessible vehicles by default and convert VALID pincode inputs to the
proper format.
* New mission: "Car Thieves" (thieves.sqf). It uses the new
DMS_fnc_SpawnPersistentVehicle. When the mission is completed
successfully, the code is displayed in the completion message.
* You can now add a "prefix" to the marker text of each mission.
* You can now display the number of remaining AI in the marker text (it
should update about every 15 seconds).
* Rearranged the missions in the config to look prettier. Don't judge.
* Added the "Zamak", "Tempest", and "HEMMT" to "DMS_TransportTrucks"
array. Removed "Exile_Car_Van_Black"
* "dynamicTextRequest" messages will now appear at the top of the
screen, so it shouldn't distract/block stuff in focus.
* Fixed some spelling, improved some grammar (will require mission
updates, it's really minor though).
* **You must update all of your mission files; the mission message
system as well as the calling parameters for DMS_fnc_FindSafePos have
been overhauled and will be incompatible with previous versions.**
* NEW CONFIG VALUES:
|DMS_ThrottleBlacklists|
|DMS_AttemptsUntilThrottle|
|DMS_ThrottleCoefficient|
|DMS_MinThrottledDistance|
* Decreased
"DMS_TraderZoneNearBlacklist","DMS_MissionNearBlacklist","DMS_WaterNearBlacklist"
* Changed "DMS_dynamicText_Color" to "#FFFFFF" (white)
* Replaced weapon classes in "DMS_CrateCase_Sniper" to the base classes;
all attachments should now spawn in the box separately.
* New function DMS_fnc_IsValidPosition (uses logic that was previously
from "DMS_fnc_FindSafePos").
* You can now manually define every individual parameter for
DMS_fnc_findSafePos per-mission, instead of using global parameters.
* AI will now be offloaded to an HC even with "DMS_ai_offload_to_client"
set to false.
* All of the previously "supported" values for
"DMS_PlayerNotificationTypes" are now PROPERLY supported.
DMS_PlayerNotificationTypes is now set to default "dynamicTextRequest"
and "systemChatRequest".
* Tweaked "cardealer" mission, the cars should no longer spawn inside of
each other.
* 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)
* 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
Forgot a couple things for the previous patch notes
* NEW CONFIG VALUES:
DMS_SpawnMineWarningSigns
DMS_BulletProofMines
* You can now manually define the rare loot chance per crate.
* You can now define the mine amount and radius directly from the call
for DMS_fnc_SpawnMinefield.
* NEW CONFIG VALUES:
DMS_SpawnMinesAroundMissions
DMS_despawnMines_onCompletion
DMS_MineInfo_easy
DMS_MineInfo_moderate
DMS_MineInfo_difficult
DMS_MineInfo_hardcore
DMS_explode_onRoadkill
* You can now spawn randomly generated minefields around missions!
Numberof mines and radius is dependent on difficulty.
* Also, you can now spawn an explosion on an AI when it is roadkilled,
causing a wheel or two of the roadkilling vehicle to break.
* Commented out the spawning of static-relative conversion of base
objects in test mission.
* Included example of how to spawn the minefield in the test mission.
* Reduced some of the RPT spam.
* Smoke/IR grenades will only spawn on proper crates - you can now
safely use DMS_fnc_FillCrate with non-crate objects but still have smoke
available.
* NEW CONFIG VALUES:
DMS_Diff_RepOrTabs_on_roadkill
DMS_Bandit_Soldier_RoadkillMoney
DMS_Bandit_Soldier_RoadkillRep
DMS_Bandit_Static_RoadkillMoney
DMS_Bandit_Static_RoadkillRep
DMS_Bandit_Vehicle_RoadkillMoney
DMS_Bandit_Vehicle_RoadkillRep
* Removed config value: "DMS_credit_roadkill"
* You can now REDUCE a player's respect/poptabs when the player
roadkills an AI. The default values are -10 poptabs and -5 respect
(hardly noticeable, but I didn't want it to be extreme).
* Alternatively, you can simply reduce the amount of poptabs gained by
giving each corresponding config a positive value less than the regular.
Set the value to 0 if you don't want to credit the poptabs/respect.
* The player will get an appropriately colored message if he/she LOSES
poptabs (as opposed to gaining them).
* The player also gets a little more information regarding the type of
AI he/she has killed.
* CONFIG VALUES: Changed "DMS_MissionTypes" to "DMS_BanditMissionTypes"
* Renamed some variables to "future-proof" them
* Placed all current missions under "bandit" subfolder to for easier
future integration.
* Created function "DMS_fnc_SpawnBanditMission" to handle bandit mission
spawning (makes it easier to spawn missions via admin console).
* Attached vehicle eventhandlers to DMS-spawned non-persistent vehicles.
* Fixed the "lock" option appearing on DMS-spawned vehicles.
* NEW CONFIG VALUE: "DMS_MaxSurfaceNormal"
* The above config value now determines the maximum incline that a
mission can spawn on. Default value is 0.95, which should be
sufficiently flat.
* Added some grouping explanations in mission config settings.
* Added check for A3XAI for the lovely
["Face"/"dayzai"](https://github.com/dayzai)
* Added ability for people to use a static export from M3Editor. DMS
will then calculate the relative position, and spawn it at the mission.
Example provided in testmission.sqf.
* Fixed an issue with DMS_fnc_TargetsKilled always returning false.
* NEW CONFIG VALUE: "DMS_ai_offload_Only_DMS_AI"
* You can use "DMS_ai_offload_Only_DMS_AI" to offload only AI spawned by
DMS. This should resolve any issues with other mission systems from DMS.
* Increased "DMS_playerNearRadius" from 75 meters to 100 meters.
* You can now define "absolute" mission conditions. If this mission
condition is met, it immediately counts the mission as completed. Add
"true" after the completion argument to turn it into an "absolute" win
condition.
* Added compatibility with RS_VLS by [Rod
Serling](https://github.com/Rod-Serling).
* NEW CONFIG VALUE: "DMS_HideBox".
* Loot vehicles cannot be lifted, pushed, or damaged until the mission
is completed successfully. Then the vehicle will be added to the Exile
simulation monitor.
* AI in vehicles will be automatically ejected on death.
* Another potential fix for launchers not despawning off of AI
sometimes.
* When an AI gunner from an armed ground vehicle is killed, the driver
will be switched to the gunner seat after 5-10 seconds. This prevents
the driver from driving around aimlessly and trolling.
* The above feature should now also work on AI that have been offloaded
now (doing so was a major, major pain in the ass, and is the reason why
there was no update yesterday).
#### September 13, 2015 (11:45 PM CST-America):
* NEW CONFIG VALUES: DMS_MaxAIDistance and DMS_AIDistanceCheckFrequency
* You can now use the above config values to kill AI that flee from
their spawn position. Only "Soldier" AI will be killed.
* Removed "O_HMG_01_F" from AI Static Weapons. AI were pretty useless on
it... unless the AI were facing the right direction.
* Reduced AI count and removed the "playerNear" parameter from
testmission for easier testing.
* NEW: When an AI vehicle gunner is killed, and the driver is still
alive, after a little delay, the driver is then switched to the gunner
seat. You should no longer have AI vehicles with a dead gunner that's
driving around aimlessly :) There is a 5-8 second delay to simulate
reaction time. Then the driver is ejected, then after 1.5 seconds the AI
is then forced into the gunner seat.
* NOTE: The above feature only works when the AI is still local (not
offloaded). If the AI is offloaded, the AI is simply ejected and becomes
a foot soldier.
* AI assigned vehicles are destroyed when the crew is empty. Simulation
is also disabled on them.
* Reduced some of the "params" RPT spam, from DMS_fnc_SetGroupBehavior.
* Tweaked AI Vehicle spawning logic. The AI are initially assigned to a
temporary group and then behavior is set, then they join the assigned
group to prevent overriding behavior of other ground units.
* Non-persistent vehicles should now be fit properly to the terrain.
#### September 14, 2015 (11:00 PM CST-America):
* NEW CONFIG VALUES: DMS_AIVehCleanUpTime, DMS_MinWaterDepth,
DMS_Bandit_Vehicle_MoneyGain, DMS_Bandit_Vehicle_RepGain.
* Changed default value of DMS_Bandit_Static_MoneyGain to 75,
DMS_Bandit_Static_RepGain to 15.
* NEW FUNCTION: DMS_fnc_SpawnAIVehicle.
* You can now spawn AI in vehicles.
* Improved cleanup method for AI in static guns.
* Working on improving OnKilled EH for AI in vehicles.
* FindSafePos should no longer check for parameters if the corresponding
blacklist radius is set to 0.
* NEW CONFIG VALUES: ```DMS_GodmodeCrates``` and
```DMS_CrateCase_Sniper```. DMS_GodmodeCrates is pretty self-explanatory
:P
* NEW FEATURE FOR "DMS_fnc_FillCrate": You can now define "crate cases"
in the config (such as "DMS_CrateCase_Sniper"). Passing the "crate case"
name (such as "Sniper") will make the crate spawn with the exact gear
defined in the config. Refer to the testmission.sqf (line 80) and
"DMS_CrateCase_Sniper" config for an example.
* Spawned vehicles will now be LOCKED and INVINCIBLE until the mission
is completed.
* Spawned vehicles spawn with 100% fuel.
* "Fixed" some cases where killing from a mounted gun would reset your
money/respect (maybe).
* Fixed some spelling errors and incorrect names in some of the mission
messages/markers.
* Fixed DMS_fnc_FindSafePos for Bornholm. If you have any issues with
custom maps, please let us know.
* Fixed backpack spawning on the ground behind an AI unit that was
supposed to get a launcher.
* NEW CONFIG VALUES: ```DMS_MarkerPosRandomization```,
```DMS_MarkerPosRandomRadius```, and ```DMS_RandomMarkerBrush```
* With the above configs, you can randomize the marker positions in a
random position around the actual mission center.
* You can also "force" DMS_fnc_CreateMarker to randomize (or not
randomize) the marker position with optional boolean parameter of index
3.
* Changed the default (non-randomized) circle marker "brush". It should
be a solid circle.
* Created new functions ```DMS_fnc_SelectOffsetPos``` and
```DMS_fnc_SelectRandomVal```
* Adjusted a couple functions to use them.
* Fixed ```DMS_fnc_IsNearWater```.