Some cool new stuff :D

This commit is contained in:
eraser1 2016-02-17 17:58:05 -06:00
parent 53b26e5ec0
commit 9d0ec9cffe
22 changed files with 131 additions and 78 deletions

View File

@ -7,7 +7,7 @@ DMS_HC_Object = objNull;
DMS_CleanUpList = [];
DMS_Version = "February 14 2016";
DMS_Version = "February 17 2016";
//Load main config

View File

@ -14,7 +14,7 @@ _side = "bandit";
// This part is unnecessary, but exists just as an example to format the parameters for "DMS_fnc_MissionParams" if you want to explicitly define the calling parameters for DMS_fnc_FindSafePos.
// It also allows anybody to modify the default calling parameters easily.
if ((isNil "_this") || {_this isEqualTo [] || {(typeName _this)!="ARRAY"}}) then
if ((isNil "_this") || {_this isEqualTo [] || {!(_this isEqualType [])}}) then
{
_this =
[
@ -172,7 +172,7 @@ if !(_added) exitWith
} forEach _missionAIUnits;
_cleanup pushBack ((_missionObjs select 0)+(_missionObjs select 1));
{
_cleanup pushBack (_x select 0);
} foreach (_missionObjs select 2);
@ -197,4 +197,4 @@ if !(_added) exitWith
if (DMS_DEBUG) then
{
(format ["MISSION: (%1) :: Mission #%2 started at %3 with %4 AI units and %5 difficulty at time %6",_missionName,_num,_pos,_AICount,_difficulty,_time]) call DMS_fnc_DebugLog;
};
};

View File

