whoopsies

This commit is contained in:
eraser1 2017-02-25 22:34:33 -06:00
parent c6c4db9e02
commit 1ddfe06bd9
3 changed files with 39 additions and 30 deletions

View File

@ -4,7 +4,7 @@ class CfgPatches
{ {
units[] = {}; units[] = {};
weapons[] = {}; weapons[] = {};
a3_DMS_version = "February 23, 2017"; a3_DMS_version = "February 25, 2017";
requiredVersion = 1.66; requiredVersion = 1.66;
requiredAddons[] = {"exile_client","exile_server_config"}; requiredAddons[] = {"exile_client","exile_server_config"};
}; };

View File

@ -7,7 +7,7 @@
[ [
_group, // GROUP: Group the AI will belong to _group, // GROUP: Group the AI will belong to
_pos, // ARRAY (positionATL): Position of AI _pos, // ARRAY (positionATL): Position of AI
_class, // STRING: Classname: "random","assault","MG", or "sniper". Use "custom" to use "_customGearSet" _class, // STRING: Classname: "random","assault","MG", or "sniper".
_difficulty, // STRING: Difficulty: "random","static","hardcore","difficult","moderate", or "easy" _difficulty, // STRING: Difficulty: "random","static","hardcore","difficult","moderate", or "easy"
_side, // STRING: "bandit" only by default _side, // STRING: "bandit" only by default
_type, // STRING: Type of AI: "soldier","static","vehicle","heli", etc. _type, // STRING: Type of AI: "soldier","static","vehicle","heli", etc.
@ -101,19 +101,6 @@ removeUniform _unit;
removeVest _unit; removeVest _unit;
removeBackpackGlobal _unit; removeBackpackGlobal _unit;
// Give default items
{
// "Why doesn't linkItem work with any of these? Because fuck you, that's why" - BIS
if (_x in ["Binocular","Rangefinder","Laserdesignator","Laserdesignator_02","Laserdesignator_03"]) then
{
_unit addWeapon _x;
}
else
{
_unit linkItem _x;
};
} forEach DMS_ai_default_items;
if (_class in DMS_ai_SupportedRandomClasses) then if (_class in DMS_ai_SupportedRandomClasses) then
{ {
@ -137,14 +124,22 @@ switch (DMS_AI_NamingType) do
}; };
if !(_class in DMS_ai_SupportedClasses) exitWith
{
diag_log format ["DMS ERROR :: DMS_SpawnAISoldier called with unsupported _class: %1 | _this: %2",_class,_this];
deleteVehicle _unit;
};
if (_customGearSet isEqualTo []) then if (_customGearSet isEqualTo []) then
{ {
// Make sure the "_class" is supported. This check is moved here to maintain backwards compatibility.
if !(_class in DMS_ai_SupportedClasses) exitWith
{
diag_log format ["DMS ERROR :: DMS_SpawnAISoldier called with unsupported _class: %1 | _this: %2",_class,_this];
};
// Add Clothes first to make sure the unit can store everything...
_unit addHeadgear (selectRandom (missionNamespace getVariable [format ["DMS_%1_helmets",_class],DMS_assault_helmets]));
_unit forceAddUniform (selectRandom (missionNamespace getVariable [format ["DMS_%1_clothes",_class],DMS_assault_clothes]));
_unit addVest (selectRandom (missionNamespace getVariable [format ["DMS_%1_vests",_class],DMS_assault_vests]));
_unit addBackpackGlobal (selectRandom (missionNamespace getVariable [format ["DMS_%1_backpacks",_class],DMS_assault_backpacks]));
// Equipment (Stuff that goes in the toolbelt slots) // Equipment (Stuff that goes in the toolbelt slots)
{ {
if (_x in ["Binocular","Rangefinder","Laserdesignator","Laserdesignator_02","Laserdesignator_03"]) then if (_x in ["Binocular","Rangefinder","Laserdesignator","Laserdesignator_02","Laserdesignator_03"]) then
@ -158,12 +153,6 @@ if (_customGearSet isEqualTo []) then
} forEach (missionNamespace getVariable [format ["DMS_%1_equipment",_class],[]]); } forEach (missionNamespace getVariable [format ["DMS_%1_equipment",_class],[]]);
// Clothes
_unit addHeadgear (selectRandom (missionNamespace getVariable [format ["DMS_%1_helmets",_class],DMS_assault_helmets]));
_unit forceAddUniform (selectRandom (missionNamespace getVariable [format ["DMS_%1_clothes",_class],DMS_assault_clothes]));
_unit addVest (selectRandom (missionNamespace getVariable [format ["DMS_%1_vests",_class],DMS_assault_vests]));
_unit addBackpackGlobal (selectRandom (missionNamespace getVariable [format ["DMS_%1_backpacks",_class],DMS_assault_backpacks]));
// Random items that can be added to the unit's inventory, such as food, meds, etc. // Random items that can be added to the unit's inventory, such as food, meds, etc.
private _randItemCount = missionNamespace getVariable [format ["DMS_%1_RandItemCount",_class],0]; private _randItemCount = missionNamespace getVariable [format ["DMS_%1_RandItemCount",_class],0];
@ -399,14 +388,27 @@ else
] call ExileServer_system_thread_addTask; ] call ExileServer_system_thread_addTask;
}; };
// Give default items
{ {
_unit setSkill _x; // "Why doesn't linkItem work with any of these? Because fuck you, that's why" - BIS
} forEach (missionNamespace getVariable [format["DMS_ai_skill_%1",_difficulty],[]]); if (_x in ["Binocular","Rangefinder","Laserdesignator","Laserdesignator_02","Laserdesignator_03"]) then
{
_unit addWeapon _x;
}
else
{
_unit linkItem _x;
};
} forEach DMS_ai_default_items;
// Soldier killed event handler // Soldier killed event handler
_unit addMPEventHandler ["MPKilled",'if (isServer) then {_this call DMS_fnc_OnKilled;};']; _unit addMPEventHandler ["MPKilled",'if (isServer) then {_this call DMS_fnc_OnKilled;};'];
// Remove ramming damage from players. // Remove ramming damage from players.
// Will not work if unit is not local (offloaded) // Will not work if unit is not local (offloaded)
if (DMS_ai_disable_ramming_damage) then if (DMS_ai_disable_ramming_damage) then
@ -427,6 +429,11 @@ if (DMS_ai_disable_ramming_damage) then
}; };
// Tweak difficulty stuff.
{
_unit setSkill _x;
} forEach (missionNamespace getVariable [format["DMS_ai_skill_%1",_difficulty],[]]);
if (_difficulty == "hardcore") then if (_difficulty == "hardcore") then
{ {
// Make him a little bit harder ;) // Make him a little bit harder ;)
@ -445,6 +452,7 @@ _unit setCustomAimCoef (missionNamespace getVariable [format["DMS_AI_AimCoef_%1"
_unit enableStamina (missionNamespace getVariable [format["DMS_AI_EnableStamina_%1",_difficulty], true]); _unit enableStamina (missionNamespace getVariable [format["DMS_AI_EnableStamina_%1",_difficulty], true]);
if (_type=="Soldier") then if (_type=="Soldier") then
{ {
_unit setVariable ["DMS_AISpawnPos",_pos]; _unit setVariable ["DMS_AISpawnPos",_pos];
@ -458,6 +466,7 @@ if (_type == "Paratroopers") then
_unit addBackpackGlobal "B_Parachute"; _unit addBackpackGlobal "B_Parachute";
}; };
// Set info variables // Set info variables
_unit setVariable ["DMS_AISpawnTime", time]; _unit setVariable ["DMS_AISpawnTime", time];
_unit setVariable ["DMS_AI_Side", _side]; _unit setVariable ["DMS_AI_Side", _side];

View File

@ -1,4 +1,4 @@
![ArmA 1.62](https://img.shields.io/badge/Arma-1.62-blue.svg) ![Exile 1.0.0 Potato](https://img.shields.io/badge/Exile-1.0.1%20Sweet Potato-C72651.svg) ![DMS Version](https://img.shields.io/badge/DMS%20Version-2016--09--05-blue.svg) ![Build Status](https://img.shields.io/badge/build-passing-brightgreen.svg) ![ArmA 1.66](https://img.shields.io/badge/Arma-1.66-blue.svg) ![Exile 1.0.2 "Kohlrabi"](https://img.shields.io/badge/Exile-1.0.2%20Kohlrabi-C72651.svg) ![DMS Version](https://img.shields.io/badge/DMS%20Version-2017--02--25-blue.svg)
# To the User: # To the User: