Support multiple air patrols, minor bug fixes.

This commit is contained in:
Ghostrider-DbD- 2017-08-11 23:38:04 -04:00
parent e99d01dbbc
commit 374f7dfb91
26 changed files with 3098 additions and 220 deletions

View File

@ -0,0 +1,433 @@
/*
Generic Mission Spawner
for DBD Clan
By Ghostrider-DBD-
Copyright 2016
Last modified 4/11/17
--------------------------
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";
private ["_abort","_crates","_aiGroup","_objects","_groupPatrolRadius","_missionLandscape","_mines","_blck_AllMissionAI","_blck_localMissionMarker","_AI_Vehicles","_timeOut","_aiDifficultyLevel"];
params["_coords","_mission",["_allowReinforcements",true]];
diag_log format["_missionSpawner (18):: _allowReinforcements = %1",_allowReinforcements];
////////
// set all variables needed for the missions
// data is pulled either from the mission description or from the _mission variable passsed as a parameter
// Deal with situations where some of these variables might not be defined as well.
////////
// _mission params[_missionListOrange,_pathOrange,"OrangeMarker","orange",blck_TMin_Orange,blck_TMax_Orange];
_markerClass = _mission select 2;
_aiDifficultyLevel = _mission select 3;
if (blck_debugLevel > 0) then {diag_log format["_fnc_mainThread:: -->> _markerClass = %1",_markerClass];};
[_mission,"active",_coords] call blck_fnc_updateMissionQue;
blck_ActiveMissionCoords pushback _coords;
diag_log format["[blckeagls] missionSpawner (17):: Initializing mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
private["_chanceHeliPatrol","_noPara","_reinforcementLootCounts","_chanceLoot","_heliCrew","_loadCratesTiming"];
if (isNil "_markerColor") then {_markerColor = "ColorBlack"};
if (isNil "_markerType") then {_markerType = ["mil_box",[]]};
//if (isNil "_timeOut") then {_timeOut = -1;};
if (isNil "_loadCratesTiming") then {_loadCratesTiming = blck_loadCratesTiming}; // valid choices are "atMissionCompletion" and "atMissionSpawn";
private["_useMines","_blck_AllMissionAI","_delayTime","_groupPatrolRadius"];
if (isNil "_useMines") then {_useMines = blck_useMines;};
_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
{
//diag_log "labeling map markers *****";
_blck_localMissionMarker set [2, _markerMissionName];
};
if !(blck_preciseMapMarkers) then
{
//diag_log "Map marker will be OFFSET from the mission position";
_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?
if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (91) message players and spawn a mission marker";};
[["start",_startMsg,_blck_localMissionMarker select 2]] call blck_fnc_messageplayers;
[_blck_localMissionMarker] execVM "debug\spawnMarker.sqf";
#ifdef blck_debugMode
if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (94) waiting for player to trigger the mission";};
#endif
////////
// All parameters are defined, lets wait until a player is nearby or the mission has timed out
////////
private["_wait","_missionStartTime","_playerInRange","_missionTimedOut"];
_missionStartTime = diag_tickTime;
_playerInRange = false;
_missionTimedOut = false;
_wait = true;
if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (105) starting mission trigger loop"};
while {_wait} do
{
#ifdef blck_debugMode
//diag_log "missionSpawner:: top of mission trigger loop";
if (blck_debugLevel > 2) exitWith {_playerInRange = true;};
#endif
if ([_coords, blck_TriggerDistance, false] call blck_fnc_playerInRange) exitWith {_playerInRange = true;};
if ([_missionStartTime] call blck_fnc_timedOut) exitWith {_missionTimedOut = true;};
uiSleep 5;
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format["missionSpawner:: Trigger Loop - blck_debugLevel = %1 and _coords = %2",blck_debugLevel, _coords];
diag_log format["missionSpawner:: Trigger Loop - players in range = %1",{isPlayer _x && _x distance2D _coords < blck_TriggerDistance} count allPlayers];
diag_log format["missionSpawner:: Trigger Loop - timeout = %1", [_missionStartTime] call blck_fnc_timedOut];
};
#endif
};
if (_missionTimedOut) exitWith
{
/*
*/
// Deal with the case in which the mission timed out.
//["timeOut",_endMsg,_blck_localMissionMarker select 2] call blck_fnc_messageplayers;
blck_recentMissionCoords pushback [_coords,diag_tickTime];
blck_ActiveMissionCoords = blck_ActiveMissionCoords - [ _coords];
[_mission,"inactive",[0,0,0]] call blck_fnc_updateMissionQue;
blck_missionsRunning = blck_missionsRunning - 1;
[_blck_localMissionMarker select 0] call compile preprocessfilelinenumbers "debug\deleteMarker.sqf";
//_blck_localMissionMarker set [1,[0,0,0]];
//_blck_localMissionMarker set [2,""];
[_objects, 0.1] spawn blck_fnc_cleanupObjects;
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (105) Mission Timed Out: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
};
////////
// Spawn the mission objects, loot chest, and AI
////////
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (112) -- >> Mission tripped: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
if (count _missionLootBoxes > 0) then
{
_crates = [_coords,_missionLootBoxes,_loadCratesTiming] call blck_fnc_spawnMissionCrates;
}
else
{
_crates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_crateLoot,_lootCounts]], _loadCratesTiming] call blck_fnc_spawnMissionCrates;
};
if (blck_cleanUpLootChests) then
{
_objects append _crates;
};
//uisleep 2;
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (136) Crates Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
private ["_temp"];
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 = [];
if (_missionLandscapeMode isEqualTo "random") then
{
_temp = [_coords,_missionLandscape, 3, 15, 2] call blck_fnc_spawnRandomLandscape;
} else {
_temp = [_coords, floor(random(360)),_missionLandscape,true] call blck_fnc_spawnCompositionObjects;
//uiSleep 1;
};
if (typeName _temp isEqualTo "ARRAY") then
{
_objects append _temp;
};
//diag_log format["_fnc_missionSpawner:: (181)->> _objects = %1",_objects];
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (170) Landscape spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
uiSleep _delayTime;;
_temp = [_missionLootVehicles] call blck_fnc_spawnMissionLootVehicles;
//uisleep 1;
_crates append _temp;
uiSleep _delayTime;
_abort = false;
_temp = [[],[],false];
_temp = [_coords, _minNoAI,_maxNoAI,_aiDifficultyLevel,_uniforms,_headGear] call blck_fnc_spawnMissionAI;
//[_coords, _minNoAI,_maxNoAI,_aiDifficultyLevel,_uniforms,_headGear] call blck_fnc_spawnMissionAI;
#ifdef blck_debugMode
if (blck_debugLevel > 2) then {
diag_log format["missionSpawner :: (185) blck_fnc_spawnMissionAI returned a value of _temp = %1",_temp]; uiSleep 1;
};
_abort = _temp select 1;
if (blck_debugLevel > 2) then {
diag_log format["missionSpawner :: (190) blck_fnc_spawnMissionAI returned a value of _abort = %1",_abort]; uiSleep 1;
};
#endif
if (_abort) exitWith
{
if (blck_debugLevel > 1) then {
diag_log "missionSpawner:: (194) grpNull returned, mission termination criteria met, calling blck_fnc_endMission"
};
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,true] call blck_fnc_endMission;
};
if !(_abort) then
{
_blck_AllMissionAI append (_temp select 0);
};
uiSleep _delayTime;
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (202) AI Patrols Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
_temp = [[],[],false];
_abort = false;
private["_patrolVehicles"];
if (blck_useVehiclePatrols && (_noVehiclePatrols > 0)) then
{
_temp = [_coords,_noVehiclePatrols,_aiDifficultyLevel,_uniforms,_headGear,_markerClass] call blck_fnc_spawnMissionVehiclePatrols;
//[_coords,_noVehiclePatrols,_aiDifficultyLevel,_uniforms,_headGear,_markerClass] call blck_fnc_spawnMissionVehiclePatrols;
#ifdef blck_debugMode
if (blck_debugLevel > 1) then {
diag_log format["missionSpawner :: (216) blck_fnc_spawnMissionVehiclePatrols returned _temp = %1",_temp];
};
#endif
if (typeName _temp isEqualTo "ARRAY") then
{
_abort = _temp select 2;
};
if !(_abort) then
{
_patrolVehicles = _temp select 0;
_blck_AllMissionAI append (_temp select 1);
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (272) Vehicle Patrols Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
};
};
if (_abort) exitWith
{
#ifdef blck_debugMode
if (blck_debugLevel > 0) then {
diag_log "missionSpawner:: (222) grpNull returned, mission termination criteria met, calling blck_endMission";
};
#endif
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,true] call blck_fnc_endMission;
};
uiSleep _delayTime;
_temp = [[],[],false];
_abort = false;
#ifdef blck_debugMode
if (blck_debugLevel > 0) then {diag_log format["missionSpawner:: (234) preparing to spawn emplaced weapons for _coords %4 | _markerClass %3 | blck_useStatic = %1 | _noEmplacedWeapons = %2",blck_useStatic,_noEmplacedWeapons,_markerClass,_coords];};
#endif
if (blck_useStatic && (_noEmplacedWeapons > 0)) then
{
// params["_missionEmplacedWeapons","_noEmplacedWeapons","_aiDifficultyLevel","_coords","_uniforms","_headGear"];
_temp = [_missionEmplacedWeapons,_noEmplacedWeapons,_aiDifficultyLevel,_coords,_uniforms,_headGear] call blck_fnc_spawnEmplacedWeaponArray;
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format ["missionSpawner:: (232) blck_fnc_spawnEmplacedWeaponArray returned _temp = %1",_temp];
};
#endif
if (typeName _temp isEqualTo "ARRAY") then
{
_abort = _temp select 2;
};
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format ["missionSpawner:: (241) _abort = %1",_abort];
};
#endif
if !(_abort) then
{
_objects append (_temp select 0);
_blck_AllMissionAI append (_temp select 1);
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (253) Static Weapons Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
};
};
if (_abort) exitWith
{
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log "missionSpawner:: (261) grpNull ERROR in blck_fnc_spawnEmplacedWeaponArray, mission termination criteria met, calling blck_endMission";
};
#endif
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,true,_patrolVehicles] call blck_fnc_endMission;
};
if (_allowReinforcements) then
{
_weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout;
temp = [];
#ifdef blck_debugMode
if (blck_debugLevel > 1) then
{
diag_log format["[blckeagls] missionSpawner:: (268) calling in reinforcements: Current mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
//params["_coords","_aiSkillsLevel","_weapons","_uniforms","_headgear"];
_temp = [_coords,_aiDifficultyLevel,_weaponList,_uniforms,_headGear] call blck_fnc_spawnMissionReinforcements;
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format["missionSpawner:: _temp = %1",_temp];
};
#endif
if (typeName _temp isEqualTo "ARRAY") then
{
_abort = _temp select 2;
_objects pushback (_temp select 0);
_blck_AllMissionAI append (_temp select 1);
};
if (_abort) then
{
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log "missionSpawner:: (276) grpNul or ERROR in blck_fnc_spawnMissionReinforcements, mission termination criteria met, calling blck_endMission";
};
#endif
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,true,_patrolVehicles] call blck_fnc_endMission;
};
};
// Trigger for mission end
//diag_log format["[blckeagls] mission Spawner _endCondition = %1",_endCondition];
private["_missionComplete","_endIfPlayerNear","_endIfAIKilled"];
_missionComplete = -1;
_startTime = diag_tickTime;
switch (_endCondition) do
{
case "playerNear": {_endIfPlayerNear = true;_endIfAIKilled = false;};
case "allUnitsKilled": {_endIfPlayerNear = false;_endIfAIKilled = true;};
case "allKilledOrPlayerNear": {_endIfPlayerNear = true;_endIfAIKilled = true;};
};
//diag_log format["missionSpawner :: (269) _endIfPlayerNear = %1 _endIfAIKilled= %2",_endIfPlayerNear,_endIfAIKilled];
private["_locations"];
_locations = [_coords];
{
_locations pushback (getPos _x);
} forEach _crates;
//diag_log format["missionSpawner:: _coords = %1 | _crates = %2 | _locations = %3",_coords,_crates,_locations];
//diag_log format["missionSpawner:: Waiting for player to satisfy mission end criteria of _endIfPlayerNear %1 with _endIfAIKilled %2",_endIfPlayerNear,_endIfAIKilled];
while {_missionComplete isEqualTo -1} do
{
//if (blck_debugLevel isEqualTo 3) exitWith {uiSleep 300};
if ((_endIfPlayerNear) && [_locations,10,true] call blck_fnc_playerInRangeArray) exitWith {};
if ((_endIfAIKilled) && ({alive _x} count _blck_AllMissionAI) < 1 /*[_blck_AllMissionAI] call blck_fnc_missionAIareDead*/ ) exitWith {};
//diag_log format["missionSpawner:: (283) missionCompleteLoop - > players near = %1 and ai alive = %2",[_coords,20] call blck_fnc_playerInRange, {alive _x} count _blck_AllMissionAI];
uiSleep 4;
};
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (414) Mission completion criteria fulfilled: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
diag_log format["missionSpawner :: (415) _endIfPlayerNear = %1 _endIfAIKilled= %2",_endIfPlayerNear,_endIfAIKilled];
};
#endif
//diag_log format["[blckeagls] missionSpawner:: (418) calling endMission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
private["_result"];
_result = [_mines,_objects,_crates,_blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,false,_patrolVehicles] call blck_fnc_endMission;
//diag_log format["[blckeagls] missionSpawner:: (420)end of mission: blck_fnc_endMission returned value of %1","pending"];

View File

@ -349,7 +349,7 @@ if (_abort) exitWith
if (_allowReinforcements) then if (_allowReinforcements) then
{ {
_weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout; _weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout;
temp = []; _temp = [];
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 1) then if (blck_debugLevel > 1) then
@ -357,34 +357,47 @@ if (_allowReinforcements) then
diag_log format["[blckeagls] missionSpawner:: (268) calling in reinforcements: Current mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName]; diag_log format["[blckeagls] missionSpawner:: (268) calling in reinforcements: Current mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
}; };
#endif #endif
private _noChoppers = 3;
switch (toLower _aiDifficultyLevel) do
{
case "blue":{_noChoppers = blck_noPatrolHelisBlue};
case "red":{_noChoppers = blck_noPatrolHelisRed};
case "green":{_noChoppers = blck_noPatrolHelisGreen};
case "orange":{_noChoppers = blck_noPatrolHelisOrange};
};
//params["_coords","_aiSkillsLevel","_weapons","_uniforms","_headgear"]; for "_i" from 1 to (_noChoppers) do
_temp = [_coords,_aiDifficultyLevel,_weaponList,_uniforms,_headGear] call blck_fnc_spawnMissionReinforcements;
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{ {
diag_log format["missionSpawner:: _temp = %1",_temp]; //params["_coords","_aiSkillsLevel","_weapons","_uniforms","_headgear"];
};
#endif _temp = [_coords,_aiDifficultyLevel,_weaponList,_uniforms,_headGear] call blck_fnc_spawnMissionReinforcements;
if (typeName _temp isEqualTo "ARRAY") then #ifdef blck_debugMode
{ if (blck_debugLevel >= 2) then
_abort = _temp select 2;
_objects pushback (_temp select 0);
_blck_AllMissionAI append (_temp select 1);
};
if (_abort) then
{
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{ {
diag_log "missionSpawner:: (276) grpNul or ERROR in blck_fnc_spawnMissionReinforcements, mission termination criteria met, calling blck_endMission"; diag_log format["missionSpawner:: blck_fnc_spawnMissionReinforcements call for chopper # %1 out of a total of %2 choppers",_i, _noChoppers];
diag_log format["missionSpawner:: _temp = %1",_temp];
}; };
#endif #endif
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,true,_patrolVehicles] call blck_fnc_endMission; if (typeName _temp isEqualTo "ARRAY") then
{
_abort = _temp select 2;
_objects pushback (_temp select 0);
_blck_AllMissionAI append (_temp select 1);
};
if (_abort) then
{
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log "missionSpawner:: (276) grpNul or ERROR in blck_fnc_spawnMissionReinforcements, mission termination criteria met, calling blck_endMission";
};
#endif
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,true,_patrolVehicles] call blck_fnc_endMission;
};
}; };
}; };
// Trigger for mission end // Trigger for mission end

View File

