a few minor things

This commit is contained in:
eraser1 2016-07-05 19:16:06 -05:00
parent a07d2b412e
commit db16672811
11 changed files with 212 additions and 33 deletions

View File

@ -4,7 +4,7 @@ class CfgPatches
{
units[] = {};
weapons[] = {};
a3_DMS_version = "July 3, 2016 (2)";
a3_DMS_version = "July 5, 2016";
requiredVersion = 1.36;
requiredAddons[] = {"exile_client","exile_server_config"};
};

View File

@ -8,12 +8,30 @@
A lot of these configs are influenced by WAI :P
https://github.com/nerdalertdk/WICKED-AI
*/
// You dawg... heard you like configs... so here's some configs for your config.... so you can configure your configuration to make it easier to configure your configuration http://i.imgur.com/9eJjEEo.jpg
// If you don't want the AI to have marksman DLC weapons, then simply remove the line below, or comment it by putting // at the beginning of the line
#define GIVE_AI_MARKSMAN_DLC_WEAPONS 1
// If you don't want crates to spawn with marksman DLC weapons, simply remove the line below or comment it out.
#define USE_MARKSMAN_DLC_WEAPONS_IN_CRATES 1
// Uncomment this if you want Apex weapons on AI.
//#define GIVE_AI_APEX_WEAPONS 1
// Uncomment this if you want Apex gear on AI. Uniforms, Vests, Backpacks, Helmets,Scopes
//#define GIVE_AI_APEX_GEAR
// Uncomment this if you want Apex weapons in loot crates
//#define USE_APEX_WEAPONS_IN_CRATES 1
// Uncomment this if you want Apex vehicles to spawn for AI/missions
//#define USE_APEX_VEHICLES 1
DMS_Use_Map_Config = true; // Whether or not to use config overwrites specific to the map.
/*
@ -330,7 +348,7 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
DMS_Survivor_Vehicle_MoneyGain = -500; // The amount of Poptabs gained for killing a Survivor vehicle crew member
DMS_Survivor_Vehicle_RepGain = -100; // The amount of Respect gained for killing a Survivor vehicle crew member
DMS_Survivor_Vehicle_RankGain = -600;
DMS_Survivor_Vehicle_MoneyGain = 0; // The amount of Poptabs carried by a Survivor vehicle crew member
DMS_Survivor_Vehicle_SpawnMoney = 0; // The amount of Poptabs carried by a Survivor vehicle crew member
DMS_AIKill_DistanceBonusMinDistance = 100; // Minimum distance from the player to the AI to apply the distance bonus.
DMS_AIKill_DistanceBonusCoefficient = 0.05; // If the distance from the player to the killed unit is more than "DMS_AIKill_DistanceBonusMinDistance" meters then the player gets a respect bonus equivalent to the distance multiplied by this coefficient. For example, killing an AI from 400 meters will give 100 extra respect (when the coefficient is 0.25). Set to 0 to disable the bonus. This bonus will not be applied if there isn't a regular AI kill bonus.
@ -395,7 +413,7 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
DMS_ai_freezeOnSpawn = true; // Whether or not to freeze an AI group when initially spawned.
DMS_ai_share_info = false; // Share info about killer
DMS_ai_share_info_distance = 300; // The distance killer's info will be shared to other AI
DMS_ai_share_info_distance = 25; // The distance killer's info will be shared to other AI
DMS_ai_nighttime_accessory_chance = 75; // Percentage chance that AI will have a flashlight or laser pointer on their guns if spawned during nighttime
DMS_ai_enable_water_equipment = true; // Enable/disable overriding default weapons of an AI if it spawns on/in water
@ -454,6 +472,13 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
//Assault Class
DMS_assault_weps = [ // Assault Rifles
#ifdef GIVE_AI_APEX_WEAPONS
"arifle_AK12_F",
"arifle_ARX_ghex_F",
"arifle_CTAR_blk_F",
"arifle_SPAR_01_khk_F",
"arifle_SPAR_03_khk_F",
#endif
"arifle_Katiba_GL_F",
"arifle_MX_GL_Black_F",
"arifle_Mk20_GL_F",
@ -484,6 +509,10 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
"Exile_Weapon_TaurusGold"
];
DMS_assault_optics = [ // Optics for Assault Class
#ifdef GIVE_AI_APEX_GEAR
"optic_ERCO_khk_F",
"optic_Holosight_blk_F",
#endif
"optic_Arco",
"optic_Hamr",
"optic_Aco",
@ -513,15 +542,30 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
"Exile_Item_Bandage"
];
DMS_assault_helmets = [ // Helmets for Assault Class
#ifdef GIVE_AI_APEX_GEAR
"H_HelmetB_TI_tna_F",
"H_HelmetB_Enh_tna_F",
"H_HelmetSpecO_ghex_F",
"H_HelmetCrew_O_ghex_F",
#endif
"H_HelmetSpecB_paint1",
"H_HelmetIA_camo",
"H_HelmetLeaderO_ocamo",
"H_HelmetLeaderO_oucamo"
];
DMS_assault_clothes = [ // Uniforms for Assault Class
#ifdef GIVE_AI_APEX_GEAR
"U_B_T_Soldier_F",
"U_B_T_Soldier_SL_F",
"U_B_CTRG_Soldier_F",
"U_O_V_Soldier_Viper_F",
"U_I_C_Soldier_Bandit_2_F",
"U_I_C_Soldier_Camo_F",
"U_B_CTRG_Soldier_urb_1_F",
#endif
"U_O_CombatUniform_ocamo",
"U_O_PilotCoveralls",
"U_B_Wetsuit",
//"U_B_Wetsuit",
"U_BG_Guerilla3_1",
"U_BG_Guerilla2_3",
"U_BG_Guerilla2_2",
@ -534,6 +578,14 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
"U_I_G_resistanceLeader_F"
];
DMS_assault_vests = [ // Vests for Assault Class
#ifdef GIVE_AI_APEX_GEAR
"V_TacChestrig_grn_F",
"V_PlateCarrier2_tna_F",
"V_PlateCarrierSpec_tna_F",
"V_PlateCarrierGL_tna_F",
"V_TacVest_gen_F",
"V_PlateCarrier1_rgr_noflag_F",
#endif
"V_PlateCarrierH_CTRG",
"V_PlateCarrierSpec_rgr",
"V_PlateCarrierGL_blk",
@ -546,6 +598,11 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
"V_PlateCarrierIA2_dgtl"
];
DMS_assault_backpacks = [ // Backpacks for Assault Class
#ifdef GIVE_AI_APEX_GEAR
"B_Bergen_tna_F",
"B_FieldPack_ghex_F",
"B_ViperLightHarness_khk_F",
#endif
"B_Bergen_rgr",
"B_Carryall_oli",
"B_Kitbag_mcamo",
@ -561,6 +618,10 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
"MMG_01_hex_F",
"MMG_02_black_F",
#endif
#ifdef GIVE_AI_APEX_WEAPONS
"LMG_03_F",
#endif
"LMG_Zafir_F",
"LMG_Mk200_F",
"arifle_MX_SW_Black_F",
@ -579,6 +640,11 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
"Exile_Weapon_TaurusGold"
];
DMS_MG_optics = [ // Optics for MG Class
#ifdef GIVE_AI_APEX_GEAR
"optic_ERCO_khk_F",
"optic_DMS_ghex_F",
"optic_Arco_blk_F",
#endif
"optic_Hamr",
"optic_Aco",
"optic_Holosight",
@ -607,6 +673,13 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
"Exile_Item_Instadoc"
];
DMS_MG_helmets = [ // Helmets for MG Class
#ifdef GIVE_AI_APEX_GEAR
"H_HelmetB_TI_tna_F",
"H_HelmetB_Enh_tna_F",
"H_HelmetSpecO_ghex_F",
"H_HelmetLeaderO_ghex_F",
"H_HelmetCrew_O_ghex_F",
#endif
"H_PilotHelmetHeli_I",
"H_PilotHelmetHeli_O",
"H_PilotHelmetFighter_I",
@ -619,9 +692,18 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
"H_HelmetLeaderO_oucamo"
];
DMS_MG_clothes = [ // Uniforms for MG Class
#ifdef GIVE_AI_APEX_GEAR
"U_B_T_Soldier_F",
"U_B_T_Soldier_SL_F",
"U_B_CTRG_Soldier_F",
"U_O_V_Soldier_Viper_F",
"U_I_C_Soldier_Bandit_2_F",
"U_I_C_Soldier_Camo_F",
"U_B_CTRG_Soldier_urb_1_F",
#endif
"U_O_CombatUniform_ocamo",
"U_O_PilotCoveralls",
"U_B_Wetsuit",
//"U_B_Wetsuit",
"U_BG_Guerilla3_1",
"U_BG_Guerilla2_3",
"U_BG_Guerilla2_2",
@ -634,6 +716,14 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
"U_I_G_resistanceLeader_F"
];
DMS_MG_vests = [ // Vests for MG Class
#ifdef GIVE_AI_APEX_GEAR
"V_TacChestrig_grn_F",
"V_PlateCarrier2_tna_F",
"V_PlateCarrierSpec_tna_F",
"V_PlateCarrierGL_tna_F",
"V_TacVest_gen_F",
"V_PlateCarrier1_rgr_noflag_F",
#endif
"V_PlateCarrierH_CTRG",
"V_PlateCarrierSpec_rgr",
"V_PlateCarrierGL_blk",
@ -648,6 +738,12 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
"V_HarnessO_gry"
];
DMS_MG_backpacks = [ // Backpacks for MG Class
#ifdef GIVE_AI_APEX_GEAR
"B_Bergen_tna_F",
"B_Carryall_ghex_F",
"B_ViperHarness_ghex_F",
"B_ViperLightHarness_ghex_F",
#endif
"B_Bergen_rgr",
"B_Carryall_oli",
"B_Kitbag_mcamo",
@ -669,11 +765,18 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
"srifle_DMR_05_blk_F",
"srifle_DMR_06_olive_F",
#endif
#ifdef GIVE_AI_APEX_WEAPONS
"srifle_DMR_07_ghex_F",
#endif
"Exile_Weapon_DMR",
"Exile_Weapon_SVD",
"Exile_Weapon_VSSVintorez"
];
DMS_sniper_pistols = [ // Pistols for Assault Class (Set to empty array if you don't want to give them any pistols)
#ifdef GIVE_AI_APEX_WEAPONS
"hgun_Pistol_01_F",
#endif
"hgun_ACPC2_F",
"hgun_Rook40_F",
"hgun_P07_F",
@ -685,6 +788,15 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
"Exile_Weapon_TaurusGold"
];
DMS_sniper_optics = [ // Optics for Sniper Class
#ifdef GIVE_AI_APEX_GEAR
"optic_SOS_khk_F",
"optic_DMS_ghex_F",
"optic_LRPS_tna_F",
#endif
#ifdef GIVE_AI_MARKSMAN_DLC_WEAPONS
"optic_AMS_khk",
#endif
"optic_SOS",
"optic_DMS",
"optic_LRPS"
@ -713,12 +825,24 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
"Exile_Item_DuctTape"
];
DMS_sniper_helmets = [ // Helmets for Sniper Class
#ifdef GIVE_AI_APEX_GEAR
//"H_HelmetO_ViperSP_ghex_F", // Special helmet with in-built NVGs and thermal :o
"H_HelmetB_Enh_tna_F",
"H_HelmetSpecO_ghex_F",
"H_HelmetLeaderO_ghex_F",
#endif
"H_HelmetSpecB_paint1",
"H_HelmetIA_camo",
"H_HelmetLeaderO_ocamo",
"H_HelmetLeaderO_oucamo"
];
DMS_sniper_clothes = [ // Uniforms for Sniper Class
#ifdef GIVE_AI_APEX_GEAR
"U_B_T_Sniper_F",
"U_B_T_FullGhillie_tna_F", // Invisible to thermal? 0_o
"U_O_T_Sniper_F",
"U_O_T_FullGhillie_tna_F",
#endif
"U_O_GhillieSuit",
"U_B_FullGhillie_ard",
"U_B_FullGhillie_lsh",
@ -733,6 +857,12 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
"U_O_FullGhillie_sard"
];
DMS_sniper_vests = [ // Vests for Sniper Class
#ifdef GIVE_AI_APEX_GEAR
"V_PlateCarrier2_tna_F",
"V_PlateCarrierSpec_tna_F",
"V_PlateCarrierGL_tna_F",
"V_PlateCarrier2_rgr_noflag_F",
#endif
"V_PlateCarrierH_CTRG",
"V_PlateCarrierSpec_rgr",
"V_PlateCarrierGL_blk",
@ -747,6 +877,15 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
"V_HarnessO_gry"
];
DMS_sniper_backpacks = [ // Backpacks for Sniper Class
#ifdef GIVE_AI_APEX_GEAR
"B_Bergen_tna_F",
"B_Bergen_hex_F",
"B_Carryall_ghex_F",
"B_ViperHarness_ghex_F",
"B_ViperHarness_blk_F",
"B_ViperLightHarness_ghex_F",
"B_ViperLightHarness_khk_F",
#endif
"B_Bergen_rgr",
"B_Carryall_oli",
"B_Kitbag_mcamo",
@ -800,6 +939,9 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
DMS_ai_remove_launchers = true; // Remove rocket launchers on AI death
DMS_AI_wep_launchers_AT = [ // AT Launchers
#ifdef GIVE_AI_APEX_WEAPONS
"launch_RPG7_F",
#endif
"launch_NLAW_F",
"launch_RPG32_F",
"launch_B_Titan_short_F"
@ -869,6 +1011,16 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
"MMG_01_hex_F",
"MMG_02_black_F",
#endif
#ifdef USE_APEX_WEAPONS_IN_CRATES
"arifle_AK12_F",
"arifle_ARX_ghex_F",
"arifle_CTAR_blk_F",
"arifle_SPAR_01_khk_F",
"arifle_SPAR_03_khk_F",
//"srifle_DMR_07_ghex_F", // Oh great, a 6.5mm 20 round sniper rifle... because everybody wanted a nerfed MXM :p
"LMG_03_F",
#endif
"Exile_Melee_Axe",
"Exile_Melee_SledgeHammmer",
"Exile_Item_Shovel",
@ -1040,10 +1192,18 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
// Vehicles
DMS_ArmedVehicles = [ // List of armed vehicles that can spawn
#ifdef USE_APEX_VEHICLES
"B_T_LSV_01_armed_F",
"O_T_LSV_02_armed_F",
#endif
"Exile_Car_Offroad_Armed_Guerilla01"
];
DMS_MilitaryVehicles = [ // List of military vehicles that can spawn
DMS_MilitaryVehicles = [ // List of (unarmed) military vehicles that can spawn
#ifdef USE_APEX_VEHICLES
"B_T_LSV_01_unarmed_F",
"O_T_LSV_02_unarmed_F",
#endif
"Exile_Car_Strider",
"Exile_Car_Hunter",
"Exile_Car_Ifrit"
@ -1068,6 +1228,10 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
];
DMS_CivilianVehicles = [ // List of civilian vehicles that can spawn
#ifdef USE_APEX_VEHICLES
"C_Offroad_02_unarmed_F",
"I_C_Van_01_transport_F",
#endif
"Exile_Car_SUV_Red",
"Exile_Car_Hatchback_Rusty1",
"Exile_Car_Hatchback_Rusty2",
@ -1078,6 +1242,10 @@ DMS_SpawnMissions_Scheduled = false; // Whether or not to spawn missions in a sc
];
DMS_TransportHelis = [ // List of transport helis that can spawn
#ifdef USE_APEX_VEHICLES
"B_T_VTOL_01_infantry_F",
"O_T_VTOL_02_infantry_F",
#endif
"Exile_Chopper_Hummingbird_Green",
"Exile_Chopper_Orca_BlackCustom",
"Exile_Chopper_Mohawk_FIA",

View File

@ -64,7 +64,7 @@ _crate = ["Box_NATO_Wps_F",_pos] call DMS_fnc_SpawnCrate;
_vehClass =
if (_extraParams isEqualTo []) then
{
"Exile_Car_Offroad_Armed_Guerilla01"
selectRandom DMS_ArmedVehicles
}
else
{
@ -80,7 +80,7 @@ _vehClass =
}
else
{
"Exile_Car_Offroad_Armed_Guerilla01"
selectRandom DMS_ArmedVehicles
};
};
};

View File

@ -59,7 +59,7 @@ _difficulty = selectRandom _PossibleDifficulty;
switch (_difficulty) do
{
case:
case "easy":
{
_AICount = (4 + (round (random 4)));
_crate_weapons = (1 + (round (random 1)));

View File

@ -1,7 +1,6 @@
/*
"saltflats" static mission for Altis.
"Underwater Stash" mission for Tanoa
Created by eraser1
Credits to "Darth Rogue" for creating the base.
*/
// For logging purposes

