diff --git a/@epochhive/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread - Copy.sqf b/@epochhive/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread - Copy.sqf new file mode 100644 index 0000000..c9a7021 --- /dev/null +++ b/@epochhive/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread - Copy.sqf @@ -0,0 +1,74 @@ +/* + Call as : [] call blck_fnc_mainThread; + + Run a loop that checks data arrays regarding: + - whether it is time to delete the mission objects at a specific location + - whether it is time to delete live AI associated with a specific mission + By Ghostrider-DbD- + Last modified 1-22-17 +*/ +private ["_timer10Min","_timer1sec","_timer5sec","_timer5min","_modType","_coords"]; +_timer1sec = diag_tickTime; +_timer5sec = diag_tickTime; +_timer20sec = diag_tickTime; +//_timer1min = diag_tickTime; +_timer5min = diag_tickTime; +//_timer10Min = diag_tickTime; +_modType = [] call blck_fnc_getModType; + + +while {true} do +{ + uiSleep 1; // defined in custom_server\compiles\blck_variables.sqf + if ((diag_tickTime - _timer1sec) > 3) then + { + [] call blck_fnc_vehicleMonitor; + _timer1sec = diag_tickTime; + }; + if ((diag_tickTime - _timer5sec) > 15) then + { + [] call blck_fnc_cleanupAliveAI; + [] call blck_fnc_cleanupObjects; + [] call blck_fnc_cleanupDeadAI; + if (_modType isEqualTo "Epoch") then { + [] call blck_fnc_cleanEmptyGroups; + }; // Exile cleans up empty groups automatically so this should not be needed with that mod. + + diag_log format["_fnc_mainThread:: (37) blck_pendingMissions = %1", blck_pendingMissions]; + { + if (blck_debugLevel > 2) then {diag_log format["_fnc_mainThread:: -- >> _x = %1 and _x select 6 = %2",_x, _x select 6];}; + if (_x select 6 > 0) then // The mission is not running, check the time left till it is spawned + { + if (diag_tickTime > (_x select 6)) then // time to spawn the mission + { + private _coords = [] call blck_fnc_FindSafePosn; + _coords pushback 0; + private["_missionName","_missionPath"]; + _missionName = selectRandom (_x select 0); + _missionPath = _x select 1; + [_coords,_x] execVM format["\q\addons\custom_server\Missions\%1\%2.sqf",_missionPath,_missionName]; + }; + }; + }forEach blck_pendingMissions; + _timer5sec = diag_tickTime; + + }; + + if ((diag_tickTime - _timer5min) > 300) then { + if (blck_timeAcceleration) then + { + //if (blck_debugON) then {diag_log "[blckeagls] calling time acceleration module";}; + [] call blck_fnc_timeAcceleration; + }; + if (blck_useHC) then {[] call blck_fnc_monitorHC;}; // Not working + _timer5min = diag_tickTime; + }; + + /* + if ((diag_tickTime - _timer10Min) > 600) then + { + // Reserved for future use + _timer10Min = diag_tickTime; + }; + */ +}; diff --git a/@epochhive/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread.sqf b/@epochhive/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread.sqf index 9a26e55..c7cbf24 100644 --- a/@epochhive/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread.sqf +++ b/@epochhive/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread.sqf @@ -5,99 +5,38 @@ - whether it is time to delete the mission objects at a specific location - whether it is time to delete live AI associated with a specific mission By Ghostrider-DbD- - Last modified 1-22-17 + Last modified 1-24-17 */ -private ["_timer10Min","_timer1min","_timer5min","_modType","_coords"]; +diag_log format["starting _fnc_mainThread with time = %1",diag_tickTime]; +private["_modType","_timer1sec","_timer20sec","_timer5min"]; _timer1sec = diag_tickTime; -_timer5sec = diag_tickTime; _timer20sec = diag_tickTime; -//_timer1min = diag_tickTime; _timer5min = diag_tickTime; -//_timer10Min = diag_tickTime; _modType = [] call blck_fnc_getModType; -_ai = []; -_obj = []; - while {true} do { - uiSleep 1; // defined in custom_server\compiles\blck_variables.sqf - if ((diag_tickTime - _timer1sec) > 1) then + uiSleep 1; + diag_log format["mainThread:: -- > time = %1",diag_tickTime]; + if (diag_tickTime - _timer1sec > 1000) then { [] call blck_fnc_vehicleMonitor; - _timer1sec = diag_tickTime; + _timer1sec - diag_tickTime; }; - if ((diag_tickTime - _timer5sec) > 5) then + if (diag_tickTime - _timer20sec > 20) then { - //diag_log format["_fnc_mainThread:: (30) diag_tickTime = %1", diag_tickTime]; - //diag_log format["_fnc_mainThread:: (31) blck_liveMissionAI = %1", blck_liveMissionAI]; - _ai = +blck_liveMissionAI; + [] call blck_fnc_cleanupAliveAI; + [] call blck_fnc_cleanupObjects; + [] call blck_fnc_cleanupDeadAI; + [] call blck_fnc_spawnPendingMissions; + if (_modType isEqualTo "Epoch") then { - //diag_log format["_fnc_mainThread:: (34) evaluating liveAIArray %1 with diag_tickTime %2", _x,diag_tickTime]; - if (diag_tickTime > (_x select 1) ) then { - //diag_log format["_fnc_mainTread:: cleaning up AI group %1",_x]; - [_x select 0] call blck_fnc_cleanupAliveAI; - blck_liveMissionAI set[ _forEachIndex, -1]; - blck_liveMissionAI = blck_liveMissionAI - [-1]; // Remove that list of live AI from the list. - //diag_log format["_fnc_mainTread:: blck_liveMissionAI updated from %1",_ai]; - if (blck_debugLevel > 1) then {diag_log format["_fnc_mainTread:: blck_liveMissionAI updated to %1",blck_liveMissionAI];}; - }; - }forEach _ai; - //diag_log format["_fnc_mainThread:: (44) blck_oldMissionObjects = %1", blck_oldMissionObjects]; - _obj = +blck_oldMissionObjects; - - { - //diag_log format["mainThread::-->> evaluating missionObjects = %1 diag_tickTime %2",_x,diag_tickTime]; - if (diag_tickTime > (_x select 1) ) then { - //diag_log format["_fnc_mainTread:: cleaning up mission objects %1",_x]; - [_x select 0] call blck_fnc_cleanupObjects; - blck_oldMissionObjects set[_forEachIndex, -1]; - blck_oldMissionObjects = blck_oldMissionObjects - [-1]; - //diag_log format["_fnc_mainTread:: blck_oldMissionObjects updated from %1",_obj]; - if (blck_debugLevel > 1) then {diag_log format["_fnc_mainTread:: blck_oldMissionObjects updated to %1",blck_oldMissionObjects];}; - }; - }forEach _obj; - //diag_log format["_fnc_mainThread:: (59) blck_fnc_cleanupDeadAI = %1", blck_deadAI]; - [] call blck_fnc_cleanupDeadAI; - - if (_modType isEqualTo "Epoch") then { [] call blck_fnc_cleanEmptyGroups; - }; // Exile cleans up empty groups automatically so this should not be needed with that mod. - - //diag_log format["_fnc_mainThread:: (66) blck_pendingMissions = %1", blck_pendingMissions]; - { - if (blck_debugLevel > 2) then {diag_log format["_fnc_mainThread:: -- >> _x = %1 and _x select 6 = %2",_x, _x select 6];}; - if (_x select 6 > 0) then // The mission is not running, check the time left till it is spawned - { - if (diag_tickTime > (_x select 6)) then // time to spawn the mission - { - private _coords = [] call blck_fnc_FindSafePosn; - _coords pushback 0; - private["_missionName","_missionPath"]; - _missionName = selectRandom (_x select 0); - _missionPath = _x select 1; - [_coords,_x] execVM format["\q\addons\custom_server\Missions\%1\%2.sqf",_missionPath,_missionName]; - }; - }; - }forEach blck_pendingMissions; - _timer5sec = diag_tickTime; - + }; // Exile cleans up empty groups automatically so this should not be needed with that mod. + _timer20sec = diag_tickTime; }; - - if ((diag_tickTime - _timer5min) > 300) then { - if (blck_timeAcceleration) then - { - //if (blck_debugON) then {diag_log "[blckeagls] calling time acceleration module";}; - [] call blck_fnc_timeAcceleration; - }; - if (blck_useHC) then {[] call blck_fnc_monitorHC;}; // Not working - _timer5min = diag_tickTime; - }; - - /* - if ((diag_tickTime - _timer10Min) > 600) then + if (diag_tickTime - _timer5min > 300) then { - // Reserved for future use - _timer10Min = diag_tickTime; + [] call blck_fnc_timeAcceleration; }; - */ + }; diff --git a/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_cleanUpObjects.sqf b/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_cleanUpObjects.sqf index d5bd444..1561c95 100644 --- a/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_cleanUpObjects.sqf +++ b/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_cleanUpObjects.sqf @@ -6,25 +6,49 @@ for DBD Clan By Ghostrider-DBD- Copyright 2016 - Last Modified 1-22-17 + Last Modified 1-24-17 */ -params["_objects"]; -{ - if ((typeOf _x) isKindOf "LandVehicle") then +_fn_deleteObjects = { + params["_objects"]; + if (blck_debugLevel > 0) then {diag_log format["_fn_deleteObjects:: -> _objects = %1",_objects];}; { - if !(_x getVariable["releasedToPlayers",false]) then + if ((typeOf _x) isKindOf "LandVehicle") then { - private _crew = crew _x; + if !(_x getVariable["releasedToPlayers",false]) then { - [_x] call blck_fnc_deleteAI; - }forEach _crew; + private _crew = crew _x; + { + [_x] call blck_fnc_deleteAI; + }forEach _crew; + }; + _x setVariable["blck_DeleteAt",0]; // Schedule it to be deleted by fnc_vehicleMonitor immediately + } else { + if (blck_debugLevel > 1) then {diag_log format["_fnc_cleanUpObjects: -> deleting object %1",_x];}; + deleteVehicle _x; }; - _x setVariable["blck_DeleteAt",0]; // Schedule it to be deleted by fnc_vehicleMonitor immediately - }; -} forEach _objects; + } forEach _objects; +}; - +diag_log format["_fnc_cleanUpObjects called at %1",diag_tickTime]; +private["_oldObjs"]; +for "_i" from 1 to (count blck_oldMissionObjects) do +{ + if (_i <= count blck_oldMissionObjects) then + { + _oldObjs = blck_oldMissionObjects select (_i - 1); + diag_log format["_fnc_cleanUpObjects ::-->> evaluating missionObjects = %1 with delete time of %3 and diag_tickTime %2",_oldObjs,diag_tickTime, _oldObjs select 1]; + if (diag_tickTime > (_oldObjs select 1) ) then { + diag_log format["_fn_deleteObjects:: (50) cleaning up mission objects %1",_oldObjs]; + [_oldObjs select 0] call _fn_deleteObjects; + uiSleep 0.1; + blck_oldMissionObjects set[(_i - 1), -1]; + blck_oldMissionObjects = blck_oldMissionObjects - [-1]; + //diag_log format["_fn_deleteObjects:: blck_oldMissionObjects updated from %1",_obj]; + if (blck_debugLevel > 1) then {diag_log format["_fn_deleteObjects:: (48) blck_oldMissionObjects updated to %1",blck_oldMissionObjects];}; + }; + }; +}; diff --git a/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_endMission.sqf b/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_endMission.sqf index 5831cf2..773ebb7 100644 --- a/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_endMission.sqf +++ b/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_endMission.sqf @@ -5,7 +5,7 @@ Updates the mission que. Updates mission markers. By Ghostrider-DbD- - 1/22/17 + 1/24/17 */ if (blck_useSignalEnd) then @@ -22,10 +22,10 @@ [_mines] spawn blck_fnc_clearMines; //diag_log format["_fnc_endMission: (23) _objects = %1",_objects]; uisleep 0.1; - [_objects, blck_cleanupCompositionTimer] spawn blck_fnc_addObjToQue; + [_objects, (blck_cleanupCompositionTimer)] spawn blck_fnc_addObjToQue; //diag_log format["_fnc_endMission:: (26) _blck_AllMissionAI = %1",_blck_AllMissionAI]; uisleep 0.1; - [_blck_AllMissionAI,blck_AliveAICleanUpTimer] spawn blck_fnc_addLiveAItoQue; + [_blck_AllMissionAI, (blck_AliveAICleanUpTimer)] spawn blck_fnc_addLiveAItoQue; [["end",_endMsg,_blck_localMissionMarker select 2]] call blck_fnc_messageplayers; [_blck_localMissionMarker select 1, _markerClass] execVM "debug\missionCompleteMarker.sqf"; [_blck_localMissionMarker select 0] execVM "debug\deleteMarker.sqf"; diff --git a/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_missionSpawner.sqf b/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_missionSpawner.sqf index 67e552b..ebecf84 100644 --- a/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_missionSpawner.sqf +++ b/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_missionSpawner.sqf @@ -3,7 +3,7 @@ for DBD Clan By Ghostrider-DBD- Copyright 2016 - Last modified 1/22/17 + Last modified 1/24/17 */ private ["_crates","_aiGroup","_objects","_groupPatrolRadius","_missionLandscape","_mines","_blck_AllMissionAI","_blck_localMissionMarker","_AI_Vehicles","_timeOut","_aiDifficultyLevel"]; @@ -149,8 +149,11 @@ else _crates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_crateLoot,_lootCounts]]] call blck_fnc_spawnMissionCrates; }; -// un-comment this if you want crates cleaned up when the rest of the mission objects are removed. -//_objects append _crates; + +if (blck_cleanUpLootChests) then +{ + _objects append _crates; +}; if (blck_debugLevel > 0) then { @@ -237,27 +240,21 @@ if (blck_useStatic && (_noEmplacedWeapons > 0)) then _blck_AllMissionAI append (_temp select 1); }; -if ((random(1) < _chanceReinforcements)) then +/* +if (blck_enableReinforcements && (random(1) < _chanceReinforcements)) then { _weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout; - private["_grpReinforcements"]; - _grpReinforcements = grpNull; - - //diag_log format["[blckeagls] missionSpawner:: calling in reinforcements: Current mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName]; - [] spawn { - //[_coords,_noPara,_aiDifficultyLevel,_chanceLoot,_reinforcementLootCounts,_weaponList,_uniforms,_headgear,_chanceHeliPatrol] call blck_fnc_Reinforcements; - //waitUntil {_grpReinforcements != grpNull}; - //diag_log format["[blckeagls] missionSpawner::reinforcement spawner started: Current mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName]; - }; - if !(_grpReinforcements isEqualTo grpNull) then + if (blck_debugLevel > 0) then { - _blck_AllMissionAI = _blck_AllMissionAI + (units _grpReinforcements); - //diag_log format["missionSpawner:: _grpReinforcements = %1",_grpReinforcements]; + diag_log format["[blckeagls] missionSpawner:: calling in reinforcements: Current mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName]; + // ["_pos","_numAI","_skillAI","_chanceLoot","_lootCounts","_weapons","_uniforms","_headgear","_patrol"]; + [_coords,_noPara,_aiDifficultyLevel,_chanceLoot,_reinforcementLootCounts,_weaponList,_uniforms,_headgear,_chanceHeliPatrol] spawn blck_fnc_callInReinforcements; }; }; +*/ // Trigger for mission end -//diag_log format["[blckeagls] mission Spawner _endCondition = %1",_endCondition]; +diag_log format["[blckeagls] mission Spawner _endCondition = %1",_endCondition]; private["_missionComplete","_endIfPlayerNear","_endIfAIKilled"]; _missionComplete = -1; _startTime = diag_tickTime; @@ -268,14 +265,14 @@ switch (_endCondition) do case "allUnitsKilled": {_endIfPlayerNear = false;_endIfAIKilled = true;}; case "allKilledOrPlayerNear": {_endIfPlayerNear = true;_endIfAIKilled = true;}; }; -//diag_log format["missionSpawner :: (269) _endIfPlayerNear = %1 _endIfAIKilled= %2",_endIfPlayerNear,_endIfAIKilled]; +diag_log format["missionSpawner :: (269) _endIfPlayerNear = %1 _endIfAIKilled= %2",_endIfPlayerNear,_endIfAIKilled]; private["_locations"]; _locations = [_coords] + _crates; -//diag_log format["missionSpawner:: Waiting for player to satisfy mission end criteria of _endIfPlayerNear %1 with _endIfAIKilled %2",_endIfPlayerNear,_endIfAIKilled]; +diag_log format["missionSpawner:: Waiting for player to satisfy mission end criteria of _endIfPlayerNear %1 with _endIfAIKilled %2",_endIfPlayerNear,_endIfAIKilled]; while {_missionComplete isEqualTo -1} do { - if (blck_debugLevel isEqualTo 3) exitWith {uiSleep 120}; + if (blck_debugLevel isEqualTo 3) exitWith {uiSleep 300}; if ((_endIfPlayerNear) && [_coords,20] call blck_fnc_playerInRange) exitWith {}; if ((_endIfAIKilled) && ({alive _x} count _blck_AllMissionAI) < 1 ) exitWith {}; //diag_log format["missionSpawner:: (283) missionCompleteLoop - > players near = %1 and ai alive = %2",[_coords,20] call blck_fnc_playerInRange, {alive _x} count _blck_AllMissionAI]; diff --git a/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_spawnPendingMissions.sqf b/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_spawnPendingMissions.sqf new file mode 100644 index 0000000..fb2ae6a --- /dev/null +++ b/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_spawnPendingMissions.sqf @@ -0,0 +1,24 @@ +/* + for DBD Clan + By Ghostrider-DBD- + Copyright 2016 + Last modified 1/24/17 + checks the status of each entry in +*/ + +diag_log format["_fnc_spawnPendingMissions:: blck_pendingMissions = %1", blck_pendingMissions]; +private["_coords","_missionName","_missionPath"]; +{ + if (blck_debugLevel > 2) then {diag_log format["_fnc_spawnPendingMissions:: -- >> _x = %1 and _x select 6 = %2",_x, _x select 6];}; + if (_x select 6 > 0) then // The mission is not running, check the time left till it is spawned + { + if (diag_tickTime > (_x select 6)) then // time to spawn the mission + { + _coords = [] call blck_fnc_FindSafePosn; + _coords pushback 0; + _missionName = selectRandom (_x select 0); + _missionPath = _x select 1; + [_coords,_x] execVM format["\q\addons\custom_server\Missions\%1\%2.sqf",_missionPath,_missionName]; + }; + }; +}forEach blck_pendingMissions; \ No newline at end of file diff --git a/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_callInReinforcements.sqf b/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_callInReinforcements.sqf index b682365..fae0a8c 100644 --- a/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_callInReinforcements.sqf +++ b/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_callInReinforcements.sqf @@ -14,31 +14,32 @@ _headgear, _patrol ] call blck_spawnReinforcements - 1/23/17 + + Last Modified 1/23/17 */ params["_pos","_numAI","_skillAI","_chanceLoot","_lootCounts","_weapons","_uniforms","_headgear","_patrol"]; -diag_log format["reinforcements:: Called with parameters _pos %1 _numAI %2 _skillAI %3 _chanceLoot %4",_pos,_numAI,_skillAI,_chanceLoot]; +diag_log format["_fnc_callInReinforcements:: Called with parameters _pos %1 _numAI %2 _skillAI %3 _chanceLoot %4",_pos,_numAI,_skillAI,_chanceLoot]; private["_chopperType","_chopperTypeArmed","_spawnPos","_spawnVector","_spawnDistance"]; // spawn an unarmed heli -_chopperType = selectRandom["B_Heli_Transport_03_unarmed_EPOCH","O_Heli_Light_02_unarmed_EPOCH","I_Heli_Transport_02_EPOCH"]; +_chopperType = selectRandom blck_AIHelis; // ["B_Heli_Transport_03_unarmed_EPOCH","O_Heli_Light_02_unarmed_EPOCH","I_Heli_Transport_02_EPOCH"]; -diag_log format["reinforcements:: _chopperType seleted = %1",_chopperType]; +diag_log format["_fnc_callInReinforcements:: _chopperType selected = %1",_chopperType]; _spawnVector = round(random(360)); -_spawnDistance = 10; //00; // + floor(random(1500)); // We need the heli to be on-site quickly to minimize the chance that a small mission has been completed before the paratroops are deployed and added to the list of live AI for the mission +_spawnDistance = 20; //00; // + floor(random(1500)); // We need the heli to be on-site quickly to minimize the chance that a small mission has been completed before the paratroops are deployed and added to the list of live AI for the mission _dropLoot = (random(1) < _chanceLoot); // Use the new functionality of getPos // https://community.bistudio.com/wiki/getPos -_spawnPos = _pos getPos [_spawnDistance,_spawnVector]; +_spawnPos = _pos; // getPos [_spawnDistance,_spawnVector]; -diag_log format["reinforcements:: vector was %1 with distance %2 yielding a spawn position of %3 at distance from _pos of %4",_spawnVector,_spawnDistance,_spawnPos, (_pos distance2d _spawnPos)]; +diag_log format["_fnc_callInReinforcements:: vector was %1 with distance %2 yielding a spawn position of %3 at distance from _pos of %4",_spawnVector,_spawnDistance,_spawnPos, (_pos distance2d _spawnPos)]; private["_supplyHeli"]; //create helicopter and spawn it @@ -47,12 +48,13 @@ _supplyHeli setDir (_spawnVector -180); _supplyHeli setFuel 1; _supplyHeli engineOn true; _supplyHeli flyInHeight 250; -_supplyHeli setVehicleLock "LOCKED"; +_supplyHeli setVehicleLock "LOCKEDPLAYER"; _supplyHeli addEventHandler ["GetOut",{(_this select 0) setFuel 0;(_this select 0) setDamage 1;}]; - -[_supplyHeli] call blck_fnc_emptyObject; +_supplyHeli addEventHandler ["GetIn",{(_this select 0) setFuel 0;(_this select 0) setDamage 1;}]; [_supplyHeli] call blck_fnc_protectVehicle; +//[_supplyHeli] call blck_fnc_emptyObject; +//[_supplyHeli] call EPOCH_server_setVToken;; private["_grpPilot","_unitPilot"]; // add pilot to helicopter //add pilot (single group) to supply helicopter @@ -80,24 +82,49 @@ _unitPilot moveInDriver _supplyHeli; _grpPilot selectLeader _unitPilot; _grpPilot setVariable["paraGroup",_paraGroup]; +_statementSendHeliHome = "(group this) spawn blck_fnc_sendHeliHome; diag_log 'sending heli home';"; +_statementDropParatroops = "(group this) spawn blck_fnc_spawnParaUnits; diag_log 'spawning para units';"; +_statementDropLootCrate = "(group this) spawn blck_fnc_spawnParaCrate; diag_log 'spawning para crate';"; + //set waypoint for helicopter private["_wpDestination"]; [_grpPilot, 0] setWPPos _pos; [_grpPilot, 0] setWaypointType "MOVE"; [_grpPilot, 0] setWaypointSpeed "FULL"; [_grpPilot, 0] setWaypointBehaviour "CARELESS"; -[_grpPilot, 0] setWaypointCompletionRadius 30; -[_grpPilot, 0] setWaypointStatements ["true","(this) spawn blck_fnc_dropReinforcements;"]; +[_grpPilot, 0] setWaypointCompletionRadius 100; +//[_grpPilot, 0] setWaypointStatements ["true",_statementDropParatroops]; [_grpPilot,0] setWaypointTimeout [0.5,0.5,0.5]; _grpPilot setCurrentWaypoint [_grpPilot,0]; +_waypoint = _grpPilot addWaypoint [_pos,0]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointTimeout [3,6,9]; +_waypoint setWaypointCompletionRadius 150; +//_waypoint setWaypointStatements ["true",_statementDropLootCrate]; +_waypoint setWaypointCombatMode _combatMode; +_waypoint setWaypointBehaviour _behavior; +_waypoint setWaypointSpeed "LIMITED"; + +_waypoint = _grpPilot addWaypoint [_pos,0]; +_waypoint setWaypointType "MOVE"; +_waypoint setWaypointTimeout [3,6,9]; +_waypoint setWaypointCompletionRadius 150; +//_waypoint setWaypointStatements ["true",_statementSendHeliHome]; +_waypoint setWaypointCombatMode _combatMode; +_waypoint setWaypointBehaviour _behavior; +_waypoint setWaypointSpeed "LIMITED"; + //Announce reinforcements are inbound to nearby players private["_message"]; _message = "A Helicopter Carrying Reinforcements was Spotted Near You!"; [["reinforcements",_message,_pos]] call blck_fnc_messageplayers; -diag_log "reinforcements:: helispawned and inbound, message sent"; - +diag_log "_fnc_callInReinforcements:: helispawned and inbound, message sent"; +_grpPilot spawn blck_fnc_spawnParaUnits; +_grpPilot spawn blck_fnc_spawnParaCrate; +uisleep 10; +_grpPilot spawn blck_fnc_sendHeliHome; _supplyHeli setVariable["blck_DeleteAt", (diag_tickTime + 300)]; blck_missionVehicles pushback _supplyHeli; diff --git a/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_dropReinforcements.sqf b/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_dropReinforcements.sqf index ee3fd12..74f53ad 100644 --- a/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_dropReinforcements.sqf +++ b/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_dropReinforcements.sqf @@ -6,8 +6,8 @@ 1/23/17 */ -_grpPilot = _this; - +_pilot = this; +_grpPilot = group _pilot; _params = _grpPilot getVariable["params"]; _params params["_supplyHeli","_numAI","_skillAI","_dropLoot","_lootCounts","_weapons","_uniforms","_headgear","_patrol"]; @@ -15,14 +15,16 @@ diag_log format["_fnc_dropReinforcements:: Called with parameters _supplyHeli %1 diag_log "_fnc_dropReinforcements:: heli on station, calling blck_fnc_spawnParaUnits"; +// params["_supplyHeli","_missionPos","_numAI","_skillAI","_weapons","_uniforms","_headGear"]; [_supplyHeli,_numAI,_skillAI,_weapons,_uniforms,_headgear] spawn blck_fnc_spawnParaUnits; if (_dropLoot) then { diag_log "_fnc_dropReinforcements:: heli on station, calling blck_fnc_spawnParaLoot"; + // params["_supplyHeli","_lootCounts"]; [_supplyHeli,_lootCounts] spawn blck_fnc_spawnParaLoot; }; uiSleep 10; -[_supplyHeli] spawn blck_fnc_sendHeliHome; \ No newline at end of file +[_supplyHeli,_grpPilot] spawn blck_fnc_sendHeliHome; \ No newline at end of file diff --git a/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_sendHeliHome.sqf b/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_sendHeliHome.sqf index 14cb947..908af48 100644 --- a/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_sendHeliHome.sqf +++ b/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_sendHeliHome.sqf @@ -2,14 +2,14 @@ Author: Ghostrider-DbD- Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP License: Attribution-NonCommercial-ShareAlike 4.0 International - called once all tasks required at the mission are complete. + Last Modified 1/23/17 */ - -_grpPilot = _this select 0; -_heli = _this select 1; - +params["_grpPilot"]; +private["_heli","_pilot"]; +_pilot = (units _grpPilot) select 0; +_heli = vehicle _pilot; diag_log "reinforcements deployed:: send heli back to spawn"; - +[[_heli], 300 /* 5 min*/] spawn blck_fnc_addObjToQue; // select a random location abotu 2K from the mission _spawnVector = round(random(360)); _spawnDistance = 2000; @@ -32,35 +32,5 @@ _grpPilot = group this; diag_log "reinforcements:: sending Heli Home"; -// End of sending heli home -//////////////////////// -_fn_cleanupHeli = { - - params["_supplyHeli","_homePos","_grpPilot"]; - // run some tests to be sure everything went OK - - _heliHome = false; - _startTime = diag_tickTime; - - while { !(_heliHome) } do - { - _heliHome = (_supplyHeli distance _pos) < 300; - if ( !_heliHome && ((diag_tickTime - _startTime) > 300) ) then - { - _heliHome = true; - deleteVehicle _supplyHeli; - { - deleteVehicle _x; - }forEach units _grpPilot; - deleteGroup _grpPilot; - }; - - uiSleep 2; - }; -}; - -[_supplyHeli,_spawnPos,_grpPilot] spawn _fn_cleanupHeli; - -diag_log "reinforcements:: script done"; diff --git a/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaCrate.sqf b/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaCrate.sqf index a7046e2..d5da18f 100644 --- a/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaCrate.sqf +++ b/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaCrate.sqf @@ -10,7 +10,6 @@ ] call blck_spawnHeliParaCrate */ - params["_supplyHeli","_lootCounts"]; private ["_chute","_crate"]; @@ -26,12 +25,7 @@ _offset = _supplyHeli getPos [10, _dir]; //open parachute and attach to crate _chute = createVehicle ["I_Parachute_02_F", [100, 100, 100], [], 0, "FLY"]; -private["_modType"]; -_modType = call blck_fnc_getModType; -if (_modType isEqualTo "Epoch") then -{ - [_chute] call blck_fnc_protectVehicle; -}; +[_chute] call blck_fnc_protectVehicle; _chute setPos [_offset select 0, _offset select 1, 100 ]; //(_offset select 2) - 10]; diag_log format["_fnc_spawnParaCrate:: chute spawned yielding object %1 at postion %2", _chute, getPos _chute]; @@ -86,3 +80,4 @@ _fn_monitorCrate = { }; [_crate,_chute] call _fn_monitorCrate; +[[_crate], 1200 /* 20 min*/] spawn blck_fnc_addObjToQue; \ No newline at end of file diff --git a/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaUnits.sqf b/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaUnits.sqf index 29c4394..a077160 100644 --- a/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaUnits.sqf +++ b/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaUnits.sqf @@ -19,11 +19,12 @@ _paraGroup setVariable ["blck_group",true,true]; diag_log format["_fnc_spawnParaUnits:: paratrooper group created; spawning %1 units",_numAI]; - //https://forums.bistudio.com/topic/127341-how-to-get-cargo-capacity-and-costweight-of-stuff-into-sqf/ - //_veh = TypeOf (_supplyHeli); //for example - //_maxpeople = getNumber (configFile >> "CfgVehicles" >> _veh >> "transportSoldier"); - //if ( (_maxpeople - 1) < _numAI) then {_numAI = _maxpeople - 1;}; // calculate the max troops carried by the chopper minus 1 for the pilot who is already on board and adjust the number of AI to spawn as needed. -_launcherType = "none"; +//https://forums.bistudio.com/topic/127341-how-to-get-cargo-capacity-and-costweight-of-stuff-into-sqf/ +//_veh = TypeOf (_supplyHeli); //for example +//_maxpeople = getNumber (configFile >> "CfgVehicles" >> _veh >> "transportSoldier"); +//if ( (_maxpeople - 1) < _numAI) then {_numAI = _maxpeople - 1;}; // calculate the max troops carried by the chopper minus 1 for the pilot who is already on board and adjust the number of AI to spawn as needed. + + _launcherType = "none"; _sniperExists = false; /* @@ -65,12 +66,15 @@ for "_i" from 1 to _numAI do { _offset = _supplyHeli getPos [10, _dir]; _chute = createVehicle ["Steerable_Parachute_F", [100, 100, 200], [], 0, "FLY"]; + [_chute] call blck_fnc_protectVehicle; + /* private["_modType"]; _modType = call blck_fnc_getModType; if (_modType isEqualTo "Epoch") then { - [_chute] call blck_fnc_protectVehicle; + [_chute] call EPOCH_server_setVToken;; }; + */ _unit = [[_offset select 0, _offset select 1, 180],_weapons,_paraGroup,_skillAI,_launcherType,_uniforms,_headGear] call blck_fnc_spawnAI; _unit setDir (getDir _supplyHeli) - 90; _chute setPos [_offset select 0, _offset select 1, 250]; //(_offset select 2) - 10]; diff --git a/@epochhive/addons/custom_server/Compiles/TimeAccel/GMS_fnc_Time.sqf b/@epochhive/addons/custom_server/Compiles/TimeAccel/GMS_fnc_Time.sqf index 7c2c50f..2daddf0 100644 --- a/@epochhive/addons/custom_server/Compiles/TimeAccel/GMS_fnc_Time.sqf +++ b/@epochhive/addons/custom_server/Compiles/TimeAccel/GMS_fnc_Time.sqf @@ -18,7 +18,7 @@ _arr = date call BIS_fnc_sunriseSunsetTime; _sunrise = _arr select 0; _sunset = _arr select 1; _time = dayTime; -//diag_log format["_fnc_Time:: -- > _sunrise = %1 | _sunset = %2 | _time = %3",_sunrise,_sunset,_time]; +diag_log format["_fnc_Time:: -- > _sunrise = %1 | _sunset = %2 | _time = %3",_sunrise,_sunset,_time]; // Night if (_time > (_sunset + 0.5) || _time < (_sunrise - 0.5)) exitWith {setTimeMultiplier blck_timeAccelerationNight; diag_log format["NIGHT TIMGE ADJUSTMENT:: time accel updated to %1; time of day = %2",timeMultiplier,dayTime];}; diff --git a/@epochhive/addons/custom_server/Compiles/Units/GMS_fnc_cleanupAliveAI.sqf b/@epochhive/addons/custom_server/Compiles/Units/GMS_fnc_cleanupAliveAI.sqf index 2774d7c..5d507cc 100644 --- a/@epochhive/addons/custom_server/Compiles/Units/GMS_fnc_cleanupAliveAI.sqf +++ b/@epochhive/addons/custom_server/Compiles/Units/GMS_fnc_cleanupAliveAI.sqf @@ -2,13 +2,37 @@ Delete alive AI. Now called from the main thread which tracks the time elapsed so that we no longer spawn a wait timer for each completed mission. by Ghostrider - Last updated 1/22/17 + Last updated 1/24/17 */ -params["_aiList"]; +_fn_deleteAIfromList = { + params["_aiList"]; + if (blck_debugLevel > 0) then {diag_log format["_fn_deleteAIfromList:: _aiList = %1",_aiList];}; + { + if (blck_debugLevel > 1) then {diag_log format["_fn_deleteAIfromList:: -> deleteing AI Unit %1",_x];}; + [_x] call blck_fnc_deleteAI; + }forEach _aiList; +}; +diag_log format["_fnc_cleanupAliveAI called at %1",diag_tickTime]; +for "_i" from 1 to (count blck_liveMissionAI) do { - //if (blck_debugLevel > 2) then {diag_log format["_fnc_cleanupAliveAI:: -> deleteing AI Unit %1",_x];}; - [_x] call blck_fnc_deleteAI; -}forEach _aiList; + if ((_i) <= count blck_liveMissionAI) then + { + _units = blck_liveMissionAI select (_i - 1); + diag_log format["_fnc_cleanupAliveAI:: (34) evaluating with delete time = %2 and diag_tickTime %1", diag_tickTime, _units select 1]; + if (diag_tickTime > (_units select 1) ) then + { + diag_log format["_fnc_cleanupAliveAI:: cleaning up AI group %1",_units]; + { + diag_log format["_fnc_cleanupAliveAI:: deleting unit %1",_x]; + [_x] call blck_fnc_deleteAI; + }forEach (_units select 0); + uiSleep 0.1; + blck_liveMissionAI set[(_i - 1), -1]; + blck_liveMissionAI = blck_liveMissionAI - [-1]; // Remove that list of live AI from the list. + if (blck_debugLevel > 1) then {diag_log format["_fnc_mainTread:: blck_liveMissionAI updated to %1",blck_liveMissionAI];}; + }; + }; +}; diff --git a/@epochhive/addons/custom_server/Compiles/Units/GMS_fnc_cleanupDeadAI.sqf b/@epochhive/addons/custom_server/Compiles/Units/GMS_fnc_cleanupDeadAI.sqf index 8bd49a7..6816b64 100644 --- a/@epochhive/addons/custom_server/Compiles/Units/GMS_fnc_cleanupDeadAI.sqf +++ b/@epochhive/addons/custom_server/Compiles/Units/GMS_fnc_cleanupDeadAI.sqf @@ -1,9 +1,10 @@ /* Delete Dead AI and nearby weapons after an appropriate period. by Ghostrider - Last updated 1/13/17 + Last updated 1/24/17 */ +diag_log format["fnc_cleanupDeadAI called at time %1",diag_tickTime]; private["_aiList","_ai"]; _aiList = +blck_deadAI; { diff --git a/@epochhive/addons/custom_server/Compiles/Vehicles/GMS_fnc_protectVehicle.sqf b/@epochhive/addons/custom_server/Compiles/Vehicles/GMS_fnc_protectVehicle.sqf index 7968704..3064551 100644 --- a/@epochhive/addons/custom_server/Compiles/Vehicles/GMS_fnc_protectVehicle.sqf +++ b/@epochhive/addons/custom_server/Compiles/Vehicles/GMS_fnc_protectVehicle.sqf @@ -6,7 +6,7 @@ params["_Vehicle"]; private["_modType"]; _modType = call blck_fnc_getModType; switch (_ModType) do { - case "_modType": + case "Epoch": { diag_log format["GMS_fnc_protectVehicle:: Tokens set for vehicle %1",_Vehicle]; //_Vehicle call EPOCH_server_vehicleInit; diff --git a/@epochhive/addons/custom_server/Compiles/Vehicles/GMS_fnc_vehicleMonitor.sqf b/@epochhive/addons/custom_server/Compiles/Vehicles/GMS_fnc_vehicleMonitor.sqf index 824cadc..a9078c0 100644 --- a/@epochhive/addons/custom_server/Compiles/Vehicles/GMS_fnc_vehicleMonitor.sqf +++ b/@epochhive/addons/custom_server/Compiles/Vehicles/GMS_fnc_vehicleMonitor.sqf @@ -10,7 +10,23 @@ private ["_veh","_vehList"]; _vehList = blck_missionVehicles; -if (blck_debugLevel > 1) then {diag_log format["_fnc_vehicleMonitor:: function called with blck_missionVehicles = %1",_vehList];}; + +_fn_releaseVehicle = { + params["_v"]; + //diag_log format["vehicleMonitor.sqf: make vehicle available to players; stripping eventHandlers from _v %1",_v]; + blck_missionVehicles = blck_missionVehicles - [_v]; + _v removealleventhandlers "GetIn"; + _v removealleventhandlers "GetOut"; + _v setVehicleLock "UNLOCKED" ; + _v setVariable["releasedToPlayers",true]; + [_v] call blck_fnc_emptyObject; + if (blck_debugLevel > 2) then + { + diag_log format["_fnc_vehicleMonitor:: case of patrol vehicle released to players where vehicle = %1",_v]; + }; +}; + +if (blck_debugLevel > 0) then {diag_log format["_fnc_vehicleMonitor:: function called at %1",diag_tickTime];}; { _veh = _x; if (_veh getVariable["blck_DeleteAt",0] > 0) then @@ -23,15 +39,20 @@ if (blck_debugLevel > 1) then {diag_log format["_fnc_vehicleMonitor:: function c }; if ({alive _x} count crew _veh < 1) then { - if (_veh getVariable["DBD_vehType","none"] isEqualTo "emplaced") then + if (_veh getVariable["DBD_vehType","none"] isEqualTo "emplaced") then // Deal with a static weapon { - if (blck_debugLevel > 2) then + if (blck_killEmptyStaticWeapons) then { - diag_log format["_fnc_vehicleMonitor:: case of destroyed where vehicle = %1",_veh]; + if (blck_debugLevel > 2) then + { + diag_log format["_fnc_vehicleMonitor:: case of destroyed where vehicle = %1",_veh]; + }; + _veh setDamage 1; + _veh setVariable["blck_DeleteAt",diag_tickTime + 60]; + } else { + [_veh] call _fn_releaseVehicle; }; - _veh setDamage 1; - _veh setVariable["blck_DeleteAt",diag_tickTime + 60]; - }else { + }else { // Deal with vehicles if (blck_killEmptyAIVehicles) then { if (blck_debugLevel > 2) then @@ -44,20 +65,10 @@ if (blck_debugLevel > 1) then {diag_log format["_fnc_vehicleMonitor:: function c } forEach ["HitLFWheel","HitLF2Wheel","HitRFWheel","HitRF2Wheel","HitEngine","HitLBWheel","HitLMWheel","HitRBWheel","HitRMWheel","HitTurret","HitGun","HitTurret","HitGun","HitTurret","HitGun","HitTurret","HitGun"]; _veh setVariable["blck_DeleteAt",diag_tickTime + 60]; } else { - //diag_log format["vehicleMonitor.sqf: make vehicle available to players; stripping eventHandlers from_veh %1",_veh]; - blck_missionVehicles = blck_missionVehicles - [_veh]; - _veh removealleventhandlers "GetIn"; - _veh removealleventhandlers "GetOut"; - _veh setVehicleLock "UNLOCKED" ; - _veh setVariable["releasedToPlayers",true]; - [_veh] call blck_fnc_emptyObject; - if (blck_debugLevel > 2) then - { - diag_log format["_fnc_vehicleMonitor:: case of patrol vehicle released to players where vehicle = %1",_veh]; - }; + [_veh] call _fn_releaseVehicle; }; }; - } else { + } else { // Add magazine to vehicle if possible private ["_crew","_mag","_allMags","_cnt"]; //_veh setVehicleAmmo 1; //_veh setFuel 1; diff --git a/@epochhive/addons/custom_server/Compiles/blck_functions.sqf b/@epochhive/addons/custom_server/Compiles/blck_functions.sqf index d12544d..93ad61a 100644 --- a/@epochhive/addons/custom_server/Compiles/blck_functions.sqf +++ b/@epochhive/addons/custom_server/Compiles/blck_functions.sqf @@ -19,7 +19,7 @@ blck_fnc_getModType = compileFinal preprocessFileLineNumbers "\q\addons\custom_ blck_fnc_groupsOnAISide = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_GroupsOnAISide.sqf"; // Returns the number of groups on the side used by AI blck_fnc_emptyObject = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_emptyObject.sqf"; blck_fnc_playerInRange = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_playerInRange.sqf"; - +blck_fnc_mainThread = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_mainThread.sqf"; // // Player-related functions blck_fnc_rewardKiller = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_rewardKiller.sqf"; blck_fnc_MessagePlayers = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_AIM.sqf"; // Send messages to players regarding Missions @@ -28,6 +28,7 @@ blck_fnc_MessagePlayers = compileFinal preprocessFileLineNumbers "\q\addons\cus blck_fnc_selectAILoadout = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectAILoadout.sqf"; blck_fnc_addMissionToQue = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_addMissionToQue.sqf"; // blck_fnc_updateMissionQue = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_updateMissionQue.sqf"; // +blck_fnc_spawnPendingMissions = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnPendingMissions.sqf"; // blck_fnc_addLiveAItoQue = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_addLiveAItoQue.sqf"; blck_fnc_addObjToQue = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_addObjToQue.sqf"; // blck_fnc_missionTimer = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionTimer.sqf"; @@ -50,6 +51,8 @@ blck_fnc_clearMines = compileFinal preprocessFileLineNumbers "\q\addons\custom_s blck_fnc_signalEnd = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_signalEnd.sqf"; // deploy smoke grenades at loot crates at the end of the mission. blck_fnc_endMission = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_endMission.sqf"; +// #define Reinforcements 1 +#ifdef Reinforcements // Reinforcement-related functions blck_fnc_callInReinforcements = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Reinforcements\GMS_fnc_callInReinforcements.sqf"; blck_fnc_spawnParaUnits = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Reinforcements\GMS_fnc_spawnParaUnits.sqf"; @@ -58,6 +61,7 @@ blck_fnc_spawnParaCrate = compileFinal preprocessFileLineNumbers "\q\addons\cus blck_fnc_sendHeliHome = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Reinforcements\GMS_fnc_sendHeliHome.sqf"; //blck_fnc_spawnHeliPatrol = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Reinforcements\GMS_fnc_spawnParaUnits.sqf"; //blck_fnc_spawnHeliPatrol = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Reinforcements\GMS_fnc_spawnParaUnits.sqf"; +#endif // Group-related functions blck_fnc_spawnGroup = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Groups\GMS_fnc_spawnGroup.sqf"; // Spawn a single group and populate it with AI units] diff --git a/@epochhive/addons/custom_server/Configs/blck_configs_epoch.sqf b/@epochhive/addons/custom_server/Configs/blck_configs_epoch.sqf index 95dffe8..7d46c45 100644 --- a/@epochhive/addons/custom_server/Configs/blck_configs_epoch.sqf +++ b/@epochhive/addons/custom_server/Configs/blck_configs_epoch.sqf @@ -1,6 +1,4 @@ /* -AI Mission Compiled by blckeagls @ Zombieville.net -Further modified by Ghostrider - This file contains most constants that define mission parameters, AI behavior and loot for mission system. Last modified 8/1/15 */ @@ -23,7 +21,6 @@ Last modified 8/1/15 blck_timeAccelerationDusk = 3; // Dawn/dusk time accelearation blck_timeAccelerationNight = 6; // Nighttim time acceleration - //blck_configsLoaded = false; /************************************************************** BLACKLIST LOCATIONS @@ -57,7 +54,8 @@ Last modified 8/1/15 blck_useHC = false; // Not Yet Working // Kill message configurations - blck_useKillMessages = false; // when true a message will be broadcast to all players each time an AI is killed. + // These determine whether and when messages are sent to players regarding AI Kills or illegal kills that might damage a vehicle. + blck_useKillMessages = false; // when true a message will be broadcast to all players each time an AI is killed; may impact server performance. blck_useKillScoreMessage = true; // when true a tile is displayed to the killer with the kill score information blck_useIEDMessages = true; @@ -74,7 +72,7 @@ Last modified 8/1/15 // Options to spawn a smoking wreck near the mission. When the first parameter is true, a wreck or junk pile will be spawned. // It's position can be either "center" or "random". smoking wreck will be spawned at a random location between 15 and 50 m from the mission. blck_SmokeAtMissions = [false,"random"]; // set to [false,"anything here"] to disable this function altogether. - blck_useSignalEnd = true; // When true a smoke grenade 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. // PLAYER PENALTIES blck_RunGear = true; // When set to true, AI that have been run over will ve stripped of gear, and the vehicle will be given blck_RunGearDamage of damage. @@ -88,39 +86,51 @@ Last modified 8/1/15 blck_forbidenVehicleGuns = ["LMG_RCWS","LMG_M200","HMG_127","HMG_127_APC",/*"HMG_M2",*/"HMG_NSVT","GMG_40mm","GMG_UGV_40mm","autocannon_40mm_CTWS","autocannon_30mm_CTWS","autocannon_35mm","LMG_coax","autocannon_30mm","HMG_127_LSV_01"]; // Add any vehicles for which you wish to forbid vehicle kills, o // GLOBAL MISSION PARAMETERS - blck_useKilledAIName = true; // When false, the name of the killer (player), weapon and distance are displayed; otherwise the name of the player and AI unit killed are shown. - blck_useMines = false; // when true mines are spawned around the mission area. these are cleaned up when a player reaches the crate. Note that this is a default and that mission-specific settings can be defined for each mission using the template + blck_useKilledAIName = true; // When false, the name of the killer (player), weapon and distance are displayed; otherwise the name of the player, distance and name of AI unit killed are shown. + blck_useMines = false; // when true mines are spawned around the mission area. these are cleaned up when a player reaches the crate. Turn this off if you have vehicle patrols. + blck_cleanupCompositionTimer = 1200; // Mission objects will be deleted after the mission is completed after a deley set by this timer. + blck_cleanUpLootChests = false; // when true, loot crates will be deleted together with other mission objects. + blck_MissionTimout = 60*60; // 60 min - missions will timeout and respawn in another location. This prevents missions in impossible locations from persisting. + + // AI VEHICLE PATROL PARAMETERS + // Settings for Mission Vehicles. blck_useVehiclePatrols = true; // When true vehicles will be spawned at missions and will patrol the mission area. blck_killEmptyAIVehicles = false; // when true, the AI vehicle will be extensively damaged once all AI have gotten out. - blck_AIPatrolVehicles = ["B_G_Offroad_01_armed_EPOCH","B_LSV_01_armed_F"]; // Type of vehicle spawned to defend AI bases + blck_AIPatrolVehicles = ["B_G_Offroad_01_armed_EPOCH","B_LSV_01_armed_F"]; // Type of vehicle spawned to defend AI bases - // Updated for v6.51 - //Set to -1 to disable. Values of 2 or more force the mission spawner to spawn copies of that mission. + // AI STATIC WEAPON PARAMETERS + blck_useStatic = true; // When true, AI will man static weapons spawned 20-30 meters from the mission center. These are very effective against most vehicles + blck_killEmptyStaticWeapons = true; // When true, static weapons will have damage set to 1 when the AI manning them is killed. + blck_staticWeapons = ["B_HMG_01_high_F"/*,"B_GMG_01_high_F","O_static_AT_F"*/]; // [0.50 cal, grenade launcher, AT Launcher] + + // AI paratrooper reinforcement paramters + blck_enableReinforcements = false; // When true, reinforcements will be spawned at missions based on a probability defined in each mission template. + + // Armed Helis + blck_AIHelis = ["B_Heli_Light_01_armed_F","B_Heli_Transport_01_camo_F","B_Heli_Transport_03_F"]; // The helis used to bring in and drop reinforcements. + + // Unarmed Helis provided for reference. + // ["B_Heli_Transport_03_unarmed_EPOCH","O_Heli_Light_02_unarmed_EPOCH","I_Heli_Transport_02_EPOCH"]; + + // Mission - specific settings + //Set to -1 to disable. Values of 2 or more force the mission spawner to spawn copies of that mission - this feature is not thoroughly tested. blck_enableOrangeMissions = 1; blck_enableGreenMissions = 1; blck_enableRedMissions = 1; blck_enableBlueMissions = 1; - - // AI VEHICLE PATROL PARAMETERS + //Defines how many AI Vehicles to spawn. Set this to -1 to disable spawning of static weapons or vehicles. To discourage players runniing with with vehicles, spawn more B_GMG_01_high blck_SpawnVeh_Orange = 3; // Number of static weapons at Orange Missions blck_SpawnVeh_Green = 2; // Number of static weapons at Green Missions blck_SpawnVeh_Blue = -1; // Number of static weapons at Blue Missions blck_SpawnVeh_Red = 1; // Number of static weapons at Red Missions - // AI STATIC WEAPON PARAMETERS - blck_useStatic = true; // When true, AI will man static weapons spawned 20-30 meters from the mission center. These are very effective against most vehicles - blck_staticWeapons = ["B_HMG_01_high_F"/*,"B_GMG_01_high_F","O_static_AT_F"*/]; // [0.50 cal, grenade launcher, AT Launcher] - // Defines how many static weapons to spawn. Set this to -1 to disable spawning blck_SpawnEmplaced_Orange = 3; // Number of static weapons at Orange Missions blck_SpawnEmplaced_Green = 2; // Number of static weapons at Green Missions blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions blck_SpawnEmplaced_Red = 1; // Number of static weapons at Red Missions - // AI paratrooper reinforcement paramters - blck_AIHelis = ["B_Heli_Light_01_armed_F","B_Heli_Transport_01_camo_F","B_Heli_Transport_03_F"]; - // MISSION TIMERS // Reduce to 1 sec for immediate spawns, or longer if you wish to space the missions out blck_TMin_Orange = 250; @@ -134,7 +144,6 @@ Last modified 8/1/15 blck_TMax_Blue = 200; blck_TMax_Red = 250; - blck_MissionTimout = 60*60; // 40 min /**************************************************************** @@ -159,15 +168,15 @@ Last modified 8/1/15 blck_bodyCleanUpTimer = 1200; // time in seconds after which dead AI bodies are deleted // Each time an AI is killed, the location of the killer will be revealed to all AI within this range of the killed AI, set to -1 to disable // values are ordered as follows [blue, red, green, orange]; - blck_AliveAICleanUpTimer = 900; // Time after mission completion at which any remaining live AI are deleted. - blck_cleanupCompositionTimer = 1200; + blck_AliveAICleanUpTimer = 1200; // Time after mission completion at which any remaining live AI are deleted. + blck_AIAlertDistance = [250,325,450,500]; //blck_AIAlertDistance = [150,225,400,500]; // How precisely player locations will be revealed to AI after an AI kill // values are ordered as follows [blue, red, green, orange]; blck_AIIntelligence = [0.5, 1, 2, 4]; - blck_baseSkill = 1.0; + blck_baseSkill = 1.0; // The overal skill of the AI - range 0.1 to 1.0. /*************************************************************** @@ -182,7 +191,6 @@ Last modified 8/1/15 blck_SkillsOrange = [ ["aimingAccuracy",0.4],["aimingShake",0.7],["aimingSpeed",0.7],["endurance",1.00],["spotDistance",1.0],["spotTime",1.0],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00] ]; - blck_reinforceOrange = [0.3, 5, 0.2]; // Green Missions blck_MinAI_Green = 16; @@ -191,7 +199,6 @@ Last modified 8/1/15 blck_SkillsGreen = [ ["aimingAccuracy",0.3],["aimingShake",0.65],["aimingSpeed",0.65],["endurance",0.9],["spotDistance",0.9],["spotTime",0.9],["courage",0.9],["reloadSpeed",0.9],["commanding",0.9],["general",0.75] ]; - blck_reinforceGreen = [0.25, 4, 0.2]; // Red Missions blck_MinAI_Red = 12; @@ -200,7 +207,6 @@ Last modified 8/1/15 blck_SkillsRed = [ ["aimingAccuracy",0.2],["aimingShake",0.6],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.8],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70] ]; - blck_reinforceRed = [0.2, 3, 0.2]; // Blue Missions blck_MinAI_Blue = 8; @@ -209,7 +215,6 @@ Last modified 8/1/15 blck_SkillsBlue = [ ["aimingAccuracy",0.1],["aimingShake",0.5],["aimingSpeed",0.5],["endurance",0.50],["spotDistance",0.6],["spotTime",0.6],["courage",0.60],["reloadSpeed",0.60],["commanding",0.7],["general",0.60] ]; - blck_reinforceBlue = [0.1, 2, 0.2]; // Add some money to AI; only works with Exile for now. blck_maxMoneyOrange = 25; @@ -217,7 +222,6 @@ Last modified 8/1/15 blck_maxMoneyRed = 15; blck_maxMoneyBlue = 10; - // AI Settings for scouts, Hunters and crashes are definded in thos missions. /********************************************************************************* AI WEAPONS, UNIFORMS, VESTS AND GEAR diff --git a/@epochhive/addons/custom_server/Configs/blck_configs_exile.sqf b/@epochhive/addons/custom_server/Configs/blck_configs_exile.sqf index a4d62f3..e0be19a 100644 --- a/@epochhive/addons/custom_server/Configs/blck_configs_exile.sqf +++ b/@epochhive/addons/custom_server/Configs/blck_configs_exile.sqf @@ -1,12 +1,10 @@ /* -AI Mission Compiled by blckeagls @ Zombieville.net -Further modified by Ghostrider - This file contains most constants that define mission parameters, AI behavior and loot for mission system. Last modified 8/1/15 */ - - blck_configsLoaded = false; - + + if (blck_debugON) then {diag_log "[blckeagls] Loading blck_configs_epoch.sqf";}; + /* Configuration for Addons that support the overall Mission system. These are a module to spawn map addons generated with the Eden Editor @@ -21,7 +19,7 @@ Last modified 8/1/15 blck_timeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below. blck_timeAccelerationDay = 1; // Daytime time accelearation blck_timeAccelerationDusk = 3; // Dawn/dusk time accelearation - blck_timeAccelerationNight = 6; // Nighttim time acceleration + blck_timeAccelerationNight = 6; // Nighttim time acceleration /************************************************************** @@ -29,9 +27,8 @@ Last modified 8/1/15 **************************************************************/ // if true then missions will not spawn within 1000 m of spawn points for Altis, Bornholm, Cherno, Esseker or stratis. - blck_blacklistSpawns = true; // do not spawn a mission within 1000 m of a spawn zone. - blck_blacklistTraderCities = true; // do not spawn a mission within 1000 m of a trader. - blcklistConcreteMixerZones = true; // do not spawn a mission within 1000 m of a concrete mixer zone. + blck_blacklistTraderCities = true; // Set this = true if you would like the mission system to automatically search for the locations of the Epoch trader cities. Note that these are pre-defined in GMS_fnc_findWorld for the most common maps. + // list of locations that are protected against mission spawns switch (toLower(worldName)) do { @@ -55,10 +52,12 @@ Last modified 8/1/15 //////// // Headless Client Configurations blck_useHC = false; // Not Yet Working - + // Kill message configurations - blck_useKillMessages = false; // when true a message will be broadcast to all players each time an AI is killed. + // These determine whether and when messages are sent to players regarding AI Kills or illegal kills that might damage a vehicle. + blck_useKillMessages = false; // when true a message will be broadcast to all players each time an AI is killed; may impact server performance. blck_useKillScoreMessage = true; // when true a tile is displayed to the killer with the kill score information + blck_useIEDMessages = true; // MISSION MARKER CONFIGURATION // blck_labelMapMarkers: Determines if when the mission composition provides text labels, map markers with have a text label indicating the mission type @@ -66,17 +65,14 @@ Last modified 8/1/15 // When set to true,"dot", ext will be to the right of a black dot at the center the mission marker. blck_labelMapMarkers = [true,"center"]; blck_preciseMapMarkers = true; // Map markers are/are not centered at the loot crate - + //Minimum distance between missions blck_MinDistanceFromMission = 2000; - + // Options to spawn a smoking wreck near the mission. When the first parameter is true, a wreck or junk pile will be spawned. // It's position can be either "center" or "random". smoking wreck will be spawned at a random location between 15 and 50 m from the mission. blck_SmokeAtMissions = [false,"random"]; // set to [false,"anything here"] to disable this function altogether. - blck_useSignalEnd = true; // When true a smoke grenade will appear at the loot crate for 2 min after mission completion. - - // Loot Crates - //blck_missionCrateTypes = ["Box_NATO_Wps_F","Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_IND_AmmoVeh_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F"]; + blck_useSignalEnd = true; // When true a smoke grenade/chemlight will appear at the loot crate for 2 min after mission completion. // PLAYER PENALTIES blck_RunGear = true; // When set to true, AI that have been run over will ve stripped of gear, and the vehicle will be given blck_RunGearDamage of damage. @@ -84,39 +80,54 @@ Last modified 8/1/15 blck_VK_Gear = true; // When set to true, AI that have been killed by a player in a vehicle in the list of forbidden vehicles or using a forbiden gun will be stripped of gear and the vehicle will be given blck_RunGearDamage of damage blck_VK_RunoverDamage = true; // when the AI was run over blck_RunGearDamage of damage will be applied to the killer's vehicle. blck_VK_GunnerDamage = true; // when the AI was killed by a gunner on a vehicle that is is in the list of forbidden vehicles, blck_RunGearDamage of damage will be applied to the killer's vehicle each time an AI is killed with a vehicle's gun. - blck_forbidenVehicles = ["B_MRAP_01_hmg_F","O_MRAP_02_hmg_F","Exile_Car_BRDM2_HQ","Exile_Car_HMMWV_M134_Green","Exile_Car_HMMWV_M134_Desert","Exile_Car_HMMWV_M2_Green","Exile_Car_HMMWV_M2_Desert","Exile_Car_ProwlerLight","Exile_Car_BTR40_MG_Green","Exile_Car_BTR40_MG_Camo"]; // Add any vehicles for which you wish to forbid vehicle kills + blck_forbidenVehicles = ["B_MRAP_01_hmg_F","O_MRAP_02_hmg_F"]; // Add any vehicles for which you wish to forbid vehicle kills // For a listing of the guns mounted on various land vehicles see the following link: https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Vehicle_Weapons - blck_forbidenVehicleGuns = ["LMG_RCWS","LMG_M200","HMG_127","HMG_127_APC","HMG_M2","HMG_NSVT","GMG_40mm","GMG_UGV_40mm","autocannon_40mm_CTWS","autocannon_30mm_CTWS","autocannon_35mm","LMG_coax","autocannon_30mm","DShKM","DSHKM","HMG_127_LSV_01"]; // Add any vehicles for which you wish to forbid vehicle kills, o + // HMG_M2 is mounted on the armed offroad that is spawned by Epoch + blck_forbidenVehicleGuns = ["LMG_RCWS","LMG_M200","HMG_127","HMG_127_APC",/*"HMG_M2",*/"HMG_NSVT","GMG_40mm","GMG_UGV_40mm","autocannon_40mm_CTWS","autocannon_30mm_CTWS","autocannon_35mm","LMG_coax","autocannon_30mm","HMG_127_LSV_01"]; // Add any vehicles for which you wish to forbid vehicle kills, o // GLOBAL MISSION PARAMETERS - blck_useKilledAIName = true; // When false, the name of the killer (player), weapon and distance are displayed; otherwise the name of the player and AI unit killed are shown. - blck_useMines = false; // when true mines are spawned around the mission area. these are cleaned up when a player reaches the crate. Note that this is a default and that mission-specific settings can be defined for each mission using the template + blck_useKilledAIName = true; // When false, the name of the killer (player), weapon and distance are displayed; otherwise the name of the player, distance and name of AI unit killed are shown. + blck_useMines = false; // when true mines are spawned around the mission area. these are cleaned up when a player reaches the crate. Turn this off if you have vehicle patrols. + blck_cleanupCompositionTimer = 1200; // Mission objects will be deleted after the mission is completed after a deley set by this timer. + blck_cleanUpLootChests = false; // when true, loot crates will be deleted together with other mission objects. + blck_MissionTimout = 60*60; // 60 min - missions will timeout and respawn in another location. This prevents missions in impossible locations from persisting. + + // AI VEHICLE PATROL PARAMETERS + // Settings for Mission Vehicles. blck_useVehiclePatrols = true; // When true vehicles will be spawned at missions and will patrol the mission area. blck_killEmptyAIVehicles = false; // when true, the AI vehicle will be extensively damaged once all AI have gotten out. - blck_AIPatrolVehicles = ["Exile_Car_Offroad_Armed_Guerilla01","Exile_Car_Offroad_Armed_Guerilla02","Exile_Car_HMMWV_M2_Green","Exile_Car_HMMWV_M2_Desert","Exile_Car_BTR40_MG_Green","Exile_Car_BTR40_MG_Camo"]; // Type of vehicle spawned to defend AI bases + blck_AIPatrolVehicles = ["B_G_Offroad_01_armed_EPOCH","B_LSV_01_armed_F"]; // Type of vehicle spawned to defend AI bases - //Set to -1 to disable. Values of 2 or more force the mission spawner to spawn copies of that mission. + // AI STATIC WEAPON PARAMETERS + blck_useStatic = true; // When true, AI will man static weapons spawned 20-30 meters from the mission center. These are very effective against most vehicles + blck_killEmptyStaticWeapons = true; // When true, static weapons will have damage set to 1 when the AI manning them is killed. + blck_staticWeapons = ["B_HMG_01_high_F"/*,"B_GMG_01_high_F","O_static_AT_F"*/]; // [0.50 cal, grenade launcher, AT Launcher] + + // AI paratrooper reinforcement paramters + // Armed Helis + blck_AIHelis = ["B_Heli_Light_01_armed_F","B_Heli_Transport_01_camo_F","B_Heli_Transport_03_F"]; + + // Unarmed Helis provided for reference. + // ["B_Heli_Transport_03_unarmed_EPOCH","O_Heli_Light_02_unarmed_EPOCH","I_Heli_Transport_02_EPOCH"]; + + // Mission - specific settings + //Set to -1 to disable. Values of 2 or more force the mission spawner to spawn copies of that mission - this feature is not thoroughly tested. blck_enableOrangeMissions = 1; blck_enableGreenMissions = 1; blck_enableRedMissions = 1; blck_enableBlueMissions = 1; - // AI VEHICLE PATROL PARAMETERS //Defines how many AI Vehicles to spawn. Set this to -1 to disable spawning of static weapons or vehicles. To discourage players runniing with with vehicles, spawn more B_GMG_01_high - blck_SpawnVeh_Orange = 4; // Number of static weapons at Orange Missions - blck_SpawnVeh_Green = 3; // Number of static weapons at Green Missions + blck_SpawnVeh_Orange = 3; // Number of static weapons at Orange Missions + blck_SpawnVeh_Green = 2; // Number of static weapons at Green Missions blck_SpawnVeh_Blue = -1; // Number of static weapons at Blue Missions blck_SpawnVeh_Red = 1; // Number of static weapons at Red Missions - // AI STATIC WEAPON PARAMETERS - blck_useStatic = true; // When true, AI will man static weapons spawned 20-30 meters from the mission center. These are very effective against most vehicles - blck_staticWeapons = ["B_HMG_01_high_F"/*,"B_GMG_01_high_F","O_static_AT_F"*/]; // [0.50 cal, grenade launcher, AT Launcher] - // Defines how many static weapons to spawn. Set this to -1 to disable spawning blck_SpawnEmplaced_Orange = 3; // Number of static weapons at Orange Missions - blck_SpawnEmplaced_Green = 3; // Number of static weapons at Green Missions + blck_SpawnEmplaced_Green = 2; // Number of static weapons at Green Missions blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions - blck_SpawnEmplaced_Red = 2; // Number of static weapons at Red Missions + blck_SpawnEmplaced_Red = 1; // Number of static weapons at Red Missions // MISSION TIMERS // Reduce to 1 sec for immediate spawns, or longer if you wish to space the missions out @@ -131,7 +142,6 @@ Last modified 8/1/15 blck_TMax_Blue = 200; blck_TMax_Red = 250; - blck_MissionTimout = 60*60; // 40 min /**************************************************************** @@ -141,8 +151,7 @@ Last modified 8/1/15 blck_combatMode = "RED"; // Change this to "YELLOW" if the AI wander too far from missions for your tastes. blck_groupFormation = "WEDGE"; // Possibilities include "WEDGE","VEE","FILE","DIAMOND" - blck_AI_Side = EAST; - blck_ModType = "Exile"; + blck_AI_Side = RESISTANCE; blck_chanceBackpack = 0.3; // Chance AI will be spawned with a backpack blck_useNVG = true; // When true, AI will be spawned with NVG if is dark @@ -158,15 +167,15 @@ Last modified 8/1/15 // Each time an AI is killed, the location of the killer will be revealed to all AI within this range of the killed AI, set to -1 to disable // values are ordered as follows [blue, red, green, orange]; blck_AliveAICleanUpTimer = 900; // Time after mission completion at which any remaining live AI are deleted. - blck_cleanupCompositionTimer = 1200; - blck_AIAlertDistance = [150,225,250,300]; + + blck_AIAlertDistance = [250,325,450,500]; //blck_AIAlertDistance = [150,225,400,500]; // How precisely player locations will be revealed to AI after an AI kill // values are ordered as follows [blue, red, green, orange]; blck_AIIntelligence = [0.5, 1, 2, 4]; - blck_baseSkill = 1.0; - + blck_baseSkill = 1.0; // The overal skill of the AI - range 0.1 to 1.0. + /*************************************************************** MISSION TYPE SPECIFIC AI SETTINGS @@ -207,8 +216,7 @@ Last modified 8/1/15 blck_SkillsBlue = [ ["aimingAccuracy",0.1],["aimingShake",0.5],["aimingSpeed",0.5],["endurance",0.50],["spotDistance",0.6],["spotTime",0.6],["courage",0.60],["reloadSpeed",0.60],["commanding",0.7],["general",0.60] ]; - blck_reinforceBlue = [0.1, 2, 0.2]; - + // Add some money to AI; only works with Exile for now. blck_maxMoneyOrange = 25; blck_maxMoneyGreen = 20; diff --git a/@epochhive/addons/custom_server/Configs/blck_custom_config.sqf b/@epochhive/addons/custom_server/Configs/blck_custom_config.sqf index 04b2900..5e1e466 100644 --- a/@epochhive/addons/custom_server/Configs/blck_custom_config.sqf +++ b/@epochhive/addons/custom_server/Configs/blck_custom_config.sqf @@ -24,7 +24,6 @@ if (blck_debugON) then // Used primarily for debugging. diag_log "[blckeagls] Debug seting is ON, Custom configurations used"; - //blck_mainThreadUpdateInterval = 10; blck_enableOrangeMissions = 1; blck_enableGreenMissions = 1; blck_enableRedMissions = 1; diff --git a/@epochhive/addons/custom_server/changeLog.sqf b/@epochhive/addons/custom_server/changeLog.sqf index e0b9020..2f6df91 100644 --- a/@epochhive/addons/custom_server/changeLog.sqf +++ b/@epochhive/addons/custom_server/changeLog.sqf @@ -4,6 +4,11 @@ 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. +1/24/17 Version 6.55 Build 34 +Added a new configuration blck_killEmptyStaticWeapons which determines if static weapons shoudl be disabled after the AI is killed. +Added a configuration blck_cleanUpLootChests that determines if loot crates are deleted when other mission objects are deleted. +Fixed an issue that prevented proper deletion of mission objects and live AI. + 1/23/17 Version 6.54 Build 33 Fixed typos in GMS_fnc_vehicleMonitor.sqf Removed a few files that are not used or needed. diff --git a/@epochhive/addons/custom_server/init/blck_init.sqf b/@epochhive/addons/custom_server/init/blck_init.sqf index cbc2975..d84414b 100644 --- a/@epochhive/addons/custom_server/init/blck_init.sqf +++ b/@epochhive/addons/custom_server/init/blck_init.sqf @@ -113,13 +113,9 @@ if (blck_enableBlueMissions > 0) then [_missionListBlue,_pathBlue,"BlueMarker","blue",blck_TMin_Blue,blck_TMax_Blue,blck_enableBlueMissions] call blck_fnc_addMissionToQue; }; +//diag_log "[blckeagls] >>--- Completed initialization"; + +//blck_Initialized = true; + // start the main thread for the mission system which monitors missions running and stuff to be cleaned up -call compile preprocessfilelinenumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_mainThread.sqf"; -//call compile preprocessfilelinenumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_vehicleMonitorLoop.sqf"; - -// start a little loop that sends clients the current serverFPS -//[] execVM "\q\addons\custom_server\Compiles\Functions\broadcastServerFPS.sqf"; -diag_log "[blckeagls] >>--- Completed initialization"; - -blck_Initialized = true; -publicVariable "blck_Initialized"; +[] spawn blck_fnc_mainThread; diff --git a/@epochhive/addons/custom_server/init/build.sqf b/@epochhive/addons/custom_server/init/build.sqf index feed234..8aee4ea 100644 --- a/@epochhive/addons/custom_server/init/build.sqf +++ b/@epochhive/addons/custom_server/init/build.sqf @@ -1,3 +1,3 @@ private ["_version","_versionDate"]; -_blck_version = "6.54 Build 34"; -_blck_versionDate = "1-23-17 8:00 PM"; +_blck_version = "6.55 Build 36"; +_blck_versionDate = "1-24-17 11:50 PM";