@ -0,0 +1,75 @@
/*
By Ghostrider-DbD-
--------------------------
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";
params["_coords","_grpPilot","_chanceLoot"];
_chopperType = selectRandom blck_AIHelis;
_grpPilot setVariable["groupVehicle",_chopperType];
#ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: _chopperType seleted = %1",_chopperType];
#endif
_spawnVector = round(random(360));
_spawnDistance = 1000; // + floor(random(1500)); // We need the heli to be on-site quickly to minimize the chance that a small mission has been completed before the paratroops are deployed and added to the list of live AI for the mission
_dropLoot = (random(1) < _chanceLoot);
// Use the new functionality of getPos
// https://community.bistudio.com/wiki/getPos
_spawnPos = _coords getPos [_spawnDistance,_spawnVector];
#ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: vector was %1 with distance %2 yielding a spawn position of %3 at distance from _coords of %4",_spawnVector,_spawnDistance,_spawnPos, (_coords distance2d _spawnPos)];
#endif
_grpPilot setBehaviour "CARELESS";
_grpPilot setCombatMode "RED";
_grpPilot setSpeedMode "FULL";
_grpPilot allowFleeing 0;
private["_supplyHeli"];
//create helicopter and spawn it
_supplyHeli = createVehicle [_chopperType, _spawnPos, [], 90, "FLY"];
blck_monitoredVehicles pushback _supplyHeli;
[_supplyHeli] call blck_fnc_protectVehicle;
_supplyHeli setVariable["vehicleGroup",_grpPilot];
_supplyHeli setDir (_spawnVector -180);
_supplyHeli setFuel 1;
_supplyHeli engineOn true;
_supplyHeli flyInHeight 250;
_supplyHeli setVehicleLock "LOCKED";
_supplyHeli addEventHandler ["GetOut",{(_this select 0) setFuel 0;(_this select 0) setDamage 1;}];
clearWeaponCargoGlobal _supplyHeli;
clearMagazineCargoGlobal _supplyHeli;
clearItemCargoGlobal _supplyHeli;
clearBackpackCargoGlobal _supplyHeli;
_unitPilot = _grpPilot createUnit ["I_helipilot_F", getPos _supplyHeli, [], 0, "FORM"];
_unitPilot setSkill 1;
_unitPilot assignAsDriver _supplyHeli;
_unitPilot moveInDriver _supplyHeli;
_grpPilot selectLeader _unitPilot;
_grpPilot setVariable["paraGroup",_paraGroup];
#ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: heli spawned and pilot added"];
#endif
//set waypoint for helicopter
//params["_pos","_minDis","_maxDis","_group",["_mode","random"],["_wpPatrolMode","SAD"],["_soldierType","null"] ];
[_coords,25,40,_grpPilot,"random","SAD","helicpoter"] spawn blck_fnc_setupWaypoints;
#ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: initial pilot waypoints set"];
#endif
_supplyHeli allowDamage true;
_supplyHeli

View File

@ -14,7 +14,7 @@ params["_coords","_grpPilot","_chanceLoot"];
_chopperType = selectRandom blck_AIHelis; _chopperType = selectRandom blck_AIHelis;
_grpPilot setVariable["groupVehicle",_chopperType]; _grpPilot setVariable["groupVehicle",_chopperType];
#ifdef blck_debugMode #ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: _chopperType seleted = %1",_chopperType]; diag_log format["_fnc_spawnMissionHeli:: _chopperType seleted = %1",_chopperType];
#endif #endif
_spawnVector = round(random(360)); _spawnVector = round(random(360));
@ -26,7 +26,7 @@ _dropLoot = (random(1) < _chanceLoot);
_spawnPos = _coords getPos [_spawnDistance,_spawnVector]; _spawnPos = _coords getPos [_spawnDistance,_spawnVector];
#ifdef blck_debugMode #ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: vector was %1 with distance %2 yielding a spawn position of %3 at distance from _coords of %4",_spawnVector,_spawnDistance,_spawnPos, (_coords distance2d _spawnPos)]; diag_log format["_fnc_spawnMissionHeli:: vector was %1 with distance %2 yielding a spawn position of %3 at distance from _coords of %4",_spawnVector,_spawnDistance,_spawnPos, (_coords distance2d _spawnPos)];
#endif #endif
_grpPilot setBehaviour "CARELESS"; _grpPilot setBehaviour "CARELESS";
@ -61,7 +61,7 @@ _grpPilot selectLeader _unitPilot;
_grpPilot setVariable["paraGroup",_paraGroup]; _grpPilot setVariable["paraGroup",_paraGroup];
#ifdef blck_debugMode #ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: heli spawned and pilot added"]; diag_log format["_fnc_spawnMissionHeli:: heli spawned and pilot added"];
#endif #endif
//set waypoint for helicopter //set waypoint for helicopter
@ -69,7 +69,7 @@ diag_log format["_fnc_missionSpawner:: heli spawned and pilot added"];
[_coords,25,40,_grpPilot,"random","SAD","helicpoter"] spawn blck_fnc_setupWaypoints; [_coords,25,40,_grpPilot,"random","SAD","helicpoter"] spawn blck_fnc_setupWaypoints;
#ifdef blck_debugMode #ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: initial pilot waypoints set"]; diag_log format["_fnc_spawnMissionHeli:: initial pilot waypoints set"];
#endif #endif
_supplyHeli allowDamage true;
_supplyHeli _supplyHeli

View File

@ -13,9 +13,13 @@
*/ */
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\Configs\blck_defines.hpp";
if (blck_debugON) then {diag_log "[blckeagls] Loading blck_configs.sqf";};
#ifdef blck_milServer
execVM "\q\addons\custom_server\Configs\blck_configs_mil.sqf";
if (true) exitWith {};
#endif
diag_log "[blckeagls] Loading configurations for Non-militarized servers: blck_configs.sqf";
/* /*
Configuration for Addons that support the overall Mission system. Configuration for Addons that support the overall Mission system.
These are a module to spawn map addons generated with the Eden Editor These are a module to spawn map addons generated with the Eden Editor
@ -23,11 +27,11 @@
A time acceleration module. A time acceleration module.
*/ */
blck_spawnMapAddons = false; // When true map addons will be spawned based on parameters define in custum_server\MapAddons\MapAddons_init.sqf blck_spawnMapAddons = true; // When true map addons will be spawned based on parameters define in custum_server\MapAddons\MapAddons_init.sqf
blck_spawnStaticLootCrates = false; // When true, static loot crates will be spawned and loaded with loot as specified in custom_server\SLS\SLS_init_Epoch.sqf (or its exile equivalent). blck_spawnStaticLootCrates = true; // When true, static loot crates will be spawned and loaded with loot as specified in custom_server\SLS\SLS_init_Epoch.sqf (or its exile equivalent).
// Note that you can define map-specific variants in custom_server\configs\blck_custom_config.sqf // Note that you can define map-specific variants in custom_server\configs\blck_custom_config.sqf
blck_useTimeAcceleration = false; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below. blck_useTimeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
blck_timeAccelerationDay = 1; // Daytime time accelearation blck_timeAccelerationDay = 1; // Daytime time accelearation
blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation
blck_timeAccelerationNight = 8; // Nighttim time acceleration blck_timeAccelerationNight = 8; // Nighttim time acceleration
@ -52,7 +56,7 @@
/////////////////////////////// ///////////////////////////////
// Kill message configurations // Kill message configurations
// These determine whether and when messages are sent to players regarding AI Kills or illegal kills that might damage a vehicle. // These determine whether and when messages are sent to players regarding AI Kills or illegal kills that might damage a vehicle.
blck_useKillMessages = false; // when true a message will be broadcast to all players each time an AI is killed; may impact server performance. blck_useKillMessages = true; // when true a message will be broadcast to all players each time an AI is killed; may impact server performance.
blck_useKillScoreMessage = true; // when true a tile is displayed to the killer with the kill score information blck_useKillScoreMessage = true; // when true a tile is displayed to the killer with the kill score information
blck_useIEDMessages = true; // Displayes a message when a player vehicle detonates and IED (such as would happen if a player killed AI with a forbidden weapon). blck_useIEDMessages = true; // Displayes a message when a player vehicle detonates and IED (such as would happen if a player killed AI with a forbidden weapon).
@ -88,10 +92,10 @@
blck_VK_Gear = true; // When set to true, AI that have been killed by a player in a vehicle in the list of forbidden vehicles or using a forbiden gun will be stripped of gear and the vehicle will be given blck_RunGearDamage of damage blck_VK_Gear = true; // When set to true, AI that have been killed by a player in a vehicle in the list of forbidden vehicles or using a forbiden gun will be stripped of gear and the vehicle will be given blck_RunGearDamage of damage
blck_VK_RunoverDamage = true; // when the AI was run over blck_RunGearDamage of damage will be applied to the killer's vehicle. blck_VK_RunoverDamage = true; // when the AI was run over blck_RunGearDamage of damage will be applied to the killer's vehicle.
blck_VK_GunnerDamage = true; // when the AI was killed by a gunner on a vehicle that is is in the list of forbidden vehicles, blck_RunGearDamage of damage will be applied to the killer's vehicle each time an AI is killed with a vehicle's gun. blck_VK_GunnerDamage = true; // when the AI was killed by a gunner on a vehicle that is is in the list of forbidden vehicles, blck_RunGearDamage of damage will be applied to the killer's vehicle each time an AI is killed with a vehicle's gun.
blck_forbidenVehicles = ["B_MRAP_01_hmg_F","O_MRAP_02_hmg_F"]; // Add any vehicles for which you wish to forbid vehicle kills blck_forbidenVehicles = [/*"B_MRAP_01_hmg_F","O_MRAP_02_hmg_F","I_MRAP_03_hmg_F","B_MRAP_01_hmg_F","O_MRAP_02_hmg_F"*/]; // Add any vehicles for which you wish to forbid vehicle kills
// For a listing of the guns mounted on various land vehicles see the following link: https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Vehicle_Weapons // For a listing of the guns mounted on various land vehicles see the following link: https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Vehicle_Weapons
// HMG_M2 is mounted on the armed offroad that is spawned by Epoch // HMG_M2 is mounted on the armed offroad that is spawned by Epoch
blck_forbidenVehicleGuns = ["LMG_RCWS","LMG_M200","HMG_127","HMG_127_APC",/*"HMG_M2",*/"HMG_NSVT","GMG_40mm","GMG_UGV_40mm","autocannon_40mm_CTWS","autocannon_30mm_CTWS","autocannon_35mm","LMG_coax","autocannon_30mm","HMG_127_LSV_01"]; // Add any vehicles for which you wish to forbid vehicle kills, o blck_forbidenVehicleGuns = [/*"LMG_RCWS","LMG_M200","HMG_127","HMG_127_APC","HMG_M2","HMG_NSVT","GMG_40mm","GMG_UGV_40mm","autocannon_40mm_CTWS","autocannon_30mm_CTWS","autocannon_35mm","LMG_coax","autocannon_30mm","HMG_127_LSV_01"*/]; // Add any vehicles for which you wish to forbid vehicle kills, o
/////////////////////////////// ///////////////////////////////
@ -108,17 +112,17 @@
// AI paratrooper reinforcement paramters // AI paratrooper reinforcement paramters
// The behavior of these can be linked to some degree to the spawning of patrolling helis. // The behavior of these can be linked to some degree to the spawning of patrolling helis.
// For example, if you always want a helicopter to spawn paratroops set the value 1. // For example, if you always want a helicopter to spawn paratroops set the value 1.
// If you never want helicopters to spawn them set the value to 0. // Recommended that you disable paratroops if using muliple aircraft/vehicle patrols
blck_chanceParaBlue = 0.1; // [0 - 1] set to 0 to deactivate and 1 to always have paratroops spawn over the center of the mission. blck_chanceParaBlue = 0; // [0 - 1] set to 0 to deactivate and 1 to always have paratroops spawn over the center of the mission.
blck_noParaBlue = 3; // [1-N] blck_noParaBlue = 3; // [1-N]
blck_chanceParaRed = 0.3; blck_chanceParaRed = 0;
blck_noParaRed = 3; blck_noParaRed = 3;
blck_chanceParaGreen = 0.4; blck_chanceParaGreen = 0;
blck_noParaGreen = 0.4; blck_noParaGreen = 4;
blck_chanceParaOrange = 0.5; blck_chanceParaOrange = 0;
blck_noParaOrange = 4; blck_noParaOrange = 4;
// Supplemental Loot Parameters. // Supplemental Loot Parameters.
@ -134,6 +138,13 @@
_blck_armed_hurons = ["B_Heli_Transport_03_F","B_Heli_Transport_03_black_F"]; _blck_armed_hurons = ["B_Heli_Transport_03_F","B_Heli_Transport_03_black_F"];
_blck_armed_attackHelis = ["B_Heli_Attack_01_F"]; _blck_armed_attackHelis = ["B_Heli_Attack_01_F"];
_blck_armed_heavyAttackHelis = ["O_Heli_Attack_02_F","O_Heli_Attack_02_black_F"]; _blck_armed_heavyAttackHelis = ["O_Heli_Attack_02_F","O_Heli_Attack_02_black_F"];
_blck_fighters = [
"O_Plane_CAS_02_F", // /ti-199 Neophron (CAS)
"I_Plane_Fighter_03_AA_F", // A-143 Buzzard (AA)
"I_Plane_Fighter_04_F", // A-149 Gryphon
"B_Plane_CAS_01_F", // A-164 Wipeout (CAS)
"B_Plane_Fighter_01_F" // F/A-181 Black Wasp II
];
blck_blacklisted_heli_ammo = ["24Rnd_missiles","24Rnd_PG_missiles","12Rnd_PG_missiles","2Rnd_LG_scalpel","6Rnd_LG_scalpel","8Rnd_LG_scalpel","M_Scalpel_AT ","14Rnd_80mm_rockets","38Rnd_80mm_rockets"]; blck_blacklisted_heli_ammo = ["24Rnd_missiles","24Rnd_PG_missiles","12Rnd_PG_missiles","2Rnd_LG_scalpel","6Rnd_LG_scalpel","8Rnd_LG_scalpel","M_Scalpel_AT ","14Rnd_80mm_rockets","38Rnd_80mm_rockets"];
blck_blacklisted_heli_weapons = ["missiles_SCALPEL","missiles_titan","rockets_Skyfire","missiles_DAGR","missiles_DAR"]; blck_blacklisted_heli_weapons = ["missiles_SCALPEL","missiles_titan","rockets_Skyfire","missiles_DAGR","missiles_DAR"];
@ -142,18 +153,23 @@
// Heli Patrol Settings // Heli Patrol Settings
/////////////////////////////// ///////////////////////////////
blck_chanceHeliPatrolBlue = 0; //[0 - 1] Set to 0 to deactivate and 1 to always have a heli spawn over the mission center and patrol the mission area. The chance of paratroops dropping from the heli is defined by blck_chancePara(Blue|Red|Green|Orange) above. blck_chanceHeliPatrolBlue = 0; //[0 - 1] Set to 0 to deactivate and 1 to always have a heli spawn over the mission center and patrol the mission area.
// The chance of paratroops dropping from the heli is defined by blck_chancePara(Blue|Red|Green|Orange) above.
// Recommend setting the change = 1 if you wish to spawn multiple helis at a mission.
blck_patrolHelisBlue = _blck_littleBirds; blck_patrolHelisBlue = _blck_littleBirds;
blck_noPatrolHelisBlue = 1;
blck_chanceHeliPatrolRed = 0; // 0.4; blck_chanceHeliPatrolRed = 0.1; // 0.4;
blck_patrolHelisRed = _blck_littleBirds; blck_patrolHelisRed = _blck_littleBirds;
blck_noPatrolHelisRed = 1;
blck_chanceHeliPatrolGreen = 0; blck_chanceHeliPatrolGreen = 0.4;
blck_patrolHelisGreen = _blck_littleBirds; blck_patrolHelisGreen = _blck_littleBirds;
blck_noPatrolHelisGreen = 1;
blck_chanceHeliPatrolOrange = 0; blck_chanceHeliPatrolOrange = 0.5;
blck_patrolHelisOrange = _blck_littleBirds; //_blck_armed_hellcats+_blck_armed_orcas; blck_patrolHelisOrange = _blck_armed_hellcats+_blck_armed_orcas;
blck_noPatrolHelisOrange = 1;
//////////////////// ////////////////////
// Enable / Disable Missions // Enable / Disable Missions
@ -228,7 +244,7 @@
blck_useStatic = true; // When true, AI will man static weapons spawned 20-30 meters from the mission center. These are very effective against most vehicles blck_useStatic = true; // When true, AI will man static weapons spawned 20-30 meters from the mission center. These are very effective against most vehicles
blck_killEmptyStaticWeapons = true; // When true, static weapons will have damage set to 1 when the AI manning them is killed. blck_killEmptyStaticWeapons = true; // When true, static weapons will have damage set to 1 when the AI manning them is killed.
blck_staticWeapons = ["B_HMG_01_high_F"/*,"B_GMG_01_high_F","O_static_AT_F"*/]; // [0.50 cal, grenade launcher, AT Launcher] blck_staticWeapons = ["B_HMG_01_high_F","B_GMG_01_high_F"/*,"O_static_AT_F"*/]; // [0.50 cal, grenade launcher, AT Launcher]
//////////////////// ////////////////////
// Mission Static Weapon Settings // Mission Static Weapon Settings
@ -269,7 +285,7 @@
// How precisely player locations will be revealed to AI after an AI kill // How precisely player locations will be revealed to AI after an AI kill
// values are ordered as follows [blue, red, green, orange]; // values are ordered as follows [blue, red, green, orange];
blck_AIAlertDistance = [150,225,250,300]; // Radius within which AI will be notified of enemy activity. Depricated as a group-sed system is used now. The group is informed of the enemy location when a group member is hit or killed. blck_AIAlertDistance = [250,325,450,500]; // Radius within which AI will be notified of enemy activity. Depricated as a group-sed system is used now. The group is informed of the enemy location when a group member is hit or killed.
//blck_AIAlertDistance = [150,225,400,500]; //blck_AIAlertDistance = [150,225,400,500];
// How precisely player locations will be revealed to AI after an AI kill // How precisely player locations will be revealed to AI after an AI kill
// values are ordered as follows [blue, red, green, orange]; // values are ordered as follows [blue, red, green, orange];
@ -341,7 +357,7 @@
blck_MaxAI_Orange = 25; blck_MaxAI_Orange = 25;
blck_AIGrps_Orange = 5; blck_AIGrps_Orange = 5;
blck_SkillsOrange = [ blck_SkillsOrange = [
["aimingAccuracy",0.2],["aimingShake",0.5],["aimingSpeed",0.7],["endurance",1.00],["spotDistance",1.0],["spotTime",0.7],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00] ["aimingAccuracy",0.5],["aimingShake",0.5],["aimingSpeed",0.7],["endurance",1.00],["spotDistance",1.0],["spotTime",0.7],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]
]; ];
// Green Missions // Green Missions
@ -349,7 +365,7 @@
blck_MaxAI_Green = 21; blck_MaxAI_Green = 21;
blck_AIGrps_Green = 4; blck_AIGrps_Green = 4;
blck_SkillsGreen = [ blck_SkillsGreen = [
["aimingAccuracy",0.18],["aimingShake",0.45],["aimingSpeed",0.65],["endurance",0.9],["spotDistance",0.9],["spotTime",0.65],["courage",0.9],["reloadSpeed",0.9],["commanding",0.9],["general",0.75] ["aimingAccuracy",0.4],["aimingShake",0.45],["aimingSpeed",0.65],["endurance",0.9],["spotDistance",0.9],["spotTime",0.65],["courage",0.9],["reloadSpeed",0.9],["commanding",0.9],["general",0.75]
]; ];
// Red Missions // Red Missions
@ -357,7 +373,7 @@
blck_MaxAI_Red = 15; blck_MaxAI_Red = 15;
blck_AIGrps_Red = 3; blck_AIGrps_Red = 3;
blck_SkillsRed = [ blck_SkillsRed = [
["aimingAccuracy",0.16],["aimingShake",0.4],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.6],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70] ["aimingAccuracy",0.3],["aimingShake",0.4],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.6],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70]
]; ];
// Blue Missions // Blue Missions

View File

