A bunch of small bug fixes and removed debugging

This commit is contained in:
Chris Cardozo 2020-06-27 12:35:02 -04:00
parent 03c031537c
commit 0584f61c97
16 changed files with 938 additions and 626 deletions

View File

@ -13,7 +13,6 @@ for "_i" from 1 to (count blck_temporaryMarkers) do
if (_i > (count blck_temporaryMarkers)) exitWith {};
private _m = blck_temporaryMarkers deleteAt 0;
_m params["_marker","_deleteAt"];
if (diag_tickTime > _deleteAt) then
{
deleteMarker _marker;

View File

@ -11,6 +11,5 @@
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
params[["_markerName",""]];
deleteMarker _markerName;
deleteMarker (_markerName + "label");

View File

@ -32,7 +32,7 @@ _fn_buildBlacklistedLocationsList = {
_blacklistedLocs pushBack [_x,_minToMissions];
} forEach blck_ActiveMissionCoords;
private "_bases";
private _bases = [];
if (blck_modType isEqualTo "Epoch") then {_bases = nearestObjects[blck_mapCenter, ["PlotPole_EPOCH"], blck_mapRange + 25000]};
if (blck_modType isEqualTo "Exile") then {_bases = nearestObjects[blck_mapCenter, ["Exile_Construction_Flag_Static"], blck_mapRange + 25000]};

View File

@ -10,7 +10,6 @@
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
//diag_log format["starting _fnc_mainThread with time = %1",diag_tickTime];
private["_timer1sec","_timer5sec","_timer20sec","_timer5min","_timer5min"];
_timer1sec = diag_tickTime;
@ -24,7 +23,12 @@ while {true} do
uiSleep 1;
if (diag_tickTime > _timer1sec) then
{
if (blck_showCountAliveAI) then
{
{
_x call blck_fnc_updateMarkerAliveCount;
} forEach blck_missionLabelMarkers;
};
_timer1sec = diag_tickTime + 1;
};
if (diag_tickTime > _timer5sec) then

View File

@ -15,14 +15,7 @@
private["_numbertospawn","_safepos","_launcherType","_infantryType"];
params[["_group","Error"],"_pos", "_center", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], ["_minDist",30], ["_maxDist",45],["_configureWaypoints",true], ["_uniforms",[]], ["_headGear",[]],["_vests",[]],["_backpacks",[]],["_weaponList",[]],["_sideArms",[]], ["_scuba",false],["_patrolRadius",30]];
#ifdef blck_debugMode
if (blck_debugLevel > 3) then
{
{
diag_log format["_fnc_spawnGroup: _this select %1 = %2",_forEachIndex,_this select _forEachIndex];
}forEach _this;
};
#endif
if (_weaponList isEqualTo []) then {_weaponList = [_skillLevel] call blck_fnc_selectAILoadout};
@ -71,10 +64,5 @@ if !(isNull _group) then
{
diag_log "_fnc_spawnGroup:: ERROR CONDITION : NULL GROUP CREATED";
};
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format["_fnc_spawnGroup:_group = %1",_group];
};
#endif

View File

@ -17,7 +17,7 @@ private ["_abort","_crates","_aiGroup","_objects","_groupPatrolRadius","_mission
"_AI_Vehicles","_timeOut","_aiDifficultyLevel","_missionPatrolVehicles","_missionGroups","_loadCratesTiming","_spawnCratesTiming","_assetSpawned","_hostageConfig",
"_chanceHeliPatrol","_noPara","_chanceLoot","_heliCrew","_loadCratesTiming","_useMines","_blck_AllMissionAI","_delayTime","_groupPatrolRadius",
"_wait","_missionStartTime","_playerInRange","_missionTimedOut","_temp","_patrolVehicles","_vehToSpawn","_noChoppers","_chancePara","_paraSkill","_marker","_vehicleCrewCount",
"_defaultMissionLocations","_garrisonedbuildings_buildingposnsystem","_garrisonedBuilding_ATLsystem", "_isScubaMission","_markerlabel"];
"_defaultMissionLocations","_garrisonedbuildings_buildingposnsystem","_garrisonedBuilding_ATLsystem", "_isScubaMission","_markerlabel","_missionLootBoxes"];
params["_coords","_markerName","_aiDifficultyLevel"];
if (isNil "_markerLabel") then {_markerLabel = _markerMissionName};
@ -157,26 +157,9 @@ while {_wait} do
if (_missionTimedOut) exitWith
{
// diag_log format["[blckeagls] missionSpawner (17):: Initializing mission: _cords %1 : _markerName %2 : _aiDifficultyLevel %3 _markerLabel %4",_coords,_markerName,_aiDifficultyLevel,_markerLabel];
diag_log format["_fnc_missionSpawner (187): mission timed out: _markerName %1 | _markerLabel %2 | time %3",_markerName,_markerLabel,diag_tickTime];
/*
params[
"_coords",
"_mines",
"_objects",
"_crates",
"_blck_AllMissionAI",
"_endMsg",
"_markers",
"_markerPos",
"_markerName",
"_markerLabel",
["_endCondition",0],
["_vehicles",[]],
["_isScubaMission",false]
];
*/
[_coords,_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_markers,_markerPos,_markerName,_markerMissionName, 1] call blck_fnc_endMission;
};
@ -244,10 +227,8 @@ if !(_abort) then
if !(_scubaGroupParameters isEqualTo []) then
{
#define isScubaMission true
//diag_log format["_fnc_dynamicUMSspawner: spawning scuba groups with _scubaGroupParameters = %1",_scubaGroupParameters];
// params["_coords",["_minNoAI",3],["_maxNoAI",6],"_missionGroups",["_aiDifficultyLevel","red"],["_uniforms",blck_SkinList],["_headGear",blck_BanditHeadgear],["_vests",blck_vests],["_backpacks",[]],["_weapons",[]],["_sideArms",blck_Pistols],["_isScubaGroup",false]];
private _temp = [_coords, _minNoAI,_maxNoAI,count _scubaGroupParameters,_scubaGroupParameters,_aiDifficultyLevel,blck_UMS_uniforms,blck_UMS_headgear,blck_UMS_vests,[],blck_UMS_weapons,[],_isScubaMission] call blck_fnc_spawnMissionAI;
diag_log format["_fnc_missionSpawner (243): _temp = %1",_temp];
uiSleep 2;
_abort = _temp select 1;
@ -255,16 +236,9 @@ if !(_scubaGroupParameters isEqualTo []) then
{
_blck_AllMissionAI append (_temp select 0);
};
diag_log format["[blckeagls] missionSpawner:: (250) scuba AI spawned: _markerName %1 : _markerLabel %2 : count _blck_AllMissionAI = %3",_markerName,_markerLabel, count _blck_AllMissionAI];
};
#ifdef blck_debugMode
uiSleep 10;
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (288) AI Patrols Spawned: _cords %1 : _markerName %2 : _aiDifficultyLevel %3 _markerLabel %4",_coords,_markerName,_aiDifficultyLevel,_markerLabel];
};
#endif
_assetSpawned = objNull;
if !(_hostageConfig isEqualTo []) then
@ -311,10 +285,7 @@ if (_noChoppers > 0) then
};
};
#ifdef blck_debugMode
uiSleep 10;
if (blck_debugLevel > 2) then {diag_log "_fnc_missionSpawner (256) helipatrols spawned"};
#endif
uisleep 3;
if !(_garrisonedBuilding_ATLsystem isEqualTo []) then
@ -326,10 +297,7 @@ if !(_garrisonedBuilding_ATLsystem isEqualTo []) then
};
#ifdef blck_debugMode
uiSleep 10;
if (blck_debugLevel > 2) then {diag_log "_fnc_missionSpawner (271) garrisons (ATL) spawned"};
#endif
uiSleep 3;
if !(_garrisonedBuildings_BuildingPosnSystem isEqualTo []) then
@ -340,10 +308,7 @@ if !(_garrisonedBuildings_BuildingPosnSystem isEqualTo []) then
_blck_AllMissionAI append (units (_temp select 0));
};
#ifdef blck_debugMode
uiSleep 10;
if (blck_debugLevel > 2) then {diag_log "_fnc_missionSpawner (285) garrisons (building position system) spawned"};
#endif
uiSleep 15;
private["_noEmplacedToSpawn"];
@ -356,15 +321,11 @@ if (blck_useStatic && (_noEmplacedToSpawn > 0)) then
_blck_AllMissionAI append _units;
};
#ifdef blck_debugMode
uiSleep 10;
if (blck_debugLevel > 2) then {diag_log "_fnc_missionSpawner (309) emplaced weapons spawned"};
#endif
_vehToSpawn = [_noVehiclePatrols] call blck_fnc_getNumberFromRange;
if (blck_useVehiclePatrols && ((_vehToSpawn > 0) || !(_missionPatrolVehicles isEqualTo []) )) then
{
//diag_log format["_missionSpawner(315): _vehToSpawn = %1 | _missionPatrolVehicles = %2",_vehToSpawn,_missionPatrolVehicles];
_temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_missionPatrolVehicles,useRelativePos,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms,false,_vehicleCrewCount] call blck_fnc_spawnMissionVehiclePatrols;
_temp params ["_patrolVehicles","_units","_abort"];
@ -374,18 +335,15 @@ if (blck_useVehiclePatrols && ((_vehToSpawn > 0) || !(_missionPatrolVehicles isE
// Spawn any submarine patrols
if (blck_useVehiclePatrols && !(_submarinePatrolParameters isEqualTo []) ) then
{
// params["_coords","_noVehiclePatrols","_aiDifficultyLevel","_missionPatrolVehicles",["_useRelativePos",true],["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_vests",blck_vests],["_backpacks",blck_backpacks],["_weaponList",[]],["_sideArms",blck_Pistols], ["_isScubaGroup",false]];
_temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_submarinePatrolParameters,true,_umsUniforms,_umsHeadgear,_umsVests,[],_umsWeapons,[],isScubaMission] call blck_fnc_spawnMissionVehiclePatrols;
_missionAIVehicles append (_temp select 0);
_blck_AllMissionAI append (_temp select 1);
};
#ifdef blck_debugMode
uiSleep 10;
if (blck_debugLevel > 2) then {diag_log "_fnc_missionSpawner (330) vehicle patrols spawned"};
#endif
uiSleep delayTime;
if (_spawnCratesTiming isEqualTo "atMissionSpawnGround") then
{
if !(_missionLootBoxes isEqualTo []) then
@ -404,10 +362,7 @@ if (_spawnCratesTiming isEqualTo "atMissionSpawnGround") then
};
uiSleep delayTime;;
#ifdef blck_debugMode
uiSleep 10;
if (blck_debugLevel > 2) then {diag_log "_fnc_missionSpawner (355) loot crate(s) spawned"};
#endif
if !(_missionLootVehicles isEqualTo []) then
{
@ -416,7 +371,7 @@ if !(_missionLootVehicles isEqualTo []) then
};
if (_noPara > 0 && (random(1) < _chancePara) && _paraTriggerDistance == 0) then
{
diag_log format["_fnc_missionSpawner (436): spawning %1 paraunits at mission spawn",_noPara];
private _paratroops = [_coords,_noPara,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnParaUnits;
if !(isNull _paratroops) then
{
@ -424,7 +379,7 @@ if (_noPara > 0 && (random(1) < _chancePara) && _paraTriggerDistance == 0) then
};
if (random(1) < _chanceLoot) then
{
diag_log format["_fnc_missionSpawner (446): spawning supplemental loot with _chanceLoot = %1",_chanceLoot];
private _extraCrates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_paraLoot,_paraLootCounts]], "atMissionSpawn","atMissionStartAir", "start", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates;
if (blck_cleanUpLootChests) then
{
@ -433,19 +388,13 @@ if (_noPara > 0 && (random(1) < _chancePara) && _paraTriggerDistance == 0) then
};
};
#ifdef blck_debugMode
uiSleep 10;
if (blck_debugLevel > 2) then {diag_log "_fnc_missionSpawner (384) mission loot vehicles spawned"};
#endif
private["_missionComplete","_endIfPlayerNear","_endIfAIKilled","_secureAsset","_crateStolen","_locations"];
_missionComplete = -1;
_startTime = diag_tickTime;
#ifdef blck_debugMode
uiSleep 10;
if (blck_debugLevel > 2) then {diag_log "_fnc_missionSpawner (393) waiting for mission end contitions to be met"};
#endif
switch (_endCondition) do
{
@ -457,8 +406,7 @@ switch (_endCondition) do
if (blck_showCountAliveAI) then
{
diag_log format["_missionSpawner(419): updating AI Alive Counts for _markers = %1",_markers];
[_markers select 1,_markerMissionName,_blck_AllMissionAI] call blck_fnc_updateMarkerAliveCount;
blck_missionLabelMarkers pushBack [_markers select 1,_markerMissionName,_blck_AllMissionAI];
};
@ -494,7 +442,7 @@ while {_missionComplete isEqualTo -1} do
{
{
private _d = _x distance (_x getVariable ["crateSpawnPos",_coords]);
//diag_log format["crate %1 moved %2 at %3",_x,_d,diag_tickTime];
if (_d > 25) exitWith
{
_missionComplete = 1;
@ -556,23 +504,7 @@ while {_missionComplete isEqualTo -1} do
if (_crateStolen) exitWith
{
/*
params[
"_coords",
"_mines",
"_objects",
"_crates",
"_blck_AllMissionAI",
"_endMsg",
"_markers",
"_markerPos",
"_markerName",
"_markerLabel",
["_endCondition",0],
["_vehicles",[]],
["_isScubaMission",false]
];
*/
[_coords,_mines,_objects,_crates, _blck_AllMissionAI,"Crate Removed from Mission Site Before Mission Completion: Mission Aborted",_markers,_markerPos,_markerName,_markerLabel, 2] call blck_fnc_endMission;
};
@ -589,18 +521,12 @@ if (_spawnCratesTiming in ["atMissionEndGround","atMissionEndAir"]) then
_crates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_crateLoot,_lootCounts]], _loadCratesTiming,_spawnCratesTiming, "end", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates;
};
#ifdef blck_debugMode
if (blck_debugLevel > 0) then {diag_log format["_fnc_missionSpawner (531): _crates = %1", _crates]};
#endif
if (blck_cleanUpLootChests) then
{
_objects append _crates;
};
#ifdef blck_debugMode
if (blck_debugLevel > 0) then {diag_log format["[blckeagls] missionSpawner:: (428) Crates Spawned: _cords %1 : _markerName %2 : _aiDifficultyLevel %3 _markerLabel %4",_coords,_markerName,_aiDifficultyLevel,_markerLabel]};
#endif
};
};
@ -642,22 +568,7 @@ if (_secureAsset && (alive _assetSpawned)) then
};
if (_secureAsset && !(alive _assetSpawned)) then
{
/* params[
"_coords",
"_mines",
"_objects",
"_crates",
"_blck_AllMissionAI",
"_endMsg",
"_markers",
"_markerPos",
"_markerName",
"_markerLabel",
["_endCondition",0],
["_vehicles",[]],
["_isScubaMission",false]
];
*/
[_coords,_mines,_objects,_crates,_blck_AllMissionAI,_assetKilledMsg,_markers,_markerPos,_markerName,_markerLabel, -1] call blck_fnc_endMission;
};
@ -666,9 +577,7 @@ if (!(_secureAsset) || (_secureAsset && (alive _assetSpawned))) then
[_coords,_mines,_objects,_crates,_blck_AllMissionAI,_endMsg,_markers,_markerPos,_markerName,_markerLabel, 0] call blck_fnc_endMission;
};
#ifdef blck_debugMode
if (blck_debugLevel > 2) then {diag_log format["[blckeagls] missionSpawner:: (507)end of mission: blck_fnc_endMission has returned control to _fnc_missionSpawner"]};
#endif
diag_log format["_fnc_missionSpawner (643) Mission Completed | _cords %1 : _markerName %2 : _aiDifficultyLevel %3 _markerLabel %4",_coords,_markerName,_aiDifficultyLevel,_markerLabel];
blck_missionsRun = blck_missionsRun + 1;
diag_log format["_fnc_missionSpawner (644): Total Dyanamic Land and UMS Run = %1", blck_missionsRun];

