Updated for Build 155
This commit is contained in:
parent
91ac249eeb
commit
8d06b9e851
@ -41,7 +41,7 @@ while {true} do
|
||||
_timer5sec = diag_tickTime + 5;
|
||||
[] call blck_fnc_missionGroupMonitor;
|
||||
[] call blck_fnc_sm_missionPatrolMonitor;
|
||||
//[] call blck_fnc_vehiclePatrolPlayerSensor;
|
||||
|
||||
//diag_log format["[blckeagls] _fnc_mainThread 5 Second Timer Handled | Timstamp %1",diag_tickTime];
|
||||
};
|
||||
if (diag_tickTime > _timer20sec) then
|
||||
@ -49,6 +49,7 @@ while {true} do
|
||||
[] call blck_fnc_cleanupAliveAI;
|
||||
[] call blck_fnc_cleanupObjects;
|
||||
[] call blck_fnc_cleanupDeadAI;
|
||||
[] call blck_fnc_scanForPlayersNearVehicles;
|
||||
//[] call blck_fnc_cleanEmptyGroups;
|
||||
_timer20sec = diag_tickTime + 20;
|
||||
//diag_log format["[blckeagls] _fnc_mainThread 20 Second Timer Handled | Timstamp %1",diag_tickTime];
|
||||
|
@ -1,10 +1,8 @@
|
||||
|
||||
|
||||
params["_coords","range"];
|
||||
//diag_log format["_fnc_nearestPlayers: _this = %1",_this];
|
||||
params["_coords","_range"];
|
||||
private["_return","_playerClassNames","_epochClasses","_exileClasses"];
|
||||
_epochClasses = ["Epoch_Female_F","Epoch_Male_F"];
|
||||
_exileClasses = ["Exile_Unit_Player"];
|
||||
if (blck_modType isEqualTo "Epoch") then {_playerClassNames = _epochClasses};
|
||||
if (blck_modType isEqualTo "Exile") then {_playerClassNames = _exileClasses};
|
||||
if (blck_modType isEqualTo "Epoch") then {_playerClassNames = ["Epoch_Female_F","Epoch_Male_F"]};
|
||||
if (blck_modType isEqualTo "Exile") then {_playerClassNames = ["Exile_Unit_Player"]};
|
||||
_return = nearestObjects[_coords,_playerClassNames,_range];
|
||||
_return
|
@ -16,9 +16,11 @@ private["_groupSpawned"];
|
||||
|
||||
_groupSpawned = createGroup [blck_AI_Side, true];
|
||||
//_groupSpawned setVariable["groupVehicle",objNull];
|
||||
#ifdef useDynamicSimulation
|
||||
_groupSpawned enableDynamicSimulation true;
|
||||
#endif
|
||||
if (blck_simulationManager == blck_useDynamicSimulationManagement) then
|
||||
{
|
||||
_groupSpawned enableDynamicSimulation true;
|
||||
};
|
||||
|
||||
_groupSpawned setcombatmode "RED";
|
||||
_groupSpawned setBehaviour "COMBAT";
|
||||
_groupSpawned allowfleeing 0;
|
||||
|
@ -164,28 +164,22 @@ _fn_simulationMonitor = {
|
||||
}else{
|
||||
_playerType = ["Epoch_Male_F","Epoch_Female_F"];
|
||||
};
|
||||
//diag_log format["_fn_simulationMonitor:: _playerType = %1",_playerType];
|
||||
{
|
||||
// player nearEntities [["Car", "Motorcycle", "Tank"], 50];
|
||||
_players = (leader _x) nearEntities [_playerType, 1800];
|
||||
_players = (leader _x) nearEntities [_playerType, blck_simulationEnabledDistance];
|
||||
if (count _players > 0) then
|
||||
{
|
||||
// Be sure simulation is on for all units in the group
|
||||
if !(_x getVariable["blck_simulationStatus",false]) then
|
||||
if !(simulationEnabled _x) then
|
||||
{
|
||||
_x setVariable["blck_simulationStatus",true];
|
||||
{
|
||||
_x enableSimulationGlobal true;
|
||||
(_players select 0) reveal _x; // Force simulation on
|
||||
}forEach (units _x);
|
||||
};
|
||||
}else{
|
||||
// Be sure simulation is off for all units in the group.
|
||||
if !(_x getVariable["blck_simulationStatus",true]) then
|
||||
if (simulationEnabled _x) then
|
||||
{
|
||||
_x setVariable["blck_simulationStatus",false];
|
||||
{
|
||||
_x enableSimulationGlobal false;
|
||||
}forEach (units _x);
|
||||
{_x enableSimulationGlobal false}forEach (units _x);
|
||||
};
|
||||
};
|
||||
} forEach blck_monitoredMissionAIGroups;
|
||||
@ -200,6 +194,5 @@ if (blck_debugLevel > 2) then {diag_log format["_fnc_missionGroupMonitor: execut
|
||||
uiSleep 0.1;
|
||||
[] call _fn_monitorGroupWaypoints;
|
||||
|
||||
#ifndef useDynamicSimulation
|
||||
[] call _fn_simulationMonitor;
|
||||
#endif
|
||||
if (blck_simulationManager == blck_useBlckeaglsSimulationManagement) then {[] call _fn_simulationMonitor};
|
||||
|
||||
|
@ -41,9 +41,9 @@ _staticsSpawned = [];
|
||||
_group = call blck_fnc_create_AI_Group;
|
||||
{
|
||||
_g = _x;
|
||||
{
|
||||
diag_log format["_g %1 = %2",_forEachIndex,_g select _forEachIndex];
|
||||
}forEach _g;
|
||||
//{
|
||||
//diag_log format["_g %1 = %2",_forEachIndex,_g select _forEachIndex];
|
||||
//}forEach _g;
|
||||
// ["Land_Unfinished_Building_02_F",[-28.3966,34.8145,-0.00268841],0,true,true,[["B_HMG_01_high_F",[-5.76953,1.16504,7.21168],360]],[]],
|
||||
_x params["_bldClassName","_bldRelPos","_bldDir","_s","_d","_statics","_men"];
|
||||
//diag_log format["_bldClassName = %1 | _bldRelPos = %2 | _bldDir = %3",_bldClassName,_bldRelPos,_bldDir];
|
||||
@ -53,8 +53,8 @@ _group = call blck_fnc_create_AI_Group;
|
||||
_buildingsSpawned pushBack _building;
|
||||
_staticsSpawned = [_building,_group,_statics,_men,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,"none",_weaponList,_sideArms] call blck_fnc_spawnGarrisonInsideBuilding_ATL;
|
||||
}forEach _garrisonedBuilding_ATLsystem;
|
||||
{
|
||||
diag_log format["__fnc_garrisonBuilding_ATLsystem: %2 = %1",_x select 1, _x select 0];
|
||||
}forEach [ [_buildingsSpawned,"Buildings"],[_staticsSpawned,"Statics"]];
|
||||
//{
|
||||
//diag_log format["__fnc_garrisonBuilding_ATLsystem: %2 = %1",_x select 1, _x select 0];
|
||||
//}forEach [ [_buildingsSpawned,"Buildings"],[_staticsSpawned,"Statics"]];
|
||||
_return = [_group,_buildingsSpawned,_staticsSpawned];
|
||||
_return
|
||||
|
@ -64,6 +64,7 @@ _blck_AllMissionAI = [];
|
||||
_AI_Vehicles = [];
|
||||
_blck_localMissionMarker = [_markerClass,_coords,"","",_markerColor,_markerType];
|
||||
#define delayTime 1
|
||||
#define useRelativePos true
|
||||
|
||||
#ifdef blck_debugMode
|
||||
diag_log "_missionSpawner: All variables initialized";
|
||||
@ -174,14 +175,6 @@ if (blck_debugLevel > 0) then
|
||||
};
|
||||
#endif
|
||||
|
||||
uiSleep delayTime;;
|
||||
|
||||
if (count _missionLootVehicles > 0) then
|
||||
{
|
||||
_temp = [_coords,_missionLootVehicles,_loadCratesTiming] call blck_fnc_spawnMissionLootVehicles;
|
||||
_crates append _temp;
|
||||
};
|
||||
|
||||
uiSleep delayTime;
|
||||
|
||||
_abort = false;
|
||||
@ -364,7 +357,6 @@ if (_abort) exitWith
|
||||
_vehToSpawn = [_noVehiclePatrols] call blck_fnc_getNumberFromRange;
|
||||
if (blck_useVehiclePatrols && ((_vehToSpawn > 0) || count _missionPatrolVehicles > 0)) then
|
||||
{
|
||||
#define useRelativePos true
|
||||
_temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_missionPatrolVehicles,useRelativePos,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnMissionVehiclePatrols;
|
||||
|
||||
if (typeName _temp isEqualTo "ARRAY") then
|
||||
@ -395,6 +387,13 @@ if (_spawnCratesTiming isEqualTo "atMissionSpawnGround") then
|
||||
_objects append _crates;
|
||||
};
|
||||
};
|
||||
uiSleep delayTime;;
|
||||
|
||||
if (count _missionLootVehicles > 0) then
|
||||
{
|
||||
_temp = [_coords,_missionLootVehicles,_loadCratesTiming] call blck_fnc_spawnMissionLootVehicles;
|
||||
_crates append _temp;
|
||||
};
|
||||
if (_noPara > 0 && (random(1) < _chancePara) && _paraTriggerDistance == 0) then
|
||||
{
|
||||
diag_log format["_fnc_missionSpawner (436): spawning %1 paraunits at mission spawn",_noPara];
|
||||
@ -459,6 +458,7 @@ while {_missionComplete isEqualTo -1} do
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 2) exitWith {uiSleep blck_triggerLoopCompleteTime;diag_log "_missionSpawner (492) scripted Mission End blck_debugLevel = 3";};
|
||||
#endif
|
||||
|
||||
if (_endIfPlayerNear) then
|
||||
{
|
||||
if ([_locations,20,true] call blck_fnc_playerInRangeArray) then {_missionComplete = 1};
|
||||
|
@ -16,7 +16,7 @@
|
||||
private ["_unit","_instigator","_group","_wp"];
|
||||
_unit = _this select 0 select 0;
|
||||
_instigator = _this select 0 select 3;
|
||||
|
||||
diag_log format["EH_AIHit:: _units = %1 and _instigator = %2 units damage is %3",_unit,_instigator, damage _unit];
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel >= 2) then
|
||||
{
|
||||
@ -47,8 +47,11 @@ if ((damage _unit) > 0.1 ) then
|
||||
diag_log format["_EH_AIHit::-->> Healing unit %1",_unit];
|
||||
};
|
||||
_unit setVariable["hasHealed",true,true];
|
||||
/*
|
||||
_unit addMagazine "SmokeShellOrange";
|
||||
_unit fire "SmokeShellMuzzle";
|
||||
*/
|
||||
"SmokeShellRed" createVehicle ((position _unit) getPos[3,_unit getRelDir _instigator];
|
||||
_unit addItem "FAK";
|
||||
_unit action ["HealSoldierSelf", _unit];
|
||||
_unit setDamage 0;
|
||||
|
@ -25,10 +25,8 @@ _unit setVariable ["blck_cleanupAt", (diag_tickTime) + blck_bodyCleanUpTimer, tr
|
||||
blck_deadAI pushback _unit;
|
||||
_group = group _unit;
|
||||
[_unit] joinSilent grpNull;
|
||||
if (count(units _group) < 1) then {
|
||||
#ifdef useDynamicSimulation
|
||||
_group enableDynamicSimulation false;
|
||||
#endif
|
||||
if (count(units _group) < 1) then
|
||||
{
|
||||
deleteGroup _group;
|
||||
};
|
||||
if (blck_launcherCleanup) then {[_unit] spawn blck_fnc_removeLaunchers;};
|
||||
|
@ -0,0 +1,52 @@
|
||||
|
||||
/*
|
||||
algorhytm one: pure chance base on inverse of distance. More efficient.
|
||||
algorhythm two: based on canSee. More detailed.
|
||||
*/
|
||||
|
||||
params["_vehicle","_searchRadius","_detectionOdds"];
|
||||
private["_player","_detectionOdds","_nearbyPlayers","_knowsAbout","_cansee","_knowledgeGained"];
|
||||
_nearbyPlayers = [position _vehicle, _vehicle getVariable["blck_vehicleSearchRange",500]] call blck_fnc_nearestPlayers;
|
||||
|
||||
if (blck_revealMode isEqualTo "detailed") then
|
||||
{
|
||||
private["_crew","_group"];
|
||||
_crew = crew _vehicle;
|
||||
_group = group(_crew select 0);
|
||||
{
|
||||
if (random(1) < _detectionOdds) then
|
||||
{
|
||||
_player = _x;
|
||||
{
|
||||
_cansee = [objNull, "VIEW"] checkVisibility [eyePos _x, position _player];
|
||||
if (_cansee > 0) then
|
||||
{
|
||||
_knowledgeGained = _cansee;
|
||||
} else {
|
||||
_knowledgeGained = _x knowsAbout _player;
|
||||
if (_knowledgeGained == 0) then {_knowledgeGained = 0.1};
|
||||
};
|
||||
_x reveal[_player,_knowledgeGained];
|
||||
//diag_log format["_fnc_revealNearbyPlayers: player %1 revealed to unit %2",_player,_x];
|
||||
}forEach _crew;
|
||||
};
|
||||
}forEach _nearbyPlayers;
|
||||
};
|
||||
|
||||
if (blck_revealMode isEqualTo "basic") then
|
||||
{
|
||||
{
|
||||
_player = _x;
|
||||
if (random(1) < _detectionOdds) then
|
||||
{
|
||||
_knowsAbout = (_vehicle) knowsAbout _player;
|
||||
if (_knowsAbout > 0) then
|
||||
{
|
||||
_knowledgeGained = _knowsAbout;
|
||||
} else {
|
||||
_knowledgeGained = (_searchRadius - (_x distance _vehicle))/_searchRadius;
|
||||
};
|
||||
_x reveal[_player, _knowledgeGained];
|
||||
};
|
||||
}forEach _nearbyPlayers;
|
||||
};
|
@ -0,0 +1,9 @@
|
||||
// GMS_fnc_vehiclePlayerSensingLogic.sqf
|
||||
|
||||
// No params
|
||||
private["_searchRadius","_detectionOdds"];
|
||||
{
|
||||
_searchRadius = _x getVariable["blck_vehicleSearchRadius",800];
|
||||
_detectionOdds = _x getVariable["blck_vehiclePlayerDetectionOdds",0.5];
|
||||
[_x,_searchRadius,_detectionOdds] call blck_fnc_revealNearbyPlayers;
|
||||
}forEach blck_monitoredVehicles;
|
@ -21,6 +21,8 @@ if (blck_debugLevel > 1) then {diag_log format["spawnVehicle.sqf: _vehType = %1
|
||||
|
||||
_veh = createVehicle[_vehType, _pos, [], 0, "NONE"];
|
||||
_veh setVariable["blck_vehicle",true];
|
||||
_veh setVariable["blck_vehicleSearchRadius",blck_playerDetectionRangeSurfaceVehicle];
|
||||
_veh setVariable["blck_vehiclePlayerDetectionOdds",blck_vehiclePlayerDetectionOdds];
|
||||
[_veh] call blck_fnc_protectVehicle;
|
||||
|
||||
#ifdef blck_debugMode
|
||||
|
@ -72,7 +72,9 @@ if !(isNull _grpPilot) then
|
||||
#endif
|
||||
|
||||
_patrolHeli = createVehicle [_chopperType, _coords, [], 90, "FLY"];
|
||||
//_grpPilot setVariable["groupVehicle",_patrolHeli];
|
||||
_patrolHeli setVariable["blck_vehicle",true];
|
||||
_patrolHeli setVariable["blck_vehicleSearchRadius",blck_playerDetectionRangeAir];
|
||||
_patrolHeli setVariable["blck_vehiclePlayerDetectionOdds",blck_vehiclePlayerDetectionOdds];
|
||||
[_patrolHeli] call blck_fnc_protectVehicle;
|
||||
_patrolHeli setFuel 1;
|
||||
_patrolHeli engineOn true;
|
||||
|
@ -22,6 +22,8 @@ if (blck_debugLevel > 1) then {diag_log format["spawnVehicle.sqf: _vehType = %1
|
||||
_veh = createVehicle[_vehType, _pos, [], 0, "NONE"];
|
||||
_veh setVariable["blck_vehicle",true];
|
||||
[_veh] call blck_fnc_protectVehicle;
|
||||
_veh setVariable["blck_vehicleSearchRadius",blck_playerDetectionRangeSubs];
|
||||
_veh setVariable["blck_vehiclePlayerDetectionOdds",blck_vehiclePlayerDetectionOdds];
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 1) then {diag_log format["spawnVehicle.sqf:: vehicle spawned is %1",_veh];};
|
||||
|
@ -40,6 +40,9 @@ if !(isNull _group) then
|
||||
_veh = [_vehType,_pos] call blck_fnc_spawnVehicle;
|
||||
// _veh addEventHandler["HandleDamage",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIVehicle_HandleDamage}];
|
||||
_veh addMPEventHandler["MPHit",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIVehicle_HandleHit}];
|
||||
_veh setVariable["blck_vehicleSearchRadius",blck_playerDetectionRangeGroundVehicle];
|
||||
_veh setVariable["blck_vehiclePlayerDetectionOdds",blck_vehiclePlayerDetectionOdds];
|
||||
|
||||
//_group setVariable["groupVehicle",_veh];
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 1) then
|
||||
|
@ -41,7 +41,7 @@ blck_fnc_spawnMissionLootBoxesRelative = compileFinal preprocessFileLineNumbers
|
||||
blck_fnc_spawnSingleObject = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_spawnSingleObject.sqf";
|
||||
blck_fnc_emptyObjectInventory = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_emptyObjectInventory.sqf";
|
||||
blck_fnc_spawnMissionLandscapeRelative = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_spawnMissionLandscapeRelative.sqf";
|
||||
|
||||
blck_fnc_nearestPlayers = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_nearestPlayers.sqf";
|
||||
//blck_fnc_getTraderCitiesEpoch = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_getTraderCitiesEpoch.sqf";
|
||||
//blck_fnc_getTraderCitesExile = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_getTraderCitesExile.sqf";
|
||||
|
||||
@ -123,6 +123,8 @@ blck_fnc_releaseVehicleToPlayers = compileFinal preprocessFileLineNumbers "\q\ad
|
||||
blck_fnc_deleteAIVehicle = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_deleteAIVehicle.sqf";
|
||||
blck_fnc_destroyVehicleAndCrew = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_destroyVehicleAndCrew.sqf";
|
||||
blck_fnc_reloadVehicleAmmo = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_reloadVehicleAmmo.sqf";
|
||||
blck_fnc_scanForPlayersNearVehicles = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_scanForPlayersNearVehicles.sqf";
|
||||
blck_fnc_revealNearbyPlayers = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_revealNearbyPlayers.sqf";
|
||||
|
||||
// functions to support Units
|
||||
blck_fnc_removeGear = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_removeGear.sqf"; // Strip an AI unit of all gear.
|
||||
|
@ -12,8 +12,10 @@
|
||||
*/
|
||||
#include"\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
blck_debugON = true;
|
||||
blck_debugLevel = 0; // Sets level of detail for debugging info - WIP.
|
||||
diag_log "[blckeagls] loading variables";
|
||||
|
||||
// blck_debugON = false; Moved to blck_configs.sqf because of script loading order issues.
|
||||
// blck_debugLevel = 0; Moved to blck_configs.sqf because of script loading order issues.
|
||||
blck_minFPS = 8;
|
||||
|
||||
////////////////////////////////////////////////
|
||||
@ -22,7 +24,6 @@ blck_minFPS = 8;
|
||||
blck_townLocations = []; //nearestLocations [blck_mapCenter, ["NameCity","NameCityCapital"], 30000];
|
||||
blck_ActiveMissionCoords = [];
|
||||
blck_recentMissionCoords = [];
|
||||
blck_locationBlackList = [];
|
||||
blck_monitoredVehicles = [];
|
||||
blck_livemissionai = [];
|
||||
blck_monitoredMissionAIGroups = []; // Used to track groups in active missions for whatever purpose
|
||||
@ -34,20 +35,26 @@ blck_activeMissions = [];
|
||||
blck_deadAI = [];
|
||||
blck_connectedHCs = [];
|
||||
blck_missionMarkers = [];
|
||||
blck_groupsOnHC = [];
|
||||
blck_vehiclesOnHC = [];
|
||||
//blck_groupsOnHC = [];
|
||||
//blck_vehiclesOnHC = [];
|
||||
//blck_HC_monitoredVehicles = [];
|
||||
//blck_HC_monitoredGroups = [];
|
||||
#ifdef useDynamicSimulation
|
||||
"Group" setDynamicSimulationDistance 1800;
|
||||
enableDynamicSimulationSystem true;
|
||||
#endif
|
||||
if (blck_simulationManager == 2) then
|
||||
{
|
||||
"Group" setDynamicSimulationDistance 1800;
|
||||
enableDynamicSimulationSystem true;
|
||||
};
|
||||
|
||||
blck_heliCrashSites = [];
|
||||
|
||||
// radius within whih missions are triggered. The trigger causes the crate and AI to spawn.
|
||||
blck_TriggerDistance = 1000;
|
||||
#ifdef blck_milServer
|
||||
blck_TriggerDistance = 1500;
|
||||
#else
|
||||
blck_TriggerDistance = 1500;
|
||||
#endif
|
||||
|
||||
blck_mainThreadUpdateInterval = 60;
|
||||
//blck_missionSpawning = false;
|
||||
blck_revealMode = "detailed"; //""basic" /*group or vehicle level reveals*/,detailed /*unit by unit reveals*/";
|
||||
diag_log "[blckeagls] Variables Loaded";
|
||||
blck_variablesLoaded = true;
|
||||
|
@ -13,12 +13,23 @@
|
||||
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
/*
|
||||
changing any of these variables may break the mission systemChat
|
||||
*/
|
||||
blck_locationBlackList = []; // Do not touch ...
|
||||
blck_debugON = false; // Do not touch ...
|
||||
blck_debugLevel = 0; // Do not touch ...
|
||||
#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";
|
||||
//diag_log "[blckeagls] Loading configurations for Non-militarized servers: blck_configs.sqf";
|
||||
/*
|
||||
**************************************
|
||||
Configurations begin here
|
||||
**************************************
|
||||
*/
|
||||
/***************************************************************
|
||||
BLCKEAGLS SUPPLEMENTAL MODULES
|
||||
****************************************************************
|
||||
@ -31,6 +42,13 @@
|
||||
|
||||
blck_spawnMapAddons = true; // When true map addons will be spawned based on parameters define in custum_server\MapAddons\MapAddons_init.sqf
|
||||
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).
|
||||
blck_simulationManager = blck_useBlckeaglsSimulationManagement;
|
||||
diag_log format["[blckeagls] blck_configs: blck_simulationManager = %1",blck_simulationManager];
|
||||
/*
|
||||
blck_simulationManagementOff - no simulation management occurs
|
||||
blck_useBlckeaglsSimulationManager - simulation is enabled/disabled by periodic checks for nearby players; a 'wake' function is included when a units simulation is turned on
|
||||
blck_useDynamicSimulationManagement 2 - arma dynamic simulation is used
|
||||
*/
|
||||
|
||||
// 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.
|
||||
@ -87,7 +105,7 @@
|
||||
blck_SmokeAtMissions = [false,"random"]; // set to [false,"anything here"] to disable this function altogether.
|
||||
blck_useSignalEnd = true; // When true a smoke grenade/chemlight will appear at the loot crate for 2 min after mission completion.
|
||||
blck_missionEndCondition = "allKilledOrPlayerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"
|
||||
blck_killPercentage = 0.9; // The mission will complete if this fraction of the total AI spawned has been killed.
|
||||
blck_killPercentage = 0.999999; // The mission will complete if this fraction of the total AI spawned has been killed.
|
||||
// This facilitates mission completion when one or two AI are spawned into objects.
|
||||
blck_spawnCratesTiming = "atMissionSpawnGround"; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir".
|
||||
// Crates spawned in the air will be spawned at mission center or the position(s) defined in the mission file and dropped under a parachute.
|
||||
@ -367,8 +385,8 @@
|
||||
{
|
||||
diag_log format["[blckeagles] Dynamic Configs Enabled"];
|
||||
execVM "\q\addons\custom_server\Configs\blck_dynamicConfigs.sqf";
|
||||
waitUntil {(isNil "blck_configsExileLoaded") isEqualTo false;};
|
||||
waitUntil{blck_dynamicConfigsLoaded};
|
||||
blck_dynamicConfigsLoaded = nil;
|
||||
//waitUntil {(isNil "blck_configsExileLoaded") isEqualTo false;};
|
||||
//waitUntil{blck_dynamicConfigsLoaded};
|
||||
//blck_dynamicConfigsLoaded = nil;
|
||||
};
|
||||
blck_configsLoaded = true;
|
||||
|
@ -538,7 +538,10 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
"ItemBloodBag_Empty", "ItemBloodBag_Full", "ItemAntibiotic", "nanite_cream_epoch", "nanite_pills_epoch"];
|
||||
blck_specialItems = blck_throwableExplosives + blck_medicalItems;
|
||||
blck_NVG = ["NVG_EPOCH"];
|
||||
blck_epochValuables = ["PartOreGold","PartOreSilver","PartOre","ItemGoldBar","ItemGoldBar2oz","ItemGoldBar3oz","ItemGoldBar4oz","ItemGoldBar5oz","ItemGoldBar6oz","ItemGoldBar7oz","ItemGoldBar8oz","ItemGoldBar9oz","ItemGoldBar10oz","ItemSilverBar","ItemSilverBar2oz","ItemSilverBar3oz","ItemSilverBar4oz","ItemSilverBar5oz","ItemSilverBar6oz","ItemSilverBar7oz","ItemSilverBar8oz","ItemSilverBar9oz","ItemSilverBar10oz","ItemAluminumBar","ItemAluminumBar10oz","ItemCopperBar","ItemCopperBar10oz","ItemTinBar","ItemTinBar10oz","ItemTopaz","ItemOnyx","ItemSapphire","ItemAmethyst","ItemEmerald","ItemCitrine","ItemRuby","ItemQuartz","ItemJade","ItemGarnet","ItemKiloHemp"];
|
||||
blck_epochValuables = ["PartOreGold","PartOreSilver","PartOre","ItemGoldBar","ItemSilverBar",
|
||||
"ItemGoldBar10oz","ItemTopaz","ItemOnyx","ItemSapphire","ItemAmethyst",
|
||||
"ItemEmerald","ItemCitrine","ItemRuby","ItemQuartz","ItemJade",
|
||||
"ItemGarnet","ItemKiloHemp"];
|
||||
blck_epochBuildingSupplies = ["PartPlankPack","ItemPlywoodPack","CinderBlocks","MortarBucket","ItemScraps",
|
||||
"ItemCorrugated","ItemCorrugatedLg","CircuitParts","WoodLog_EPOCH","ItemRope","ItemStick","ItemRock","ItemBurlap","ItemBulb","ItemSolar","ItemCables","ItemBattery","Pelt_EPOCH","JackKit","ItemCanvas","ItemSeedBag","ItemPipe"];
|
||||
blck_epochVehicleRepair = ["EngineParts","FuelTank","SpareTire","ItemGlass",
|
||||
@ -594,9 +597,9 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["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"],
|
||||
["MMG_02_black_F","130Rnd_338_Mag"],
|
||||
["MMG_02_camo_F","130Rnd_338_Mag"],
|
||||
["MMG_02_sand_F","130Rnd_338_Mag"],
|
||||
["srifle_DMR_02_camo_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_02_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_02_sniper_F","10Rnd_338_Mag"],
|
||||
@ -629,8 +632,10 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["10Rnd_127x54_Mag" ,1,4],
|
||||
["10Rnd_127x54_Mag",1,4],
|
||||
["10Rnd_93x64_DMR_05_Mag" ,1,4],
|
||||
["10Rnd_93x64_DMR_05_Mag" ,1,4]
|
||||
["10Rnd_93x64_DMR_05_Mag" ,1,4],
|
||||
// Apex Ammo
|
||||
["130Rnd_338_Mag",1,3],
|
||||
["150Rnd_93x64_Mag",1,3]
|
||||
],
|
||||
[ // Optics
|
||||
["optic_SOS",1,2],["optic_LRPS",1,2],["optic_DMS",1,2],["optic_Aco",1,3],["optic_ACO_grn",1,3],["optic_Holosight",1,3],["acc_flashlight",1,3],["acc_pointer_IR",1,3],
|
||||
@ -682,7 +687,7 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["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],
|
||||
"Towelette" , "ItemVitamins", "morphine_epoch", "iodide_pills_epoch", "adrenaline_epoch",
|
||||
"FAK" , "Towelette" , "ItemVitamins", "morphine_epoch", "iodide_pills_epoch", "adrenaline_epoch",
|
||||
"caffeinepills_epoch", "orlistat_epoch", "ItemCanteen_Empty", "ItemCanteen_Clean", "ItemBottlePlastic_Empty",
|
||||
"ItemBottlePlastic_Clean", "atropine_epoch", "ItemWaterPurificationTablets", "ItemPainKillers", "ItemDefibrillator",
|
||||
"ItemBloodBag_Empty", "ItemBloodBag_Full", "ItemAntibiotic", "nanite_cream_epoch", "nanite_pills_epoch"
|
||||
@ -730,11 +735,22 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["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","130Rnd_338_Mag"],
|
||||
["MMG_02_camo_F","130Rnd_338_Mag"],
|
||||
["MMG_02_sand_F","130Rnd_338_Mag"],
|
||||
["srifle_DMR_02_camo_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_02_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_02_sniper_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_03_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_03_tan_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_04_Tan_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_05_hex_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_06_camo_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
|
||||
@ -757,7 +773,10 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["10Rnd_127x54_Mag" ,1,4],
|
||||
["10Rnd_127x54_Mag",1,4],
|
||||
["10Rnd_93x64_DMR_05_Mag" ,1,4],
|
||||
["10Rnd_93x64_DMR_05_Mag" ,1,4]
|
||||
["10Rnd_93x64_DMR_05_Mag" ,1,4],
|
||||
// Apex Ammo
|
||||
["130Rnd_338_Mag",1,3],
|
||||
["150Rnd_93x64_Mag",1,3]
|
||||
],
|
||||
[ // Optics
|
||||
["optic_SOS",1,2],["optic_LRPS",1,2],["optic_DMS",1,2],["optic_Aco",1,3],["optic_ACO_grn",1,3],["optic_Holosight",1,3],["acc_flashlight",1,3],["acc_pointer_IR",1,3],
|
||||
@ -810,7 +829,7 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["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],
|
||||
"Towelette" , "ItemVitamins", "morphine_epoch", "iodide_pills_epoch", "adrenaline_epoch",
|
||||
"FAK" , "Towelette" , "ItemVitamins", "morphine_epoch", "iodide_pills_epoch", "adrenaline_epoch",
|
||||
"caffeinepills_epoch", "orlistat_epoch", "ItemCanteen_Empty", "ItemCanteen_Clean", "ItemBottlePlastic_Empty",
|
||||
"ItemBottlePlastic_Clean", "atropine_epoch", "ItemWaterPurificationTablets", "ItemPainKillers", "ItemDefibrillator",
|
||||
"ItemBloodBag_Empty", "ItemBloodBag_Full", "ItemAntibiotic", "nanite_cream_epoch", "nanite_pills_epoch"
|
||||
@ -935,10 +954,10 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["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],
|
||||
"Towelette" , "ItemVitamins", "morphine_epoch", "iodide_pills_epoch", "adrenaline_epoch",
|
||||
"FAK" , "Towelette" , "ItemVitamins", "morphine_epoch", "iodide_pills_epoch", "adrenaline_epoch",
|
||||
"caffeinepills_epoch", "orlistat_epoch", "ItemCanteen_Empty", "ItemCanteen_Clean", "ItemBottlePlastic_Empty",
|
||||
"ItemBottlePlastic_Clean", "atropine_epoch", "ItemWaterPurificationTablets", "ItemPainKillers", "ItemDefibrillator",
|
||||
"ItemBloodBag_Empty", "ItemBloodBag_Full", "ItemAntibiotic", "nanite_cream_epoch", "nanite_pills_epoch"
|
||||
"ItemBloodBag_Empty", "ItemBloodBag_Full", "ItemAntibiotic", "nanite_cream_epoch"
|
||||
],
|
||||
[ // 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],
|
||||
@ -1058,7 +1077,7 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["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],["ItemPowderMilk",1,3],["ItemRicebox",1,3],
|
||||
["ItemCereals",1,3],["krypto_candy_epoch",1,3],["ItemBakedBeans",1,3],["HotAxeSauce_epoch",1,3],
|
||||
"Towelette" , "ItemVitamins", "morphine_epoch", "iodide_pills_epoch", "adrenaline_epoch",
|
||||
"FAK" , "Towelette" , "ItemVitamins", "morphine_epoch", "iodide_pills_epoch", "adrenaline_epoch",
|
||||
"caffeinepills_epoch", "orlistat_epoch", "ItemCanteen_Empty", "ItemCanteen_Clean", "ItemBottlePlastic_Empty",
|
||||
"ItemBottlePlastic_Clean", "atropine_epoch", "ItemWaterPurificationTablets", "ItemPainKillers", "ItemDefibrillator",
|
||||
"ItemBloodBag_Empty", "ItemBloodBag_Full", "ItemAntibiotic", "nanite_cream_epoch", "nanite_pills_epoch"
|
||||
@ -1077,7 +1096,7 @@ blck_highPoweredLoot = blck_BoxLoot_Orange;
|
||||
blck_supportLoot = blck_BoxLoot_Orange;
|
||||
|
||||
|
||||
blck_crateTypes = ["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F","Box_NATO_Wps_F","I_CargoNet_01_ammo_F","O_CargoNet_01_ammo_F","B_CargoNet_01_ammo_F"]; // Default crate type.
|
||||
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;
|
||||
diag_log "[blckeagls] Configurations for Epoch Loaded";
|
||||
blck_configsEpochLoaded = true;
|
||||
|
@ -710,9 +710,9 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["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"],
|
||||
["MMG_02_black_F","130Rnd_338_Mag"],
|
||||
["MMG_02_camo_F","130Rnd_338_Mag"],
|
||||
["MMG_02_sand_F","130Rnd_338_Mag"],
|
||||
["srifle_DMR_02_camo_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_02_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_02_sniper_F","10Rnd_338_Mag"],
|
||||
@ -743,7 +743,10 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["10Rnd_127x54_Mag" ,1,5],
|
||||
["10Rnd_127x54_Mag",1,5],
|
||||
["10Rnd_93x64_DMR_05_Mag" ,1,5],
|
||||
["10Rnd_93x64_DMR_05_Mag" ,1,5]
|
||||
["10Rnd_93x64_DMR_05_Mag" ,1,5],
|
||||
// Apex Ammo
|
||||
["130Rnd_338_Mag",1,3],
|
||||
["150Rnd_93x64_Mag",1,3]
|
||||
],
|
||||
[ // Optics
|
||||
["optic_SOS",1,2],["optic_LRPS",1,2],["optic_DMS",1,2],
|
||||
@ -805,6 +808,10 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["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","130Rnd_338_Mag"],
|
||||
["MMG_02_camo_F","130Rnd_338_Mag"],
|
||||
["MMG_02_sand_F","130Rnd_338_Mag"],
|
||||
["srifle_DMR_02_camo_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_03_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_04_Tan_F","10Rnd_338_Mag"],
|
||||
@ -830,7 +837,10 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["10Rnd_127x54_Mag" ,1,4],
|
||||
["10Rnd_127x54_Mag",1,4],
|
||||
["10Rnd_93x64_DMR_05_Mag" ,1,4],
|
||||
["10Rnd_93x64_DMR_05_Mag" ,1,4]
|
||||
["10Rnd_93x64_DMR_05_Mag" ,1,4],
|
||||
// Apex Ammo
|
||||
["130Rnd_338_Mag",1,3],
|
||||
["150Rnd_93x64_Mag",1,3]
|
||||
],
|
||||
[ // Optics
|
||||
["optic_SOS",1,2],["optic_LRPS",1,2],["optic_DMS",1,2],["optic_Aco",1,3],["optic_ACO_grn",1,3],["optic_Holosight",1,3],["acc_flashlight",1,3],["acc_pointer_IR",1,3],
|
||||
@ -1035,10 +1045,10 @@ blck_contructionLootExile = [
|
||||
["Exile_Item_Sand",4,10],["Exile_Item_Cement",4,10],["Exile_Item_WaterCanisterDirtyWater",1,3],["Exile_Item_FuelCanisterFull",1,3]
|
||||
],
|
||||
[//Items
|
||||
["Exile_Item_Matches","Exile_Item_CookingPot","Exile_Item_CanOpener","Exile_Item_Handsaw","Exile_Item_Pliers","Exile_Item_Grinder","Exile_Item_Foolbox","Exile_Item_Hammer",
|
||||
"Exile_Item_Matches","Exile_Item_CookingPot","Exile_Item_CanOpener","Exile_Item_Handsaw","Exile_Item_Pliers","Exile_Item_Grinder","Exile_Item_Foolbox","Exile_Item_Hammer",
|
||||
"Exile_Item_CordlessScrewdriver","Exile_Item_FireExtinguisher","Exile_Item_OilCanister","Exile_Item_Screwdriver","Exile_Item_Shovel","Exile_Item_Wrench","Exile_Item_CordlessScrewdriver",
|
||||
"Exile_Item_FireExtinguisher","Exile_Item_OilCanister","Exile_Item_Screwdriver","Exile_Item_DuctTape","Binocular","Rangefinder","ItemGPS","ItemMap","ItemCompass","ItemRadio","ItemWatch",
|
||||
"Exile_Item_XM8"]
|
||||
"Exile_Item_XM8"
|
||||
],
|
||||
[ // Backpacks
|
||||
|
||||
|
@ -675,6 +675,13 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||
"Exile_Item_InstantCoffee"
|
||||
];
|
||||
|
||||
#ifdef useCUP
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef useRHS
|
||||
|
||||
#endif
|
||||
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"];
|
||||
@ -846,7 +853,10 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["10Rnd_127x54_Mag",1,4],
|
||||
["10Rnd_93x64_DMR_05_Mag" ,1,4],
|
||||
["10Rnd_93x64_DMR_05_Mag" ,1,4],
|
||||
["130Rnd_338_Mag",3,5]
|
||||
["130Rnd_338_Mag",3,5],
|
||||
// Apex Ammo
|
||||
["130Rnd_338_Mag",1,3],
|
||||
["150Rnd_93x64_Mag",1,3]
|
||||
],
|
||||
[ // Optics
|
||||
["optic_SOS",1,2],["optic_LRPS",1,2],["optic_DMS",1,2],["optic_Aco",1,3],["optic_ACO_grn",1,3],["optic_Holosight",1,3],["acc_flashlight",1,3],["acc_pointer_IR",1,3],
|
||||
@ -1051,10 +1061,10 @@ blck_contructionLootExile = [
|
||||
["Exile_Item_JunkMetal",1,10],["Exile_Item_LightBulb",1,10],["Exile_Item_MetalBoard",1,10],["Exile_Item_MetalPole",1,10],["Exile_Item_CamoTentKit",1,10],["Exile_Item_MetalScrews",3,10]
|
||||
],
|
||||
[//Items
|
||||
["Exile_Item_Matches","Exile_Item_CookingPot","Exile_Item_CanOpener","Exile_Item_Handsaw","Exile_Item_Pliers","Exile_Item_Grinder","Exile_Item_Foolbox","Exile_Item_Hammer",
|
||||
"Exile_Item_Matches","Exile_Item_CookingPot","Exile_Item_CanOpener","Exile_Item_Handsaw","Exile_Item_Pliers","Exile_Item_Grinder","Exile_Item_Foolbox","Exile_Item_Hammer",
|
||||
"Exile_Item_CordlessScrewdriver","Exile_Item_FireExtinguisher","Exile_Item_OilCanister","Exile_Item_Screwdriver","Exile_Item_Shovel","Exile_Item_Wrench","Exile_Item_CordlessScrewdriver",
|
||||
"Exile_Item_FireExtinguisher","Exile_Item_OilCanister","Exile_Item_Screwdriver","Exile_Item_DuctTape","Binocular","Rangefinder","ItemGPS","ItemMap","ItemCompass","ItemRadio","ItemWatch",
|
||||
"Exile_Item_XM8"]
|
||||
"Exile_Item_XM8"
|
||||
],
|
||||
[ // Backpacks
|
||||
|
||||
|
@ -26,7 +26,8 @@
|
||||
|
||||
blck_spawnMapAddons = true; // When true map addons will be spawned based on parameters define in custum_server\MapAddons\MapAddons_init.sqf
|
||||
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).
|
||||
|
||||
blck_simulationManager = blck_useBlckeaglsSimulationManagement;
|
||||
diag_log format["[blckeagls] blck_configs: blck_simulationManager = %1",blck_simulationManager];
|
||||
// Note that you can define map-specific variants in custom_server\configs\blck_custom_config.sqf
|
||||
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 = 2; // Daytime time accelearation
|
||||
|
@ -11,14 +11,22 @@
|
||||
http://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
*/
|
||||
|
||||
|
||||
#define useAPEX
|
||||
//#define useDynamicSimulation
|
||||
//#define blck_debugMode
|
||||
//#define blck_milServer
|
||||
#define blck_milServer
|
||||
#define blck_useCUP
|
||||
#define blck_useRHS
|
||||
|
||||
////////////////////////////
|
||||
// Do not touch anything below this line
|
||||
///////////////////////////
|
||||
|
||||
//#define useDynamicSimulation
|
||||
//#define blck_debugMode
|
||||
//#define GRG_TestServer
|
||||
#define GRGserver
|
||||
#define blck_triggerLoopCompleteTime 40*60
|
||||
|
||||
#define onFoot 1
|
||||
#define inVehicle 2
|
||||
|
||||
@ -29,5 +37,15 @@
|
||||
#define groupSpawned 2
|
||||
#define timesSpawned 3
|
||||
#define respawnAt 4
|
||||
|
||||
|
||||
#define blck_playerDetectionRangeAir 800
|
||||
#define blck_playerDetectionRangeGroundVehicle 400
|
||||
#define blck_vehiclePlayerDetectionOdds 0.6
|
||||
#define blck_playerDetectionRangeSubs 100
|
||||
#define blck_playerDetectionRangeSurfaceVehicle 150
|
||||
#define blck_simulationEnabledDistance 2500
|
||||
#define blck_simulationManagementOff 0
|
||||
#define blck_useBlckeaglsSimulationManager 1
|
||||
#define blck_useDynamicSimulationManagement 2
|
||||
#define blck_simulationManagementOff 0
|
||||
#define blck_useBlckeaglsSimulationManagement 1
|
||||
#define blck_useDynamicSimulationManagement 2
|
||||
|
@ -103,7 +103,7 @@ if (blck_modType isEqualTo "Exile") then
|
||||
{
|
||||
_classnameList = (missionConfigFile >> "CfgExileArsenal" ) call BIS_fnc_getCfgSubClasses;
|
||||
};
|
||||
diag_log format["_fnc_dynamicConfigsConfigurator: count _classnameList = %1",count _classnameList];
|
||||
//diag_log format["_fnc_dynamicConfigsConfigurator: count _classnameList = %1",count _classnameList];
|
||||
{
|
||||
private _temp = [_x] call bis_fnc_itemType;
|
||||
//diag_log _temp;
|
||||
|
@ -79,7 +79,7 @@ private _addedLandscape = ["Land_FoodSacks_01_cargo_brown_F","Land_FoodSacks_01_
|
||||
"Land_BarrelTrash_grey_F","Land_WoodenTable_large_F","Land_BagFence_Short_F","Land_WoodPile_F"]
|
||||
*/
|
||||
|
||||
_missionLandscape = ["Flag_AAF_F","Land_TentDome_F","Land_TentDome_F","Land_TentDome_F","Land_TentDome_F","Land_FieldToilet_F","Campfire_burning_F"]; // list of objects to spawn as landscape
|
||||
_missionLandscape = [/*"Flag_AAF_F",*/"Land_TentDome_F","Land_TentDome_F","Land_TentDome_F","Land_TentDome_F","Land_FieldToilet_F","Campfire_burning_F"]; // list of objects to spawn as landscape
|
||||
for "_i" from 1 to 8 do
|
||||
{
|
||||
_missionLandscape pushBack selectRandom [
|
||||
|
@ -47,15 +47,14 @@ blck_configsLoaded = nil;
|
||||
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_custom_config.sqf";
|
||||
|
||||
#ifdef GRGserver
|
||||
diag_log "[blckegls] Running Ghostridergaming Version";
|
||||
diag_log "[blckeagls] Running GRG Version";
|
||||
#endif
|
||||
#ifdef useDynamicSimulation
|
||||
diag_log "[blckegls] dynamic simulation manager enabled";
|
||||
#else
|
||||
diag_log "[blckegls] blckegls simulation manager enabled";
|
||||
#endif
|
||||
//_marker = createMarker ["HomeBase",[24000,18000,0]];
|
||||
//_marker setMarkerColor "ColorBlack";
|
||||
//_marker setMarkerType "hd_flag";
|
||||
|
||||
switch (blck_simulationManager) do
|
||||
case 1: {diag_log "[blckeagls] dynamic simulation manager enabled"};
|
||||
case 2: {diag_log "[blckeagls] blckeagls simulation manager enabled"};
|
||||
case 0: {diag_log "[blckeagls] simulation management disabled"};
|
||||
};
|
||||
|
||||
diag_log format["[blckeagls] for HC version %1 Build %2 Loaded in %3 seconds",_blck_versionDate,_blck_version,diag_tickTime - _blck_loadingStartTime]; //,blck_modType];
|
||||
[] spawn blck_fnc_HC_monitor;
|
||||
|
@ -11,24 +11,19 @@
|
||||
|
||||
if ( !(isServer) || hasInterface) exitWith{};
|
||||
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
#include "blck_defines.hpp";
|
||||
|
||||
if !(isNil "blck_Initialized") exitWith{};
|
||||
private _blck_loadingStartTime = diag_tickTime;
|
||||
#include "\q\addons\custom_server\init\build.sqf";
|
||||
diag_log format["[blckeagls] Loading Server Mission System Version %2 Build Date %1",_blck_versionDate,_blck_version];
|
||||
|
||||
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_variables.sqf";
|
||||
waitUntil {(isNil "blck_variablesLoaded") isEqualTo false;};
|
||||
waitUntil{blck_variablesLoaded};
|
||||
blck_variablesLoaded = nil;
|
||||
|
||||
// compile functions
|
||||
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_functions.sqf";
|
||||
waitUntil {(isNil "blck_functionsCompiled") isEqualTo false;};
|
||||
waitUntil{blck_functionsCompiled};
|
||||
blck_functionsCompiled = nil;
|
||||
diag_log format["[blckeagls] debug mode settings:blck_debugON = %1 blck_debugLevel = %2",blck_debugON,blck_debugLevel];
|
||||
diag_log format["[blckeagls] functions compiled at %1",diag_tickTime];
|
||||
|
||||
blck_modType = call blck_fnc_getModType;
|
||||
publicVariable "blck_modType";
|
||||
@ -37,16 +32,26 @@ execVM "\q\addons\custom_server\Configs\blck_configs.sqf";
|
||||
waitUntil {(isNil "blck_configsLoaded") isEqualTo false;};
|
||||
waitUntil{blck_configsLoaded};
|
||||
blck_configsLoaded = nil;
|
||||
diag_log format["[blckeagls] blck_useHC = %1",blck_useHC];
|
||||
diag_log format["[blckeagls] blck_useHC = %1 | blck_simulationManager = %2 ",blck_useHC,blck_simulationManager];
|
||||
diag_log format["[blckeagls] debug mode settings:blck_debugON = %1 blck_debugLevel = %2",blck_debugON,blck_debugLevel];
|
||||
|
||||
// Load any user-defined specifications or overrides
|
||||
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_custom_config.sqf";
|
||||
diag_log format["[blckeagls] configurations loaded at %1",diag_tickTime];
|
||||
|
||||
|
||||
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_variables.sqf";
|
||||
waitUntil {(isNil "blck_variablesLoaded") isEqualTo false;};
|
||||
waitUntil{blck_variablesLoaded};
|
||||
blck_variablesLoaded = nil;
|
||||
diag_log format["[blckeagls] blck_variables loaded at %1",diag_tickTime];
|
||||
|
||||
// spawn map addons to give the server time to position them before spawning in crates etc.
|
||||
if (blck_spawnMapAddons) then
|
||||
{
|
||||
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\MapAddons\MapAddons_init.sqf";
|
||||
}else{
|
||||
diag_log "[blckegls] Map Addons disabled";
|
||||
diag_log "[blckeagls] Map Addons disabled";
|
||||
};
|
||||
blck_spawnMapAddons = nil;
|
||||
|
||||
@ -63,13 +68,24 @@ diag_log "[blckeagls] Mission Lists Loaded Successfully";
|
||||
|
||||
[] execVM "\q\addons\custom_server\Missions\Static\GMS_StaticMissions_init.sqf";
|
||||
[] execVM "q\addons\custom_server\Missions\UMS\GMS_UMS_init.sqf"; // loads functions and spawns any static missions.
|
||||
diag_log "blck_init_server: ->> Static and UMS systems initialized.";
|
||||
diag_log "[blckeagls] blck_init_server: ->> Static and UMS systems initialized.";
|
||||
|
||||
#ifdef useDynamicSimulation
|
||||
diag_log "[blckegls] dynamic simulation manager enabled";
|
||||
#else
|
||||
diag_log "[blckegls] blckegls simulation manager enabled";
|
||||
switch (blck_simulationManager) do
|
||||
{
|
||||
case 2: {diag_log "[blckeagls] dynamic simulation manager enabled"};
|
||||
case 1: {diag_log "[blckeagls] blckeagls simulation manager enabled"};
|
||||
case 0: {diag_log "[blckeagls] simulation management disabled"};
|
||||
};
|
||||
|
||||
|
||||
#ifdef GRGserver
|
||||
// start the dynamic loot crate system
|
||||
[] execVM "\q\addons\custom_server\DLS\DLS_init.sqf";
|
||||
waitUntil {(isNil "blck_DLSComplete") isEqualTo false;};
|
||||
waitUntil{blck_DLSComplete};
|
||||
blck_DLSComplete = nil;
|
||||
#endif
|
||||
|
||||
diag_log format["[blckeagls] version %1 Build %2 Loaded in %3 seconds",_blck_versionDate,_blck_version,diag_tickTime - _blck_loadingStartTime]; //,blck_modType];
|
||||
diag_log format["blckeagls] waiting for players to join ---- >>>>"];
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
private ["_version","_versionDate"];
|
||||
blck_version = "6.84 Build 149";
|
||||
blck_version = "6.86 Build 155";
|
||||
_blck_version = blck_version;
|
||||
_blck_versionDate = "8-5-18 5:00 PM";
|
||||
_blck_versionDate = "10-20-18 1:30 AM";
|
||||
blck_pvs_version = _blck_version;
|
||||
publicVariable blck_pvs_version;
|
||||
|
@ -199,6 +199,7 @@ systemChat _logging;
|
||||
//diag_log format["_cb = %1%2",endl,_cb];
|
||||
|
||||
_configuredStatics = [];
|
||||
_configuredStaticsPositions = [];
|
||||
_configuredUnits = [];
|
||||
/*
|
||||
This bit will set up the garrison for each building having units and / or statics inside it or on top.
|
||||
@ -222,7 +223,7 @@ _fn_configureGarrisonForBuildingATL = {
|
||||
if (_b isEqualTo _building) then
|
||||
{
|
||||
_configuredStatics pushBackUnique _x;
|
||||
|
||||
//_configuredStaticsPositions pushBack (getPosATL _x) vectorDiff CENTER;
|
||||
if (_staticsText isEqualTo "") then
|
||||
{
|
||||
_staticsText = format['["%1",%2,%3]',typeOf _x,(getPosATL _x) vectorDiff (getPosATL _b),getDir _x];
|
||||
@ -285,7 +286,7 @@ _cb = _cb + "_garrisonedBuilding_ATLsystem = [";
|
||||
};
|
||||
};
|
||||
|
||||
} forEach ((allMissionObjects "StaticWeapon") + (allMissionObjects unitMarkerObject));
|
||||
} forEach ((allMissionObjects "StaticWeapon") + (allMissionObjects "Man") + (allMissionObjects unitMarkerObject));
|
||||
_cb = _cb + format["%1];%1%1",endl];
|
||||
|
||||
///////////////////
|
||||
@ -415,20 +416,24 @@ _cb = _cb + format["%1];%1%1",endl];
|
||||
///////////////////
|
||||
// Setup info for remaining static/emplaced weapons
|
||||
///////////////////
|
||||
_count = 0;
|
||||
_cb = _cb + format["_missionEmplacedWeapons = ["];
|
||||
{
|
||||
|
||||
if !(_x in _configuredStatics) then
|
||||
//if !(_x in _configuredStatics) then
|
||||
private _isInside = [_x] call _fn_isInside;
|
||||
if !(_isInside) then
|
||||
{
|
||||
// ["B_HMG_01_high_F",[22883.5,16757.6,6.31652],"blue",0,10]
|
||||
_line = format[' ["%1",%2,%3]',typeOf _x,(getPosATL _x) vectorDiff CENTER,getDir _x, 'true','true'];
|
||||
systemChat _line;
|
||||
if (_forEachIndex == 0) then
|
||||
if (_count == 0) then
|
||||
{
|
||||
_cb = _cb + format["%1%2",endl,_line];
|
||||
} else {
|
||||
_cb = _cb + format[",%1%2",endl,_line];
|
||||
};
|
||||
_count = _count + 1;
|
||||
};
|
||||
|
||||
}forEach allMissionObjects "StaticWeapon";
|
||||
|
@ -2,34 +2,49 @@
|
||||
blck Mission system by Ghostrider [GRG]
|
||||
Loosely based on the AI mission system by blckeagls ver 2.0.2
|
||||
Contributions by Narines: bug fixes, testing, infinite ammo fix.
|
||||
Ideas or code from that by Vampire and KiloSwiss have been used for certain functions.
|
||||
|
||||
|
||||
Ideas or code from that by He-Man, Vampire and KiloSwiss have been used for certain functions.
|
||||
Many thanks for new Coding and ideas from Grahame.
|
||||
|
||||
Significant Changes:
|
||||
=====================
|
||||
6.86 (Experimental)
|
||||
6.86 Build 155
|
||||
Added support for spawning infantry and statics inside buildings for forming a garrison using either of two methods.
|
||||
1. by placing a marker object such as a sphere in the building you define it as having units/statics inside
|
||||
2. by placing units or statics in it you determine the garrison to be placed at mission spawn.
|
||||
Added tools to facilitate grabbing data from missions in the editor (see the new TOOLS folders for more information).
|
||||
Added additional error checks for missing mission parameters.
|
||||
Fixed: issues that prevented completion of capture/hostage missions on exile servers
|
||||
Added: code that forces air, land and sea vehicles to detect nearby players which should help with frozen AI _noChoppers
|
||||
Changed: code for blckeagls simulation manager to force simulation when groups are awoken.
|
||||
Added: additional settings for simulation management (see blck_configs.sqf for details)
|
||||
Changed: Simulation management is now set using the new variable blck_simulationManager which is defined in blck_configs.sqf
|
||||
Fixed: issues with AI not throwing smoke when healing themselves.
|
||||
|
||||
Build 153.
|
||||
Added: tools to pull data from mission.sqm pre-formated for use in static or dynamic blckeagls missions.
|
||||
Added: functions that allow you to spawn units, statics inside or on top of buildings.
|
||||
Fixed: an issue that caused vehicles to be destroyed by buildings upon mission spawn.
|
||||
Fixed: an issue that prevented completion of capture/hostage missions on Exile servers (Thanks to MGTDB).
|
||||
|
||||
6.84
|
||||
Added Option to load weapons, pistols, uniforms, headgear, vests and backpacks from CfgPricing or the Arsenal Pricing and exclude items above a certain price
|
||||
6.84 Build 145
|
||||
Added Option to load weapons, pistols, uniforms, headgear, vests and backpacks from CfgPricing (Epoch) or the Arsenal (Exile) and exclude items above a certain price
|
||||
Add details on configs for enabling this and setting the maximum price
|
||||
To use this new feature
|
||||
Set blck_useConfigsGeneratedLoadouts = true;
|
||||
|
||||
To specify the maximum price for items added to AI, change:
|
||||
blck_maximumItemPriceInAI_Loadouts = 100;
|
||||
|
||||
NOTE: this function overides any loadouts you specify in blck_config.sqf etc.
|
||||
|
||||
Added functions to despawn static patrols invehicles on on foot when no players are nearby. This tracks the number of infantry alive in a group and respawns only the number alive when the group was despawned.
|
||||
|
||||
Added functions to despawn static patrols of all types when no players are nearby. This tracks the number of infantry alive in a group and respawns only the number alive when the group was despawned.
|
||||
Added: Static units will now be spawned with gear specific to difficulty level (blue, red, green, orange) as specified in blck_config.sqf etc.
|
||||
Added: AI now have a chance of spawning with binocs or range finders.
|
||||
Added: a lit road cone spawns at the center of the mission to help find it and aid in triggering mission completion.
|
||||
|
||||
Changed: Hostage missions redesigned to reduce chances of AI being glitched into containers and of mission objects flying about when spawned in.
|
||||
Changed: Units are spawned with greater dispersion.
|
||||
Changed: method for spawning random landscapes has been changed. Note the added randomization in missions\blue\default.sqf
|
||||
|
||||
Fixed: Collisions between objects at missions caused issues.
|
||||
Fixed: Attempted a fix to reduce the chance that AI will spawn inside or under objects like rocks or containers.
|
||||
Fixed: Captive missions now complete properly.
|
||||
Fixed: Hostage missions now complete properly.
|
||||
Fixed: Paratroops spawned at UMS missions now spawn with scuba gear.
|
||||
|
||||
Version 1.82 Build 134
|
||||
Added: configs for blue, red, green and orange pistol, vest, backpack and uniforms (with thanks to Grahame for suggesting this change and doing most of the coding)
|
||||
|
Loading…
Reference in New Issue
Block a user