View File

@ -36,7 +36,7 @@ then
}
else
{
(getArray (configFile >> "CfgWeapons" >> _weapon >> "magazines")) select 0
_weapon call DMS_fnc_selectMagazine
};
for "_i" from 1 to _magazineCount do

View File

@ -14,7 +14,7 @@ private _recentlyUnfrozen = [];
{
if (isNull _x) then
{
diag_log format["DMS ERROR :: Null Group found in DMS_FrozenAIGroups! Index: %1",_forEachIndex];
diag_log format["DMS SORT OF AN ERROR :: Null Group found in DMS_FrozenAIGroups! Index: %1",_forEachIndex];
DMS_FrozenAIGroups deleteAt _forEachIndex;
}
else

View File

@ -318,7 +318,7 @@ if (isPlayer _killer) then
// Reveal the killer to the AI units
if (_unit getVariable ["DMS_ai_share_info",DMS_ai_share_info]) then
{
private _revealAmount = 4.0;
private _revealAmount = 3;
private _muzzle = currentMuzzle _playerObj;
@ -327,7 +327,7 @@ if (isPlayer _killer) then
private _silencer = _playerObj weaponAccessories _muzzle select 0;
if (!isNil "_silencer" && {_silencer != ""}) then
{
_revealAmount = 2.0;
_revealAmount = 1.5;
};
};

View File

@ -9,11 +9,11 @@
*/
private _result = "";
private _ammoArray = getArray (configFile >> "CfgWeapons" >> _this >> "magazines");
private _magArray = getArray (configFile >> "CfgWeapons" >> _this >> "magazines");
if (count _ammoArray > 0) then
if (count _magArray > 0) then
{
_result = _ammoArray select 0;
_result = _magArray select 0;
};
_result

View File

@ -81,7 +81,7 @@ for "_i" from 1 to _count do
};
// An AI will definitely spawn with a launcher if you define type
if ((DMS_ai_use_launchers && {DMS_ai_launchers_per_group>0}) || {!(_launcherType isEqualTo "")}) then
if ((DMS_ai_use_launchers || {!(_launcherType isEqualTo "")}) then
{
if (_launcherType isEqualTo "") then
{
@ -89,9 +89,9 @@ if ((DMS_ai_use_launchers && {DMS_ai_launchers_per_group>0}) || {!(_launcherType
};
private _units = units _group;
private _launchers = missionNamespace getVariable [format ["DMS_AI_wep_launchers_%1",_launcherType],["launch_NLAW_F"]];
private _launchers = missionNamespace getVariable [format ["DMS_AI_wep_launchers_%1",_launcherType],DMS_AI_wep_launchers_AT];
for "_i" from 0 to (((DMS_ai_launchers_per_group min _count)-1) max 0) do
for "_i" from 0 to ((DMS_ai_launchers_per_group min _count)-1) do
{
if ((random 100)<DMS_ai_use_launchers_chance) then
{
@ -101,15 +101,14 @@ if ((DMS_ai_use_launchers && {DMS_ai_launchers_per_group>0}) || {!(_launcherType
removeBackpackGlobal _unit;
_unit addBackpack "B_Carryall_mcamo";
private _rocket = _launcher call DMS_fnc_selectMagazine;
[_unit, _launcher, DMS_AI_launcher_ammo_count,_rocket] call BIS_fnc_addWeapon;
[_unit, _launcher, DMS_AI_launcher_ammo_count] call DMS_fnc_addWeapon;
_unit setVariable ["DMS_AI_Launcher",_launcher];
if (DMS_DEBUG) then
{
(format["SpawnAIGroup :: Giving %1 a %2 launcher with %3 %4 rockets",_unit,_launcher,DMS_AI_launcher_ammo_count,_rocket]) call DMS_fnc_DebugLog;
(format["SpawnAIGroup :: Giving %1 a %2 launcher with %3 rockets",_unit,_launcher,DMS_AI_launcher_ammo_count]) call DMS_fnc_DebugLog;
};
};
};

View File

@ -73,12 +73,12 @@ after "7 createVehicle"
3. Pack the a3_dms folder with a PBO tool ([PBO Manager](http://www.armaholic.com/page.php?id=16369), [Eliteness](https://dev.withsix.com/projects/mikero-pbodll/files), or [the Arma 3 Tools suite](http://store.steampowered.com/app/233800/))
4. Put the generated PBO in your ```@ExileServer\addons\``` directory. It should be alongside ```exile_server.pbo``` and ```exile_server_config.pbo```.
<br>
## infiSTAR:
* If you are using infiSTAR and want to keep ```CGM = true;```, then set ```UMW = true;```.
* Add ```'O_HMG_01_high_F'``` to ```_VehicleWhiteList```, as well as any other vehicles you add to DMS that are not whitelisted.
<br><br>
### Vilayer or other Game Server Providers Instructions:
If you are using Vilayer or some other GameServer hosting service, and/or the above steps did not work, then follow these instructions:
@ -87,18 +87,19 @@ If you are using Vilayer or some other GameServer hosting service, and/or the ab
2. Create a subfolder called "addons".
3. Place the "a3_dms.pbo" in the "addons" subfolder.
4. Edit your startup parameters/modline to include "@a3_dms". For example: ```-serverMod=@ExileServer;@a3_dms;```
### HEADLESS CLIENT:
**DMS does not currently support headless client. Do not attempt to use HC with DMS unless you know what you are doing.**
<br><br>
## Troubleshooting:
If you're having any issues with DMS, check your RPT for errors and make sure PBO is packed correctly by unpacking it and ensuring the folder structure is "\x\addons\a3_DMS\...".
If you can't figure it out, leave a post on [the DMS thread on exile forums](http://www.exilemod.com/topic/61-dms-defents-mission-system/?do=findComment&comment=242). **Make sure to include your RPT, config.sqf, as well as any changed files. Please use [pastebin](http://pastebin.com/), spoilers, or something similar; DO NOT PASTE EVERYTHING DIRECTLY INTO THE POST (without putting it in a spoiler)**
<br><br>
### HEADLESS CLIENT:
**DMS does not currently support headless client. Do not attempt to use HC with DMS unless you know what you are doing.**
___
<br><br>
# Credits:
### Authors:
@ -125,6 +126,7 @@ ___
- [CEN from ATD Gaming](http://atdgaming.com/)
___
<br><br><br>
# Roadmap:
#### Convoy Mission:
@ -144,12 +146,23 @@ ___
* AI will still be offloaded to clients (ideally); strictly DMS functions will be handled by the HC.
___
<br><br><br>
# Changelog:
### Main Branch
### July 5, 2016 (8:15 PM CST-America):
* Fixed a typo in the config (the second ```DMS_Survivor_Vehicle_MoneyGain``` should be ```DMS_Survivor_Vehicle_SpawnMoney```).
* Added Apex weapons, equipment, and vehicles to config (disabled by default).
* Reduced ```DMS_ai_share_info_distance``` default value drastically, from 300 meters to 25 (it was overpowered and unrealistic).
* "Armed Bandits" mission will select a random vehicle from "DMS_ArmedVehicles" instead of the armed offroad every time.
* Fixed a typo in the "nedbuilding1_mission".
* "DMS_fnc_AddWeapon" now uses "DMS_fnc_selectMagazine" to select a magazine instead of looking in the weapon config directly (the "DMS_fnc_selectMagazine" function does that).
* Reduced the "reveal amount" for both suppressed and non-suppressed weapons when "DMS_ai_share_info" is enabled.
* The "SpawnAIGroup" functions will now use "DMS_fnc_addWeapon" instead of the BIS variant to add launchers.
* Slight tweaks of function/mission comments and error logs.
### July 3, 2016 (8:15 PM CST-America):
* Player money will be saved on kill.