View File

@ -77,8 +77,7 @@ if !(_missionGroups isEqualTo []) then
blck_monitoredMissionAIGroups pushback _newGroup;
_allSpawnedAI append (units _newGroup);
diag_log format["_fnc_spawnMissionAI(77): group %1 | count _newAI = %2 | count _allSpawnedAI = %3",_forEachIndex,count (units _newGroup), count _allSpawnedAI];
_allSpawnedAI append (units _newGroup);
};
}forEach _missionGroups;
};

View File

@ -49,12 +49,6 @@ _fnc_dropMissionCrates = {
params[ ["_coords", [0,0,0]], ["_cratesToSpawn",[]], ["_loadCrateTiming","atMissionSpawn"],["_spawnCrateTiming","atMissionSpawn"],["_missionState","start"], ["_difficulty","red"] ];
/*
private _params = ["_coords","_cratesToSpawn","_loadCrateTiming","_spawnCrateTiming","_missionState","_difficulty"];
{
diag_log format["_fnc_spawnMissionCrates: %1 = %2 with _foreachindex = %3",_params select _foreachindex, _this select _foreachindex, _foreachindex];
}forEach _this;
*/
if ((count _coords) == 2) then // assume only X and Y offsets are provided
{
@ -93,5 +87,5 @@ if (_spawnCrateTiming in ["atMissionEndAir","atMissionStartAir"]) then
{
[_cratesSpawned] spawn _fnc_dropMissionCrates;
};
//diag_log format["_fnc_spawnMissionCrates: _cratesSpawned = %1",_cratesSpawned];
_cratesSpawned

View File

@ -58,13 +58,7 @@ _wp setWaypointBehaviour "COMBAT";
(group _unit) setCombatMode "RED";
_wp setWaypointCombatMode "RED";
if (blck_showCountAliveAI) then
{
{
diag_log format["_fnc_processAIKill: _x = %1",_x];
_x call blck_fnc_updateMarkerAliveCount;
} forEach blck_missionLabelMarkers;
};
if ([_unit,_killer] call blck_fnc_processIlleagalAIKills) then {
[_unit,_killer] call GMS_fnc_handlePlayerUpdates;

View File

@ -0,0 +1,876 @@
/*
By Ghostrider [GRG]
Copyright 2016
--------------------------
License
--------------------------
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
http://creativecommons.org/licenses/by-nc-sa/4.0/
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
#include "\q\addons\custom_server\init\build.sqf";
diag_log format["[blckeagls] loading default configurations for blckeagls build %1",blck_buildNumber];
////////////
// default settings
////////////
// list of locations that are protected against mission spawns
switch (toLower(worldName)) do
{
case "altis": {
blck_locationBlackList append [
//Add location as [[xpos,ypos,0],minimumDistance],
// Note that there should not be a comma after the last item in this table
[[10800,10641,0],1000] // isthmus - missions that spawn here often are glitched.
];
};
case "tanoa": {
blck_locationBlackList append [ ];
};
};
/*********************************************************************************
AI WEAPONS, UNIFORMS, VESTS AND GEAR
**********************************************************************************/
blck_AI_Side = EAST;
blck_crateMoneyBlue = [100,250];
blck_crateMoneyRed = [175, 300];
blck_crateMoneyGreen = [300, 500];
blck_crateMoneyOrange = [500, 750];
blck_allowSalesAtBlackMktTraders = true; // Allow vehicles to be sold at Halvjes black market traders.
blck_maximumItemPriceInAI_Loadouts = 100;
blck_lightlyArmed_ARMA3 = [
"B_G_Offroad_01_armed_F",
"O_G_Offroad_01_armed_F",
"B_MRAP_01_gmg_F",
"B_MRAP_01_hmg_F",
"O_MRAP_02_gmg_F",
"O_MRAP_02_hmg_F",
"I_MRAP_03_hmg_F",
"I_MRAP_03_gmg_F",
"B_APC_Wheeled_01_cannon_F",
"I_APC_Wheeled_03_cannon_F"
];
blck_tracked_APC_ARMA3 = [
"B_APC_Tracked_01_rcws_F",
"B_APC_Tracked_01_CRV_F",
"B_APC_Tracked_01_AA_F",
"O_APC_Tracked_02_cannon_F",
"O_APC_Tracked_02_AA_F",
"O_APC_Wheeled_02_rcws_F",
"I_APC_tracked_03_cannon_F"
];
blck_Tanks_ARMA3 = [
//"B_MBT_01_arty_F",
"B_MBT_01_mlrs_F",
"B_MBT_01_TUSK_F",
"O_MBT_02_cannon_F",
//"O_MBT_02_arty_F",
"I_MBT_03_cannon_F"
];
blck_APC_CUP = [
"CUP_B_Mastiff_GMG_GB_D",
"CUP_B_Mastiff_HMG_GB_D",
"CUP_B_Ridgback_HMG_GB_D",
"CUP_B_Ridgback_GMG_GB_D",
"CUP_B_M1128_MGS_Desert",
"CUP_B_M1135_ATGMV_Desert_Slat",
"CUP_B_M1133_MEV_Desert_Slat",
"CUP_B_LAV25M240_desert_USMC",
"CUP_B_M1129_MC_MK19_Desert_Slat",
"CUP_B_LAV25_HQ_desert_USMC",
"CUP_B_BRDM2_ATGM_CDF",
"CUP_B_BTR60_CDF",
"CUP_B_M1130_CV_M2_Desert_Slat",
"CUP_B_M1126_ICV_MK19_Desert_Slat",
"CUP_O_BTR90_RU",
"CUP_O_GAZ_Vodnik_BPPU_RU",
"CUP_B_M1126_ICV_M2_Desert",
"CUP_B_M1126_ICV_MK19_Desert",
"CUP_B_M1130_CV_M2_Desert",
"CUP_B_M1126_ICV_M2_Desert_Slat",
"CUP_B_M1133_MEV_Desert",
"CUP_O_GAZ_Vodnik_AGS_RU",
"CUP_O_GAZ_Vodnik_PK_RU"
];
blck_Tanks_CUP = [
"CUP_B_M2A3Bradley_USA_D",
"CUP_B_M113_desert_USA",
"CUP_B_M163_USA",
"CUP_B_M6LineBacker_USA_D",
"CUP_B_M1A1_DES_US_Army",
"CUP_B_M1A2_TUSK_MG_DES_US_Army",
"CUP_B_AAV_USMC",
"CUP_B_M270_DPICM_USA",
"CUP_B_ZSU23_CDF",
"CUP_B_BMP2_CDF",
"CUP_B_T72_CDF",
"CUP_I_T34_NAPA",
"CUP_B_Challenger2_NATO",
"CUP_B_FV432_Bulldog_GB_D_RWS",
"CUP_B_FV432_Bulldog_GB_D",
"CUP_B_FV510_GB_D_SLAT",
"CUP_B_MCV80_GB_D_SLAT",
"CUP_O_2S6_RU",
"CUP_O_BMP3_RU",
"CUP_O_T90_RU",
"CUP_O_T55_SLA",
"CUP_O_BMP1P_TKA",
"CUP_B_M270_DPICM_USA",
"CUP_B_M2Bradley_USA_W",
"CUP_B_FV510_GB_D",
"CUP_B_MCV80_GB_D",
"CUP_B_M7Bradley_USA_D",
"CUP_O_2S6_RU",
"CUP_O_BMP1_TKA"
];
blck_AIPatrolVehicles = ["B_LSV_01_armed_F","I_C_Offroad_02_LMG_F","B_T_LSV_01_armed_black_F","B_T_LSV_01_armed_olive_F","B_T_LSV_01_armed_sand_F"]; // Type of vehicle spawned to defend AI bases
blck_AIPatrolVehiclesBlue = blck_AIPatrolVehicles;
blck_AIPatrolVehiclesRed = blck_AIPatrolVehicles;
blck_AIPatrolVehiclesGreen = blck_AIPatrolVehicles;
blck_AIPatrolVehiclesOrange = blck_AIPatrolVehicles;
// Blacklisted itesm
blck_blacklistedOptics = ["optic_Nightstalker","optic_tws","optic_tws_mg"];
// AI Weapons and Attachments
blck_bipods = ["bipod_01_F_blk","bipod_01_F_mtp","bipod_01_F_snd","bipod_02_F_blk","bipod_02_F_hex","bipod_02_F_tan","bipod_03_F_blk","bipod_03_F_oli"];
blck_Optics_Holo = ["optic_Hamr","optic_MRD","optic_Holosight","optic_Holosight_smg","optic_Aco","optic_ACO_grn","optic_ACO_grn_smg","optic_Aco_smg","optic_Yorris"];
blck_Optics_Reticule = ["optic_Arco","optic_MRCO"];
blck_Optics_Scopes = [
"optic_AMS","optic_AMS_khk","optic_AMS_snd",
"optic_DMS",
"optic_KHS_blk","optic_KHS_hex","optic_KHS_old","optic_KHS_tan",
"optic_LRPS",
"optic_Nightstalker",
"optic_NVS",
"optic_SOS",
"optic_tws"
//"optic_tws_mg",
];
blck_Optics_Apex = [
//Apex
"optic_Arco_blk_F", "optic_Arco_ghex_F",
"optic_DMS_ghex_F",
"optic_Hamr_khk_F",
"optic_ERCO_blk_F","optic_ERCO_khk_F","optic_ERCO_snd_F",
"optic_SOS_khk_F",
"optic_LRPS_tna_F","optic_LRPS_ghex_F",
"optic_Holosight_blk_F","optic_Holosight_khk_F","optic_Holosight_smg_blk_F"
];
blck_Optics = blck_Optics_Holo + blck_Optics_Reticule + blck_Optics_Scopes;
#ifdef useAPEX
blck_Optics = blck_Optics + blck_Optics_Apex;
#endif
blck_bipods = [
"bipod_01_F_blk","bipod_01_F_mtp","bipod_01_F_snd","bipod_02_F_blk","bipod_02_F_hex","bipod_02_F_tan","bipod_03_F_blk","bipod_03_F_oli",
//Apex
"bipod_01_F_khk"
];
blck_silencers = [
"muzzle_snds_338_black","muzzle_snds_338_green","muzzle_snds_338_sand","muzzle_snds_93mmg","muzzle_snds_93mmg_tan","muzzle_snds_acp","muzzle_snds_B",
"muzzle_snds_H","muzzle_snds_H_MG","muzzle_snds_H_SW","muzzle_snds_L","muzzle_snds_M",
//Apex
"muzzle_snds_H_khk_F","muzzle_snds_H_snd_F","muzzle_snds_58_blk_F","muzzle_snds_m_khk_F","muzzle_snds_m_snd_F","muzzle_snds_B_khk_F","muzzle_snds_B_snd_F",
"muzzle_snds_58_wdm_F","muzzle_snds_65_TI_blk_F","muzzle_snds_65_TI_hex_F","muzzle_snds_65_TI_ghex_F","muzzle_snds_H_MG_blk_F","muzzle_snds_H_MG_khk_F"
];
blck_RifleSniper = [
"srifle_EBR_F","srifle_GM6_F","srifle_LRR_F","srifle_DMR_01_F"
];
blck_RifleAsault_556 = [
"arifle_SDAR_F","arifle_TRG21_F","arifle_TRG20_F","arifle_TRG21_GL_F","arifle_Mk20_F","arifle_Mk20C_F","arifle_Mk20_GL_F","arifle_Mk20_plain_F","arifle_Mk20C_plain_F","arifle_Mk20_GL_plain_F","arifle_SDAR_F"
];
blck_RifleAsault_650 = [
"arifle_Katiba_F","arifle_Katiba_C_F","arifle_Katiba_GL_F","arifle_MXC_F","arifle_MX_F","arifle_MX_GL_F","arifle_MXM_F"
];
blck_RifleAsault = blck_RifleAsault_556 + blck_RifleAsault_650;
blck_RifleLMG = [
"LMG_Mk200_F","LMG_Zafir_F"
];
blck_RifleOther = [
"SMG_01_F","SMG_02_F"
];
blck_Pistols = [
"hgun_PDW2000_F","hgun_ACPC2_F","hgun_Rook40_F","hgun_P07_F","hgun_Pistol_heavy_01_F","hgun_Pistol_heavy_02_F","hgun_Pistol_Signal_F"
];
blck_Pistols_blue = blck_Pistols;
blck_Pistols_red = blck_Pistols;
blck_Pistols_green = blck_Pistols;
blck_Pistols_orange = blck_Pistols;
blck_DLC_MMG = [
"MMG_01_hex_F","MMG_02_sand_F","MMG_01_tan_F","MMG_02_black_F","MMG_02_camo_F"
];
blck_DLC_Sniper = [
"srifle_DMR_02_camo_F","srifle_DMR_02_F","srifle_DMR_02_sniper_F","srifle_DMR_03_F","srifle_DMR_03_tan_F","srifle_DMR_04_F","srifle_DMR_04_Tan_F","srifle_DMR_05_blk_F","srifle_DMR_05_hex_F","srifle_DMR_05_tan_F","srifle_DMR_06_camo_F","srifle_DMR_06_olive_F"
];
blck_apexWeapons = ["arifle_AK12_F","arifle_AK12_GL_F","arifle_AKM_F","arifle_AKM_FL_F","arifle_AKS_F","arifle_ARX_blk_F","arifle_ARX_ghex_F","arifle_ARX_hex_F","arifle_CTAR_blk_F","arifle_CTAR_hex_F",
"arifle_CTAR_ghex_F","arifle_CTAR_GL_blk_F","arifle_CTARS_blk_F","arifle_CTARS_hex_F","arifle_CTARS_ghex_F","arifle_SPAR_01_blk_F","arifle_SPAR_01_khk_F","arifle_SPAR_01_snd_F",
"arifle_SPAR_01_GL_blk_F","arifle_SPAR_01_GL_khk_F","arifle_SPAR_01_GL_snd_F","arifle_SPAR_02_blk_F","arifle_SPAR_02_khk_F","arifle_SPAR_02_snd_F","arifle_SPAR_03_blk_F",
"arifle_SPAR_03_khk_F","arifle_SPAR_03_snd_F","arifle_MX_khk_F","arifle_MX_GL_khk_F","arifle_MXC_khk_F","arifle_MXM_khk_F"];
//This defines the random weapon to spawn on the AI
//https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Weapons
blck_WeaponList_Orange = blck_RifleSniper + blck_RifleAsault_650 + blck_RifleLMG + blck_DLC_Sniper + blck_DLC_MMG;
blck_WeaponList_Green = blck_RifleSniper + blck_RifleAsault_650 +blck_RifleLMG + blck_DLC_MMG + blck_apexWeapons;
blck_WeaponList_Blue = blck_RifleOther + blck_RifleAsault_556 +blck_RifleAsault_650;
blck_WeaponList_Red = blck_RifleAsault_556 + blck_RifleSniper + blck_RifleAsault_650 + blck_RifleLMG;
#ifdef useAPEX
blck_WeaponList_Orange = blck_WeaponList_Orange + blck_apexWeapons;
blck_WeaponList_Green = blck_WeaponList_Green + blck_apexWeapons;
#endif
blck_backpacks = ["B_Carryall_ocamo","B_Carryall_oucamo","B_Carryall_mcamo","B_Carryall_oli","B_Carryall_khk","B_Carryall_cbr" ];
blck_ApexBackpacks = [
"B_Bergen_mcamo_F","B_Bergen_dgtl_F","B_Bergen_hex_F","B_Bergen_tna_F","B_AssaultPack_tna_F","B_Carryall_ghex_F",
"B_FieldPack_ghex_F","B_ViperHarness_blk_F","B_ViperHarness_ghex_F","B_ViperHarness_hex_F","B_ViperHarness_khk_F",
"B_ViperHarness_oli_F","B_ViperLightHarness_blk_F","B_ViperLightHarness_ghex_F","B_ViperLightHarness_hex_F","B_ViperLightHarness_khk_F","B_ViperLightHarness_oli_F"
];
#ifdef useAPEX
blck_backpacks = blck_backpacks + blck_ApexBackpacks;
#endif
blck_backpacks_blue = blck_backpacks;
blck_backpacks_red = blck_backpacks;
blck_backpacks_green = blck_backpacks;
blck_backpacks_orange = blck_backpacks;
blck_BanditHeadgear = ["H_Shemag_khk","H_Shemag_olive","H_Shemag_tan","H_ShemagOpen_khk"];
//This defines the skin list, some skins are disabled by default to permit players to have high visibility uniforms distinct from those of the AI.
blck_headgear = [
"H_Cap_blk",
"H_Cap_blk_Raven",
"H_Cap_blu",
"H_Cap_brn_SPECOPS",
"H_Cap_grn",
"H_Cap_headphones",
"H_Cap_khaki_specops_UK",
"H_Cap_oli",
"H_Cap_press",
"H_Cap_red",
"H_Cap_tan",
"H_Cap_tan_specops_US",
"H_Watchcap_blk",
"H_Watchcap_camo",
"H_Watchcap_khk",
"H_Watchcap_sgg",
"H_MilCap_blue",
"H_MilCap_dgtl",
"H_MilCap_mcamo",
"H_MilCap_ocamo",
"H_MilCap_oucamo",
"H_MilCap_rucamo",
"H_Bandanna_camo",
"H_Bandanna_cbr",
"H_Bandanna_gry",
"H_Bandanna_khk",
"H_Bandanna_khk_hs",
"H_Bandanna_mcamo",
"H_Bandanna_sgg",
"H_Bandanna_surfer",
"H_Booniehat_dgtl",
"H_Booniehat_dirty",
"H_Booniehat_grn",
"H_Booniehat_indp",
"H_Booniehat_khk",
"H_Booniehat_khk_hs",
"H_Booniehat_mcamo",
"H_Booniehat_tan",
"H_Hat_blue",
"H_Hat_brown",
"H_Hat_camo",
"H_Hat_checker",
"H_Hat_grey",
"H_Hat_tan",
"H_StrawHat",
"H_StrawHat_dark",
"H_Beret_02",
"H_Beret_blk",
"H_Beret_blk_POLICE",
"H_Beret_brn_SF",
"H_Beret_Colonel",
"H_Beret_grn",
"H_Beret_grn_SF",
"H_Beret_ocamo",
"H_Beret_red",
"H_Shemag_khk",
"H_Shemag_olive",
"H_Shemag_olive_hs",
"H_Shemag_tan",
"H_ShemagOpen_khk",
"H_ShemagOpen_tan",
"H_TurbanO_blk",
//Apex
"H_MilCap_tna_F",
"H_MilCap_ghex_F",
"H_Booniehat_tna_F",
"H_Beret_gen_F",
"H_MilCap_gen_F",
"H_Cap_oli_Syndikat_F",
"H_Cap_tan_Syndikat_F",
"H_Cap_blk_Syndikat_F",
"H_Cap_grn_Syndikat_F"
];
blck_helmets = [
"H_HelmetB",
"H_HelmetB_black",
"H_HelmetB_camo",
"H_HelmetB_desert",
"H_HelmetB_grass",
"H_HelmetB_light",
"H_HelmetB_light_black",
"H_HelmetB_light_desert",
"H_HelmetB_light_grass",
"H_HelmetB_light_sand",
"H_HelmetB_light_snakeskin",
"H_HelmetB_paint",
"H_HelmetB_plain_blk",
"H_HelmetB_sand",
"H_HelmetB_snakeskin",
"H_HelmetCrew_B",
"H_HelmetCrew_I",
"H_HelmetCrew_O",
"H_HelmetIA",
"H_HelmetIA_camo",
"H_HelmetIA_net",
"H_HelmetLeaderO_ocamo",
"H_HelmetLeaderO_oucamo",
"H_HelmetO_ocamo",
"H_HelmetO_oucamo",
"H_HelmetSpecB",
"H_HelmetSpecB_blk",
"H_HelmetSpecB_paint1",
"H_HelmetSpecB_paint2",
"H_HelmetSpecO_blk",
"H_HelmetSpecO_ocamo",
"H_CrewHelmetHeli_B",
"H_CrewHelmetHeli_I",
"H_CrewHelmetHeli_O",
"H_HelmetCrew_I",
"H_HelmetCrew_B",
"H_HelmetCrew_O",
"H_PilotHelmetHeli_B",
"H_PilotHelmetHeli_I",
"H_PilotHelmetHeli_O",
"H_Helmet_Skate",
"H_HelmetB_TI_tna_F",
// Apex
//"H_HelmetO_ViperSP_hex_F",
//"H_HelmetO_ViperSP_ghex_F",
"H_HelmetB_tna_F",
"H_HelmetB_Enh_tna_F",
"H_HelmetB_Light_tna_F",
"H_HelmetSpecO_ghex_F",
"H_HelmetLeaderO_ghex_F",
"H_HelmetO_ghex_F",
"H_HelmetCrew_O_ghex_F"
];
blck_headgearList = blck_headgear + blck_helmets;
blck_headgear_blue = blck_headgearList;
blck_headgear_red = blck_headgearList;
blck_headgear_green = blck_headgearList;
blck_headgear_orange = blck_headgearList;
//This defines the skin list, some skins are disabled by default to permit players to have high visibility uniforms distinct from those of the AI.
blck_SkinList_Male = [
//https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Equipment
"U_AntigonaBody",
"U_AttisBody",
"U_B_CombatUniform_mcam","U_B_CombatUniform_mcam_tshirt","U_B_CombatUniform_mcam_vest","U_B_CombatUniform_mcam_worn","U_B_CombatUniform_sgg","U_B_CombatUniform_sgg_tshirt","U_B_CombatUniform_sgg_vest","U_B_CombatUniform_wdl","U_B_CombatUniform_wdl_tshirt","U_B_CombatUniform_wdl_vest",
"U_B_CTRG_1","U_B_CTRG_2","U_B_CTRG_3",
"U_B_GhillieSuit",
"U_B_HeliPilotCoveralls","U_B_PilotCoveralls",
"U_B_SpecopsUniform_sgg",
"U_B_survival_uniform",
"U_B_Wetsuit",
//"U_BasicBody",
"U_BG_Guerilla1_1","U_BG_Guerilla2_1","U_BG_Guerilla2_2","U_BG_Guerilla2_3","U_BG_Guerilla3_1","U_BG_Guerilla3_2",
"U_BG_leader",
"U_C_Commoner_shorts","U_C_Commoner1_1","U_C_Commoner1_2","U_C_Commoner1_3","U_C_Commoner2_1","U_C_Commoner2_2","U_C_Commoner2_3",
"U_C_Farmer","U_C_Fisherman","U_C_FishermanOveralls","U_C_HunterBody_brn","U_C_HunterBody_grn",
//"U_C_Journalist",
"U_C_Novak",
//"U_C_Poloshirt_blue","U_C_Poloshirt_burgundy","U_C_Poloshirt_redwhite","U_C_Poloshirt_salmon","U_C_Poloshirt_stripped","U_C_Poloshirt_tricolour",
"U_C_Poor_1","U_C_Poor_2","U_C_Poor_shorts_1","U_C_Poor_shorts_2","U_C_PriestBody","U_C_Scavenger_1","U_C_Scavenger_2",
//"U_C_Scientist","U_C_ShirtSurfer_shorts","U_C_TeeSurfer_shorts_1","U_C_TeeSurfer_shorts_2",
"U_C_WorkerCoveralls","U_C_WorkerOveralls","U_Competitor",
"U_I_CombatUniform","U_I_CombatUniform_shortsleeve","U_I_CombatUniform_tshirt","U_I_G_resistanceLeader_F",
"U_I_G_Story_Protagonist_F",
"U_I_GhillieSuit",
"U_I_HeliPilotCoveralls",
"U_I_OfficerUniform",
"U_I_pilotCoveralls",
"U_I_Wetsuit",
"U_IG_Guerilla1_1","U_IG_Guerilla2_1","U_IG_Guerilla2_2","U_IG_Guerilla2_3","U_IG_Guerilla3_1","U_IG_Guerilla3_2",
"U_IG_leader",
"U_IG_Menelaos",
//"U_KerryBody",
//"U_MillerBody",
//"U_NikosAgedBody",
//"U_NikosBody",
"U_O_CombatUniform_ocamo","U_O_CombatUniform_oucamo",
"U_O_GhillieSuit",
"U_O_OfficerUniform_ocamo",
"U_O_PilotCoveralls",
"U_O_SpecopsUniform_blk",
"U_O_SpecopsUniform_ocamo",
"U_O_Wetsuit",
"U_OG_Guerilla1_1","U_OG_Guerilla2_1","U_OG_Guerilla2_2","U_OG_Guerilla2_3","U_OG_Guerilla3_1","U_OG_Guerilla3_2","U_OG_leader",
//"U_OI_Scientist",
//"U_OrestesBody",
"U_Rangemaster",
// DLC
"U_B_FullGhillie_ard","U_I_FullGhillie_ard","U_O_FullGhillie_ard","U_B_FullGhillie_sard","U_O_FullGhillie_sard","U_I_FullGhillie_sard","U_B_FullGhillie_lsh","U_O_FullGhillie_lsh","U_I_FullGhillie_lsh",
//Apex
"U_B_T_Soldier_F",
"U_B_T_Soldier_AR_F",
"U_B_T_Soldier_SL_F",
//"U_B_T_Sniper_F",
//"U_B_T_FullGhillie_tna_F",
"U_B_CTRG_Soldier_F",
"U_B_CTRG_Soldier_2_F",
"U_B_CTRG_Soldier_3_F",
"U_B_GEN_Soldier_F",
"U_B_GEN_Commander_F",
"U_O_T_Soldier_F",
"U_O_T_Officer_F",
//"U_O_T_Sniper_F",
//"U_O_T_FullGhillie_tna_F",
"U_O_V_Soldier_Viper_F",
"U_O_V_Soldier_Viper_hex_F",
"U_I_C_Soldier_Para_1_F",
"U_I_C_Soldier_Para_2_F",
"U_I_C_Soldier_Para_3_F",
"U_I_C_Soldier_Para_4_F",
"U_I_C_Soldier_Para_5_F",
"U_I_C_Soldier_Bandit_1_F",
"U_I_C_Soldier_Bandit_2_F",
"U_I_C_Soldier_Bandit_3_F",
"U_I_C_Soldier_Bandit_4_F",
"U_I_C_Soldier_Bandit_5_F",
"U_I_C_Soldier_Camo_F",
"U_C_man_sport_1_F",
"U_C_man_sport_2_F",
"U_C_man_sport_3_F",
"U_C_Man_casual_1_F",
"U_C_Man_casual_2_F",
"U_C_Man_casual_3_F",
"U_C_Man_casual_4_F",
"U_C_Man_casual_5_F",
"U_C_Man_casual_6_F",
"U_B_CTRG_Soldier_urb_1_F",
"U_B_CTRG_Soldier_urb_2_F",
"U_B_CTRG_Soldier_urb_3_F"
];
blck_SkinList = blck_SkinList_Male;
blck_SkinList_blue = blck_SkinList;
blck_SkinList_red = blck_SkinList;
blck_SkinList_green = blck_SkinList;
blck_SkinList_orange = blck_SkinList;
blck_vests = [
// DLC Vests
"V_PlateCarrierSpec_blk","V_PlateCarrierSpec_mtp","V_PlateCarrierGL_blk","V_PlateCarrierGL_mtp","V_PlateCarrierIAGL_oli"
];
blck_vests_blue = blck_vests;
blck_vests_red = blck_vests;
blck_vests_green = blck_vests;
blck_vests_orange = blck_vests;
//CraftingFood
blck_Meats=[
];
blck_Drink = [
];
blck_Food = [
];
blck_ConsumableItems = blck_Meats + blck_Drink + blck_Food;
blck_throwableExplosives = ["HandGrenade","MiniGrenade"];
blck_otherExplosives = ["1Rnd_HE_Grenade_shell","3Rnd_HE_Grenade_shell","DemoCharge_Remote_Mag","SatchelCharge_Remote_Mag"];
blck_explosives = blck_throwableExplosives + blck_otherExplosives;
blck_medicalItems = ["FAK"];
blck_specialItems = blck_throwableExplosives + blck_medicalItems;
blck_NVG = ["NVG"];
blck_buildingMaterials = [];
/***************************************************************************************
DEFAULT CONTENTS OF LOOT CRATES FOR EACH MISSION
Note however that these configurations can be used in any way you like or replaced with mission-specific customized loot arrays
for examples of how you can do this see \Major\Compositions.sqf
***************************************************************************************/
// values are: number of things from the weapons, magazines, optics, materials(cinder etc), items (food etc) and backpacks arrays to add, respectively.
blck_lootCountsOrange = [8,32,8,30,16,1]; // Orange
blck_lootCountsGreen = [7,24,6,16,18,1]; // Green
blck_lootCountsRed = [5,16,4,10,6,1]; // Red
blck_lootCountsBlue = [4,12,3,6,6,1]; // Blue
blck_BoxLoot_Orange =
// Loot is grouped as [weapons],[magazines],[items] in order to be able to use the correct function to load the item into the crate later on.
// Each item consist of the following information ["ItemName",minNum, maxNum] where min is the smallest number added and min+max is the largest number added.
[
[// Weapons
#ifdef useAPEX
"arifle_AK12_F","arifle_AK12_GL_F","arifle_AKM_F","arifle_AKM_FL_F","arifle_AKS_F","arifle_ARX_blk_F","arifle_ARX_ghex_F","arifle_ARX_hex_F","arifle_CTAR_blk_F","arifle_CTAR_hex_F",
"arifle_CTAR_ghex_F","arifle_CTAR_GL_blk_F","arifle_CTARS_blk_F","arifle_CTARS_hex_F","arifle_CTARS_ghex_F","arifle_SPAR_01_blk_F","arifle_SPAR_01_khk_F","arifle_SPAR_01_snd_F",
"arifle_SPAR_01_GL_blk_F","arifle_SPAR_01_GL_khk_F","arifle_SPAR_01_GL_snd_F","arifle_SPAR_02_blk_F","arifle_SPAR_02_khk_F","arifle_SPAR_02_snd_F","arifle_SPAR_03_blk_F",
"arifle_SPAR_03_khk_F","arifle_SPAR_03_snd_F","arifle_MX_khk_F","arifle_MX_GL_khk_F","arifle_MXC_khk_F","arifle_MXM_khk_F",
#endif
["MultiGun","EnergyPackLg"],
["arifle_Katiba_F","30Rnd_65x39_caseless_green"],
["arifle_Katiba_GL_F","30Rnd_65x39_caseless_green"],
["arifle_MX_F","30Rnd_65x39_caseless_mag"],
["arifle_MXC_F","30Rnd_65x39_caseless_mag"],
["arifle_MXM_F","30Rnd_65x39_caseless_mag"],
["arifle_SDAR_F","20Rnd_556x45_UW_mag"],
["arifle_TRG20_F","30Rnd_556x45_Stanag"],
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
["srifle_LRR_F","7Rnd_408_Mag"],
["srifle_EBR_F","20Rnd_762x51_Mag"],
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
["Arifle_MX_SW_F","100Rnd_65x39_caseless_mag_Tracer"],
["Arifle_MX_SW_Black_F","100Rnd_65x39_caseless_mag_Tracer"],
["LMG_Zafir_F","150Rnd_762x54_Box"],
["MMG_01_hex_F","150Rnd_93x64_Mag"],
["MMG_01_tan_F","150Rnd_93x64_Mag"],
["MMG_02_black_F","130Rnd_338_Mag"],
["MMG_02_camo_F","130Rnd_338_Mag"],
["MMG_02_sand_F","130Rnd_338_Mag"],
["srifle_DMR_02_camo_F","10Rnd_338_Mag"],
["srifle_DMR_02_F","10Rnd_338_Mag"],
["srifle_DMR_02_sniper_F","10Rnd_338_Mag"],
["srifle_DMR_03_F","10Rnd_338_Mag"],
["srifle_DMR_03_tan_F","10Rnd_338_Mag"],
["srifle_DMR_04_Tan_F","10Rnd_338_Mag"],
["srifle_DMR_05_hex_F","10Rnd_338_Mag"],
["srifle_DMR_05_tan_F","10Rnd_338_Mag"],
["srifle_DMR_06_camo_F","10Rnd_338_Mag"],
["srifle_DMR_04_F","10Rnd_127x54_Mag"],
["srifle_DMR_05_blk_F","10Rnd_93x64_DMR_05_Mag"],
["srifle_DMR_06_olive_F","20Rnd_762x51_Mag"]
],
[//Magazines
["3rnd_HE_Grenade_Shell",3,6],
["30Rnd_65x39_caseless_green",3,6],
["30Rnd_556x45_Stanag",3,6],
["30Rnd_45ACP_Mag_SMG_01",3,6],
["20Rnd_556x45_UW_mag",3,6],
["20Rnd_762x51_Mag",7,14],
["200Rnd_65x39_cased_Box",3,6],
["100Rnd_65x39_caseless_mag_Tracer",3,6],
["3rnd_HE_Grenade_Shell",1,3],
["HandGrenade",1,4],
// Marksman Pack Ammo
["10Rnd_338_Mag",1,4],
["10Rnd_338_Mag",1,4],
["10Rnd_127x54_Mag" ,1,4],
["10Rnd_127x54_Mag",1,4],
["10Rnd_93x64_DMR_05_Mag" ,1,4],
["10Rnd_93x64_DMR_05_Mag" ,1,4],
// Apex Ammo
["130Rnd_338_Mag",1,3],
["150Rnd_93x64_Mag",1,3]
],
[ // Optics
["optic_SOS",1,2],["optic_LRPS",1,2],["optic_DMS",1,2],["optic_Aco",1,3],["optic_ACO_grn",1,3],["optic_Holosight",1,3],["acc_flashlight",1,3],["acc_pointer_IR",1,3],
["optic_Arco",1,3],["optic_Hamr",1,3],["optic_Aco",1,3],["optic_ACO_grn",1,3],["optic_Aco_smg",1,3],["optic_ACO_grn_smg",1,3],
["optic_Holosight",1,3],["optic_Holosight_smg",1,3],["optic_SOS",1,3],["optic_MRCO",1,3],["optic_DMS",1,3],["optic_Yorris",1,3],
["optic_MRD",1,3],["optic_LRPS",1,3],["optic_NVS",1,3],["optic_Nightstalker",1,2],["optic_Nightstalker",1,2],["optic_Nightstalker",1,2],
["optic_tws",1,3],["optic_tws_mg",1,3],["muzzle_snds_H",1,3],["muzzle_snds_L",1,3],["muzzle_snds_M",1,3],["muzzle_snds_B",1,3],["muzzle_snds_H_MG",1,3],["muzzle_snds_acp",1,3],
["optic_AMS_khk",1,3],["optic_AMS_snd",1,3],["optic_KHS_blk",1,3],["optic_KHS_hex",1,3],["optic_KHS_old",1,3],["optic_KHS_tan",1,3]
],
[// Materials and supplies
],
[//Items
],
[ // Backpacks
["B_AssaultPack_dgtl",1,2],["B_AssaultPack_khk",1,2],["B_AssaultPack_mcamo",1,2],["B_AssaultPack_ocamo",1,2],["B_AssaultPack_rgr",1,2],["B_AssaultPack_sgg",1,2],
["B_Carryall_cbr",1,2],["B_Carryall_khk",1,2],["B_Carryall_mcamo",1,2],["B_Carryall_ocamo",1,2],["B_Carryall_oli",1,2],["B_Carryall_oucamo",1,2],["B_FieldPack_blk",1,2],
["B_FieldPack_cbr",1,2],["B_FieldPack_khk",1,2],["B_FieldPack_ocamo",1,2],["B_FieldPack_oli",1,2],["B_FieldPack_oucamo",1,2],["B_Kitbag_cbr",1,2],["B_Kitbag_mcamo",1,2],
["B_Kitbag_rgr",1,2],["B_Kitbag_sgg",1,2],["B_Parachute",1,2],["B_TacticalPack_blk",1,2],["B_TacticalPack_mcamo",1,2],["B_TacticalPack_ocamo",1,2],["B_TacticalPack_oli",1,2],
["B_TacticalPack_rgr",1,2]
]
];
blck_BoxLoot_Green =
[
[// Weapons
// Format is ["Weapon Name","Magazine Name"],
#ifdef useAPEX
"arifle_AK12_F","arifle_AK12_GL_F","arifle_AKM_F","arifle_AKM_FL_F","arifle_AKS_F","arifle_ARX_blk_F","arifle_ARX_ghex_F","arifle_ARX_hex_F","arifle_CTAR_blk_F","arifle_CTAR_hex_F",
"arifle_CTAR_ghex_F","arifle_CTAR_GL_blk_F","arifle_CTARS_blk_F","arifle_CTARS_hex_F","arifle_CTARS_ghex_F","arifle_SPAR_01_blk_F","arifle_SPAR_01_khk_F","arifle_SPAR_01_snd_F",
"arifle_SPAR_01_GL_blk_F","arifle_SPAR_01_GL_khk_F","arifle_SPAR_01_GL_snd_F","arifle_SPAR_02_blk_F","arifle_SPAR_02_khk_F","arifle_SPAR_02_snd_F","arifle_SPAR_03_blk_F",
"arifle_SPAR_03_khk_F","arifle_SPAR_03_snd_F","arifle_MX_khk_F","arifle_MX_GL_khk_F","arifle_MXC_khk_F","arifle_MXM_khk_F",
#endif
["MultiGun","EnergyPackLg"],
["arifle_Katiba_F","30Rnd_65x39_caseless_green"],
["arifle_Katiba_GL_F","30Rnd_65x39_caseless_green"],
["arifle_MX_F","30Rnd_65x39_caseless_mag"],
["arifle_MX_GL_F","30Rnd_65x39_caseless_mag"],
["arifle_MXC_F","30Rnd_65x39_caseless_mag"],
["arifle_MXM_F","30Rnd_65x39_caseless_mag"],
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
["srifle_LRR_F","7Rnd_408_Mag"],
["srifle_EBR_F","20Rnd_762x51_Mag"],
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
["LMG_Mk200_F","200Rnd_65x39_cased_Box_Tracer"],
["Arifle_MX_SW_F","100Rnd_65x39_caseless_mag_Tracer"],
["Arifle_MX_SW_Black_F","100Rnd_65x39_caseless_mag_Tracer"],
["LMG_Zafir_F","150Rnd_762x54_Box"],
["MMG_01_hex_F","150Rnd_93x64_Mag"],
["MMG_01_tan_F","150Rnd_93x64_Mag"],
["MMG_02_black_F","130Rnd_338_Mag"],
["MMG_02_camo_F","130Rnd_338_Mag"],
["MMG_02_sand_F","130Rnd_338_Mag"],
["srifle_DMR_02_camo_F","10Rnd_338_Mag"],
["srifle_DMR_02_F","10Rnd_338_Mag"],
["srifle_DMR_02_sniper_F","10Rnd_338_Mag"],
["srifle_DMR_03_F","10Rnd_338_Mag"],
["srifle_DMR_03_tan_F","10Rnd_338_Mag"],
["srifle_DMR_04_Tan_F","10Rnd_338_Mag"],
["srifle_DMR_05_hex_F","10Rnd_338_Mag"],
["srifle_DMR_05_tan_F","10Rnd_338_Mag"],
["srifle_DMR_06_camo_F","10Rnd_338_Mag"],
["srifle_DMR_04_F","10Rnd_127x54_Mag"],
["srifle_DMR_05_blk_F","10Rnd_93x64_DMR_05_Mag"],
["srifle_DMR_06_olive_F","20Rnd_762x51_Mag"]
],
[//Magazines
// Format is ["Magazine name, Minimum number to add, Maximum number to add],
["3rnd_HE_Grenade_Shell",2,4],
["30Rnd_65x39_caseless_green",3,6],
["30Rnd_556x45_Stanag",3,6],
["30Rnd_556x45_Stanag",3,6],
["30Rnd_45ACP_Mag_SMG_01",3,6],
["20Rnd_556x45_UW_mag",3,6],
["20Rnd_762x51_Mag",6,12],
["200Rnd_65x39_cased_Box",3,6],
["100Rnd_65x39_caseless_mag_Tracer",3,6],
["3rnd_HE_Grenade_Shell",1,3],
["HandGrenade",1,3],
// Marksman Pack Ammo
["10Rnd_338_Mag",1,4],
["10Rnd_338_Mag",1,4],
["10Rnd_127x54_Mag" ,1,4],
["10Rnd_127x54_Mag",1,4],
["10Rnd_93x64_DMR_05_Mag" ,1,4],
["10Rnd_93x64_DMR_05_Mag" ,1,4],
// Apex Ammo
["130Rnd_338_Mag",1,3],
["150Rnd_93x64_Mag",1,3]
],
[ // Optics
["optic_SOS",1,2],["optic_LRPS",1,2],["optic_DMS",1,2],["optic_Aco",1,3],["optic_ACO_grn",1,3],["optic_Holosight",1,3],["acc_flashlight",1,3],["acc_pointer_IR",1,3],
["optic_Arco",1,3],["optic_Hamr",1,3],["optic_Aco",1,3],["optic_ACO_grn",1,3],["optic_Aco_smg",1,3],["optic_ACO_grn_smg",1,3],
["optic_Holosight",1,3],["optic_Holosight_smg",1,3],["optic_SOS",1,3],["optic_MRCO",1,3],["optic_DMS",1,3],["optic_Yorris",1,3],
["optic_MRD",1,3],["optic_LRPS",1,3],["optic_NVS",1,3],["optic_Nightstalker",1,2],["optic_Nightstalker",1,2],["optic_Nightstalker",1,2],
["optic_tws",1,3],["optic_tws_mg",1,3],["muzzle_snds_H",1,3],["muzzle_snds_L",1,3],["muzzle_snds_M",1,3],["muzzle_snds_B",1,3],["muzzle_snds_H_MG",1,3],["muzzle_snds_acp",1,3],
["optic_AMS_khk",1,3],["optic_AMS_snd",1,3],["optic_KHS_blk",1,3],["optic_KHS_hex",1,3],["optic_KHS_old",1,3],["optic_KHS_tan",1,3]
],
[
],
[//Items
// Format is ["Item name, Minimum number to add, Maximum number to add],
],
[ // Backpacks
["B_AssaultPack_dgtl",1,2],["B_AssaultPack_khk",1,2],["B_AssaultPack_mcamo",1,2],["B_AssaultPack_ocamo",1,2],["B_AssaultPack_rgr",1,2],["B_AssaultPack_sgg",1,2],
["B_Carryall_cbr",1,2],["B_Carryall_khk",1,2],["B_Carryall_mcamo",1,2],["B_Carryall_ocamo",1,2],["B_Carryall_oli",1,2],["B_Carryall_oucamo",1,2],["B_FieldPack_blk",1,2],
["B_FieldPack_cbr",1,2],["B_FieldPack_khk",1,2],["B_FieldPack_ocamo",1,2],["B_FieldPack_oli",1,2],["B_FieldPack_oucamo",1,2],["B_Kitbag_cbr",1,2],["B_Kitbag_mcamo",1,2],
["B_Kitbag_rgr",1,2],["B_Kitbag_sgg",1,2],["B_Parachute",1,2],["B_TacticalPack_blk",1,2],["B_TacticalPack_mcamo",1,2],["B_TacticalPack_ocamo",1,2],["B_TacticalPack_oli",1,2],
["B_TacticalPack_rgr",1,2]
]
];
blck_BoxLoot_Blue =
[
[// Weapons
["MultiGun","EnergyPackLg"],
["arifle_Katiba_F","30Rnd_65x39_caseless_green"],
["arifle_Katiba_GL_F","30Rnd_65x39_caseless_green"],
["arifle_Mk20_F","30Rnd_556x45_Stanag"],
["arifle_Mk20_plain_F","30Rnd_556x45_Stanag"],
["arifle_Mk20C_F","30Rnd_556x45_Stanag"],
["arifle_Mk20_GL_F","30Rnd_556x45_Stanag"],
["arifle_Mk20_GL_plain_F","30Rnd_556x45_Stanag"],
["arifle_MX_F","30Rnd_65x39_caseless_mag"],
["arifle_MX_GL_F","30Rnd_65x39_caseless_mag"],
["arifle_MXC_F","30Rnd_65x39_caseless_mag"],
["arifle_MXM_F","30Rnd_65x39_caseless_mag"],
["arifle_SDAR_F","20Rnd_556x45_UW_mag"],
["arifle_TRG20_F","30Rnd_556x45_Stanag"],
["SMG_02_F","30Rnd_9x21_Mag"],
["SMG_01_F","30Rnd_45ACP_Mag_SMG_01"],
["Hgun_PDW2000_F","30Rnd_9x21_Mag"],
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
["srifle_LRR_F","7Rnd_408_Mag"],
["srifle_EBR_F","20Rnd_762x51_Mag"],
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
["LMG_Mk200_F","200Rnd_65x39_cased_Box_Tracer"],
["Arifle_MX_SW_F","100Rnd_65x39_caseless_mag_Tracer"],
["Arifle_MX_SW_Black_F","100Rnd_65x39_caseless_mag_Tracer"],
["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"]
],
[//Magazines
["3rnd_HE_Grenade_Shell",1,2],
["30Rnd_65x39_caseless_green",3,6],
["30Rnd_556x45_Stanag",3,6],
["30Rnd_556x45_Stanag",3,6],
["30Rnd_45ACP_Mag_SMG_01",3,6],
["20Rnd_556x45_UW_mag",3,6],
["20Rnd_762x51_Mag",3,10],
["200Rnd_65x39_cased_Box",3,6],
["100Rnd_65x39_caseless_mag_Tracer",3,6],
["3rnd_HE_Grenade_Shell",1,4],
// Marksman Pack Ammo
["150Rnd_93x64_Mag",1,4],
["10Rnd_338_Mag",1,4],
["10Rnd_127x54_Mag" ,1,4],
["10Rnd_127x54_Mag",1,4],
["10Rnd_93x64_DMR_05_Mag" ,1,4]
],
[ // Optics
["optic_SOS",1,2],["optic_LRPS",1,2],["optic_DMS",1,2],["optic_Aco",1,3],["optic_ACO_grn",1,3],["optic_Holosight",1,3],["acc_flashlight",1,3],["acc_pointer_IR",1,3],
["optic_Arco",1,3],["optic_Hamr",1,3],["optic_Aco",1,3],["optic_ACO_grn",1,3],["optic_Aco_smg",1,3],["optic_ACO_grn_smg",1,3],
["optic_Holosight",1,3],["optic_Holosight_smg",1,3],["optic_SOS",1,3],["optic_MRCO",1,3],["optic_DMS",1,3],["optic_Yorris",1,3],
["optic_MRD",1,3],["optic_LRPS",1,3],["optic_NVS",1,3],["optic_Nightstalker",1,2],
["optic_tws",1,3],["optic_tws_mg",1,3],["muzzle_snds_H",1,3],["muzzle_snds_L",1,3],["muzzle_snds_M",1,3],["muzzle_snds_B",1,3],["muzzle_snds_H_MG",1,3],["muzzle_snds_acp",1,3],
["optic_AMS_khk",1,3],["optic_AMS_snd",1,3],["optic_KHS_blk",1,3],["optic_KHS_hex",1,3],["optic_KHS_old",1,3],["optic_KHS_tan",1,3]
],
[
],
[//Items
],
[ // Backpacks
["B_AssaultPack_dgtl",0,2],["B_AssaultPack_khk",0,2],["B_AssaultPack_mcamo",0,2],["B_AssaultPack_ocamo",0,2],["B_AssaultPack_rgr",0,2],["B_AssaultPack_sgg",0,2],
["B_Carryall_cbr",0,2],["B_Carryall_khk",0,2],["B_Carryall_mcamo",0,2],["B_Carryall_ocamo",0,2],["B_Carryall_oli",0,2],["B_Carryall_oucamo",0,2],["B_FieldPack_blk",0,2],
["B_FieldPack_cbr",0,2],["B_FieldPack_khk",0,2],["B_FieldPack_ocamo",0,2],["B_FieldPack_oli",0,2],["B_FieldPack_oucamo",0,2],["B_Kitbag_cbr",0,2],["B_Kitbag_mcamo",0,2],
["B_Kitbag_rgr",0,2],["B_Kitbag_sgg",0,2],["B_Parachute",0,2],["B_TacticalPack_blk",0,2],["B_TacticalPack_mcamo",0,2],["B_TacticalPack_ocamo",0,2],["B_TacticalPack_oli",0,2],
["B_TacticalPack_rgr",0,2]
]
];
blck_BoxLoot_Red =
[
[// Weapons
["MultiGun","EnergyPackLg"],
["arifle_Katiba_F","30Rnd_65x39_caseless_green"],
["arifle_Katiba_GL_F","30Rnd_65x39_caseless_green"],
["arifle_Mk20_F","30Rnd_556x45_Stanag"],
["arifle_Mk20_plain_F","30Rnd_556x45_Stanag"],
["arifle_Mk20C_F","30Rnd_556x45_Stanag"],
["arifle_Mk20_GL_F","30Rnd_556x45_Stanag"],
["arifle_Mk20_GL_plain_F","30Rnd_556x45_Stanag"],
["arifle_MX_F","30Rnd_65x39_caseless_mag"],
["arifle_MX_GL_F","30Rnd_65x39_caseless_mag"],
//["arifle_MX_SW_Black_Hamr_pointer_F","100Rnd_65x39_caseless_mag_Tracer"],
["arifle_MXC_F","30Rnd_65x39_caseless_mag"],
["arifle_MXM_F","30Rnd_65x39_caseless_mag"],
["arifle_SDAR_F","20Rnd_556x45_UW_mag"],
["SMG_02_F","30Rnd_9x21_Mag"],
["SMG_01_F","30Rnd_45ACP_Mag_SMG_01"],
["Hgun_PDW2000_F","30Rnd_9x21_Mag"],
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
["srifle_LRR_F","7Rnd_408_Mag"],
["srifle_EBR_F","20Rnd_762x51_Mag"],
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
["LMG_Mk200_F","200Rnd_65x39_cased_Box_Tracer"],
["Arifle_MX_SW_F","100Rnd_65x39_caseless_mag_Tracer"],
["Arifle_MX_SW_Black_F","100Rnd_65x39_caseless_mag_Tracer"],
["LMG_Zafir_F","150Rnd_762x54_Box"],
["MMG_01_hex_F","150Rnd_93x64_Mag"],
["srifle_DMR_04_Tan_F","10Rnd_338_Mag"],
["srifle_DMR_06_camo_F","10Rnd_338_Mag"]
],
[//Magazines
["3rnd_HE_Grenade_Shell",1,5],["30Rnd_65x39_caseless_green",3,6],["30Rnd_556x45_Stanag",3,6],["30Rnd_556x45_Stanag",3,6],["30Rnd_45ACP_Mag_SMG_01",3,6],["20Rnd_556x45_UW_mag",3,6],
["10Rnd_762x51_Mag",3,6],["20Rnd_762x51_Mag",3,7],["200Rnd_65x39_cased_Box",3,6],["100Rnd_65x39_caseless_mag_Tracer",3,6],
["3rnd_HE_Grenade_Shell",1,2],["HandGrenade",1,3],["EnergyPack",2,5],
// Marksman Pack Ammo
["150Rnd_93x64_Mag",1,4],
["10Rnd_338_Mag",1,4],
["10Rnd_127x54_Mag" ,1,4],
["10Rnd_127x54_Mag",1,4],
["10Rnd_93x64_DMR_05_Mag" ,1,4]
],
[ // Optics
["optic_SOS",1,2],["optic_LRPS",1,2],["optic_DMS",1,2],["optic_Aco",1,3],["optic_ACO_grn",1,3],["optic_Holosight",1,3],["acc_flashlight",1,3],["acc_pointer_IR",1,3],
["optic_Arco",1,3],["optic_Hamr",1,3],["optic_Aco",1,3],["optic_ACO_grn",1,3],["optic_Aco_smg",1,3],["optic_ACO_grn_smg",1,3],
["optic_Holosight",1,3],["optic_Holosight_smg",1,3],["optic_SOS",1,3],["optic_MRCO",1,3],["optic_DMS",1,3],["optic_Yorris",1,3],
["optic_MRD",1,3],["optic_LRPS",1,3],["optic_NVS",1,3],["optic_Nightstalker",1,2],
["optic_tws",1,3],["optic_tws_mg",1,3],["muzzle_snds_H",1,3],["muzzle_snds_L",1,3],["muzzle_snds_M",1,3],["muzzle_snds_B",1,3],["muzzle_snds_H_MG",1,3],["muzzle_snds_acp",1,3],
["optic_AMS_khk",1,3],["optic_KHS_blk",1,3],["optic_KHS_hex",1,3],["optic_KHS_old",1,3],["optic_KHS_tan",1,3]
],
[
],
[//Items
],
[ // Backpacks
["B_AssaultPack_dgtl",0,2],["B_AssaultPack_khk",0,2],["B_AssaultPack_mcamo",0,2],["B_AssaultPack_ocamo",0,2],["B_AssaultPack_rgr",0,2],["B_AssaultPack_sgg",0,2],
["B_Carryall_cbr",0,2],["B_Carryall_khk",0,2],["B_Carryall_mcamo",0,2],["B_Carryall_ocamo",0,2],["B_Carryall_oli",0,2],["B_Carryall_oucamo",0,2],["B_FieldPack_blk",0,2],
["B_FieldPack_cbr",0,2],["B_FieldPack_khk",0,2],["B_FieldPack_ocamo",0,2],["B_FieldPack_oli",0,2],["B_FieldPack_oucamo",0,2],["B_Kitbag_cbr",0,2],["B_Kitbag_mcamo",0,2],
["B_Kitbag_rgr",0,2],["B_Kitbag_sgg",0,2],["B_Parachute",0,2],["B_TacticalPack_blk",0,2],["B_TacticalPack_mcamo",0,2],["B_TacticalPack_ocamo",0,2],["B_TacticalPack_oli",0,2],
["B_TacticalPack_rgr",0,2]
]
];
blck_contructionLoot = blck_BoxLoot_Orange;
blck_highPoweredLoot = blck_BoxLoot_Orange;
blck_supportLoot = blck_BoxLoot_Orange;
blck_crateTypes = ["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F","Box_NATO_Wps_F","I_CargoNet_01_ammo_F","O_CargoNet_01_ammo_F","B_CargoNet_01_ammo_F"]; // Default crate type.
diag_log "[blckeagls] Default Configurations Loaded";

View File

@ -526,6 +526,14 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
"U_B_CTRG_Soldier_urb_2_F",
"U_B_CTRG_Soldier_urb_3_F"
];
blck_femaleUniformsEpoch = [
"U_CamoBlue_uniform", "U_CamoBrn_uniform", "U_CamoPinkPolka_uniform","U_CamoPink_uniform","U_CamoOutback_uniform",
"U_CamoBubblegum_uniform","U_CamoBiker_uniform","U_CamoAloha_uniform","U_CamoRed_uniform"
];
blck_femaleWetsuitsEpoch = [
"U_Wetsuit_uniform","U_Wetsuit_White","U_Wetsuit_Blue","U_Wetsuit_Purp","U_Wetsuit_Camo"
];
blck_SkinList = blck_femaleUniformsEpoch + blck_femaleWetsuitsEpoch + blck_SkinList_Male;
blck_SkinList_blue = blck_SkinList;
blck_SkinList_red = blck_SkinList;
blck_SkinList_green = blck_SkinList;

View File

@ -65,8 +65,7 @@ if ((toLower blck_modType) isEqualTo "default") then
"Exile_Boat_SDV_Grey"
];
blck_UMS_crates =
[
blck_UMS_crates = blck_crateTypes;
];
};