@ -2,7 +2,7 @@
for DBD Clan for DBD Clan
By Ghostrider-DBD- By Ghostrider-DBD-
Copyright 2016 Copyright 2016
Last Modified 5-21-17 Last Modified 3-14-17
-------------------------- --------------------------
License License
@ -403,14 +403,14 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
blck_medicalItems = ["FAK"]; blck_medicalItems = ["FAK"];
blck_specialItems = blck_throwableExplosives + blck_medicalItems; blck_specialItems = blck_throwableExplosives + blck_medicalItems;
blck_NVG = ["NVG_EPOCH"]; blck_NVG = ["NVG_EPOCH"];
blck_epochValuables = ["PartOreGold","PartOreSilver","PartOre","ItemGoldBar","ItemSilverBar", blck_epochValuables = ["class PartOreGold","cass PartOreSilver","class PartOre","class ItemGoldBar","class ItemSilverBar",
"ItemGoldBar10oz","ItemTopaz","ItemOnyx","ItemSapphire","ItemAmethyst", "class ItemGoldBar10oz","class ItemTopaz","class ItemOnyx","class ItemSapphire","class ItemAmethyst",
"ItemEmerald","ItemCitrine","ItemRuby","ItemQuartz","ItemJade", "class ItemEmerald","class ItemCitrine","class ItemRuby","class ItemQuartz","class ItemJade",
"ItemGarnet","ItemKiloHemp"]; "class ItemGarnet","class ItemKiloHemp"];
blck_epochBuildingSupplies = ["PartPlankPack","CinderBlocks","MortarBucket","ItemScraps", blck_epochBuildingSupplies = ["PartPlankPack","CinderBlocks","MortarBucket","ItemScraps",
"ItemCorrugated","ItemCorrugatedLg","ItemSolar","ItemCables", "ItemCorrugated","ItemCorrugatedLg","ItemSolar","ItemCables",
"ItemBattery","Pelt_EPOCH"]; "ItemBattery","Pelt_EPOCH"];
blck_buildingMaterials = blck_epochBuildingSupplies;
/*************************************************************************************** /***************************************************************************************
DEFAULT CONTENTS OF LOOT CRATES FOR EACH MISSION 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 Note however that these configurations can be used in any way you like or replaced with mission-specific customized loot arrays
@ -842,4 +842,4 @@ for examples of how you can do this see \Major\Compositions.sqf
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. 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] Configurations for Epoch Loaded"; diag_log "[blckeagls] Configurations for Epoch Loaded";
blck_configsEpochLoaded = true; blck_configsEpochLoaded = true;

View File

@ -0,0 +1,868 @@
/*
for DBD Clan
By Ghostrider-DBD-
Copyright 2016
Last Modified 3-14-17
--------------------------
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";
////////////
// Epoch-specific 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 = RESISTANCE;
blck_AIPatrolVehicles = ["B_G_Offroad_01_armed_EPOCH","B_LSV_01_armed_F"]; // Type of vehicle spawned to defend AI bases
#define useAPEX 1
blck_AIPatrolVehicles =
[
//"Exile_Car_Offroad_Armed_Guerilla01",
//"Exile_Car_Offroad_Armed_Guerilla02",
//"Exile_Car_BTR40_MG_Green",
//"Exile_Car_BTR40_MG_Camo",
//"Exile_Car_HMMWV_M134_Green",
//"Exile_Car_HMMWV_M134_Desert",
//"Exile_Car_HMMWV_M134_Desert",
//"Exile_Car_HMMWV_M2_Desert",
//"B_LSV_01_armed_F",
//"_MRAP_02_gmg_ghex_F",
//"O_MRAP_02_hmg_ghex_F",
//"O_MRAP_03_gmg_ghex_F",
"O_MRAP_03_hmg_ghex_F",
"B_MBT_01_cannon_F",
//"B_MBT_01_mlrs_base_F",
"B_MBT_01_mlrs_F",
"B_MBT_01_TUSK_F",
"B_APC_Tracked_01_AA_F",
"B_APC_Tracked_01_CRV_F",
"B_APC_Tracked_01_rcws_F"
]; // Type of vehicle spawned to defend AI bases
// 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_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_baseBackpacks = ["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_baseBackpacks + blck_ApexBackpacks;
#endif
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;
//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 = [
//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_vests = [
"V_1_EPOCH","V_2_EPOCH","V_3_EPOCH","V_4_EPOCH","V_5_EPOCH","V_6_EPOCH","V_7_EPOCH","V_8_EPOCH","V_9_EPOCH","V_10_EPOCH","V_11_EPOCH","V_12_EPOCH","V_13_EPOCH","V_14_EPOCH","V_15_EPOCH","V_16_EPOCH","V_17_EPOCH","V_18_EPOCH","V_19_EPOCH","V_20_EPOCH",
"V_21_EPOCH","V_22_EPOCH","V_23_EPOCH","V_24_EPOCH","V_25_EPOCH","V_26_EPOCH","V_27_EPOCH","V_28_EPOCH","V_29_EPOCH","V_30_EPOCH","V_31_EPOCH","V_32_EPOCH","V_33_EPOCH","V_34_EPOCH","V_35_EPOCH","V_36_EPOCH","V_37_EPOCH","V_38_EPOCH","V_39_EPOCH","V_40_EPOCH",
// DLC Vests
"V_PlateCarrierSpec_blk","V_PlateCarrierSpec_mtp","V_PlateCarrierGL_blk","V_PlateCarrierGL_mtp","V_PlateCarrierIAGL_oli"
];
//CraftingFood
blck_Meats=[
"SnakeCarcass_EPOCH","RabbitCarcass_EPOCH","ChickenCarcass_EPOCH","GoatCarcass_EPOCH","SheepCarcass_EPOCH"
];
blck_Drink = [
"WhiskeyNoodle","ItemSodaOrangeSherbet","ItemSodaPurple","ItemSodaMocha","ItemSodaBurst","ItemSodaRbull","FoodWalkNSons"
];
blck_Food = [
"FoodBioMeat","FoodMeeps","FoodSnooter","FoodWalkNSons","sardines_epoch","meatballs_epoch","scam_epoch","sweetcorn_epoch","honey_epoch","CookedSheep_EPOCH","CookedGoat_EPOCH","SnakeMeat_EPOCH",
"CookedRabbit_EPOCH","CookedChicken_EPOCH","ItemTrout","ItemSeaBass","ItemTuna","TacticalBacon"
];
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_EPOCH"];
blck_epochValuables = ["class PartOreGold","cass PartOreSilver","class PartOre","class ItemGoldBar","class ItemSilverBar",
"class ItemGoldBar10oz","class ItemTopaz","class ItemOnyx","class ItemSapphire","class ItemAmethyst",
"class ItemEmerald","class ItemCitrine","class ItemRuby","class ItemQuartz","class ItemJade",
"class ItemGarnet","class ItemKiloHemp"];
blck_epochBuildingSupplies = ["PartPlankPack","CinderBlocks","MortarBucket","ItemScraps",
"ItemCorrugated","ItemCorrugatedLg","ItemSolar","ItemCables",
"ItemBattery","Pelt_EPOCH"];
blck_buildingMaterials = blck_epochBuildingSupplies;
/***************************************************************************************
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"],
["M14_EPOCH","20Rnd_762x51_Mag"],
["M14Grn_EPOCH","20Rnd_762x51_Mag"],
["M14_EPOCH","20Rnd_762x51_Mag"],
["M14Grn_EPOCH","20Rnd_762x51_Mag"],
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
["m107_EPOCH","5Rnd_127x108_Mag"],
["m107Tan_EPOCH","5Rnd_127x108_Mag"],
["srifle_DMR_01_F","10Rnd_762x51_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_762x51_Box_Tracer"],
["MMG_01_hex_F","150Rnd_93x64_Mag"],
["MMG_01_tan_F","150Rnd_93x64_Mag"],
["MMG_02_black_F","150Rnd_93x64_Mag"],
["MMG_02_camo_F","150Rnd_93x64_Mag"],
["MMG_02_sand_F","150Rnd_93x64_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],
["EnergyPack",2,5],
// 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
],
[ // 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
["CinderBlocks",5,15],
["jerrycan_epoch",1,2],
//["lighter_epoch",0,1],
["CircuitParts",2,3],
["WoodLog_EPOCH",5,10],
["ItemCorrugatedLg",1,6],
["ItemCorrugated",3,10],
["ItemMixOil",1,2],
["MortarBucket",5,10],
["PartPlankPack",10,19],
["ItemLockbox",1,2],
["ItemSolar",1,2],
["ItemCables",1,2],
["ItemBattery",1,2],
["Pelt_EPOCH",1,2],
["EnergyPackLg",1,3]
],
[//Items
["Heal_EPOCH",1,2],["Defib_EPOCH",1,2],["Repair_EPOCH",1,4],["FAK",1,4],["VehicleRepair",1,3],["Rangefinder",1,3],["ItemJade",1,2],["ItemQuartz",1,2],["ItemRuby",1,2],["ItemSapphire",1,2],
["ItemKiloHemp",1,2],["ItemRuby",1,2],["ItemSilverBar",1,2],["ItemEmerald",1,2],["ItemTopaz",1,2],["ItemOnyx",1,2],["ItemSapphire",1,2],["ItemAmethyst",1,2],
["ItemSodaRbull",1,3],["ItemSodaOrangeSherbet",1,3],["ItemSodaPurple",1,3],["ItemSodaMocha",1,3],["ItemSodaBurst",1,3],
["CookedChicken_EPOCH",1,3],["CookedGoat_EPOCH",1,3],["CookedSheep_EPOCH",1,3],["FoodSnooter",1,3],["FoodMeeps",1,3],["FoodBioMeat",1,3],["ItemTuna",1,3],["ItemSeaBass",1,3],["ItemTrout",1,3]
],
[ // 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],["smallbackpack_red_epoch",1,2],["smallbackpack_green_epoch",1,2],["smallbackpack_teal_epoch",1,2],["smallbackpack_pink_epoch",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"],
["M14_EPOCH","20Rnd_762x51_Mag"],
["M14Grn_EPOCH","20Rnd_762x51_Mag"],
["M14_EPOCH","20Rnd_762x51_Mag"],
["M14Grn_EPOCH","20Rnd_762x51_Mag"],
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
["m107_EPOCH","5Rnd_127x108_Mag"],
["m107Tan_EPOCH","5Rnd_127x108_Mag"],
["srifle_DMR_01_F","10Rnd_762x51_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"],
["MMG_01_hex_F","150Rnd_93x64_Mag"],
["srifle_DMR_02_camo_F","10Rnd_338_Mag"],
["srifle_DMR_03_F","10Rnd_338_Mag"],
["srifle_DMR_04_Tan_F","10Rnd_338_Mag"],
["srifle_DMR_05_hex_F","10Rnd_338_Mag"],
["srifle_DMR_06_camo_F","10Rnd_338_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],
["EnergyPack",2,5],
// 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]
],
[ // 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]
],
[
["CinderBlocks",4,12],
["jerrycan_epoch",1,2],
["lighter_epoch",1,1],
["CircuitParts",2,5],
["WoodLog_EPOCH",10,20],
["ItemCorrugatedLg",1,3],
["ItemCorrugated",2,9],
["ItemMixOil",1,2],
["MortarBucket",3,6],
["PartPlankPack",10,12],
["ItemLockbox",1,3],
["ItemSolar",1,2],
["ItemCables",1,2],
["ItemBattery",1,2],
["Pelt_EPOCH",1,2],
["EnergyPackLg",1,3]
],
[//Items
// Format is ["Item name, Minimum number to add, Maximum number to add],
["Heal_EPOCH",1,2],["Defib_EPOCH",1,2],["Repair_EPOCH",1,2],["FAK",1,2],["FAK",1,2],["FAK",1,2],["FAK",1,2],["FAK",1,2],["FAK",1,2],["VehicleRepair",1,3],["Rangefinder",1,3],
["ItemKiloHemp",1,2],["ItemRuby",1,2],["ItemSilverBar",1,2],["ItemGoldBar10oz",1,2],
["ItemSodaRbull",1,3],["ItemSodaOrangeSherbet",1,3],["ItemSodaPurple",1,3],["ItemSodaMocha",1,3],["ItemSodaBurst",1,3],
["CookedChicken_EPOCH",1,3],["CookedGoat_EPOCH",1,3],["CookedSheep_EPOCH",1,3],["FoodSnooter",1,3],["FoodMeeps",1,3],["FoodBioMeat",1,3],["ItemTuna",1,3],["ItemSeaBass",1,3],["ItemTrout",1,3]
],
[ // 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],["smallbackpack_red_epoch",1,2],["smallbackpack_green_epoch",1,2],["smallbackpack_teal_epoch",1,2],["smallbackpack_pink_epoch",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"],
["m16_EPOCH","30Rnd_556x45_Stanag"],
["m16Red_EPOCH","30Rnd_556x45_Stanag"],
["M14_EPOCH","20Rnd_762x51_Mag"],
["M14Grn_EPOCH","20Rnd_762x51_Mag"],
["m4a3_EPOCH","30Rnd_556x45_Stanag"],
["SMG_02_F","30Rnd_9x21_Mag"],
["SMG_01_F","30Rnd_45ACP_Mag_SMG_01"],
["Hgun_PDW2000_F","30Rnd_9x21_Mag"],
["M14_EPOCH","20Rnd_762x51_Mag"],
["M14Grn_EPOCH","20Rnd_762x51_Mag"],
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
["m107_EPOCH","5Rnd_127x108_Mag"],
["m107Tan_EPOCH","5Rnd_127x108_Mag"],
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
["srifle_LRR_F","7Rnd_408_Mag"],
["srifle_EBR_F","20Rnd_762x51_Mag"],
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
["m249_EPOCH","200Rnd_556x45_M249"],
["m249Tan_EPOCH","200Rnd_556x45_M249"],
["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],
["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_AMS_snd",1,3],["optic_KHS_blk",1,3],["optic_KHS_hex",1,3],["optic_KHS_old",1,3],["optic_KHS_tan",1,3]
],
[
["CinderBlocks",2,6],
["jerrycan_epoch",1,3],
["lighter_epoch",1,1],
["CircuitParts",2,3],
["WoodLog_EPOCH",10,20],
["ItemCorrugatedLg",0,4],
["ItemCorrugated",3,6],
["ItemMixOil",1,2],
["MortarBucket",1,8],
["PartPlankPack",10,12],
["ItemLockbox",1,2],
["EnergyPackLg",0,1]
],
[//Items
["Heal_EPOCH",1,2],["Defib_EPOCH",1,2],["Repair_EPOCH",1,2],["FAK",1,5],["VehicleRepair",1,5],
["ItemSodaRbull",1,3],["ItemSodaOrangeSherbet",1,3],["ItemSodaPurple",1,3],["ItemSodaMocha",1,3],["ItemSodaBurst",1,3],
["CookedChicken_EPOCH",1,3],["CookedGoat_EPOCH",1,3],["CookedSheep_EPOCH",1,3],["FoodSnooter",1,3],["FoodMeeps",1,3],["FoodBioMeat",1,3],["ItemTuna",1,3],["ItemSeaBass",1,3],["ItemTrout",1,3]
],
[ // 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],["smallbackpack_red_epoch",0,2],["smallbackpack_green_epoch",0,2],["smallbackpack_teal_epoch",0,2],["smallbackpack_pink_epoch",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"],
["arifle_TRG20_F","30Rnd_556x45_Stanag"],
["m16_EPOCH","30Rnd_556x45_Stanag"],
["m16Red_EPOCH","30Rnd_556x45_Stanag"],
["M14_EPOCH","20Rnd_762x51_Mag"],
["M14Grn_EPOCH","20Rnd_762x51_Mag"],
["m4a3_EPOCH","30Rnd_556x45_Stanag"],
["SMG_02_F","30Rnd_9x21_Mag"],
["SMG_01_F","30Rnd_45ACP_Mag_SMG_01"],
["Hgun_PDW2000_F","30Rnd_9x21_Mag"],
["M14_EPOCH","20Rnd_762x51_Mag"],
["M14Grn_EPOCH","20Rnd_762x51_Mag"],
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
["m107_EPOCH","5Rnd_127x108_Mag"],
["m107Tan_EPOCH","5Rnd_127x108_Mag"],
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
["srifle_LRR_F","7Rnd_408_Mag"],
["srifle_EBR_F","20Rnd_762x51_Mag"],
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
["m249_EPOCH","200Rnd_556x45_M249"],
["m249Tan_EPOCH","200Rnd_556x45_M249"],
["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"],
["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]
],
[
["CinderBlocks",2,7],
["jerrycan_epoch",1,3],
["lighter_epoch",1,1],
["CircuitParts",2,6],
["WoodLog_EPOCH",10,20],
["ItemCorrugatedLg",0,5],
["ItemCorrugated",3,7],
["ItemMixOil",1,2],
["MortarBucket",2,5],
["PartPlankPack",10,12],
["ItemLockbox",1,2],
["EnergyPackLg",0,1]
],
[//Items
["Heal_EPOCH",1,2],["Defib_EPOCH",1,2],["Repair_EPOCH",1,2],["FAK",1,2],["VehicleRepair",1,3],
["ItemSodaRbull",1,3],["ItemSodaOrangeSherbet",1,3],["ItemSodaPurple",1,3],["ItemSodaMocha",1,3],["ItemSodaBurst",1,3],
["CookedChicken_EPOCH",1,3],["CookedGoat_EPOCH",1,3],["CookedSheep_EPOCH",1,3],["FoodSnooter",1,3],["FoodMeeps",1,3],["FoodBioMeat",1,3],["ItemTuna",1,3],["ItemSeaBass",1,3],["ItemTrout",1,3]
],
[ // 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],["smallbackpack_red_epoch",0,2],["smallbackpack_green_epoch",0,2],["smallbackpack_teal_epoch",0,2],["smallbackpack_pink_epoch",0,2]
]
];
// Time the marker remains after completing the mission in seconds - experimental not yet implemented
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] Configurations for Epoch Loaded";
blck_configsEpochLoaded = true;

View File

@ -14,6 +14,12 @@
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\Configs\blck_defines.hpp";
#ifdef blck_milServer
execVM "\q\addons\custom_server\Configs\blck_configs_exile_mil.sqf";
if (true) exitWith {};
#endif
diag_log "[blckeagls] Loading Exile-specific configs for Non-militarized servers: blck_configs_exile.sqf";
//////////// ////////////
// Exile-specific settings // Exile-specific settings
//////////// ////////////
@ -40,8 +46,8 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
**********************************************************************************/ **********************************************************************************/
blck_blacklistSpawns = false; blck_blacklistSpawns = true;
blck_listConcreteMixerZones = false; blck_listConcreteMixerZones = true;
blck_AI_Side = EAST; blck_AI_Side = EAST;
blck_AIPatrolVehicles = ["Exile_Car_Offroad_Armed_Guerilla01","Exile_Car_Offroad_Armed_Guerilla02","Exile_Car_BTR40_MG_Green","Exile_Car_BTR40_MG_Camo","Exile_Car_HMMWV_M134_Green","Exile_Car_HMMWV_M134_Desert",/*"Exile_Car_HMMWV_M134_Desert","Exile_Car_HMMWV_M2_Desert",*/"B_LSV_01_armed_F"]; // Type of vehicle spawned to defend AI bases blck_AIPatrolVehicles = ["Exile_Car_Offroad_Armed_Guerilla01","Exile_Car_Offroad_Armed_Guerilla02","Exile_Car_BTR40_MG_Green","Exile_Car_BTR40_MG_Camo","Exile_Car_HMMWV_M134_Green","Exile_Car_HMMWV_M134_Desert",/*"Exile_Car_HMMWV_M134_Desert","Exile_Car_HMMWV_M2_Desert",*/"B_LSV_01_armed_F"]; // Type of vehicle spawned to defend AI bases
@ -491,6 +497,9 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
blck_specialItems = blck_throwableExplosives + blck_medicalItems; blck_specialItems = blck_throwableExplosives + blck_medicalItems;
blck_NVG = ["NVGoggles","NVGoggles_INDEP","NVGoggles_OPFOR","Exile_Item_XM8"]; blck_NVG = ["NVGoggles","NVGoggles_INDEP","NVGoggles_OPFOR","Exile_Item_XM8"];
blck_buildingMaterials = ["Exile_Item_ExtensionCord","Exile_Item_JunkMetal","Exile_Item_LightBulb","Exile_Item_MetalBoard",
"Exile_Item_MetalPole","Exile_Item_MetalScrews","Exile_Item_Cement","Exile_Item_Sand"];
blck_tools = ["Exile_Item_Matches","Exile_Item_CookingPot","Exile_Melee_Axe","Exile_Melee_SledgeHammmer","Exile_Item_Handsaw","Exile_Item_Pliers"];
/*************************************************************************************** /***************************************************************************************
DEFAULT CONTENTS OF LOOT CRATES FOR EACH MISSION DEFAULT CONTENTS OF LOOT CRATES FOR EACH MISSION

View File

@ -55,11 +55,11 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
//"Exile_Car_HMMWV_M2_Desert", //"Exile_Car_HMMWV_M2_Desert",
//"B_LSV_01_armed_F", //"B_LSV_01_armed_F",
//"_MRAP_02_gmg_ghex_F", //"_MRAP_02_gmg_ghex_F",
"O_MRAP_02_hmg_ghex_F", //"O_MRAP_02_hmg_ghex_F",
"O_MRAP_03_gmg_ghex_F", //"O_MRAP_03_gmg_ghex_F",
"O_MRAP_03_hmg_ghex_F", "O_MRAP_03_hmg_ghex_F",
"B_MBT_01_cannon_F", "B_MBT_01_cannon_F",
"B_MBT_01_mlrs_base_F", //"B_MBT_01_mlrs_base_F",
"B_MBT_01_mlrs_F", "B_MBT_01_mlrs_F",
"B_MBT_01_TUSK_F", "B_MBT_01_TUSK_F",
"B_APC_Tracked_01_AA_F", "B_APC_Tracked_01_AA_F",

View File

@ -108,17 +108,18 @@
// AI paratrooper reinforcement paramters // AI paratrooper reinforcement paramters
// The behavior of these can be linked to some degree to the spawning of patrolling helis. // The behavior of these can be linked to some degree to the spawning of patrolling helis.
// For example, if you always want a helicopter to spawn paratroops set the value 1. // For example, if you always want a helicopter to spawn paratroops set the value 1.
// If you never want helicopters to spawn them set the value to 0. // If you never want paratroops to spawn them set the value to 0.
blck_chanceParaBlue = 0.1; // [0 - 1] set to 0 to deactivate and 1 to always have paratroops spawn over the center of the mission. // Recommended that you disable paratroops if using muliple aircraft/vehicle patrols
blck_chanceParaBlue = 0; // [0 - 1] set to 0 to deactivate and 1 to always have paratroops spawn over the center of the mission.
blck_noParaBlue = 3; // [1-N] blck_noParaBlue = 3; // [1-N]
blck_chanceParaRed = 0.3; blck_chanceParaRed = 0;
blck_noParaRed = 3; blck_noParaRed = 3;
blck_chanceParaGreen = 0.4; blck_chanceParaGreen = 0;
blck_noParaGreen = 0.4; blck_noParaGreen = 4;
blck_chanceParaOrange = 0.5; blck_chanceParaOrange = 0;
blck_noParaOrange = 4; blck_noParaOrange = 4;
// Supplemental Loot Parameters. // Supplemental Loot Parameters.
@ -141,6 +142,16 @@
"B_Plane_CAS_01_F", // A-164 Wipeout (CAS) "B_Plane_CAS_01_F", // A-164 Wipeout (CAS)
"B_Plane_Fighter_01_F" // F/A-181 Black Wasp II "B_Plane_Fighter_01_F" // F/A-181 Black Wasp II
]; ];
/*
_blck_UAVs = [
"I_UAV_02_CAS_F",
"I_UAV_02_F",
"B_UAV_02_CAS_F",
"B_UAV_02_F",,
"O_UAV_02_CAS_F",
"O_UAV_02_F"
];
*/
blck_blacklisted_heli_ammo = []; blck_blacklisted_heli_ammo = [];
blck_blacklisted_heli_weapons = []; blck_blacklisted_heli_weapons = [];
@ -151,16 +162,19 @@
blck_chanceHeliPatrolBlue = 0.2; //[0 - 1] Set to 0 to deactivate and 1 to always have a heli spawn over the mission center and patrol the mission area. The chance of paratroops dropping from the heli is defined by blck_chancePara(Blue|Red|Green|Orange) above. blck_chanceHeliPatrolBlue = 0.2; //[0 - 1] Set to 0 to deactivate and 1 to always have a heli spawn over the mission center and patrol the mission area. The chance of paratroops dropping from the heli is defined by blck_chancePara(Blue|Red|Green|Orange) above.
blck_patrolHelisBlue = _blck_littleBirds; blck_patrolHelisBlue = _blck_littleBirds;
blck_noPatrolHelisBlue = 1;
blck_chanceHeliPatrolRed = 08; // 0.4; blck_chanceHeliPatrolRed = 0.8; // 0.4;
blck_patrolHelisRed = _blck_armed_hellcats+_blck_armed_orcas + _blck_armed_ghosthawks; blck_patrolHelisRed = _blck_armed_hellcats+_blck_armed_orcas + _blck_armed_ghosthawks;
blck_noPatrolHelisRed = 1;
blck_chanceHeliPatrolGreen = 0.9999; blck_chanceHeliPatrolGreen = 0.9999;
blck_patrolHelisGreen = _blck_armed_heavyAttackHelis+_blck_armed_ghosthawks; blck_patrolHelisGreen = _blck_armed_heavyAttackHelis+_blck_armed_ghosthawks;
blck_noPatrolHelisGreen = 2;
blck_chanceHeliPatrolOrange = 0.9999; blck_chanceHeliPatrolOrange = 0.9999;
blck_patrolHelisOrange = _blck_armed_heavyAttackHelis + _blck_fighters; blck_patrolHelisOrange = _blck_armed_heavyAttackHelis + _blck_fighters;
blck_noPatrolHelisOrange = 3;
//////////////////// ////////////////////
// Enable / Disable Missions // Enable / Disable Missions
@ -245,7 +259,7 @@
blck_SpawnEmplaced_Orange = 5; // Number of static weapons at Orange Missions blck_SpawnEmplaced_Orange = 5; // Number of static weapons at Orange Missions
blck_SpawnEmplaced_Green = 4; // Number of static weapons at Green Missions blck_SpawnEmplaced_Green = 4; // Number of static weapons at Green Missions
blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions
blck_SpawnEmplaced_Red = 1; // Number of static weapons at Red Missions blck_SpawnEmplaced_Red = 2; // Number of static weapons at Red Missions
@ -276,7 +290,7 @@
// How precisely player locations will be revealed to AI after an AI kill // How precisely player locations will be revealed to AI after an AI kill
// values are ordered as follows [blue, red, green, orange]; // values are ordered as follows [blue, red, green, orange];
blck_AIAlertDistance = [150,225,250,300]; // Radius within which AI will be notified of enemy activity. Depricated as a group-sed system is used now. The group is informed of the enemy location when a group member is hit or killed. blck_AIAlertDistance = [250,325,450,500]; // Radius within which AI will be notified of enemy activity. Depricated as a group-sed system is used now. The group is informed of the enemy location when a group member is hit or killed.
//blck_AIAlertDistance = [150,225,400,500]; //blck_AIAlertDistance = [150,225,400,500];
// How precisely player locations will be revealed to AI after an AI kill // How precisely player locations will be revealed to AI after an AI kill
// values are ordered as follows [blue, red, green, orange]; // values are ordered as follows [blue, red, green, orange];
@ -303,7 +317,7 @@
blck_MaxAI_Green = 21; blck_MaxAI_Green = 21;
blck_AIGrps_Green = 4; blck_AIGrps_Green = 4;
blck_SkillsGreen = [ blck_SkillsGreen = [
["aimingAccuracy",0.5],["aimingShake",0.75],["aimingSpeed",0.85],["endurance",0.9],["spotDistance",0.9],["spotTime",0.9],["courage",0.9],["reloadSpeed",0.9],["commanding",0.9],["general",0.75] ["aimingAccuracy",0.55],["aimingShake",0.75],["aimingSpeed",0.85],["endurance",0.9],["spotDistance",0.9],["spotTime",0.9],["courage",0.9],["reloadSpeed",0.9],["commanding",0.9],["general",0.75]
]; ];
// Red Missions // Red Missions
@ -311,7 +325,7 @@
blck_MaxAI_Red = 15; blck_MaxAI_Red = 15;
blck_AIGrps_Red = 3; blck_AIGrps_Red = 3;
blck_SkillsRed = [ blck_SkillsRed = [
["aimingAccuracy",0.2],["aimingShake",0.6],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.8],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70] ["aimingAccuracy",0.4],["aimingShake",0.6],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.8],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70]
]; ];
// Blue Missions // Blue Missions
@ -329,13 +343,13 @@
blck_maxMoneyBlue = 20; blck_maxMoneyBlue = 20;
#ifdef DBDserver #ifdef DBDserver
blck_AIAlertDistance = [150,225,250,300]; // Radius within which AI will be notified of enemy activity. Depricated as a group-sed system is used now. The group is informed of the enemy location when a group member is hit or killed. blck_AIAlertDistance = [250,325,450,500]; // Radius within which AI will be notified of enemy activity. Depricated as a group-sed system is used now. The group is informed of the enemy location when a group member is hit or killed.
//blck_AIAlertDistance = [150,225,400,500]; //blck_AIAlertDistance = [150,225,400,500];
// How precisely player locations will be revealed to AI after an AI kill // How precisely player locations will be revealed to AI after an AI kill
// values are ordered as follows [blue, red, green, orange]; // values are ordered as follows [blue, red, green, orange];
blck_AIIntelligence = [0.3, 0.5, 0.7, 0.9]; blck_AIIntelligence = [0.3, 0.5, 0.7, 0.9];
blck_baseSkill = 0.7; // The overal skill of the AI - range 0.1 to 1.0. blck_baseSkill = 1; // The overal skill of the AI - range 0.1 to 1.0.
/*************************************************************** /***************************************************************
@ -348,7 +362,7 @@
blck_MaxAI_Orange = 35; blck_MaxAI_Orange = 35;
blck_AIGrps_Orange = 5; blck_AIGrps_Orange = 5;
blck_SkillsOrange = [ blck_SkillsOrange = [
["aimingAccuracy",0.4],["aimingShake",0.5],["aimingSpeed",0.7],["endurance",1.00],["spotDistance",1.0],["spotTime",0.7],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00] ["aimingAccuracy",0.6],["aimingShake",0.9],["aimingSpeed",0.9],["endurance",1.00],["spotDistance",1.0],["spotTime",1.0],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]
]; ];
// Green Missions // Green Missions
@ -356,20 +370,20 @@
blck_MaxAI_Green = 31; blck_MaxAI_Green = 31;
blck_AIGrps_Green = 4; blck_AIGrps_Green = 4;
blck_SkillsGreen = [ blck_SkillsGreen = [
["aimingAccuracy",0.3],["aimingShake",0.45],["aimingSpeed",0.65],["endurance",0.9],["spotDistance",0.9],["spotTime",0.65],["courage",0.9],["reloadSpeed",0.9],["commanding",0.9],["general",0.75] ["aimingAccuracy",0.55],["aimingShake",0.75],["aimingSpeed",0.85],["endurance",0.9],["spotDistance",0.9],["spotTime",0.9],["courage",0.9],["reloadSpeed",0.9],["commanding",0.9],["general",0.75]
]; ];
// Red Missions // Red Missions
blck_MinAI_Red = 12; blck_MinAI_Red = 12;
blck_MaxAI_Red = 15; blck_MaxAI_Red = 18;
blck_AIGrps_Red = 3; blck_AIGrps_Red = 3;
blck_SkillsRed = [ blck_SkillsRed = [
["aimingAccuracy",0.2],["aimingShake",0.4],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.6],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70] ["aimingAccuracy",0.4],["aimingShake",0.6],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.8],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70]
]; ];
// Blue Missions // Blue Missions
blck_MinAI_Blue = 8; blck_MinAI_Blue = 8;
blck_MaxAI_Blue = 12; blck_MaxAI_Blue = 14;
blck_AIGrps_Blue = 2; blck_AIGrps_Blue = 2;
blck_SkillsBlue = [ blck_SkillsBlue = [
["aimingAccuracy",0.12],["aimingShake",0.3],["aimingSpeed",0.5],["endurance",0.50],["spotDistance",0.6],["spotTime",0.6],["courage",0.60],["reloadSpeed",0.60],["commanding",0.7],["general",0.60] ["aimingAccuracy",0.12],["aimingShake",0.3],["aimingSpeed",0.5],["endurance",0.50],["spotDistance",0.6],["spotTime",0.6],["courage",0.60],["reloadSpeed",0.60],["commanding",0.7],["general",0.60]
@ -387,7 +401,7 @@
if (_modType isEqualTo "Epoch") then if (_modType isEqualTo "Epoch") then
{ {
diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",_modType]; diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",_modType];
execVM "\q\addons\custom_server\Configs\blck_configs_epoch.sqf"; execVM "\q\addons\custom_server\Configs\blck_configs_epoch_mil.sqf";
waitUntil {(isNil "blck_configsEpochLoaded") isEqualTo false;}; waitUntil {(isNil "blck_configsEpochLoaded") isEqualTo false;};
waitUntil{blck_configsEpochLoaded}; waitUntil{blck_configsEpochLoaded};
blck_configsEpochLoaded = nil; blck_configsEpochLoaded = nil;
@ -397,7 +411,7 @@
if (_modType isEqualTo "Exile") then if (_modType isEqualTo "Exile") then
{ {
diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",_modType]; diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",_modType];
execVM "\q\addons\custom_server\Configs\blck_configs_exile.sqf"; execVM "\q\addons\custom_server\Configs\blck_configs_exile_mil.sqf";
waitUntil {(isNil "blck_configsExileLoaded") isEqualTo false;}; waitUntil {(isNil "blck_configsExileLoaded") isEqualTo false;};
waitUntil{blck_configsExileLoaded}; waitUntil{blck_configsExileLoaded};
blck_configsExileLoaded = nil; blck_configsExileLoaded = nil;

View File

@ -33,14 +33,15 @@ switch (toLower (worldName)) do
case "altis": case "altis":
{ {
blck_timeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below. blck_timeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
blck_timeAccelerationDay = 1.5; // Daytime time accelearation blck_timeAccelerationDay = 0.5; // Daytime time accelearation
blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation
blck_timeAccelerationNight = 8; // Nighttim time acceleration blck_timeAccelerationNight = 8; // Nighttim time acceleration
blck_maxCrashSites = 3;
}; };
case"tanoa": case"tanoa":
{ {
blck_maxCrashSites = 2; blck_maxCrashSites = 2;
blck_timeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below. blck_timeAcceleration = false; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
blck_timeAccelerationDay = 1.4; // Daytime time accelearation blck_timeAccelerationDay = 1.4; // Daytime time accelearation
blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation
blck_timeAccelerationNight = 8; // Nighttim time acceleration blck_timeAccelerationNight = 8; // Nighttim time acceleration
@ -53,10 +54,10 @@ switch (toLower (worldName)) do
blck_enableBlueMissions = -1; blck_enableBlueMissions = -1;
blck_enableHunterMissions = 1; blck_enableHunterMissions = 1;
blck_enableScoutsMissions = -1; blck_enableScoutsMissions = -1;
blck_maxCrashSites = -1; // recommended settings: 3 for Altis, 2 for Tanoa, 1 for smaller maps. Set to -1 to disable blck_maxCrashSites = 1; // recommended settings: 3 for Altis, 2 for Tanoa, 1 for smaller maps. Set to -1 to disable
blck_timeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below. blck_timeAcceleration = false; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
blck_timeAccelerationDay = 2; // Daytime time accelearation blck_timeAccelerationDay = 1; // Daytime time accelearation
blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation
blck_timeAccelerationNight = 8; // Nighttim time acceleration blck_timeAccelerationNight = 8; // Nighttim time acceleration
}; };
@ -83,34 +84,47 @@ switch (toLower (worldName)) do
blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation
blck_timeAccelerationNight = 8; // Nighttim time acceleration blck_timeAccelerationNight = 8; // Nighttim time acceleration
}; };
case "malden":
{
_arr = date call BIS_fnc_sunriseSunsetTime;
_sunrise = _arr select 0;
_sunset = _arr select 1;
_time = dayTime;
_daylight = _sunset - _sunrise;
blck_timeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
blck_timeAccelerationDay = (_daylight / 2.5); // Daytime time accelearation
blck_timeAccelerationDusk = 8; // Dawn/dusk time accelearation
blck_timeAccelerationNight = ((24 - _daylight) / 1.5); // Nighttim time acceleration
};
}; };
if (blck_debugON || (blck_debugLevel isEqualTo 3)) then if (blck_debugON || (blck_debugLevel > 0)) then // These variables are found in \custom_server\compiles\blck_variables.sqf
{ {
// Used primarily for debugging. // Used primarily for debugging.
diag_log "[blckeagls] Debug seting is ON, Custom configurations used"; diag_log "[blckeagls] Debug seting is ON, Custom configurations used";
blck_useTimeAcceleration = false; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below. blck_useTimeAcceleration = false; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
blck_timeAccelerationDay = 12; // Daytime time accelearation blck_timeAccelerationDay = 1; // Daytime time accelearation
blck_timeAccelerationDusk = 18; // Dawn/dusk time accelearation blck_timeAccelerationDusk = 18; // Dawn/dusk time accelearation
blck_timeAccelerationNight = 24; // Nighttim time acceleration blck_timeAccelerationNight = 24; // Nighttim time acceleration
blck_mainThreadUpdateInterval = 10; blck_mainThreadUpdateInterval = 10;
blck_enableOrangeMissions = 1; blck_enableOrangeMissions = 1;
blck_enableGreenMissions = 1; blck_enableGreenMissions = -1;
blck_enableRedMissions = 1; blck_enableRedMissions = -1;
blck_enableBlueMissions = 1; blck_enableBlueMissions = -1;
blck_enableHunterMissions = -1; blck_enableHunterMissions = -1;
blck_enableScoutsMissions = -1; blck_enableScoutsMissions = -1;
blck_maxCrashSites = 1; blck_maxCrashSites = -3;
blck_enabeUnderwaterMissions = -1; //blck_enabeUnderwaterMissions = 1;
blck_cleanupCompositionTimer = 10; // Time after mission completion at which items in the composition are deleted. blck_cleanupCompositionTimer = 120; // Time after mission completion at which items in the composition are deleted.
blck_AliveAICleanUpTimer = 10; // Time after mission completion at which any remaining live AI are deleted. blck_AliveAICleanUpTimer = 120; // Time after mission completion at which any remaining live AI are deleted.
blck_bodyCleanUpTimer = 10; blck_bodyCleanUpTimer = 120;
blck_chanceHeliPatrolBlue = 1; //blck_chanceHeliPatrolBlue = 1;
blck_SpawnEmplaced_Orange = 4; // Number of static weapons at Orange Missions blck_SpawnEmplaced_Orange = 4; // Number of static weapons at Orange Missions
blck_SpawnEmplaced_Green = 3; // Number of static weapons at Green Missions blck_SpawnEmplaced_Green = 3; // Number of static weapons at Green Missions
blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions
@ -139,8 +153,8 @@ if (blck_debugON || (blck_debugLevel isEqualTo 3)) then
blck_TMax_Crashes = 15; blck_TMax_Crashes = 15;
//blck_MissionTimout = 360; // 40 min //blck_MissionTimout = 360; // 40 min
blck_MinAI_Blue = 1; blck_MinAI_Blue = 3;
blck_MaxAI_Blue = 2; blck_MaxAI_Blue = 5;
blck_AIGrps_Blue = 1; blck_AIGrps_Blue = 1;

View File

@ -13,10 +13,9 @@
*/ */
#define modUsed #define modUsed
//#define DBDserver #define DBDserver
#define wpModeMove #define wpModeMove
#define useAPEX #define useAPEX
#define useDynamicSimulation #define useDynamicSimulation
//#define blck_debugMode //#define blck_debugMode
//#define blck_debugMode3
//#define blck_milServer //#define blck_milServer

