Updated for Build 155

This commit is contained in:
Chris Cardozo 2018-10-21 07:56:34 -04:00
parent 91ac249eeb
commit 8d06b9e851
29 changed files with 333 additions and 148 deletions

View File

@ -41,7 +41,7 @@ while {true} do
_timer5sec = diag_tickTime + 5; _timer5sec = diag_tickTime + 5;
[] call blck_fnc_missionGroupMonitor; [] call blck_fnc_missionGroupMonitor;
[] call blck_fnc_sm_missionPatrolMonitor; [] call blck_fnc_sm_missionPatrolMonitor;
//[] call blck_fnc_vehiclePatrolPlayerSensor;
//diag_log format["[blckeagls] _fnc_mainThread 5 Second Timer Handled | Timstamp %1",diag_tickTime]; //diag_log format["[blckeagls] _fnc_mainThread 5 Second Timer Handled | Timstamp %1",diag_tickTime];
}; };
if (diag_tickTime > _timer20sec) then if (diag_tickTime > _timer20sec) then
@ -49,6 +49,7 @@ while {true} do
[] call blck_fnc_cleanupAliveAI; [] call blck_fnc_cleanupAliveAI;
[] call blck_fnc_cleanupObjects; [] call blck_fnc_cleanupObjects;
[] call blck_fnc_cleanupDeadAI; [] call blck_fnc_cleanupDeadAI;
[] call blck_fnc_scanForPlayersNearVehicles;
//[] call blck_fnc_cleanEmptyGroups; //[] call blck_fnc_cleanEmptyGroups;
_timer20sec = diag_tickTime + 20; _timer20sec = diag_tickTime + 20;
//diag_log format["[blckeagls] _fnc_mainThread 20 Second Timer Handled | Timstamp %1",diag_tickTime]; //diag_log format["[blckeagls] _fnc_mainThread 20 Second Timer Handled | Timstamp %1",diag_tickTime];

View File

@ -1,10 +1,8 @@
//diag_log format["_fnc_nearestPlayers: _this = %1",_this];
params["_coords","range"]; params["_coords","_range"];
private["_return","_playerClassNames","_epochClasses","_exileClasses"]; private["_return","_playerClassNames","_epochClasses","_exileClasses"];
_epochClasses = ["Epoch_Female_F","Epoch_Male_F"]; if (blck_modType isEqualTo "Epoch") then {_playerClassNames = ["Epoch_Female_F","Epoch_Male_F"]};
_exileClasses = ["Exile_Unit_Player"]; if (blck_modType isEqualTo "Exile") then {_playerClassNames = ["Exile_Unit_Player"]};
if (blck_modType isEqualTo "Epoch") then {_playerClassNames = _epochClasses};
if (blck_modType isEqualTo "Exile") then {_playerClassNames = _exileClasses};
_return = nearestObjects[_coords,_playerClassNames,_range]; _return = nearestObjects[_coords,_playerClassNames,_range];
_return _return

View File

@ -16,9 +16,11 @@ private["_groupSpawned"];
_groupSpawned = createGroup [blck_AI_Side, true]; _groupSpawned = createGroup [blck_AI_Side, true];
//_groupSpawned setVariable["groupVehicle",objNull]; //_groupSpawned setVariable["groupVehicle",objNull];
#ifdef useDynamicSimulation if (blck_simulationManager == blck_useDynamicSimulationManagement) then
_groupSpawned enableDynamicSimulation true; {
#endif _groupSpawned enableDynamicSimulation true;
};
_groupSpawned setcombatmode "RED"; _groupSpawned setcombatmode "RED";
_groupSpawned setBehaviour "COMBAT"; _groupSpawned setBehaviour "COMBAT";
_groupSpawned allowfleeing 0; _groupSpawned allowfleeing 0;

View File

@ -164,28 +164,22 @@ _fn_simulationMonitor = {
}else{ }else{
_playerType = ["Epoch_Male_F","Epoch_Female_F"]; _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, blck_simulationEnabledDistance];
_players = (leader _x) nearEntities [_playerType, 1800];
if (count _players > 0) then if (count _players > 0) then
{ {
// Be sure simulation is on for all units in the group if !(simulationEnabled _x) then
if !(_x getVariable["blck_simulationStatus",false]) then
{ {
_x setVariable["blck_simulationStatus",true];
{ {
_x enableSimulationGlobal true; _x enableSimulationGlobal true;
(_players select 0) reveal _x; // Force simulation on
}forEach (units _x); }forEach (units _x);
}; };
}else{ }else{
// Be sure simulation is off for all units in the group. // 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; } forEach blck_monitoredMissionAIGroups;
@ -200,6 +194,5 @@ if (blck_debugLevel > 2) then {diag_log format["_fnc_missionGroupMonitor: execut
uiSleep 0.1; uiSleep 0.1;
[] call _fn_monitorGroupWaypoints; [] call _fn_monitorGroupWaypoints;
#ifndef useDynamicSimulation if (blck_simulationManager == blck_useBlckeaglsSimulationManagement) then {[] call _fn_simulationMonitor};
[] call _fn_simulationMonitor;
#endif

View File

@ -41,9 +41,9 @@ _staticsSpawned = [];
_group = call blck_fnc_create_AI_Group; _group = call blck_fnc_create_AI_Group;
{ {
_g = _x; _g = _x;
{ //{
diag_log format["_g %1 = %2",_forEachIndex,_g select _forEachIndex]; //diag_log format["_g %1 = %2",_forEachIndex,_g select _forEachIndex];
}forEach _g; //}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]],[]], // ["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"]; _x params["_bldClassName","_bldRelPos","_bldDir","_s","_d","_statics","_men"];
//diag_log format["_bldClassName = %1 | _bldRelPos = %2 | _bldDir = %3",_bldClassName,_bldRelPos,_bldDir]; //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; _buildingsSpawned pushBack _building;
_staticsSpawned = [_building,_group,_statics,_men,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,"none",_weaponList,_sideArms] call blck_fnc_spawnGarrisonInsideBuilding_ATL; _staticsSpawned = [_building,_group,_statics,_men,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,"none",_weaponList,_sideArms] call blck_fnc_spawnGarrisonInsideBuilding_ATL;
}forEach _garrisonedBuilding_ATLsystem; }forEach _garrisonedBuilding_ATLsystem;
{ //{
diag_log format["__fnc_garrisonBuilding_ATLsystem: %2 = %1",_x select 1, _x select 0]; //diag_log format["__fnc_garrisonBuilding_ATLsystem: %2 = %1",_x select 1, _x select 0];
}forEach [ [_buildingsSpawned,"Buildings"],[_staticsSpawned,"Statics"]]; //}forEach [ [_buildingsSpawned,"Buildings"],[_staticsSpawned,"Statics"]];
_return = [_group,_buildingsSpawned,_staticsSpawned]; _return = [_group,_buildingsSpawned,_staticsSpawned];
_return _return

View File

@ -64,6 +64,7 @@ _blck_AllMissionAI = [];
_AI_Vehicles = []; _AI_Vehicles = [];
_blck_localMissionMarker = [_markerClass,_coords,"","",_markerColor,_markerType]; _blck_localMissionMarker = [_markerClass,_coords,"","",_markerColor,_markerType];
#define delayTime 1 #define delayTime 1
#define useRelativePos true
#ifdef blck_debugMode #ifdef blck_debugMode
diag_log "_missionSpawner: All variables initialized"; diag_log "_missionSpawner: All variables initialized";
@ -174,14 +175,6 @@ if (blck_debugLevel > 0) then
}; };
#endif #endif
uiSleep delayTime;;
if (count _missionLootVehicles > 0) then
{
_temp = [_coords,_missionLootVehicles,_loadCratesTiming] call blck_fnc_spawnMissionLootVehicles;
_crates append _temp;
};
uiSleep delayTime; uiSleep delayTime;
_abort = false; _abort = false;
@ -364,7 +357,6 @@ if (_abort) exitWith
_vehToSpawn = [_noVehiclePatrols] call blck_fnc_getNumberFromRange; _vehToSpawn = [_noVehiclePatrols] call blck_fnc_getNumberFromRange;
if (blck_useVehiclePatrols && ((_vehToSpawn > 0) || count _missionPatrolVehicles > 0)) then 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; _temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_missionPatrolVehicles,useRelativePos,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnMissionVehiclePatrols;
if (typeName _temp isEqualTo "ARRAY") then if (typeName _temp isEqualTo "ARRAY") then
@ -395,6 +387,13 @@ if (_spawnCratesTiming isEqualTo "atMissionSpawnGround") then
_objects append _crates; _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 if (_noPara > 0 && (random(1) < _chancePara) && _paraTriggerDistance == 0) then
{ {
diag_log format["_fnc_missionSpawner (436): spawning %1 paraunits at mission spawn",_noPara]; 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 #ifdef blck_debugMode
if (blck_debugLevel > 2) exitWith {uiSleep blck_triggerLoopCompleteTime;diag_log "_missionSpawner (492) scripted Mission End blck_debugLevel = 3";}; if (blck_debugLevel > 2) exitWith {uiSleep blck_triggerLoopCompleteTime;diag_log "_missionSpawner (492) scripted Mission End blck_debugLevel = 3";};
#endif #endif
if (_endIfPlayerNear) then if (_endIfPlayerNear) then
{ {
if ([_locations,20,true] call blck_fnc_playerInRangeArray) then {_missionComplete = 1}; if ([_locations,20,true] call blck_fnc_playerInRangeArray) then {_missionComplete = 1};

View File

@ -16,7 +16,7 @@
private ["_unit","_instigator","_group","_wp"]; private ["_unit","_instigator","_group","_wp"];
_unit = _this select 0 select 0; _unit = _this select 0 select 0;
_instigator = _this select 0 select 3; _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 #ifdef blck_debugMode
if (blck_debugLevel >= 2) then if (blck_debugLevel >= 2) then
{ {
@ -47,8 +47,11 @@ if ((damage _unit) > 0.1 ) then
diag_log format["_EH_AIHit::-->> Healing unit %1",_unit]; diag_log format["_EH_AIHit::-->> Healing unit %1",_unit];
}; };
_unit setVariable["hasHealed",true,true]; _unit setVariable["hasHealed",true,true];
/*
_unit addMagazine "SmokeShellOrange"; _unit addMagazine "SmokeShellOrange";
_unit fire "SmokeShellMuzzle"; _unit fire "SmokeShellMuzzle";
*/
"SmokeShellRed" createVehicle ((position _unit) getPos[3,_unit getRelDir _instigator];
_unit addItem "FAK"; _unit addItem "FAK";
_unit action ["HealSoldierSelf", _unit]; _unit action ["HealSoldierSelf", _unit];
_unit setDamage 0; _unit setDamage 0;

View File

@ -25,10 +25,8 @@ _unit setVariable ["blck_cleanupAt", (diag_tickTime) + blck_bodyCleanUpTimer, tr
blck_deadAI pushback _unit; blck_deadAI pushback _unit;
_group = group _unit; _group = group _unit;
[_unit] joinSilent grpNull; [_unit] joinSilent grpNull;
if (count(units _group) < 1) then { if (count(units _group) < 1) then
#ifdef useDynamicSimulation {
_group enableDynamicSimulation false;
#endif
deleteGroup _group; deleteGroup _group;
}; };
if (blck_launcherCleanup) then {[_unit] spawn blck_fnc_removeLaunchers;}; if (blck_launcherCleanup) then {[_unit] spawn blck_fnc_removeLaunchers;};

View File

@ -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;
};

View File

@ -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;

View File

@ -21,6 +21,8 @@ if (blck_debugLevel > 1) then {diag_log format["spawnVehicle.sqf: _vehType = %1
_veh = createVehicle[_vehType, _pos, [], 0, "NONE"]; _veh = createVehicle[_vehType, _pos, [], 0, "NONE"];
_veh setVariable["blck_vehicle",true]; _veh setVariable["blck_vehicle",true];
_veh setVariable["blck_vehicleSearchRadius",blck_playerDetectionRangeSurfaceVehicle];
_veh setVariable["blck_vehiclePlayerDetectionOdds",blck_vehiclePlayerDetectionOdds];
[_veh] call blck_fnc_protectVehicle; [_veh] call blck_fnc_protectVehicle;
#ifdef blck_debugMode #ifdef blck_debugMode

View File

@ -72,7 +72,9 @@ if !(isNull _grpPilot) then
#endif #endif
_patrolHeli = createVehicle [_chopperType, _coords, [], 90, "FLY"]; _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] call blck_fnc_protectVehicle;
_patrolHeli setFuel 1; _patrolHeli setFuel 1;
_patrolHeli engineOn true; _patrolHeli engineOn true;

View File

@ -22,6 +22,8 @@ if (blck_debugLevel > 1) then {diag_log format["spawnVehicle.sqf: _vehType = %1
_veh = createVehicle[_vehType, _pos, [], 0, "NONE"]; _veh = createVehicle[_vehType, _pos, [], 0, "NONE"];
_veh setVariable["blck_vehicle",true]; _veh setVariable["blck_vehicle",true];
[_veh] call blck_fnc_protectVehicle; [_veh] call blck_fnc_protectVehicle;
_veh setVariable["blck_vehicleSearchRadius",blck_playerDetectionRangeSubs];
_veh setVariable["blck_vehiclePlayerDetectionOdds",blck_vehiclePlayerDetectionOdds];
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 1) then {diag_log format["spawnVehicle.sqf:: vehicle spawned is %1",_veh];}; if (blck_debugLevel > 1) then {diag_log format["spawnVehicle.sqf:: vehicle spawned is %1",_veh];};

View File

@ -40,6 +40,9 @@ if !(isNull _group) then
_veh = [_vehType,_pos] call blck_fnc_spawnVehicle; _veh = [_vehType,_pos] call blck_fnc_spawnVehicle;
// _veh addEventHandler["HandleDamage",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIVehicle_HandleDamage}]; // _veh addEventHandler["HandleDamage",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIVehicle_HandleDamage}];
_veh addMPEventHandler["MPHit",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIVehicle_HandleHit}]; _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]; //_group setVariable["groupVehicle",_veh];
#ifdef blck_debugMode #ifdef blck_debugMode
if (blck_debugLevel > 1) then if (blck_debugLevel > 1) then

View File

@ -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_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_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_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_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"; //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_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_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_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 // 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. blck_fnc_removeGear = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_removeGear.sqf"; // Strip an AI unit of all gear.

View File

@ -12,8 +12,10 @@
*/ */
#include"\q\addons\custom_server\Configs\blck_defines.hpp"; #include"\q\addons\custom_server\Configs\blck_defines.hpp";
blck_debugON = true; diag_log "[blckeagls] loading variables";
blck_debugLevel = 0; // Sets level of detail for debugging info - WIP.
// 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; blck_minFPS = 8;
//////////////////////////////////////////////// ////////////////////////////////////////////////
@ -22,7 +24,6 @@ blck_minFPS = 8;
blck_townLocations = []; //nearestLocations [blck_mapCenter, ["NameCity","NameCityCapital"], 30000]; blck_townLocations = []; //nearestLocations [blck_mapCenter, ["NameCity","NameCityCapital"], 30000];
blck_ActiveMissionCoords = []; blck_ActiveMissionCoords = [];
blck_recentMissionCoords = []; blck_recentMissionCoords = [];
blck_locationBlackList = [];
blck_monitoredVehicles = []; blck_monitoredVehicles = [];
blck_livemissionai = []; blck_livemissionai = [];
blck_monitoredMissionAIGroups = []; // Used to track groups in active missions for whatever purpose blck_monitoredMissionAIGroups = []; // Used to track groups in active missions for whatever purpose
@ -34,20 +35,26 @@ blck_activeMissions = [];
blck_deadAI = []; blck_deadAI = [];
blck_connectedHCs = []; blck_connectedHCs = [];
blck_missionMarkers = []; blck_missionMarkers = [];
blck_groupsOnHC = []; //blck_groupsOnHC = [];
blck_vehiclesOnHC = []; //blck_vehiclesOnHC = [];
//blck_HC_monitoredVehicles = []; //blck_HC_monitoredVehicles = [];
//blck_HC_monitoredGroups = []; //blck_HC_monitoredGroups = [];
#ifdef useDynamicSimulation if (blck_simulationManager == 2) then
"Group" setDynamicSimulationDistance 1800; {
enableDynamicSimulationSystem true; "Group" setDynamicSimulationDistance 1800;
#endif enableDynamicSimulationSystem true;
};
blck_heliCrashSites = []; blck_heliCrashSites = [];
// radius within whih missions are triggered. The trigger causes the crate and AI to spawn. // 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_mainThreadUpdateInterval = 60;
//blck_missionSpawning = false; blck_revealMode = "detailed"; //""basic" /*group or vehicle level reveals*/,detailed /*unit by unit reveals*/";
diag_log "[blckeagls] Variables Loaded"; diag_log "[blckeagls] Variables Loaded";
blck_variablesLoaded = true; blck_variablesLoaded = true;

View File

@ -13,12 +13,23 @@
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #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 #ifdef blck_milServer
execVM "\q\addons\custom_server\Configs\blck_configs_mil.sqf"; execVM "\q\addons\custom_server\Configs\blck_configs_mil.sqf";
if (true) exitWith {}; if (true) exitWith {};
#endif #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 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_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_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 // 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 = 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_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_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_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. // This facilitates mission completion when one or two AI are spawned into objects.
blck_spawnCratesTiming = "atMissionSpawnGround"; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir". 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. // 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"]; diag_log format["[blckeagles] Dynamic Configs Enabled"];
execVM "\q\addons\custom_server\Configs\blck_dynamicConfigs.sqf"; execVM "\q\addons\custom_server\Configs\blck_dynamicConfigs.sqf";
waitUntil {(isNil "blck_configsExileLoaded") isEqualTo false;}; //waitUntil {(isNil "blck_configsExileLoaded") isEqualTo false;};
waitUntil{blck_dynamicConfigsLoaded}; //waitUntil{blck_dynamicConfigsLoaded};
blck_dynamicConfigsLoaded = nil; //blck_dynamicConfigsLoaded = nil;
}; };
blck_configsLoaded = true; blck_configsLoaded = true;

View File

@ -538,7 +538,10 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
"ItemBloodBag_Empty", "ItemBloodBag_Full", "ItemAntibiotic", "nanite_cream_epoch", "nanite_pills_epoch"]; "ItemBloodBag_Empty", "ItemBloodBag_Full", "ItemAntibiotic", "nanite_cream_epoch", "nanite_pills_epoch"];
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","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", 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"]; "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", 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"], ["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"],
["MMG_01_hex_F","150Rnd_93x64_Mag"], ["MMG_01_hex_F","150Rnd_93x64_Mag"],
["MMG_01_tan_F","150Rnd_93x64_Mag"], ["MMG_01_tan_F","150Rnd_93x64_Mag"],
["MMG_02_black_F","150Rnd_93x64_Mag"], ["MMG_02_black_F","130Rnd_338_Mag"],
["MMG_02_camo_F","150Rnd_93x64_Mag"], ["MMG_02_camo_F","130Rnd_338_Mag"],
["MMG_02_sand_F","150Rnd_93x64_Mag"], ["MMG_02_sand_F","130Rnd_338_Mag"],
["srifle_DMR_02_camo_F","10Rnd_338_Mag"], ["srifle_DMR_02_camo_F","10Rnd_338_Mag"],
["srifle_DMR_02_F","10Rnd_338_Mag"], ["srifle_DMR_02_F","10Rnd_338_Mag"],
["srifle_DMR_02_sniper_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_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] ["10Rnd_93x64_DMR_05_Mag" ,1,4],
// Apex Ammo // Apex Ammo
["130Rnd_338_Mag",1,3],
["150Rnd_93x64_Mag",1,3]
], ],
[ // Optics [ // 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_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], ["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], ["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], ["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", "caffeinepills_epoch", "orlistat_epoch", "ItemCanteen_Empty", "ItemCanteen_Clean", "ItemBottlePlastic_Empty",
"ItemBottlePlastic_Clean", "atropine_epoch", "ItemWaterPurificationTablets", "ItemPainKillers", "ItemDefibrillator", "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", "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"], ["Arifle_MX_SW_Black_F","100Rnd_65x39_caseless_mag_Tracer"],
["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"], ["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"],
["MMG_01_hex_F","150Rnd_93x64_Mag"], ["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_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_F","10Rnd_338_Mag"],
["srifle_DMR_03_tan_F","10Rnd_338_Mag"],
["srifle_DMR_04_Tan_F","10Rnd_338_Mag"], ["srifle_DMR_04_Tan_F","10Rnd_338_Mag"],
["srifle_DMR_05_hex_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 [//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_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] ["10Rnd_93x64_DMR_05_Mag" ,1,4],
// Apex Ammo
["130Rnd_338_Mag",1,3],
["150Rnd_93x64_Mag",1,3]
], ],
[ // Optics [ // 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_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], ["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], ["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], ["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", "caffeinepills_epoch", "orlistat_epoch", "ItemCanteen_Empty", "ItemCanteen_Clean", "ItemBottlePlastic_Empty",
"ItemBottlePlastic_Clean", "atropine_epoch", "ItemWaterPurificationTablets", "ItemPainKillers", "ItemDefibrillator", "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", "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], ["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], ["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], ["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", "caffeinepills_epoch", "orlistat_epoch", "ItemCanteen_Empty", "ItemCanteen_Clean", "ItemBottlePlastic_Empty",
"ItemBottlePlastic_Clean", "atropine_epoch", "ItemWaterPurificationTablets", "ItemPainKillers", "ItemDefibrillator", "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 [ // 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_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], ["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], ["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], ["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", "caffeinepills_epoch", "orlistat_epoch", "ItemCanteen_Empty", "ItemCanteen_Clean", "ItemBottlePlastic_Empty",
"ItemBottlePlastic_Clean", "atropine_epoch", "ItemWaterPurificationTablets", "ItemPainKillers", "ItemDefibrillator", "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", "nanite_pills_epoch"
@ -1077,7 +1096,7 @@ blck_highPoweredLoot = blck_BoxLoot_Orange;
blck_supportLoot = 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"; diag_log "[blckeagls] Configurations for Epoch Loaded";
blck_configsEpochLoaded = true; blck_configsEpochLoaded = true;

View File

@ -710,9 +710,9 @@ for examples of how you can do this see \Major\Compositions.sqf
["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"], ["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"],
["MMG_01_hex_F","150Rnd_93x64_Mag"], ["MMG_01_hex_F","150Rnd_93x64_Mag"],
["MMG_01_tan_F","150Rnd_93x64_Mag"], ["MMG_01_tan_F","150Rnd_93x64_Mag"],
["MMG_02_black_F","150Rnd_93x64_Mag"], ["MMG_02_black_F","130Rnd_338_Mag"],
["MMG_02_camo_F","150Rnd_93x64_Mag"], ["MMG_02_camo_F","130Rnd_338_Mag"],
["MMG_02_sand_F","150Rnd_93x64_Mag"], ["MMG_02_sand_F","130Rnd_338_Mag"],
["srifle_DMR_02_camo_F","10Rnd_338_Mag"], ["srifle_DMR_02_camo_F","10Rnd_338_Mag"],
["srifle_DMR_02_F","10Rnd_338_Mag"], ["srifle_DMR_02_F","10Rnd_338_Mag"],
["srifle_DMR_02_sniper_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_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] ["10Rnd_93x64_DMR_05_Mag" ,1,5],
// Apex Ammo
["130Rnd_338_Mag",1,3],
["150Rnd_93x64_Mag",1,3]
], ],
[ // Optics [ // Optics
["optic_SOS",1,2],["optic_LRPS",1,2],["optic_DMS",1,2], ["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"], ["Arifle_MX_SW_Black_F","100Rnd_65x39_caseless_mag_Tracer"],
["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"], ["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"],
["MMG_01_hex_F","150Rnd_93x64_Mag"], ["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_camo_F","10Rnd_338_Mag"],
["srifle_DMR_03_F","10Rnd_338_Mag"], ["srifle_DMR_03_F","10Rnd_338_Mag"],
["srifle_DMR_04_Tan_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_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] ["10Rnd_93x64_DMR_05_Mag" ,1,4],
// Apex Ammo
["130Rnd_338_Mag",1,3],
["150Rnd_93x64_Mag",1,3]
], ],
[ // Optics [ // 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_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] ["Exile_Item_Sand",4,10],["Exile_Item_Cement",4,10],["Exile_Item_WaterCanisterDirtyWater",1,3],["Exile_Item_FuelCanisterFull",1,3]
], ],
[//Items [//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_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_FireExtinguisher","Exile_Item_OilCanister","Exile_Item_Screwdriver","Exile_Item_DuctTape","Binocular","Rangefinder","ItemGPS","ItemMap","ItemCompass","ItemRadio","ItemWatch",
"Exile_Item_XM8"] "Exile_Item_XM8"
], ],
[ // Backpacks [ // Backpacks

View File

@ -675,6 +675,13 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR
"Exile_Item_InstantCoffee" "Exile_Item_InstantCoffee"
]; ];
#ifdef useCUP
#endif
#ifdef useRHS
#endif
blck_ConsumableItems = blck_Meats + blck_Drink + blck_Food; blck_ConsumableItems = blck_Meats + blck_Drink + blck_Food;
blck_throwableExplosives = ["HandGrenade","MiniGrenade"]; blck_throwableExplosives = ["HandGrenade","MiniGrenade"];
blck_otherExplosives = ["1Rnd_HE_Grenade_shell","3Rnd_HE_Grenade_shell","DemoCharge_Remote_Mag","SatchelCharge_Remote_Mag"]; 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_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], ["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 [ // 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_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] ["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 [//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_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_FireExtinguisher","Exile_Item_OilCanister","Exile_Item_Screwdriver","Exile_Item_DuctTape","Binocular","Rangefinder","ItemGPS","ItemMap","ItemCompass","ItemRadio","ItemWatch",
"Exile_Item_XM8"] "Exile_Item_XM8"
], ],
[ // Backpacks [ // Backpacks

View File

@ -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_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_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 // 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_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 blck_timeAccelerationDay = 2; // Daytime time accelearation

View File

@ -11,14 +11,22 @@
http://creativecommons.org/licenses/by-nc-sa/4.0/ http://creativecommons.org/licenses/by-nc-sa/4.0/
*/ */
#define useAPEX #define useAPEX
//#define useDynamicSimulation #define blck_milServer
//#define blck_debugMode #define blck_useCUP
//#define blck_milServer #define blck_useRHS
//////////////////////////// ////////////////////////////
// Do not touch anything below this line // 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 onFoot 1
#define inVehicle 2 #define inVehicle 2
@ -29,5 +37,15 @@
#define groupSpawned 2 #define groupSpawned 2
#define timesSpawned 3 #define timesSpawned 3
#define respawnAt 4 #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

View File

@ -103,7 +103,7 @@ if (blck_modType isEqualTo "Exile") then
{ {
_classnameList = (missionConfigFile >> "CfgExileArsenal" ) call BIS_fnc_getCfgSubClasses; _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; private _temp = [_x] call bis_fnc_itemType;
//diag_log _temp; //diag_log _temp;

View File

@ -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"] "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 for "_i" from 1 to 8 do
{ {
_missionLandscape pushBack selectRandom [ _missionLandscape pushBack selectRandom [

View File

@ -47,15 +47,14 @@ blck_configsLoaded = nil;
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_custom_config.sqf"; call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_custom_config.sqf";
#ifdef GRGserver #ifdef GRGserver
diag_log "[blckegls] Running Ghostridergaming Version"; diag_log "[blckeagls] Running GRG Version";
#endif #endif
#ifdef useDynamicSimulation
diag_log "[blckegls] dynamic simulation manager enabled"; switch (blck_simulationManager) do
#else case 1: {diag_log "[blckeagls] dynamic simulation manager enabled"};
diag_log "[blckegls] blckegls simulation manager enabled"; case 2: {diag_log "[blckeagls] blckeagls simulation manager enabled"};
#endif case 0: {diag_log "[blckeagls] simulation management disabled"};
//_marker = createMarker ["HomeBase",[24000,18000,0]]; };
//_marker setMarkerColor "ColorBlack";
//_marker setMarkerType "hd_flag";
diag_log format["[blckeagls] for HC version %1 Build %2 Loaded in %3 seconds",_blck_versionDate,_blck_version,diag_tickTime - _blck_loadingStartTime]; //,blck_modType]; 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; [] spawn blck_fnc_HC_monitor;

View File

@ -11,24 +11,19 @@
if ( !(isServer) || hasInterface) exitWith{}; if ( !(isServer) || hasInterface) exitWith{};
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "blck_defines.hpp";
if !(isNil "blck_Initialized") exitWith{}; if !(isNil "blck_Initialized") exitWith{};
private _blck_loadingStartTime = diag_tickTime; private _blck_loadingStartTime = diag_tickTime;
#include "\q\addons\custom_server\init\build.sqf"; #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]; 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 // compile functions
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_functions.sqf"; call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_functions.sqf";
waitUntil {(isNil "blck_functionsCompiled") isEqualTo false;}; waitUntil {(isNil "blck_functionsCompiled") isEqualTo false;};
waitUntil{blck_functionsCompiled}; waitUntil{blck_functionsCompiled};
blck_functionsCompiled = nil; 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; blck_modType = call blck_fnc_getModType;
publicVariable "blck_modType"; publicVariable "blck_modType";
@ -37,16 +32,26 @@ execVM "\q\addons\custom_server\Configs\blck_configs.sqf";
waitUntil {(isNil "blck_configsLoaded") isEqualTo false;}; waitUntil {(isNil "blck_configsLoaded") isEqualTo false;};
waitUntil{blck_configsLoaded}; waitUntil{blck_configsLoaded};
blck_configsLoaded = nil; 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 // Load any user-defined specifications or overrides
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_custom_config.sqf"; 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. // spawn map addons to give the server time to position them before spawning in crates etc.
if (blck_spawnMapAddons) then if (blck_spawnMapAddons) then
{ {
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\MapAddons\MapAddons_init.sqf"; call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\MapAddons\MapAddons_init.sqf";
}else{ }else{
diag_log "[blckegls] Map Addons disabled"; diag_log "[blckeagls] Map Addons disabled";
}; };
blck_spawnMapAddons = nil; 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\Static\GMS_StaticMissions_init.sqf";
[] execVM "q\addons\custom_server\Missions\UMS\GMS_UMS_init.sqf"; // loads functions and spawns any static missions. [] 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 switch (blck_simulationManager) do
diag_log "[blckegls] dynamic simulation manager enabled"; {
#else case 2: {diag_log "[blckeagls] dynamic simulation manager enabled"};
diag_log "[blckegls] blckegls 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 #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] 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 ---- >>>>"]; diag_log format["blckeagls] waiting for players to join ---- >>>>"];

View File

@ -1,6 +1,6 @@
private ["_version","_versionDate"]; private ["_version","_versionDate"];
blck_version = "6.84 Build 149"; blck_version = "6.86 Build 155";
_blck_version = blck_version; _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; blck_pvs_version = _blck_version;
publicVariable blck_pvs_version; publicVariable blck_pvs_version;

View File

@ -199,6 +199,7 @@ systemChat _logging;
//diag_log format["_cb = %1%2",endl,_cb]; //diag_log format["_cb = %1%2",endl,_cb];
_configuredStatics = []; _configuredStatics = [];
_configuredStaticsPositions = [];
_configuredUnits = []; _configuredUnits = [];
/* /*
This bit will set up the garrison for each building having units and / or statics inside it or on top. 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 if (_b isEqualTo _building) then
{ {
_configuredStatics pushBackUnique _x; _configuredStatics pushBackUnique _x;
//_configuredStaticsPositions pushBack (getPosATL _x) vectorDiff CENTER;
if (_staticsText isEqualTo "") then if (_staticsText isEqualTo "") then
{ {
_staticsText = format['["%1",%2,%3]',typeOf _x,(getPosATL _x) vectorDiff (getPosATL _b),getDir _x]; _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]; _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 // Setup info for remaining static/emplaced weapons
/////////////////// ///////////////////
_count = 0;
_cb = _cb + format["_missionEmplacedWeapons = ["]; _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] // ["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']; _line = format[' ["%1",%2,%3]',typeOf _x,(getPosATL _x) vectorDiff CENTER,getDir _x, 'true','true'];
systemChat _line; systemChat _line;
if (_forEachIndex == 0) then if (_count == 0) then
{ {
_cb = _cb + format["%1%2",endl,_line]; _cb = _cb + format["%1%2",endl,_line];
} else { } else {
_cb = _cb + format[",%1%2",endl,_line]; _cb = _cb + format[",%1%2",endl,_line];
}; };
_count = _count + 1;
}; };
}forEach allMissionObjects "StaticWeapon"; }forEach allMissionObjects "StaticWeapon";

View File

@ -2,34 +2,49 @@
blck Mission system by Ghostrider [GRG] blck Mission system by Ghostrider [GRG]
Loosely based on the AI mission system by blckeagls ver 2.0.2 Loosely based on the AI mission system by blckeagls ver 2.0.2
Contributions by Narines: bug fixes, testing, infinite ammo fix. 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: 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. 6.84 Build 145
Added: tools to pull data from mission.sqm pre-formated for use in static or dynamic blckeagls missions. 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
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
Add details on configs for enabling this and setting the maximum 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. 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: 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: 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: 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: 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: Captive missions now complete properly.
Fixed: Hostage 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 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) 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)