View File

@ -1,418 +0,0 @@
/*
Dynamic Underwater Mission Spawner
By Ghostrider GRG
Copyright 2016
--------------------------
License
--------------------------
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
http://creativecommons.org/licenses/by-nc-sa/4.0/
*/
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
#define isScubaMission true
#define delayTime 1
private ["_abort","_crates","_aiGroup","_objects","_mines","_blck_AllMissionAI","_blck_localMissionMarker",
"_AI_Vehicles","_timeOut","_aiDifficultyLevel","_missionPatrolVehicles","_missionGroups","_loadCratesTiming","_spawnCratesTiming","_assetSpawned",
"_blck_AllMissionAI","_delayTime","_wait","_missionStartTime","_playerInRange","_missionTimedOut","_temp","_patrolVehicles","_vehToSpawn","_marker","_vehicleCrewCount",
"_defaultMissionLocations"];
params["_coords","_mission",["_allowReinforcements",false]];
_markerClass = _mission;
_aiDifficultyLevel = _difficulty; // _difficulty is defined in the mission description file. see \addons\custom_server\Missions\UMS\dynamicMissions\default.sqf for an example
diag_log format["[blckeagls Dynamic UMS] dynamicUMSspawner (34):: Initializing mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
if (isNil "_assetKilledMsg") then {_assetKilledMsg = ""};
if (isNil "_markerColor") then {_markerColor = "ColorBlack"};
if (isNil "_markerType") then {_markerType = ["mil_box",[]]};
if (isNil "_markerSize") then {_markerSize = []};
if (isNil "_endCondition") then {_endCondition = blck_missionEndCondition}; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"};
if (isNil "_spawnCratesTiming") then {_spawnCratesTiming = blck_spawnCratesTiming}; // Choices: "atMissionSpawnGround","atMissionStartAir","atMissionEndGround","atMissionEndAir".
if (isNil "_loadCratesTiming") then {_loadCratesTiming = blck_loadCratesTiming}; // valid choices are "atMissionCompletion" and "atMissionSpawn";
if (isNil "_missionPatrolVehicles") then {_missionPatrolVehicles = []};
if (isNil "_missionGroups") then {_missionGroups = []};
if (isNil "_hostageConfig") then {_hostageConfig = []};
if (isNil "_enemyLeaderConfig") then {_enemyLeaderConfig = []};
if (isNil "_useMines") then {_useMines = blck_useMines;};
if (isNil "_weaponList") then {_weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout};
if (isNil "_sideArms") then {_sideArms = [_aiDifficultyLevel] call blck_fnc_selectAISidearms};
if (isNil "_uniforms") then {_uniforms = [_aiDifficultyLevel] call blck_fnc_selectAIUniforms};
if (isNil "_headGear") then {_headGear = [_aiDifficultyLevel] call blck_fnc_selectAIHeadgear};
if (isNil "_vests") then {_vests = [_aiDifficultyLevel] call blck_fnc_selectAIVests};
if (isNil "_backpacks") then {_backpacks = [_aiDifficultyLevel] call blck_fnc_selectAIBackpacks};
if (isNil "_chanceHeliPatrol") then {_chanceHeliPatrol = [_aiDifficultyLevel] call blck_fnc_selectChanceHeliPatrol};
if (isNil "_noChoppers") then {_noChoppers = [_aiDifficultyLevel] call blck_fnc_selectNumberAirPatrols};
if (isNil "_chancePara") then {_chancePara = [_aiDifficultyLevel] call blck_fnc_selectChanceParatroops};
if (isNil "_missionHelis") then {_missionHelis = [_aiDifficultyLevel] call blck_fnc_selectMissionHelis};
if (isNil "_noPara") then {_noPara = [_aiDifficultyLevel] call blck_fnc_selectNumberParatroops};
if (isNil "_paraSkill") then {_paraSkill = _aiDifficultyLevel};
if (isNil "_chanceLoot") then {_chanceLoot = 1.0}; //0.5};
if (isNil "_paraTriggerDistance") then {_paraTriggerDistance = 400;};
if (isNil "_paraLoot") then {_paraLoot = blck_BoxLoot_Green}; // Add diffiiculty based settings
if (isNil "_paraLootCounts") then {_paraLootCounts = blck_lootCountsRed}; // Add difficulty based settings
if (isNil "_missionLootVehicles") then {_missionLootVehicles = []};
if (isNil "_garrisonedBuilding_ATLsystem") then {_garrisonedBuilding_ATLsystem = []};
if (isNil "_garrisonedBuildings_BuildingPosnSystem") then {_garrisonedBuildings_BuildingPosnSystem = []};
if (isNil "_vehicleCrewCount") then {_vehicleCrewCount = [_aiDifficultyLevel] call GMS_fnc_selectVehicleCrewCount};
if (isNil "_defaultMissionLocations") then {_defaultMissionLocations = []};
if (isNil "_submarinePatrolParameters") then {_submarinePatrolParameters = []};
if (isNil "_airpatrols") then {_airpatrols = []};
if (isNil "_scubagroupparameters") then {_scubagroupparameters = []};
if (isNil "_markerMissionName") then {
diag_log format["_fnc_missionSpawner: _markerMissionName not defined, using default value"];
_markerMissionName = "Default Mission Name";
};
if (isNil "_noLootCrates") then {_noLootCrates = 1};
if (isNil "_lootCrates") then {_lootCrates = blck_crateTypes};
if (isNil "_lootCratePositions") then {_lootCratePositions = []};
if (isNil "_isScubaMission") then {_isScubaMission = false};
if (isNil "_missionLootBoxes") then {_missionLootBoxes = []};
_objects = [];
_mines = [];
_crates = [];
_aiGroup = [];
_missionAIVehicles = [];
_blck_AllMissionAI = [];
_AI_Vehicles = [];
_blck_localMissionMarker = [_markerClass,_coords,"","",_markerColor,_markerType];
_delayTime = 1;
_groupPatrolRadius = 50;
if (blck_labelMapMarkers select 0) then
{
_blck_localMissionMarker set [2, _markerMissionName];
};
if !(blck_preciseMapMarkers) then
{
_blck_localMissionMarker set [1,[_coords,75] call blck_fnc_randomPosition];
};
_blck_localMissionMarker set [3,blck_labelMapMarkers select 1]; // Use an arrow labeled with the mission name?
[["start",_startMsg,_markerMissionName]] call blck_fnc_messageplayers;
_marker = [_blck_localMissionMarker] call blck_fnc_spawnMarker;
_blck_localMissionMarker set [0, _marker];
////////
// All parameters are defined, let's wait until a player is nearby or the mission has timed out
////////
_missionStartTime = diag_tickTime;
_playerInRange = false;
_missionTimedOut = false;
_wait = true;
while {_wait} do
{
if ([_coords, blck_TriggerDistance, false] call blck_fnc_playerInRange) exitWith {_playerInRange = true;};
if ([_missionStartTime,blck_MissionTimeout] call blck_fnc_timedOut) exitWith {_missionTimedOut = true;};
uiSleep 5;
};
if (_missionTimedOut) exitWith
{
// Deal with the case in which the mission timed out.
blck_priorDynamicUMS_Missions pushback [_coords,diag_tickTime];
blck_UMS_ActiveDynamicMissions = blck_UMS_ActiveDynamicMissions - [_coords];
blck_dynamicUMS_MissionsRuning = blck_dynamicUMS_MissionsRuning - 1;
diag_log format["_fnc_dynamicUMSSpawner (187): mission timed out"];
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_markerClass, 1] call blck_fnc_endMission;
};
////////
// Spawn the mission objects, loot chest, and AI
////////
if (blck_SmokeAtMissions select 0) then // spawn a fire and smoke near the crate
{
_temp = [_coords,blck_SmokeAtMissions select 1] call blck_fnc_smokeAtCrates;
if (typeName _temp isEqualTo "ARRAY") then
{
_objects append _temp;
};
};
uiSleep delayTime;
if (_useMines) then
{
_mines = [_coords] call blck_fnc_spawnMines;
//uiSleep _delayTime;;
};
uiSleep delayTime;
_temp = [];
//diag_log format["_dynamicUMSspawner"" _missionLandscape = %1 | _missionLandscapeMode = %2",_missionLandscape, _missionLandscapeMode];
if (_missionLandscapeMode isEqualTo "random") then
{
_temp = [_coords,_missionLandscape, 3, 15, 2] call blck_fnc_spawnRandomLandscape;
};
if (_missionLandscapeMode isEqualTo "precise") then
{
//params["_center","_objects"];
_temp = [_coords, _missionLandscape] call blck_fnc_spawnCompositionObjects;
//uiSleep 1;
};
//diag_log format["_fnc_dynamicUMSspawner: _temp = %1, typeName _temp = %2",_temp, typeName _temp];
if (typeName _temp isEqualTo "ARRAY") then
{
_objects append _temp;
};
uiSleep delayTime;;
_temp = [_coords,_missionLootVehicles] call blck_fnc_spawnMissionLootVehicles;
//uisleep 1;
_crates append _temp;
uiSleep _delayTime;
private _abort = false;
private _temp = [[],[],false];
diag_log format["_fnc_dynamicUMSspawner: spawning infantry using data in _missionGroups with _missionGroups = %1",_missionGroups];
// Require that the server admin define the location of any infantry patrols given that missions will be off-shore.
// AI could be spawned on a platform or floating structure.
if (count _missionGroups > 0) then
{
if (isNil "_noAIGroups") then {_noAIGroups = 1};
diag_log format["_fnc_dynamicUMSSpawner: _noAIGroups = %1",_noAIGroups];
// _temp = [_coords, _minNoAI,_maxNoAI,_noAIGroups,_missionGroups,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnMissionAI;
_temp = [_coords, _minNoAI,_maxNoAI,_noAIGroups,_missionGroups,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnMissionAI;
_blck_AllMissionAI append (_temp select 0);
};
private "_temp";
if (count _scubaGroupParameters > 0) then
{
//diag_log format["_fnc_dynamicUMSspawner: spawning scuba groups with _scubaGroupParameters = %1",_scubaGroupParameters];
// params["_coords",["_minNoAI",3],["_maxNoAI",6],"_missionGroups",["_aiDifficultyLevel","red"],["_uniforms",blck_SkinList],["_headGear",blck_BanditHeadgear],["_vests",blck_vests],["_backpacks",[]],["_weapons",[]],["_sideArms",blck_Pistols],["_isScubaGroup",false]];
_temp = [_coords, _minNoAI,_maxNoAI,count _scubaGroupParameters,_scubaGroupParameters,_aiDifficultyLevel,blck_UMS_uniforms,blck_UMS_headgear,blck_UMS_vests,[],blck_UMS_weapons,[],isScubaMission] call blck_fnc_spawnMissionAI;
_blck_AllMissionAI append (_temp select 0);
};
uiSleep _delayTime;
_temp = [[],[],false];
_abort = false;
private["_patrolVehicles","_vehToSpawn"];
_vehToSpawn = 0;
// Spawn any surface patrols
if (blck_useVehiclePatrols && count _vehiclePatrolParameters > 0) then
{
// params["_coords","_noVehiclePatrols","_aiDifficultyLevel","_missionPatrolVehicles",["_useRelativePos",true],["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_vests",blck_vests],["_backpacks",blck_backpacks],["_weaponList",[]],["_sideArms",blck_Pistols], ["_isScubaGroup",false]];
_temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_vehiclePatrolParameters,true,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms,false,_vehicleCrewCount /*,blck_UMS_weapons,blck_UMS_vests,isScubaMission*/ ] call blck_fnc_spawnMissionVehiclePatrols;
_missionAIVehicles append (_temp select 0);
_blck_AllMissionAI append (_temp select 1);
};
// Spawn any submarine patrols
if (blck_useVehiclePatrols && count _submarinePatrolParameters > 0) then
{
// params["_coords","_noVehiclePatrols","_aiDifficultyLevel","_missionPatrolVehicles",["_useRelativePos",true],["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_vests",blck_vests],["_backpacks",blck_backpacks],["_weaponList",[]],["_sideArms",blck_Pistols], ["_isScubaGroup",false]];
_temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_submarinePatrolParameters,true,blck_UMS_uniforms,blck_UMS_headgear,blck_UMS_vests,[],blck_UMS_weapons,[],isScubaMission] call blck_fnc_spawnMissionVehiclePatrols;
_missionAIVehicles append (_temp select 0);
_blck_AllMissionAI append (_temp select 1);
};
uiSleep delayTime;
_noChoppers = [_noChoppers] call blck_fnc_getNumberFromRange;
_noPara = [_noPara] call blck_fnc_getNumberFromRange;
if (_noChoppers > 0) then
{
for "_i" from 1 to (_noChoppers) do
{
if (random(1) < _chanceHeliPatrol) then
{
//_temp = [_coords,_missionHelis,spawnHeli,_aiDifficultyLevel,_chancePara,_noPara,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnMissionReinforcements;
_temp = [_coords,_aiDifficultyLevel,_missionHelis] call blck_fnc_spawnMissionHeli;
blck_monitoredVehicles pushBack (_temp select 0);
_blck_AllMissionAI append (_temp select 1);
};
};
};
//////////////////////////
// Spawn Crates and Emplaced Weapons Last to try to force them to correct positions relative to spawned buildinga or other objects.
uiSleep 15;
private["_noEmplacedToSpawn"];
_noEmplacedToSpawn = [_noEmplacedWeapons] call blck_fnc_getNumberFromRange;
//diag_log format["_dynamicUMSspawner:: _noEmplacedToSpawn = %1",_vehToSpawn];
if (blck_useStatic && ((_noEmplacedToSpawn > 0)) || count _missionEmplacedWeapons > 0) then
{
_temp = [_coords,_missionEmplacedWeapons,true,_noEmplacedToSpawn,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnEmplacedWeaponArray;
_objects append (_temp select 0);
_blck_AllMissionAI append (_temp select 1);
};
uiSleep _delayTime;
if (isNil "blck_UMS_crates") then {blck_UMS_crates = blck_crateTypes};
if (blck_UMS_crates isEqualTo []) then {blck_UMS_crates = blck_crateTypes};
if (_spawnCratesTiming isEqualTo "atMissionSpawnGround") then
{
if (count _missionLootBoxes > 0) then
{
_crates = [_coords,_missionLootBoxes,_loadCratesTiming, _spawnCratesTiming, "start", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates;
}
else
{
_crates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_crateLoot,_lootCounts]], _loadCratesTiming, _spawnCratesTiming, "start", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates;
};
if (blck_cleanUpLootChests) then
{
_objects append _crates;
};
};
if (blck_cleanUpLootChests) then
{
_objects append _crates;
};
if (_noPara > 0 && (random(1) < _chancePara) && _paraTriggerDistance == 0) then
{
private _paratroops = [_coords,_noPara,_aiDifficultyLevel,blck_UMS_uniforms,blck_UMS_headgear,blck_UMS_vests,[],blck_UMS_weapons,[],isScubaMission] call blck_fnc_spawnParaUnits;
if !(isNull _paratroops) then
{
_blck_AllMissionAI append (units _paratroops);
};
if (random(1) < _chanceLoot) then
{
private _extraCrates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_paraLoot,_paraLootCounts]], "atMissionSpawn","atMissionStartAir", "start", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates;
if (blck_cleanUpLootChests) then
{
_objects append _extraCrates;
};
};
};
// Trigger for mission end
private["_missionComplete","_endIfPlayerNear","_endIfAIKilled"];
_missionComplete = -1;
_startTime = diag_tickTime;
if (blck_showCountAliveAI) then
{
if !(_marker isEqualTo "") then
{
[_marker,_markerMissionName,_blck_AllMissionAI] call blck_fnc_updateMarkerAliveCount;
blck_missionMarkers pushBack [_marker,_markerMissionName,_blck_AllMissionAI];
};
};
switch (_endCondition) do
{
case "playerNear": {_endIfPlayerNear = true;_endIfAIKilled = false;};
case "allUnitsKilled": {_endIfPlayerNear = false;_endIfAIKilled = true;};
case "allKilledOrPlayerNear": {_endIfPlayerNear = true;_endIfAIKilled = true;};
};
private["_locations"];
_locations = [_coords];
{
_locations pushback (getPos _x);
_x setVariable["crateSpawnPos", (getPos _x)];
} forEach _crates;
if (blck_showCountAliveAI) then
{
if !(_marker isEqualTo "") then
{
[_marker,_markerMissionName,_blck_AllMissionAI] call blck_fnc_updateMarkerAliveCount;
blck_missionMarkers pushBack [_marker,_markerMissionName,_blck_AllMissionAI];
};
};
private _spawnPara = if (random(1) < _chancePara) then {true} else {false};
_missionComplete = -1;
while {_missionComplete isEqualTo -1} do
{
if ((_endIfPlayerNear) && [_locations,10,true] call blck_fnc_playerInRangeArray) exitWith {};
if ((_endIfAIKilled) && ({alive _x} count _blck_AllMissionAI) < 1) exitWith {};
if (_spawnCratesTiming isEqualTo "atMissionSpawn") then
{
{
if ({[_x] call blck_fnc_crateMoved} count _crates > 0) exitWith
{
_missionComplete = 1;
_crateStolen = true;
};
}forEach _crates;
};
if (_spawnPara) then
{
if ([_coords,_paraTriggerDistance,true] call blck_fnc_playerInRange) then
{
_spawnPara = false; // The player gets one try to spawn these.
if (random(1) < _chancePara) then //
{
// blck_UMS_uniforms,blck_UMS_headgear,blck_UMS_vests,[],blck_UMS_weapons,[],isScubaMission] call blck_fnc_spawnParaUnits;] call blck_fnc_spawnParaUnits;
private _paratroops = [_coords,_noPara,_aiDifficultyLevel,blck_UMS_uniforms,blck_UMS_headgear,blck_UMS_vests,[],blck_UMS_weapons,[],isScubaMission] call blck_fnc_spawnParaUnits;
if !(isNull _paratroops) then
{
_blck_AllMissionAI append (units _paratroops);
};
if (random(1) < _chanceLoot) then
{
private _extraCrates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_paraLoot,_paraLootCounts]], "atMissionSpawn","atMissionStartAir", "start", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates;
if (blck_cleanUpLootChests) then
{
_objects append _extraCrates;
};
};
};
};
};
//diag_log format["dynamicUMSspawner:: (483) missionCompleteLoop - > players near = %1 and ai alive = %2 and crates stolen = %3",[_coords,20] call blck_fnc_playerInRange, {alive _x} count _blck_AllMissionAI, _crateStolen];
uiSleep 4;
};
if (_crateStolen) exitWith
{
//diag_log format["dynamicUMSspawner:: (542) Crate Stolen Callening _fnc_endMission - > players near = %1 and ai alive = %2 and crates stolen = %3",[_locations,10,true] call blck_fnc_playerInRangeArray, {alive _x} count _blck_AllMissionAI, _crateStolen];
[_mines,_objects,_crates, _blck_AllMissionAI,"Crate Removed from Mission Site Before Mission Completion: Mission Aborted",_blck_localMissionMarker,_coords,_mission,2,isScubaMission] call blck_fnc_endMission;
};
if (_spawnCratesTiming in ["atMissionEndGround","atMissionEndAir"]) then
{
if (count _missionLootBoxes > 0) then
{
_crates = [_coords,_missionLootBoxes,_loadCratesTiming,_spawnCratesTiming, "end", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates;
}
else
{
_crates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_crateLoot,_lootCounts]], _loadCratesTiming,_spawnCratesTiming, "end", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates;
};
if (blck_cleanUpLootChests) then
{
_objects append _crates;
};
};
if (_spawnCratesTiming isEqualTo "atMissionSpawnGround" && _loadCratesTiming isEqualTo "atMissionCompletion") then
{
{
[_x] call blck_fnc_loadMissionCrate;
} forEach _crates;
};
private["_result"];
// Force passing the mission name for informational purposes.
_blck_localMissionMarker set [2, _markerMissionName];
if (blck_showCountAliveAI) then
{
//_marker setMarkerText format["%1: All AI Dead",_markerMissionName];
{
if ((_x select 1) isEqualTo _markerMissionName) exitWith{blck_missionMarkers deleteAt _forEachIndex};
}forEach blck_missionMarkers;
};
// params["_mines","_objects","_crates","_blck_AllMissionAI","_endMsg","_blck_localMissionMarker","_coords","_mission",["_endCondition",0],["_vehicles",[]],["_isScubaMission",false]];
_result = [_mines,_objects,_crates,_blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,0,_missionAIVehicles,isScubaMission] call blck_fnc_endMission;
blck_missionsRun = blck_missionsRun + 1;
diag_log format["[blckeagls] dynamicUMSspawner:: Total Dyanamic Land and UMS Run = %1", blck_missionsRun];

