Build 163
Many code optimizations and a few bug fixes, all courtesy of HeMan.
This commit is contained in:
parent
9d91cba88f
commit
1d42585fe5
@ -19,7 +19,7 @@ params["_obj","_difficulty"];
|
||||
diag_log format["_fnc_addMoneyToOject: _this select %1 = %2",_foreachindex, _this select _foreachindex];
|
||||
}forEach _this;
|
||||
#endif
|
||||
if ((tolower blck_modType) isEqualTo "exile") then
|
||||
if (blck_modType isEqualTo "Exile") then
|
||||
{
|
||||
switch (_difficulty) do
|
||||
{
|
||||
@ -33,7 +33,7 @@ if ((tolower blck_modType) isEqualTo "exile") then
|
||||
};
|
||||
};
|
||||
|
||||
if ((tolower blck_modType) isEqualTo "epoch") then
|
||||
if (blck_modType isEqualTo "Epoch") then
|
||||
{
|
||||
switch (_difficulty) do
|
||||
{
|
||||
|
@ -1,9 +0,0 @@
|
||||
|
||||
|
||||
|
||||
// replaces blck_fnc_emptyObject
|
||||
params["_object"];
|
||||
clearWeaponCargoGlobal _object;
|
||||
clearMagazineCargoGlobal _object;
|
||||
clearBackpackCargoGlobal _object;
|
||||
clearItemCargoGlobal _object;
|
@ -61,7 +61,6 @@ while {true} do
|
||||
{
|
||||
[] call blck_fnc_timeAcceleration;
|
||||
};
|
||||
|
||||
#ifdef blck_debugMode
|
||||
//diag_log format["_fnc_mainThread: active SQFscripts include: %1",diag_activeSQFScripts];
|
||||
diag_log format["_fnc_mainThread: active scripts include: %1",diag_activeScripts];
|
||||
|
@ -22,7 +22,7 @@
|
||||
_obj setDir _objDir;
|
||||
_unit = [_group] call blck_fnc_spawnUnit;
|
||||
_unit moveInGunner _unit;
|
||||
_wep addMPEventHandler["MPHit",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIVehicle_HandleDamage}];
|
||||
_wep addMPEventHandler["MPHit",{[_this] call blck_EH_AIVehicle_HandleDamage}];
|
||||
_wep setVariable["GRG_vehType","emplaced"];
|
||||
[_wep,false] call blck_fnc_configureMissionVehicle;
|
||||
}forEach _emplaced;
|
||||
|
@ -29,4 +29,4 @@ _groupSpawned setVariable ["blck_group",true,true];
|
||||
if (blck_debugLevel >= 2) then {diag_log format["_fnc_create_AI_Group: _groupSpawned = %1",_groupSpawned]};
|
||||
#endif
|
||||
|
||||
_groupSpawned
|
||||
_groupSpawned
|
@ -19,45 +19,33 @@
|
||||
|
||||
_fn_deleteObjects = {
|
||||
params["_objects"];
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 0) then {diag_log format["_fn_deleteObjects:: -> _objects = %1",_objects];};
|
||||
#endif
|
||||
|
||||
{
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 1) then {diag_log format["_fnc_cleanUpObjects: -> deleting object %1",_x];};
|
||||
#endif
|
||||
|
||||
deleteVehicle _x;
|
||||
} 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;
|
||||
for "_i" from 1 to (count blck_oldMissionObjects) do {
|
||||
if (_i <= count blck_oldMissionObjects) then {
|
||||
_oldObjs = blck_oldMissionObjects deleteat 0;
|
||||
_oldObjs params ["_objarr","_timer"];
|
||||
if (diag_tickTime > _timer) then {
|
||||
[_objarr] call _fn_deleteObjects;
|
||||
uiSleep 0.1;
|
||||
blck_oldMissionObjects set[(_i - 1), -1];
|
||||
blck_oldMissionObjects = blck_oldMissionObjects - [-1];
|
||||
|
||||
#ifdef blck_debugMode
|
||||
//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];};
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
blck_oldMissionObjects pushback _oldObjs;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
@ -62,12 +62,6 @@ _fn_missionCleanup = {
|
||||
diag_log format["_fnc_endMission: Mission Aborted, setting all timers to 0"];
|
||||
};
|
||||
#endif
|
||||
/*
|
||||
if (_endCondition == 2) then
|
||||
{
|
||||
[["warning",_endMsg,_blck_localMissionMarker select 2]] call blck_fnc_messageplayers;
|
||||
};
|
||||
*/
|
||||
[_blck_localMissionMarker select 0] call blck_fnc_deleteMarker;
|
||||
_cleanupCompositionTimer = 0;
|
||||
_cleanupAliveAITimer = 0;
|
||||
|
@ -94,7 +94,7 @@ if (blck_debugLevel > 1) then
|
||||
_empGroup setcombatmode "RED";
|
||||
_empGroup setBehaviour "COMBAT";
|
||||
[(_x select 1),0.01,0.02,_empGroup,"random","SAD","emplaced"] spawn blck_fnc_setupWaypoints;
|
||||
if (isNull _empGroup) exitWith {_abort = _true};
|
||||
if (isNull _empGroup) exitWith {_abort = true};
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 1) then
|
||||
@ -105,8 +105,7 @@ if (blck_debugLevel > 1) then
|
||||
|
||||
// params["_vehType","_pos",["_clearInventory",true]];
|
||||
_wep = [(_x select 0),[0,0,0],false,true] call blck_fnc_spawnVehicle;
|
||||
//_wep addEventHandler["HandleDamage",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIVehicle_HandleDamage}];
|
||||
_wep addMPEventHandler["MPHit",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIVehicle_HandleDamage}];
|
||||
_wep addMPEventHandler ["MPHit",{[_this] call blck_EH_AIVehicle_HandleDamage}];
|
||||
//_empGroup setVariable["groupVehicle",_wep];
|
||||
_wep setVariable["vehicleGroup",_empGroup];
|
||||
#ifdef blck_debugMode
|
||||
|
@ -70,7 +70,7 @@ if ( (count _missionGroups > 0) && _noAIGroups > 0) then
|
||||
else
|
||||
{
|
||||
_newAI = units _newGroup;
|
||||
//blck_monitoredMissionAIGroups pushback _newGroup;
|
||||
blck_monitoredMissionAIGroups pushback _newGroup;
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel >= 2) then
|
||||
{
|
||||
@ -152,6 +152,7 @@ if (_missionGroups isEqualTo [] && _noAIGroups > 0) then
|
||||
{
|
||||
_newAI = units _newGroup;
|
||||
|
||||
blck_monitoredMissionAIGroups pushback _newGroup;
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel >= 2) then
|
||||
{
|
||||
@ -181,6 +182,7 @@ if (_missionGroups isEqualTo [] && _noAIGroups > 0) then
|
||||
{
|
||||
_newAI = units _newGroup;
|
||||
|
||||
blck_monitoredMissionAIGroups pushback _newGroup;
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel >= 2) then
|
||||
{
|
||||
@ -201,6 +203,7 @@ if (_missionGroups isEqualTo [] && _noAIGroups > 0) then
|
||||
{
|
||||
_newAI = units _newGroup;
|
||||
|
||||
blck_monitoredMissionAIGroups pushback _newGroup;
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel >= 2) then
|
||||
{
|
||||
@ -229,6 +232,7 @@ if (_missionGroups isEqualTo [] && _noAIGroups > 0) then
|
||||
};
|
||||
_newAI = units _newGroup;
|
||||
|
||||
blck_monitoredMissionAIGroups pushback _newGroup;
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel >= 2) then
|
||||
{
|
||||
@ -247,6 +251,7 @@ if (_missionGroups isEqualTo [] && _noAIGroups > 0) then
|
||||
else
|
||||
{
|
||||
_newAI = units _newGroup;
|
||||
blck_monitoredMissionAIGroups pushback _newGroup;
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 2) then
|
||||
{
|
||||
|
@ -68,11 +68,7 @@ if (count _readyToSpawnQue > 0) then
|
||||
// _mission = [_compiledMissionsList,format["%1%2",_marker,_i],_difficulty,_tMin,_tMax,_waitTime,[0,0,0]];
|
||||
_missionMarker = _missionToSpawn select 1;
|
||||
_missionDifficulty = _missionToSpawn select 2;
|
||||
//diag_log format["_fnc_spawnPendingMissions: _missionMarker %1",_missionMarker];
|
||||
//diag_log format["_fnc_spawnPendingMissions: _missionDifficulty %1",_missionDifficulty];
|
||||
//diag_log format["_fnc_spawnPendingMissions: _compiledMission %1",_compiledMission];
|
||||
[_coords,_missionMarker,_missionDifficulty] spawn _compiledMission;
|
||||
//diag_log format["_fnc_spawnPendingMissions: blck_missionsRunning = %1", blck_missionsRunning];
|
||||
};
|
||||
|
||||
true
|
||||
|
@ -13,7 +13,10 @@
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
params["_coords","_missionLandscape",["_min",3],["_max",15],["_nearest",1]];
|
||||
private["_objects","_wreck","_dir","_dirOffset"];
|
||||
#define objectSpawnRadius 15
|
||||
#define maxObjectSpawnRadius 25
|
||||
#define minObjectSpawnRadius 10
|
||||
private _objectSpawnRange = maxObjectSpawnRadius - minObjectSpawnRadius;
|
||||
|
||||
_objects = [];
|
||||
_wreck = createVehicle ["RoadCone_L_F", _coords]; // To designate the mission center
|
||||
_wreck allowDamage true;
|
||||
@ -24,8 +27,8 @@ _objects pushBack _wreck;
|
||||
{
|
||||
//Random Position Objects based on distance in array
|
||||
// https://community.bistudio.com/wiki/BIS_fnc_findSafePos
|
||||
private _posX = ((_coords select 0) + random(objectSpawnRadius)) * (selectRandom[1,-1]);
|
||||
private _posY = ((_coords select 1) + random(objectSpawnRadius)) * (selectRandom[1,-1]);
|
||||
private _posX = ((_coords select 0) + ((random(_objectSpawnRange) + minObjectSpawnRadius) * (selectRandom[1,-1]));
|
||||
private _posY = ((_coords select 1) + ((random(_objectSpawnRange) + minObjectSpawnRadius) * (selectRandom[1,-1]));
|
||||
_pos = [_coords,_min,_max,_nearest,0,5,0] call BIS_fnc_findSafePos;
|
||||
_wreck = createVehicle[_x, _pos, [], 2];
|
||||
//diag_log format["_fnc_spawnRandomLandscape: _x = %1 | _wreck = %2",_x,_wreck];
|
||||
|
@ -13,56 +13,24 @@
|
||||
*/
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
/*
|
||||
_fn_deleteAIfromList = {
|
||||
params["_aiList"];
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 0) then {diag_log format["_fn_deleteAIfromList:: _aiList = %1",_aiList];};
|
||||
#endif
|
||||
|
||||
{
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 1) then {diag_log format["_fn_deleteAIfromList:: -> deleteing AI Unit %1",_x];};
|
||||
#endif
|
||||
|
||||
[_x] call blck_fnc_deleteAI;
|
||||
}forEach _aiList;
|
||||
};
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 1) then {diag_log format["_fnc_cleanupAliveAI called at %1",diag_tickTime];};
|
||||
#endif
|
||||
*/
|
||||
for "_i" from 1 to (count blck_liveMissionAI) do
|
||||
{
|
||||
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];
|
||||
for "_i" from 1 to (count blck_liveMissionAI) do {
|
||||
if ((_i) <= count blck_liveMissionAI) then {
|
||||
_units = blck_liveMissionAI deleteat 0;
|
||||
_units params ["_unitsarr","_timer"];
|
||||
if (diag_tickTime > _timer) then {
|
||||
{
|
||||
|
||||
//diag_log format["_fnc_cleanupAliveAI:: deleting unit %1",_x];
|
||||
//diag_log format["_fnc_cleanupAliveAI:: vehicle _x = %1",vehicle _x];
|
||||
//diag_log format["_fnc_cleanupAliveAI:: objectParent _x = %1",objectParent _x];
|
||||
|
||||
if ((alive _x) && !(isNull objectParent _x)) then // mark the vehicle for deletion
|
||||
{
|
||||
//diag_log format["_fnc_cleanupAliveAI: deleteing objectParent %1 [%3] for unit %2",objectParent _x, _x, typeName (objectParent _x), typeOf (objectParent _x)];
|
||||
if ((alive _x) && !(isNull objectParent _x)) then {
|
||||
[objectParent _x] call blck_fnc_deleteAIvehicle;
|
||||
};
|
||||
[_x] call blck_fnc_deleteAI;
|
||||
}forEach (_units select 0);
|
||||
} forEach _unitsarr;
|
||||
uiSleep 0.1;
|
||||
blck_liveMissionAI set[(_i - 1), -1];
|
||||
blck_liveMissionAI = blck_liveMissionAI - [-1]; // Remove that list of live AI from the list.
|
||||
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugLevel > 1) then {diag_log format["_fnc_mainTread:: blck_liveMissionAI updated to %1",blck_liveMissionAI];};
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
blck_liveMissionAI pushback _units;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
};
|
@ -18,7 +18,7 @@ if (blck_debugLevel > 2) then {diag_log format["fnc_cleanupDeadAI called at time
|
||||
private["_aiList","_ai"];
|
||||
_aiList = +blck_deadAI;
|
||||
{
|
||||
if ( diag_tickTime > _x getVariable ["blck_cleanupAt",0] ) then // DBD_DeleteAITimer
|
||||
if (diag_tickTime > _x getVariable ["blck_cleanupAt",0]) then
|
||||
{
|
||||
_ai = _x;
|
||||
{
|
||||
|
@ -80,9 +80,9 @@ if ( blck_VK_GunnerDamage ) then
|
||||
if ((currentWeapon _killer) in blck_forbidenVehicleGuns) then { _legal = false;};
|
||||
};
|
||||
|
||||
if (blck_VK_Gear) then {[_unit] call _fn_deleteAIGear;};
|
||||
if !(_legal) then
|
||||
{
|
||||
if (blck_VK_Gear) then {[_unit] call _fn_deleteAIGear;};
|
||||
[_unit, vehicle _killer] call _fn_targetVehicle;
|
||||
[vehicle _killer] call _fn_applyVehicleDamage;
|
||||
[_killer] call _fn_msgIED;
|
||||
|
@ -193,9 +193,9 @@ if (blck_debugLevel > 2) then
|
||||
};
|
||||
#endif
|
||||
|
||||
_unit addEventHandler ["Reloaded", {_this call compile preprocessfilelinenumbers blck_EH_unitWeaponReloaded;}];
|
||||
_unit addMPEventHandler ["MPKilled", {[(_this select 0), (_this select 1)] call compile preprocessfilelinenumbers blck_EH_AIKilled;}]; // changed to reduce number of concurrent threads, but also works as spawn blck_AIKilled; }];
|
||||
_unit addMPEventHandler ["MPHit",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIHit;}];
|
||||
_unit addEventHandler ["Reloaded", {_this call blck_EH_unitWeaponReloaded;}];
|
||||
_unit addMPEventHandler ["MPKilled", {[(_this select 0), (_this select 1)] call blck_EH_AIKilled;}];
|
||||
_unit addMPEventHandler ["MPHit",{[_this] call blck_EH_AIHit;}];
|
||||
|
||||
switch (_skillLevel) do
|
||||
{
|
||||
|
@ -8,45 +8,42 @@ params["_vehicle","_searchRadius","_detectionOdds"];
|
||||
private["_player","_detectionOdds","_nearbyPlayers","_knowsAbout","_cansee","_knowledgeGained"];
|
||||
_nearbyPlayers = [position _vehicle, _vehicle getVariable["blck_vehicleSearchRange",500]] call blck_fnc_nearestPlayers;
|
||||
|
||||
if (blck_revealMode isEqualTo "detailed") then
|
||||
{
|
||||
private["_crew","_group"];
|
||||
_crew = crew _vehicle;
|
||||
_group = group(_crew select 0);
|
||||
{
|
||||
if (random(1) < _detectionOdds) then
|
||||
switch blck_revealMode do {
|
||||
case "detailed": {
|
||||
private["_crew"];
|
||||
_crew = crew _vehicle;
|
||||
if !(_crew isequalto []) then {
|
||||
{
|
||||
if (random(1) < _detectionOdds) then {
|
||||
_player = _x;
|
||||
{
|
||||
_cansee = [objNull, "VIEW"] checkVisibility [eyePos _x, position _player];
|
||||
if (_cansee > 0) then {
|
||||
_knowledgeGained = _cansee;
|
||||
}
|
||||
else {
|
||||
_knowledgeGained = _x knowsAbout _player;
|
||||
if (_knowledgeGained == 0) then {_knowledgeGained = 0.1};
|
||||
};
|
||||
_x reveal[_player,_knowledgeGained];
|
||||
}forEach _crew;
|
||||
};
|
||||
}forEach _nearbyPlayers;
|
||||
};
|
||||
};
|
||||
case "basic": {
|
||||
{
|
||||
_player = _x;
|
||||
{
|
||||
_cansee = [objNull, "VIEW"] checkVisibility [eyePos _x, position _player];
|
||||
if (_cansee > 0) then
|
||||
{
|
||||
_knowledgeGained = _cansee;
|
||||
} else {
|
||||
_knowledgeGained = _x knowsAbout _player;
|
||||
if (_knowledgeGained == 0) then {_knowledgeGained = 0.1};
|
||||
if (random(1) < _detectionOdds) then {
|
||||
_knowsAbout = (_vehicle) knowsAbout _player;
|
||||
if (_knowsAbout > 0) then {
|
||||
_knowledgeGained = _knowsAbout;
|
||||
}
|
||||
else {
|
||||
_knowledgeGained = (_searchRadius - (_x distance _vehicle))/_searchRadius;
|
||||
};
|
||||
_x reveal[_player,_knowledgeGained];
|
||||
//diag_log format["_fnc_revealNearbyPlayers: player %1 revealed to unit %2",_player,_x];
|
||||
}forEach _crew;
|
||||
};
|
||||
}forEach _nearbyPlayers;
|
||||
};
|
||||
|
||||
if (blck_revealMode isEqualTo "basic") then
|
||||
{
|
||||
{
|
||||
_player = _x;
|
||||
if (random(1) < _detectionOdds) then
|
||||
{
|
||||
_knowsAbout = (_vehicle) knowsAbout _player;
|
||||
if (_knowsAbout > 0) then
|
||||
{
|
||||
_knowledgeGained = _knowsAbout;
|
||||
} else {
|
||||
_knowledgeGained = (_searchRadius - (_x distance _vehicle))/_searchRadius;
|
||||
_x reveal[_player, _knowledgeGained];
|
||||
};
|
||||
_x reveal[_player, _knowledgeGained];
|
||||
};
|
||||
}forEach _nearbyPlayers;
|
||||
}forEach _nearbyPlayers;
|
||||
};
|
||||
};
|
@ -55,8 +55,9 @@ if !(isNull _grpPilot) then
|
||||
_grpPilot setVariable["arc",0];
|
||||
_grpPilot setVariable["wpRadius",30];
|
||||
_grpPilot setVariable["wpMode","SAD"];
|
||||
//[_coords,_minDist,_maxDist,_groupSpawned,"random","SAD","infantry"] spawn blck_fnc_setupWaypoints;
|
||||
diag_log format["_fnc_spawnMissionHeli - max radii are: blue %1 | red %2 | green %3 | orange %4",blck_maxPatrolRadiusHelisBlue,blck_maxPatrolRadiusHelisRed,blck_maxPatrolRadiusHelisGreen,blck_maxPatrolRadiusHelisOrange];
|
||||
diag_log format["_fnc_spawnMissionHeli(59): _skillAI = %1 | _minDist = %2 | _maxDist = %3",_skillAI,_minDist,_maxDist];
|
||||
[_coords,_minDist,_maxDist,_grpPilot,"random","SAD","pilot"] call blck_fnc_setupWaypoints;
|
||||
switch (toLower(_skillAI)) do
|
||||
{
|
||||
case "blue": {_minDist = 150;_maxDist = blck_maxPatrolRadiusHelisBlue};
|
||||
@ -66,7 +67,6 @@ if !(isNull _grpPilot) then
|
||||
default {_minDist = 150; _maxDist = 500};
|
||||
};
|
||||
|
||||
[_coords,_minDist,_maxDist,_grpPilot,"random","SAD","helicopter"] call blck_fnc_setupWaypoints;
|
||||
blck_monitoredMissionAIGroups pushBack _grpPilot;
|
||||
//create helicopter and spawn it
|
||||
if (( typeName _helis) isEqualTo "ARRAY") then
|
||||
|
@ -35,11 +35,10 @@ if (blck_debugLevel > 1) then
|
||||
|
||||
|
||||
|
||||
if !(isNull _group) then
|
||||
{ // exitWith {diag_log "[blckeagls] ERROR CONDITION:-->> NULL-GROUP Provided to _fnc_spawnVehiclePatrol"; objNull;};
|
||||
if !(isNull _group) then {
|
||||
_veh = [_vehType,_pos] call blck_fnc_spawnVehicle;
|
||||
// _veh addEventHandler["HandleDamage",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIVehicle_HandleDamage}];
|
||||
_veh addMPEventHandler["MPHit",{ [_this] call compile preprocessFileLineNumbers blck_EH_AIVehicle_HandleHit}];
|
||||
// _veh addEventHandler["HandleDamage",{ [_this] call blck_EH_AIVehicle_HandleDamage}];
|
||||
_veh addMPEventHandler["MPHit",{ [_this] call blck_EH_AIVehicle_HandleHit}];
|
||||
_veh setVariable["blck_vehicleSearchRadius",blck_playerDetectionRangeGroundVehicle];
|
||||
_veh setVariable["blck_vehiclePlayerDetectionOdds",blck_vehiclePlayerDetectionOdds];
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
*/
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
private ["_vehList","_veh","_isEmplaced","_ownerIsPlayer","_allCrewDead","_deleteNow","_evaluate"];
|
||||
private ["_vehList"];
|
||||
_vehList = +blck_monitoredVehicles;
|
||||
|
||||
#ifdef blck_debugMode
|
||||
@ -36,17 +36,18 @@ if (blck_debugLevel > 2) then {diag_log format["_fnc_vehicleMonitor:: function c
|
||||
|
||||
if (true) then
|
||||
{
|
||||
private["_veh","_isEmplaced","_ownerIsPlayer","_allCrewDead","_deleteNow","_evaluate"];
|
||||
private["_veh","_isEmplaced","_ownerIsPlayer","_allCrewDead","_evaluate","_deleteat"];
|
||||
_veh = _x; // (purely for clarity at this point, _x could be used just as well)
|
||||
|
||||
_isEmplaced = _veh getVariable["GRG_vehType","none"] isEqualTo "emplaced";
|
||||
_ownerIsPlayer = if (owner _veh > 2 && !(owner _veh in blck_connectedHCs)) then {true} else {false};
|
||||
_allCrewDead = if (({alive _x} count (crew _veh)) == 0) then {true} else {false};
|
||||
_ownerIsPlayer = owner _veh > 2 && !(owner _veh in blck_connectedHCs);
|
||||
_allCrewDead = {alive _x} count (crew _veh) == 0;
|
||||
_evaluate = 0;
|
||||
if (_allCrewDead && _isEmplaced && (_veh getVariable["blck_deleteAt",0] == 0)) then {_evaluate = 1};
|
||||
if (_allCrewDead && !(_isEmplaced) && (_veh getVariable["blck_deleteAt",0] == 0)) then {_evaluate = 2};
|
||||
if ((_veh getVariable["blck_deleteAt",0] > 0) && (diag_tickTime > (_veh getVariable["blck_deleteAt",0]))) then {_evaluate = 3};
|
||||
if (/*_ownerIsPlayer*/ (owner _veh > 2) && !(owner _veh in blck_connectedHCs)) then {_evaluate = 4};
|
||||
_deleteat = _veh getVariable ["blck_deleteAt",0];
|
||||
if (_allCrewDead && _isEmplaced && _deleteat == 0) then {_evaluate = 1};
|
||||
if (_allCrewDead && !(_isEmplaced) && _deleteat == 0) then {_evaluate = 2};
|
||||
if (_deleteat > 0 && diag_tickTime > _deleteat) then {_evaluate = 3};
|
||||
if (_ownerIsPlayer) then {_evaluate = 4};
|
||||
//diag_log format["_fnc_vehicleMonitor: vehicle = %1 | owner = %2 | crew = %2",_veh, owner _veh, {alive _x} count (crew _veh)];
|
||||
switch (_evaluate) do
|
||||
{
|
||||
|
@ -13,161 +13,159 @@
|
||||
*/
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
// General functions
|
||||
blck_fnc_waitTimer = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_waitTimer.sqf";
|
||||
blck_fnc_timedOut = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_timedOut.sqf";
|
||||
blck_fnc_FindSafePosn = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_findSafePosn.sqf";
|
||||
blck_fnc_randomPosition = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_randomPosn.sqf";// find a randomPosn. see script for details.
|
||||
blck_fnc_findPositionsAlongARadius = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_findPositionsAlongARadius.sqf";
|
||||
blck_fnc_giveTakeCrypto = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_giveTakeCrypto.sqf";
|
||||
blck_fnc_timeAcceleration = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\TimeAccel\GMS_fnc_Time.sqf";
|
||||
blck_fnc_getModType = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_getModType.sqf"; // Test if Epoch or Exile is loaded
|
||||
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_playerInRangeArray = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_playerInRangeArray.sqf"; // GMS_fnc_playerInRangeArray
|
||||
blck_fnc_mainThread = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_mainThread.sqf";
|
||||
blck_fnc_allPlayers = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_allPlayers.sqf";
|
||||
blck_fnc_addItemToCrate = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_addItemToCrate.sqf";
|
||||
blck_fnc_loadLootItemsFromArray = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_loadLootItemsFromArray.sqf";
|
||||
blck_fnc_getNumberFromRange = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_getNumberFromRange.sqf";
|
||||
blck_fnc_spawnMarker = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_spawnMarker.sqf";
|
||||
blck_fnc_missionCompleteMarker = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_missionCompleteMarker.sqf";
|
||||
blck_fnc_deleteMarker = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_deleteMarker.sqf";
|
||||
blck_fnc_updateMarkerAliveCount = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_updateMarkerAliveCount.sqf";
|
||||
blck_fnc_addMoneyToObject = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_addMoneyToObject.sqf";
|
||||
blck_fnc_spawnMissionEmplacedRelative = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_spawnMissionEmplacedRelative.sqf";
|
||||
blck_fnc_spawnMissionLootBoxesRelative = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_spawnMissionLootBoxesRelative.sqf";
|
||||
blck_fnc_spawnSingleObject = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_spawnSingleObject.sqf";
|
||||
blck_fnc_emptyObjectInventory = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_emptyObjectInventory.sqf";
|
||||
blck_fnc_spawnMissionLandscapeRelative = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_spawnMissionLandscapeRelative.sqf";
|
||||
blck_fnc_nearestPlayers = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_nearestPlayers.sqf";
|
||||
//blck_fnc_getTraderCitiesEpoch = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_getTraderCitiesEpoch.sqf";
|
||||
//blck_fnc_getTraderCitesExile = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_getTraderCitesExile.sqf";
|
||||
private _functions = [
|
||||
// General functions
|
||||
["blck_fnc_waitTimer","\q\addons\custom_server\Compiles\Functions\GMS_fnc_waitTimer.sqf"],
|
||||
["blck_fnc_timedOut","\q\addons\custom_server\Compiles\Functions\GMS_fnc_timedOut.sqf"],
|
||||
["blck_fnc_FindSafePosn","\q\addons\custom_server\Compiles\Functions\GMS_fnc_findSafePosn.sqf"],
|
||||
["blck_fnc_randomPosition","\q\addons\custom_server\Compiles\Functions\GMS_fnc_randomPosn.sqf"], // find a randomPosn. see script for details.
|
||||
["blck_fnc_findPositionsAlongARadius","\q\addons\custom_server\Compiles\Functions\GMS_fnc_findPositionsAlongARadius.sqf"],
|
||||
["blck_fnc_giveTakeCrypto","\q\addons\custom_server\Compiles\Functions\GMS_fnc_giveTakeCrypto.sqf"],
|
||||
["blck_fnc_timeAcceleration","\q\addons\custom_server\Compiles\TimeAccel\GMS_fnc_Time.sqf"],
|
||||
["blck_fnc_groupsOnAISide","\q\addons\custom_server\Compiles\Functions\GMS_fnc_GroupsOnAISide.sqf"], // Returns the number of groups on the side used by AI
|
||||
["blck_fnc_emptyObject","\q\addons\custom_server\Compiles\Functions\GMS_fnc_emptyObject.sqf"],
|
||||
["blck_fnc_playerInRange","\q\addons\custom_server\Compiles\Functions\GMS_fnc_playerInRange.sqf"],
|
||||
["blck_fnc_playerInRangeArray","\q\addons\custom_server\Compiles\Functions\GMS_fnc_playerInRangeArray.sqf"],
|
||||
["blck_fnc_mainThread","\q\addons\custom_server\Compiles\Functions\GMS_fnc_mainThread.sqf"],
|
||||
["blck_fnc_allPlayers","\q\addons\custom_server\Compiles\Functions\GMS_fnc_allPlayers.sqf"],
|
||||
["blck_fnc_addItemToCrate","\q\addons\custom_server\Compiles\Functions\GMS_fnc_addItemToCrate.sqf"],
|
||||
["blck_fnc_loadLootItemsFromArray","\q\addons\custom_server\Compiles\Functions\GMS_fnc_loadLootItemsFromArray.sqf"],
|
||||
["blck_fnc_getNumberFromRange","\q\addons\custom_server\Compiles\Functions\GMS_fnc_getNumberFromRange.sqf"],
|
||||
["blck_fnc_spawnMarker","\q\addons\custom_server\Compiles\Functions\GMS_fnc_spawnMarker.sqf"],
|
||||
["blck_fnc_missionCompleteMarker","\q\addons\custom_server\Compiles\Functions\GMS_fnc_missionCompleteMarker.sqf"],
|
||||
["blck_fnc_deleteMarker","\q\addons\custom_server\Compiles\Functions\GMS_fnc_deleteMarker.sqf"],
|
||||
["blck_fnc_updateMarkerAliveCount","\q\addons\custom_server\Compiles\Functions\GMS_fnc_updateMarkerAliveCount.sqf"],
|
||||
["blck_fnc_addMoneyToObject","\q\addons\custom_server\Compiles\Functions\GMS_fnc_addMoneyToObject.sqf"],
|
||||
["blck_fnc_spawnMissionEmplacedRelative","\q\addons\custom_server\Compiles\Functions\GMS_fnc_spawnMissionEmplacedRelative.sqf"],
|
||||
["blck_fnc_spawnMissionLootBoxesRelative","\q\addons\custom_server\Compiles\Functions\GMS_fnc_spawnMissionLootBoxesRelative.sqf"],
|
||||
["blck_fnc_spawnSingleObject","\q\addons\custom_server\Compiles\Functions\GMS_fnc_spawnSingleObject.sqf"],
|
||||
["blck_fnc_emptyObjectInventory","\q\addons\custom_server\Compiles\Functions\GMS_fnc_emptyObjectInventory.sqf"],
|
||||
["blck_fnc_spawnMissionLandscapeRelative","\q\addons\custom_server\Compiles\Functions\GMS_fnc_spawnMissionLandscapeRelative.sqf"],
|
||||
["blck_fnc_nearestPlayers","\q\addons\custom_server\Compiles\Functions\GMS_fnc_nearestPlayers.sqf"],
|
||||
|
||||
// Player-related functions
|
||||
["blck_fnc_rewardKiller","\q\addons\custom_server\Compiles\Units\GMS_fnc_rewardKiller.sqf"],
|
||||
["blck_fnc_MessagePlayers","\q\addons\custom_server\Compiles\Functions\GMS_fnc_AIM.sqf"], // Send messages to players regarding Missions
|
||||
|
||||
// Mission-related functions
|
||||
["blck_fnc_selectAILoadout","\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectAILoadout.sqf"],
|
||||
["blck_fnc_selectAISidearms","\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectAISidearms.sqf"],
|
||||
["blck_fnc_selectAIUniforms","\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectAIUniforms.sqf"],
|
||||
["blck_fnc_selectAIHeadgear","\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectAIHeadgear.sqf"],
|
||||
["blck_fnc_selectAIVests","\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectAIVests.sqf"],
|
||||
["blck_fnc_selectAIBackpacks","\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectAIBackpacks.sqf"],
|
||||
["blck_fnc_selectChanceHeliPatrol","\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectChanceHeliPatrol.sqf"],
|
||||
["blck_fnc_selectMissionHelis","\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectMissionHelis.sqf"],
|
||||
["blck_fnc_selectNumberAirPatrols","\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectNumberAirPatrols.sqf"],
|
||||
["blck_fnc_selectNumberParatroops","\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectNumberParatroops.sqf"],
|
||||
["blck_fnc_selectChanceParatroops","\q\addons\custom_server\Compiles\Missions\GMS_fnc_selecctChanceParatroops.sqf"],
|
||||
["blck_fnc_addMissionToQue","\q\addons\custom_server\Compiles\Missions\GMS_fnc_addMissionToQue.sqf"],
|
||||
["blck_fnc_updateMissionQue","\q\addons\custom_server\Compiles\Missions\GMS_fnc_updateMissionQue.sqf"],
|
||||
["blck_fnc_spawnPendingMissions","\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnPendingMissions.sqf"],
|
||||
["blck_fnc_addLiveAItoQue","\q\addons\custom_server\Compiles\Missions\GMS_fnc_addLiveAItoQue.sqf"],
|
||||
["blck_fnc_addObjToQue","\q\addons\custom_server\Compiles\Missions\GMS_fnc_addObjToQue.sqf"],
|
||||
["blck_fnc_spawnCrate","\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnCrate.sqf"], // Simply spawns a crate of a specified type at a specific position.
|
||||
["blck_fnc_spawnMissionCrates","\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnMissionCrates.sqf"],
|
||||
["blck_fnc_cleanupObjects","\q\addons\custom_server\Compiles\Missions\GMS_fnc_cleanUpObjects.sqf"],
|
||||
["blck_fnc_spawnCompositionObjects","\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnBaseObjects.sqf"],
|
||||
["blck_fnc_spawnRandomLandscape","\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnRandomLandscape.sqf"],
|
||||
["blck_fnc_spawnMissionVehiclePatrols","\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnMissionVehiclePatrols.sqf"],
|
||||
["blck_fnc_spawnEmplacedWeaponArray","\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnEmplacedWeaponArray.sqf"],
|
||||
["blck_fnc_spawnMissionAI","\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnMissionAI.sqf"],
|
||||
["blck_fnc_spawnMissionLootVehicles","\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnMissionLootVehicles.sqf"],
|
||||
["blck_fnc_fillBoxes","\q\addons\custom_server\Compiles\Missions\GMS_fnc_fillBoxes.sqf"], // Adds items to an object according to passed parameters. See the script for details.
|
||||
["blck_fnc_smokeAtCrates","\q\addons\custom_server\Compiles\Missions\GMS_fnc_smokeAtCrates.sqf"], // Spawns a wreck and adds smoke to it
|
||||
["blck_fnc_spawnMines","\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnMines.sqf"], // Deploys mines at random locations around the mission center
|
||||
["blck_fnc_clearMines","\q\addons\custom_server\Compiles\Missions\GMS_fnc_clearMines.sqf"], // clears mines in an array passed as a parameter
|
||||
["blck_fnc_signalEnd","\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","\q\addons\custom_server\Compiles\Missions\GMS_fnc_endMission.sqf"],
|
||||
["blck_fnc_paraDropObject","\q\addons\custom_server\Compiles\Missions\GMS_fnc_paraDropObject.sqf"],
|
||||
["blck_fnc_loadMissionCrate","\q\addons\custom_server\Compiles\Missions\GMS_fnc_loadMissionCrate.sqf"],
|
||||
["blck_fnc_crateMoved","\q\addons\custom_server\Compiles\Missions\GMS_fnc_crateMoved.sqf"],
|
||||
["blck_fnc_crateMarker","\q\addons\custom_server\Compiles\Missions\GMS_fnc_crateMarker.sqf"],
|
||||
["blck_fnc_garrisonBuilding_RelPosSystem","\q\addons\custom_server\Compiles\Missions\GMS_fnc_garrisonBuilding_relPosSystem.sqf"],
|
||||
["blck_fnc_garrisonBuilding_ATLsystem","\q\addons\custom_server\Compiles\Missions\GMS_fnc_garrisonBuilding_ATLsystem.sqf"],
|
||||
["blck_fnc_spawnGarrisonInsideBuilding_ATL","\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnGarrisonInsideBuilding_ATL.sqf"],
|
||||
["blck_fnc_spawnGarrisonInsideBuilding_relPos","\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnGarrisonInsideBuilding_relPos.sqf"],
|
||||
|
||||
// Group-related functions
|
||||
["blck_fnc_spawnGroup","\q\addons\custom_server\Compiles\Groups\GMS_fnc_spawnGroup.sqf"], // Spawn a single group and populate it with AI units]
|
||||
["blck_fnc_setupWaypoints","\q\addons\custom_server\Compiles\Groups\GMS_fnc_setupWaypoints.sqf"], // Set default waypoints for a group
|
||||
["blck_fnc_missionGroupMonitor","\q\addons\custom_server\Compiles\Groups\GMS_fnc_missionGroupMonitor.sqf"], // Monitors active groups for those that are stuck in an SAD waypoint but not in combat
|
||||
["blck_fnc_changeToSADWaypoint","\q\addons\custom_server\Compiles\Groups\GMS_fnc_changeToSADWaypoint.sqf"],
|
||||
["blck_fnc_changeToMoveWaypoint","\q\addons\custom_server\Compiles\Groups\GMS_fnc_changeToMoveWaypoint.sqf"],
|
||||
["blck_fnc_changeToSentryWaypoint","\q\addons\custom_server\Compiles\Groups\GMS_fnc_changeToSentryWaypoint.sqf"],
|
||||
// ["blck_fnc_setNextWaypoint","\q\addons\custom_server\Compiles\Groups\GMS_fnc_setNextWaypoint.sqf"],
|
||||
["blck_fnc_cleanEmptyGroups","\q\addons\custom_server\Compiles\Groups\GMS_fnc_cleanEmptyGroups.sqf"], // GMS_fnc_cleanEmptyGroups
|
||||
["blck_fnc_findNearestInfantryGroup","\q\addons\custom_server\Compiles\Groups\GMS_fnc_findNearestInfantryGroup.sqf"],
|
||||
["blck_fnc_create_AI_Group","\q\addons\custom_server\Compiles\Groups\GMS_fnc_create_AI_Group.sqf"], // create a group for which other functions spawn AI.
|
||||
|
||||
// Functions specific to vehicles, whether wheeled, aircraft or static
|
||||
["blck_fnc_spawnVehicle","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_spawnVehicle.sqf"],
|
||||
["blck_fnc_spawnVehiclePatrol","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_spawnVehiclePatrol.sqf"],
|
||||
["blck_fnc_protectVehicle","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_protectVehicle.sqf"],
|
||||
["blck_fnc_configureMissionVehicle","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_configureMissionVehicle.sqf"],
|
||||
["blck_fnc_vehicleMonitor","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_vehicleMonitor.sqf"],
|
||||
["blck_fnc_spawnMissionReinforcements","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_spawnMissionReinforcements.sqf"],
|
||||
["blck_fnc_spawnMissionHeli","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_spawnMissionHeli.sqf"],
|
||||
["blck_EH_AIVehicle_HandleHit","\q\addons\custom_server\Compiles\Vehicles\GMS_EH_AIVehicle_Hit.sqf"],
|
||||
["blck_fnc_HandleAIVehicleHit","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_HandleAIVehicleHit.sqf"],
|
||||
["blck_EH_VehicleKilled","\q\addons\custom_server\Compiles\Vehicles\GMS_EH_VehicleKilled.sqf"],
|
||||
["blck_fnc_processAIVehicleKill","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_processAIVehicleKill.sqf"],
|
||||
["blck_fnc_selectPatrolVehicle","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_selectPatrolVehicle.sqf"],
|
||||
["blck_fnc_releaseVehicleToPlayers","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_releaseVehicleToPlayers.sqf"],
|
||||
["blck_fnc_deleteAIVehicle","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_deleteAIVehicle.sqf"],
|
||||
["blck_fnc_destroyVehicleAndCrew","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_destroyVehicleAndCrew.sqf"],
|
||||
["blck_fnc_reloadVehicleAmmo","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_reloadVehicleAmmo.sqf"],
|
||||
["blck_fnc_scanForPlayersNearVehicles","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_scanForPlayersNearVehicles.sqf"],
|
||||
["blck_fnc_revealNearbyPlayers","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_revealNearbyPlayers.sqf"],
|
||||
|
||||
// functions to support Units
|
||||
["blck_fnc_removeGear","\q\addons\custom_server\Compiles\Units\GMS_fnc_removeGear.sqf"], // Strip an AI unit of all gear.
|
||||
["blck_fnc_spawnUnit","\q\addons\custom_server\Compiles\Units\GMS_fnc_spawnUnit.sqf"], // spawn individual AI
|
||||
["blck_EH_AIKilled","\q\addons\custom_server\Compiles\Units\GMS_EH_AIKilled.sqf"], // Event handler to process AI deaths
|
||||
["blck_EH_AIHit","\q\addons\custom_server\Compiles\Units\GMS_EH_AIHit.sqf"],
|
||||
["blck_EH_unitWeaponReloaded","\q\addons\custom_server\Compiles\Units\GMS_EH_unitWeaponReloaded.sqf"],
|
||||
["blck_EH_animDone","\q\addons\custom_server\Compiles\Units\GMS_EH_animDone.sqf"],
|
||||
["blck_fnc_processAIKill","\q\addons\custom_server\Compiles\Units\GMS_fnc_processAIKill.sqf"],
|
||||
["blck_fnc_removeLaunchers","\q\addons\custom_server\Compiles\Units\GMS_fnc_removeLaunchers.sqf"],
|
||||
["blck_fnc_removeNVG","\q\addons\custom_server\Compiles\Units\GMS_fnc_removeNVG.sqf"],
|
||||
["blck_fnc_alertNearbyUnits","\q\addons\custom_server\Compiles\Units\GMS_fnc_alertNearbyUnits.sqf"],
|
||||
["blck_fnc_alertGroupUnits","\q\addons\custom_server\Compiles\Units\GMS_fnc_alertGroupUnits.sqf"],
|
||||
["blck_fnc_alertNearbyVehicles","\q\addons\custom_server\Compiles\Units\GMS_fnc_alertNearbyVehicles.sqf"],
|
||||
["blck_fnc_processIlleagalAIKills","\q\addons\custom_server\Compiles\Units\GMS_fnc_processIlleagalAIKills.sqf"],
|
||||
["blck_fnc_cleanupDeadAI","\q\addons\custom_server\Compiles\Units\GMS_fnc_cleanupDeadAI.sqf"], // handles deletion of AI bodies and gear when it is time.
|
||||
["blck_fnc_setSkill","\q\addons\custom_server\Compiles\Units\GMS_fnc_setSkill.sqf"],
|
||||
["blck_fnc_cleanupAliveAI","\q\addons\custom_server\Compiles\Units\GMS_fnc_cleanupAliveAI.sqf"],
|
||||
["blck_fnc_deleteAI","\q\addons\custom_server\Compiles\Units\GMS_fnc_deleteAI.sqf"],
|
||||
["blck_fnc_processAIHit","\q\addons\custom_server\Compiles\Units\GMS_fnc_processAIHit.sqf"],
|
||||
["blck_fnc_spawnHostage","\q\addons\custom_server\Compiles\Units\GMS_fnc_spawnHostage.sqf"],
|
||||
["blck_fnc_spawnLeader","\q\addons\custom_server\Compiles\Units\GMS_fnc_spawnLeader.sqf"],
|
||||
["blck_fnc_spawnCharacter","\q\addons\custom_server\Compiles\Units\GMS_fnc_spawnCharacter.sqf"],
|
||||
["blck_fnc_spawnParaUnits","\q\addons\custom_server\Compiles\Units\GMS_fnc_spawnParaUnits.sqf"],
|
||||
["blck_fnc_nextAnim","\q\addons\custom_server\Compiles\Units\GMS_fnc_nextAnim.sqf"],
|
||||
["blck_fnc_placeCharacterInBuilding","\q\addons\custom_server\Compiles\Units\GMS_fnc_placeCharacterInBuilding.sqf"],
|
||||
|
||||
// HC support functions
|
||||
["blck_fnc_HC_XferGroup","\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_XferGroup.sqf"],
|
||||
["blck_fnc_onPlayerDisconnected","\q\addons\custom_server\Compiles\HC\GMS_fnc_onPlayerDisconnected.sqf"],
|
||||
["blck_fnc_HC_monitor","\q\addons\custom_server\Compiles\HC\GMS_fnc_HCmonitor.sqf"],
|
||||
["blck_fnc_HC_passToHCs","\q\addons\custom_server\Compiles\HC\GMS_fnc_passToHCs.sqf"],
|
||||
["blck_fnc_HC_getListConnected","\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_getListConnected.sqf"],
|
||||
["blck_fnc_HC_leastBurdened","\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_leastBurdened.sqf"],
|
||||
["blck_fnc_HC_countGroupsAssigned","\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_countGroupsAssigned.sqf"]
|
||||
];
|
||||
|
||||
{
|
||||
_x params ["_name","_path"];
|
||||
missionnamespace setvariable [_name,compileFinal preprocessFileLineNumbers _path];
|
||||
} foreach _functions;
|
||||
|
||||
#ifdef GRGserver
|
||||
blck_fnc_broadcastServerFPS = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_broadcastServerFPS.sqf";
|
||||
diag_log "blck_functions loaded using GRGserver settings ---- >>>> ";
|
||||
#endif
|
||||
|
||||
// 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
|
||||
|
||||
// Mission-related functions
|
||||
blck_fnc_selectAILoadout = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectAILoadout.sqf";
|
||||
blck_fnc_selectAISidearms = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectAISidearms.sqf";
|
||||
blck_fnc_selectAIUniforms = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectAIUniforms.sqf";
|
||||
blck_fnc_selectAIHeadgear = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectAIHeadgear.sqf";
|
||||
blck_fnc_selectAIVests = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectAIVests.sqf";
|
||||
blck_fnc_selectAIBackpacks = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectAIBackpacks.sqf";
|
||||
blck_fnc_selectChanceHeliPatrol = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectChanceHeliPatrol.sqf";
|
||||
blck_fnc_selectMissionHelis = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectMissionHelis.sqf";
|
||||
blck_fnc_selectNumberAirPatrols = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectNumberAirPatrols.sqf";
|
||||
blck_fnc_selectNumberParatroops = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectNumberParatroops.sqf";
|
||||
blck_fnc_selectChanceParatroops = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_selecctChanceParatroops.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_spawnCrate = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnCrate.sqf"; // Simply spawns a crate of a specified type at a specific position.
|
||||
blck_fnc_spawnMissionCrates = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnMissionCrates.sqf";
|
||||
blck_fnc_cleanupObjects = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_cleanUpObjects.sqf";
|
||||
blck_fnc_spawnCompositionObjects = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnBaseObjects.sqf";
|
||||
blck_fnc_spawnRandomLandscape = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnRandomLandscape.sqf";
|
||||
blck_fnc_spawnMissionVehiclePatrols = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnMissionVehiclePatrols.sqf";
|
||||
blck_fnc_spawnEmplacedWeaponArray = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnEmplacedWeaponArray.sqf";
|
||||
blck_fnc_spawnMissionAI = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnMissionAI.sqf";
|
||||
blck_fnc_spawnMissionLootVehicles = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnMissionLootVehicles.sqf";
|
||||
blck_fnc_fillBoxes = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_fillBoxes.sqf"; // Adds items to an object according to passed parameters. See the script for details.
|
||||
blck_fnc_smokeAtCrates = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_smokeAtCrates.sqf"; // Spawns a wreck and adds smoke to it
|
||||
blck_fnc_spawnMines = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnMines.sqf"; // Deploys mines at random locations around the mission center
|
||||
blck_fnc_clearMines = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_clearMines.sqf"; // clears mines in an array passed as a parameter
|
||||
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_paraDropObject = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_paraDropObject.sqf";
|
||||
blck_fnc_loadMissionCrate = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_loadMissionCrate.sqf";
|
||||
blck_fnc_crateMoved = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_crateMoved.sqf";
|
||||
blck_fnc_crateMarker = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_crateMarker.sqf";
|
||||
blck_fnc_garrisonBuilding_RelPosSystem = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_garrisonBuilding_relPosSystem.sqf";
|
||||
blck_fnc_garrisonBuilding_ATLsystem = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_garrisonBuilding_ATLsystem.sqf";
|
||||
blck_fnc_spawnGarrisonInsideBuilding_ATL = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnGarrisonInsideBuilding_ATL.sqf";
|
||||
blck_fnc_spawnGarrisonInsideBuilding_relPos = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnGarrisonInsideBuilding_relPos.sqf";
|
||||
|
||||
// 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_setupWaypoints = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Groups\GMS_fnc_setupWaypoints.sqf"; // Set default waypoints for a group
|
||||
blck_fnc_missionGroupMonitor = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Groups\GMS_fnc_missionGroupMonitor.sqf"; // Monitors active groups for those that are stuck in an SAD waypoint but not in combat
|
||||
//blck_fnc_monitorWaypoints = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Groups\GMS_fnc_monitorWaypoints.sqf"; // periodically check for groups that have been led far from the mission
|
||||
//blck_fnc_changeToSADWaypoint = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Groups\GMS_fnc_changeToSADWaypoint.sqf";
|
||||
blck_fnc_changeToMoveWaypoint = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Groups\GMS_fnc_changeToMoveWaypoint.sqf";
|
||||
//blck_fnc_changeToSentryWaypoint = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Groups\GMS_fnc_changeToSentryWaypoint.sqf"; //
|
||||
//blck_fnc_setNextWaypoint = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Groups\GMS_fnc_setNextWaypoint.sqf";
|
||||
blck_fnc_cleanEmptyGroups = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Groups\GMS_fnc_cleanEmptyGroups.sqf"; // GMS_fnc_cleanEmptyGroups
|
||||
blck_fnc_findNearestInfantryGroup = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Groups\GMS_fnc_findNearestInfantryGroup.sqf";
|
||||
blck_fnc_create_AI_Group = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Groups\GMS_fnc_create_AI_Group.sqf"; // create a group for which other functions spawn AI.
|
||||
|
||||
// Functions specific to vehicles, whether wheeled, aircraft or static
|
||||
blck_fnc_spawnVehicle = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_spawnVehicle.sqf";
|
||||
blck_fnc_spawnVehiclePatrol = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_spawnVehiclePatrol.sqf";
|
||||
blck_fnc_protectVehicle = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_protectVehicle.sqf";
|
||||
blck_fnc_configureMissionVehicle = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_configureMissionVehicle.sqf";
|
||||
blck_fnc_vehicleMonitor = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_vehicleMonitor.sqf";
|
||||
blck_fnc_spawnMissionReinforcements = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_spawnMissionReinforcements.sqf";
|
||||
blck_fnc_spawnMissionHeli = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_spawnMissionHeli.sqf";
|
||||
blck_EH_AIVehicle_HandleHit = "\q\addons\custom_server\Compiles\Vehicles\GMS_EH_AIVehicle_Hit.sqf";
|
||||
blck_fnc_HandleAIVehicleHit = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_HandleAIVehicleHit.sqf";
|
||||
blck_EH_VehicleKilled = "\q\addons\custom_server\Compiles\Vehicles\GMS_EH_VehicleKilled.sqf";
|
||||
blck_fnc_processAIVehicleKill = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_processAIVehicleKill.sqf";
|
||||
blck_fnc_selectPatrolVehicle = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_selectPatrolVehicle.sqf";
|
||||
blck_fnc_releaseVehicleToPlayers = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_releaseVehicleToPlayers.sqf";
|
||||
blck_fnc_deleteAIVehicle = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_deleteAIVehicle.sqf";
|
||||
blck_fnc_destroyVehicleAndCrew = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_destroyVehicleAndCrew.sqf";
|
||||
blck_fnc_reloadVehicleAmmo = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_reloadVehicleAmmo.sqf";
|
||||
blck_fnc_scanForPlayersNearVehicles = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_scanForPlayersNearVehicles.sqf";
|
||||
blck_fnc_revealNearbyPlayers = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_revealNearbyPlayers.sqf";
|
||||
|
||||
// functions to support Units
|
||||
blck_fnc_removeGear = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_removeGear.sqf"; // Strip an AI unit of all gear.
|
||||
blck_fnc_spawnUnit = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_spawnUnit.sqf"; // spawn individual AI
|
||||
blck_EH_AIKilled = "\q\addons\custom_server\Compiles\Units\GMS_EH_AIKilled.sqf"; // Event handler to process AI deaths
|
||||
blck_EH_AIHit = "\q\addons\custom_server\Compiles\Units\GMS_EH_AIHit.sqf";
|
||||
blck_EH_AIFiredNear = "\q\addons\custom_server\Compiles\Units\GMS_EH_AIFiredNear.sqf";
|
||||
blck_EH_unitWeaponReloaded = "\q\addons\custom_server\Compiles\Units\GMS_EH_unitWeaponReloaded.sqf";
|
||||
blck_EH_animDone = "\q\addons\custom_server\Compiles\Units\GMS_EH_animDone.sqf";
|
||||
blck_fnc_processAIKill = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_processAIKill.sqf";
|
||||
blck_fnc_removeLaunchers = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_removeLaunchers.sqf";
|
||||
blck_fnc_removeNVG = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_removeNVG.sqf";
|
||||
blck_fnc_alertNearbyUnits = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_alertNearbyUnits.sqf";
|
||||
blck_fnc_alertGroupUnits = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_alertGroupUnits.sqf";
|
||||
blck_fnc_alertNearbyVehicles = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_alertNearbyVehicles.sqf";
|
||||
blck_fnc_processIlleagalAIKills = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_processIlleagalAIKills.sqf";
|
||||
blck_fnc_cleanupDeadAI = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_cleanupDeadAI.sqf"; // handles deletion of AI bodies and gear when it is time.
|
||||
blck_fnc_setSkill = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_setSkill.sqf";
|
||||
blck_fnc_cleanupAliveAI = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_cleanupAliveAI.sqf";
|
||||
blck_fnc_deleteAI = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_deleteAI.sqf";
|
||||
blck_fnc_processAIHit = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_processAIHit.sqf";
|
||||
blck_fnc_spawnHostage = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_spawnHostage.sqf";
|
||||
blck_fnc_spawnLeader = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_spawnLeader.sqf";
|
||||
blck_fnc_spawnCharacter = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_spawnCharacter.sqf";
|
||||
blck_fnc_spawnParaUnits = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_spawnParaUnits.sqf";
|
||||
blck_fnc_nextAnim = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_nextAnim.sqf";
|
||||
blck_fnc_placeCharacterInBuilding = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Units\GMS_fnc_placeCharacterInBuilding.sqf";
|
||||
|
||||
// HC support functions
|
||||
blck_fnc_HC_XferGroup = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_XferGroup.sqf";
|
||||
//blck_fnc_HC_XferVehicle = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_XferVehicle.sqf";
|
||||
blck_fnc_onPlayerDisconnected = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\HC\GMS_fnc_onPlayerDisconnected.sqf";
|
||||
//blck_fnc_HC_groupsAssigned = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_groupsAssigned.sqf";
|
||||
blck_fnc_HC_monitor = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\HC\GMS_fnc_HCmonitor.sqf";
|
||||
//blck_fnc_HC_vehicleMonitor = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_vehicleMonitor.sqf";
|
||||
//blck_fnc_HC_monitorHC = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\HC\GMS_fnc_monitorHC.sqf";
|
||||
blck_fnc_HC_passToHCs = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\HC\GMS_fnc_passToHCs.sqf";
|
||||
blck_fnc_HC_getListConnected = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_getListConnected.sqf";
|
||||
blck_fnc_HC_leastBurdened = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_leastBurdened.sqf";
|
||||
blck_fnc_HC_countGroupsAssigned = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_countGroupsAssigned.sqf";
|
||||
|
||||
onPlayerDisconnected {[_name,_owner] call blck_fnc_onPlayerDisconnected;};
|
||||
diag_log "[blckeagls] Functions Loaded";
|
||||
blck_functionsCompiled = true;
|
||||
|
||||
|
||||
|
@ -49,9 +49,7 @@ if (blck_simulationManager == 2) then
|
||||
|
||||
blck_heliCrashSites = [];
|
||||
|
||||
|
||||
|
||||
blck_mainThreadUpdateInterval = 60;
|
||||
blck_revealMode = "detailed"; //""basic" /*group or vehicle level reveals*/,detailed /*unit by unit reveals*/";
|
||||
//diag_log "[blckeagls] Variables Loaded";
|
||||
blck_variablesLoaded = true;
|
||||
|
||||
|
@ -42,7 +42,7 @@
|
||||
|
||||
blck_spawnMapAddons = true; // When true map addons will be spawned based on parameters define in custum_server\MapAddons\MapAddons_init.sqf
|
||||
blck_spawnStaticLootCrates = true; // When true, static loot crates will be spawned and loaded with loot as specified in custom_server\SLS\SLS_init_Epoch.sqf (or its exile equivalent).
|
||||
blck_simulationManager = blck_useBlckeaglsSimulationManagement;
|
||||
blck_simulationManager = blck_simulationManagementOff;
|
||||
diag_log format["[blckeagls] blck_configs: blck_simulationManager = %1",blck_simulationManager];
|
||||
/*
|
||||
blck_simulationManagementOff - no simulation management occurs
|
||||
@ -212,8 +212,12 @@
|
||||
////////////////////
|
||||
|
||||
// Maximum number of missions shown on the map at any one time.
|
||||
#ifdef GRGserver
|
||||
blck_maxSpawnedMissions = 15;
|
||||
#else
|
||||
// Change this value to reduce the number of spawned missions at any one time.
|
||||
blck_maxSpawnedMissions = 4;
|
||||
#endif
|
||||
|
||||
//Set to -1 to disable. Values of 2 or more force the mission spawner to spawn copies of that mission - this feature is not recommended because you may run out of available groups.
|
||||
blck_enableOrangeMissions = 1;
|
||||
@ -222,6 +226,12 @@
|
||||
blck_enableBlueMissions = 1;
|
||||
blck_numberUnderwaterDynamicMissions = 3; // Values from -1 (no UMS) to N (N Underwater missions will be spawned; static UMS units and subs will be spawned.
|
||||
|
||||
#ifdef GRGserver
|
||||
blck_enableHunterMissions = 1;
|
||||
blck_enableScoutsMissions = 2;
|
||||
blck_maxcrashsites = 4;
|
||||
#endif
|
||||
|
||||
////////////////////
|
||||
// MISSION TIMERS
|
||||
////////////////////
|
||||
@ -232,6 +242,12 @@
|
||||
blck_TMin_Blue = 120;
|
||||
blck_TMin_Red = 150;
|
||||
blck_TMin_UMS = 180;
|
||||
#ifdef GRGserver
|
||||
blck_TMin_Hunter = 120;
|
||||
blck_TMin_Scouts = 115;
|
||||
blck_TMin_Crashes = 115;
|
||||
|
||||
#endif
|
||||
|
||||
//Maximum Spawn time between missions in seconds
|
||||
blck_TMax_Orange = 360;
|
||||
@ -239,6 +255,11 @@
|
||||
blck_TMax_Blue = 200;
|
||||
blck_TMax_Red = 250;
|
||||
blck_TMax_UMS = 400;
|
||||
#ifdef GRGserver
|
||||
blck_TMax_Hunter = 200;
|
||||
blck_TMax_Scouts = 200;
|
||||
blck_TMax_Crashes = 200;
|
||||
#endif
|
||||
|
||||
///////////////////////////////
|
||||
// AI VEHICLE PATROL PARAMETERS
|
||||
@ -357,7 +378,61 @@
|
||||
blck_maxMoneyRed = 15;
|
||||
blck_maxMoneyBlue = 10;
|
||||
|
||||
private["_modType"];
|
||||
#ifdef GRGserver
|
||||
blck_AIAlertDistance = [250,450,650,800]; // Radius within which AI will be notified of enemy activity. Depricated as a group-sed system is used now. The group is informed of the enemy location when a group member is hit or killed.
|
||||
//blck_AIAlertDistance = [150,225,400,500];
|
||||
// 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.3, 0.5, 0.7, 0.9];
|
||||
|
||||
blck_baseSkill = 0.7; // The overal skill of the AI - range 0.1 to 1.0.
|
||||
|
||||
/***************************************************************
|
||||
|
||||
MISSION TYPE SPECIFIC AI SETTINGS
|
||||
|
||||
**************************************************************/
|
||||
//This defines the skill, minimum/Maximum number of AI and how many AI groups are spawned for each mission type
|
||||
// Orange Missions
|
||||
blck_MinAI_Orange = 20;
|
||||
blck_MaxAI_Orange = 25;
|
||||
blck_AIGrps_Orange = 5;
|
||||
blck_SkillsOrange = [
|
||||
["aimingAccuracy",[0.25,0.36]],["aimingShake",[0.45,0.55]],["aimingSpeed",[0.65,0.75]],["endurance",1.00],["spotDistance",1.0],["spotTime",0.7],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]
|
||||
];
|
||||
|
||||
// Green Missions
|
||||
blck_MinAI_Green = 16;
|
||||
blck_MaxAI_Green = 21;
|
||||
blck_AIGrps_Green = 4;
|
||||
blck_SkillsGreen = [
|
||||
["aimingAccuracy",[0.2,0.3]],["aimingShake",[0.4,0.5]],["aimingSpeed",[0.55,0.7]],["endurance",0.9],["spotDistance",0.9],["spotTime",0.65],["courage",0.9],["reloadSpeed",0.9],["commanding",0.9],["general",0.75]
|
||||
];
|
||||
|
||||
// Red Missions
|
||||
blck_MinAI_Red = 12;
|
||||
blck_MaxAI_Red = 15;
|
||||
blck_AIGrps_Red = 3;
|
||||
blck_SkillsRed = [
|
||||
["aimingAccuracy",[0.2,0.25]],["aimingShake",[0.35,0.4]],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.6],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70]
|
||||
];
|
||||
|
||||
// Blue Missions
|
||||
blck_MinAI_Blue = 8;
|
||||
blck_MaxAI_Blue = 12;
|
||||
blck_AIGrps_Blue = 2;
|
||||
blck_SkillsBlue = [
|
||||
["aimingAccuracy",[0.08,16]],["aimingShake",[0.25,0.35]],["aimingSpeed",0.5],["endurance",0.50],["spotDistance",0.6],["spotTime",0.6],["courage",0.60],["reloadSpeed",0.60],["commanding",0.7],["general",0.60]
|
||||
];
|
||||
|
||||
// Add some money to AI; only works with Exile for now.
|
||||
blck_maxMoneyOrange = 25;
|
||||
blck_maxMoneyGreen = 20;
|
||||
blck_maxMoneyRed = 15;
|
||||
blck_maxMoneyBlue = 10;
|
||||
#endif
|
||||
|
||||
private["_modType"];
|
||||
_modType = [] call blck_fnc_getModType;
|
||||
if (_modType isEqualTo "Epoch") then
|
||||
{
|
||||
|
@ -589,13 +589,13 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["m107_EPOCH","5Rnd_127x108_Mag"],
|
||||
["m107Tan_EPOCH","5Rnd_127x108_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
|
||||
["srifle_LRR_F","7Rnd_408_Mag"],
|
||||
["srifle_EBR_F","20Rnd_762x51_Mag"],
|
||||
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
|
||||
["Arifle_MX_SW_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["Arifle_MX_SW_Black_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x54_Box"],
|
||||
["MMG_01_hex_F","150Rnd_93x64_Mag"],
|
||||
["MMG_01_tan_F","150Rnd_93x64_Mag"],
|
||||
["MMG_02_black_F","130Rnd_338_Mag"],
|
||||
@ -727,14 +727,14 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["m107_EPOCH","5Rnd_127x108_Mag"],
|
||||
["m107Tan_EPOCH","5Rnd_127x108_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
|
||||
["srifle_LRR_F","7Rnd_408_Mag"],
|
||||
["srifle_EBR_F","20Rnd_762x51_Mag"],
|
||||
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
|
||||
["LMG_Mk200_F","200Rnd_65x39_cased_Box_Tracer"],
|
||||
["Arifle_MX_SW_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["Arifle_MX_SW_Black_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x54_Box"],
|
||||
["MMG_01_hex_F","150Rnd_93x64_Mag"],
|
||||
["MMG_01_tan_F","150Rnd_93x64_Mag"],
|
||||
["MMG_02_black_F","130Rnd_338_Mag"],
|
||||
@ -875,7 +875,7 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["m107_EPOCH","5Rnd_127x108_Mag"],
|
||||
["m107Tan_EPOCH","5Rnd_127x108_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
|
||||
["srifle_LRR_F","7Rnd_408_Mag"],
|
||||
["srifle_EBR_F","20Rnd_762x51_Mag"],
|
||||
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
|
||||
@ -1001,7 +1001,7 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["m107_EPOCH","5Rnd_127x108_Mag"],
|
||||
["m107Tan_EPOCH","5Rnd_127x108_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
|
||||
["srifle_LRR_F","7Rnd_408_Mag"],
|
||||
["srifle_EBR_F","20Rnd_762x51_Mag"],
|
||||
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
|
||||
@ -1010,7 +1010,7 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["LMG_Mk200_F","200Rnd_65x39_cased_Box_Tracer"],
|
||||
["Arifle_MX_SW_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["Arifle_MX_SW_Black_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x54_Box"],
|
||||
["MMG_01_hex_F","150Rnd_93x64_Mag"],
|
||||
["srifle_DMR_04_Tan_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_06_camo_F","10Rnd_338_Mag"]
|
||||
@ -1081,7 +1081,7 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
"FAK" , "Towelette" , "ItemVitamins", "morphine_epoch", "iodide_pills_epoch", "adrenaline_epoch",
|
||||
"caffeinepills_epoch", "orlistat_epoch", "ItemCanteen_Empty", "ItemCanteen_Clean", "ItemBottlePlastic_Empty",
|
||||
"ItemBottlePlastic_Clean", "atropine_epoch", "ItemWaterPurificationTablets", "ItemPainKillers", "ItemDefibrillator",
|
||||
"ItemBloodBag_Empty", "ItemBloodBag_Full", "ItemAntibiotic", "nanite_pills_epoch"
|
||||
"ItemBloodBag_Empty", "ItemBloodBag_Full", "ItemAntibiotic", "nanite_cream_epoch", "nanite_pills_epoch"
|
||||
],
|
||||
[ // Backpacks
|
||||
["B_AssaultPack_dgtl",0,2],["B_AssaultPack_khk",0,2],["B_AssaultPack_mcamo",0,2],["B_AssaultPack_ocamo",0,2],["B_AssaultPack_rgr",0,2],["B_AssaultPack_sgg",0,2],
|
||||
|
@ -603,13 +603,13 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["m107_EPOCH","5Rnd_127x108_Mag"],
|
||||
["m107Tan_EPOCH","5Rnd_127x108_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
|
||||
["srifle_LRR_F","7Rnd_408_Mag"],
|
||||
["srifle_EBR_F","20Rnd_762x51_Mag"],
|
||||
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
|
||||
["Arifle_MX_SW_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["Arifle_MX_SW_Black_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x54_Box"],
|
||||
["MMG_01_hex_F","150Rnd_93x64_Mag"],
|
||||
["MMG_01_tan_F","150Rnd_93x64_Mag"],
|
||||
["MMG_02_black_F","150Rnd_93x64_Mag"],
|
||||
@ -716,14 +716,14 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["m107_EPOCH","5Rnd_127x108_Mag"],
|
||||
["m107Tan_EPOCH","5Rnd_127x108_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
|
||||
["srifle_LRR_F","7Rnd_408_Mag"],
|
||||
["srifle_EBR_F","20Rnd_762x51_Mag"],
|
||||
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
|
||||
["LMG_Mk200_F","200Rnd_65x39_cased_Box_Tracer"],
|
||||
["Arifle_MX_SW_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["Arifle_MX_SW_Black_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x54_Box"],
|
||||
["MMG_01_hex_F","150Rnd_93x64_Mag"],
|
||||
["srifle_DMR_02_camo_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_03_F","10Rnd_338_Mag"],
|
||||
@ -827,7 +827,7 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["m107_EPOCH","5Rnd_127x108_Mag"],
|
||||
["m107Tan_EPOCH","5Rnd_127x108_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
|
||||
["srifle_LRR_F","7Rnd_408_Mag"],
|
||||
["srifle_EBR_F","20Rnd_762x51_Mag"],
|
||||
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
|
||||
@ -926,7 +926,7 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["m107_EPOCH","5Rnd_127x108_Mag"],
|
||||
["m107Tan_EPOCH","5Rnd_127x108_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
|
||||
["srifle_LRR_F","7Rnd_408_Mag"],
|
||||
["srifle_EBR_F","20Rnd_762x51_Mag"],
|
||||
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
|
||||
@ -935,7 +935,7 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["LMG_Mk200_F","200Rnd_65x39_cased_Box_Tracer"],
|
||||
["Arifle_MX_SW_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["Arifle_MX_SW_Black_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x54_Box"],
|
||||
["MMG_01_hex_F","150Rnd_93x64_Mag"],
|
||||
["srifle_DMR_04_Tan_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_06_camo_F","10Rnd_338_Mag"]
|
||||
|
@ -700,14 +700,14 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
#endif
|
||||
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
|
||||
["srifle_LRR_F","7Rnd_408_Mag"],
|
||||
["srifle_EBR_F","20Rnd_762x51_Mag"],
|
||||
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
|
||||
["LMG_Mk200_F","200Rnd_65x39_cased_Box_Tracer"],
|
||||
["Arifle_MX_SW_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["Arifle_MX_SW_Black_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x54_Box"],
|
||||
["MMG_01_hex_F","150Rnd_93x64_Mag"],
|
||||
["MMG_01_tan_F","150Rnd_93x64_Mag"],
|
||||
["MMG_02_black_F","130Rnd_338_Mag"],
|
||||
@ -799,14 +799,14 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["arifle_MXM_F","30Rnd_65x39_caseless_mag"],
|
||||
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
|
||||
["srifle_LRR_F","7Rnd_408_Mag"],
|
||||
["srifle_EBR_F","20Rnd_762x51_Mag"],
|
||||
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
|
||||
["LMG_Mk200_F","200Rnd_65x39_cased_Box_Tracer"],
|
||||
["Arifle_MX_SW_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["Arifle_MX_SW_Black_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x54_Box"],
|
||||
["MMG_01_hex_F","150Rnd_93x64_Mag"],
|
||||
["MMG_01_tan_F","150Rnd_93x64_Mag"],
|
||||
["MMG_02_black_F","130Rnd_338_Mag"],
|
||||
@ -894,7 +894,7 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["Hgun_PDW2000_F","30Rnd_9x21_Mag"],
|
||||
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
|
||||
["srifle_LRR_F","7Rnd_408_Mag"],
|
||||
["srifle_EBR_F","20Rnd_762x51_Mag"],
|
||||
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
|
||||
@ -974,14 +974,14 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["Hgun_PDW2000_F","30Rnd_9x21_Mag"],
|
||||
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
|
||||
["srifle_LRR_F","7Rnd_408_Mag"],
|
||||
["srifle_EBR_F","20Rnd_762x51_Mag"],
|
||||
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
|
||||
["LMG_Mk200_F","200Rnd_65x39_cased_Box_Tracer"],
|
||||
["Arifle_MX_SW_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["Arifle_MX_SW_Black_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x54_Box"],
|
||||
["MMG_01_hex_F","150Rnd_93x64_Mag"],
|
||||
["srifle_DMR_04_Tan_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_06_camo_F","10Rnd_338_Mag"]
|
||||
|
@ -720,14 +720,14 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
#endif
|
||||
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
|
||||
["srifle_LRR_F","7Rnd_408_Mag"],
|
||||
["srifle_EBR_F","20Rnd_762x51_Mag"],
|
||||
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
|
||||
["LMG_Mk200_F","200Rnd_65x39_cased_Box_Tracer"],
|
||||
["Arifle_MX_SW_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["Arifle_MX_SW_Black_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x54_Box"],
|
||||
["MMG_01_hex_F","150Rnd_93x64_Mag"],
|
||||
["MMG_01_tan_F","150Rnd_93x64_Mag"],
|
||||
["MMG_02_black_F","150Rnd_93x64_Mag"],
|
||||
@ -818,14 +818,14 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["arifle_MXM_F","30Rnd_65x39_caseless_mag"],
|
||||
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
|
||||
["srifle_LRR_F","7Rnd_408_Mag"],
|
||||
["srifle_EBR_F","20Rnd_762x51_Mag"],
|
||||
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
|
||||
["LMG_Mk200_F","200Rnd_65x39_cased_Box_Tracer"],
|
||||
["Arifle_MX_SW_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["Arifle_MX_SW_Black_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x54_Box"],
|
||||
["MMG_01_hex_F","150Rnd_93x64_Mag"],
|
||||
["srifle_DMR_02_camo_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_03_F","10Rnd_338_Mag"],
|
||||
@ -910,7 +910,7 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["Hgun_PDW2000_F","30Rnd_9x21_Mag"],
|
||||
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
|
||||
["srifle_LRR_F","7Rnd_408_Mag"],
|
||||
["srifle_EBR_F","20Rnd_762x51_Mag"],
|
||||
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
|
||||
@ -990,14 +990,14 @@ for examples of how you can do this see \Major\Compositions.sqf
|
||||
["Hgun_PDW2000_F","30Rnd_9x21_Mag"],
|
||||
["arifle_MXM_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["arifle_MXM_Black_F","30Rnd_65x39_caseless_mag_Tracer"],
|
||||
["srifle_DMR_01_F","10Rnd_762x51_Mag"],
|
||||
["srifle_DMR_01_F","10Rnd_762x54_Mag"],
|
||||
["srifle_LRR_F","7Rnd_408_Mag"],
|
||||
["srifle_EBR_F","20Rnd_762x51_Mag"],
|
||||
["srifle_GM6_F","5Rnd_127x108_APDS_Mag"],
|
||||
["LMG_Mk200_F","200Rnd_65x39_cased_Box_Tracer"],
|
||||
["Arifle_MX_SW_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["Arifle_MX_SW_Black_F","100Rnd_65x39_caseless_mag_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x51_Box_Tracer"],
|
||||
["LMG_Zafir_F","150Rnd_762x54_Box"],
|
||||
["MMG_01_hex_F","150Rnd_93x64_Mag"],
|
||||
["srifle_DMR_04_Tan_F","10Rnd_338_Mag"],
|
||||
["srifle_DMR_06_camo_F","10Rnd_338_Mag"]
|
||||
|
@ -203,7 +203,12 @@
|
||||
////////////////////
|
||||
|
||||
// Maximum number of missions shown on the map at any one time.
|
||||
#ifdef GRGserver
|
||||
blck_maxSpawnedMissions = 15;
|
||||
#else
|
||||
// Change this value to reduce the number of spawned missions at any one time.
|
||||
blck_maxSpawnedMissions = 4;
|
||||
#endif
|
||||
|
||||
//Set to -1 to disable. Values of 2 or more force the mission spawner to spawn copies of that mission - this feature is not recommended because you may run out of available groups.
|
||||
blck_enableOrangeMissions = 1;
|
||||
@ -212,6 +217,12 @@
|
||||
blck_enableBlueMissions = 2;
|
||||
blck_numberUnderwaterDynamicMissions = 2; // Values from 0 (no UMS) to N (N Underwater missions will be spawned; static UMS units and subs will be spawned.
|
||||
|
||||
#ifdef GRGserver
|
||||
blck_enableHunterMissions = 1;
|
||||
blck_enableScoutsMissions = 2;
|
||||
blck_maxcrashsites = 3;
|
||||
#endif
|
||||
|
||||
////////////////////
|
||||
// MISSION TIMERS
|
||||
////////////////////
|
||||
@ -222,6 +233,12 @@
|
||||
blck_TMin_Blue = 120;
|
||||
blck_TMin_Red = 150;
|
||||
blck_TMin_UMS = 180;
|
||||
#ifdef GRGserver
|
||||
blck_TMin_Hunter = 120;
|
||||
blck_TMin_Scouts = 115;
|
||||
blck_TMin_Crashes = 115;
|
||||
|
||||
#endif
|
||||
|
||||
//Maximum Spawn time between missions in seconds
|
||||
blck_TMax_Orange = 360;
|
||||
@ -229,6 +246,11 @@
|
||||
blck_TMax_Blue = 200;
|
||||
blck_TMax_Red = 250;
|
||||
blck_TMax_UMS = 200;
|
||||
#ifdef GRGserver
|
||||
blck_TMax_Hunter = 200;
|
||||
blck_TMax_Scouts = 200;
|
||||
blck_TMax_Crashes = 200;
|
||||
#endif
|
||||
|
||||
///////////////////////////////
|
||||
// AI VEHICLE PATROL PARAMETERS
|
||||
@ -286,6 +308,11 @@
|
||||
|
||||
//This defines how long after an AI dies that it's body disappears.
|
||||
blck_bodyCleanUpTimer = 40*60; // time in seconds after which dead AI bodies are deleted
|
||||
#ifdef GRGserver
|
||||
#ifdef blck_milServer
|
||||
blck_bodyCleanUpTimer = 40*60; // Trying to reduce lag with player counts > 20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// 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];
|
||||
@ -345,6 +372,60 @@
|
||||
blck_maxMoneyRed = 30;
|
||||
blck_maxMoneyBlue = 20;
|
||||
|
||||
#ifdef GRGserver
|
||||
blck_AIAlertDistance = [250,425,650,800]; // Radius within which AI will be notified of enemy activity. Depricated as a group-sed system is used now. The group is informed of the enemy location when a group member is hit or killed.
|
||||
//blck_AIAlertDistance = [150,225,400,500];
|
||||
// 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.3, 0.5, 0.7, 0.9];
|
||||
|
||||
blck_baseSkill = 1; // The overal skill of the AI - range 0.1 to 1.0.
|
||||
|
||||
/***************************************************************
|
||||
|
||||
MISSION TYPE SPECIFIC AI SETTINGS
|
||||
|
||||
**************************************************************/
|
||||
//This defines the skill, minimum/Maximum number of AI and how many AI groups are spawned for each mission type
|
||||
// Orange Missions
|
||||
blck_MinAI_Orange = 30;
|
||||
blck_MaxAI_Orange = 35;
|
||||
blck_AIGrps_Orange = 5;
|
||||
blck_SkillsOrange = [
|
||||
["aimingAccuracy",0.6],["aimingShake",0.9],["aimingSpeed",0.9],["endurance",1.00],["spotDistance",1.0],["spotTime",1.0],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]
|
||||
];
|
||||
|
||||
// Green Missions
|
||||
blck_MinAI_Green = 26;
|
||||
blck_MaxAI_Green = 31;
|
||||
blck_AIGrps_Green = 4;
|
||||
blck_SkillsGreen = [
|
||||
["aimingAccuracy",0.55],["aimingShake",0.75],["aimingSpeed",0.85],["endurance",0.9],["spotDistance",0.9],["spotTime",0.9],["courage",0.9],["reloadSpeed",0.9],["commanding",0.9],["general",0.75]
|
||||
];
|
||||
|
||||
// Red Missions
|
||||
blck_MinAI_Red = 12;
|
||||
blck_MaxAI_Red = 18;
|
||||
blck_AIGrps_Red = 3;
|
||||
blck_SkillsRed = [
|
||||
["aimingAccuracy",0.4],["aimingShake",0.6],["aimingSpeed",0.6],["endurance",0.80],["spotDistance",0.7],["spotTime",0.8],["courage",0.80],["reloadSpeed",0.70],["commanding",0.8],["general",0.70]
|
||||
];
|
||||
|
||||
// Blue Missions
|
||||
blck_MinAI_Blue = 8;
|
||||
blck_MaxAI_Blue = 14;
|
||||
blck_AIGrps_Blue = 2;
|
||||
blck_SkillsBlue = [
|
||||
["aimingAccuracy",0.12],["aimingShake",0.3],["aimingSpeed",0.5],["endurance",0.50],["spotDistance",0.6],["spotTime",0.6],["courage",0.60],["reloadSpeed",0.60],["commanding",0.7],["general",0.60]
|
||||
];
|
||||
|
||||
// Add some money to AI; only works with Exile for now.
|
||||
blck_maxMoneyOrange = 25;
|
||||
blck_maxMoneyGreen = 20;
|
||||
blck_maxMoneyRed = 15;
|
||||
blck_maxMoneyBlue = 10;
|
||||
#endif
|
||||
|
||||
private["_modType"];
|
||||
_modType = [] call blck_fnc_getModType;
|
||||
if (_modType isEqualTo "Epoch") then
|
||||
@ -374,4 +455,4 @@
|
||||
waitUntil{blck_dynamicConfigsLoaded};
|
||||
blck_dynamicConfigsLoaded = nil;
|
||||
};
|
||||
blck_configsLoaded = true;
|
||||
|
||||
|
@ -149,13 +149,13 @@ if (blck_debugON || (blck_debugLevel > 0)) then // These variables are found in
|
||||
blck_maxSpawnedMissions = 15;
|
||||
blck_mainThreadUpdateInterval = 10;
|
||||
blck_enableOrangeMissions = 1;
|
||||
blck_enableGreenMissions = -1;
|
||||
blck_enableRedMissions = -1;
|
||||
blck_enableBlueMissions = -1;
|
||||
blck_numberUnderwaterDynamicMissions = -3;
|
||||
blck_enableHunterMissions = -1;
|
||||
blck_enableScoutsMissions = -1;
|
||||
blck_maxCrashSites = -3;
|
||||
blck_enableGreenMissions = 1;
|
||||
blck_enableRedMissions = 1;
|
||||
blck_enableBlueMissions = 1;
|
||||
blck_numberUnderwaterDynamicMissions = 3;
|
||||
blck_enableHunterMissions = 1;
|
||||
blck_enableScoutsMissions = 1;
|
||||
blck_maxCrashSites = 3;
|
||||
|
||||
//blck_killEmptyStaticWeapons = false;
|
||||
//blck_killEmptyAIVehicles = true;
|
||||
@ -165,7 +165,7 @@ if (blck_debugON || (blck_debugLevel > 0)) then // These variables are found in
|
||||
blck_vehicleDeleteTimer = 20;
|
||||
blck_MissionTimeout = 30;
|
||||
|
||||
blck_noPatrolHelisOrange = 1;
|
||||
//blck_noPatrolHelisOrange = 1;
|
||||
//blck_chanceHeliPatrolOrange = 1;
|
||||
//blck_chanceParaOrange = 1;
|
||||
//blck_chanceHeliPatrolBlue = -1;
|
||||
@ -175,12 +175,12 @@ if (blck_debugON || (blck_debugLevel > 0)) then // These variables are found in
|
||||
//blck_paraTriggerDistanceBlue = 400;
|
||||
|
||||
//blck_chanceHeliPatrolBlue = 1;
|
||||
blck_SpawnEmplaced_Orange = 1; // Number of static weapons at Orange Missions
|
||||
//blck_SpawnEmplaced_Orange = 1; // Number of static weapons at Orange Missions
|
||||
//blck_SpawnEmplaced_Green = 1; // Number of static weapons at Green Missions
|
||||
//blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions
|
||||
//blck_SpawnEmplaced_Red = 1;
|
||||
|
||||
blck_SpawnVeh_Orange = 1; // Number of vehicles at Orange Missions
|
||||
//blck_SpawnVeh_Orange = 1; // Number of vehicles at Orange Missions
|
||||
//blck_SpawnVeh_Green = 1; // Number of vehicles at Green Missions
|
||||
//blck_SpawnVeh_Blue = 1; // Number of vehicles at Blue Missions
|
||||
//blck_SpawnVeh_Red = 1;
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -24,7 +24,7 @@
|
||||
//#define useDynamicSimulation
|
||||
//#define blck_debugMode
|
||||
//#define GRG_TestServer
|
||||
|
||||
#define GRGserver
|
||||
#define blck_triggerLoopCompleteTime 40*60
|
||||
|
||||
#define onFoot 1
|
||||
|
@ -218,5 +218,3 @@ blck_backpacks_green = blck_backpacks;
|
||||
blck_backpacks_orange = blck_backpacks;
|
||||
|
||||
blck_explosives = _wpnThrow;
|
||||
|
||||
blck_configsLoaded = true;
|
||||
|
@ -1,66 +0,0 @@
|
||||
/*
|
||||
This is a simple mission using randomly placed AI infantry, static weapons and vehicle patrols.
|
||||
Please see staticMissionExample2.sqf for a more complete overview of how to configure static missions.
|
||||
*/
|
||||
private ["_markerLabel","_endMsg","_startMsg","_lootCounts","_crateLoot","_markerMissionName","_missionLandscapeMode","_missionLandscape",
|
||||
"_missionLootBoxes","_missionLootVehicles","_missionEmplacedWeapons","_minNoAI","_maxNoAI","_noAIGroups","_noVehiclePatrols","_noEmplacedWeapons",
|
||||
"_uniforms","_headgear","_chanceReinforcements","_noPara","_helipatrol","_endCondition","_markerColor","_markerType","_useMines"];
|
||||
|
||||
_mission = "static mission example 1";
|
||||
_missionCenter = [24415,18909,0]; // I pulled this from the position of the marker.
|
||||
_difficulty = "red"; // Skill level of AI (blue, red, green etc)
|
||||
_crateLoot = blck_BoxLoot_Red;
|
||||
_lootCounts = blck_lootCountsRed;
|
||||
|
||||
_markerLabel = "";
|
||||
_markerType = ["ELIPSE",[200,200],"GRID"];
|
||||
// An alternative would be:
|
||||
// _markerType = ["mil_triangle",[0,0]]; // You can replace mil_triangle with any other valid Arma 3 marker type https://community.bistudio.com/wiki/cfgMarkers
|
||||
_markerColor = "ColorRed"; // This can be any valid Arma Marker Color
|
||||
_markerMissionName = "Bad Guys Town";
|
||||
_missionLandscapeMode = "precise"; // acceptable values are "random","precise"
|
||||
// In precise mode objects will be spawned at the relative positions specified.
|
||||
// In the random mode, objects will be randomly spawned within the mission area.
|
||||
_missionLandscape = [
|
||||
|
||||
]; // list of objects to spawn as landscape
|
||||
_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position.
|
||||
// If this array is empty a single loot chest will be added at the center. If you add items loot chest(s) will be spawned in specific positions.
|
||||
//
|
||||
// [["box_classname1",_customLootArray1,[px,py,pz],["box_classname2",_customLootArray2,[px2,py2,pz2]]
|
||||
// where _customLootArray follows the same format as blck_BoxLoot_Red and the other pre-defined arrays and
|
||||
// where _customlootcountsarray1 also follows the same format as the predefined arrays like blck_lootCountsRed
|
||||
|
||||
_missionLootVehicles = []; // [ ["vehicleClassName", [px, py, pz] /* possition at which to spawn*/, _loot /* pointer to array of loot (see below)];
|
||||
// When blank nothing is spawned.
|
||||
// You can use the same format used for _missionLootBoxes to add vehicles with/without loot.
|
||||
|
||||
_noEmplacedWeapons = [2,3];
|
||||
_missionEmplacedWeapons = []; // example [ ["emplacedClassName",[px, py, pz] /* position to spawn weapon */, difficulty /* difficulty of AI manning weapon (blue, red etc)] ];
|
||||
// can be used to define the precise placement of static weapons [[1,2,3] /*loc 1*/, [2,3,4] /*loc 2*/]; if blank random locations will be used
|
||||
// If the number of possible locations exceeds the number of emplaced weapons specified above then only some of the locations in the array will have emplaced weapons spawned.
|
||||
// If you leave this array blank then emplaced weapons will be spawned at random locations around the mission using the default list of emplace weapons.
|
||||
|
||||
_minNoAI = blck_MinAI_Red; // Modify as needed
|
||||
_maxNoAI = blck_MaxAI_Red; // Modify as needed.
|
||||
_noAIGroups = blck_AIGrps_Red; // Modify as needed
|
||||
_aiGroupParameters = [];
|
||||
|
||||
_noVehiclePatrols = blck_SpawnVeh_Red; // Modified as needed; can be a numberic value (e.g. 3) or range presented as [2,4]
|
||||
_vehiclePatrolParameters = []; //[ ["vehicleClassName",[px,py,pz] /* center of patrol area */, difficulty /* blue, red etc*/] ]
|
||||
// When empty vehicle patrols will be scattered randomely around the mission.
|
||||
// Allows you to define the location of the center of the patrol, vehicle type spawned, radius to patrol, and AI difficulty (blue, red, green etc).
|
||||
// If _noVehiclePatrols is less than the number of locations specified only _noVehiclePatrols patrols will be spawned.
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Red; // Modified as needed; can be a numberic value (e.g. 3) or range presented as [2,4]
|
||||
|
||||
_aircraftTypes = blck_patrolHelisRed; // You can use one of the pre-defined lists in blck_configs or your own custom array.
|
||||
_noAirPatrols = blck_noPatrolHelisRed; // You can use one of the pre-defined values or a custom one. acceptable values are integers (1,2,3) or a range such as [2,4];
|
||||
_airPatrols = [];
|
||||
|
||||
// Change _useMines to true/false below to enable mission-specific settings.
|
||||
_useMines = blck_useMines;
|
||||
_uniforms = blck_SkinList; // You can replace this list with a custom list of uniforms if you like.
|
||||
_headgear = blck_headgear; // You can replace this list with a custom list of headgear.
|
||||
_weapons = blck_WeaponList_Orange; // You can replace this list with a customized list of weapons, or another predifined list from blck_configs_epoch or blck_configs_exile as appropriate.
|
||||
|
||||
#include "\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnMission.sqf";
|
@ -1,135 +0,0 @@
|
||||
/*
|
||||
This is a simple mission using precisely placed loot crates and infantry, static weapons and vehicle patrols.
|
||||
See the accompanying example mission in the exampleMission folder to get an idea how I laid this out.
|
||||
Note that I exported the mission using the exportAll function of M3EDEN editor.
|
||||
*/
|
||||
private ["_markerLabel","_endMsg","_startMsg","_lootCounts","_crateLoot","_markerMissionName","_missionLandscapeMode","_missionLandscape",
|
||||
"_missionLootBoxes","_missionLootVehicles","_missionEmplacedWeapons","_minNoAI","_maxNoAI","_noAIGroups","_noVehiclePatrols","_noEmplacedWeapons",
|
||||
"_uniforms","_headgear","_chanceReinforcements","_noPara","_helipatrol","_endCondition","_markerColor","_markerType","_useMines"];
|
||||
|
||||
_mission = "static mission example #2"; // Included for additional documentation. Not intended to be spawned as a mission per se.
|
||||
_missionCenter = [22907,16789,0]; // I pulled this from the position of the marker.
|
||||
_difficulty = "red"; // Skill level of AI (blue, red, green etc)
|
||||
diag_log format["[blckeagls static missions] STARTED initializing middions %1 position at %2 difficulty %3",_mission,_missionCenter,_difficulty];
|
||||
_crateLoot = blck_BoxLoot_Orange; // You can use a customized _crateLoot configuration by defining an array here. It must follow the following format shown for a hypothetical loot array called _customLootArray
|
||||
/*
|
||||
_customLootArray =
|
||||
// Loot is grouped as [weapons],[magazines],[items] in order to be able to use the correct function to load the item into the crate later on.
|
||||
// Each item consist of the following information ["ItemName",minNum, maxNum] where min is the smallest number added and min+max is the largest number added.
|
||||
|
||||
[
|
||||
[// Weapons
|
||||
|
||||
["srifle_DMR_06_olive_F","20Rnd_762x51_Mag"]
|
||||
],
|
||||
[//Magazines
|
||||
["10Rnd_93x64_DMR_05_Mag" ,1,5]
|
||||
],
|
||||
[ // Optics
|
||||
["optic_KHS_tan",1,3]
|
||||
],
|
||||
[// Materials and supplies
|
||||
["Exile_Item_MetalScrews",3,10]
|
||||
//
|
||||
],
|
||||
[//Items
|
||||
["Exile_Item_MountainDupe",1,3]
|
||||
],
|
||||
[ // Backpacks
|
||||
["B_OutdoorPack_tan",1,2]
|
||||
]
|
||||
];
|
||||
*/
|
||||
|
||||
_lootCounts = blck_lootCountsRed; // You can use a customized set of loot counts or one that is predefined but it must follow the following format:
|
||||
// values are: number of things from the weapons, magazines, optics, materials(cinder etc), items (food etc) and backpacks arrays to add, respectively.
|
||||
// blck_lootCountsOrange = [[6,8],[24,32],[5,10],[25,35],16,1]; // Orange
|
||||
|
||||
_markerLabel = "";
|
||||
//_markerType = ["ELIPSE",[200,200],"GRID"];
|
||||
// An alternative would be:
|
||||
_markerType = ["mil_triangle",[0,0]]; // You can replace mil_triangle with any other valid Arma 3 marker type https://community.bistudio.com/wiki/cfgMarkers
|
||||
_markerColor = "ColorRed"; // This can be any valid Arma Marker Color
|
||||
_markerMissionName = "Bad People Live Here";
|
||||
_missionLandscapeMode = "precise"; // acceptable values are "random","precise"
|
||||
// In precise mode objects will be spawned at the relative positions specified.
|
||||
// In the random mode, objects will be randomly spawned within the mission area.
|
||||
_missionLandscape = [ // Paste appropriate lines from M3EDEN output here.
|
||||
["Land_Cargo_HQ_V2_F",[22894.7,16766,3.19],[[0,1,0],[0,0,1]],[true,false]],
|
||||
["Land_Cargo_HQ_V1_F",[22918.1,16761.9,3.18151],[[0,1,0],[0,0,1]],[true,false]],
|
||||
["Land_Cargo_HQ_V3_F",[22907.6,16740.3,3.17544],[[0,1,0],[0,0,1]],[true,false]],
|
||||
["Land_Dome_Small_F",[22908.2,16808.8,3.19],[[0,1,0],[0,0,1]],[true,false]]
|
||||
]; // list of objects to spawn as landscape using output from M3EDEN editor.
|
||||
|
||||
_missionLootBoxes = [ // Paste appropriate lines from M3EDEN editor output here, then add the appropriate lootArray
|
||||
// [["box_classname1",_customLootArray1,[px,py,pz],...,_customLootArray1],["box_classname2",,[px2,py2,pz2],...,_customLootArray2]
|
||||
// where _customLootArray follows the same format as blck_BoxLoot_Red and the other pre-defined arrays and
|
||||
// where _customlootcountsarray1 also follows the same format as the predefined arrays like blck_lootCountsRed
|
||||
[selectRandom blck_crateTypes,[22917.4,16763,6.30803],[[0,1,0],[0,0,1]],[true,false], _crateLoot, [[1,2],[4,6],[2,6],[5,8],6,1] ],
|
||||
[selectRandom blck_crateTypes,[22893,16766.8,6.31652],[[0,1,0],[0,0,1]],[true,false], _crateLoot, _lootCounts],
|
||||
// 0 1 2 3 4 5
|
||||
[selectRandom blck_crateTypes,[22904.8,16742.5,6.30195],[[0,1,0],[0,0,1]],[true,false], _crateLoot, _lootCounts]
|
||||
]; // If this array is empty a single loot chest will be added at the center. If you add items loot chest(s) will be spawned in specific positions.
|
||||
|
||||
|
||||
|
||||
_missionLootVehicles = [ // Paste appropriate lines from the output of M3EDEN Editor here and add the loot crate type and loot counts at the end of each entry as shown in the example below.
|
||||
// Many vehicles have less inventory capacity than crates so you may have to modify _lootcounts to avoid having stuff spawned all over the ground.
|
||||
//["Exile_Car_Van_Box_Guerilla02",[22896.8,16790.1,3.18987],[[0,1,0],[0,0,1]],[true,false], _crateLoot, [[1,2],[4,6],[2,6],[5,8],6,1]],
|
||||
//["Exile_Car_Van_Fuel_Guerilla02",[22919,16782.7,3.18132],[[0,1,0],[0.00129187,0,0.999999]],[true,false],_crateLoot, _lootCounts]
|
||||
]; // [ ["vehicleClassName", [px, py, pz] /* possition at which to spawn*/, _loot /* pointer to array of loot (see below)];
|
||||
// When blank nothing is spawned.
|
||||
// You can use the same format used for _missionLootBoxes to add vehicles with/without loot.
|
||||
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Red; // Modified as needed; can be a numberic value (e.g. 3) or range presented as [2,4]
|
||||
//format: _noEmplacedWeapons = [2,3]; // a range of values
|
||||
// or _noEmplacedWeapons = 3; // a constant number of emplaced weps per misison
|
||||
// Note that this value is ignored if you define static weapon positions and types in the array below.
|
||||
_missionEmplacedWeapons = [
|
||||
//["B_G_Mortar_01_F",[22867.3,16809.1,3.17968],"red",0,0],
|
||||
//["B_HMG_01_high_F",[22944.3,16820.5,3.14243],"green",0,0]
|
||||
]; // example [ ["emplacedClassName",[px, py, pz] /* position to spawn weapon */, difficulty /* difficulty of AI manning weapon (blue, red etc)] ];
|
||||
// can be used to define the precise placement of static weapons [[1,2,3] /*loc 1*/, [2,3,4] /*loc 2*/]; if blank random locations will be used
|
||||
// If the number of possible locations exceeds the number of emplaced weapons specified above then only some of the locations in the array will have emplaced weapons spawned.
|
||||
// If you leave this array blank then emplaced weapons will be spawned at random locations around the mission using the default list of emplace weapons.
|
||||
|
||||
_minNoAI = blck_MinAI_Red; // Modify as needed
|
||||
_maxNoAI = blck_MaxAI_Red; // Modify as needed.
|
||||
_noAIGroups = blck_AIGrps_Red; // Modify as needed; note that these values are ignored of you specify AI patrols in the array below.
|
||||
_aiGroupParameters = [
|
||||
// [ [px, py, pz] /* position*/, "difficulty", 4 /*Number to Spawn*/, 150 /*radius of patrol*/]
|
||||
//[[22920.4,16887.3,3.19144],"red",[1,2], 75,120],
|
||||
[[22993.3,16830.8,5.6292],"red",4, 75,9000],
|
||||
[[22947.8,16717,6.80305],"red",4, 75,900],
|
||||
[[22849,16720.4,7.33123],"red",4, 75,9000],
|
||||
[[22832.9,16805.6,4.59315],"red",4, 75,900],
|
||||
[[22909.8,16778.6,3.19144],"red",4, 75,900],
|
||||
[[22819.4,16929.5,5.33892],"red",4, 75,900],
|
||||
[[22819.4,16929.5,5.33892],"red",4, 75,900]
|
||||
];
|
||||
|
||||
_noVehiclePatrols = blck_SpawnVeh_Red; // Modified as needed; can be a numberic value (e.g. 3) or range presented as [2,4];
|
||||
// Note that this value is ignored if you define vehicle patrols in the array below.
|
||||
_vehiclePatrolParameters = [
|
||||
["B_G_Offroad_01_armed_F",[22819.4,16929.5,3.17413],"red", 600,900],
|
||||
["B_G_Offroad_01_repair_F",[22809.5,16699.2,8.78706],"green", 600,900]
|
||||
]; //[ ["vehicleClassName",[px,py,pz] /* center of patrol area */, difficulty /* blue, red etc*/, patrol radius] ]
|
||||
// When this array is empty, vehicle patrols will be scattered randomely around the mission.
|
||||
// Allows you to define the location of the center of the patrol, vehicle type spawned, radius to patrol, and AI difficulty (blue, red, green etc).
|
||||
|
||||
_aircraftTypes = blck_patrolHelisRed; // You can use one of the pre-defined lists in blck_configs or your own custom array.
|
||||
_noAirPatrols = blck_noPatrolHelisRed; // You can use one of the pre-defined values or a custom one. acceptable values are integers (1,2,3) or a range such as [2,4];
|
||||
// Note: this value is ignored if you specify air patrols in the array below.
|
||||
_airPatrols = [
|
||||
["Exile_Chopper_Huey_Armed_Green",[22923.4,16953,3.19],"red",1000,900]//,
|
||||
//[selectRandom _aircraftTypes,[22830.2,16618.1,11.4549],"green",1000,0]
|
||||
];
|
||||
// Change _useMines to true/false below to enable mission-specific settings.
|
||||
_useMines = blck_useMines; // Set to false if you have vehicles patrolling nearby.
|
||||
_uniforms = blck_SkinList; // You can replace this list with a custom list of uniforms if you like.
|
||||
_headgear = blck_headgear; // You can replace this list with a custom list of headgear.
|
||||
_weapons = blck_WeaponList_Orange; // You can replace this list with a customized list of weapons, or another predifined list from blck_configs_epoch or blck_configs_exile as appropriate.
|
||||
|
||||
#include "\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_initializeMission.sqf";
|
||||
|
||||
diag_log format["[blckeagls static missions] COMPLETED initializing middions %1 position at %2 difficulty %3",_mission,_missionCenter,_difficulty];
|
@ -1,133 +0,0 @@
|
||||
/*
|
||||
This is a simple mission using precisely placed loot crates and infantry, static weapons and vehicle patrols.
|
||||
See the accompanying example mission in the exampleMission folder to get an idea how I laid this out.
|
||||
Note that I laid out the mission in EDEN editor, exported the mission using the exportAll function of M3EDEN editor. then copied, pasted and apporpriately edidet the specific categories of items to be spawned.
|
||||
*/
|
||||
private ["_markerLabel","_endMsg","_startMsg","_lootCounts","_crateLoot","_markerMissionName","_missionLandscapeMode","_missionLandscape",
|
||||
"_missionLootBoxes","_missionLootVehicles","_missionEmplacedWeapons","_minNoAI","_maxNoAI","_noAIGroups","_noVehiclePatrols","_noEmplacedWeapons",
|
||||
"_uniforms","_headgear","_chanceReinforcements","_noPara","_helipatrol","_endCondition","_markerColor","_markerType","_useMines","_difficulty","_mission","_missionCenter"];
|
||||
|
||||
_mission = "UMS mission example #2"; // Included for additional documentation. Not intended to be spawned as a mission per se.
|
||||
_missionCenter = [22584.9,15304.8,0]; // I pulled this from the position of the marker.
|
||||
_difficulty = "red"; // Skill level of AI (blue, red, green etc)
|
||||
diag_log format["[blckeagls UMS missions] STARTED initializing mission %1 position at %2 difficulty %3",_mission,_missionCenter,_difficulty];
|
||||
_crateLoot = blck_BoxLoot_Orange; // You can use a customized _crateLoot configuration by defining an array here. It must follow the following format shown for a hypothetical loot array called _customLootArray
|
||||
/*
|
||||
_customLootArray =
|
||||
// Loot is grouped as [weapons],[magazines],[items] in order to be able to use the correct function to load the item into the crate later on.
|
||||
// Each item consist of the following information ["ItemName",minNum, maxNum] where min is the smallest number added and min+max is the largest number added.
|
||||
|
||||
[
|
||||
[// Weapons
|
||||
|
||||
["srifle_DMR_06_olive_F","20Rnd_762x51_Mag"]
|
||||
],
|
||||
[//Magazines
|
||||
["10Rnd_93x64_DMR_05_Mag" ,1,5]
|
||||
],
|
||||
[ // Optics
|
||||
["optic_KHS_tan",1,3]
|
||||
],
|
||||
[// Materials and supplies
|
||||
["Exile_Item_MetalScrews",3,10]
|
||||
//
|
||||
],
|
||||
[//Items
|
||||
["Exile_Item_MountainDupe",1,3]
|
||||
],
|
||||
[ // Backpacks
|
||||
["B_OutdoorPack_tan",1,2]
|
||||
]
|
||||
];
|
||||
*/
|
||||
|
||||
_lootCounts = blck_lootCountsRed; // You can use a customized set of loot counts or one that is predefined but it must follow the following format:
|
||||
// values are: number of things from the weapons, magazines, optics, materials(cinder etc), items (food etc) and backpacks arrays to add, respectively.
|
||||
// blck_lootCountsOrange = [[6,8],[24,32],[5,10],[25,35],16,1]; // Orange
|
||||
|
||||
_markerLabel = "";
|
||||
//_markerType = ["ELIPSE",[200,200],"GRID"];
|
||||
// An alternative would be:
|
||||
_markerType = ["mil_triangle",[0,0]]; // You can replace mil_triangle with any other valid Arma 3 marker type https://community.bistudio.com/wiki/cfgMarkers
|
||||
_markerColor = "ColorRed"; // This can be any valid Arma Marker Color
|
||||
_markerMissionName = "Bad Fishermen Live Here";
|
||||
_missionLandscapeMode = "precise"; // acceptable values are "random","precise"
|
||||
// In precise mode objects will be spawned at the relative positions specified.
|
||||
// In the random mode, objects will be randomly spawned within the mission area.
|
||||
_missionLandscape = [ // Paste appropriate lines from M3EDEN output here.
|
||||
// ["Land_Cargo_HQ_V2_F",[22894.7,16766,3.19],[[0,1,0],[0,0,1]],[true,false]],
|
||||
["Land_Boat_05_wreck_F",[22571.5,15278.9,0],[[0,1,0],[0,0,1]],[true,false]]
|
||||
]; // list of objects to spawn as landscape using output from M3EDEN editor.
|
||||
|
||||
_missionLootBoxes = [ // Paste appropriate lines from M3EDEN editor output here, then add the appropriate lootArray
|
||||
// [["box_classname1",_customLootArray1,[px,py,pz],...,_customLootArray1],["box_classname2",,[px2,py2,pz2],...,_customLootArray2]
|
||||
// where _customLootArray follows the same format as blck_BoxLoot_Red and the other pre-defined arrays and
|
||||
// where _customlootcountsarray1 also follows the same format as the predefined arrays like blck_lootCountsRed
|
||||
// ["Box_NATO_Ammo_F",[22893,16766.8,6.31652],[[0,1,0],[0,0,1]],[true,false], _crateLoot, _lootCounts],
|
||||
[selectRandom blck_UMS_crates,[22584.9,15282.2,-1],[[0,1,0],[0,0,1]],[true,false], _crateLoot, _lootCounts]
|
||||
]; // If this array is empty a single loot chest will be added at the center. If you add items loot chest(s) will be spawned in specific positions.
|
||||
|
||||
|
||||
|
||||
_missionLootVehicles = [ // Paste appropriate lines from the output of M3EDEN Editor here and add the loot crate type and loot counts at the end of each entry as shown in the example below.
|
||||
// Many vehicles have less inventory capacity than crates so you may have to modify _lootcounts to avoid having stuff spawned all over the ground.
|
||||
//["Exile_Car_Van_Box_Guerilla02",[22896.8,16790.1,3.18987],[[0,1,0],[0,0,1]],[true,false], _crateLoot, [[1,2],[4,6],[2,6],[5,8],6,1]],
|
||||
["B_T_Boat_Transport_01_F",[22570.1,15235.3,-4.49949],[[0,1,0],[0,0,1]],[true,false],_crateLoot, _lootCounts]
|
||||
]; // [ ["vehicleClassName", [px, py, pz] /* possition at which to spawn*/, _loot /* pointer to array of loot (see below)];
|
||||
// When blank nothing is spawned.
|
||||
// You can use the same format used for _missionLootBoxes to add vehicles with/without loot.
|
||||
|
||||
_noEmplacedWeapons = blck_SpawnEmplaced_Red; // Modified as needed; can be a numberic value (e.g. 3) or range presented as [2,4]
|
||||
//format: _noEmplacedWeapons = [2,3]; // a range of values
|
||||
// or _noEmplacedWeapons = 3; // a constant number of emplaced weps per misison
|
||||
// Note that this value is ignored if you define static weapon positions and types in the array below.
|
||||
_missionEmplacedWeapons = [
|
||||
//["B_G_Mortar_01_F",[22867.3,16809.1,3.17968],"red",0,0],
|
||||
//["B_HMG_01_high_F",[22944.3,16820.5,3.14243],"green",0,0]
|
||||
];
|
||||
// example [ ["emplacedClassName",[px, py, pz] /* position to spawn weapon */, difficulty /* difficulty of AI manning weapon (blue, red etc)] ];
|
||||
// can be used to define the precise placement of static weapons [[1,2,3] /*loc 1*/, [2,3,4] /*loc 2*/]; if blank random locations will be used
|
||||
// If the number of possible locations exceeds the number of emplaced weapons specified above then only some of the locations in the array will have emplaced weapons spawned.
|
||||
// If you leave this array blank then emplaced weapons will be spawned at random locations around the mission using the default list of emplace weapons.
|
||||
|
||||
_minNoAI = blck_MinAI_Red; // Modify as needed
|
||||
_maxNoAI = blck_MaxAI_Red; // Modify as needed.
|
||||
_noAIGroups = blck_AIGrps_Red; // Modify as needed; note that these values are ignored of you specify AI patrols in the array below.
|
||||
_aiGroupParameters = [
|
||||
// [ [px, py, pz] /* position*/, "difficulty", 4 /*Number to Spawn*/, 150 /*radius of patrol*/]
|
||||
|
||||
];
|
||||
_aiScubaGroupParameters = [
|
||||
// [ [px, py, pz] /* position*/, "difficulty", 4 /*Number to Spawn*/, 150 /*radius of patrol*/]
|
||||
[[22584.9,15304.8,-4.27578],"red",4, 75,0],
|
||||
[[22613.5,15269.1,-4.28332],"red",4, 75,0],
|
||||
[[22549,15288.9,0],"red",4, 75,60]
|
||||
];
|
||||
_noVehiclePatrols = blck_SpawnVeh_Red; // Modified as needed; can be a numberic value (e.g. 3) or range presented as [2,4];
|
||||
// Note that this value is ignored if you define vehicle patrols in the array below.
|
||||
_vehiclePatrolParameters = [
|
||||
["B_T_Boat_Armed_01_minigun_F",[22578.6,15273.3,-0.0354593],"red",4, 75,0],
|
||||
["B_T_Boat_Transport_01_F",[22570.1,15235.3,-4.49949],"red",4, 75,60]
|
||||
]; //[ ["vehicleClassName",[px,py,pz] /* center of patrol area */, difficulty /* blue, red etc*/, patrol radius] ]
|
||||
// When this array is empty, vehicle patrols will be scattered randomely around the mission.
|
||||
// Allows you to define the location of the center of the patrol, vehicle type spawned, radius to patrol, and AI difficulty (blue, red, green etc).
|
||||
|
||||
_submarinePatrolParameters = [
|
||||
["B_SDV_01_F",[22584.9,15304.8,-1],"red",4, 75,0],
|
||||
["B_SDV_01_F",[22609.9,15299.8,-1],"red",4, 75,0]
|
||||
];
|
||||
|
||||
_aircraftTypes = blck_patrolHelisRed; // You can use one of the pre-defined lists in blck_configs or your own custom array.
|
||||
_noAirPatrols = blck_noPatrolHelisRed; // You can use one of the pre-defined values or a custom one. acceptable values are integers (1,2,3) or a range such as [2,4];
|
||||
// Note: this value is ignored if you specify air patrols in the array below.
|
||||
_airPatrols = [
|
||||
//["Exile_Chopper_Huey_Armed_Green",[22923.4,16953,3.19],"red",1000,0],
|
||||
[selectRandom _aircraftTypes,_missionCenter,"green",1000,60]
|
||||
];
|
||||
|
||||
// Change _useMines to true/false below to enable mission-specific settings.
|
||||
_useMines = false; // Set to false if you have vehicles patrolling nearby.
|
||||
|
||||
#include "\q\addons\custom_server\Missions\UMS\code\GMS_fnc_sm_initializeUMSStaticMission.sqf";
|
||||
|
||||
diag_log format["[blckeagls static missions] COMPLETED initializing middions %1 position at %2 difficulty %3",_mission,_missionCenter,_difficulty];
|
@ -12,14 +12,8 @@
|
||||
*/
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
private["_blck_WorldName"];
|
||||
|
||||
_blck_WorldName = toLower format ["%1", worldName];
|
||||
_blck_worldSize = worldSize;
|
||||
|
||||
diag_log format["[blckeagls] Loading Map-specific settings with worldName = %1",_blck_WorldName];
|
||||
|
||||
switch (_blck_WorldName) do
|
||||
diag_log format["[blckeagls] Loading Map-specific settings with worldName = %1",worldName];
|
||||
switch (toLower worldName) do
|
||||
{// These may need some adjustment - including a test for shore or water should help as well to avoid missions spawning on water.
|
||||
case "altis":{
|
||||
diag_log "[blckeagls] Altis-specific settings for Epoch loaded";
|
||||
@ -63,7 +57,5 @@ switch (_blck_WorldName) do
|
||||
case "takistan":{blck_mapCenter = [5500, 6500, 0];blck_mapRange = 5000;};
|
||||
case "lythium":{blck_mapCenter = [10000,10000,0];blck_mapRange = 8500;};
|
||||
case "malden":{blck_mapCenter = [6000,7000,0];blck_mapRange = 5500;};
|
||||
default {_blck_WorldName = "default";blck_mapCenter = [6322,7801,0]; blck_mapRange = 6000};
|
||||
};
|
||||
|
||||
blck_worldSet = true;
|
||||
default {blck_mapCenter = [6322,7801,0]; blck_mapRange = 6000};
|
||||
};
|
@ -10,26 +10,23 @@
|
||||
*/
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
if (blck_modType isEqualTo "Epoch") then
|
||||
if ((tolower blck_modType) isEqualTo "epoch") then
|
||||
{
|
||||
_blckListPrior = blck_locationBlackList;
|
||||
private _config = configFile >> "CfgEpoch";
|
||||
private _configWorld = _config >> worldname;
|
||||
private _telePos = getArray(configFile >> "CfgEpoch" >> worldName >> "telePos" );
|
||||
//diag_log format["[blckeagls] _fnc_getTraderCities: _config = %1 | _configWorld = %2",_config,_configWorld];
|
||||
//diag_log format["[blckegle] _fnc_getTraderCities: count _telePos = %1 || _telepos = %2",count _telePos,_telePos];
|
||||
//if (true) exitWith {};
|
||||
{
|
||||
blck_locationBlackList pushback [_x select 3, 1000];
|
||||
#ifdef blck_debugMode
|
||||
if (blck_debugON) then {diag_log format["[blckeagls] _fnc_getTraderCitiesEpoch:: -- >> Added epoch trader city location at %1", (_x select 3)];};
|
||||
#endif
|
||||
} foreach _telePos; // (getArray(_configWorld >> "telePos"));
|
||||
} foreach _telePos;
|
||||
diag_log format["[blckeagls] blckListPrior = %1",_blckListPrior];
|
||||
diag_log format["[blckeagls] ] blck_locationBlackList = %1",blck_locationBlackList];
|
||||
};
|
||||
|
||||
if (blck_modType isEqualTo "Exile") then
|
||||
if ((tolower blck_modType) isEqualTo "exile") then
|
||||
{
|
||||
if (blck_blacklistTraderCities || blck_blacklistSpawns || blck_listConcreteMixerZones) then
|
||||
{
|
||||
|
@ -1,37 +0,0 @@
|
||||
/*
|
||||
for ghostridergaming
|
||||
By Ghostrider [GRG]
|
||||
Copyright 2016
|
||||
|
||||
--------------------------
|
||||
License
|
||||
--------------------------
|
||||
All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License.
|
||||
|
||||
http://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||
*/
|
||||
|
||||
#define useAPEX
|
||||
//#define useDynamicSimulation
|
||||
//#define blck_debugMode
|
||||
#define blck_triggerLoopCompleteTime 40*60
|
||||
#define blck_milServer
|
||||
//#define GRG_TestServer
|
||||
#define blck_useCUP
|
||||
#define blck_useRHS
|
||||
|
||||
////////////////////////////
|
||||
// Do not touch anything below this line
|
||||
///////////////////////////
|
||||
#define onFoot 1
|
||||
#define inVehicle 2
|
||||
|
||||
// defines for static group spawners
|
||||
#define staticPatrolTriggerRange 2000
|
||||
#define groupParameters 0
|
||||
#define patrolGroup 1
|
||||
#define groupSpawned 2
|
||||
#define timesSpawned 3
|
||||
#define respawnAt 4
|
||||
|
||||
|
@ -26,26 +26,20 @@ _blck_loadingStartTime = diag_tickTime;
|
||||
diag_log format["[blckeagls] Loading Headless Client Version %2 Build Date %1",_blck_versionDate,_blck_version];
|
||||
|
||||
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_variables.sqf";
|
||||
waitUntil {(isNil "blck_variablesLoaded") isEqualTo false;};
|
||||
waitUntil{blck_variablesLoaded};
|
||||
blck_variablesLoaded = nil;
|
||||
//if !(blck_debugON) then {uiSleep 60;};
|
||||
|
||||
// compile functions
|
||||
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_functions.sqf";
|
||||
waitUntil {(isNil "blck_functionsCompiled") isEqualTo false;};
|
||||
waitUntil{blck_functionsCompiled};
|
||||
blck_functionsCompiled = nil;
|
||||
diag_log format["[blckeagls] debug mode settings:blck_debugON = %1 blck_debugLevel = %2",blck_debugON,blck_debugLevel];
|
||||
|
||||
execVM "\q\addons\custom_server\Configs\blck_configs.sqf";
|
||||
waitUntil {(isNil "blck_configsLoaded") isEqualTo false;};
|
||||
waitUntil{blck_configsLoaded};
|
||||
blck_configsLoaded = nil;
|
||||
|
||||
// Load any user-defined specifications or overrides
|
||||
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_custom_config.sqf";
|
||||
|
||||
#ifdef GRGserver
|
||||
diag_log "[blckeagls] Running GRG Version";
|
||||
#endif
|
||||
|
||||
switch (blck_simulationManager) do
|
||||
case 1: {diag_log "[blckeagls] dynamic simulation manager enabled"};
|
||||
case 2: {diag_log "[blckeagls] blckeagls simulation manager enabled"};
|
||||
|
@ -10,28 +10,28 @@
|
||||
*/
|
||||
|
||||
if ( !(isServer) || hasInterface) exitWith{};
|
||||
|
||||
#include "blck_defines.hpp";
|
||||
|
||||
if !(isNil "blck_Initialized") exitWith{};
|
||||
// find and set Mod
|
||||
blck_modType = if (!isNull (configFile >> "CfgPatches" >> "exile_server")) then {"Exile"} else {if (!isnull (configFile >> "CfgPatches" >> "a3_epoch_server")) then {"Epoch"} else {""}};
|
||||
publicVariable "blck_modType";
|
||||
/*
|
||||
if ((tolower blck_modType) isEqualto "epoch") then {
|
||||
diag_log "[blckeagls] Waiting until EpochMod is ready...";
|
||||
waituntil {!isnil "EPOCH_SERVER_READY"};
|
||||
};
|
||||
*/
|
||||
#include "\q\addons\custom_server\Configs\blck_defines.hpp";
|
||||
|
||||
|
||||
private _blck_loadingStartTime = diag_tickTime;
|
||||
#include "\q\addons\custom_server\init\build.sqf";
|
||||
diag_log format["[blckeagls] Loading Server Mission System Version %2 Build Date %1",_blck_versionDate,_blck_version];
|
||||
|
||||
// compile functions
|
||||
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_functions.sqf";
|
||||
waitUntil {(isNil "blck_functionsCompiled") isEqualTo false;};
|
||||
waitUntil{blck_functionsCompiled};
|
||||
blck_functionsCompiled = nil;
|
||||
diag_log format["[blckeagls] functions compiled at %1",diag_tickTime];
|
||||
diag_log format["[blckeagls] functions compiled in %1 seconds",diag_tickTime-_blck_loadingStartTime];
|
||||
|
||||
blck_modType = call blck_fnc_getModType;
|
||||
publicVariable "blck_modType";
|
||||
|
||||
execVM "\q\addons\custom_server\Configs\blck_configs.sqf";
|
||||
waitUntil {(isNil "blck_configsLoaded") isEqualTo false;};
|
||||
waitUntil{blck_configsLoaded};
|
||||
blck_configsLoaded = nil;
|
||||
call compile preprocessfilelinenumbers "\q\addons\custom_server\Configs\blck_configs.sqf";
|
||||
diag_log format["[blckeagls] blck_useHC = %1 | blck_simulationManager = %2 ",blck_useHC,blck_simulationManager];
|
||||
diag_log format["[blckeagls] debug mode settings:blck_debugON = %1 blck_debugLevel = %2",blck_debugON,blck_debugLevel];
|
||||
|
||||
@ -41,9 +41,6 @@ diag_log format["[blckeagls] configurations loaded at %1",diag_tickTime];
|
||||
|
||||
|
||||
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_variables.sqf";
|
||||
waitUntil {(isNil "blck_variablesLoaded") isEqualTo false;};
|
||||
waitUntil{blck_variablesLoaded};
|
||||
blck_variablesLoaded = nil;
|
||||
diag_log format["[blckeagls] blck_variables loaded at %1",diag_tickTime];
|
||||
|
||||
// spawn map addons to give the server time to position them before spawning in crates etc.
|
||||
@ -53,25 +50,19 @@ if (blck_spawnMapAddons) then
|
||||
}else{
|
||||
diag_log "[blckeagls] Map Addons disabled";
|
||||
};
|
||||
blck_spawnMapAddons = nil;
|
||||
|
||||
|
||||
// find and set Mapcenter and size
|
||||
diag_log "[blckeagls] Loading Map-specific information";
|
||||
execVM "\q\addons\custom_server\init\GMS_fnc_findWorld.sqf";
|
||||
waitUntil {(isNil "blck_worldSet") isEqualTo false;};
|
||||
waitUntil{blck_worldSet};
|
||||
blck_worldSet = nil;
|
||||
|
||||
#ifdef GRG_TestServer
|
||||
//[] execVM "\q\addons\custom_server\init\testCrateLoading.sqf";
|
||||
#endif
|
||||
call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\init\GMS_fnc_findWorld.sqf";
|
||||
|
||||
// set up the lists of available missions for each mission category
|
||||
diag_log "[blckeagls] Loading Mission Lists";
|
||||
//diag_log "[blckeagls] Loading Mission Lists";
|
||||
#include "\q\addons\custom_server\Missions\GMS_missionLists.sqf";
|
||||
diag_log "[blckeagls] Mission Lists Loaded Successfully";
|
||||
|
||||
[] execVM "\q\addons\custom_server\Missions\Static\GMS_StaticMissions_init.sqf";
|
||||
[] execVM "q\addons\custom_server\Missions\UMS\GMS_UMS_init.sqf"; // loads functions and spawns any static missions.
|
||||
call compile preprocessfilelinenumbers "\q\addons\custom_server\Missions\Static\GMS_StaticMissions_init.sqf";
|
||||
call compile preprocessfilelinenumbers "q\addons\custom_server\Missions\UMS\GMS_UMS_init.sqf"; // loads functions and spawns any static missions.
|
||||
diag_log "[blckeagls] blck_init_server: ->> Static and UMS systems initialized.";
|
||||
|
||||
switch (blck_simulationManager) do
|
||||
@ -81,6 +72,15 @@ switch (blck_simulationManager) do
|
||||
case 0: {diag_log "[blckeagls] simulation management disabled"};
|
||||
};
|
||||
|
||||
|
||||
#ifdef GRGserver
|
||||
// start the dynamic loot crate system
|
||||
compile preprocessfilelinenumbers "\q\addons\custom_server\DLS\DLS_init.sqf";
|
||||
#endif
|
||||
|
||||
diag_log format["[blckeagls] version %1 Build %2 Loaded in %3 seconds",_blck_versionDate,_blck_version,diag_tickTime - _blck_loadingStartTime]; //,blck_modType];
|
||||
diag_log format["blckeagls] waiting for players to join ---- >>>>"];
|
||||
#ifdef GRGserver
|
||||
diag_log "[blckeagls] Running GhostriderGaming Version";
|
||||
#endif
|
||||
|
||||
@ -92,15 +92,11 @@ if !(blck_debugON || (blck_debugLevel isEqualTo 0)) then
|
||||
diag_log "[blckeagls] spawning Missions";
|
||||
};
|
||||
|
||||
|
||||
if (blck_spawnStaticLootCrates) then
|
||||
{
|
||||
// Start the static loot crate spawner
|
||||
diag_log "[blckeagls] SLS:: -- >> Static Loot Spawner Started";
|
||||
[] execVM "\q\addons\custom_server\SLS\SLS_init.sqf";
|
||||
waitUntil {(isNil "blck_SLSComplete") isEqualTo false;};
|
||||
waitUntil {blck_SLSComplete};
|
||||
blck_SLSComplete = nil;
|
||||
//diag_log "[blckeagls] SLS:: -- >> Static Loot Spawner Started";
|
||||
call compile preprocessfilelinenumbers "\q\addons\custom_server\SLS\SLS_init.sqf";
|
||||
diag_log "[blckeagls] SLS:: -- >> Static Loot Spawner Done";
|
||||
}else{
|
||||
diag_log "[blckeagls] SLS:: -- >> Static Loot Spawner disabled";
|
||||
@ -108,37 +104,56 @@ if (blck_spawnStaticLootCrates) then
|
||||
|
||||
if (true /*blck_blacklistTraderCities*/) then
|
||||
{
|
||||
execVM "\q\addons\custom_server\init\GMS_fnc_getTraderCites.sqf";
|
||||
call compile preprocessfilelinenumbers "\q\addons\custom_server\init\GMS_fnc_getTraderCites.sqf";
|
||||
};
|
||||
diag_log format["[blckeagls] _init_server: blck_enableOrangeMissions = %1",blck_enableOrangeMissions];
|
||||
|
||||
//Start the mission timers
|
||||
if (blck_enableOrangeMissions > 0) then
|
||||
{
|
||||
//[_missionListOrange,_pathOrange,"OrangeMarker","orange",blck_TMin_Orange,blck_TMax_Orange] spawn blck_fnc_missionTimer;//Starts major mission system (Orange Map Markers)
|
||||
[_missionListOrange,_pathOrange,"OrangeMarker","orange",blck_TMin_Orange,blck_TMax_Orange,blck_enableOrangeMissions] call blck_fnc_addMissionToQue;
|
||||
};
|
||||
|
||||
diag_log format["[blckeagls] _init_server: blck_enableGreenMissions = %1",blck_enableGreenMissions];
|
||||
if (blck_enableGreenMissions > 0) then
|
||||
{
|
||||
//[_missionListGreen,_pathGreen,"GreenMarker","green",blck_TMin_Green,blck_TMax_Green] spawn blck_fnc_missionTimer;//Starts major mission system 2 (Green Map Markers)
|
||||
[_missionListGreen,_pathGreen,"GreenMarker","green",blck_TMin_Green,blck_TMax_Green,blck_enableGreenMissions] call blck_fnc_addMissionToQue;
|
||||
};
|
||||
|
||||
diag_log format["[blckeagls] _init_server: blck_enableRedMissions = %1",blck_enableRedMissions];
|
||||
if (blck_enableRedMissions > 0) then
|
||||
{
|
||||
//[_missionListRed,_pathRed,"RedMarker","red",blck_TMin_Red,blck_TMax_Red] spawn blck_fnc_missionTimer;//Starts minor mission system (Red Map Markers)//Starts minor mission system 2 (Red Map Markers)
|
||||
[_missionListRed,_pathRed,"RedMarker","red",blck_TMin_Red,blck_TMax_Red,blck_enableRedMissions] call blck_fnc_addMissionToQue;
|
||||
};
|
||||
|
||||
diag_log format["[blckeagls] _init_server: blck_enableBlueMissions = %1",blck_enableBlueMissions];
|
||||
if (blck_enableBlueMissions > 0) then
|
||||
{
|
||||
//[_missionListBlue,_pathBlue,"BlueMarker","blue",blck_TMin_Blue,blck_TMax_Blue] spawn blck_fnc_missionTimer;//Starts minor mission system (Blue Map Markers)
|
||||
[_missionListBlue,_pathBlue,"BlueMarker","blue",blck_TMin_Blue,blck_TMax_Blue,blck_enableBlueMissions] call blck_fnc_addMissionToQue;
|
||||
};
|
||||
|
||||
#ifdef GRGserver
|
||||
|
||||
diag_log format["[blckeagls] _init_server: blck_enableScoutsMissions = %1",blck_enableScoutsMissions];
|
||||
if (blck_enableScoutsMissions > 0) then
|
||||
{
|
||||
//[_missionListScouts,_pathScouts,"ScoutsMarker","red",blck_TMin_Scouts,blck_TMax_Scouts] spawn blck_fnc_missionTimer;
|
||||
[_missionListScouts,_pathScouts,"ScoutsMarker","red",blck_TMin_Scouts,blck_TMax_Scouts,blck_enableScoutsMissions,false] call blck_fnc_addMissionToQue;
|
||||
};
|
||||
|
||||
diag_log format["[blckeagls] _init_server: blck_enableHunterMissions = %1",blck_enableHunterMissions];
|
||||
if (blck_enableHunterMissions > 0) then
|
||||
{
|
||||
//[_missionListHunters,_pathHunters,"HunterMarker","green",blck_TMin_Hunter,blck_TMax_Hunter] spawn blck_fnc_missionTimer;
|
||||
// params["_missionList","_path","_marker","_difficulty","_tMin","_tMax","_noMissions"];
|
||||
[_missionListHunters,_pathHunters,"HunterMarker","green",blck_TMin_Hunter,blck_TMax_Hunter,blck_enableHunterMissions,false] call blck_fnc_addMissionToQue;
|
||||
};
|
||||
|
||||
// Running new version of Crash sites.
|
||||
diag_log format["[blckeagls] _init_server: blck_maxCrashSites = %1",blck_maxCrashSites];
|
||||
if (blck_maxCrashSites > 0) then
|
||||
{
|
||||
[] execVM "\q\addons\custom_server\Missions\HeliCrashs\Crashes2.sqf";
|
||||
};
|
||||
#endif
|
||||
|
||||
// start the main thread for the mission system which monitors missions running and stuff to be cleaned up
|
||||
[] spawn blck_fnc_mainThread;
|
||||
|
||||
|
@ -1,14 +0,0 @@
|
||||
|
||||
|
||||
private["_startTime"];
|
||||
_startTime = diag_tickTime;
|
||||
[] spawn {
|
||||
while {true} do
|
||||
{
|
||||
blck_serverFPS = diag_FPS;
|
||||
publicVariable "blck_serverFPS";
|
||||
uiSleep 3;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
private ["_version","_versionDate"];
|
||||
blck_version = "6.88 Build 160";
|
||||
blck_version = "6.88 Build 163";
|
||||
_blck_version = blck_version;
|
||||
_blck_versionDate = "11-19-18 1:30 AM";
|
||||
_blck_versionDate = "11-19-18 4:00 PM";
|
||||
blck_pvs_version = _blck_version;
|
||||
publicVariable blck_pvs_version;
|
||||
|
Loading…
Reference in New Issue
Block a user