@ -11,12 +11,12 @@ private ["_num", "_side", "_pos", "_OK", "_difficulty", "_AICount", "_group", "_
_num = DMS_MissionCount;
// Set mission side (only "bandit" is supported for now)
// Set mission side
_side = "bandit";
// This part is unnecessary, but exists just as an example to format the parameters for "DMS_fnc_MissionParams" if you want to explicitly define the calling parameters for DMS_fnc_FindSafePos.
// It also allows anybody to modify the default calling parameters easily.
if ((isNil "_this") || {_this isEqualTo [] || {(typeName _this)!="ARRAY"}}) then
if ((isNil "_this") || {_this isEqualTo [] || {!(_this isEqualType [])}}) then
{
_this =
[

View File

@ -11,12 +11,12 @@ private ["_num", "_group", "_pos", "_side", "_OK", "_difficulty", "_AICount", "_
_num = DMS_MissionCount;
// Set mission side (only "bandit" is supported for now)
// Set mission side
_side = "bandit";
// This part is unnecessary, but exists just as an example to format the parameters for "DMS_fnc_MissionParams" if you want to explicitly define the calling parameters for DMS_fnc_FindSafePos.
// It also allows anybody to modify the default calling parameters easily.
if ((isNil "_this") || {_this isEqualTo [] || {(typeName _this)!="ARRAY"}}) then
if ((isNil "_this") || {_this isEqualTo [] || {!(_this isEqualType [])}}) then
{
_this =
[
@ -149,7 +149,7 @@ if !(_added) exitWith
} forEach _missionAIUnits;
_cleanup pushBack ((_missionObjs select 0)+(_missionObjs select 1));
{
_cleanup pushBack (_x select 0);
} foreach (_missionObjs select 2);
@ -174,4 +174,4 @@ if !(_added) exitWith
if (DMS_DEBUG) then
{
(format ["MISSION: (%1) :: Mission #%2 started at %3 with %4 AI units and %5 difficulty at time %6",_missionName,_num,_pos,_AICount,_difficulty,_time]) call DMS_fnc_DebugLog;
};
};

View File

@ -11,13 +11,13 @@ private ["_num", "_group", "_pos", "_side", "_OK", "_difficulty", "_AICount", "_
_num = DMS_MissionCount;
// Set mission side (only "bandit" is supported for now)
// Set mission side
_side = "bandit";
// This part is unnecessary, but exists just as an example to format the parameters for "DMS_fnc_MissionParams" if you want to explicitly define the calling parameters for DMS_fnc_FindSafePos.
// It also allows anybody to modify the default calling parameters easily.
if ((isNil "_this") || {_this isEqualTo [] || {(typeName _this)!="ARRAY"}}) then
if ((isNil "_this") || {_this isEqualTo [] || {!(_this isEqualType [])}}) then
{
_this =
[
@ -150,7 +150,7 @@ if !(_added) exitWith
} forEach _missionAIUnits;
_cleanup pushBack ((_missionObjs select 0)+(_missionObjs select 1));
{
_cleanup pushBack (_x select 0);
} foreach (_missionObjs select 2);
@ -175,4 +175,4 @@ if !(_added) exitWith
if (DMS_DEBUG) then
{
(format ["MISSION: (%1) :: Mission #%2 started at %3 with %4 AI units and %5 difficulty at time %6",_missionName,_num,_pos,_AICount,_difficulty,_time]) call DMS_fnc_DebugLog;
};
};

View File

@ -11,13 +11,13 @@ private ["_num", "_group", "_pos", "_side", "_OK", "_difficulty", "_AICount", "_
_num = DMS_MissionCount;
// Set mission side (only "bandit" is supported for now)
// Set mission side
_side = "bandit";
// This part is unnecessary, but exists just as an example to format the parameters for "DMS_fnc_MissionParams" if you want to explicitly define the calling parameters for DMS_fnc_FindSafePos.
// It also allows anybody to modify the default calling parameters easily.
if ((isNil "_this") || {_this isEqualTo [] || {(typeName _this)!="ARRAY"}}) then
if ((isNil "_this") || {_this isEqualTo [] || {!(_this isEqualType [])}}) then
{
_this =
[
@ -150,7 +150,7 @@ if !(_added) exitWith
} forEach _missionAIUnits;
_cleanup pushBack ((_missionObjs select 0)+(_missionObjs select 1));
{
_cleanup pushBack (_x select 0);
} foreach (_missionObjs select 2);
@ -175,4 +175,4 @@ if !(_added) exitWith
if (DMS_DEBUG) then
{
(format ["MISSION: (%1) :: Mission #%2 started at %3 with %4 AI units and %5 difficulty at time %6",_missionName,_num,_pos,_AICount,_difficulty,_time]) call DMS_fnc_DebugLog;
};
};

View File

@ -11,13 +11,13 @@ private ["_num", "_group", "_pos", "_side", "_extraParams", "_OK", "_difficulty"
_num = DMS_MissionCount;
// Set mission side (only "bandit" is supported for now)
// Set mission side
_side = "bandit";
// This part is unnecessary, but exists just as an example to format the parameters for "DMS_fnc_MissionParams" if you want to explicitly define the calling parameters for DMS_fnc_FindSafePos.
// It also allows anybody to modify the default calling parameters easily.
if ((isNil "_this") || {_this isEqualTo [] || {(typeName _this)!="ARRAY"}}) then
if ((isNil "_this") || {_this isEqualTo [] || {!(_this isEqualType [])}}) then
{
_this =
[
@ -184,7 +184,7 @@ if !(_added) exitWith
} forEach _missionAIUnits;
_cleanup pushBack ((_missionObjs select 0)+(_missionObjs select 1));
{
_cleanup pushBack (_x select 0);
} foreach (_missionObjs select 2);
@ -209,4 +209,4 @@ if !(_added) exitWith
if (DMS_DEBUG) then
{
(format ["MISSION: (%1) :: Mission #%2 started at %3 with %4 AI units and %5 difficulty at time %6",_missionName,_num,_pos,_AICount,_difficulty,_time]) call DMS_fnc_DebugLog;
};
};

View File

@ -8,13 +8,13 @@ private ["_num", "_group", "_pos", "_side", "_OK", "_difficulty", "_AICount", "_
_num = DMS_MissionCount;
// Set mission side (only "bandit" is supported for now)
// Set mission side
_side = "bandit";
// This part is unnecessary, but exists just as an example to format the parameters for "DMS_fnc_MissionParams" if you want to explicitly define the calling parameters for DMS_fnc_FindSafePos.
// It also allows anybody to modify the default calling parameters easily.
if ((isNil "_this") || {_this isEqualTo [] || {(typeName _this)!="ARRAY"}}) then
if ((isNil "_this") || {_this isEqualTo [] || {!(_this isEqualType [])}}) then
{
_this =
[

View File

@ -11,13 +11,13 @@ private ["_num", "_side", "_pos", "_OK", "_difficulty", "_AICount", "_group", "_
_num = DMS_MissionCount;
// Set mission side (only "bandit" is supported for now)
// Set mission side
_side = "bandit";
// This part is unnecessary, but exists just as an example to format the parameters for "DMS_fnc_MissionParams" if you want to explicitly define the calling parameters for DMS_fnc_FindSafePos.
// It also allows anybody to modify the default calling parameters easily.
if ((isNil "_this") || {_this isEqualTo [] || {(typeName _this)!="ARRAY"}}) then
if ((isNil "_this") || {_this isEqualTo [] || {!(_this isEqualType [])}}) then
{
_this =
[
@ -187,7 +187,7 @@ if !(_added) exitWith
} forEach _missionAIUnits;
_cleanup pushBack ((_missionObjs select 0)+(_missionObjs select 1));
{
_cleanup pushBack (_x select 0);
} foreach (_missionObjs select 2);
@ -212,4 +212,4 @@ if !(_added) exitWith
if (DMS_DEBUG) then
{
(format ["MISSION: (%1) :: Mission #%2 started at %3 with %4 AI units and %5 difficulty at time %6",_missionName,_num,_pos,_AICount,_difficulty,_time]) call DMS_fnc_DebugLog;
};
};

View File

@ -11,13 +11,13 @@ private ["_num", "_side", "_OK", "_pos", "_difficulty", "_AICount", "_group", "_
_num = DMS_MissionCount;
// Set mission side (only "bandit" is supported for now)
// Set mission side
_side = "bandit";
// This part is unnecessary, but exists just as an example to format the parameters for "DMS_fnc_MissionParams" if you want to explicitly define the calling parameters for DMS_fnc_FindSafePos.
// It also allows anybody to modify the default calling parameters easily.
if ((isNil "_this") || {_this isEqualTo [] || {(typeName _this)!="ARRAY"}}) then
if ((isNil "_this") || {_this isEqualTo [] || {!(_this isEqualType [])}}) then
{
_this =
[
@ -150,7 +150,7 @@ if !(_added) exitWith
} forEach _missionAIUnits;
_cleanup pushBack ((_missionObjs select 0)+(_missionObjs select 1));
{
_cleanup pushBack (_x select 0);
} foreach (_missionObjs select 2);
@ -175,4 +175,4 @@ if !(_added) exitWith
if (DMS_DEBUG) then
{
(format ["MISSION: (%1) :: Mission #%2 started at %3 with %4 AI units and %5 difficulty at time %6",_missionName,_num,_pos,_AICount,_difficulty,_time]) call DMS_fnc_DebugLog;
};
};

View File

@ -11,13 +11,13 @@ private ["_num", "_side", "_OK", "_group", "_pos", "_difficulty", "_AICount", "_
_num = DMS_MissionCount;
// Set mission side (only "bandit" is supported for now)
// Set mission side
_side = "bandit";
// This part is unnecessary, but exists just as an example to format the parameters for "DMS_fnc_MissionParams" if you want to explicitly define the calling parameters for DMS_fnc_FindSafePos.
// It also allows anybody to modify the default calling parameters easily.
if ((isNil "_this") || {_this isEqualTo [] || {(typeName _this)!="ARRAY"}}) then
if ((isNil "_this") || {_this isEqualTo [] || {!(_this isEqualType [])}}) then
{
_this =
[
@ -150,7 +150,7 @@ if !(_added) exitWith
} forEach _missionAIUnits;
_cleanup pushBack ((_missionObjs select 0)+(_missionObjs select 1));
{
_cleanup pushBack (_x select 0);
} foreach (_missionObjs select 2);
@ -175,4 +175,4 @@ if !(_added) exitWith
if (DMS_DEBUG) then
{
(format ["MISSION: (%1) :: Mission #%2 started at %3 with %4 AI units and %5 difficulty at time %6",_missionName,_num,_pos,_AICount,_difficulty,_time]) call DMS_fnc_DebugLog;
};
};

View File

@ -11,13 +11,13 @@ private ["_num", "_side", "_OK", "_group", "_pos", "_difficulty", "_AICount", "_
_num = DMS_MissionCount;
// Set mission side (only "bandit" is supported for now)
// Set mission side
_side = "bandit";
// This part is unnecessary, but exists just as an example to format the parameters for "DMS_fnc_MissionParams" if you want to explicitly define the calling parameters for DMS_fnc_FindSafePos.
// It also allows anybody to modify the default calling parameters easily.
if ((isNil "_this") || {_this isEqualTo [] || {(typeName _this)!="ARRAY"}}) then
if ((isNil "_this") || {_this isEqualTo [] || {!(_this isEqualType [])}}) then
{
_this =
[
@ -150,7 +150,7 @@ if !(_added) exitWith
} forEach _missionAIUnits;
_cleanup pushBack ((_missionObjs select 0)+(_missionObjs select 1));
{
_cleanup pushBack (_x select 0);
} foreach (_missionObjs select 2);
@ -175,4 +175,4 @@ if !(_added) exitWith
if (DMS_DEBUG) then
{
(format ["MISSION: (%1) :: Mission #%2 started at %3 with %4 AI units and %5 difficulty at time %6",_missionName,_num,_pos,_AICount,_difficulty,_time]) call DMS_fnc_DebugLog;
};
};

View File

@ -11,13 +11,13 @@ private ["_num", "_side", "_OK", "_group", "_pos", "_difficulty", "_AICount", "_
_num = DMS_MissionCount;
// Set mission side (only "bandit" is supported for now)
// Set mission side
_side = "bandit";
// This part is unnecessary, but exists just as an example to format the parameters for "DMS_fnc_MissionParams" if you want to explicitly define the calling parameters for DMS_fnc_FindSafePos.
// It also allows anybody to modify the default calling parameters easily.
if ((isNil "_this") || {_this isEqualTo [] || {(typeName _this)!="ARRAY"}}) then
if ((isNil "_this") || {_this isEqualTo [] || {!(_this isEqualType [])}}) then
{
_this =
[
@ -148,7 +148,7 @@ if !(_added) exitWith
} forEach _missionAIUnits;
_cleanup pushBack ((_missionObjs select 0)+(_missionObjs select 1));
{
_cleanup pushBack (_x select 0);
} foreach (_missionObjs select 2);

View File

@ -8,13 +8,13 @@ private ["_num", "_side", "_OK", "_group", "_pos", "_difficulty", "_AICount", "_
_num = DMS_MissionCount;
// Set mission side (only "bandit" is supported for now)
// Set mission side
_side = "bandit";
// This part is unnecessary, but exists just as an example to format the parameters for "DMS_fnc_MissionParams" if you want to explicitly define the calling parameters for DMS_fnc_FindSafePos.
// It also allows anybody to modify the default calling parameters easily.
if ((isNil "_this") || {_this isEqualTo [] || {(typeName _this)!="ARRAY"}}) then
if ((isNil "_this") || {_this isEqualTo [] || {!(_this isEqualType [])}}) then
{
_this =
[
@ -150,7 +150,7 @@ if !(_added) exitWith
} forEach _missionAIUnits;
_cleanup pushBack ((_missionObjs select 0)+(_missionObjs select 1));
{
_cleanup pushBack (_x select 0);
} foreach (_missionObjs select 2);
@ -175,4 +175,4 @@ if !(_added) exitWith
if (DMS_DEBUG) then
{
(format ["MISSION: (%1) :: Mission #%2 started at %3 with %4 AI units and %5 difficulty at time %6",_missionName,_num,_pos,_AICount,_difficulty,_time]) call DMS_fnc_DebugLog;
};
};

View File

@ -8,13 +8,13 @@ private ["_num", "_side", "_OK", "_group", "_pos", "_difficulty", "_AICount", "_
_num = DMS_MissionCount;
// Set mission side (only "bandit" is supported for now)
// Set mission side
_side = "bandit";
// This part is unnecessary, but exists just as an example to format the parameters for "DMS_fnc_MissionParams" if you want to explicitly define the calling parameters for DMS_fnc_FindSafePos.
// It also allows anybody to modify the default calling parameters easily.
if ((isNil "_this") || {_this isEqualTo [] || {(typeName _this)!="ARRAY"}}) then
if ((isNil "_this") || {_this isEqualTo [] || {!(_this isEqualType [])}}) then
{
_this =
[
@ -182,7 +182,7 @@ if !(_added) exitWith
} forEach _missionAIUnits;
_cleanup pushBack ((_missionObjs select 0)+(_missionObjs select 1));
{
_cleanup pushBack (_x select 0);
} foreach (_missionObjs select 2);
@ -207,4 +207,4 @@ if !(_added) exitWith
if (DMS_DEBUG) then
{
(format ["MISSION: (%1) :: Mission #%2 started at %3 with %4 AI units and %5 difficulty at time %6",_missionName,_num,_pos,_AICount,_difficulty,_time]) call DMS_fnc_DebugLog;
};
};

View File

@ -11,13 +11,13 @@ private ["_num", "_side", "_OK", "_group", "_pos", "_difficulty", "_AICount", "_
_num = DMS_MissionCount;
// Set mission side (only "bandit" is supported for now)
// Set mission side
_side = "bandit";
// This part is unnecessary, but exists just as an example to format the parameters for "DMS_fnc_MissionParams" if you want to explicitly define the calling parameters for DMS_fnc_FindSafePos.
// It also allows anybody to modify the default calling parameters easily.
if ((isNil "_this") || {_this isEqualTo [] || {(typeName _this)!="ARRAY"}}) then
if ((isNil "_this") || {_this isEqualTo [] || {!(_this isEqualType [])}}) then
{
_this =
[
@ -148,7 +148,7 @@ if !(_added) exitWith
} forEach _missionAIUnits;
_cleanup pushBack ((_missionObjs select 0)+(_missionObjs select 1));
{
_cleanup pushBack (_x select 0);
} foreach (_missionObjs select 2);
@ -173,4 +173,4 @@ if !(_added) exitWith
if (DMS_DEBUG) then
{
(format ["MISSION: (%1) :: Mission #%2 started at %3 with %4 AI units and %5 difficulty at time %6",_missionName,_num,_pos,_AICount,_difficulty,_time]) call DMS_fnc_DebugLog;
};
};

View File

@ -11,13 +11,13 @@ private ["_num", "_side", "_OK", "_group", "_pos", "_difficulty", "_AICount", "_
_num = DMS_MissionCount;
// Set mission side (only "bandit" is supported for now)
// Set mission side
_side = "bandit";
// This part is unnecessary, but exists just as an example to format the parameters for "DMS_fnc_MissionParams" if you want to explicitly define the calling parameters for DMS_fnc_FindSafePos.
// It also allows anybody to modify the default calling parameters easily.
if ((isNil "_this") || {_this isEqualTo [] || {(typeName _this)!="ARRAY"}}) then
if ((isNil "_this") || {_this isEqualTo [] || {!(_this isEqualType [])}}) then
{
_this =
[
@ -148,7 +148,7 @@ if !(_added) exitWith
} forEach _missionAIUnits;
_cleanup pushBack ((_missionObjs select 0)+(_missionObjs select 1));
{
_cleanup pushBack (_x select 0);
} foreach (_missionObjs select 2);
@ -173,4 +173,4 @@ if !(_added) exitWith
if (DMS_DEBUG) then
{
(format ["MISSION: (%1) :: Mission #%2 started at %3 with %4 AI units and %5 difficulty at time %6",_missionName,_num,_pos,_AICount,_difficulty,_time]) call DMS_fnc_DebugLog;
};
};

View File

@ -8,13 +8,13 @@ private ["_num", "_side", "_OK", "_difficulty", "_AICount", "_type", "_launcher"
_num = DMS_MissionCount;
// Set mission side (only "bandit" is supported for now)
// Set mission side
_side = "bandit";
// This part is unnecessary, but exists just as an example to format the parameters for "DMS_fnc_MissionParams" if you want to explicitly define the calling parameters for DMS_fnc_FindSafePos.
// It also allows anybody to modify the default calling parameters easily.
if ((isNil "_this") || {_this isEqualTo [] || {(typeName _this)!="ARRAY"}}) then
if ((isNil "_this") || {_this isEqualTo [] || {!(_this isEqualType [])}}) then
{
_this =
[
@ -195,7 +195,7 @@ if !(_added) exitWith
} forEach _missionAIUnits;
_cleanup pushBack ((_missionObjs select 0)+(_missionObjs select 1));
{
_cleanup pushBack (_x select 0);
} foreach (_missionObjs select 2);
@ -220,4 +220,4 @@ if !(_added) exitWith
if (DMS_DEBUG) then
{
(format ["MISSION: (%1) :: Mission #%2 started at %3 with %4 AI units and %5 difficulty at time %6",_missionName,_num,_pos,_AICount,_difficulty,_time]) call DMS_fnc_DebugLog;
};
};

View File

@ -8,7 +8,7 @@ private ["_num", "_side", "_OK", "_group", "_pos", "_difficulty", "_AICount", "_
_num = DMS_MissionCount;
// Set mission side (only "bandit" is supported for now)
// Set mission side
_side = "bandit";

View File

@ -11,13 +11,13 @@ private ["_num", "_side", "_OK", "_group", "_pos", "_difficulty", "_AICount", "_
_num = DMS_MissionCount;
// Set mission side (only "bandit" is supported for now)
// Set mission side
_side = "bandit";
// This part is unnecessary, but exists just as an example to format the parameters for "DMS_fnc_MissionParams" if you want to explicitly define the calling parameters for DMS_fnc_FindSafePos.
// It also allows anybody to modify the default calling parameters easily.
if ((isNil "_this") || {_this isEqualTo [] || {(typeName _this)!="ARRAY"}}) then
if ((isNil "_this") || {_this isEqualTo [] || {!(_this isEqualType [])}}) then
{
_this =
[
@ -174,4 +174,4 @@ if !(_added) exitWith
if (DMS_DEBUG) then
{
(format ["MISSION: (%1) :: Mission #%2 started at %3 with %4 AI units and %5 difficulty at time %6",_missionName,_num,_pos,_AICount,_difficulty,_time]) call DMS_fnc_DebugLog;
};
};

View File

@ -39,12 +39,12 @@ if ((!isNull _playerObj) && {(_playerUID != "") && {_playerObj isKindOf "Exile_U
_moneyChange = missionNamespace getVariable [format ["DMS_%1_%2_MoneyGain",_AISide,_AIType],0];
_repChange = missionNamespace getVariable [format ["DMS_%1_%2_RepGain",_AISide,_AIType],0];
_rankChange = missionNamespace getVariable [format ["DMS_%1_%2_RankGain",_AISide,_AIType],0];
// Check for individually defined AI money/respect/rank.
_unitMoney = _unit getVariable ["DMS_AI_Money",""];
_unitRespect = _unit getVariable ["DMS_AI_Respect",""];
_unitRank = _unit getVariable ["DMS_AI_Rank",""];
if !(_unitMoney isEqualTo "") then
{
_moneyChange = _unitMoney;
@ -54,7 +54,7 @@ if ((!isNull _playerObj) && {(_playerUID != "") && {_playerObj isKindOf "Exile_U
{
_repChange = _unitRespect;
};
if !(_unitRank isEqualTo "") then
{
_rankChange = _unitRank;
@ -69,7 +69,7 @@ if ((!isNull _playerObj) && {(_playerUID != "") && {_playerObj isKindOf "Exile_U
};
if ((_moneyChange!=0) || (_repChange!=0) || (_rankChange!=0)) then
if ((_moneyChange!=0) || {_repChange!=0} || {_rankChange!=0}) then
{
_playerMoney = _playerObj getVariable ["ExileMoney", 0];
_playerRespect = _playerObj getVariable ["ExileScore", 0];
@ -156,7 +156,7 @@ if ((!isNull _playerObj) && {(_playerUID != "") && {_playerObj isKindOf "Exile_U
(owner _playerObj) publicVariableClient "ExileClientPlayerScore";
ExileClientPlayerScore = nil;
};
//DONKEYPUNCH CUSTOM KILL STAT ADD FOR AI KILL
//DONKEYPUNCH CUSTOM KILL STAT ADD FOR AI KILL
if (DMS_Add_AIKill2DB) then
{
_newKillerFrags = _killer getVariable ["ExileKills", 0];

View File

@ -79,6 +79,7 @@ ___
- [maca134](http://maca134.co.uk/portfolio/m3editor-arma-3-map-editor/) for M3Editor Stuff
- [Darth Rogue from SOA](http://soldiersofanarchy.net/) for the awesome base for the first DMS static mission :D
- [William from Refugees of the Fallen](http://refugeesofthefallen.enjin.com/) for the amazing slums static mission base and ideas :)
- [DONKEYPUNCH](https://github.com/donkeypunchepoch) for everything on the [February 17th 2016 commit](https://github.com/Defent/DMS_Exile#february-17-2016-600-pm-cst-america) ;)
- Everbody's feedback on [the DMS thread on exile forums](http://www.exilemod.com/topic/61-dms-defents-mission-system/?do=findComment&comment=242)
#### Testers/Reporters:
@ -107,20 +108,72 @@ ___
* Air/Land AI Vehicle Patrols
#### Random community ideas:
* Spawning in a trader on mission completion ([Trillseeker82](http://www.exilemod.com/topic/61-dms-defents-mission-system/?do=findComment&comment=43932)).
* Spawning in a trader on mission completion ([Trillseeker82](http://www.exilemod.com/topic/61-dms-defents-mission-system/?do=findComment&comment=43932)). This might be done after the next Exile update due to the trader system overhaul :)
#### Full Headless Client Support.
#### Client Features.
* Kill messages when a group member kills an AI.
* Custom mission announcement messages.
#### (Maybe) Implement a form of stat-tracking system
* It will store AI kills in the database (this would almost certainly require some extra work on the behalf of server owners).
___
# Changelog:
#### February 17, 2016 (6:00 PM CST-America):
* **NEW CONFIG VALUES:**
DMS_Enable_RankChange
DMS_Add_AIKill2DB
DMS_Show_Kill_Rank_Notification
DMS_Bandit_Soldier_RankGain
DMS_Bandit_Static_RankGain
DMS_Bandit_Vehicle_RankGain
DMS_Hero_Soldier_MoneyGain
DMS_Hero_Soldier_RepGain
DMS_Hero_Soldier_RankGain
DMS_Hero_Static_MoneyGain
DMS_Hero_Static_RepGain
DMS_Hero_Static_RankGain
DMS_Hero_Vehicle_MoneyGain
DMS_Hero_Vehicle_RepGain
DMS_Hero_Vehicle_RankGain
DMS_Survivor_Soldier_MoneyGain
DMS_Survivor_Soldier_RepGain
DMS_Survivor_Soldier_RankGain
DMS_Survivor_Static_MoneyGain
DMS_Survivor_Static_RepGain
DMS_Survivor_Static_RankGain
DMS_Survivor_Vehicle_MoneyGain
DMS_Survivor_Vehicle_RepGain
DMS_Survivor_Vehicle_RankGain
DMS_Bandit_Soldier_RoadkillRank
DMS_Bandit_Static_RoadkillRank
DMS_Bandit_Vehicle_RoadkillRank
DMS_Hero_Soldier_RoadkillMoney
DMS_Hero_Soldier_RoadkillRep
DMS_Hero_Soldier_RoadkillRank
DMS_Hero_Static_RoadkillMoney
DMS_Hero_Static_RoadkillRep
DMS_Hero_Static_RoadkillRank
DMS_Hero_Vehicle_RoadkillMoney
DMS_Hero_Vehicle_RoadkillRep
DMS_Hero_Vehicle_RoadkillRank
DMS_Survivor_Soldier_RoadkillMoney
DMS_Survivor_Soldier_RoadkillRep
DMS_Survivor_Soldier_RoadkillRank
DMS_Survivor_Static_RoadkillMoney
DMS_Survivor_Static_RoadkillRep
DMS_Survivor_Static_RoadkillRank
DMS_Survivor_Vehicle_RoadkillMoney
DMS_Survivor_Vehicle_RoadkillRep
DMS_Survivor_Vehicle_RoadkillRank
DMS_heroSide
DMS_survivorSide
* **There's a lot of new config values in this update, I know it would be a pain to merge them. Check [this pastebin](http://pastebin.com/5s9erDA6) that you can simply paste into your config.sqf to keep yourself up to date.**
* As you can see by the influx of new config values, DMS now supports AI sides other than "bandit".
* All AI types/sides can also take advantage of a humanity/scoring system.
* You can also save kills in the database.
* This update courtesy of [DONKEYPUNCH](https://github.com/donkeypunchepoch) :)
#### February 14, 2016 (1:45 PM CST-America):
* **NEW CONFIG VALUES:**