View File

@ -7,7 +7,7 @@ Many thanks for new Coding and ideas from Grahame.
Significant Changes:
=====================
6.98 Build 204
6.98 Build 206
FIXED: few minor bug fixes.
FIXED: Static Mission Loot vehicles are no longer deleted by Epoch servers when players enter them.
FIXED: an error in coordinates for some randomly spawned missions tha added an extra 0 to the array with the coordinaates.

View File

@ -49,28 +49,32 @@ if ((toLower blck_modType) isEqualTo "default") then
// Just some housekeeping for ghost.
private _blck_loadingStartTime = diag_tickTime;
#include "\q\addons\custom_server\init\build.sqf";
diag_log format["[blckeagls] build information loaded at %1",diag_tickTime];
//diag_log format["[blckeagls] build information loaded at %1",diag_tickTime];
// compile functions
[] call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_functions.sqf";
diag_log format["[blckeagls] functions compiled at %1",diag_tickTime];
//diag_log format["[blckeagls] functions compiled at %1",diag_tickTime];
[] call compile preprocessfilelinenumbers "\q\addons\custom_server\Configs\blck_configs.sqf";
diag_log format["[blckeagls] blck_configs.sqf run at %1",diag_tickTime];
if (blck_debugOn) then {diag_log format["[blckeagls] blck_configs.sqf run at %1",diag_tickTime]};
waitUntil{(!isNil "blck_useHC") && (!isNil "blck_simulationManager") && (!isNil "blck_debugOn") && (!isNil "blck_AI_Side")};
uiSleep 10;
if (blck_debugOn) then {diag_log format["[blckeagls] blck_AI_Side = %1",blck_AI_Side]};
// Load any user-defined specifications or overrides
#include "\q\addons\custom_server\Configs\blck_custom_config.sqf";
diag_log format["[blckeagls] Custom Configurations Loaded at %1",diag_tickTime];
diag_log format["[blckeagls] debug mode settings:blck_debugON = %1 | blck_debugLevel = %3",blck_debugON,blck_debugLevel];
diag_log format["[blckeagls] debug mode settings:blck_debugON = %1 | blck_debugLevel = %2",blck_debugON,blck_debugLevel];
// blck_customConfigsLoaded
diag_log format["[blckeagls] blck_customConfigsLoaded = %1",if(isNil "blck_customConfigsLoaded") then {"nil"} else {blck_customConfigsLoaded}];
//diag_log format["[blckeagls] blck_CUPWeapons = %1",if(isNil "blck_CUPWeapons") then {"nil"} else {blck_CUPWeapons}];
// Load vaariables used to store information for the mission system.
[] call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_variables.sqf";
diag_log format["[blckeagls] Variables loaded at %1",diag_tickTime];
if (blck_debugOn) then {diag_log format["[blckeagls] Variables loaded at %1",diag_tickTime]};
// configure dynamic simulation management is this is being used.
if (blck_simulationManager == 2) then
@ -89,11 +93,11 @@ if (blck_spawnMapAddons) then
// find and set Mapcenter and size
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\init\GMS_fnc_findWorld.sqf";
diag_log "[blckeagls] Map-specific information defined";
if (blck_debugOn) then {diag_log "[blckeagls] Map-specific information defined"};
// set up the lists of available missions for each mission category
#include "\q\addons\custom_server\Missions\GMS_missionLists.sqf";
diag_log "[blckeagls] Mission Lists Loaded Successfully";
if (blck_debugOn) then {diag_log "[blckeagls] Mission Lists Loaded Successfully"};
call compile preprocessfilelinenumbers "\q\addons\custom_server\Missions\Static\GMS_StaticMissions_init.sqf";
call compile preprocessfilelinenumbers "q\addons\custom_server\Missions\UMS\GMS_UMS_init.sqf"; // loads functions and spawns any static missions.
@ -169,56 +173,31 @@ blck_townLocations = _villages + _cites + _capitals + _marine + _other + _airpor
{
blck_locationBlackList pushBack [locationPosition _x, blck_minDistanceFromTowns];
} forEach blck_townLocations;
diag_log format["_init_server: count blck_townLocations = %1 || blck_townLocations = %2",count blck_townLocations, blck_townLocations];
//Start the mission timers
if (blck_enableOrangeMissions > 0) then
{
//[_missionListOrange,_pathOrange,"OrangeMarker","orange",blck_TMin_Orange,blck_TMax_Orange] spawn blck_fnc_missionTimer;//Starts major mission system (Orange Map Markers)
[_missionListOrange,_pathOrange,"OrangeMarker","orange",blck_TMin_Orange,blck_TMax_Orange,blck_enableOrangeMissions] call blck_fnc_addMissionToQue;
};
if (blck_enableGreenMissions > 0) then
{
//[_missionListGreen,_pathGreen,"GreenMarker","green",blck_TMin_Green,blck_TMax_Green] spawn blck_fnc_missionTimer;//Starts major mission system 2 (Green Map Markers)
[_missionListGreen,_pathGreen,"GreenMarker","green",blck_TMin_Green,blck_TMax_Green,blck_enableGreenMissions] call blck_fnc_addMissionToQue;
};
if (blck_enableRedMissions > 0) then
{
//[_missionListRed,_pathRed,"RedMarker","red",blck_TMin_Red,blck_TMax_Red] spawn blck_fnc_missionTimer;//Starts minor mission system (Red Map Markers)//Starts minor mission system 2 (Red Map Markers)
[_missionListRed,_pathRed,"RedMarker","red",blck_TMin_Red,blck_TMax_Red,blck_enableRedMissions] call blck_fnc_addMissionToQue;
};
if (blck_enableBlueMissions > 0) then
{
//[_missionListBlue,_pathBlue,"BlueMarker","blue",blck_TMin_Blue,blck_TMax_Blue] spawn blck_fnc_missionTimer;//Starts minor mission system (Blue Map Markers)
[_missionListBlue,_pathBlue,"BlueMarker","blue",blck_TMin_Blue,blck_TMax_Blue,blck_enableBlueMissions] call blck_fnc_addMissionToQue;
};
#ifdef GRGserver
diag_log "[blckeagls] Running GhostriderGaming Version";
//diag_log format["[blckeagls] _init_server: blck_enableScoutsMissions = %1",blck_enableScoutsMissions];
if (blck_enableScoutsMissions > 0) then
{
//[_missionListScouts,_pathScouts,"ScoutsMarker","red",blck_TMin_Scouts,blck_TMax_Scouts] spawn blck_fnc_missionTimer;
[_missionListScouts,_pathScouts,"ScoutsMarker","red",blck_TMin_Scouts,blck_TMax_Scouts,blck_enableScoutsMissions,false] call blck_fnc_addMissionToQue;
};
//diag_log format["[blckeagls] _init_server: blck_enableHunterMissions = %1",blck_enableHunterMissions];
if (blck_enableHunterMissions > 0) then
{
//[_missionListHunters,_pathHunters,"HunterMarker","green",blck_TMin_Hunter,blck_TMax_Hunter] spawn blck_fnc_missionTimer;
// params["_missionList","_path","_marker","_difficulty","_tMin","_tMax","_noMissions"];
[_missionListHunters,_pathHunters,"HunterMarker","green",blck_TMin_Hunter,blck_TMax_Hunter,blck_enableHunterMissions,false] call blck_fnc_addMissionToQue;
};
// Running new version of Crash sites.
//diag_log format["[blckeagls] _init_server: blck_maxCrashSites = %1",blck_maxCrashSites];
if (blck_maxCrashSites > 0) then
{
[] execVM "\q\addons\custom_server\Missions\HeliCrashs\Crashes2.sqf";
};
//diag_log "loading DLS System";
call compile preprocessfilelinenumbers "\q\addons\custom_server\DLS\DLS_init.sqf";
#endif
// Setup a group for AI corpses
blck_graveyardGroup = createGroup [blck_AI_Side,false];
@ -247,22 +226,4 @@ if (blck_debugOn || (blck_debugLevel >= 1)) then
} forEach [blck_MinDistanceFromMission,blck_minDistanceToBases,blck_minDistanceToPlayer,blck_minDistanceFromTowns];
};
*/
if (blck_debugOn) then
{
diag_log "blck_init_server: <BEGIN> findSafePosn speed tests";
private _allCoords = [];
private _t1 = diag_tickTime;
for "_i" from 1 to 25 do
{
private _coords = [] call blck_fnc_FindSafePosn;
};
diag_log format["blck_init_server: time elapsed for 10000 calls to blck_fnc_findSafePosn = %1",diag_tickTime - _t1];
_t1 = diag_tickTime;
_allCoords = [];
for "_j" from 1 to 25 do
{
private _coords = [] call blck_fnc_FindSafePosn_2;
};
diag_log format["blck_init_server: time elapsed for 10000 calls to blck_fnc_findSafePosn_2 = %1",diag_tickTime - _t1];
};

View File

@ -1,4 +1,4 @@
#define blck_buildNumber 205
#define blck_buildNumber 206
#define blck_versionNumber 6.98
#define blck_buildDate "6-3-20"
#define blck_buildDate "6-27-20"