View File

@ -1,5 +1,3 @@
private ["_version","_versionDate"]; private ["_version","_versionDate"];
_blck_version = "6.61 Build 70";
_blck_version = "6.59 Build 64"; _blck_versionDate = "8-11-17 9:00 PM";
_blck_versionDate = "6-12-17 9:00 AM";

View File

@ -0,0 +1,433 @@
/*
Generic Mission Spawner
for DBD Clan
By Ghostrider-DBD-
Copyright 2016
Last modified 4/11/17
--------------------------
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";
private ["_abort","_crates","_aiGroup","_objects","_groupPatrolRadius","_missionLandscape","_mines","_blck_AllMissionAI","_blck_localMissionMarker","_AI_Vehicles","_timeOut","_aiDifficultyLevel"];
params["_coords","_mission",["_allowReinforcements",true]];
diag_log format["_missionSpawner (18):: _allowReinforcements = %1",_allowReinforcements];
////////
// set all variables needed for the missions
// data is pulled either from the mission description or from the _mission variable passsed as a parameter
// Deal with situations where some of these variables might not be defined as well.
////////
// _mission params[_missionListOrange,_pathOrange,"OrangeMarker","orange",blck_TMin_Orange,blck_TMax_Orange];
_markerClass = _mission select 2;
_aiDifficultyLevel = _mission select 3;
if (blck_debugLevel > 0) then {diag_log format["_fnc_mainThread:: -->> _markerClass = %1",_markerClass];};
[_mission,"active",_coords] call blck_fnc_updateMissionQue;
blck_ActiveMissionCoords pushback _coords;
diag_log format["[blckeagls] missionSpawner (17):: Initializing mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
private["_chanceHeliPatrol","_noPara","_reinforcementLootCounts","_chanceLoot","_heliCrew","_loadCratesTiming"];
if (isNil "_markerColor") then {_markerColor = "ColorBlack"};
if (isNil "_markerType") then {_markerType = ["mil_box",[]]};
//if (isNil "_timeOut") then {_timeOut = -1;};
if (isNil "_loadCratesTiming") then {_loadCratesTiming = blck_loadCratesTiming}; // valid choices are "atMissionCompletion" and "atMissionSpawn";
private["_useMines","_blck_AllMissionAI","_delayTime","_groupPatrolRadius"];
if (isNil "_useMines") then {_useMines = blck_useMines;};
_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
{
//diag_log "labeling map markers *****";
_blck_localMissionMarker set [2, _markerMissionName];
};
if !(blck_preciseMapMarkers) then
{
//diag_log "Map marker will be OFFSET from the mission position";
_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?
if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (91) message players and spawn a mission marker";};
[["start",_startMsg,_blck_localMissionMarker select 2]] call blck_fnc_messageplayers;
[_blck_localMissionMarker] execVM "debug\spawnMarker.sqf";
#ifdef blck_debugMode
if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (94) waiting for player to trigger the mission";};
#endif
////////
// All parameters are defined, lets wait until a player is nearby or the mission has timed out
////////
private["_wait","_missionStartTime","_playerInRange","_missionTimedOut"];
_missionStartTime = diag_tickTime;
_playerInRange = false;
_missionTimedOut = false;
_wait = true;
if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (105) starting mission trigger loop"};
while {_wait} do
{
#ifdef blck_debugMode
//diag_log "missionSpawner:: top of mission trigger loop";
if (blck_debugLevel > 2) exitWith {_playerInRange = true;};
#endif
if ([_coords, blck_TriggerDistance, false] call blck_fnc_playerInRange) exitWith {_playerInRange = true;};
if ([_missionStartTime] call blck_fnc_timedOut) exitWith {_missionTimedOut = true;};
uiSleep 5;
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format["missionSpawner:: Trigger Loop - blck_debugLevel = %1 and _coords = %2",blck_debugLevel, _coords];
diag_log format["missionSpawner:: Trigger Loop - players in range = %1",{isPlayer _x && _x distance2D _coords < blck_TriggerDistance} count allPlayers];
diag_log format["missionSpawner:: Trigger Loop - timeout = %1", [_missionStartTime] call blck_fnc_timedOut];
};
#endif
};
if (_missionTimedOut) exitWith
{
/*
*/
// Deal with the case in which the mission timed out.
//["timeOut",_endMsg,_blck_localMissionMarker select 2] call blck_fnc_messageplayers;
blck_recentMissionCoords pushback [_coords,diag_tickTime];
blck_ActiveMissionCoords = blck_ActiveMissionCoords - [ _coords];
[_mission,"inactive",[0,0,0]] call blck_fnc_updateMissionQue;
blck_missionsRunning = blck_missionsRunning - 1;
[_blck_localMissionMarker select 0] call compile preprocessfilelinenumbers "debug\deleteMarker.sqf";
//_blck_localMissionMarker set [1,[0,0,0]];
//_blck_localMissionMarker set [2,""];
[_objects, 0.1] spawn blck_fnc_cleanupObjects;
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (105) Mission Timed Out: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
};
////////
// Spawn the mission objects, loot chest, and AI
////////
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (112) -- >> Mission tripped: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
if (count _missionLootBoxes > 0) then
{
_crates = [_coords,_missionLootBoxes,_loadCratesTiming] call blck_fnc_spawnMissionCrates;
}
else
{
_crates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_crateLoot,_lootCounts]], _loadCratesTiming] call blck_fnc_spawnMissionCrates;
};
if (blck_cleanUpLootChests) then
{
_objects append _crates;
};
//uisleep 2;
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (136) Crates Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
private ["_temp"];
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 = [];
if (_missionLandscapeMode isEqualTo "random") then
{
_temp = [_coords,_missionLandscape, 3, 15, 2] call blck_fnc_spawnRandomLandscape;
} else {
_temp = [_coords, floor(random(360)),_missionLandscape,true] call blck_fnc_spawnCompositionObjects;
//uiSleep 1;
};
if (typeName _temp isEqualTo "ARRAY") then
{
_objects append _temp;
};
//diag_log format["_fnc_missionSpawner:: (181)->> _objects = %1",_objects];
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (170) Landscape spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
uiSleep _delayTime;;
_temp = [_missionLootVehicles] call blck_fnc_spawnMissionLootVehicles;
//uisleep 1;
_crates append _temp;
uiSleep _delayTime;
_abort = false;
_temp = [[],[],false];
_temp = [_coords, _minNoAI,_maxNoAI,_aiDifficultyLevel,_uniforms,_headGear] call blck_fnc_spawnMissionAI;
//[_coords, _minNoAI,_maxNoAI,_aiDifficultyLevel,_uniforms,_headGear] call blck_fnc_spawnMissionAI;
#ifdef blck_debugMode
if (blck_debugLevel > 2) then {
diag_log format["missionSpawner :: (185) blck_fnc_spawnMissionAI returned a value of _temp = %1",_temp]; uiSleep 1;
};
_abort = _temp select 1;
if (blck_debugLevel > 2) then {
diag_log format["missionSpawner :: (190) blck_fnc_spawnMissionAI returned a value of _abort = %1",_abort]; uiSleep 1;
};
#endif
if (_abort) exitWith
{
if (blck_debugLevel > 1) then {
diag_log "missionSpawner:: (194) grpNull returned, mission termination criteria met, calling blck_fnc_endMission"
};
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,true] call blck_fnc_endMission;
};
if !(_abort) then
{
_blck_AllMissionAI append (_temp select 0);
};
uiSleep _delayTime;
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (202) AI Patrols Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
_temp = [[],[],false];
_abort = false;
private["_patrolVehicles"];
if (blck_useVehiclePatrols && (_noVehiclePatrols > 0)) then
{
_temp = [_coords,_noVehiclePatrols,_aiDifficultyLevel,_uniforms,_headGear,_markerClass] call blck_fnc_spawnMissionVehiclePatrols;
//[_coords,_noVehiclePatrols,_aiDifficultyLevel,_uniforms,_headGear,_markerClass] call blck_fnc_spawnMissionVehiclePatrols;
#ifdef blck_debugMode
if (blck_debugLevel > 1) then {
diag_log format["missionSpawner :: (216) blck_fnc_spawnMissionVehiclePatrols returned _temp = %1",_temp];
};
#endif
if (typeName _temp isEqualTo "ARRAY") then
{
_abort = _temp select 2;
};
if !(_abort) then
{
_patrolVehicles = _temp select 0;
_blck_AllMissionAI append (_temp select 1);
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (272) Vehicle Patrols Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
};
};
if (_abort) exitWith
{
#ifdef blck_debugMode
if (blck_debugLevel > 0) then {
diag_log "missionSpawner:: (222) grpNull returned, mission termination criteria met, calling blck_endMission";
};
#endif
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,true] call blck_fnc_endMission;
};
uiSleep _delayTime;
_temp = [[],[],false];
_abort = false;
#ifdef blck_debugMode
if (blck_debugLevel > 0) then {diag_log format["missionSpawner:: (234) preparing to spawn emplaced weapons for _coords %4 | _markerClass %3 | blck_useStatic = %1 | _noEmplacedWeapons = %2",blck_useStatic,_noEmplacedWeapons,_markerClass,_coords];};
#endif
if (blck_useStatic && (_noEmplacedWeapons > 0)) then
{
// params["_missionEmplacedWeapons","_noEmplacedWeapons","_aiDifficultyLevel","_coords","_uniforms","_headGear"];
_temp = [_missionEmplacedWeapons,_noEmplacedWeapons,_aiDifficultyLevel,_coords,_uniforms,_headGear] call blck_fnc_spawnEmplacedWeaponArray;
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format ["missionSpawner:: (232) blck_fnc_spawnEmplacedWeaponArray returned _temp = %1",_temp];
};
#endif
if (typeName _temp isEqualTo "ARRAY") then
{
_abort = _temp select 2;
};
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format ["missionSpawner:: (241) _abort = %1",_abort];
};
#endif
if !(_abort) then
{
_objects append (_temp select 0);
_blck_AllMissionAI append (_temp select 1);
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (253) Static Weapons Spawned: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
};
};
if (_abort) exitWith
{
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log "missionSpawner:: (261) grpNull ERROR in blck_fnc_spawnEmplacedWeaponArray, mission termination criteria met, calling blck_endMission";
};
#endif
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,true,_patrolVehicles] call blck_fnc_endMission;
};
if (_allowReinforcements) then
{
_weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout;
temp = [];
#ifdef blck_debugMode
if (blck_debugLevel > 1) then
{
diag_log format["[blckeagls] missionSpawner:: (268) calling in reinforcements: Current mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
};
#endif
//params["_coords","_aiSkillsLevel","_weapons","_uniforms","_headgear"];
_temp = [_coords,_aiDifficultyLevel,_weaponList,_uniforms,_headGear] call blck_fnc_spawnMissionReinforcements;
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log format["missionSpawner:: _temp = %1",_temp];
};
#endif
if (typeName _temp isEqualTo "ARRAY") then
{
_abort = _temp select 2;
_objects pushback (_temp select 0);
_blck_AllMissionAI append (_temp select 1);
};
if (_abort) then
{
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log "missionSpawner:: (276) grpNul or ERROR in blck_fnc_spawnMissionReinforcements, mission termination criteria met, calling blck_endMission";
};
#endif
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,true,_patrolVehicles] call blck_fnc_endMission;
};
};
// Trigger for mission end
//diag_log format["[blckeagls] mission Spawner _endCondition = %1",_endCondition];
private["_missionComplete","_endIfPlayerNear","_endIfAIKilled"];
_missionComplete = -1;
_startTime = diag_tickTime;
switch (_endCondition) do
{
case "playerNear": {_endIfPlayerNear = true;_endIfAIKilled = false;};
case "allUnitsKilled": {_endIfPlayerNear = false;_endIfAIKilled = true;};
case "allKilledOrPlayerNear": {_endIfPlayerNear = true;_endIfAIKilled = true;};
};
//diag_log format["missionSpawner :: (269) _endIfPlayerNear = %1 _endIfAIKilled= %2",_endIfPlayerNear,_endIfAIKilled];
private["_locations"];
_locations = [_coords];
{
_locations pushback (getPos _x);
} forEach _crates;
//diag_log format["missionSpawner:: _coords = %1 | _crates = %2 | _locations = %3",_coords,_crates,_locations];
//diag_log format["missionSpawner:: Waiting for player to satisfy mission end criteria of _endIfPlayerNear %1 with _endIfAIKilled %2",_endIfPlayerNear,_endIfAIKilled];
while {_missionComplete isEqualTo -1} do
{
//if (blck_debugLevel isEqualTo 3) exitWith {uiSleep 300};
if ((_endIfPlayerNear) && [_locations,10,true] call blck_fnc_playerInRangeArray) exitWith {};
if ((_endIfAIKilled) && ({alive _x} count _blck_AllMissionAI) < 1 /*[_blck_AllMissionAI] call blck_fnc_missionAIareDead*/ ) exitWith {};
//diag_log format["missionSpawner:: (283) missionCompleteLoop - > players near = %1 and ai alive = %2",[_coords,20] call blck_fnc_playerInRange, {alive _x} count _blck_AllMissionAI];
uiSleep 4;
};
#ifdef blck_debugMode
if (blck_debugLevel > 0) then
{
diag_log format["[blckeagls] missionSpawner:: (414) Mission completion criteria fulfilled: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
diag_log format["missionSpawner :: (415) _endIfPlayerNear = %1 _endIfAIKilled= %2",_endIfPlayerNear,_endIfAIKilled];
};
#endif
//diag_log format["[blckeagls] missionSpawner:: (418) calling endMission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
private["_result"];
_result = [_mines,_objects,_crates,_blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,false,_patrolVehicles] call blck_fnc_endMission;
//diag_log format["[blckeagls] missionSpawner:: (420)end of mission: blck_fnc_endMission returned value of %1","pending"];

View File

@ -349,7 +349,7 @@ if (_abort) exitWith
if (_allowReinforcements) then if (_allowReinforcements) then
{ {
_weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout; _weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout;
temp = []; _temp = [];
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 1) then if (blck_debugLevel > 1) then
@ -357,34 +357,47 @@ if (_allowReinforcements) then
diag_log format["[blckeagls] missionSpawner:: (268) calling in reinforcements: Current mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName]; diag_log format["[blckeagls] missionSpawner:: (268) calling in reinforcements: Current mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
}; };
#endif #endif
private _noChoppers = 3;
switch (toLower _aiDifficultyLevel) do
{
case "blue":{_noChoppers = blck_noPatrolHelisBlue};
case "red":{_noChoppers = blck_noPatrolHelisRed};
case "green":{_noChoppers = blck_noPatrolHelisGreen};
case "orange":{_noChoppers = blck_noPatrolHelisOrange};
};
//params["_coords","_aiSkillsLevel","_weapons","_uniforms","_headgear"]; for "_i" from 1 to (_noChoppers) do
_temp = [_coords,_aiDifficultyLevel,_weaponList,_uniforms,_headGear] call blck_fnc_spawnMissionReinforcements;
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{ {
diag_log format["missionSpawner:: _temp = %1",_temp]; //params["_coords","_aiSkillsLevel","_weapons","_uniforms","_headgear"];
};
#endif _temp = [_coords,_aiDifficultyLevel,_weaponList,_uniforms,_headGear] call blck_fnc_spawnMissionReinforcements;
if (typeName _temp isEqualTo "ARRAY") then #ifdef blck_debugMode
{ if (blck_debugLevel >= 2) then
_abort = _temp select 2;
_objects pushback (_temp select 0);
_blck_AllMissionAI append (_temp select 1);
};
if (_abort) then
{
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{ {
diag_log "missionSpawner:: (276) grpNul or ERROR in blck_fnc_spawnMissionReinforcements, mission termination criteria met, calling blck_endMission"; diag_log format["missionSpawner:: blck_fnc_spawnMissionReinforcements call for chopper # %1 out of a total of %2 choppers",_i, _noChoppers];
diag_log format["missionSpawner:: _temp = %1",_temp];
}; };
#endif #endif
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,true,_patrolVehicles] call blck_fnc_endMission; if (typeName _temp isEqualTo "ARRAY") then
{
_abort = _temp select 2;
_objects pushback (_temp select 0);
_blck_AllMissionAI append (_temp select 1);
};
if (_abort) then
{
#ifdef blck_debugMode
if (blck_debugLevel > 2) then
{
diag_log "missionSpawner:: (276) grpNul or ERROR in blck_fnc_spawnMissionReinforcements, mission termination criteria met, calling blck_endMission";
};
#endif
[_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_blck_localMissionMarker,_coords,_mission,true,_patrolVehicles] call blck_fnc_endMission;
};
}; };
}; };
// Trigger for mission end // Trigger for mission end

