Bug Fixes, setting for deleting loot crate and one for preserving static weapons.
This commit is contained in:
parent
90c9ffa809
commit
b9d019e78a
@ -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;
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
};
|
@ -5,99 +5,38 @@
|
|||||||
- whether it is time to delete the mission objects at a specific location
|
- 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
|
- whether it is time to delete live AI associated with a specific mission
|
||||||
By Ghostrider-DbD-
|
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;
|
_timer1sec = diag_tickTime;
|
||||||
_timer5sec = diag_tickTime;
|
|
||||||
_timer20sec = diag_tickTime;
|
_timer20sec = diag_tickTime;
|
||||||
//_timer1min = diag_tickTime;
|
|
||||||
_timer5min = diag_tickTime;
|
_timer5min = diag_tickTime;
|
||||||
//_timer10Min = diag_tickTime;
|
|
||||||
_modType = [] call blck_fnc_getModType;
|
_modType = [] call blck_fnc_getModType;
|
||||||
_ai = [];
|
|
||||||
_obj = [];
|
|
||||||
|
|
||||||
while {true} do
|
while {true} do
|
||||||
{
|
{
|
||||||
uiSleep 1; // defined in custom_server\compiles\blck_variables.sqf
|
uiSleep 1;
|
||||||
if ((diag_tickTime - _timer1sec) > 1) then
|
diag_log format["mainThread:: -- > time = %1",diag_tickTime];
|
||||||
|
if (diag_tickTime - _timer1sec > 1000) then
|
||||||
{
|
{
|
||||||
[] call blck_fnc_vehicleMonitor;
|
[] 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];
|
[] call blck_fnc_cleanupAliveAI;
|
||||||
//diag_log format["_fnc_mainThread:: (31) blck_liveMissionAI = %1", blck_liveMissionAI];
|
[] call blck_fnc_cleanupObjects;
|
||||||
_ai = +blck_liveMissionAI;
|
[] 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;
|
[] call blck_fnc_cleanEmptyGroups;
|
||||||
}; // Exile cleans up empty groups automatically so this should not be needed with that mod.
|
}; // Exile cleans up empty groups automatically so this should not be needed with that mod.
|
||||||
|
_timer20sec = diag_tickTime;
|
||||||
//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;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
if (diag_tickTime - _timer5min > 300) then
|
||||||
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
|
[] call blck_fnc_timeAcceleration;
|
||||||
_timer10Min = diag_tickTime;
|
|
||||||
};
|
};
|
||||||
*/
|
|
||||||
};
|
};
|
||||||
|
@ -6,25 +6,49 @@
|
|||||||
for DBD Clan
|
for DBD Clan
|
||||||
By Ghostrider-DBD-
|
By Ghostrider-DBD-
|
||||||
Copyright 2016
|
Copyright 2016
|
||||||
Last Modified 1-22-17
|
Last Modified 1-24-17
|
||||||
*/
|
*/
|
||||||
|
|
||||||
params["_objects"];
|
_fn_deleteObjects = {
|
||||||
{
|
params["_objects"];
|
||||||
if ((typeOf _x) isKindOf "LandVehicle") then
|
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;
|
private _crew = crew _x;
|
||||||
}forEach _crew;
|
{
|
||||||
|
[_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];};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
Updates the mission que.
|
Updates the mission que.
|
||||||
Updates mission markers.
|
Updates mission markers.
|
||||||
By Ghostrider-DbD-
|
By Ghostrider-DbD-
|
||||||
1/22/17
|
1/24/17
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (blck_useSignalEnd) then
|
if (blck_useSignalEnd) then
|
||||||
@ -22,10 +22,10 @@
|
|||||||
[_mines] spawn blck_fnc_clearMines;
|
[_mines] spawn blck_fnc_clearMines;
|
||||||
//diag_log format["_fnc_endMission: (23) _objects = %1",_objects];
|
//diag_log format["_fnc_endMission: (23) _objects = %1",_objects];
|
||||||
uisleep 0.1;
|
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];
|
//diag_log format["_fnc_endMission:: (26) _blck_AllMissionAI = %1",_blck_AllMissionAI];
|
||||||
uisleep 0.1;
|
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;
|
[["end",_endMsg,_blck_localMissionMarker select 2]] call blck_fnc_messageplayers;
|
||||||
[_blck_localMissionMarker select 1, _markerClass] execVM "debug\missionCompleteMarker.sqf";
|
[_blck_localMissionMarker select 1, _markerClass] execVM "debug\missionCompleteMarker.sqf";
|
||||||
[_blck_localMissionMarker select 0] execVM "debug\deleteMarker.sqf";
|
[_blck_localMissionMarker select 0] execVM "debug\deleteMarker.sqf";
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
for DBD Clan
|
for DBD Clan
|
||||||
By Ghostrider-DBD-
|
By Ghostrider-DBD-
|
||||||
Copyright 2016
|
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"];
|
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;
|
_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
|
if (blck_debugLevel > 0) then
|
||||||
{
|
{
|
||||||
@ -237,27 +240,21 @@ if (blck_useStatic && (_noEmplacedWeapons > 0)) then
|
|||||||
_blck_AllMissionAI append (_temp select 1);
|
_blck_AllMissionAI append (_temp select 1);
|
||||||
};
|
};
|
||||||
|
|
||||||
if ((random(1) < _chanceReinforcements)) then
|
/*
|
||||||
|
if (blck_enableReinforcements && (random(1) < _chanceReinforcements)) then
|
||||||
{
|
{
|
||||||
_weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout;
|
_weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout;
|
||||||
private["_grpReinforcements"];
|
if (blck_debugLevel > 0) then
|
||||||
_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
|
|
||||||
{
|
{
|
||||||
_blck_AllMissionAI = _blck_AllMissionAI + (units _grpReinforcements);
|
diag_log format["[blckeagls] missionSpawner:: calling in reinforcements: Current mission: _cords %1 : _markerClass %2 : _aiDifficultyLevel %3 _markerMissionName %4",_coords,_markerClass,_aiDifficultyLevel,_markerMissionName];
|
||||||
//diag_log format["missionSpawner:: _grpReinforcements = %1",_grpReinforcements];
|
// ["_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
|
// 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"];
|
private["_missionComplete","_endIfPlayerNear","_endIfAIKilled"];
|
||||||
_missionComplete = -1;
|
_missionComplete = -1;
|
||||||
_startTime = diag_tickTime;
|
_startTime = diag_tickTime;
|
||||||
@ -268,14 +265,14 @@ switch (_endCondition) do
|
|||||||
case "allUnitsKilled": {_endIfPlayerNear = false;_endIfAIKilled = true;};
|
case "allUnitsKilled": {_endIfPlayerNear = false;_endIfAIKilled = true;};
|
||||||
case "allKilledOrPlayerNear": {_endIfPlayerNear = true;_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"];
|
private["_locations"];
|
||||||
_locations = [_coords] + _crates;
|
_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
|
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 ((_endIfPlayerNear) && [_coords,20] call blck_fnc_playerInRange) exitWith {};
|
||||||
if ((_endIfAIKilled) && ({alive _x} count _blck_AllMissionAI) < 1 ) 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];
|
//diag_log format["missionSpawner:: (283) missionCompleteLoop - > players near = %1 and ai alive = %2",[_coords,20] call blck_fnc_playerInRange, {alive _x} count _blck_AllMissionAI];
|
||||||
|
@ -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;
|
@ -14,31 +14,32 @@
|
|||||||
_headgear,
|
_headgear,
|
||||||
_patrol
|
_patrol
|
||||||
] call blck_spawnReinforcements
|
] call blck_spawnReinforcements
|
||||||
1/23/17
|
|
||||||
|
Last Modified 1/23/17
|
||||||
*/
|
*/
|
||||||
|
|
||||||
params["_pos","_numAI","_skillAI","_chanceLoot","_lootCounts","_weapons","_uniforms","_headgear","_patrol"];
|
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"];
|
private["_chopperType","_chopperTypeArmed","_spawnPos","_spawnVector","_spawnDistance"];
|
||||||
|
|
||||||
|
|
||||||
// spawn an unarmed heli
|
// 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));
|
_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);
|
_dropLoot = (random(1) < _chanceLoot);
|
||||||
|
|
||||||
// Use the new functionality of getPos
|
// Use the new functionality of getPos
|
||||||
// https://community.bistudio.com/wiki/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"];
|
private["_supplyHeli"];
|
||||||
//create helicopter and spawn it
|
//create helicopter and spawn it
|
||||||
@ -47,12 +48,13 @@ _supplyHeli setDir (_spawnVector -180);
|
|||||||
_supplyHeli setFuel 1;
|
_supplyHeli setFuel 1;
|
||||||
_supplyHeli engineOn true;
|
_supplyHeli engineOn true;
|
||||||
_supplyHeli flyInHeight 250;
|
_supplyHeli flyInHeight 250;
|
||||||
_supplyHeli setVehicleLock "LOCKED";
|
_supplyHeli setVehicleLock "LOCKEDPLAYER";
|
||||||
_supplyHeli addEventHandler ["GetOut",{(_this select 0) setFuel 0;(_this select 0) setDamage 1;}];
|
_supplyHeli addEventHandler ["GetOut",{(_this select 0) setFuel 0;(_this select 0) setDamage 1;}];
|
||||||
|
_supplyHeli addEventHandler ["GetIn",{(_this select 0) setFuel 0;(_this select 0) setDamage 1;}];
|
||||||
[_supplyHeli] call blck_fnc_emptyObject;
|
|
||||||
|
|
||||||
[_supplyHeli] call blck_fnc_protectVehicle;
|
[_supplyHeli] call blck_fnc_protectVehicle;
|
||||||
|
//[_supplyHeli] call blck_fnc_emptyObject;
|
||||||
|
//[_supplyHeli] call EPOCH_server_setVToken;;
|
||||||
|
|
||||||
private["_grpPilot","_unitPilot"];
|
private["_grpPilot","_unitPilot"];
|
||||||
// add pilot to helicopter //add pilot (single group) to supply helicopter
|
// add pilot to helicopter //add pilot (single group) to supply helicopter
|
||||||
@ -80,24 +82,49 @@ _unitPilot moveInDriver _supplyHeli;
|
|||||||
_grpPilot selectLeader _unitPilot;
|
_grpPilot selectLeader _unitPilot;
|
||||||
_grpPilot setVariable["paraGroup",_paraGroup];
|
_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
|
//set waypoint for helicopter
|
||||||
private["_wpDestination"];
|
private["_wpDestination"];
|
||||||
[_grpPilot, 0] setWPPos _pos;
|
[_grpPilot, 0] setWPPos _pos;
|
||||||
[_grpPilot, 0] setWaypointType "MOVE";
|
[_grpPilot, 0] setWaypointType "MOVE";
|
||||||
[_grpPilot, 0] setWaypointSpeed "FULL";
|
[_grpPilot, 0] setWaypointSpeed "FULL";
|
||||||
[_grpPilot, 0] setWaypointBehaviour "CARELESS";
|
[_grpPilot, 0] setWaypointBehaviour "CARELESS";
|
||||||
[_grpPilot, 0] setWaypointCompletionRadius 30;
|
[_grpPilot, 0] setWaypointCompletionRadius 100;
|
||||||
[_grpPilot, 0] setWaypointStatements ["true","(this) spawn blck_fnc_dropReinforcements;"];
|
//[_grpPilot, 0] setWaypointStatements ["true",_statementDropParatroops];
|
||||||
[_grpPilot,0] setWaypointTimeout [0.5,0.5,0.5];
|
[_grpPilot,0] setWaypointTimeout [0.5,0.5,0.5];
|
||||||
_grpPilot setCurrentWaypoint [_grpPilot,0];
|
_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
|
//Announce reinforcements are inbound to nearby players
|
||||||
private["_message"];
|
private["_message"];
|
||||||
_message = "A Helicopter Carrying Reinforcements was Spotted Near You!";
|
_message = "A Helicopter Carrying Reinforcements was Spotted Near You!";
|
||||||
[["reinforcements",_message,_pos]] call blck_fnc_messageplayers;
|
[["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)];
|
_supplyHeli setVariable["blck_DeleteAt", (diag_tickTime + 300)];
|
||||||
blck_missionVehicles pushback _supplyHeli;
|
blck_missionVehicles pushback _supplyHeli;
|
||||||
|
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
1/23/17
|
1/23/17
|
||||||
*/
|
*/
|
||||||
|
|
||||||
_grpPilot = _this;
|
_pilot = this;
|
||||||
|
_grpPilot = group _pilot;
|
||||||
_params = _grpPilot getVariable["params"];
|
_params = _grpPilot getVariable["params"];
|
||||||
_params params["_supplyHeli","_numAI","_skillAI","_dropLoot","_lootCounts","_weapons","_uniforms","_headgear","_patrol"];
|
_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";
|
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;
|
[_supplyHeli,_numAI,_skillAI,_weapons,_uniforms,_headgear] spawn blck_fnc_spawnParaUnits;
|
||||||
|
|
||||||
if (_dropLoot) then
|
if (_dropLoot) then
|
||||||
{
|
{
|
||||||
diag_log "_fnc_dropReinforcements:: heli on station, calling blck_fnc_spawnParaLoot";
|
diag_log "_fnc_dropReinforcements:: heli on station, calling blck_fnc_spawnParaLoot";
|
||||||
|
// params["_supplyHeli","_lootCounts"];
|
||||||
[_supplyHeli,_lootCounts] spawn blck_fnc_spawnParaLoot;
|
[_supplyHeli,_lootCounts] spawn blck_fnc_spawnParaLoot;
|
||||||
};
|
};
|
||||||
|
|
||||||
uiSleep 10;
|
uiSleep 10;
|
||||||
|
|
||||||
[_supplyHeli] spawn blck_fnc_sendHeliHome;
|
[_supplyHeli,_grpPilot] spawn blck_fnc_sendHeliHome;
|
@ -2,14 +2,14 @@
|
|||||||
Author: Ghostrider-DbD-
|
Author: Ghostrider-DbD-
|
||||||
Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP
|
Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP
|
||||||
License: Attribution-NonCommercial-ShareAlike 4.0 International
|
License: Attribution-NonCommercial-ShareAlike 4.0 International
|
||||||
called once all tasks required at the mission are complete.
|
Last Modified 1/23/17
|
||||||
*/
|
*/
|
||||||
|
params["_grpPilot"];
|
||||||
_grpPilot = _this select 0;
|
private["_heli","_pilot"];
|
||||||
_heli = _this select 1;
|
_pilot = (units _grpPilot) select 0;
|
||||||
|
_heli = vehicle _pilot;
|
||||||
diag_log "reinforcements deployed:: send heli back to spawn";
|
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
|
// select a random location abotu 2K from the mission
|
||||||
_spawnVector = round(random(360));
|
_spawnVector = round(random(360));
|
||||||
_spawnDistance = 2000;
|
_spawnDistance = 2000;
|
||||||
@ -32,35 +32,5 @@ _grpPilot = group this;
|
|||||||
|
|
||||||
|
|
||||||
diag_log "reinforcements:: sending Heli Home";
|
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";
|
|
||||||
|
|
||||||
|
@ -10,7 +10,6 @@
|
|||||||
] call blck_spawnHeliParaCrate
|
] call blck_spawnHeliParaCrate
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
params["_supplyHeli","_lootCounts"];
|
params["_supplyHeli","_lootCounts"];
|
||||||
|
|
||||||
private ["_chute","_crate"];
|
private ["_chute","_crate"];
|
||||||
@ -26,12 +25,7 @@ _offset = _supplyHeli getPos [10, _dir];
|
|||||||
|
|
||||||
//open parachute and attach to crate
|
//open parachute and attach to crate
|
||||||
_chute = createVehicle ["I_Parachute_02_F", [100, 100, 100], [], 0, "FLY"];
|
_chute = createVehicle ["I_Parachute_02_F", [100, 100, 100], [], 0, "FLY"];
|
||||||
private["_modType"];
|
[_chute] call blck_fnc_protectVehicle;
|
||||||
_modType = call blck_fnc_getModType;
|
|
||||||
if (_modType isEqualTo "Epoch") then
|
|
||||||
{
|
|
||||||
[_chute] call blck_fnc_protectVehicle;
|
|
||||||
};
|
|
||||||
_chute setPos [_offset select 0, _offset select 1, 100 ]; //(_offset select 2) - 10];
|
_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];
|
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,_chute] call _fn_monitorCrate;
|
||||||
|
[[_crate], 1200 /* 20 min*/] spawn blck_fnc_addObjToQue;
|
@ -19,11 +19,12 @@ _paraGroup setVariable ["blck_group",true,true];
|
|||||||
|
|
||||||
diag_log format["_fnc_spawnParaUnits:: paratrooper group created; spawning %1 units",_numAI];
|
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/
|
//https://forums.bistudio.com/topic/127341-how-to-get-cargo-capacity-and-costweight-of-stuff-into-sqf/
|
||||||
//_veh = TypeOf (_supplyHeli); //for example
|
//_veh = TypeOf (_supplyHeli); //for example
|
||||||
//_maxpeople = getNumber (configFile >> "CfgVehicles" >> _veh >> "transportSoldier");
|
//_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.
|
//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";
|
|
||||||
|
_launcherType = "none";
|
||||||
_sniperExists = false;
|
_sniperExists = false;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -65,12 +66,15 @@ for "_i" from 1 to _numAI do
|
|||||||
{
|
{
|
||||||
_offset = _supplyHeli getPos [10, _dir];
|
_offset = _supplyHeli getPos [10, _dir];
|
||||||
_chute = createVehicle ["Steerable_Parachute_F", [100, 100, 200], [], 0, "FLY"];
|
_chute = createVehicle ["Steerable_Parachute_F", [100, 100, 200], [], 0, "FLY"];
|
||||||
|
[_chute] call blck_fnc_protectVehicle;
|
||||||
|
/*
|
||||||
private["_modType"];
|
private["_modType"];
|
||||||
_modType = call blck_fnc_getModType;
|
_modType = call blck_fnc_getModType;
|
||||||
if (_modType isEqualTo "Epoch") then
|
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 = [[_offset select 0, _offset select 1, 180],_weapons,_paraGroup,_skillAI,_launcherType,_uniforms,_headGear] call blck_fnc_spawnAI;
|
||||||
_unit setDir (getDir _supplyHeli) - 90;
|
_unit setDir (getDir _supplyHeli) - 90;
|
||||||
_chute setPos [_offset select 0, _offset select 1, 250]; //(_offset select 2) - 10];
|
_chute setPos [_offset select 0, _offset select 1, 250]; //(_offset select 2) - 10];
|
||||||
|
@ -18,7 +18,7 @@ _arr = date call BIS_fnc_sunriseSunsetTime;
|
|||||||
_sunrise = _arr select 0;
|
_sunrise = _arr select 0;
|
||||||
_sunset = _arr select 1;
|
_sunset = _arr select 1;
|
||||||
_time = dayTime;
|
_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
|
// 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];};
|
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];};
|
||||||
|
@ -2,13 +2,37 @@
|
|||||||
Delete alive AI.
|
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.
|
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
|
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];};
|
if ((_i) <= count blck_liveMissionAI) then
|
||||||
[_x] call blck_fnc_deleteAI;
|
{
|
||||||
}forEach _aiList;
|
_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];};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
Delete Dead AI and nearby weapons after an appropriate period.
|
Delete Dead AI and nearby weapons after an appropriate period.
|
||||||
by Ghostrider
|
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"];
|
private["_aiList","_ai"];
|
||||||
_aiList = +blck_deadAI;
|
_aiList = +blck_deadAI;
|
||||||
{
|
{
|
||||||
|
@ -6,7 +6,7 @@ params["_Vehicle"];
|
|||||||
private["_modType"];
|
private["_modType"];
|
||||||
_modType = call blck_fnc_getModType;
|
_modType = call blck_fnc_getModType;
|
||||||
switch (_ModType) do {
|
switch (_ModType) do {
|
||||||
case "_modType":
|
case "Epoch":
|
||||||
{
|
{
|
||||||
diag_log format["GMS_fnc_protectVehicle:: Tokens set for vehicle %1",_Vehicle];
|
diag_log format["GMS_fnc_protectVehicle:: Tokens set for vehicle %1",_Vehicle];
|
||||||
//_Vehicle call EPOCH_server_vehicleInit;
|
//_Vehicle call EPOCH_server_vehicleInit;
|
||||||
|
@ -10,7 +10,23 @@
|
|||||||
|
|
||||||
private ["_veh","_vehList"];
|
private ["_veh","_vehList"];
|
||||||
_vehList = blck_missionVehicles;
|
_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;
|
_veh = _x;
|
||||||
if (_veh getVariable["blck_DeleteAt",0] > 0) then
|
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 ({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;
|
}else { // Deal with vehicles
|
||||||
_veh setVariable["blck_DeleteAt",diag_tickTime + 60];
|
|
||||||
}else {
|
|
||||||
if (blck_killEmptyAIVehicles) then
|
if (blck_killEmptyAIVehicles) then
|
||||||
{
|
{
|
||||||
if (blck_debugLevel > 2) 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"];
|
} 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];
|
_veh setVariable["blck_DeleteAt",diag_tickTime + 60];
|
||||||
} else {
|
} else {
|
||||||
//diag_log format["vehicleMonitor.sqf: make vehicle available to players; stripping eventHandlers from_veh %1",_veh];
|
[_veh] call _fn_releaseVehicle;
|
||||||
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];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
} else {
|
} else { // Add magazine to vehicle if possible
|
||||||
private ["_crew","_mag","_allMags","_cnt"];
|
private ["_crew","_mag","_allMags","_cnt"];
|
||||||
//_veh setVehicleAmmo 1;
|
//_veh setVehicleAmmo 1;
|
||||||
//_veh setFuel 1;
|
//_veh setFuel 1;
|
||||||
|
@ -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_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_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_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
|
// Player-related functions
|
||||||
blck_fnc_rewardKiller = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_rewardKiller.sqf";
|
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
|
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_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_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_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_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_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";
|
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_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";
|
blck_fnc_endMission = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_endMission.sqf";
|
||||||
|
|
||||||
|
// #define Reinforcements 1
|
||||||
|
#ifdef Reinforcements
|
||||||
// Reinforcement-related functions
|
// Reinforcement-related functions
|
||||||
blck_fnc_callInReinforcements = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Reinforcements\GMS_fnc_callInReinforcements.sqf";
|
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";
|
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_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";
|
||||||
//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
|
// 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]
|
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]
|
||||||
|
@ -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.
|
This file contains most constants that define mission parameters, AI behavior and loot for mission system.
|
||||||
Last modified 8/1/15
|
Last modified 8/1/15
|
||||||
*/
|
*/
|
||||||
@ -23,7 +21,6 @@ Last modified 8/1/15
|
|||||||
blck_timeAccelerationDusk = 3; // Dawn/dusk time accelearation
|
blck_timeAccelerationDusk = 3; // Dawn/dusk time accelearation
|
||||||
blck_timeAccelerationNight = 6; // Nighttim time acceleration
|
blck_timeAccelerationNight = 6; // Nighttim time acceleration
|
||||||
|
|
||||||
//blck_configsLoaded = false;
|
|
||||||
/**************************************************************
|
/**************************************************************
|
||||||
|
|
||||||
BLACKLIST LOCATIONS
|
BLACKLIST LOCATIONS
|
||||||
@ -57,7 +54,8 @@ Last modified 8/1/15
|
|||||||
blck_useHC = false; // Not Yet Working
|
blck_useHC = false; // Not Yet Working
|
||||||
|
|
||||||
// Kill message configurations
|
// 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_useKillScoreMessage = true; // when true a tile is displayed to the killer with the kill score information
|
||||||
blck_useIEDMessages = true;
|
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.
|
// 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.
|
// 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_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
|
// 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.
|
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
|
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
|
// 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_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. Note that this is a default and that mission-specific settings can be defined for each mission using the template
|
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_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_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
|
// AI STATIC WEAPON PARAMETERS
|
||||||
//Set to -1 to disable. Values of 2 or more force the mission spawner to spawn copies of that mission.
|
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_enableOrangeMissions = 1;
|
||||||
blck_enableGreenMissions = 1;
|
blck_enableGreenMissions = 1;
|
||||||
blck_enableRedMissions = 1;
|
blck_enableRedMissions = 1;
|
||||||
blck_enableBlueMissions = 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
|
//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_Orange = 3; // Number of static weapons at Orange Missions
|
||||||
blck_SpawnVeh_Green = 2; // Number of static weapons at Green 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_Blue = -1; // Number of static weapons at Blue Missions
|
||||||
blck_SpawnVeh_Red = 1; // Number of static weapons at Red 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
|
// 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_Orange = 3; // Number of static weapons at Orange Missions
|
||||||
blck_SpawnEmplaced_Green = 2; // 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_Blue = 1; // Number of static weapons at Blue Missions
|
||||||
blck_SpawnEmplaced_Red = 1; // Number of static weapons at Red 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
|
// MISSION TIMERS
|
||||||
// Reduce to 1 sec for immediate spawns, or longer if you wish to space the missions out
|
// Reduce to 1 sec for immediate spawns, or longer if you wish to space the missions out
|
||||||
blck_TMin_Orange = 250;
|
blck_TMin_Orange = 250;
|
||||||
@ -134,7 +144,6 @@ Last modified 8/1/15
|
|||||||
blck_TMax_Blue = 200;
|
blck_TMax_Blue = 200;
|
||||||
blck_TMax_Red = 250;
|
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
|
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
|
// 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];
|
// 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_AliveAICleanUpTimer = 1200; // Time after mission completion at which any remaining live AI are deleted.
|
||||||
blck_cleanupCompositionTimer = 1200;
|
|
||||||
blck_AIAlertDistance = [250,325,450,500];
|
blck_AIAlertDistance = [250,325,450,500];
|
||||||
//blck_AIAlertDistance = [150,225,400,500];
|
//blck_AIAlertDistance = [150,225,400,500];
|
||||||
// How precisely player locations will be revealed to AI after an AI kill
|
// How precisely player locations will be revealed to AI after an AI kill
|
||||||
// values are ordered as follows [blue, red, green, orange];
|
// values are ordered as follows [blue, red, green, orange];
|
||||||
blck_AIIntelligence = [0.5, 1, 2, 4];
|
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 = [
|
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]
|
["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
|
// Green Missions
|
||||||
blck_MinAI_Green = 16;
|
blck_MinAI_Green = 16;
|
||||||
@ -191,7 +199,6 @@ Last modified 8/1/15
|
|||||||
blck_SkillsGreen = [
|
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]
|
["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
|
// Red Missions
|
||||||
blck_MinAI_Red = 12;
|
blck_MinAI_Red = 12;
|
||||||
@ -200,7 +207,6 @@ Last modified 8/1/15
|
|||||||
blck_SkillsRed = [
|
blck_SkillsRed = [
|
||||||
["aimingAccuracy",0.2],["aimingShake",0.6],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.8],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70]
|
["aimingAccuracy",0.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
|
// Blue Missions
|
||||||
blck_MinAI_Blue = 8;
|
blck_MinAI_Blue = 8;
|
||||||
@ -209,7 +215,6 @@ Last modified 8/1/15
|
|||||||
blck_SkillsBlue = [
|
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]
|
["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.
|
// Add some money to AI; only works with Exile for now.
|
||||||
blck_maxMoneyOrange = 25;
|
blck_maxMoneyOrange = 25;
|
||||||
@ -217,7 +222,6 @@ Last modified 8/1/15
|
|||||||
blck_maxMoneyRed = 15;
|
blck_maxMoneyRed = 15;
|
||||||
blck_maxMoneyBlue = 10;
|
blck_maxMoneyBlue = 10;
|
||||||
|
|
||||||
// AI Settings for scouts, Hunters and crashes are definded in thos missions.
|
|
||||||
/*********************************************************************************
|
/*********************************************************************************
|
||||||
|
|
||||||
AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
AI WEAPONS, UNIFORMS, VESTS AND GEAR
|
||||||
|
@ -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.
|
This file contains most constants that define mission parameters, AI behavior and loot for mission system.
|
||||||
Last modified 8/1/15
|
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.
|
Configuration for Addons that support the overall Mission system.
|
||||||
These are a module to spawn map addons generated with the Eden Editor
|
These are a module to spawn map addons generated with the Eden Editor
|
||||||
@ -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_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_timeAccelerationDay = 1; // Daytime time accelearation
|
||||||
blck_timeAccelerationDusk = 3; // Dawn/dusk 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.
|
// 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; // 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.
|
||||||
blck_blacklistTraderCities = true; // do not spawn a mission within 1000 m of a trader.
|
// list of locations that are protected against mission spawns
|
||||||
blcklistConcreteMixerZones = true; // do not spawn a mission within 1000 m of a concrete mixer zone.
|
|
||||||
|
|
||||||
switch (toLower(worldName)) do
|
switch (toLower(worldName)) do
|
||||||
{
|
{
|
||||||
@ -55,10 +52,12 @@ Last modified 8/1/15
|
|||||||
////////
|
////////
|
||||||
// Headless Client Configurations
|
// Headless Client Configurations
|
||||||
blck_useHC = false; // Not Yet Working
|
blck_useHC = false; // Not Yet Working
|
||||||
|
|
||||||
// Kill message configurations
|
// 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_useKillScoreMessage = true; // when true a tile is displayed to the killer with the kill score information
|
||||||
|
blck_useIEDMessages = true;
|
||||||
|
|
||||||
// MISSION MARKER CONFIGURATION
|
// 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
|
// 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.
|
// 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_labelMapMarkers = [true,"center"];
|
||||||
blck_preciseMapMarkers = true; // Map markers are/are not centered at the loot crate
|
blck_preciseMapMarkers = true; // Map markers are/are not centered at the loot crate
|
||||||
|
|
||||||
//Minimum distance between missions
|
//Minimum distance between missions
|
||||||
blck_MinDistanceFromMission = 2000;
|
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.
|
// 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.
|
// 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_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.
|
||||||
|
|
||||||
// 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"];
|
|
||||||
|
|
||||||
// PLAYER PENALTIES
|
// 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.
|
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_Gear = true; // When set to true, AI that have been killed by a player in a vehicle in the list of forbidden vehicles or using a forbiden gun will be stripped of gear and the vehicle will be given blck_RunGearDamage of damage
|
||||||
blck_VK_RunoverDamage = true; // when the AI was run over blck_RunGearDamage of damage will be applied to the killer's vehicle.
|
blck_VK_RunoverDamage = true; // when the AI was run over blck_RunGearDamage of damage will be applied to the killer's vehicle.
|
||||||
blck_VK_GunnerDamage = true; // when the AI was killed by a gunner on a vehicle that is is in the list of forbidden vehicles, blck_RunGearDamage of damage will be applied to the killer's vehicle each time an AI is killed with a vehicle's gun.
|
blck_VK_GunnerDamage = true; // when the AI was killed by a gunner on a vehicle that is is in the list of forbidden vehicles, blck_RunGearDamage of damage will be applied to the killer's vehicle each time an AI is killed with a vehicle's gun.
|
||||||
blck_forbidenVehicles = ["B_MRAP_01_hmg_F","O_MRAP_02_hmg_F","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
|
// 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
|
// 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_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. Note that this is a default and that mission-specific settings can be defined for each mission using the template
|
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_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_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_enableOrangeMissions = 1;
|
||||||
blck_enableGreenMissions = 1;
|
blck_enableGreenMissions = 1;
|
||||||
blck_enableRedMissions = 1;
|
blck_enableRedMissions = 1;
|
||||||
blck_enableBlueMissions = 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
|
//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_Orange = 3; // Number of static weapons at Orange Missions
|
||||||
blck_SpawnVeh_Green = 3; // Number of static weapons at Green 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_Blue = -1; // Number of static weapons at Blue Missions
|
||||||
blck_SpawnVeh_Red = 1; // Number of static weapons at Red 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
|
// 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_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_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
|
// MISSION TIMERS
|
||||||
// Reduce to 1 sec for immediate spawns, or longer if you wish to space the missions out
|
// 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_Blue = 200;
|
||||||
blck_TMax_Red = 250;
|
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_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_groupFormation = "WEDGE"; // Possibilities include "WEDGE","VEE","FILE","DIAMOND"
|
||||||
blck_AI_Side = EAST;
|
blck_AI_Side = RESISTANCE;
|
||||||
blck_ModType = "Exile";
|
|
||||||
|
|
||||||
blck_chanceBackpack = 0.3; // Chance AI will be spawned with a backpack
|
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
|
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
|
// 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];
|
// 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_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];
|
//blck_AIAlertDistance = [150,225,400,500];
|
||||||
// How precisely player locations will be revealed to AI after an AI kill
|
// How precisely player locations will be revealed to AI after an AI kill
|
||||||
// values are ordered as follows [blue, red, green, orange];
|
// values are ordered as follows [blue, red, green, orange];
|
||||||
blck_AIIntelligence = [0.5, 1, 2, 4];
|
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
|
MISSION TYPE SPECIFIC AI SETTINGS
|
||||||
@ -207,8 +216,7 @@ Last modified 8/1/15
|
|||||||
blck_SkillsBlue = [
|
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]
|
["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.
|
// Add some money to AI; only works with Exile for now.
|
||||||
blck_maxMoneyOrange = 25;
|
blck_maxMoneyOrange = 25;
|
||||||
blck_maxMoneyGreen = 20;
|
blck_maxMoneyGreen = 20;
|
||||||
|
@ -24,7 +24,6 @@ if (blck_debugON) then
|
|||||||
// Used primarily for debugging.
|
// Used primarily for debugging.
|
||||||
diag_log "[blckeagls] Debug seting is ON, Custom configurations used";
|
diag_log "[blckeagls] Debug seting is ON, Custom configurations used";
|
||||||
|
|
||||||
//blck_mainThreadUpdateInterval = 10;
|
|
||||||
blck_enableOrangeMissions = 1;
|
blck_enableOrangeMissions = 1;
|
||||||
blck_enableGreenMissions = 1;
|
blck_enableGreenMissions = 1;
|
||||||
blck_enableRedMissions = 1;
|
blck_enableRedMissions = 1;
|
||||||
|
@ -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.
|
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 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
|
1/23/17 Version 6.54 Build 33
|
||||||
Fixed typos in GMS_fnc_vehicleMonitor.sqf
|
Fixed typos in GMS_fnc_vehicleMonitor.sqf
|
||||||
Removed a few files that are not used or needed.
|
Removed a few files that are not used or needed.
|
||||||
|
@ -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;
|
[_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
|
// 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";
|
[] spawn blck_fnc_mainThread;
|
||||||
//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";
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
private ["_version","_versionDate"];
|
private ["_version","_versionDate"];
|
||||||
_blck_version = "6.54 Build 34";
|
_blck_version = "6.55 Build 36";
|
||||||
_blck_versionDate = "1-23-17 8:00 PM";
|
_blck_versionDate = "1-24-17 11:50 PM";
|
||||||
|
Loading…
Reference in New Issue
Block a user