View File

@ -0,0 +1,75 @@
/*
By Ghostrider-DbD-
--------------------------
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";
params["_coords","_grpPilot","_chanceLoot"];
_chopperType = selectRandom blck_AIHelis;
_grpPilot setVariable["groupVehicle",_chopperType];
#ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: _chopperType seleted = %1",_chopperType];
#endif
_spawnVector = round(random(360));
_spawnDistance = 1000; // + floor(random(1500)); // We need the heli to be on-site quickly to minimize the chance that a small mission has been completed before the paratroops are deployed and added to the list of live AI for the mission
_dropLoot = (random(1) < _chanceLoot);
// Use the new functionality of getPos
// https://community.bistudio.com/wiki/getPos
_spawnPos = _coords getPos [_spawnDistance,_spawnVector];
#ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: vector was %1 with distance %2 yielding a spawn position of %3 at distance from _coords of %4",_spawnVector,_spawnDistance,_spawnPos, (_coords distance2d _spawnPos)];
#endif
_grpPilot setBehaviour "CARELESS";
_grpPilot setCombatMode "RED";
_grpPilot setSpeedMode "FULL";
_grpPilot allowFleeing 0;
private["_supplyHeli"];
//create helicopter and spawn it
_supplyHeli = createVehicle [_chopperType, _spawnPos, [], 90, "FLY"];
blck_monitoredVehicles pushback _supplyHeli;
[_supplyHeli] call blck_fnc_protectVehicle;
_supplyHeli setVariable["vehicleGroup",_grpPilot];
_supplyHeli setDir (_spawnVector -180);
_supplyHeli setFuel 1;
_supplyHeli engineOn true;
_supplyHeli flyInHeight 250;
_supplyHeli setVehicleLock "LOCKED";
_supplyHeli addEventHandler ["GetOut",{(_this select 0) setFuel 0;(_this select 0) setDamage 1;}];
clearWeaponCargoGlobal _supplyHeli;
clearMagazineCargoGlobal _supplyHeli;
clearItemCargoGlobal _supplyHeli;
clearBackpackCargoGlobal _supplyHeli;
_unitPilot = _grpPilot createUnit ["I_helipilot_F", getPos _supplyHeli, [], 0, "FORM"];
_unitPilot setSkill 1;
_unitPilot assignAsDriver _supplyHeli;
_unitPilot moveInDriver _supplyHeli;
_grpPilot selectLeader _unitPilot;
_grpPilot setVariable["paraGroup",_paraGroup];
#ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: heli spawned and pilot added"];
#endif
//set waypoint for helicopter
//params["_pos","_minDis","_maxDis","_group",["_mode","random"],["_wpPatrolMode","SAD"],["_soldierType","null"] ];
[_coords,25,40,_grpPilot,"random","SAD","helicpoter"] spawn blck_fnc_setupWaypoints;
#ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: initial pilot waypoints set"];
#endif
_supplyHeli allowDamage true;
_supplyHeli

View File

@ -14,7 +14,7 @@ params["_coords","_grpPilot","_chanceLoot"];
_chopperType = selectRandom blck_AIHelis; _chopperType = selectRandom blck_AIHelis;
_grpPilot setVariable["groupVehicle",_chopperType]; _grpPilot setVariable["groupVehicle",_chopperType];
#ifdef blck_debugMode #ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: _chopperType seleted = %1",_chopperType]; diag_log format["_fnc_spawnMissionHeli:: _chopperType seleted = %1",_chopperType];
#endif #endif
_spawnVector = round(random(360)); _spawnVector = round(random(360));
@ -26,7 +26,7 @@ _dropLoot = (random(1) < _chanceLoot);
_spawnPos = _coords getPos [_spawnDistance,_spawnVector]; _spawnPos = _coords getPos [_spawnDistance,_spawnVector];
#ifdef blck_debugMode #ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: vector was %1 with distance %2 yielding a spawn position of %3 at distance from _coords of %4",_spawnVector,_spawnDistance,_spawnPos, (_coords distance2d _spawnPos)]; diag_log format["_fnc_spawnMissionHeli:: vector was %1 with distance %2 yielding a spawn position of %3 at distance from _coords of %4",_spawnVector,_spawnDistance,_spawnPos, (_coords distance2d _spawnPos)];
#endif #endif
_grpPilot setBehaviour "CARELESS"; _grpPilot setBehaviour "CARELESS";
@ -61,7 +61,7 @@ _grpPilot selectLeader _unitPilot;
_grpPilot setVariable["paraGroup",_paraGroup]; _grpPilot setVariable["paraGroup",_paraGroup];
#ifdef blck_debugMode #ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: heli spawned and pilot added"]; diag_log format["_fnc_spawnMissionHeli:: heli spawned and pilot added"];
#endif #endif
//set waypoint for helicopter //set waypoint for helicopter
@ -69,7 +69,7 @@ diag_log format["_fnc_missionSpawner:: heli spawned and pilot added"];
[_coords,25,40,_grpPilot,"random","SAD","helicpoter"] spawn blck_fnc_setupWaypoints; [_coords,25,40,_grpPilot,"random","SAD","helicpoter"] spawn blck_fnc_setupWaypoints;
#ifdef blck_debugMode #ifdef blck_debugMode
diag_log format["_fnc_missionSpawner:: initial pilot waypoints set"]; diag_log format["_fnc_spawnMissionHeli:: initial pilot waypoints set"];
#endif #endif
_supplyHeli allowDamage true;
_supplyHeli _supplyHeli

View File

@ -13,9 +13,13 @@
*/ */
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\Configs\blck_defines.hpp";
if (blck_debugON) then {diag_log "[blckeagls] Loading blck_configs.sqf";};
#ifdef blck_milServer
execVM "\q\addons\custom_server\Configs\blck_configs_mil.sqf";
if (true) exitWith {};
#endif
diag_log "[blckeagls] Loading configurations for Non-militarized servers: blck_configs.sqf";
/* /*
Configuration for Addons that support the overall Mission system. Configuration for Addons that support the overall Mission system.
These are a module to spawn map addons generated with the Eden Editor These are a module to spawn map addons generated with the Eden Editor
@ -23,11 +27,11 @@
A time acceleration module. A time acceleration module.
*/ */
blck_spawnMapAddons = false; // When true map addons will be spawned based on parameters define in custum_server\MapAddons\MapAddons_init.sqf blck_spawnMapAddons = true; // When true map addons will be spawned based on parameters define in custum_server\MapAddons\MapAddons_init.sqf
blck_spawnStaticLootCrates = false; // When true, static loot crates will be spawned and loaded with loot as specified in custom_server\SLS\SLS_init_Epoch.sqf (or its exile equivalent). blck_spawnStaticLootCrates = true; // When true, static loot crates will be spawned and loaded with loot as specified in custom_server\SLS\SLS_init_Epoch.sqf (or its exile equivalent).
// Note that you can define map-specific variants in custom_server\configs\blck_custom_config.sqf // Note that you can define map-specific variants in custom_server\configs\blck_custom_config.sqf
blck_useTimeAcceleration = false; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below. blck_useTimeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
blck_timeAccelerationDay = 1; // Daytime time accelearation blck_timeAccelerationDay = 1; // Daytime time accelearation
blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation
blck_timeAccelerationNight = 8; // Nighttim time acceleration blck_timeAccelerationNight = 8; // Nighttim time acceleration
@ -52,7 +56,7 @@
/////////////////////////////// ///////////////////////////////
// Kill message configurations // Kill message configurations
// These determine whether and when messages are sent to players regarding AI Kills or illegal kills that might damage a vehicle. // These determine whether and when messages are sent to players regarding AI Kills or illegal kills that might damage a vehicle.
blck_useKillMessages = false; // when true a message will be broadcast to all players each time an AI is killed; may impact server performance. blck_useKillMessages = true; // when true a message will be broadcast to all players each time an AI is killed; may impact server performance.
blck_useKillScoreMessage = true; // when true a tile is displayed to the killer with the kill score information blck_useKillScoreMessage = true; // when true a tile is displayed to the killer with the kill score information
blck_useIEDMessages = true; // Displayes a message when a player vehicle detonates and IED (such as would happen if a player killed AI with a forbidden weapon). blck_useIEDMessages = true; // Displayes a message when a player vehicle detonates and IED (such as would happen if a player killed AI with a forbidden weapon).
@ -88,10 +92,10 @@
blck_VK_Gear = true; // When set to true, AI that have been killed by a player in a vehicle in the list of forbidden vehicles or using a forbiden gun will be stripped of gear and the vehicle will be given blck_RunGearDamage of damage blck_VK_Gear = true; // When set to true, AI that have been killed by a player in a vehicle in the list of forbidden vehicles or using a forbiden gun will be stripped of gear and the vehicle will be given blck_RunGearDamage of damage
blck_VK_RunoverDamage = true; // when the AI was run over blck_RunGearDamage of damage will be applied to the killer's vehicle. blck_VK_RunoverDamage = true; // when the AI was run over blck_RunGearDamage of damage will be applied to the killer's vehicle.
blck_VK_GunnerDamage = true; // when the AI was killed by a gunner on a vehicle that is is in the list of forbidden vehicles, blck_RunGearDamage of damage will be applied to the killer's vehicle each time an AI is killed with a vehicle's gun. blck_VK_GunnerDamage = true; // when the AI was killed by a gunner on a vehicle that is is in the list of forbidden vehicles, blck_RunGearDamage of damage will be applied to the killer's vehicle each time an AI is killed with a vehicle's gun.
blck_forbidenVehicles = ["B_MRAP_01_hmg_F","O_MRAP_02_hmg_F"]; // Add any vehicles for which you wish to forbid vehicle kills blck_forbidenVehicles = [/*"B_MRAP_01_hmg_F","O_MRAP_02_hmg_F","I_MRAP_03_hmg_F","B_MRAP_01_hmg_F","O_MRAP_02_hmg_F"*/]; // Add any vehicles for which you wish to forbid vehicle kills
// For a listing of the guns mounted on various land vehicles see the following link: https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Vehicle_Weapons // For a listing of the guns mounted on various land vehicles see the following link: https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Vehicle_Weapons
// HMG_M2 is mounted on the armed offroad that is spawned by Epoch // HMG_M2 is mounted on the armed offroad that is spawned by Epoch
blck_forbidenVehicleGuns = ["LMG_RCWS","LMG_M200","HMG_127","HMG_127_APC",/*"HMG_M2",*/"HMG_NSVT","GMG_40mm","GMG_UGV_40mm","autocannon_40mm_CTWS","autocannon_30mm_CTWS","autocannon_35mm","LMG_coax","autocannon_30mm","HMG_127_LSV_01"]; // Add any vehicles for which you wish to forbid vehicle kills, o blck_forbidenVehicleGuns = [/*"LMG_RCWS","LMG_M200","HMG_127","HMG_127_APC","HMG_M2","HMG_NSVT","GMG_40mm","GMG_UGV_40mm","autocannon_40mm_CTWS","autocannon_30mm_CTWS","autocannon_35mm","LMG_coax","autocannon_30mm","HMG_127_LSV_01"*/]; // Add any vehicles for which you wish to forbid vehicle kills, o
/////////////////////////////// ///////////////////////////////
@ -108,17 +112,17 @@
// AI paratrooper reinforcement paramters // AI paratrooper reinforcement paramters
// The behavior of these can be linked to some degree to the spawning of patrolling helis. // The behavior of these can be linked to some degree to the spawning of patrolling helis.
// For example, if you always want a helicopter to spawn paratroops set the value 1. // For example, if you always want a helicopter to spawn paratroops set the value 1.
// If you never want helicopters to spawn them set the value to 0. // Recommended that you disable paratroops if using muliple aircraft/vehicle patrols
blck_chanceParaBlue = 0.1; // [0 - 1] set to 0 to deactivate and 1 to always have paratroops spawn over the center of the mission. blck_chanceParaBlue = 0; // [0 - 1] set to 0 to deactivate and 1 to always have paratroops spawn over the center of the mission.
blck_noParaBlue = 3; // [1-N] blck_noParaBlue = 3; // [1-N]
blck_chanceParaRed = 0.3; blck_chanceParaRed = 0;
blck_noParaRed = 3; blck_noParaRed = 3;
blck_chanceParaGreen = 0.4; blck_chanceParaGreen = 0;
blck_noParaGreen = 0.4; blck_noParaGreen = 4;
blck_chanceParaOrange = 0.5; blck_chanceParaOrange = 0;
blck_noParaOrange = 4; blck_noParaOrange = 4;
// Supplemental Loot Parameters. // Supplemental Loot Parameters.
@ -134,6 +138,13 @@
_blck_armed_hurons = ["B_Heli_Transport_03_F","B_Heli_Transport_03_black_F"]; _blck_armed_hurons = ["B_Heli_Transport_03_F","B_Heli_Transport_03_black_F"];
_blck_armed_attackHelis = ["B_Heli_Attack_01_F"]; _blck_armed_attackHelis = ["B_Heli_Attack_01_F"];
_blck_armed_heavyAttackHelis = ["O_Heli_Attack_02_F","O_Heli_Attack_02_black_F"]; _blck_armed_heavyAttackHelis = ["O_Heli_Attack_02_F","O_Heli_Attack_02_black_F"];
_blck_fighters = [
"O_Plane_CAS_02_F", // /ti-199 Neophron (CAS)
"I_Plane_Fighter_03_AA_F", // A-143 Buzzard (AA)
"I_Plane_Fighter_04_F", // A-149 Gryphon
"B_Plane_CAS_01_F", // A-164 Wipeout (CAS)
"B_Plane_Fighter_01_F" // F/A-181 Black Wasp II
];
blck_blacklisted_heli_ammo = ["24Rnd_missiles","24Rnd_PG_missiles","12Rnd_PG_missiles","2Rnd_LG_scalpel","6Rnd_LG_scalpel","8Rnd_LG_scalpel","M_Scalpel_AT ","14Rnd_80mm_rockets","38Rnd_80mm_rockets"]; blck_blacklisted_heli_ammo = ["24Rnd_missiles","24Rnd_PG_missiles","12Rnd_PG_missiles","2Rnd_LG_scalpel","6Rnd_LG_scalpel","8Rnd_LG_scalpel","M_Scalpel_AT ","14Rnd_80mm_rockets","38Rnd_80mm_rockets"];
blck_blacklisted_heli_weapons = ["missiles_SCALPEL","missiles_titan","rockets_Skyfire","missiles_DAGR","missiles_DAR"]; blck_blacklisted_heli_weapons = ["missiles_SCALPEL","missiles_titan","rockets_Skyfire","missiles_DAGR","missiles_DAR"];
@ -142,18 +153,23 @@
// Heli Patrol Settings // Heli Patrol Settings
/////////////////////////////// ///////////////////////////////
blck_chanceHeliPatrolBlue = 0; //[0 - 1] Set to 0 to deactivate and 1 to always have a heli spawn over the mission center and patrol the mission area. The chance of paratroops dropping from the heli is defined by blck_chancePara(Blue|Red|Green|Orange) above. blck_chanceHeliPatrolBlue = 0; //[0 - 1] Set to 0 to deactivate and 1 to always have a heli spawn over the mission center and patrol the mission area.
// The chance of paratroops dropping from the heli is defined by blck_chancePara(Blue|Red|Green|Orange) above.
// Recommend setting the change = 1 if you wish to spawn multiple helis at a mission.
blck_patrolHelisBlue = _blck_littleBirds; blck_patrolHelisBlue = _blck_littleBirds;
blck_noPatrolHelisBlue = 1;
blck_chanceHeliPatrolRed = 0; // 0.4; blck_chanceHeliPatrolRed = 0.1; // 0.4;
blck_patrolHelisRed = _blck_littleBirds; blck_patrolHelisRed = _blck_littleBirds;
blck_noPatrolHelisRed = 1;
blck_chanceHeliPatrolGreen = 0; blck_chanceHeliPatrolGreen = 0.4;
blck_patrolHelisGreen = _blck_littleBirds; blck_patrolHelisGreen = _blck_littleBirds;
blck_noPatrolHelisGreen = 1;
blck_chanceHeliPatrolOrange = 0; blck_chanceHeliPatrolOrange = 0.5;
blck_patrolHelisOrange = _blck_littleBirds; //_blck_armed_hellcats+_blck_armed_orcas; blck_patrolHelisOrange = _blck_armed_hellcats+_blck_armed_orcas;
blck_noPatrolHelisOrange = 1;
//////////////////// ////////////////////
// Enable / Disable Missions // Enable / Disable Missions
@ -228,7 +244,7 @@
blck_useStatic = true; // When true, AI will man static weapons spawned 20-30 meters from the mission center. These are very effective against most vehicles blck_useStatic = true; // When true, AI will man static weapons spawned 20-30 meters from the mission center. These are very effective against most vehicles
blck_killEmptyStaticWeapons = true; // When true, static weapons will have damage set to 1 when the AI manning them is killed. blck_killEmptyStaticWeapons = true; // When true, static weapons will have damage set to 1 when the AI manning them is killed.
blck_staticWeapons = ["B_HMG_01_high_F"/*,"B_GMG_01_high_F","O_static_AT_F"*/]; // [0.50 cal, grenade launcher, AT Launcher] blck_staticWeapons = ["B_HMG_01_high_F","B_GMG_01_high_F"/*,"O_static_AT_F"*/]; // [0.50 cal, grenade launcher, AT Launcher]
//////////////////// ////////////////////
// Mission Static Weapon Settings // Mission Static Weapon Settings
@ -269,7 +285,7 @@
// How precisely player locations will be revealed to AI after an AI kill // How precisely player locations will be revealed to AI after an AI kill
// values are ordered as follows [blue, red, green, orange]; // values are ordered as follows [blue, red, green, orange];
blck_AIAlertDistance = [150,225,250,300]; // Radius within which AI will be notified of enemy activity. Depricated as a group-sed system is used now. The group is informed of the enemy location when a group member is hit or killed. blck_AIAlertDistance = [250,325,450,500]; // Radius within which AI will be notified of enemy activity. Depricated as a group-sed system is used now. The group is informed of the enemy location when a group member is hit or killed.
//blck_AIAlertDistance = [150,225,400,500]; //blck_AIAlertDistance = [150,225,400,500];
// How precisely player locations will be revealed to AI after an AI kill // How precisely player locations will be revealed to AI after an AI kill
// values are ordered as follows [blue, red, green, orange]; // values are ordered as follows [blue, red, green, orange];
@ -341,7 +357,7 @@
blck_MaxAI_Orange = 25; blck_MaxAI_Orange = 25;
blck_AIGrps_Orange = 5; blck_AIGrps_Orange = 5;
blck_SkillsOrange = [ blck_SkillsOrange = [
["aimingAccuracy",0.2],["aimingShake",0.5],["aimingSpeed",0.7],["endurance",1.00],["spotDistance",1.0],["spotTime",0.7],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00] ["aimingAccuracy",0.5],["aimingShake",0.5],["aimingSpeed",0.7],["endurance",1.00],["spotDistance",1.0],["spotTime",0.7],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]
]; ];
// Green Missions // Green Missions
@ -349,7 +365,7 @@
blck_MaxAI_Green = 21; blck_MaxAI_Green = 21;
blck_AIGrps_Green = 4; blck_AIGrps_Green = 4;
blck_SkillsGreen = [ blck_SkillsGreen = [
["aimingAccuracy",0.18],["aimingShake",0.45],["aimingSpeed",0.65],["endurance",0.9],["spotDistance",0.9],["spotTime",0.65],["courage",0.9],["reloadSpeed",0.9],["commanding",0.9],["general",0.75] ["aimingAccuracy",0.4],["aimingShake",0.45],["aimingSpeed",0.65],["endurance",0.9],["spotDistance",0.9],["spotTime",0.65],["courage",0.9],["reloadSpeed",0.9],["commanding",0.9],["general",0.75]
]; ];
// Red Missions // Red Missions
@ -357,7 +373,7 @@
blck_MaxAI_Red = 15; blck_MaxAI_Red = 15;
blck_AIGrps_Red = 3; blck_AIGrps_Red = 3;
blck_SkillsRed = [ blck_SkillsRed = [
["aimingAccuracy",0.16],["aimingShake",0.4],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.6],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70] ["aimingAccuracy",0.3],["aimingShake",0.4],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.6],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70]
]; ];
// Blue Missions // Blue Missions

View File

@ -2,7 +2,7 @@
for DBD Clan for DBD Clan
By Ghostrider-DBD- By Ghostrider-DBD-
Copyright 2016 Copyright 2016
Last Modified 5-21-17 Last Modified 3-14-17
-------------------------- --------------------------
License License
@ -403,14 +403,14 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
blck_medicalItems = ["FAK"]; blck_medicalItems = ["FAK"];
blck_specialItems = blck_throwableExplosives + blck_medicalItems; blck_specialItems = blck_throwableExplosives + blck_medicalItems;
blck_NVG = ["NVG_EPOCH"]; blck_NVG = ["NVG_EPOCH"];
blck_epochValuables = ["PartOreGold","PartOreSilver","PartOre","ItemGoldBar","ItemSilverBar", blck_epochValuables = ["class PartOreGold","cass PartOreSilver","class PartOre","class ItemGoldBar","class ItemSilverBar",
"ItemGoldBar10oz","ItemTopaz","ItemOnyx","ItemSapphire","ItemAmethyst", "class ItemGoldBar10oz","class ItemTopaz","class ItemOnyx","class ItemSapphire","class ItemAmethyst",
"ItemEmerald","ItemCitrine","ItemRuby","ItemQuartz","ItemJade", "class ItemEmerald","class ItemCitrine","class ItemRuby","class ItemQuartz","class ItemJade",
"ItemGarnet","ItemKiloHemp"]; "class ItemGarnet","class ItemKiloHemp"];
blck_epochBuildingSupplies = ["PartPlankPack","CinderBlocks","MortarBucket","ItemScraps", blck_epochBuildingSupplies = ["PartPlankPack","CinderBlocks","MortarBucket","ItemScraps",
"ItemCorrugated","ItemCorrugatedLg","ItemSolar","ItemCables", "ItemCorrugated","ItemCorrugatedLg","ItemSolar","ItemCables",
"ItemBattery","Pelt_EPOCH"]; "ItemBattery","Pelt_EPOCH"];
blck_buildingMaterials = blck_epochBuildingSupplies;
/*************************************************************************************** /***************************************************************************************
DEFAULT CONTENTS OF LOOT CRATES FOR EACH MISSION 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 Note however that these configurations can be used in any way you like or replaced with mission-specific customized loot arrays
@ -842,4 +842,4 @@ for examples of how you can do this see \Major\Compositions.sqf
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. 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] Configurations for Epoch Loaded"; diag_log "[blckeagls] Configurations for Epoch Loaded";
blck_configsEpochLoaded = true; blck_configsEpochLoaded = true;

View File

@ -0,0 +1,868 @@
/*
for DBD Clan
By Ghostrider-DBD-
Copyright 2016
Last Modified 3-14-17
--------------------------
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";
////////////
// Epoch-specific 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 = RESISTANCE;
blck_AIPatrolVehicles = ["B_G_Offroad_01_armed_EPOCH","B_LSV_01_armed_F"]; // Type of vehicle spawned to defend AI bases
#define useAPEX 1
blck_AIPatrolVehicles =
[
//"Exile_Car_Offroad_Armed_Guerilla01",
//"Exile_Car_Offroad_Armed_Guerilla02",
//"Exile_Car_BTR40_MG_Green",
//"Exile_Car_BTR40_MG_Camo",
//"Exile_Car_HMMWV_M134_Green",
//"Exile_Car_HMMWV_M134_Desert",
//"Exile_Car_HMMWV_M134_Desert",
//"Exile_Car_HMMWV_M2_Desert",
//"B_LSV_01_armed_F",
//"_MRAP_02_gmg_ghex_F",
//"O_MRAP_02_hmg_ghex_F",
//"O_MRAP_03_gmg_ghex_F",
"O_MRAP_03_hmg_ghex_F",
"B_MBT_01_cannon_F",
//"B_MBT_01_mlrs_base_F",
"B_MBT_01_mlrs_F",
"B_MBT_01_TUSK_F",
"B_APC_Tracked_01_AA_F",
"B_APC_Tracked_01_CRV_F",
"B_APC_Tracked_01_rcws_F"
]; // Type of vehicle spawned to defend AI bases
// 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_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_baseBackpacks = ["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_baseBackpacks + blck_ApexBackpacks;
#endif
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;
//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 = [
//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_vests = [
"V_1_EPOCH","V_2_EPOCH","V_3_EPOCH","V_4_EPOCH","V_5_EPOCH","V_6_EPOCH","V_7_EPOCH","V_8_EPOCH","V_9_EPOCH","V_10_EPOCH","V_11_EPOCH","V_12_EPOCH","V_13_EPOCH","V_14_EPOCH","V_15_EPOCH","V_16_EPOCH","V_17_EPOCH","V_18_EPOCH","V_19_EPOCH","V_20_EPOCH",
"V_21_EPOCH","V_22_EPOCH","V_23_EPOCH","V_24_EPOCH","V_25_EPOCH","V_26_EPOCH","V_27_EPOCH","V_28_EPOCH","V_29_EPOCH","V_30_EPOCH","V_31_EPOCH","V_32_EPOCH","V_33_EPOCH","V_34_EPOCH","V_35_EPOCH","V_36_EPOCH","V_37_EPOCH","V_38_EPOCH","V_39_EPOCH","V_40_EPOCH",
// DLC Vests
"V_PlateCarrierSpec_blk","V_PlateCarrierSpec_mtp","V_PlateCarrierGL_blk","V_PlateCarrierGL_mtp","V_PlateCarrierIAGL_oli"
];
//CraftingFood
blck_Meats=[
"SnakeCarcass_EPOCH","RabbitCarcass_EPOCH","ChickenCarcass_EPOCH","GoatCarcass_EPOCH","SheepCarcass_EPOCH"
];
blck_Drink = [
"WhiskeyNoodle","ItemSodaOrangeSherbet","ItemSodaPurple","ItemSodaMocha","ItemSodaBurst","ItemSodaRbull","FoodWalkNSons"
];
blck_Food = [
"FoodBioMeat","FoodMeeps","FoodSnooter","FoodWalkNSons","sardines_epoch","meatballs_epoch","scam_epoch","sweetcorn_epoch","honey_epoch","CookedSheep_EPOCH","CookedGoat_EPOCH","SnakeMeat_EPOCH",
"CookedRabbit_EPOCH","CookedChicken_EPOCH","ItemTrout","ItemSeaBass","ItemTuna","TacticalBacon"
];
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_EPOCH"];
blck_epochValuables = ["class PartOreGold","cass PartOreSilver","class PartOre","class ItemGoldBar","class ItemSilverBar",
"class ItemGoldBar10oz","class ItemTopaz","class ItemOnyx","class ItemSapphire","class ItemAmethyst",
"class ItemEmerald","class ItemCitrine","class ItemRuby","class ItemQuartz","class ItemJade",
"class ItemGarnet","class ItemKiloHemp"];
blck_epochBuildingSupplies = ["PartPlankPack","CinderBlocks","MortarBucket","ItemScraps",
"ItemCorrugated","ItemCorrugatedLg","ItemSolar","ItemCables",
"ItemBattery","Pelt_EPOCH"];
blck_buildingMaterials = blck_epochBuildingSupplies;
/***************************************************************************************
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"],
["M14_EPOCH","20Rnd_762x51_Mag"],
["M14Grn_EPOCH","20Rnd_762x51_Mag"],
["M14_EPOCH","20Rnd_762x51_Mag"],
["M14Grn_EPOCH","20Rnd_762x51_Mag"],
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
["m107_EPOCH","5Rnd_127x108_Mag"],
["m107Tan_EPOCH","5Rnd_127x108_Mag"],
["srifle_DMR_01_F","10Rnd_762x51_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_762x51_Box_Tracer"],
["MMG_01_hex_F","150Rnd_93x64_Mag"],
["MMG_01_tan_F","150Rnd_93x64_Mag"],
["MMG_02_black_F","150Rnd_93x64_Mag"],
["MMG_02_camo_F","150Rnd_93x64_Mag"],
["MMG_02_sand_F","150Rnd_93x64_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],
["EnergyPack",2,5],
// 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
],
[ // 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
["CinderBlocks",5,15],
["jerrycan_epoch",1,2],
//["lighter_epoch",0,1],
["CircuitParts",2,3],
["WoodLog_EPOCH",5,10],
["ItemCorrugatedLg",1,6],
["ItemCorrugated",3,10],
["ItemMixOil",1,2],
["MortarBucket",5,10],
["PartPlankPack",10,19],
["ItemLockbox",1,2],
["ItemSolar",1,2],
["ItemCables",1,2],
["ItemBattery",1,2],
["Pelt_EPOCH",1,2],
["EnergyPackLg",1,3]
],
[//Items
["Heal_EPOCH",1,2],["Defib_EPOCH",1,2],["Repair_EPOCH",1,4],["FAK",1,4],["VehicleRepair",1,3],["Rangefinder",1,3],["ItemJade",1,2],["ItemQuartz",1,2],["ItemRuby",1,2],["ItemSapphire",1,2],
["ItemKiloHemp",1,2],["ItemRuby",1,2],["ItemSilverBar",1,2],["ItemEmerald",1,2],["ItemTopaz",1,2],["ItemOnyx",1,2],["ItemSapphire",1,2],["ItemAmethyst",1,2],
["ItemSodaRbull",1,3],["ItemSodaOrangeSherbet",1,3],["ItemSodaPurple",1,3],["ItemSodaMocha",1,3],["ItemSodaBurst",1,3],
["CookedChicken_EPOCH",1,3],["CookedGoat_EPOCH",1,3],["CookedSheep_EPOCH",1,3],["FoodSnooter",1,3],["FoodMeeps",1,3],["FoodBioMeat",1,3],["ItemTuna",1,3],["ItemSeaBass",1,3],["ItemTrout",1,3]
],
[ // 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],["smallbackpack_red_epoch",1,2],["smallbackpack_green_epoch",1,2],["smallbackpack_teal_epoch",1,2],["smallbackpack_pink_epoch",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"],
["M14_EPOCH","20Rnd_762x51_Mag"],
["M14Grn_EPOCH","20Rnd_762x51_Mag"],
["M14_EPOCH","20Rnd_762x51_Mag"],
["M14Grn_EPOCH","20Rnd_762x51_Mag"],
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
["m107_EPOCH","5Rnd_127x108_Mag"],
["m107Tan_EPOCH","5Rnd_127x108_Mag"],
["srifle_DMR_01_F","10Rnd_762x51_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"],
["MMG_01_hex_F","150Rnd_93x64_Mag"],
["srifle_DMR_02_camo_F","10Rnd_338_Mag"],
["srifle_DMR_03_F","10Rnd_338_Mag"],
["srifle_DMR_04_Tan_F","10Rnd_338_Mag"],
["srifle_DMR_05_hex_F","10Rnd_338_Mag"],
["srifle_DMR_06_camo_F","10Rnd_338_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],
["EnergyPack",2,5],
// 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]
],
[ // 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]
],
[
["CinderBlocks",4,12],
["jerrycan_epoch",1,2],
["lighter_epoch",1,1],
["CircuitParts",2,5],
["WoodLog_EPOCH",10,20],
["ItemCorrugatedLg",1,3],
["ItemCorrugated",2,9],
["ItemMixOil",1,2],
["MortarBucket",3,6],
["PartPlankPack",10,12],
["ItemLockbox",1,3],
["ItemSolar",1,2],
["ItemCables",1,2],
["ItemBattery",1,2],
["Pelt_EPOCH",1,2],
["EnergyPackLg",1,3]
],
[//Items
// Format is ["Item name, Minimum number to add, Maximum number to add],
["Heal_EPOCH",1,2],["Defib_EPOCH",1,2],["Repair_EPOCH",1,2],["FAK",1,2],["FAK",1,2],["FAK",1,2],["FAK",1,2],["FAK",1,2],["FAK",1,2],["VehicleRepair",1,3],["Rangefinder",1,3],
["ItemKiloHemp",1,2],["ItemRuby",1,2],["ItemSilverBar",1,2],["ItemGoldBar10oz",1,2],
["ItemSodaRbull",1,3],["ItemSodaOrangeSherbet",1,3],["ItemSodaPurple",1,3],["ItemSodaMocha",1,3],["ItemSodaBurst",1,3],
["CookedChicken_EPOCH",1,3],["CookedGoat_EPOCH",1,3],["CookedSheep_EPOCH",1,3],["FoodSnooter",1,3],["FoodMeeps",1,3],["FoodBioMeat",1,3],["ItemTuna",1,3],["ItemSeaBass",1,3],["ItemTrout",1,3]
],
[ // 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],["smallbackpack_red_epoch",1,2],["smallbackpack_green_epoch",1,2],["smallbackpack_teal_epoch",1,2],["smallbackpack_pink_epoch",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"],
["m16_EPOCH","30Rnd_556x45_Stanag"],
["m16Red_EPOCH","30Rnd_556x45_Stanag"],
["M14_EPOCH","20Rnd_762x51_Mag"],
["M14Grn_EPOCH","20Rnd_762x51_Mag"],
["m4a3_EPOCH","30Rnd_556x45_Stanag"],
["SMG_02_F","30Rnd_9x21_Mag"],
["SMG_01_F","30Rnd_45ACP_Mag_SMG_01"],
["Hgun_PDW2000_F","30Rnd_9x21_Mag"],
["M14_EPOCH","20Rnd_762x51_Mag"],
["M14Grn_EPOCH","20Rnd_762x51_Mag"],
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
["m107_EPOCH","5Rnd_127x108_Mag"],
["m107Tan_EPOCH","5Rnd_127x108_Mag"],
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
["srifle_LRR_F","7Rnd_408_Mag"],
["srifle_EBR_F","20Rnd_762x51_Mag"],
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
["m249_EPOCH","200Rnd_556x45_M249"],
["m249Tan_EPOCH","200Rnd_556x45_M249"],
["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],
["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_AMS_snd",1,3],["optic_KHS_blk",1,3],["optic_KHS_hex",1,3],["optic_KHS_old",1,3],["optic_KHS_tan",1,3]
],
[
["CinderBlocks",2,6],
["jerrycan_epoch",1,3],
["lighter_epoch",1,1],
["CircuitParts",2,3],
["WoodLog_EPOCH",10,20],
["ItemCorrugatedLg",0,4],
["ItemCorrugated",3,6],
["ItemMixOil",1,2],
["MortarBucket",1,8],
["PartPlankPack",10,12],
["ItemLockbox",1,2],
["EnergyPackLg",0,1]
],
[//Items
["Heal_EPOCH",1,2],["Defib_EPOCH",1,2],["Repair_EPOCH",1,2],["FAK",1,5],["VehicleRepair",1,5],
["ItemSodaRbull",1,3],["ItemSodaOrangeSherbet",1,3],["ItemSodaPurple",1,3],["ItemSodaMocha",1,3],["ItemSodaBurst",1,3],
["CookedChicken_EPOCH",1,3],["CookedGoat_EPOCH",1,3],["CookedSheep_EPOCH",1,3],["FoodSnooter",1,3],["FoodMeeps",1,3],["FoodBioMeat",1,3],["ItemTuna",1,3],["ItemSeaBass",1,3],["ItemTrout",1,3]
],
[ // 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],["smallbackpack_red_epoch",0,2],["smallbackpack_green_epoch",0,2],["smallbackpack_teal_epoch",0,2],["smallbackpack_pink_epoch",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"],
["arifle_TRG20_F","30Rnd_556x45_Stanag"],
["m16_EPOCH","30Rnd_556x45_Stanag"],
["m16Red_EPOCH","30Rnd_556x45_Stanag"],
["M14_EPOCH","20Rnd_762x51_Mag"],
["M14Grn_EPOCH","20Rnd_762x51_Mag"],
["m4a3_EPOCH","30Rnd_556x45_Stanag"],
["SMG_02_F","30Rnd_9x21_Mag"],
["SMG_01_F","30Rnd_45ACP_Mag_SMG_01"],
["Hgun_PDW2000_F","30Rnd_9x21_Mag"],
["M14_EPOCH","20Rnd_762x51_Mag"],
["M14Grn_EPOCH","20Rnd_762x51_Mag"],
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
["m107_EPOCH","5Rnd_127x108_Mag"],
["m107Tan_EPOCH","5Rnd_127x108_Mag"],
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
["srifle_LRR_F","7Rnd_408_Mag"],
["srifle_EBR_F","20Rnd_762x51_Mag"],
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
["m249_EPOCH","200Rnd_556x45_M249"],
["m249Tan_EPOCH","200Rnd_556x45_M249"],
["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"],
["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]
],
[
["CinderBlocks",2,7],
["jerrycan_epoch",1,3],
["lighter_epoch",1,1],
["CircuitParts",2,6],
["WoodLog_EPOCH",10,20],
["ItemCorrugatedLg",0,5],
["ItemCorrugated",3,7],
["ItemMixOil",1,2],
["MortarBucket",2,5],
["PartPlankPack",10,12],
["ItemLockbox",1,2],
["EnergyPackLg",0,1]
],
[//Items
["Heal_EPOCH",1,2],["Defib_EPOCH",1,2],["Repair_EPOCH",1,2],["FAK",1,2],["VehicleRepair",1,3],
["ItemSodaRbull",1,3],["ItemSodaOrangeSherbet",1,3],["ItemSodaPurple",1,3],["ItemSodaMocha",1,3],["ItemSodaBurst",1,3],
["CookedChicken_EPOCH",1,3],["CookedGoat_EPOCH",1,3],["CookedSheep_EPOCH",1,3],["FoodSnooter",1,3],["FoodMeeps",1,3],["FoodBioMeat",1,3],["ItemTuna",1,3],["ItemSeaBass",1,3],["ItemTrout",1,3]
],
[ // 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],["smallbackpack_red_epoch",0,2],["smallbackpack_green_epoch",0,2],["smallbackpack_teal_epoch",0,2],["smallbackpack_pink_epoch",0,2]
]
];
// Time the marker remains after completing the mission in seconds - experimental not yet implemented
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] Configurations for Epoch Loaded";
blck_configsEpochLoaded = true;

View File

@ -14,6 +14,12 @@
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\Configs\blck_defines.hpp";
#ifdef blck_milServer
execVM "\q\addons\custom_server\Configs\blck_configs_exile_mil.sqf";
if (true) exitWith {};
#endif
diag_log "[blckeagls] Loading Exile-specific configs for Non-militarized servers: blck_configs_exile.sqf";
//////////// ////////////
// Exile-specific settings // Exile-specific settings
//////////// ////////////
@ -40,8 +46,8 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
**********************************************************************************/ **********************************************************************************/
blck_blacklistSpawns = false; blck_blacklistSpawns = true;
blck_listConcreteMixerZones = false; blck_listConcreteMixerZones = true;
blck_AI_Side = EAST; blck_AI_Side = EAST;
blck_AIPatrolVehicles = ["Exile_Car_Offroad_Armed_Guerilla01","Exile_Car_Offroad_Armed_Guerilla02","Exile_Car_BTR40_MG_Green","Exile_Car_BTR40_MG_Camo","Exile_Car_HMMWV_M134_Green","Exile_Car_HMMWV_M134_Desert",/*"Exile_Car_HMMWV_M134_Desert","Exile_Car_HMMWV_M2_Desert",*/"B_LSV_01_armed_F"]; // Type of vehicle spawned to defend AI bases blck_AIPatrolVehicles = ["Exile_Car_Offroad_Armed_Guerilla01","Exile_Car_Offroad_Armed_Guerilla02","Exile_Car_BTR40_MG_Green","Exile_Car_BTR40_MG_Camo","Exile_Car_HMMWV_M134_Green","Exile_Car_HMMWV_M134_Desert",/*"Exile_Car_HMMWV_M134_Desert","Exile_Car_HMMWV_M2_Desert",*/"B_LSV_01_armed_F"]; // Type of vehicle spawned to defend AI bases
@ -491,6 +497,9 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
blck_specialItems = blck_throwableExplosives + blck_medicalItems; blck_specialItems = blck_throwableExplosives + blck_medicalItems;
blck_NVG = ["NVGoggles","NVGoggles_INDEP","NVGoggles_OPFOR","Exile_Item_XM8"]; blck_NVG = ["NVGoggles","NVGoggles_INDEP","NVGoggles_OPFOR","Exile_Item_XM8"];
blck_buildingMaterials = ["Exile_Item_ExtensionCord","Exile_Item_JunkMetal","Exile_Item_LightBulb","Exile_Item_MetalBoard",
"Exile_Item_MetalPole","Exile_Item_MetalScrews","Exile_Item_Cement","Exile_Item_Sand"];
blck_tools = ["Exile_Item_Matches","Exile_Item_CookingPot","Exile_Melee_Axe","Exile_Melee_SledgeHammmer","Exile_Item_Handsaw","Exile_Item_Pliers"];
/*************************************************************************************** /***************************************************************************************
DEFAULT CONTENTS OF LOOT CRATES FOR EACH MISSION DEFAULT CONTENTS OF LOOT CRATES FOR EACH MISSION

View File

@ -55,11 +55,11 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
//"Exile_Car_HMMWV_M2_Desert", //"Exile_Car_HMMWV_M2_Desert",
//"B_LSV_01_armed_F", //"B_LSV_01_armed_F",
//"_MRAP_02_gmg_ghex_F", //"_MRAP_02_gmg_ghex_F",
"O_MRAP_02_hmg_ghex_F", //"O_MRAP_02_hmg_ghex_F",
"O_MRAP_03_gmg_ghex_F", //"O_MRAP_03_gmg_ghex_F",
"O_MRAP_03_hmg_ghex_F", "O_MRAP_03_hmg_ghex_F",
"B_MBT_01_cannon_F", "B_MBT_01_cannon_F",
"B_MBT_01_mlrs_base_F", //"B_MBT_01_mlrs_base_F",
"B_MBT_01_mlrs_F", "B_MBT_01_mlrs_F",
"B_MBT_01_TUSK_F", "B_MBT_01_TUSK_F",
"B_APC_Tracked_01_AA_F", "B_APC_Tracked_01_AA_F",

View File

@ -108,17 +108,18 @@
// AI paratrooper reinforcement paramters // AI paratrooper reinforcement paramters
// The behavior of these can be linked to some degree to the spawning of patrolling helis. // The behavior of these can be linked to some degree to the spawning of patrolling helis.
// For example, if you always want a helicopter to spawn paratroops set the value 1. // For example, if you always want a helicopter to spawn paratroops set the value 1.
// If you never want helicopters to spawn them set the value to 0. // If you never want paratroops to spawn them set the value to 0.
blck_chanceParaBlue = 0.1; // [0 - 1] set to 0 to deactivate and 1 to always have paratroops spawn over the center of the mission. // Recommended that you disable paratroops if using muliple aircraft/vehicle patrols
blck_chanceParaBlue = 0; // [0 - 1] set to 0 to deactivate and 1 to always have paratroops spawn over the center of the mission.
blck_noParaBlue = 3; // [1-N] blck_noParaBlue = 3; // [1-N]
blck_chanceParaRed = 0.3; blck_chanceParaRed = 0;
blck_noParaRed = 3; blck_noParaRed = 3;
blck_chanceParaGreen = 0.4; blck_chanceParaGreen = 0;
blck_noParaGreen = 0.4; blck_noParaGreen = 4;
blck_chanceParaOrange = 0.5; blck_chanceParaOrange = 0;
blck_noParaOrange = 4; blck_noParaOrange = 4;
// Supplemental Loot Parameters. // Supplemental Loot Parameters.
@ -141,6 +142,16 @@
"B_Plane_CAS_01_F", // A-164 Wipeout (CAS) "B_Plane_CAS_01_F", // A-164 Wipeout (CAS)
"B_Plane_Fighter_01_F" // F/A-181 Black Wasp II "B_Plane_Fighter_01_F" // F/A-181 Black Wasp II
]; ];
/*
_blck_UAVs = [
"I_UAV_02_CAS_F",
"I_UAV_02_F",
"B_UAV_02_CAS_F",
"B_UAV_02_F",,
"O_UAV_02_CAS_F",
"O_UAV_02_F"
];
*/
blck_blacklisted_heli_ammo = []; blck_blacklisted_heli_ammo = [];
blck_blacklisted_heli_weapons = []; blck_blacklisted_heli_weapons = [];
@ -151,16 +162,19 @@
blck_chanceHeliPatrolBlue = 0.2; //[0 - 1] Set to 0 to deactivate and 1 to always have a heli spawn over the mission center and patrol the mission area. The chance of paratroops dropping from the heli is defined by blck_chancePara(Blue|Red|Green|Orange) above. blck_chanceHeliPatrolBlue = 0.2; //[0 - 1] Set to 0 to deactivate and 1 to always have a heli spawn over the mission center and patrol the mission area. The chance of paratroops dropping from the heli is defined by blck_chancePara(Blue|Red|Green|Orange) above.
blck_patrolHelisBlue = _blck_littleBirds; blck_patrolHelisBlue = _blck_littleBirds;
blck_noPatrolHelisBlue = 1;
blck_chanceHeliPatrolRed = 08; // 0.4; blck_chanceHeliPatrolRed = 0.8; // 0.4;
blck_patrolHelisRed = _blck_armed_hellcats+_blck_armed_orcas + _blck_armed_ghosthawks; blck_patrolHelisRed = _blck_armed_hellcats+_blck_armed_orcas + _blck_armed_ghosthawks;
blck_noPatrolHelisRed = 1;
blck_chanceHeliPatrolGreen = 0.9999; blck_chanceHeliPatrolGreen = 0.9999;
blck_patrolHelisGreen = _blck_armed_heavyAttackHelis+_blck_armed_ghosthawks; blck_patrolHelisGreen = _blck_armed_heavyAttackHelis+_blck_armed_ghosthawks;
blck_noPatrolHelisGreen = 2;
blck_chanceHeliPatrolOrange = 0.9999; blck_chanceHeliPatrolOrange = 0.9999;
blck_patrolHelisOrange = _blck_armed_heavyAttackHelis + _blck_fighters; blck_patrolHelisOrange = _blck_armed_heavyAttackHelis + _blck_fighters;
blck_noPatrolHelisOrange = 3;
//////////////////// ////////////////////
// Enable / Disable Missions // Enable / Disable Missions
@ -245,7 +259,7 @@
blck_SpawnEmplaced_Orange = 5; // Number of static weapons at Orange Missions blck_SpawnEmplaced_Orange = 5; // Number of static weapons at Orange Missions
blck_SpawnEmplaced_Green = 4; // Number of static weapons at Green Missions blck_SpawnEmplaced_Green = 4; // Number of static weapons at Green Missions
blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions
blck_SpawnEmplaced_Red = 1; // Number of static weapons at Red Missions blck_SpawnEmplaced_Red = 2; // Number of static weapons at Red Missions
@ -276,7 +290,7 @@
// How precisely player locations will be revealed to AI after an AI kill // How precisely player locations will be revealed to AI after an AI kill
// values are ordered as follows [blue, red, green, orange]; // values are ordered as follows [blue, red, green, orange];
blck_AIAlertDistance = [150,225,250,300]; // Radius within which AI will be notified of enemy activity. Depricated as a group-sed system is used now. The group is informed of the enemy location when a group member is hit or killed. blck_AIAlertDistance = [250,325,450,500]; // Radius within which AI will be notified of enemy activity. Depricated as a group-sed system is used now. The group is informed of the enemy location when a group member is hit or killed.
//blck_AIAlertDistance = [150,225,400,500]; //blck_AIAlertDistance = [150,225,400,500];
// How precisely player locations will be revealed to AI after an AI kill // How precisely player locations will be revealed to AI after an AI kill
// values are ordered as follows [blue, red, green, orange]; // values are ordered as follows [blue, red, green, orange];
@ -303,7 +317,7 @@
blck_MaxAI_Green = 21; blck_MaxAI_Green = 21;
blck_AIGrps_Green = 4; blck_AIGrps_Green = 4;
blck_SkillsGreen = [ blck_SkillsGreen = [
["aimingAccuracy",0.5],["aimingShake",0.75],["aimingSpeed",0.85],["endurance",0.9],["spotDistance",0.9],["spotTime",0.9],["courage",0.9],["reloadSpeed",0.9],["commanding",0.9],["general",0.75] ["aimingAccuracy",0.55],["aimingShake",0.75],["aimingSpeed",0.85],["endurance",0.9],["spotDistance",0.9],["spotTime",0.9],["courage",0.9],["reloadSpeed",0.9],["commanding",0.9],["general",0.75]
]; ];
// Red Missions // Red Missions
@ -311,7 +325,7 @@
blck_MaxAI_Red = 15; blck_MaxAI_Red = 15;
blck_AIGrps_Red = 3; blck_AIGrps_Red = 3;
blck_SkillsRed = [ blck_SkillsRed = [
["aimingAccuracy",0.2],["aimingShake",0.6],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.8],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70] ["aimingAccuracy",0.4],["aimingShake",0.6],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.8],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70]
]; ];
// Blue Missions // Blue Missions
@ -329,13 +343,13 @@
blck_maxMoneyBlue = 20; blck_maxMoneyBlue = 20;
#ifdef DBDserver #ifdef DBDserver
blck_AIAlertDistance = [150,225,250,300]; // Radius within which AI will be notified of enemy activity. Depricated as a group-sed system is used now. The group is informed of the enemy location when a group member is hit or killed. blck_AIAlertDistance = [250,325,450,500]; // Radius within which AI will be notified of enemy activity. Depricated as a group-sed system is used now. The group is informed of the enemy location when a group member is hit or killed.
//blck_AIAlertDistance = [150,225,400,500]; //blck_AIAlertDistance = [150,225,400,500];
// How precisely player locations will be revealed to AI after an AI kill // How precisely player locations will be revealed to AI after an AI kill
// values are ordered as follows [blue, red, green, orange]; // values are ordered as follows [blue, red, green, orange];
blck_AIIntelligence = [0.3, 0.5, 0.7, 0.9]; blck_AIIntelligence = [0.3, 0.5, 0.7, 0.9];
blck_baseSkill = 0.7; // The overal skill of the AI - range 0.1 to 1.0. blck_baseSkill = 1; // The overal skill of the AI - range 0.1 to 1.0.
/*************************************************************** /***************************************************************
@ -348,7 +362,7 @@
blck_MaxAI_Orange = 35; blck_MaxAI_Orange = 35;
blck_AIGrps_Orange = 5; blck_AIGrps_Orange = 5;
blck_SkillsOrange = [ blck_SkillsOrange = [
["aimingAccuracy",0.4],["aimingShake",0.5],["aimingSpeed",0.7],["endurance",1.00],["spotDistance",1.0],["spotTime",0.7],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00] ["aimingAccuracy",0.6],["aimingShake",0.9],["aimingSpeed",0.9],["endurance",1.00],["spotDistance",1.0],["spotTime",1.0],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]
]; ];
// Green Missions // Green Missions
@ -356,20 +370,20 @@
blck_MaxAI_Green = 31; blck_MaxAI_Green = 31;
blck_AIGrps_Green = 4; blck_AIGrps_Green = 4;
blck_SkillsGreen = [ blck_SkillsGreen = [
["aimingAccuracy",0.3],["aimingShake",0.45],["aimingSpeed",0.65],["endurance",0.9],["spotDistance",0.9],["spotTime",0.65],["courage",0.9],["reloadSpeed",0.9],["commanding",0.9],["general",0.75] ["aimingAccuracy",0.55],["aimingShake",0.75],["aimingSpeed",0.85],["endurance",0.9],["spotDistance",0.9],["spotTime",0.9],["courage",0.9],["reloadSpeed",0.9],["commanding",0.9],["general",0.75]
]; ];
// Red Missions // Red Missions
blck_MinAI_Red = 12; blck_MinAI_Red = 12;
blck_MaxAI_Red = 15; blck_MaxAI_Red = 18;
blck_AIGrps_Red = 3; blck_AIGrps_Red = 3;
blck_SkillsRed = [ blck_SkillsRed = [
["aimingAccuracy",0.2],["aimingShake",0.4],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.6],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70] ["aimingAccuracy",0.4],["aimingShake",0.6],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.8],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70]
]; ];
// Blue Missions // Blue Missions
blck_MinAI_Blue = 8; blck_MinAI_Blue = 8;
blck_MaxAI_Blue = 12; blck_MaxAI_Blue = 14;
blck_AIGrps_Blue = 2; blck_AIGrps_Blue = 2;
blck_SkillsBlue = [ blck_SkillsBlue = [
["aimingAccuracy",0.12],["aimingShake",0.3],["aimingSpeed",0.5],["endurance",0.50],["spotDistance",0.6],["spotTime",0.6],["courage",0.60],["reloadSpeed",0.60],["commanding",0.7],["general",0.60] ["aimingAccuracy",0.12],["aimingShake",0.3],["aimingSpeed",0.5],["endurance",0.50],["spotDistance",0.6],["spotTime",0.6],["courage",0.60],["reloadSpeed",0.60],["commanding",0.7],["general",0.60]
@ -387,7 +401,7 @@
if (_modType isEqualTo "Epoch") then if (_modType isEqualTo "Epoch") then
{ {
diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",_modType]; diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",_modType];
execVM "\q\addons\custom_server\Configs\blck_configs_epoch.sqf"; execVM "\q\addons\custom_server\Configs\blck_configs_epoch_mil.sqf";
waitUntil {(isNil "blck_configsEpochLoaded") isEqualTo false;}; waitUntil {(isNil "blck_configsEpochLoaded") isEqualTo false;};
waitUntil{blck_configsEpochLoaded}; waitUntil{blck_configsEpochLoaded};
blck_configsEpochLoaded = nil; blck_configsEpochLoaded = nil;
@ -397,7 +411,7 @@
if (_modType isEqualTo "Exile") then if (_modType isEqualTo "Exile") then
{ {
diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",_modType]; diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",_modType];
execVM "\q\addons\custom_server\Configs\blck_configs_exile.sqf"; execVM "\q\addons\custom_server\Configs\blck_configs_exile_mil.sqf";
waitUntil {(isNil "blck_configsExileLoaded") isEqualTo false;}; waitUntil {(isNil "blck_configsExileLoaded") isEqualTo false;};
waitUntil{blck_configsExileLoaded}; waitUntil{blck_configsExileLoaded};
blck_configsExileLoaded = nil; blck_configsExileLoaded = nil;

View File

@ -33,14 +33,15 @@ switch (toLower (worldName)) do
case "altis": case "altis":
{ {
blck_timeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below. blck_timeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
blck_timeAccelerationDay = 1.5; // Daytime time accelearation blck_timeAccelerationDay = 0.5; // Daytime time accelearation
blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation
blck_timeAccelerationNight = 8; // Nighttim time acceleration blck_timeAccelerationNight = 8; // Nighttim time acceleration
blck_maxCrashSites = 3;
}; };
case"tanoa": case"tanoa":
{ {
blck_maxCrashSites = 2; blck_maxCrashSites = 2;
blck_timeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below. blck_timeAcceleration = false; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
blck_timeAccelerationDay = 1.4; // Daytime time accelearation blck_timeAccelerationDay = 1.4; // Daytime time accelearation
blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation
blck_timeAccelerationNight = 8; // Nighttim time acceleration blck_timeAccelerationNight = 8; // Nighttim time acceleration
@ -53,10 +54,10 @@ switch (toLower (worldName)) do
blck_enableBlueMissions = -1; blck_enableBlueMissions = -1;
blck_enableHunterMissions = 1; blck_enableHunterMissions = 1;
blck_enableScoutsMissions = -1; blck_enableScoutsMissions = -1;
blck_maxCrashSites = -1; // recommended settings: 3 for Altis, 2 for Tanoa, 1 for smaller maps. Set to -1 to disable blck_maxCrashSites = 1; // recommended settings: 3 for Altis, 2 for Tanoa, 1 for smaller maps. Set to -1 to disable
blck_timeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below. blck_timeAcceleration = false; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
blck_timeAccelerationDay = 2; // Daytime time accelearation blck_timeAccelerationDay = 1; // Daytime time accelearation
blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation
blck_timeAccelerationNight = 8; // Nighttim time acceleration blck_timeAccelerationNight = 8; // Nighttim time acceleration
}; };
@ -83,34 +84,47 @@ switch (toLower (worldName)) do
blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation
blck_timeAccelerationNight = 8; // Nighttim time acceleration blck_timeAccelerationNight = 8; // Nighttim time acceleration
}; };
case "malden":
{
_arr = date call BIS_fnc_sunriseSunsetTime;
_sunrise = _arr select 0;
_sunset = _arr select 1;
_time = dayTime;
_daylight = _sunset - _sunrise;
blck_timeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
blck_timeAccelerationDay = (_daylight / 2.5); // Daytime time accelearation
blck_timeAccelerationDusk = 8; // Dawn/dusk time accelearation
blck_timeAccelerationNight = ((24 - _daylight) / 1.5); // Nighttim time acceleration
};
}; };
if (blck_debugON || (blck_debugLevel isEqualTo 3)) then if (blck_debugON || (blck_debugLevel > 0)) then // These variables are found in \custom_server\compiles\blck_variables.sqf
{ {
// Used primarily for debugging. // Used primarily for debugging.
diag_log "[blckeagls] Debug seting is ON, Custom configurations used"; diag_log "[blckeagls] Debug seting is ON, Custom configurations used";
blck_useTimeAcceleration = false; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below. blck_useTimeAcceleration = false; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below.
blck_timeAccelerationDay = 12; // Daytime time accelearation blck_timeAccelerationDay = 1; // Daytime time accelearation
blck_timeAccelerationDusk = 18; // Dawn/dusk time accelearation blck_timeAccelerationDusk = 18; // Dawn/dusk time accelearation
blck_timeAccelerationNight = 24; // Nighttim time acceleration blck_timeAccelerationNight = 24; // Nighttim time acceleration
blck_mainThreadUpdateInterval = 10; blck_mainThreadUpdateInterval = 10;
blck_enableOrangeMissions = 1; blck_enableOrangeMissions = 1;
blck_enableGreenMissions = 1; blck_enableGreenMissions = -1;
blck_enableRedMissions = 1; blck_enableRedMissions = -1;
blck_enableBlueMissions = 1; blck_enableBlueMissions = -1;
blck_enableHunterMissions = -1; blck_enableHunterMissions = -1;
blck_enableScoutsMissions = -1; blck_enableScoutsMissions = -1;
blck_maxCrashSites = 1; blck_maxCrashSites = -3;
blck_enabeUnderwaterMissions = -1; //blck_enabeUnderwaterMissions = 1;
blck_cleanupCompositionTimer = 10; // Time after mission completion at which items in the composition are deleted. blck_cleanupCompositionTimer = 120; // Time after mission completion at which items in the composition are deleted.
blck_AliveAICleanUpTimer = 10; // Time after mission completion at which any remaining live AI are deleted. blck_AliveAICleanUpTimer = 120; // Time after mission completion at which any remaining live AI are deleted.
blck_bodyCleanUpTimer = 10; blck_bodyCleanUpTimer = 120;
blck_chanceHeliPatrolBlue = 1; //blck_chanceHeliPatrolBlue = 1;
blck_SpawnEmplaced_Orange = 4; // Number of static weapons at Orange Missions blck_SpawnEmplaced_Orange = 4; // Number of static weapons at Orange Missions
blck_SpawnEmplaced_Green = 3; // Number of static weapons at Green Missions blck_SpawnEmplaced_Green = 3; // Number of static weapons at Green Missions
blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions
@ -139,8 +153,8 @@ if (blck_debugON || (blck_debugLevel isEqualTo 3)) then
blck_TMax_Crashes = 15; blck_TMax_Crashes = 15;
//blck_MissionTimout = 360; // 40 min //blck_MissionTimout = 360; // 40 min
blck_MinAI_Blue = 1; blck_MinAI_Blue = 3;
blck_MaxAI_Blue = 2; blck_MaxAI_Blue = 5;
blck_AIGrps_Blue = 1; blck_AIGrps_Blue = 1;

View File

@ -13,10 +13,9 @@
*/ */
#define modUsed #define modUsed
//#define DBDserver #define DBDserver
#define wpModeMove #define wpModeMove
#define useAPEX #define useAPEX
#define useDynamicSimulation #define useDynamicSimulation
//#define blck_debugMode //#define blck_debugMode
//#define blck_debugMode3
//#define blck_milServer //#define blck_milServer

View File

@ -1,5 +1,3 @@
private ["_version","_versionDate"]; private ["_version","_versionDate"];
_blck_version = "6.61 Build 70";
_blck_version = "6.60 Build 69"; _blck_versionDate = "8-11-17 9:00 PM";
_blck_versionDate = "8/11/17 9:00 AM";