diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_addMoneyToObject.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_addMoneyToObject.sqf index 7f4c32d..2c17267 100644 --- a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_addMoneyToObject.sqf +++ b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_addMoneyToObject.sqf @@ -13,26 +13,14 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; if (toLower(blck_modType) isEqualTo "default") exitWith {}; -params["_obj","_difficulty"]; - -if (blck_modType isEqualTo "Exile") then +params["_obj",["_money",-1]]; +_money = ([_money] call blck_fnc_getNumberFromRange); +if (blck_debugLevel >= 3) then {[format["_fnc_addmoneyToObject: _money = %1 _obj = %2",_money,_obj]] call blck_fnc_log}; +if !(_money <= 0) then { - switch (_difficulty) do + switch(toLower(blck_modType)) do { - case "blue":{_obj setVariable["ExileMoney", floor(random([blck_crateMoneyBlue] call blck_fnc_getNumberFromRange)),true];}; - case "red":{_obj setVariable["ExileMoney", floor(random([blck_crateMoneyRed] call blck_fnc_getNumberFromRange)),true];}; - case "green":{_obj setVariable["ExileMoney", floor(random([blck_crateMoneyGreen] call blck_fnc_getNumberFromRange)),true];}; - case "orange":{_obj setVariable["ExileMoney", floor(random([blck_crateMoneyGreen] call blck_fnc_getNumberFromRange)),true];}; + case "exile": {_obj setVariable["ExileMoney",_money,true]}; + case "epoch": {_obj setVariable["Crypto", _money,true]}; }; }; - -if (blck_modType isEqualTo "Epoch") then -{ - switch (_difficulty) do - { - case "blue":{_obj setVariable["Crypto", floor(random([blck_crateMoneyBlue] call blck_fnc_getNumberFromRange)),true];}; - case "red":{_obj setVariable["Crypto", floor(random([blck_crateMoneyRed] call blck_fnc_getNumberFromRange)),true];}; - case "green":{_obj setVariable["Crypto", floor(random([blck_crateMoneyGreen] call blck_fnc_getNumberFromRange)),true];}; - case "orange":{_obj setVariable["Crypto", floor(random([blck_crateMoneyGreen] call blck_fnc_getNumberFromRange)),true];}; - }; -}; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_cleanupTemporaryMarkers.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_cleanupTemporaryMarkers.sqf index 47376af..47a3d8d 100644 --- a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_cleanupTemporaryMarkers.sqf +++ b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_cleanupTemporaryMarkers.sqf @@ -19,4 +19,4 @@ for "_i" from 1 to (count blck_temporaryMarkers) do } else { blck_temporaryMarkers pushBack _m; }; -}; +}; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_createMissionMarkers.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_createMissionMarkers.sqf index e13ebf2..05f5629 100644 --- a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_createMissionMarkers.sqf +++ b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_createMissionMarkers.sqf @@ -21,21 +21,22 @@ private "_markers"; ["_markerBrush","GRID"] ]; -/* -private _pList =[ - "_markerName", // the name used when creating the marker. Must be unique. - "_markerPos", - "_markerLabel", - "_markerColor", - "_markerType", // Use either the name of the icon or "ELLIPSE" or "RECTANGLE" where non-icon markers are used - "_markerSize", - "_markerBrush" - ]; -for "_i" from 0 to ((count _this) - 1) do +if (blck_debugLevel >= 3) then { - diag_log format["_fnc_createMarker: parameter %1 = %2",_pList select _i,_this select _i]; -}; -*/ + private _pList =[ + "_markerName", // the name used when creating the marker. Must be unique. + "_markerPos", + "_markerLabel", + "_markerColor", + "_markerType", // Use either the name of the icon or "ELLIPSE" or "RECTANGLE" where non-icon markers are used + "_markerSize", + "_markerBrush" + ]; + for "_i" from 0 to ((count _this) - 1) do + { + diag_log format["_fnc_createMarker: parameter %1 = %2",_pList select _i,_this select _i]; + }; +}; if (toUpper(_markerType) in ["ELLIPSE","RECTANGLE"]) then // not an Icon .... { diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_findSafePosn.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_findSafePosn.sqf index 8a50cea..6162ee1 100644 --- a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_findSafePosn.sqf +++ b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_findSafePosn.sqf @@ -8,12 +8,18 @@ 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/ + + Notes: cosine acute angle = hypotenuse / opposite. We always know the opposite = 1/2 mapsize so if we pick a random angle, we can calculate distance to edge of map. + Thus, we can have a random direction, calculate distance to the map edge as cos(direction - east/south/west/north angle) * 1/2 mapsize. Then, we can use 1/2 the lenght of the hypotenuse as the search range. + In this way we can reduce the radius of the search by about 1/2 and ensure a wider range of terrain is selected. + + However, if we use this approach, we risk having some missions spawn outside the map so much check for that. + It may be quicker just to pick a random angle and use 1/2 map size to search a position obtained by getPos[(1/2 mapSize),random(359)]; to pick that random seed location for the search. */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; if (isNil "blck_locationBlackList") then {blck_locationBlackList = []}; - _fn_buildBlacklistedLocationsList = { params["_minToBases","_minToPlayers","_minToMissions","_minToTowns","_minToRecentMissionLocation"]; /* locations of villages / cities / others already included in blck_locationBlackList so we do not need to add it here. */ @@ -40,8 +46,6 @@ _fn_buildBlacklistedLocationsList = { _blacklistedLocs pushBack [getPosATL _x,_minToBases]; } forEach _bases; - - { _blacklistedLocs pushBack [getPosATL _x,_minToPlayers]; } forEach allPlayers; @@ -50,45 +54,138 @@ _fn_buildBlacklistedLocationsList = { { _blacklistedLocs append ([] call blck_fnc_getAllDMSMarkers); }; - //diag_log format["_blacklistedLocs = %1",_blacklistedLocs]; + _blacklistedLocs }; +_fnc_nearWater = { + private _result = false; + private _coords = _this select 0; + private _radius = _this select 1; + + for "_i" from 0 to 359 step 45 do { + //_checkposition = [(_coords select 0) + (sin(_i)*_radius), (_coords select 1) + (cos(_i)*_radius)]; + //_checkposition2 = [(_coords select 0) + (sin(_i)*_radius/2), (_coords select 1) + (cos(_i)*_radius/2)]; + //_checkPosition = _coords getPos[_radius, _i]; + if (surfaceIsWater (_coords getPos[_radius, _i])) exitWith { + _result = true; + }; + }; + _result +}; + private _minDistToBases = blck_minDistanceToBases; private _minDistToPlayers = blck_minDistanceToPlayer; private _minDistToTowns = blck_minDistanceFromTowns; private _mindistToMissions = blck_MinDistanceFromMission; private _minToRecentMissionLocation = 200; +private _keyDistances = [_minDistToBases,_minDistToPlayers,_minDistToTowns,_minToRecentMissionLocation]; private _coords = []; -private _blacklistedLocations = [_minDistToBases,_minDistToPlayers,_minDistToTowns,_mindistToMissions,_minToRecentMissionLocation] call _fn_buildBlacklistedLocationsList; - +//private _blacklistedLocations = [_minDistToBases,_minDistToPlayers,_minDistToTowns,_mindistToMissions,_minToRecentMissionLocation] call _fn_buildBlacklistedLocationsList; private _count = 25; -while {_coords isEqualTo [] && _count > 0} do +private _flatCoords = []; +private _slope = 0.15; +private _searchDist = blck_mapRange / 2; +private _timeIn = diag_tickTime; +private _validspot = false; +while { !_validspot} do { - /* - 6-13-20 - Notes - increased min distance to objects from 3 to 10 - decreased max slope from 5 to 0.5 - */ + private _angle = random(359); + private _searchCenter = blck_mapCenter getPos[_searchDist, random(359)]; + _coords = [_searchCenter,0,_searchDist,10,0,_slope,0] call BIS_fnc_findSafePos; - _coords = [blck_mapCenter,0,blck_mapRange,10,0,0.5,0,_blacklistedLocations] call BIS_fnc_findSafePos; - /* Check whether the location is flat enough: returns [] if not. */ - private _isFlat = _coords isFlatEmpty [20,0,0.5,100,0,false]; - if (_coords isEqualTo [] || !(_isFlat isEqualTo [])) then + if (_coords isEqualTo []) then { - { - //private _range = (_x select 1) * 0.7; - _x set[1,(_x select 1) * 0.75]; - } forEach _blackListedLocations; _count = _count - 1; + _slope = _slope + 0.02; + uiSleep 0.1; // to give the server a chance to handle other jobs for a moment + } else { + + //uiSleep 1; + _validspot = true; + + if (count _coords > 2) then { + _validspot = false; + }; + if(_validspot) then { + if ([_coords,500] call _fnc_nearWater) then { + _validspot = false; + }; + }; + if(_validspot) then { + _isflat = _coords isFlatEmpty [20,0,0.5,100,0,false]; + if (_isflat isequalto []) then { + _validspot = false; + }; + }; + if(_validspot) then { + { + if (_coords distance _x < blck_MinDistanceFromMission) exitwith { + _validspot = false; + }; + } foreach (blck_ActiveMissionCoords); + }; + + // Check for near Bases + if(_validspot) then { + if (blck_modType isEqualTo "Epoch") then { + { + if (_coords distance _x < blck_minDistanceToBases) exitwith { + _validspot = false; + }; + } foreach (missionnamespace getvariable ["Epoch_PlotPoles",[]]); + } + else { + if (blck_modType isEqualTo "Exile") then { + { + if (_coords distance _x < blck_minDistanceToBases) exitwith { + _validspot = false; + }; + } foreach (nearestObjects [blck_mapCenter, ["Exile_Construction_Flag_Static"], blck_mapRange + 25000]); + }; + }; + }; + + // Check for near Players + if(_validspot) then { + { + if (_coords distance _x < blck_minDistanceToPlayer) exitwith { + _validspot = false; + }; + } foreach allplayers; + }; + + // Check for near locations + if (_validspot) then { + { + if (_coords distance (_x select 0) < (_x select 1)) exitWith { + _validspot = false; + }; + } forEach blck_locationBlackList; + }; + + // Check for DMS missions + if (blck_minDistanceFromDMS > 0 && _validspot) then + { + { + if (_coords distance _x < blck_minDistanceFromDMS) exitWith { + _validspot = false; + }; + } forEach ([] call blck_fnc_getAllDMSMarkers); + }; + }; + //diag_log format["_fnc_findSafePosn: _coords = %1 | _flatCoords = %2 | _searchCenter = %3 | _angle %4 | _count = %5 | _validSpot = %6",_coords,_flatCoords,_searchCenter,_angle,_count,_validspot]; }; if (_coords isEqualTo []) then { - diag_log format["[blckeagls] Could not find a safe position for a mission, consider reducing values for minimum distances between missions and players, bases, other missions or towns"]; + ["Could not find a safe position for a mission, consider reducing values for minimum distances between missions and players, bases, other missions or towns","error"] call blck_fnc_log; +} else { + _coords set[2, 0]; + //diag_log format["_fnc_findSafePosn: _exit with _coords = %1 | time spent = %2",_coords,diag_tickTime - _timeIn]; }; + _coords diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_log.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_log.sqf new file mode 100644 index 0000000..351a898 --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_log.sqf @@ -0,0 +1,20 @@ +/* + 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/ +*/ + +params[["_message","Unknown Message"],["_code",""]]; + +switch (toLower _code) do +{ + case "error": {_message = format["[blckeagls] %1",_message]}; + case "warning": {_message = format["[blckeagls] %1",_message]}; + default {_message = format["[blckeagls] :: %1",_message]}; +}; +diag_log _message; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread.sqf index e2e03ac..a06d129 100644 --- a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread.sqf +++ b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread.sqf @@ -10,10 +10,10 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -private["_timer1sec","_timer5sec","_timer20sec","_timer5min","_timer5min"]; +private["_timer1sec","_timer5sec","_timer10Sec","_timer20sec","_timer5min","_timer5min"]; _timer1sec = diag_tickTime; _timer5sec = diag_tickTime; +_timer10Sec = diag_tickTime; _timer20sec = diag_tickTime; _timer1min = diag_tickTime; _timer5min = diag_tickTime; @@ -23,6 +23,7 @@ while {true} do uiSleep 1; if (diag_tickTime > _timer1sec) then { + [] spawn blck_fnc_monitorInitializedMissions; if (blck_showCountAliveAI) then { { @@ -36,12 +37,16 @@ while {true} do _timer5sec = diag_tickTime + 5; if (blck_simulationManager isEqualTo blck_useBlckeaglsSimulationManagement) then {[] call blck_fnc_simulationManager}; [] call blck_fnc_sm_staticPatrolMonitor; - [] call blck_fnc_vehicleMonitor; - + [] call blck_fnc_vehicleMonitor; #ifdef GRGserver [] call blck_fnc_broadcastServerFPS; #endif }; + if (diag_tickTime > _timer10Sec) then + { + [] call blck_fnc_spawnPendingMissions; + _timer10Sec = diag_tickTime; + }; if (diag_tickTime > _timer20sec) then { [] call blck_fnc_scanForPlayersNearVehicles; @@ -52,31 +57,26 @@ while {true} do if ((diag_tickTime > _timer1min)) then { _timer1min = diag_tickTime + 60; - [] call blck_fnc_spawnPendingMissions; - [] call blck_fnc_groupWaypointMonitor; - if (blck_dynamicUMS_MissionsRuning < blck_numberUnderwaterDynamicMissions) then {[] spawn blck_fnc_addDyanamicUMS_Mission}; + + [] call blck_fnc_groupWaypointMonitor; + [] call blck_fnc_cleanupAliveAI; + [] call blck_fnc_cleanupObjects; + [] call blck_fnc_cleanupDeadAI; if (blck_useHC) then {[] call blck_fnc_HC_passToHCs}; if (blck_useTimeAcceleration) then {[] call blck_fnc_timeAcceleration}; if (blck_ai_offload_to_client) then {[] call blck_fnc_ai_offloadToClients}; - #ifdef blck_debugMode - diag_log format["_fnc_mainThread: active scripts include: %1",diag_activeScripts]; - #endif }; if (diag_tickTime > _timer5min) then { - diag_log format["[blckeagls] Timstamp %8 |Dynamic Missions Running %1 | UMS Running %2 | Vehicles %3 | Groups %4 | Server FPS %5 | Server Uptime %6 Min | Missions Run %7",blck_missionsRunning,blck_dynamicUMS_MissionsRuning,count blck_monitoredVehicles,count blck_monitoredMissionAIGroups,diag_FPS,floor(diag_tickTime/60),blck_missionsRun, diag_tickTime]; - #ifdef blck_debugMode - /* - Syntax: - diag_activeSQFScripts - Return Value: - Array of Arrays - to format [[scriptName, fileName, isRunning, currentLine], ...]: - */ - - #endif - [] call blck_fnc_cleanupAliveAI; - [] call blck_fnc_cleanupObjects; - [] call blck_fnc_cleanupDeadAI; + [format["Timstamp %8 |Dynamic Missions Running %1 | UMS Running %2 | Vehicles %3 | Groups %4 | Server FPS %5 | Server Uptime %6 Min | Missions Run %7", + blck_missionsRunning, + blck_dynamicUMS_MissionsRuning, + count blck_monitoredVehicles, + count blck_monitoredMissionAIGroups, + diag_FPS,floor(diag_tickTime/60), + blck_missionsRun, + diag_tickTime] + ] call blck_fnc_log; [] call blck_fnc_cleanEmptyGroups; _timer5min = diag_tickTime + 300; }; diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_AIM.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_messagePlayers.sqf similarity index 85% rename from @GMS/addons/custom_server/Compiles/Functions/GMS_fnc_AIM.sqf rename to @GMS/addons/custom_server/Compiles/Functions/GMS_fnc_messagePlayers.sqf index 1a3c791..d8a85c4 100644 --- a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_AIM.sqf +++ b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_messagePlayers.sqf @@ -12,7 +12,6 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; if !(isServer) exitWith {}; params["_msg",["_players",allplayers]]; -//diag_log format["AIM.sqf ===] _this = %1 | _msg = %2 | _players = %3",_this,_msg, _players]; { if (isPlayer _x) then {_msg remoteExec["fn_handleMessage",(owner _x)]}; diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_randomPosn.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_randomPosn.sqf index fdd23f3..fbd93ad 100644 --- a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_randomPosn.sqf +++ b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_randomPosn.sqf @@ -15,6 +15,7 @@ private["_newX","_newY"]; params["_pos","_range"]; + _newX = ((_pos select 0) + (random(_range)) * (selectRandom [1,-1])); _newY = ((_pos select 1) + (random(_range)) * (selectRandom [1,-1])); diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_setDirUp.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_setDirUp.sqf new file mode 100644 index 0000000..49c53c1 --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_setDirUp.sqf @@ -0,0 +1,7 @@ + +params["_object","_dir"]; +switch (typeName _dir) do +{ + case "SCALAR": {_object setDir _dir}; + case "ARRAY": {_object setVectorDirAndUp _dir}; +}; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_timedOut.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_timedOut.sqf deleted file mode 100644 index c95f910..0000000 --- a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_timedOut.sqf +++ /dev/null @@ -1,20 +0,0 @@ -////////////////////////////////////////////////////// -// test if a timeout condition exists. -// [_startTime] call blck_fnc_timedOut -// Returns true (timed out) or false (not timed out) -/* - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -///////////////////////////////////////////////////// - -params["_startTime",["_timeoutTime",blck_MissionTimeout]]; -private _return = if ((diag_tickTime - _startTime) > _timeoutTime) then {true} else {false}; -_return diff --git a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_antiStickGroupy.sqf b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_antiStickGroupy.sqf index d426561..31987f2 100644 --- a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_antiStickGroupy.sqf +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_antiStickGroupy.sqf @@ -14,9 +14,7 @@ // TODO: used for 'unstuck' cases */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -#ifdef blck_debugMode -diag_log "_fnc_changeToMoveWaypoint: blck_debugMode enabled"; -#endif + private["_group","_wp","_wpPos","_dis","_arc","_dir","_newPos","_marker","_center","_minDis","_maxDis"]; _group = group _this; @@ -49,23 +47,7 @@ _wp setWaypointLoiterRadius (_group getVariable["wpRadius",30]); _wp setWaypointLoiterType "CIRCLE"; _wp setWaypointSpeed "LIMITED"; _group setCurrentWaypoint _wp; -diag_log format["_fnc_changeToMoveWaypoint:: -- >> group to update is %1 and new Waypoint position is %2",_group, getWPPos _wp]; -#ifdef blck_debugMode -if (blck_debugLevel > 2) then -{ - diag_log format["_fnc_changeToMoveWaypoint (4/25/17): _this = %1", _this]; - diag_log format["_fnc_changeToMoveWaypoint: typeName _this = %1", typeName _this]; - diag_log format["_fnc_changeToMoveWaypoint:_group = %1",_group]; - diag_log format["_fnc_changeToMoveWaypoint:_group timestamp updated to %1", _group getVariable "timeStamp"]; - diag_log format["_fnc_changeToMoveWaypoint:: -- >> wpMode %1 _dir %2 _dis %3 _center %4",_group getVariable["wpMode","random"], _dir, _dis,_center]; - diag_log format["_fnc_changeToMoveWaypoint:: -- >> group to update is %1 and new position is %2",_group, _newPos]; - diag_log format["_fnc_changeToMoveWaypoint:: -- >> group to update is %1 and new Waypoint position is %2",_group, getWPPos _wp]; - diag_log format["_fnc_changeToMoveWaypoint:_group %1 basic waypoint parameters updates", _group getVariable "timeStamp"]; - _marker =_group getVariable["wpMarker",""]; - _marker setMarkerColor "ColorBlue"; - diag_log format["_fnc_changeToMoveWaypoint:: -- >> Waypoint marker for group %1 have been configured as %2",_group, _group getVariable "wpMarker"]; -}; -#endif + if (_group getVariable["wpPatrolMode",""] isEqualTo "SAD") then { #ifdef blck_debugMode diff --git a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_checkGroupWaypointStatus.sqf b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_checkGroupWaypointStatus.sqf index b98f930..f605f00 100644 --- a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_checkGroupWaypointStatus.sqf +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_checkGroupWaypointStatus.sqf @@ -17,7 +17,4 @@ params["_group","_maxTime","_radius"]; if (diag_tickTime > (_group getVariable "timeStamp") + _maxTime) then // || ( (getPos (leader)) distance2d (_group getVariable "patrolCenter") > _radius)) then { (leader _group) call blck_fnc_setNextWaypoint; - #ifdef blck_debugMode - if (blck_debugLevel > 1) then {diag_log format["_fnc_checkGroupWaypointStatus: group %1 stuck, waypoint reset",_group];}; - #endif }; diff --git a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_cleanEmptyGroups.sqf b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_cleanEmptyGroups.sqf index 9c8868f..0418eac 100644 --- a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_cleanEmptyGroups.sqf +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_cleanEmptyGroups.sqf @@ -9,7 +9,7 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -//diag_log format["_fnc_cleanEmptyGroups: count blck_monitoredMissionAIGroups = %1",count blck_monitoredMissionAIGroups]; + for "_i" from 0 to ((count blck_monitoredMissionAIGroups) - 1) do { if (_i >= (count blck_monitoredMissionAIGroups)) exitWith {}; diff --git a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_groupWaypointMonitor.sqf b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_groupWaypointMonitor.sqf index 3afc8d6..7cf0259 100644 --- a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_groupWaypointMonitor.sqf +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_groupWaypointMonitor.sqf @@ -22,26 +22,17 @@ _fn_waypointComplete = { private _done = if (currentWaypoint _group) > (count (waypoints _group)) then {true} else {false}; _done }; -//diag_log format["_fnc_groupWaypointMonitor called at %1 with %2 groups to monitor",diag_tickTime,count blck_monitoredMissionAIGroups]; + { private["_timeStamp","_index","_unit","_soldierType"]; if ( !(_x isEqualTo grpNull) && ({alive _x} count (units _x) > 0) ) then { - /* - #define blck_turnBackRadiusInfantry 800 - #define blck_turnBackRadiusVehicles 1000 - #define blck_turnBackRadiusHelis 1000 - #define blck_turnBackRadiusJets 1500 - */ - //diag_log format["_fn_monitorGroupWaypoints - radii: on foot %1 | vehicle %2 | heli %3 | jet %4",blck_turnBackRadiusInfantry,blck_turnBackRadiusVehicles,blck_turnBackRadiusHelis,blck_turnBackRadiusJets]; _timeStamp = _x getVariable ["timeStamp",0]; if (_timeStamp isEqualTo 0) then { _x setVariable["timeStamp",diag_tickTime]; - //diag_log format["_fn_monitorGroupWaypoints::--> updating timestamp for group %1 at time %2",_x,diag_tickTime]; }; _soldierType = _x getVariable["soldierType","null"]; - //diag_log format["_fn_monitorGroupWaypoints::--> soldierType for group %1 = %2 and timeStamp = %3",_x,_soldierType,_timeStamp]; switch (_soldierType) do { case "infantry": {[_x, 60] call blck_fnc_checkgroupwaypointstatus;}; @@ -49,6 +40,5 @@ _fn_waypointComplete = { case "aircraft": {[_x, 90, 1000] call blck_fnc_checkgroupwaypointstatus;}; }; }; - //private _updateNeeded = if (diag_tickTime > (_x getVariable "timeStamp") + 60) then } forEach blck_monitoredMissionAIGroups; diff --git a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_setNextWaypoint.sqf b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_setNextWaypoint.sqf index 5b4ecf7..df42a2b 100644 --- a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_setNextWaypoint.sqf +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_setNextWaypoint.sqf @@ -25,15 +25,11 @@ private _leader = _this; private _pos = _group getVariable "patrolCenter"; // Center of the area to be patroleld. private _minDis = _group getVariable "minDis"; // minimum distance between waypoints private _maxDis = _group getVariable "maxDis"; // maximum distance between waypoints -// _group getVariable "timeStamp"; // used to check that waypoints are being completed -//private _wpRadisu _group getVariable "wpRadius"; // Always set to 0 to force groups to move a bit private _patrolRadius = _group getVariable "patrolRadius"; // radius of the area to be patrolled private _wpMode = _group getVariable "wpMode"; // The default mode used when the waypoint becomes active https://community.bistudio.com/wiki/AI_Behaviour -//_group getVariable "wpPatrolMode"; // Not used; the idea is to allow two algorythms: randomly select waypoints so groups move back and forth along the perimiter of the patrool area or sequenctioal, hoping along the perimeter private _wpTimeout = _group getVariable "wpTimeout"; // Here to alow you to have the game engine pause before advancing to the next waypoing. a timout of 10-20 sec is recommended for infantry and land vehicles, and 1 sec for aircraft private _wpDir = _group getVariable "wpDir"; // Used to note the degrees along the circumference of the patrol area at which the last waypoint was positioned. private _arc = _group getVariable "wpArc"; // Increment in degrees to be used when advancing the position of the patrol to the next position along the patrol perimeter -//_group getVariable "soldierType"; // infantry, vehicle, air or emplaced. Note that there is no need to have more than one waypoint for emplaced units. private _wp = [_group,0]; private _nearestEnemy = _leader findNearestEnemy (getPosATL _leader); private _maxTime = _group getVariable["maxTime",300]; diff --git a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_simulationMonitor.sqf b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_simulationMonitor.sqf index ba4d1f3..e42c397 100644 --- a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_simulationMonitor.sqf +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_simulationMonitor.sqf @@ -11,10 +11,7 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -if (blck_simulationManager isEqualTo blck_simulationManagementOff) exitWith -{ - //diag_log format["_fnc_simulationMonitor: monitoring disabled at %1",diag_tickTime]; -}; +if (blck_simulationManager isEqualTo blck_simulationManagementOff) exitWith {}; if (blck_simulationManager isEqualTo blck_useDynamicSimulationManagement) exitWith { @@ -31,7 +28,7 @@ if (blck_simulationManager isEqualTo blck_useDynamicSimulationManagement) exitWi if (blck_simulationManager isEqualTo blck_useBlckeaglsSimulationManager) then { - //diag_log format["_fnc_simulationMonitor: evaluating simulation using blckeagls code"]; + { private _group = _x; private _nearplayer = [position (leader _group),blck_simulationEnabledDistance] call blck_fnc_nearestPlayers; @@ -43,19 +40,16 @@ if (blck_simulationManager isEqualTo blck_useBlckeaglsSimulationManager) then _x enableSimulationGlobal true; _x reveal [(_nearplayer select 0),(_group knowsAbout (_nearPlayer select 0)) + 0.001]; // Force simulation on }forEach units _group; - //diag_log format["_fnc_simulationMonitor: (44) enabling simulation for group %1",_group]; }; }else{ if (simulationEnabled (leader _group)) then { - {_x enableSimulationGlobal false} forEach units _group; - //diag_log format["_fnc_simulationMonitor: (50) disabling simulation for group %1",_group]; + {_x enableSimulationGlobal false} forEach units _group; }; }; } forEach blck_monitoredMissionAIGroups; { - // diag_log format["_fnc_simulationManager: _x = %1 | blck_graveyardGroup = %2",_x, units blck_graveyardGroup]; // disable simulation once players have left the area. private _nearPlayers = [position (_x),blck_simulationEnabledDistance] call blck_fnc_nearestPlayers; if (simulationEnabled _x) then @@ -63,13 +57,11 @@ if (blck_simulationManager isEqualTo blck_useBlckeaglsSimulationManager) then if (_nearPlayers isEqualTo []) then { _x enableSimulationGlobal false; - //diag_log format["_fnc_simulationMonior: simulation for unit %1 set to FALSE",_unit]; }; } else { if !(_nearPlayers isEqualTo []) then { - _x enableSimulationGlobal true; - //diag_log format["_fnc_simulationMonior: simulation for unit %1 set to TRUE",_unit]; + _x enableSimulationGlobal true; }; }; } forEach units blck_graveyardGroup; diff --git a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_spawnGroup.sqf b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_spawnGroup.sqf index edfba48..51c485c 100644 --- a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_spawnGroup.sqf +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_spawnGroup.sqf @@ -16,8 +16,6 @@ private["_numbertospawn","_safepos","_launcherType","_infantryType"]; params[["_group","Error"],"_pos", "_center", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], ["_minDist",30], ["_maxDist",45],["_configureWaypoints",true], ["_uniforms",[]], ["_headGear",[]],["_vests",[]],["_backpacks",[]],["_weaponList",[]],["_sideArms",[]], ["_scuba",false],["_patrolRadius",30]]; - - if (_weaponList isEqualTo []) then {_weaponList = [_skillLevel] call blck_fnc_selectAILoadout}; if (_sideArms isEqualTo []) then {_sideArms = [_skillLevel] call blck_fnc_selectAISidearms}; if (_uniforms isEqualTo []) then {_uniforms = [_skillLevel] call blck_fnc_selectAIUniforms}; @@ -45,17 +43,13 @@ if !(isNull _group) then _launcherType = "none"; }; private _unitPos = [_pos,3,6] call blck_fnc_findRandomLocationWithinCircle; - [_unitPos,_group,_skillLevel,_uniforms,_headGear,_vests,_backpacks,_launcherType, _weaponList, _sideArms, _scuba] call blck_fnc_spawnUnit; - //diag_log format["_fnc_spawnGroup: _unit %1 spawned at %2 at a distance from the group center of %3 and _vector of %4",_unit,_unitPos,_unitPos distance _pos,_pos getRelDir _unitPos]; }; _group selectLeader ((units _group) select 0); - if (_configureWaypoints) then { if (_scuba) then {_infantryType = "scuba"} else {_infantryType = "infantry"}; - #define infantryPatrolRadius 30 #define infantryWaypointTimeout [5,7.5,10] [_pos,_minDist,_maxDist,_group,"random","SAD",_infantryType,_patrolRadius,infantryWaypointTimeout] spawn blck_fnc_setupWaypoints; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_addItemToCrate.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_addItemToCrate.sqf index 7824516..df74fc3 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_addItemToCrate.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_addItemToCrate.sqf @@ -25,7 +25,7 @@ _isMagazine = false; _isBackpack = false; _quant = 0; - //diag_log format["_fn_addItemToCrate:: -- >> itemInfor = %1",_itemInfo]; + if (typeName _itemInfo isEqualTo "STRING") then {_item = _itemInfo; _quant = 1}; // case where only the item descriptor was provided if (typeName _itemInfo isEqualTo "ARRAY") then { diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_addMIssionToQue copy.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_addMIssionToQue copy.sqf deleted file mode 100644 index 9d8a1ba..0000000 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_addMIssionToQue copy.sqf +++ /dev/null @@ -1,50 +0,0 @@ -/* - Adds the basic list of parameters that define a mission such as the marker name, mission list, mission path, AI difficulty, and timer settings, to the arrays that the main thread inspects. - - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -params[ - "_missionList", // list of missions to be used for that category (blue, red, gree, orange, etc) - "_path", // path to the folder with the mission.sqf's - "_marker", // a root name for markers used in the mission - "_difficulty", - "_tMin", - "_tMax", - ["_noMissions",1] -]; - -//{diag_log format["_fnc_addMissionToCue: _this %1 = %2",_forEachIndex,_x]} forEach _this; -private["_compiledMission","_compiledMissionsList"]; - - - private _waitTime = diag_tickTime + (_tMin) + random((_tMax) - (_tMin)); - private _missionsData = []; // Parameters definine each of the missions for this difficulty are stored as arrays here. - { - private _missionFile = format["\q\addons\custom_server\Missions\%1\%2.sqf",_path,_x]; - private _missionCode = compileFinal preprocessFileLinenumbers _missionFile;//return all of the values that define how the mission is spawned as an array of values. - private _data = [] call _missionCode; - _missionsData pushBack _data; - } forEach _missionList; - - private _missionCategoryDescriptors = [ - _difficulty, - _noMissions, // Max no missions of this category - 0, // Number active - _tMin, // Used to calculate waittime in the future - _tMax, // as above - _waitTime, // time at which a mission should be spawned - _missionsData // - ]; - - blck_missionData pushBack _missionCategoryDescriptors; - diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_addMIssionToQue.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_addMIssionToQue.sqf index 5d03d6b..b245575 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_addMIssionToQue.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_addMIssionToQue.sqf @@ -12,30 +12,42 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -//params["_missionList","_compiledMission","_compiledMissionsList","_waitTime","_mission","_path","_marker","_difficulty","_tMin","_tMax",["_noMissions",1]]; params["_missionList","_path","_marker","_difficulty","_tMin","_tMax",["_noMissions",1]]; -private["_compiledMission","_compiledMissionsList"]; -_compiledMissionsList = []; -for "_i" from 1 to _noMissions do +if (blck_debugLevel >= 3) then { - _waitTime = diag_tickTime + (_tMin) + random((_tMax) - (_tMin)); - // 0 1 2 3 4 5 6 7 8 - //_mission = [_missionList,_path,format["%1%2",_marker,_i],_difficulty,_tMin,_tMax,_waitTime,[0,0,0],_allowReinforcements]; { - //diag_log format["_fnc_addMissionToQue: _x = %1",_x]; - _compiledMission = compilefinal preprocessFileLineNumbers format["\q\addons\custom_server\Missions\%1\%2.sqf",_path,_x]; - _compiledMissionsList pushBack _compiledMission; - }forEach _missionList; - _mission = [_compiledMissionsList,format["%1%2",_marker,_i],_difficulty,_tMin,_tMax,_waitTime,[0,0,0]]; - #ifdef blck_debugMode - if (blck_debugLevel >= 2) then { - diag_log format["-fnc_addMissionToQue::-->> _mission = %1",[/*_mission select 0, */_mission select 1, _mission select 2, _mission select 3, _mission select 4, _mission select 5, _mission select 6]]; - }; - #endif - //diag_log format["-fnc_addMissionToQue::-->> _mission = %1",[ _mission select 1, _mission select 2, _mission select 3, _mission select 4, _mission select 5, _mission select 6]]; - blck_pendingMissions pushback _mission; + diag_log format["_addMissionToQue: _this %1 = %2",_forEachIndex, _this select _forEachIndex]; + } forEach _this; }; +private _waitTime = diag_tickTime + (_tMin) + random((_tMax) - (_tMin)); +private _missionsData = []; // Parameters definine each of the missions for this difficulty are stored as arrays here. +{ + private _missionFile = format["\q\addons\custom_server\Missions\%1\%2.sqf",_path,_x]; + private _missionCode = compileFinal preprocessFileLinenumbers _missionFile;//return all of the values that define how the mission is spawned as an array of values + if !(isNil "_missionCode") then + { + private _data = [_marker,_difficulty] call _missionCode; + if !(isNil "_data") then + { + _missionsData pushBack _data; + }; + } else { + diag_log format["bad path\mission combination %1",_missionFile]; + }; +} forEach _missionList; + +private _missionCategoryDescriptors = [ + _difficulty, + _noMissions, // Max no missions of this category + 0, // Number active + _tMin, // Used to calculate waittime in the future + _tMax, // as above + _waitTime, // time at which a mission should be spawned + _missionsData // +]; + +blck_missionData pushBack _missionCategoryDescriptors; + + + -#ifdef blck_debugMode -if (blck_debugLevel >= 4) then {diag_log format["_fnc_addMissionToQue:: -- >> Result - blck_pendingMissions = %1",blck_pendingMissions];}; -#endif \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_cleanUpObjects.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_cleanUpObjects.sqf index 887836f..9e85083 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_cleanUpObjects.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_cleanUpObjects.sqf @@ -16,8 +16,6 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -//diag_log format["_fnc_cleanUpObjects: time %1 | count blck_oldMissionObjects %2",diag_tickTime,count blck_oldMissionObjects]; - for "_i" from 1 to (count blck_oldMissionObjects) do { if (_i <= count blck_oldMissionObjects) then { private _oldObjs = blck_oldMissionObjects deleteAt 0; @@ -27,7 +25,6 @@ for "_i" from 1 to (count blck_oldMissionObjects) do { private _nearplayer = [_missionCenter,800] call blck_fnc_nearestPlayers; if (_nearPlayer isEqualTo []) then { - //diag_log format["_fnc_cleanUpObjects: _nearPlayer = %1 | _missionCenter = %2 | _objarr = %3",_nearplayer,_missionCenter,_objarr]; {deleteVehicle _x}forEach _objarr; } else { blck_oldMissionObjects pushback _oldObjs; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_clearMines.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_clearMines.sqf index 4f4c72c..8b59408 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_clearMines.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_clearMines.sqf @@ -14,8 +14,7 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; params ["_mines"]; -//_mines = _this select 0; // array containing the mines to be deleted -//diag_log format["deleting %1 mines----- >>>> ", count _mines]; + { deleteVehicle _x; } forEach _mines; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_crateMoved.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_crateMoved.sqf index b0b0d0e..ecd009e 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_crateMoved.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_crateMoved.sqf @@ -13,5 +13,4 @@ params["_crate"]; private _result = if ((_crate distance (_crate getVariable["crateSpawnPos",[0,0,0]])) > 10) then {true} else {false}; -//diag_log format["_fn_crateMoved:: _crate %1 | crateSpawnPos %2 | _result = %3",_crate,_result]; _result; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_endMission.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_endMission.sqf index f1c45c4..bcddd0f 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_endMission.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_endMission.sqf @@ -13,12 +13,10 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp" -private["_cleanupAliveAITimer","_cleanupCompositionTimer","_isScubaMission"]; _fn_missionCleanup = { params["_coords","_mines","_objects","_blck_AllMissionAI","_markerName","_cleanupAliveAITimer","_cleanupCompositionTimer",["_isScubaMission",false]]; [_mines] call blck_fnc_clearMines; - //[_coords,_objects, _cleanupCompositionTimer] call blck_fnc_addObjToQue; blck_oldMissionObjects pushback [_coords,_objects, (diag_tickTime + _cleanupCompositionTimer)]; blck_liveMissionAI pushback [_coords,_blck_AllMissionAI, (diag_tickTime + _cleanupAliveAITimer)]; blck_missionsRunning = blck_missionsRunning - 1; @@ -55,68 +53,90 @@ params[ ["_vehicles",[]], ["_isScubaMission",false] ]; -/* -private _param = ["_coords","_mines","_objects","_crates","_blck_AllMissionAI","_endMsg","_markers","_markerPos","_markerName","_markerLabel","_endCondition","_vehicles","_isScubaMission"]; -{ - diag_log format["_fnc_endMission: parameter %1 named %2 = %3",_forEachIndex,_param select _forEachIndex,_x]; -} forEach _this; -*/ + { [_x] call blck_fnc_deleteMarker; }forEach (_markers); - -if (_endCondition > 0) exitWith // Mision aborted for some reason -{ - #define cleanupCompositionTimer 0 - #define cleanupAliveAITimer 0 - // params["_coords","_mines","_objects","_blck_AllMissionAI","_markerName","_cleanupAliveAITimer","_cleanupCompositionTimer",["_isScubaMission",false]]; - [_coords,_mines,_objects,_blck_AllMissionAI,_markerName,cleanupAliveAITimer,cleanupCompositionTimer,_isScubaMission] call _fn_missionCleanup; - /* - { - if (local _x) then {deleteVehicle _x}; - }forEach _crates; - */ - { - if (local _x) then {deleteVehicle _x}; - }forEach _vehicles; -}; -if (_endCondition <= 0) then // Normal Mission End State +switch (_endCondition) do { + case -1: { + #define cleanupCompositionTimer 0 + #define cleanupAliveAITimer 0 + + { + if (local _x) then {deleteVehicle _x}; + }forEach _crates; - - if (blck_useSignalEnd) then - { - [_crates select 0] spawn blck_fnc_signalEnd; - { - _x enableRopeAttach true; - }forEach _crates; + [_coords,_mines,_objects,_blck_AllMissionAI,_markerName,cleanupAliveAITimer,cleanupCompositionTimer,_isScubaMission] call _fn_missionCleanup; + [format["Mission | _coords %1 : _markerClass %2 : _markerMissionName %3",_coords,_markerName,_markerLabel]] call blck_fnc_log; }; - diag_log format["_fnc_endMission (93) _endMsg = %1 | _markerLabel = %2",_endMsg,_markerLabel]; - if (_endCondition == 0) then {[["end",_endMsg,_markerLabel]] call blck_fnc_messageplayers;}; - if (_endCondition == -1) then {[["warning",_endMsg,_markerLabel]] call blck_fnc_messageplayers;}; - [_markerPos, _markerName] spawn blck_fnc_missionCompleteMarker; - { - if !(_x getVariable["lootLoaded",false] || _endCondition == 1) then // dont load loot if the asset was killed - { + case 1: { // Normal End + if (blck_useSignalEnd) then + { + [_crates select 0] spawn blck_fnc_signalEnd; + { + _x enableRopeAttach true; + }forEach _crates; + }; + + [["end",_endMsg,_markerLabel]] call blck_fnc_messageplayers; - [_x,_crateLoot,_lootCounts] call blck_fnc_fillBoxes; - }; - }forEach _crates; + [_markerPos, _markerName] spawn blck_fnc_missionCompleteMarker; + { + if !(_x getVariable["lootLoaded",false] || _endCondition == 1) then // dont load loot if the asset was killed + { + [_x,_crateLoot,_lootCounts] call blck_fnc_fillBoxes; + }; + }forEach _crates; - { - private ["_v","_posnVeh"]; - _posnVeh = blck_monitoredVehicles find _x; // returns -1 if the vehicle is not in the array else returns 0-(count blck_monitoredVehicles -1) - if (_posnVeh >= 0) then - { - (blck_monitoredVehicles select _posnVeh) setVariable ["missionCompleted", diag_tickTime]; - } else { - _x setVariable ["missionCompleted", diag_tickTime]; - blck_monitoredVehicles pushback _x; - }; - } forEach _vehicles; - // params["_coords","_mines","_objects","_blck_AllMissionAI","_markerName","_cleanupAliveAITimer","_cleanupCompositionTimer",["_isScubaMission",false]]; - [_coords,_mines,_objects,_blck_AllMissionAI,_markerName,blck_AliveAICleanUpTimer,blck_cleanupCompositionTimer,_isScubaMission] call _fn_missionCleanup; + { + private ["_v","_posnVeh"]; + _posnVeh = blck_monitoredVehicles find _x; // returns -1 if the vehicle is not in the array else returns 0-(count blck_monitoredVehicles -1) + if (_posnVeh >= 0) then + { + (blck_monitoredVehicles select _posnVeh) setVariable ["missionCompleted", diag_tickTime]; + } else { + _x setVariable ["missionCompleted", diag_tickTime]; + blck_monitoredVehicles pushback _x; + }; + } forEach _vehicles; + + [_coords,_mines,_objects,_blck_AllMissionAI,_markerName,blck_AliveAICleanUpTimer,blck_cleanupCompositionTimer,_isScubaMission] call _fn_missionCleanup; + [format["Mission Completed | _coords %1 : _markerClass %2 : _markerMissionName %3",_coords,_markerName,_markerLabel]] call blck_fnc_log; + }; + case 2: { // Aborted for moving a crate + + { + if ( _x distance (_x getVariable ["crateSpawnPos", (getPos _x)]) > max_distance_crate_moved_uncompleted_mission)then {deleteVehicle _x}; + } forEach _crates; + #define illegalCrateMoveMsg "Crate moved before mission completed" + [["warming",illegalCrateMoveMsg,_markerLabel]] call blck_fnc_messageplayers; + [_coords,_mines,_objects,_blck_AllMissionAI,_markerName,cleanupAliveAITimer,cleanupCompositionTimer,_isScubaMission] call _fn_missionCleanup; + [format["Mission Aborted | _coords %1 : _markerClass %2 : _markerMissionName %3",_coords,_markerName,_markerLabel]] call blck_fnc_log; + }; + case 3: { // Mision aborted for killing an asset + #define cleanupCompositionTimer 0 + #define cleanupAliveAITimer 0 + + { + if (local _x) then {deleteVehicle _x}; + }forEach _crates; + [["warning",_endMsg,_markerLabel]] call blck_fnc_messageplayers; + [_coords,_mines,_objects,_blck_AllMissionAI,_markerName,cleanupAliveAITimer,cleanupCompositionTimer,_isScubaMission] call _fn_missionCleanup; + [format["Mission Aborted | _coords %1 : _markerClass %2 : _markerMissionName %3",_coords,_markerName,_markerLabel]] call blck_fnc_log; + + }; + case 4: { + #define cleanupCompositionTimer 0 + #define cleanupAliveAITimer 0 + + { + if (local _x) then {deleteVehicle _x}; + }forEach _crates; + + [_coords,_mines,_objects,_blck_AllMissionAI,_markerName,cleanupAliveAITimer,cleanupCompositionTimer,_isScubaMission] call _fn_missionCleanup; + }; }; - _endCondition +blck_missionsRun = blck_missionsRun + 1; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_fillBoxes.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_fillBoxes.sqf index 02d4ccc..8d06a6c 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_fillBoxes.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_fillBoxes.sqf @@ -14,25 +14,19 @@ private["_a1","_item","_diff","_tries"]; params["_crate","_boxLoot","_itemCnts"]; - //diag_log format["_fnc_fillBoxes: _this = %1",_this]; - #ifdef blck_debugMode - { - diag_log format["_fnc_fillBoxes: _this select %1 = %2",_foreachindex, _this select _foreachindex]; - }foreach _this; - #endif + _itemCnts params["_wepCnt","_magCnt","_opticsCnt","_materialsCnt","_itemCnt","_bkcPckCnt"]; _boxLoot params["_weapons","_magazines","_optics","_materials","_items","_backpacks"]; - //diag_log format["_fnc_fillBoxes: _weapons = %1",_weapons]; if !(_weapons isEqualTo []) then { _tries = [_wepCnt] call blck_fnc_getNumberFromRange; - //diag_log format["_fnc_fillBoxes (31): loading %1 weapons",_tries]; + // Add some randomly selected weapons and corresponding magazines for "_i" from 0 to (_tries - 1) do { _item = selectRandom _weapons; - //diag_log format["_fnc_fillBoxes with weapons: _item = %1",_item]; + if (typeName _item isEqualTo "ARRAY") then // Check whether weapon name is part of an array that might also specify an ammo to use { _crate addWeaponCargoGlobal [_item select 0,1]; // if yes then assume the first element in the array is the weapon name @@ -51,16 +45,15 @@ }; }; - //diag_log format["_fnc_fillBoxes: _magazines = %1",_magazines]; if !(_magazines isEqualTo []) then { _tries = [_magCnt] call blck_fnc_getNumberFromRange; - //diag_log format["_fnc_fillBoxes (26): loading %1 magazines",_tries]; + // Add Magazines, grenades, and 40mm GL shells for "_i" from 0 to (_tries - 1) do { _item = selectRandom _magazines; - //diag_log format["_fnc_fillBoxes with magazines: _item = %1",_item]; + if (typeName _item isEqualTo "ARRAY") then { _diff = (_item select 2) - (_item select 1); // Take difference between max and min number of items to load and randomize based on this value @@ -73,16 +66,15 @@ }; }; - //diag_log format["_fnc_fillBoxes: _optics = %1",_optics]; if !(_optics isEqualTo []) then { _tries = [_opticsCnt] call blck_fnc_getNumberFromRange; - //diag_log format["_fnc_fillBoxes (72): loading %1 optics",_tries]; + // Add Optics for "_i" from 0 to (_tries - 1) do { _item = selectRandom _optics; - //diag_log format["_fnc_fillBoxes with optics: _item = %1",_item]; + if (typeName _item isEqualTo "ARRAY") then { _diff = (_item select 2) - (_item select 1); @@ -95,16 +87,15 @@ }; }; - //diag_log format["_fnc_fillBoxes: _materials = %1",_materials]; if !(_materials isEqualTo []) then { _tries = [_materialsCnt] call blck_fnc_getNumberFromRange; - //diag_log format["_fnc_fillBoxes (92): loading %1 materials",_materialsCnt]; + // Add materials (cindar, mortar, electrical parts etc) for "_i" from 0 to (_tries - 1) do { _item = selectRandom _materials; - //diag_log format["_fnc_fillBoxes with materials: _item = %1",_item]; + if (typeName _item isEqualTo "ARRAY") then { _diff = (_item select 2) - (_item select 1); @@ -117,16 +108,14 @@ }; }; - //diag_log format["_fnc_fillBoxes: _items = %1",_items]; if !(_items isEqualTo []) then { _tries = [_itemCnt] call blck_fnc_getNumberFromRange; - //diag_log format["_fnc_fillBoxes (112): loading %1 items",_itemCnt]; + // Add Items (first aid kits, multitool bits, vehicle repair kits, food and drinks) for "_i" from 0 to (_tries - 1) do { _item = selectRandom _items; - //diag_log format["_fnc_fillBoxes with items: _item = %1",_item]; if (typeName _item isEqualTo "ARRAY") then { _diff = (_item select 2) - (_item select 1); @@ -139,15 +128,13 @@ }; }; - //diag_log format["_fnc_fillBoxes: _backpacks = %1",_backpacks]; if !(_backpacks isEqualTo []) then { _tries = [_bkcPckCnt] call blck_fnc_getNumberFromRange; - //diag_log format["_fnc_fillBoxes (132): loading %1 backpacks",_tries]; for "_i" from 0 to (_tries - 1) do { _item = selectRandom _backpacks; - //diag_log format["_fnc_fillBoxes with backpacks: _item = %1",_item]; + if (typeName _item isEqualTo "ARRAY") then { _diff = (_item select 2) - (_item select 1); @@ -159,6 +146,3 @@ }; }; }; - //diag_log "_fnc_fillBoxes "; - //diag_log format["testCrateLoading: crate inventory = %1",getItemCargo _crate]; - //diag_log "_fnc_fillBoxes "; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_garrisonBuilding_ATLsystem.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_garrisonBuilding_ATLsystem.sqf index 49c86f6..b7daa0c 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_garrisonBuilding_ATLsystem.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_garrisonBuilding_ATLsystem.sqf @@ -28,12 +28,6 @@ if (_headGear isEqualTo []) then {_headGear = [_aiDifficultyLevel] call blck_f if (_vests isEqualTo []) then {_vests = [_aiDifficultyLevel] call blck_fnc_selectAIVests}; if (_backpacks isEqualTo []) then {_backpacks = [_aiDifficultyLevel] call blck_fnc_selectAIBackpacks}; -/* -{ - diag_log format["_fnc_garrisonBuilding_ATLsystem: _this %1 = %2",_forEachIndex,_this select _forEachIndex]; -}forEach _this; -*/ - private["_group","_buildingsSpawned","_staticsSpawned","_g","_building","_return"]; _buildingsSpawned = []; _staticsSpawned = []; @@ -41,25 +35,15 @@ _group = [blck_AI_Side,true] call blck_fnc_createGroup; if !(isNull _group) then { { - _g = _x; - /* - { - diag_log format["_g %1 = %2",_forEachIndex,_g select _forEachIndex]; - }forEach _g; - */ - // ["Land_Unfinished_Building_02_F",[-28.3966,34.8145,-0.00268841],0,true,true,[["B_HMG_01_high_F",[-5.76953,1.16504,7.21168],360]],[]], + _g = _x; _x params["_bldClassName","_bldRelPos","_bldDir","_s","_d","_statics","_men"]; - //diag_log format["_bldClassName = %1 | _bldRelPos = %2 | _bldDir = %3",_bldClassName,_bldRelPos,_bldDir]; _building = createVehicle[_bldClassName,[0,0,0],[],0,"CAN_COLLIDE"]; _building setPosATL (_bldRelPos vectorAdd _center); _building setDir _bldDir; _buildingsSpawned pushBack _building; - // params["_building","_group","_statics","_men",["_aiDifficultyLevel","Red"], ["_uniforms",[]],["_headGear",[]],["_vests",[]],["_backpacks",[]],["_launcher","none"],["_weaponList",[]],["_sideArms",[]]]; _staticsSpawned = [_building,_group,_statics,_men,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,"none",_weaponList,_sideArms] call blck_fnc_spawnGarrisonInsideBuilding_ATL; }forEach _garrisonedBuilding_ATLsystem; }; -//{ - //diag_log format["__fnc_garrisonBuilding_ATLsystem: %2 = %1",_x select 1, _x select 0]; -//}forEach [ [_buildingsSpawned,"Buildings"],[_staticsSpawned,"Statics"]]; + _return = [_group,_buildingsSpawned,_staticsSpawned]; _return diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_garrisonBuilding_relPosSystem.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_garrisonBuilding_relPosSystem.sqf index 64aca66..a35c1e6 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_garrisonBuilding_relPosSystem.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_garrisonBuilding_relPosSystem.sqf @@ -11,7 +11,8 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -params["_center","_garrisonedBuilding_relPosSystem", +params["_center", + "_garrisonedBuilding_relPosSystem", ["_aiDifficultyLevel","Red"], ["_uniforms",[]], ["_headGear",[]], @@ -20,11 +21,7 @@ params["_center","_garrisonedBuilding_relPosSystem", ["_weaponList",[]], ["_sideArms",[]] ]; -/* -{ - diag_log format["_fnc_garrisonBuilding_relPosSystem: _this %1 = %2",_forEachIndex,_this select _forEachIndex]; -}forEach _this; -*/ + if (_weaponList isEqualTo []) then {_weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout}; if (_sideArms isEqualTo []) then {_sideArms = [_aiDifficultyLevel] call blck_fnc_selectAISidearms}; if (_uniforms isEqualTo []) then {_uniforms = [_aiDifficultyLevel] call blck_fnc_selectAIUniforms}; @@ -38,14 +35,13 @@ _group = [blck_AI_Side,true] call blck_fnc_createGroup; if !(isNull _group) then { { - _g = _x; // ["Land_Unfinished_Building_02_F",[-21.8763,-45.978,-0.00213432],0,true,true,0.67,3,[],4], - _g params["_bldClassName","_bldRelPos","_bldDir","_s","_d","_p","_noStatics","_typesStatics","_noUnits"]; + _x params["_bldClassName","_bldRelPos","_bldDir","_s","_d","_p","_noStatics","_typesStatics","_noUnits"]; if (_typesStatics isEqualTo []) then {_typesStatics = ["B_HMG_01_high_F"]}; _building = createVehicle[_bldClassName,[0,0,0],[],0,"CAN_COLLIDE"]; _buildingsSpawned pushBack _building; _building setPosATL (_bldRelPos vectorAdd _center); - _building setDir _bldDir; + [_building, _bldDir] call blck_fnc_setDirUp; _staticsSpawned = [_building,_group,_noStatics,_typesStatics,_noUnits,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,"none",_weaponList,_sideArms] call blck_fnc_spawnGarrisonInsideBuilding_relPos; }forEach _garrisonedBuilding_relPosSystem; }; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_initializeMission.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_initializeMission.sqf index 1815061..425500e 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_initializeMission.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_initializeMission.sqf @@ -6,12 +6,8 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; - private ["_coords","_coordArray","_return"]; - - params["_missionCategoryDescriptors","_missionParameters"]; - _missionCategoryDescriptors params [ "_difficulty", "_noMissions", // Max no missions of this category @@ -22,87 +18,30 @@ params["_missionCategoryDescriptors","_missionParameters"]; "_missionsData" // ]; -/* +if (blck_debugLevel >= 3) then { - diag_log format["fnc_initializeMission: _missionCategoryDescriptors:%1 = %2",_x,_missionCategoryDescriptors select _forEachIndex]; -} forEach [ - "_difficulty", - "_noMissions", // Max no missions of this category - "_noActive", // Number active - "_tMin", // Used to calculate waittime in the future - "_tMax", // as above - "_waitTime", // time at which a mission should be spawned - "_missionsData" // - ]; -*/ - + { + diag_log format["_initializeMission: _missionCategoryDescriptors %1 = %2",_forEachIndex, _missionCategoryDescriptors]; + } forEach [ + "_difficulty", + "_noMissions", // Max no missions of this category + "_noActive", // Number active + "_tMin", // Used to calculate waittime in the future + "_tMax", // as above + "_waitTime", // time at which a mission should be spawned + "_missionsData" // + ]; +}; if (_noActive > _noMissions) exitWith {if (blck_debugOn) then {}}; _missionParameters params[ - "_defaultMissionLocations", // 1 - "_crateLoot", // 2 - "_lootCounts", // 3 - "_startMsg", // 4 - "_endMsg", // 5 - "_markerMissionName", // 6 "Scouts"; - "_markerType", // 7 "mil_triangle" - "_markerColor", // 8 ColorBlue - "_markerSize", // 9 [200,200] for ELLIPSE and rectangle markers only - "_markerBrush", // 10 "GRID", for ELLIPSE and rectangle markers only - "_missionLandscapeMode", // 11 - "_garrisonedBuildings_BuildingPosnSystem", - "_garrisonedBuilding_ATLsystem", // 13 - "_missionLandscape", // 14 - "_missionLootBoxes", // 15 - "_missionLootVehicles", // 16 - "_missionPatrolVehicles", // 17 - "_submarinePatrolParameters", // 18 - "_airPatrols", // 19 - "_noVehiclePatrols", // 20 - "_vehicleCrewCount", // 21 - "_missionEmplacedWeapons", // 22 - "_noEmplacedWeapons", // 23 - "_missionLootVehicles", // 24 - "_useMines", // 25 - "_minNoAI", // 26 - "_maxNoAI", - "_noAIGroups", - "_missionGroups", - "_scubaGroupParameters", - "_hostageConfig", - "_enemyLeaderConfig", - "_uniforms", - "_headgear", - "_vests", - "_backpacks", - "_weaponList", - "_sideArms", - "_chanceHeliPatrol", - "_noChoppers", - "_missionHelis", - "_chancePara", - "_noPara", - "_paraTriggerDistance", - "_paraSkill", - "_chanceLoot", - "_paraLoot", - "_paraLootCounts", - "_spawnCratesTiming", - "_loadCratesTiming", - "_endCondition", - "_isScubaMission" -]; - -/* - { - diag_log format["fnc_initializeMission: _missionParameters:%1 = %2",_x,_missionParameters select _forEachIndex]; - } forEach [ - "_defaultMissionLocations", // 1 - "_crateLoot", // 2 - "_lootCounts", // 3 - "_startMsg", // 2 - "_endMsg", // 3 - "_markerMissionName", + "_markerName", + "_markerMissionName", + "_endMsg", + "_startMsg", + "_defaultMissionLocations", + "_crateLoot", + "_lootCounts", "_markerType", "_markerColor", "_markerSize", @@ -120,7 +59,6 @@ _missionParameters params[ "_vehicleCrewCount", "_missionEmplacedWeapons", "_noEmplacedWeapons", - "_missionLootVehicles", "_useMines", "_minNoAI", "_maxNoAI", @@ -129,6 +67,7 @@ _missionParameters params[ "_scubaGroupParameters", "_hostageConfig", "_enemyLeaderConfig", + "_assetKilledMsg", "_uniforms", "_headgear", "_vests", @@ -150,8 +89,7 @@ _missionParameters params[ "_endCondition", "_isScubaMission" ]; -*/ -//diag_log format["_fnc_initializeMission: _isScubaMission = %1",_isScubaMission]; + _coordsArray = []; if !(_defaultMissionLocations isEqualTo []) then { @@ -165,46 +103,51 @@ if !(_defaultMissionLocations isEqualTo []) then }; }; -//diag_log format["_fnc_initializeMission: _coords = %1",_coords]; -//uiSleep 1; + if (_coords isEqualTo []) exitWith { - //diag_log format['_fnc_initializeMission: no safe location found, defering initialization']; false; }; -//diag_log format["_fnc_initializeMission(160): _defaultMissionLocations = %3 | _markerMissionName = %1 | _coords = %2",_markerMissionName,_coords,_defaultMissionLocations]; blck_ActiveMissionCoords pushback _coords; blck_missionsRunning = blck_missionsRunning + 1; -blck_missionsRun = blck_missionsRun + 1; -//diag_log format["_initializeMission (164): Total Dyanamic Land and UMS Run = %1 | total Dynamic and UMS Missions Running = %2", blck_missionsRun,blck_missionsRunning]; - private _markers = []; /* Handle map markers */ private _markerName = format["%1:%2",_markerMissionName,blck_missionsRun]; -//diag_log format["_initializeMission: _markerName = %1",_markerName]; -private "_missionMarkerPosition"; + +private "_markerPos"; if (blck_labelMapMarkers select 0) then { - _missionMarkerPosition = _coords; + _markerPos = _coords; }; if !(blck_preciseMapMarkers) then { - _missionMarkerPosition = [_coords,75] call blck_fnc_randomPosition; + _markerPos = [_coords,75] call blck_fnc_randomPosition; }; +private _markerData = [_markerType,_markerColor,_markerSize,_markerBrush]; -private _markers = [_markerName,_coords,_markerMissionName,_markerColor,_markerType,_markerSize,_markerBrush] call blck_fnc_createMarker; -_markers params["_mainMarker",["_labelMarker",""]]; +if (blck_debugLevel >= 3) then +{ + { + diag_log format["_initializeMission: %1 = %2",_x,_markerData select _forEachIndex]; + } forEach [ + "_markerType", + "_markerColor", + "_markerSize", + "_markerBrush" + ]; +}; +private _markers = [_markerName,_markerPos,_markerMissionName,_markerColor,_markerType,_markerSize,_markerBrush] call blck_fnc_createMissionMarkers; /* Send a message to players. */ [["start",_startMsg,_markerMissionName]] call blck_fnc_messageplayers; - + private _missionTimeoutAt = diag_tickTime + blck_MissionTimeout; private _triggered = 0; private _spawnPara = if (random(1) < _chancePara) then {true} else {false}; @@ -216,7 +159,9 @@ private _blck_AllMissionAI = []; private _AI_Vehicles = []; private _assetSpawned = objNull; -private _missionData = [_coords,_mines,_objects,_crates, _blck_AllMissionAI,_assetSpawned,_missionAIVehicles,_mainMarker,_labelMarker]; +private _missionData = [_coords,_mines,_objects,_crates, _blck_AllMissionAI,_assetSpawned,_missionAIVehicles,_markers]; blck_activeMissionsList pushBack [_missionCategoryDescriptors,_missionTimeoutAt,_triggered,_spawnPara,_missionData,_missionParameters]; +[format["Initialized Mission %1 | description %2 | difficulty %3 at %4",_markerName, _markerMissionName, _difficulty, diag_tickTime]] call blck_fnc_log; + true \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_loadMissionCrate.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_loadMissionCrate.sqf index 103389d..2f44471 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_loadMissionCrate.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_loadMissionCrate.sqf @@ -11,7 +11,6 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; private _crate = _this select 0; [_crate,(_crate getVariable "lootArray"),(_crate getVariable "lootCounts")] call blck_fnc_fillBoxes; -[_crate, _crate getVariable "difficulty"] call blck_fnc_addMoneyToObject; _crate setVariable["lootLoaded",true]; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_missionSpawner.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_missionSpawner.sqf index 646a095..130baa9 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_missionSpawner.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_missionSpawner.sqf @@ -17,20 +17,16 @@ private ["_abort","_crates","_aiGroup","_objects","_groupPatrolRadius","_mission "_AI_Vehicles","_timeOut","_aiDifficultyLevel","_missionPatrolVehicles","_missionGroups","_loadCratesTiming","_spawnCratesTiming","_assetSpawned","_hostageConfig", "_chanceHeliPatrol","_noPara","_chanceLoot","_heliCrew","_loadCratesTiming","_useMines","_blck_AllMissionAI","_delayTime","_groupPatrolRadius", "_wait","_missionStartTime","_playerInRange","_missionTimedOut","_temp","_patrolVehicles","_vehToSpawn","_noChoppers","_chancePara","_paraSkill","_marker","_vehicleCrewCount", - "_defaultMissionLocations","_garrisonedbuildings_buildingposnsystem","_garrisonedBuilding_ATLsystem", "_isScubaMission","_markerlabel","_missionLootBoxes"]; + "_defaultMissionLocations","_garrisonedbuildings_buildingposnsystem","_garrisonedBuilding_ATLsystem", "_isScubaMission","_markerlabel","_missionLootBoxes","_airpatrols"]; -params["_coords","_markerName","_aiDifficultyLevel"]; +params["_markerName",["_aiDifficultyLevel","Red"]]; if (isNil "_markerLabel") then {_markerLabel = _markerMissionName}; -[_markerName, "active",_coords] call blck_fnc_updateMissionQue; - -diag_log format["[blckeagls] missionSpawner (17):: Initializing mission: _cords %1 : _markerName %2 : _aiDifficultyLevel %3",_coords,_markerName,_aiDifficultyLevel,_markerLabel]; - if (isNil "_assetKilledMsg") then {_assetKilledMsg = ""}; if (isNil "_markerColor") then {_markerColor = "ColorBlack"}; if (isNil "_markerType") then {_markerType = ["mil_box",[]]}; if (isNil "_markerSize") then {_markerSize = []}; if (isNil "_endCondition") then {_endCondition = blck_missionEndCondition}; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear"}; -if (isNil "_spawnCratesTiming") then {_spawnCratesTiming = blck_spawnCratesTiming}; // Choices: "atMissionSpawnGround","atMissionStartAir","atMissionEndGround","atMissionEndAir". +if (isNil "_spawnCratesTiming") then {_spawnCratesTiming = blck_spawnCratesTiming}; // Choices: "atMissionSpawnGround","atMissionSpawnAir","atMissionEndGround","atMissionEndAir". if (isNil "_loadCratesTiming") then {_loadCratesTiming = blck_loadCratesTiming}; // valid choices are "atMissionCompletion" and "atMissionSpawn"; if (isNil "_missionPatrolVehicles") then {_missionPatrolVehicles = []}; if (isNil "_missionGroups") then {_missionGroups = []}; @@ -59,7 +55,6 @@ if (isNil "_garrisonedBuildings_BuildingPosnSystem") then {_garrisonedBuildings_ if (isNil "_vehicleCrewCount") then {_vehicleCrewCount = [_aiDifficultyLevel] call GMS_fnc_selectVehicleCrewCount}; if (isNil "_airpatrols") then {_airpatrols = []}; if (isNil "_submarinePatrolParameters") then {_submarinePatrolParameters = []}; - if (isNil "_scubagroupparameters") then {_scubagroupparameters = []}; if (isNil "_markerMissionName") then { diag_log format["_fnc_missionSpawner: _markerMissionName not defined, using default value"]; @@ -68,516 +63,87 @@ if (isNil "_markerMissionName") then { if (isNil "_noLootCrates") then {_noLootCrates = 1}; if (isNil "_lootCrates") then {_lootCrates = blck_crateTypes}; if (isNil "_lootCratePositions") then {_lootCratePositions = []}; - if (isNil "_isScubaMission") then {_isScubaMission = false}; if (isNil "_missionLootBoxes") then {_missionLootBoxes = []}; -private "_temp"; - -// If the mission is to be spawned at pre-defined coordinates then select one from the array that defines them -// otherwise use the _coords that were passed to the script in _this if (isNil "_defaultMissionLocations") then {_defaultMissionLocations = []}; if !(_defaultMissionLocations isEqualTo []) then { _coords = selectRandom _defaultMissionLocations; }; +_markerType params["_markerType",["_markersize",[250,250]],["_markerBrush","GRID"]]; +private _paraSkill = _aiDifficultyLevel; -blck_ActiveMissionCoords pushback _coords; -blck_missionsRunning = blck_missionsRunning + 1; -//diag_log format["_fnc_missionSpawner: count blck_ActiveMissionCoords = %1 | blck_ActiveMissionCoords = %2",count blck_ActiveMissionCoords,blck_ActiveMissionCoords]; -_objects = []; -_mines = []; -_crates = []; -_aiGroup = []; -_missionAIVehicles = []; -_blck_AllMissionAI = []; -_AI_Vehicles = []; - -#define delayTime 1 -#define useRelativePos true - -#ifdef blck_debugMode -diag_log "_missionSpawner: All variables initialized"; -#endif -private _markerPos = _coords; - -if !(blck_preciseMapMarkers) then +if !(_spawnCratesTiming in blck_validLootSpawnTimings) then { - private _markerPos = [_coords,75] call blck_fnc_randomPosition; - //diag_log format["_fnc_missionSpawner (110): _markerPos = %1",_markerPos]; -} ; - -[["start",_startMsg,_markerMissionName]] call blck_fnc_messageplayers; - - -_markerType params["_type",["_size",[250,250]],["_brush","GRID"]]; -_markers = [_markerName,_markerPos,_markerMissionName,_markerColor,_type,_size,_brush] call blck_fnc_createMissionMarkers; - - -#ifdef blck_debugMode -if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (145) message players and spawn a mission marker";}; -if (blck_debugLevel > 0) then {diag_log format["missionSpawner:: (146) _markers = %1",_markers];}; -if (blck_debugLevel > 0) then {diag_log "missionSpawner:: (147) waiting for player to trigger the mission";}; -#endif -//////// -// All parameters are defined, lets wait until a player is nearby or the mission has timed out -//////// - -_missionStartTime = diag_tickTime; -_playerInRange = false; -_missionTimedOut = false; -_wait = true; - -#ifdef blck_debugMode -if (blck_debugLevel > 0) then { - diag_log "missionSpawner:: (90) starting mission trigger loop"}; - diag_log format["missionSpawner (163) blck_MissionTimeout = %1", blck_MissionTimeout]; -#endif - -while {_wait} do + [format['Invalid crate spawn timing %1 found in mission %2 :: default value "atMissionSpawnGround" used',_spawnCratesTiming,_markerMissionName],""] call blck_fnc_log; + _spawnCratesTiming = "atMissionSpawnGround"; +}; +if !(_loadCratesTiming in blck_validLootLoadTimings) then { - //#ifdef blck_debugMode - if (blck_debugLevel > 2) exitWith {_playerInRange = true;diag_log "_fnc_missionSpawner (168): player trigger loop triggered by scripting";}; - //#endif - - if ([_coords, blck_TriggerDistance, false] call blck_fnc_playerInRange) exitWith {_playerInRange = true;}; - if ([_missionStartTime,blck_MissionTimeout] call blck_fnc_timedOut) exitWith {_missionTimedOut = true;}; - uiSleep 5; - - #ifdef blck_debugMode - if (blck_debugLevel > 3) then - { - diag_log format["missionSpawner:: Trigger Loop - blck_debugLevel = %1 and _coords = %2",blck_debugLevel, _coords]; - diag_log format["missionSpawner:: Trigger Loop - players in range = %1",{isPlayer _x && _x distance2D _coords < blck_TriggerDistance} count allPlayers]; - diag_log format["missionSpawner:: Trigger Loop - blck_MissionTimeout = %4 | _missionStartTime = %1 | time = %2 | timeout = %3",_missionStartTime, diag_tickTime, [_missionStartTime,blck_MissionTimeout] call blck_fnc_timedOut,blck_MissionTimeout]; - }; - #endif + [format['Invalid crate loading timing %1 found in mission %2 :: default "atMissionSpawn" value used',_loadCratesTiming,_markerMissionName],""] call blck_fnc_log; + _loadCratesTiming = "atMissionSpawn"; +}; +if !(_endCondition in blck_validEndStates) then +{ + [format['Invalid mission end condition %1 found in mission %2 :: default value "allKilledOrPlayerNear"; used',_endCondition,_markerMissionName],""] call blck_fnc_log; + _endCondition = "allKilledOrPlayerNear"; }; -if (_missionTimedOut) exitWith -{ - - - diag_log format["_fnc_missionSpawner (187): mission timed out: _markerName %1 | _markerLabel %2 | time %3",_markerName,_markerLabel,diag_tickTime]; - - [_coords,_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_markers,_markerPos,_markerName,_markerMissionName, 1] call blck_fnc_endMission; -}; - -//////////////////////////////////////////////// -// Spawn the mission objects, loot chest, and AI -/////////////////////////////////////////////// -#ifdef blck_debugMode -if (blck_debugLevel > 0) then -{ - diag_log format["[blckeagls] missionSpawner:: (200) -- >> Mission tripped: _cords %1 : _markerName %2 : _aiDifficultyLevel %3 _markerLabel %4",_coords,_markerName,_aiDifficultyLevel,_markerMissionName]; -}; -#endif - -if (blck_SmokeAtMissions select 0) then // spawn a fire and smoke near the crate -{ - _temp = [_coords,blck_SmokeAtMissions select 1] call blck_fnc_smokeAtCrates; - if (typeName _temp isEqualTo "ARRAY") then - { - _objects append _temp; - }; -}; - -uiSleep delayTime; -if (_useMines) then -{ - _mines = [_coords] call blck_fnc_spawnMines; - -}; -uiSleep delayTime; -_temp = []; - -if (_missionLandscapeMode isEqualTo "random") then -{ - _temp = [_coords,_missionLandscape, 3, 15, 2] call blck_fnc_spawnRandomLandscape; -} else { - - _temp = [_coords, _missionLandscape] call blck_fnc_spawnCompositionObjects; -}; -if (typeName _temp isEqualTo "ARRAY") then -{ - _objects append _temp; -}; - -#ifdef blck_debugMode -if (blck_debugLevel > 0) then -{ - diag_log format["[blckeagls] missionSpawner:: (219) Landscape spawned: _cords %1 : _markerName %2 : _aiDifficultyLevel %3 _markerLabel %4",_coords,_markerName,_aiDifficultyLevel,_markerLabel]; -}; -#endif - -uiSleep delayTime; - -_abort = false; -_temp = []; - -_temp = [_coords, _minNoAI,_maxNoAI,_noAIGroups,_missionGroups,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnMissionAI; - -_abort = _temp select 1; - -if !(_abort) then -{ - _blck_AllMissionAI append (_temp select 0); -}; -//diag_log format["[blckeagls] missionSpawner:: (236) missionAI spawned: _markerName %1 : _markerLabel %2 : count _blck_AllMissionAI = %3",_markerName,_markerLabel, count _blck_AllMissionAI]; -if !(_scubaGroupParameters isEqualTo []) then -{ - #define isScubaMission true - private _temp = [_coords, _minNoAI,_maxNoAI,count _scubaGroupParameters,_scubaGroupParameters,_aiDifficultyLevel,blck_UMS_uniforms,blck_UMS_headgear,blck_UMS_vests,[],blck_UMS_weapons,[],_isScubaMission] call blck_fnc_spawnMissionAI; - - uiSleep 2; - _abort = _temp select 1; - - if !(_abort) then - { - _blck_AllMissionAI append (_temp select 0); - }; -}; - - - -_assetSpawned = objNull; -if !(_hostageConfig isEqualTo []) then -{ - _temp = [_coords,_hostageConfig] call blck_fnc_spawnHostage; - _assetSpawned = _temp select 0; - _objects pushBack (_temp select 1); - _blck_AllMissionAI pushBack _assetSpawned; -}; - -if !(_enemyLeaderConfig isEqualTo []) then -{ - _temp = [_coords,_enemyLeaderConfig] call blck_fnc_spawnLeader; - _assetSpawned = _temp select 0; - _objects pushBack (_temp select 1); - _blck_AllMissionAI pushBack _assetSpawned; -}; - -uiSleep delayTime; -_temp = [[],[],false]; -_abort = false; - -// Deal with helicopter patrols -_temp = []; -_noChoppers = [_noChoppers] call blck_fnc_getNumberFromRange; -if (_noChoppers > 0) then -{ - for "_i" from 1 to (_noChoppers) do - { - if (random(1) < _chanceHeliPatrol) then - { - _temp = [_coords,_aiDifficultyLevel,_missionHelis,_uniforms,_headGear,_vests,_backpacks,_weaponList, _sideArms,"none"] call blck_fnc_spawnMissionHeli; - - if (typeName _temp isEqualTo "ARRAY") then - { - _abort = _temp select 2; - if !(_abort) then - { - blck_monitoredVehicles pushBack (_temp select 0); - _blck_AllMissionAI append (_temp select 1); - }; - }; - }; - }; -}; - - - -uisleep 3; -if !(_garrisonedBuilding_ATLsystem isEqualTo []) then -{ - _temp = [_coords, _garrisonedBuilding_ATLsystem, _aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_garrisonBuilding_ATLsystem; - _objects append (_temp select 1); - blck_monitoredVehicles append (_temp select 2); - _blck_AllMissionAI append (units (_temp select 0)); -}; - - - - -uiSleep 3; -if !(_garrisonedBuildings_BuildingPosnSystem isEqualTo []) then -{ - _temp = [_coords, _garrisonedBuildings_BuildingPosnSystem, _aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_garrisonBuilding_RelPosSystem; - _objects append (_temp select 1); - blck_monitoredVehicles append (_temp select 2); - _blck_AllMissionAI append (units (_temp select 0)); -}; - - - -uiSleep 15; -private["_noEmplacedToSpawn"]; -_noEmplacedToSpawn = [_noEmplacedWeapons] call blck_fnc_getNumberFromRange; -if (blck_useStatic && (_noEmplacedToSpawn > 0)) then -{ - _temp = [_coords,_missionEmplacedWeapons,useRelativePos,_noEmplacedToSpawn,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnEmplacedWeaponArray; - _temp params ["_emplacedObjects","_units","_abort"]; - _objects append _emplacedObjects; - _blck_AllMissionAI append _units; -}; - - - -_vehToSpawn = [_noVehiclePatrols] call blck_fnc_getNumberFromRange; -if (blck_useVehiclePatrols && ((_vehToSpawn > 0) || !(_missionPatrolVehicles isEqualTo []) )) then -{ - _temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_missionPatrolVehicles,useRelativePos,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms,false,_vehicleCrewCount] call blck_fnc_spawnMissionVehiclePatrols; - - _temp params ["_patrolVehicles","_units","_abort"]; - _blck_AllMissionAI append _units; -}; - -// Spawn any submarine patrols -if (blck_useVehiclePatrols && !(_submarinePatrolParameters isEqualTo []) ) then -{ - - _temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_submarinePatrolParameters,true,_umsUniforms,_umsHeadgear,_umsVests,[],_umsWeapons,[],isScubaMission] call blck_fnc_spawnMissionVehiclePatrols; - _missionAIVehicles append (_temp select 0); - _blck_AllMissionAI append (_temp select 1); -}; - -uiSleep delayTime; - - -if (_spawnCratesTiming isEqualTo "atMissionSpawnGround") then -{ - if !(_missionLootBoxes isEqualTo []) then - { - _crates = [_coords,_missionLootBoxes,_loadCratesTiming, _spawnCratesTiming, "start", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates; - } - else - { - _crates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_crateLoot,_lootCounts]], _loadCratesTiming, _spawnCratesTiming, "start", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates; - }; - - if (blck_cleanUpLootChests) then - { - _objects append _crates; - }; -}; -uiSleep delayTime;; - - - -if !(_missionLootVehicles isEqualTo []) then -{ - _temp = [_coords,_missionLootVehicles,_loadCratesTiming,0] call blck_fnc_spawnMissionLootVehicles; - _crates append _temp; -}; -if (_noPara > 0 && (random(1) < _chancePara) && _paraTriggerDistance == 0) then -{ - - private _paratroops = [_coords,_noPara,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnParaUnits; - if !(isNull _paratroops) then - { - _blck_AllMissionAI append (units _paratroops); - }; - if (random(1) < _chanceLoot) then - { - - private _extraCrates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_paraLoot,_paraLootCounts]], "atMissionSpawn","atMissionStartAir", "start", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates; - if (blck_cleanUpLootChests) then - { - _objects append _extraCrates; - }; - }; -}; - - - -private["_missionComplete","_endIfPlayerNear","_endIfAIKilled","_secureAsset","_crateStolen","_locations"]; -_missionComplete = -1; -_startTime = diag_tickTime; - - - -switch (_endCondition) do -{ - case "playerNear": {_secureAsset = false; _endIfPlayerNear = true;_endIfAIKilled = false;}; - case "allUnitsKilled": {_secureAsset = false; _endIfPlayerNear = false;_endIfAIKilled = true;}; - case "allKilledOrPlayerNear": {_secureAsset = false; _endIfPlayerNear = true;_endIfAIKilled = true;}; - case "assetSecured": {_secureAsset = true; _endIfPlayerNear = false; _endIfAIKilled = false;}; -}; - -if (blck_showCountAliveAI) then -{ - - blck_missionLabelMarkers pushBack [_markers select 1,_markerMissionName,_blck_AllMissionAI]; -}; - -_crateStolen = false; -_locations = [_coords]; -private _spawnPara = if (random(1) < _chancePara) then {true} else {false}; -{ - _locations pushback (getPos _x); - _x setVariable["crateSpawnPos", (getPos _x)]; -} forEach _crates; - -private["_minNoAliveForCompletion","_result","_minPercentageKilled"]; -_minNoAliveForCompletion = (count _blck_AllMissionAI) - (round(blck_killPercentage * (count _blck_AllMissionAI))); -if (_secureAsset) then {_minNoAliveForCompletion = _minNoAliveForCompletion + 1}; - -while {_missionComplete isEqualTo -1} do -{ - #ifdef blck_debugMode - if (blck_debugLevel > 3) exitWith {uiSleep blck_triggerLoopCompleteTime;diag_log "_missionSpawner (492) scripted Mission End blck_debugLevel = 3";}; - #endif - - if (_endIfPlayerNear) then - { - if ([_locations,20,true] call blck_fnc_playerInRangeArray) then {_missionComplete = 1}; - }; - - if (_endIfAIKilled) then - { - if (({alive _x} count _blck_AllMissionAI) <= _minNoAliveForCompletion) then {_missionComplete = 1}; - }; - - if (_spawnCratesTiming isEqualTo "atMissionSpawnGround") then - { - { - private _d = _x distance (_x getVariable ["crateSpawnPos",_coords]); - - if (_d > 25) exitWith - { - _missionComplete = 1; - _crateStolen = true; - }; - }forEach _crates; - }; - - if (_secureAsset) then - { - if !(alive _assetSpawned) then - { - _missionComplete = 1; - [_assetSpawned] remoteExec["GMS_fnc_clearAllActions",-2, true]; - } else { - - if (({alive _x} count _blck_AllMissionAI) <= _minNoAliveForCompletion) then - { - if ((_assetSpawned getVariable["blck_unguarded",0]) isEqualTo 0) then - { - _assetSpawned setVariable["blck_unguarded",1,true]; - }; - - if ((_assetSpawned getVariable["blck_AIState",0]) isEqualTo 1) then - { - _missionComplete = 1; - _assetSpawned allowdamage false; - [_assetSpawned] remoteExec["GMS_fnc_clearAllActions",-2, true]; - }; - - }; - }; - }; - if (_spawnPara) then - { - if ([_coords,_paraTriggerDistance,true] call blck_fnc_playerInRange) then - { - _spawnPara = false; // The player gets one try to spawn these. - if (random(1) < _chancePara) then // - { - private _paratroops = [_coords,_noPara,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnParaUnits; - if !(isNull _paratroops) then - { - _blck_AllMissionAI append (units _paratroops); - }; - if (random(1) < _chanceLoot) then - { - private _extraCrates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_paraLoot,_paraLootCounts]], "atMissionSpawn","atMissionStartAir", "start", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates; - if (blck_cleanUpLootChests) then - { - _objects append _extraCrates; - }; - }; - }; - }; - }; - uiSleep 1; -}; - -if (_crateStolen) exitWith -{ - - [_coords,_mines,_objects,_crates, _blck_AllMissionAI,"Crate Removed from Mission Site Before Mission Completion: Mission Aborted",_markers,_markerPos,_markerName,_markerLabel, 2] call blck_fnc_endMission; -}; - -if (_spawnCratesTiming in ["atMissionEndGround","atMissionEndAir"]) then -{ - if (!(_secureAsset) || (_secureAsset && (alive _assetSpawned))) then - { - if !(_missionLootBoxes isEqualTo []) then - { - _crates = [_coords,_missionLootBoxes,_loadCratesTiming,_spawnCratesTiming, "end", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates; - } - else - { - _crates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_crateLoot,_lootCounts]], _loadCratesTiming,_spawnCratesTiming, "end", _aiDifficultyLevel] call blck_fnc_spawnMissionCrates; - }; - - if (blck_cleanUpLootChests) then - { - _objects append _crates; - }; - - - }; -}; - - -if (_spawnCratesTiming isEqualTo "atMissionSpawnGround" && _loadCratesTiming isEqualTo "atMissionCompletion") then -{ - if (!(_secureAsset) || (_secureAsset && (alive _assetSpawned))) then - { - { - [_x] call blck_fnc_loadMissionCrate; - } forEach _crates; - }; -}; - -private["_result"]; - - - -if (_secureAsset && (alive _assetSpawned)) then -{ - if (_assetSpawned getVariable["assetType",0] isEqualTo 1) then - { - _assetSpawned setVariable["GMSAnimations",[""],true]; - [_assetSpawned,""] remoteExec["switchMove",-2];; - uiSleep 0.1; - _assetSpawned enableAI "ALL"; - private _newPos = (getPos _assetSpawned) getPos [1000, random(360)]; - (group _assetSpawned) setCurrentWaypoint [group _assetSpawned, 0]; - [group _assetSpawned,0] setWaypointPosition [_newPos,0]; - [group _assetSpawned,0] setWaypointType "MOVE"; - }; - - if (_assetSpawned getVariable["assetType",0] isEqualTo 2) then - { - [_assetSpawned,""] remoteExec["switchMove",-2]; - _assetSpawned setVariable["GMSAnimations",_assetSpawned getVariable["endAnimation",["AidlPercMstpSnonWnonDnon_AI"]],true]; - [_assetSpawned,selectRandom(_assetSpawned getVariable["endAnimation",["AidlPercMstpSnonWnonDnon_AI"]])] remoteExec["switchMove",-2]; - }; -}; -if (_secureAsset && !(alive _assetSpawned)) then -{ - - [_coords,_mines,_objects,_crates,_blck_AllMissionAI,_assetKilledMsg,_markers,_markerPos,_markerName,_markerLabel, -1] call blck_fnc_endMission; -}; - -if (!(_secureAsset) || (_secureAsset && (alive _assetSpawned))) then -{ - [_coords,_mines,_objects,_crates,_blck_AllMissionAI,_endMsg,_markers,_markerPos,_markerName,_markerLabel, 0] call blck_fnc_endMission; -}; - - -diag_log format["_fnc_missionSpawner (643) Mission Completed | _cords %1 : _markerName %2 : _aiDifficultyLevel %3 _markerLabel %4",_coords,_markerName,_aiDifficultyLevel,_markerLabel]; -blck_missionsRun = blck_missionsRun + 1; -diag_log format["_fnc_missionSpawner (644): Total Dyanamic Land and UMS Run = %1", blck_missionsRun]; +private _table = [ + _markerName, + _markerMissionName, // Name used for setMarkerText and also for the root name for all markers + _endMsg, + _startMsg, + _defaultMissionLocations, + _crateLoot, + _lootCounts, + _markerType, + _markerColor, + _markerSize, + _markerBrush, + _missionLandscapeMode, + _garrisonedBuildings_BuildingPosnSystem, + _garrisonedBuilding_ATLsystem, + _missionLandscape, + _missionLootBoxes, + _missionLootVehicles, + _missionPatrolVehicles, + _submarinePatrolParameters, + _airPatrols, + _noVehiclePatrols, + _vehicleCrewCount, + _missionEmplacedWeapons, + _noEmplacedWeapons, + _useMines, + _minNoAI, + _maxNoAI, + _noAIGroups, + _missionGroups, + _scubaGroupParameters, + _hostageConfig, + _enemyLeaderConfig, + _assetKilledMsg, + _uniforms, + _headgear, + _vests, + _backpacks, + _weaponList, + _sideArms, + _chanceHeliPatrol, + _noChoppers, + _missionHelis, + _chancePara, + _noPara, + _paraTriggerDistance, + _paraSkill, + _chanceLoot, + _paraLoot, + _paraLootCounts, + _spawnCratesTiming, + _loadCratesTiming, + _endCondition, + _isScubaMission +]; + +_table diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_monitorInitializedMissions.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_monitorInitializedMissions.sqf index 5936a9c..589675c 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_monitorInitializedMissions.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_monitorInitializedMissions.sqf @@ -2,7 +2,7 @@ GMS_fnc_monitorInitializedMissions by Ghostrider-GRG- */ -//diag_log format["fnc_monitorInitializedMissions: time = %1 | count blck_activeMissionsList %2 | blck_activeMissionsList %3",diag_tickTime,count blck_activeMissionsList,blck_activeMissionsList]; + for "_i" from 1 to (count blck_activeMissionsList) do { @@ -10,8 +10,7 @@ for "_i" from 1 to (count blck_activeMissionsList) do // Select a mission category (blue, red, green , etd) private _el = blck_activeMissionsList deleteAt 0; - //diag_log format["fnc_monitorInitializedMissions: _el = %1",_el]; - //blck_activeMissionsList pushBack [_missionCategoryDescriptors,_missionTimeoutAt,_triggered,_spawnPara,_missionData,_missionParameters]; + _el params [ "_missionCategoryDescriptors", // 0 "_missionTimeoutAt", // 1 @@ -20,29 +19,7 @@ for "_i" from 1 to (count blck_activeMissionsList) do "_missionData", // 6 "_missionParameters" // 7 ]; - /* - { - diag_log format["_fnc_monitorInitializedMissions: _el:%1 = %2",_x, _el select _forEachIndex]; - } forEach [ - "_missionCategoryDescriptors", // 0 - "_missionTimeoutAt", // 1 - "_triggered", // 2 - "_spawnPara", // 3 - "_missionData", // 6 - "_missionParameters" // 7 - ]; -*/ -/* - private _missionCategoryDescriptors = [ - _difficulty, - _noMissions, // Max no missions of this category - 0, // Number active - _tMin, // Used to calculate waittime in the future - _tMax, // as above - _waitTime, // time at which a mission should be spawned - _missionsData // - ]; -*/ + #define noActive 2 #define waitTime 5 #define missionData 6 @@ -56,84 +33,65 @@ for "_i" from 1 to (count blck_activeMissionsList) do "_waitTime", // time at which a mission should be spawned "_missionsData" // ]; - /* - { - diag_log format["fnc_monitorInitializeMission: _missionCategoryDescriptors:%1 = %2",_x,_missionCategoryDescriptors select _forEachIndex]; - } forEach [ - "_difficulty", - "_noMissions", // Max no missions of this category - "_noActive", // Number active - "_tMin", // Used to calculate waittime in the future - "_tMax", // as above - "_waitTime", // time at which a mission should be spawned - "_missionsData" // - ]; - */ - #define setMissionData _missionData = [_coords,_mines,_objects,_crates, _blck_AllMissionAI,_assetSpawned,_missionAIVehicles,_mainMarker,_labelMarker]; - //private _missionData = [_coords,_mines,_objects,_crates, _blck_AllMissionAI,_assetSpawned,_missionAIVehicles,_mainMarker,_labelMarker]; + // 0 1 2 3 4 5 6 7 8 - _missionData params ["_coords","_mines","_objects","_crates","_blck_AllMissionAI","_assetSpawned","_missionAIVehicles","_mainMarker","_labelMarker"]; - - /* - { - diag_log format["_fnc_monitorInitializedMissions (79): _missionData:%1 = %2",_x, _missionData select _forEachIndex]; - } forEach ["_coords","_mines","_objects","_crates","_blck_AllMissionAI","_assetSpawned","_missionAIVehicles","_mainMarker","_labelMarker"]; - */ + _missionData params ["_coords","_mines","_objects","_crates","_blck_AllMissionAI","_assetSpawned","_missionAIVehicles","_markers"]; - _missionParameters params[ - "_defaultMissionLocations", - "_crateLoot", // 0 - "_lootCounts", // 1 - "_startMsg", // 2 - "_endMsg", // 3 - "_markerMissionName", - "_markerType", - "_markerColor", - "_markerSize", - "_markerBrush", - "_missionLandscapeMode", - "_garrisonedBuildings_BuildingPosnSystem", - "_garrisonedBuilding_ATLsystem", - "_missionLandscape", - "_missionLootBoxes", - "_missionLootVehicles", - "_missionPatrolVehicles", - "_submarinePatrolParameters", - "_airPatrols", - "_noVehiclePatrols", - "_vehicleCrewCount", - "_missionEmplacedWeapons", - "_noEmplacedToSpawn", - "_missionLootVehicles", - "_useMines", - "_minNoAI", - "_maxNoAI", - "_noAIGroups", - "_missionGroups", - "_scubaGroupParameters", - "_hostageConfig", - "_enemyLeaderConfig", - "_uniforms", - "_headgear", - "_vests", - "_backpacks", - "_weaponList", - "_sideArms", - "_chanceHeliPatrol", - "_noChoppers", - "_missionHelis", - "_chancePara", - "_noPara", - "_paraTriggerDistance", - "_paraSkill", - "_chanceLoot", - "_paraLoot", - "_paraLootCounts", - "_spawnCratesTiming", - "_loadCratesTiming", - "_endCondition", - "_isScubaMission" - ]; +_missionParameters params[ + "_markerName", + "_markerMissionName", + "_endMsg", + "_startMsg", + "_defaultMissionLocations", + "_crateLoot", + "_lootCounts", + "_markerType", + "_markerColor", + "_markerSize", + "_markerBrush", + "_missionLandscapeMode", + "_garrisonedBuildings_BuildingPosnSystem", + "_garrisonedBuilding_ATLsystem", + "_missionLandscape", + "_missionLootBoxes", + "_missionLootVehicles", + "_missionPatrolVehicles", + "_submarinePatrolParameters", + "_airPatrols", + "_noVehiclePatrols", + "_vehicleCrewCount", + "_missionEmplacedWeapons", + "_noEmplacedWeapons", + "_useMines", + "_minNoAI", + "_maxNoAI", + "_noAIGroups", + "_missionGroups", + "_scubaGroupParameters", + "_hostageConfig", + "_enemyLeaderConfig", + "_assetKilledMsg", + "_uniforms", + "_headgear", + "_vests", + "_backpacks", + "_weaponList", + "_sideArms", + "_chanceHeliPatrol", + "_noChoppers", + "_missionHelis", + "_chancePara", + "_noPara", + "_paraTriggerDistance", + "_paraSkill", + "_chanceLoot", + "_paraLoot", + "_paraLootCounts", + "_spawnCratesTiming", + "_loadCratesTiming", + "_endCondition", + "_isScubaMission" +]; private _playerInRange = [_coords, blck_TriggerDistance, false] call blck_fnc_playerInRange; #define delayTime 1 @@ -157,34 +115,25 @@ for "_i" from 1 to (count blck_activeMissionsList) do _monitorAction = 1; }; }; - //diag_log format["_monitorInitializedMissions(149): _triggered = %1 | _monitorAction = %2",_triggered,_monitorAction]; - private _blck_localMissionMarker = [_markerType,_coords,"","",_markerColor,_markerType]; + switch (_monitorAction) do { // Handle Timeout case -1: { - diag_log format["_fnc_monitorInitializedMissions: mission timed out: %1",_el]; + //[format["_fnc_monitorInitializedMissions: mission timed out: %1",_el]] call blck_fnc_log; _missionCategoryDescriptors set[noActive, _noActive - 1]; - // params ["_mines","_objects","_crates","_blck_AllMissionAI","_endMsg","_mainMarker","_labelMarker","_markerClass","_coords",["_endCondition",0]] - [_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_mainMarker,_labelMarker,_markerType,_coords,1] call blck_fnc_endMission; + [_coords,_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_markers,markerPos (_markers select 1),_markerName,_markerMissionName, -1] call blck_fnc_endMission; }; // Handle mission waiting to be triggerd and player is within the range to trigger case 0: { - if (blck_debugLevel >= 3) then - { - diag_log format["_fnc_moniorInitializedMissions: blck_debugLevel == 3, spawning objects for mission %1",_el]; - } else { - //diag_log format["_fnc_moniorInitializedMissions: mission TRIGGERED by player: spawning objects for mission %1",_el]; - }; - #define triggered 2 #define timedOut 1 _el set[triggered,1]; _el set[timedOut,diag_tickTime + 240]; - //diag_log format["_fnc_monitorInitializedMissions (167): spawning smoking wrecks as needed: blck_smokeAtMissions == %1",blck_SmokeAtMissions]; + private["_temp"]; if (blck_SmokeAtMissions select 0) then // spawn a fire and smoke near the crate { @@ -196,14 +145,12 @@ for "_i" from 1 to (count blck_activeMissionsList) do }; }; - //diag_log format["_fnc_monitorInitializedMissions (193): spawning mines as needed: _useMines == %1",_useMines]; if (_useMines) then { _mines = [_coords] call blck_fnc_spawnMines; uiSleep delayTime; }; - //diag_log format["_fnc_monitorInitializedMissions (200): spawning landscape as needed: _missionLandscapeMode = %1 | _missionLandscape = %2",_missionLandscapeMode,_missionLandscape]; if (_missionLandscapeMode isEqualTo "random") then { _temp = [_coords,_missionLandscape, 3, 15, 2] call blck_fnc_spawnRandomLandscape; @@ -215,31 +162,24 @@ for "_i" from 1 to (count blck_activeMissionsList) do uiSleep delayTime; try { - - //diag_log format["_fnc_monitorInitializedMissions (213): spawning AI Patrols as needed: _missionGroups == %1",_missionGroups]; _temp = [_coords, _minNoAI,_maxNoAI,_noAIGroups,_missionGroups,_difficulty,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnMissionAI; _temp params["_ai","_abort"]; if (_abort) throw 1; _blck_AllMissionAI append (_ai); uiSleep delayTime; - //diag_log format["_fnc_monitorInitializedMissions (220): spawning hostages as needed: _hostageConfig == %1",_hostageConfig]; - //private ["_assetSpawned"]; if !(_hostageConfig isEqualTo []) then { _temp = [_coords,_hostageConfig] call blck_fnc_spawnHostage; if (_temp isEqualTo grpNull) then {throw 1} else { _assetSpawned = _temp select 0; - // 0 1 2 3 4 5 6 7 - // _missionData params ["_coords","_mines","_objects","_crates","_blck_AllMissionAI","_assetSpawned","_mainMarker","_labelMarker"]; _missionData set[5,_assetSpawned]; _objects pushBack (_temp select 1); _blck_AllMissionAI pushBack _assetSpawned; }; }; - //diag_log format["_fnc_monitorInitializedMissions (234): spawning leaders as needed: _enemyLeaderConfig == %1",_enemyLeaderConfig]; if !(_enemyLeaderConfig isEqualTo []) then { private _temp = [_coords,_enemyLeaderConfig] call blck_fnc_spawnLeader; @@ -252,7 +192,6 @@ for "_i" from 1 to (count blck_activeMissionsList) do }; }; - //diag_log format["_fnc_monitorInitializedMissions (248): spawning chopers as needed: _noChoppers = %1 | _chanceHeliPatrol = %2 | _missionHelis = %3",_noChoppers,_chanceHeliPatrol,_missionHelis]; private _noChoppers = [_noChoppers] call blck_fnc_getNumberFromRange; if (_noChoppers > 0) then { @@ -276,7 +215,6 @@ for "_i" from 1 to (count blck_activeMissionsList) do }; uisleep 3; - //diag_log format["_fnc_monitorInitializedMissions (271): spawning garrisons using ATL coordinate system as needed: _garrisonedBuilding_ATLsystem == %1",_garrisonedBuilding_ATLsystem]; if (count _garrisonedBuilding_ATLsystem > 0) then // Note that there is no error checking here for nulGroups { private _temp = [_coords, _garrisonedBuilding_ATLsystem, _difficulty,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_garrisonBuilding_ATLsystem; @@ -290,7 +228,6 @@ for "_i" from 1 to (count blck_activeMissionsList) do }; uiSleep 3; - //diag_log format["_fnc_monitorInitializedMissions (285): spawning garrisons using relative coordinate system as needed: _garrisonedBuildings_BuildingPosnSystem == %1",_garrisonedBuildings_BuildingPosnSystem]; if (count _garrisonedBuildings_BuildingPosnSystem > 0) then { private _temp = [_coords, _garrisonedBuildings_BuildingPosnSystem, _difficulty,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_garrisonBuilding_RelPosSystem; @@ -305,13 +242,12 @@ for "_i" from 1 to (count blck_activeMissionsList) do uiSleep 15; private _userelativepos = true; - //diag_log format["_fnc_monitorInitializedMissions (300): spawning static turrets needed: _noEmplacedToSpawn == %1 | _missionEmplacedWeapons = %2",_noEmplacedToSpawn,_missionEmplacedWeapons]; - private _noEmplacedToSpawn = [_noEmplacedToSpawn] call blck_fnc_getNumberFromRange; - if (blck_useStatic && ((_noEmplacedToSpawn > 0) || count _missionEmplacedWeapons > 0)) then + private _noEmplacedWeapons = [_noEmplacedWeapons] call blck_fnc_getNumberFromRange; + if (blck_useStatic && ((_noEmplacedWeapons > 0) || count _missionEmplacedWeapons > 0)) then // TODO: add error checks for grpNull to the emplaced weapon spawner { - private _temp = [_coords,_missionEmplacedWeapons,_userelativepos,_noEmplacedToSpawn,_difficulty,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnEmplacedWeaponArray; + private _temp = [_coords,_missionEmplacedWeapons,_userelativepos,_noEmplacedWeapons,_difficulty,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnEmplacedWeaponArray; if (_temp isEqualTo grpNull) then {throw 1} else { _objects append (_temp select 0); @@ -320,7 +256,6 @@ for "_i" from 1 to (count blck_activeMissionsList) do }; uisleep 10; - //diag_log format["_fnc_monitorInitializedMissions (316): spawning patrol vehicles as needed: _noVehiclePatrols == %1 | _missionPatrolVehicles = %2",_noVehiclePatrols,_missionPatrolVehicles]; private _noVehiclePatrols = [_noVehiclePatrols] call blck_fnc_getNumberFromRange; if (blck_useVehiclePatrols && ((_noVehiclePatrols > 0) || count _missionPatrolVehicles > 0)) then { @@ -333,8 +268,9 @@ for "_i" from 1 to (count blck_activeMissionsList) do }; }; uiSleep delayTime; - - if (_spawnCratesTiming isEqualTo "atMissionSpawnGround") then + if (blck_debugLevel >= 3) then {diag_log format["monitorInitializedMissions: _spawnCrateTiming = %1 _loadCratesTiming = %2 | _markerMissionName = %3",_spawnCratesTiming,_loadCratesTiming, _markerMissionName]}; + if (blck_debugLevel >= 3) then {diag_log format["monitorInitializedMissions: _missionLootBoxes = %1",_missionLootBoxes]}; + if (_spawnCratesTiming in ["atMissionSpawnGround","atMissionSpawnAir"]) then { if (_missionLootBoxes isEqualTo []) then { @@ -349,6 +285,13 @@ for "_i" from 1 to (count blck_activeMissionsList) do { _objects append _crates; }; + if (_loadCratesTiming isEqualTo "atMissionSpawn") then + { + private _crateMoney = missionNamespace getVariable (format["blck_crateMoney%1",_difficulty]); + { + [_x,_crateMoney] call blck_fnc_addMoneyToObject; + } forEach _crates; + }; }; _missionData set[2,_objects]; _missionData set[3,_crates]; @@ -357,21 +300,20 @@ for "_i" from 1 to (count blck_activeMissionsList) do if (blck_showCountAliveAI) then { - [_mainMarker,_labelMarker,_markerMissionName,_blck_AllMissionAI] call blck_fnc_updateMarkerAliveCount; + blck_missionLabelMarkers pushBack [_markers select 1,_markerMissionName,_blck_AllMissionAI]; }; + { _x setVariable["crateSpawnPos", (getPos _x)]; } forEach _crates; private _spawnPara = if (random(1) < _chancePara) then {true} else {false}; - setMissionData // code defined above - //{diag_log format["_monotirInitializedMissions:(371) _missiondata %1 = %2",_forEachIndex,_x]} forEach _missionData; + _missionData = [_coords,_mines,_objects,_crates, _blck_AllMissionAI,_assetSpawned,_missionAIVehicles,_markers]; _el set[missionData, _missionData]; // Everything spawned withouth serous errors so lets keep the mission active for future monitoring blck_activeMissionsList pushBack _el; - //diag_log format["_fnc_monitorInitializedMissions (366): all objects, men and vehicles spawened, blck_activeMissionsList= %1", blck_activeMissionsList]; } catch @@ -379,20 +321,24 @@ for "_i" from 1 to (count blck_activeMissionsList) do if (_exception isEqualTo 1) then { _missionCategoryDescriptors set[noActive, _noActive - 1]; - // params ["_mines","_objects","_crates","_blck_AllMissionAI","_endMsg","_mainMarker","_labelMarker","_markerClass","_coords",["_endCondition",0]] - [_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_mainMarker,_labelMarker,_markerType,_coords, 1] call blck_fnc_endMission; - diag_log format["[blkeagls] grpNull returned by one or more critical functions, mission spawning aborted!"]; + [_coords,_mines,_objects,_crates, _blck_AllMissionAI,_endMsg,_markers,markerPos (_markers select 1),_markerName,_markerMissionName, 1] call blck_fnc_endMission; + ["Critial Error returned by one or more critical functions, mission spawning aborted!",'error'] call blck_fnc_log; }; }; }; case 1: { - //diag_log format["_fnc_moniorInitializedMissions(398): evaluating status of mission %1 | _missionTimeoutAt = %2 | time = %3 | _crates = %4",_el,_missionTimeoutAt,diag_tickTime,_crates]; private _missionComplete = -1; - private _crateStolen = -1; private ["_secureAsset","_endIfPlayerNear","_endIfAIKilled"]; + /* + "_endCondition", + */ + _secureAsset = false; + _endIfPlayerNear = true; + _endIfAIKilled = true; + switch (_endCondition) do { case "playerNear": {_secureAsset = false; _endIfPlayerNear = true;_endIfAIKilled = false;}; @@ -400,49 +346,22 @@ for "_i" from 1 to (count blck_activeMissionsList) do case "allKilledOrPlayerNear": {_secureAsset = false; _endIfPlayerNear = true;_endIfAIKilled = true;}; case "assetSecured": {_secureAsset = true; _endIfPlayerNear = false; _endIfAIKilled = false;}; }; - if (blck_showCountAliveAI) then - { - [_mainMarker,_labelMarker,_markerMissionName,_blck_AllMissionAI] call blck_fnc_updateMarkerAliveCount; - }; + try { - if (blck_debugLevel == 5) throw 1; - if (blck_debugLevel == 6) then { - diag_log format["_fnc_monitorInitializedMissions: mission ended, condition CRATE MOVED, mission %1",_el]; - throw 2; - }; - if (blck_debugLevel == 7) then - { - diag_log format["_fnc_monitorInitializedMissions: mission ended, condition simulated death of asset, mission %1",_el]; - throw 3; - }; private _playerIsNear = [_crates,20,true] call blck_fnc_playerInRangeArray; private _minNoAliveForCompletion = (count _blck_AllMissionAI) - (round(blck_killPercentage * (count _blck_AllMissionAI))); private _aiKilled = if (({alive _x} count _blck_AllMissionAI) <= _minNoAliveForCompletion) then {true} else {false}; // mission complete - //diag_log format["_fnc_monitorInitializedMissions (404): _playerIsNear = %1 | _aiKilled = %2 | _crates = %3",_playerIsNear,_aiKilled,_crates]; + if (_endIfPlayerNear) then { - //diag_log format["_fnc_monitorInitializedMissions: mission ended, condition player near, mission %1",_el]; if (_playerIsNear) throw 1; // mission complete }; if (_endIfAIKilled) then { - //diag_log format["_fnc_monitorInitializedMissions: mission ended, condition AI Killed, mission %1",_el]; if (_aiKilled) throw 1; }; - if (_spawnCratesTiming isEqualTo "atMissionSpawnGround") then - { - { - private _d = _x distance (_x getVariable ["crateSpawnPos",_coords]); - if (_d > 25) then - { - //diag_log format["_fnc_monitorInitializedMissions: mission ended, condition CRATE MOVED, mission %1",_el]; - throw 2; - }; // crate moved illegally - }forEach _crates; - }; - if (_spawnPara) then { if ([_coords,_paraTriggerDistance,true] call blck_fnc_playerInRange) then @@ -458,7 +377,7 @@ for "_i" from 1 to (count blck_activeMissionsList) do }; if (random(1) < _chanceLoot) then { - private _extraCrates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_paraLoot,_paraLootCounts]], "atMissionSpawn","atMissionStartAir", "start", _difficulty] call blck_fnc_spawnMissionCrates; + private _extraCrates = [_coords,[[selectRandom blck_crateTypes,[0,0,0],_paraLoot,_paraLootCounts]], "atMissionSpawn","atMissionSpawnAir", "start", _difficulty] call blck_fnc_spawnMissionCrates; if (blck_cleanUpLootChests) then { _objects append _extraCrates; @@ -472,21 +391,18 @@ for "_i" from 1 to (count blck_activeMissionsList) do { if !(alive _assetSpawned) then { - diag_log format["_line 498 asset %1 killed throwing error with code 3",_assetSpawned]; throw 3; } else { - diag_log format["line 501: asset alive, count _blck_AllMissionAI = %1",count _blck_AllMissionAI]; - if (({alive _x} count _blck_AllMissionAI) <= _minNoAliveForCompletion) then + + if (({alive _x} count _blck_AllMissionAI) <= (_minNoAliveForCompletion + 1)) then { if ((_assetSpawned getVariable["blck_unguarded",0]) isEqualTo 0) then { _assetSpawned setVariable["blck_unguarded",1,true]; - diag_log format["_assetSpawned: blck_unguarded updated to 1 for asset %1",_assetSpawned]; }; if ((_assetSpawned getVariable["blck_AIState",0]) isEqualTo 1) then { - diag_log format["_assetSpawned: blck_AIState updated to 1 for asset %1",_assetSpawned]; _assetSpawned allowdamage false; [_assetSpawned] remoteExec["GMS_fnc_clearAllActions",-2, true]; throw 1; @@ -495,13 +411,15 @@ for "_i" from 1 to (count blck_activeMissionsList) do }; }; - if (blck_debugLevel > 3 && diag_tickTime > _missionTimeoutAt) then + private _moved = false; + if ((_spawnCratesTiming isEqualTo "atMissionSpawnGround") && blck_crateMoveAllowed) then { - diag_log format["_monitoInitializeMissions: debugLevel == 3, mission triggered, timout condition reached, ending mission"]; - throw 1; - + { + if ( _x distance (_x getVariable ["crateSpawnPos", (getPos _x)]) > max_distance_crate_moved_uncompleted_mission) throw 2; + } forEach _crates; }; - setMissionData // Code defined above + + _missionData = [_coords,_mines,_objects,_crates, _blck_AllMissionAI,_assetSpawned,_missionAIVehicles,_markers]; _el set[missionData, _missionData]; @@ -511,7 +429,6 @@ for "_i" from 1 to (count blck_activeMissionsList) do catch // catch all conditions that cause the mission to end. { - //diag_log format["_fnc_monitorInitializeMissions (507): _exception = %1",_exception]; switch (_exception) do { case 1: { // Normal Mission End @@ -532,21 +449,25 @@ for "_i" from 1 to (count blck_activeMissionsList) do { _objects append _crates; }; + private _crateMoney = missionNamespace getVariable (format["blck_crateMoney%1",_difficulty]); + { + [_x,_crateMoney] call blck_fnc_addMoneyToObject; + } forEach _crates; }; }; - if (_spawnCratesTiming isEqualTo "atMissionSpawnGround" && _loadCratesTiming isEqualTo "atMissionCompletion") then + if (_spawnCratesTiming in ["atMissionSpawnGround","atMissionSpawnAir"] && _loadCratesTiming isEqualTo "atMissionCompletion") then { if (!(_secureAsset) || (_secureAsset && (alive _assetSpawned))) then { + private _crateMoney = missionNamespace getVariable (format["blck_crateMoney%1",_difficulty]); { - [_x] call blck_fnc_loadMissionCrate; + [_x] call blck_fnc_loadMissionCrate; + [_x,_crateMoney] call blck_fnc_addMoneyToObject; } forEach _crates; }; }; - _blck_localMissionMarker set [2, _markerMissionName]; - if (_secureAsset && (alive _assetSpawned)) then { if (_assetSpawned getVariable["assetType",0] isEqualTo 1) then @@ -568,54 +489,22 @@ for "_i" from 1 to (count blck_activeMissionsList) do [_assetSpawned,selectRandom(_assetSpawned getVariable["endAnimation",["AidlPercMstpSnonWnonDnon_AI"]])] remoteExec["switchMove",-2]; }; }; - diag_log format["_fnc_monitorInitializedMissions (430) calling <_fnc_endMission> | _cords %1 : _markerType %2 : _difficulty %3 _markerMissionName %4",_coords,_markerType,_difficulty,_markerMissionName]; - // params ["_mines","_objects","_crates","_blck_AllMissionAI","_endMsg","_mainMarker","_labelMarker","_markerClass","_coords",["_endCondition",0]]; - [_mines,_objects,_crates,_blck_AllMissionAI,_endMsg,_mainMarker,_labelMarker,_markerType,_coords, 0] call blck_fnc_endMission; - //diag_log format["_fnc_monitorInitializedMissions (430) Mission Completed | _cords %1 : _markerType %2 : _difficulty %3 _markerMissionName %4",_coords,_markerType,_difficulty,_markerMissionName]; + [_coords,_mines,_objects,_crates,_blck_AllMissionAI,_endMsg,_markers,markerPos (_markers select 1),_markerName,_markerMissionName, _exception] call blck_fnc_endMission; + _waitTime = diag_tickTime + _tMin + random(_tMax - _tMin); - /* - _missionCategoryDescriptors params [ - //"_marker", - "_difficulty", 0 - "_noMissions", 1 // Max no missions of this category - "_noActive", 2 // Number active - //"_timesSpawned", // times spawned, useful for keeping unique markers - "_tMin", 3 // Used to calculate waittime in the future - "_tMax", 4 // as above - "_waitTime", 5 // time at which a mission should be spawned - "_missionsData" // - ]; - */ _missionCategoryDescriptors set [noActive,_noActive - 1]; _missionCategoryDescriptors set [waitTime,_waitTime]; - /* - { - diag_log format["_fnc_monitorInitializedMissions (570): _missionCategoryDescriptors parameter %1 = %2",_x,_missionCategoryDescriptors select _forEachIndex]; - } forEach [ - //"_marker", - "_difficulty", - "_noMissions", // Max no missions of this category - "_noActive", // Number active - //"_timesSpawned", // times spawned, useful for keeping unique markers - "_tMin", // Used to calculate waittime in the future - "_tMax", // as above - "_waitTime", // time at which a mission should be spawned - "_missionsData" // - ]; - */ }; case 2: { // Abort, crate moved. - //[_mines,_objects,_crates,_blck_AllMissionAI,_endMsg,_mainMarker,_labelMarker,_markerType,_coords, 0] - [_mines,_objects,_crates, _blck_AllMissionAI,"Crate Removed from Mission Site Before Mission Completion: Mission Aborted",_mainMarker,_labelMarker,_markerType,_coords,2] call blck_fnc_endMission; _endMsg = "Crate Removed from Mission Site Before Mission Completion: Mission Aborted"; - [_mines,_objects,_crates,_blck_AllMissionAI,_endMsg,_mainMarker,_labelMarker,_markerType,_coords, 0] call blck_fnc_endMission; + [_coords,_mines,_objects,_crates, _blck_AllMissionAI,"Crate Removed from Mission Site Before Mission Completion: Mission Aborted",_markers,markerPos (_markers select 1),_markerName,_markerMissionName, _exception] call blck_fnc_endMission; }; case 3: { // Abort, key asset killed - diag_log format["Asset Killed, aborting mission"]; - #define missionAbort 1 - //[_mines,_objects,_crates,_blck_AllMissionAI,_endMsg,_mainMarker,_labelMarker,_markerType,_coords, 0] - [_mines,_objects,_crates,_blck_AllMissionAI,_endMsg,_mainMarker,_labelMarker,_markerType,_coords, missionAbort] call blck_fnc_endMission; + [_coords,_mines,_objects,_crates,_blck_AllMissionAI,_assetKilledMsg,_markers,markerPos (_markers select 1),_markerName,_markerMissionName, _exception] call blck_fnc_endMission; }; + case 4: { // Reserved for grpNull errors in the future + + }; }; }; }; @@ -624,4 +513,4 @@ for "_i" from 1 to (count blck_activeMissionsList) do blck_activeMissionsList pushBack _el; }; }; -}; \ No newline at end of file +}; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_selectAISidearms.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_selectAISidearms.sqf index b73689d..09b8360 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_selectAISidearms.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_selectAISidearms.sqf @@ -12,7 +12,7 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; params["_aiDifficultyLevel"]; //[["_aiDifficultyLevel",selectRandom["Red","Green"]]]; -//diag_log format["_fnc_selectAISidearms: _aiDifficultyLevel = %1",_aiDifficultyLevel]; + private["_sideArms"]; switch (toLower (_aiDifficultyLevel)) do { diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_selectVehicleCrewCount.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_selectVehicleCrewCount.sqf index 1f34079..a34351b 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_selectVehicleCrewCount.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_selectVehicleCrewCount.sqf @@ -19,5 +19,5 @@ switch (toLower(_diff)) do case "green": {_count = blck_vehCrew_green}; case "orange": {_count = blck_vehCrew_orange}; }; -///diag_log format["_fnc_selectVehicleCrewCount: _count set to %1",_count]; + _count diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_signalEnd.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_signalEnd.sqf index 99f19b9..cd6e4ff 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_signalEnd.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_signalEnd.sqf @@ -16,7 +16,7 @@ private ["_start","_maxHeight","_smokeShell","_light","_lightSource"]; params[["_crate",objNull],["_time",60]]; if (isNull _crate) exitWith {}; _start = diag_tickTime; -//diag_log format["signalEnd.sqf: _this = %1, _crate = %2",_this, _crate]; + _smokeShell = selectRandom ["SmokeShellOrange","SmokeShellBlue","SmokeShellPurple","SmokeShellRed","SmokeShellGreen","SmokeShellYellow"]; _lightSource = selectRandom ["Chemlight_green","Chemlight_red","Chemlight_yellow","Chemlight_blue"]; _light = objNull; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_init_functions.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_init_functions.sqf deleted file mode 100644 index 43476b7..0000000 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_init_functions.sqf +++ /dev/null @@ -1,81 +0,0 @@ -/* - by Ghostrider [GRG] - - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -//diag_log "[blckeagls] GMS_fnc_sm_init_functions.sqf "; -//blck_sm_Groups = []; -blck_sm_Infantry = []; -blck_sm_Vehicles = []; -blck_sm_Aircraft = []; -blck_sm_Emplaced = []; -blck_sm_scubaGroups = []; -blck_sm_surfaceShips = []; -blck_sm_submarines = []; -blck_sm_lootContainers = []; -blck_sm_garrisonBuildings_ASL = []; -blcl_sm_garrisonBuilding_relPos = []; - -blck_fnc_sm_AddGroupToArray = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_AddGroupToArray.sqf"; - -/* -blck_fnc_sm_AddGroup = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_AddGroup.sqf"; -blck_fnc_sm_AddVehicle = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_AddVehicle.sqf"; -blck_fnc_sm_AddAircraft = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_AddAircraft.sqf"; -blck_fnc_sm_AddEmplaced = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_AddEmplaced.sqf"; -*/ -// TODO: Delte soon -private _functions = [ - //["blck_fnc_sm_monitorStaticUnits","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorStaticPatrols.sqf"], - ["blck_fnc_sm_monitorInfantry","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf"], - ["blck_fnc_sm_monitorScuba","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorScuba.sqf"], - ["blck_fnc_sm_monitorVehicles","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorVehicles.sqf"], - ["blck_fnc_sm_monitorAircraft","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorAircraft.sqf"], - ["blck_fnc_sm_monitorShips","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorShips.sqf"], - ["blck_fnc_sm_monitorSubs","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorSubs.sqf"], - ["blck_fnc_sm_monitorEmplaced","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf"], - ["blck_fnc_sm_monitorGarrisonsASL","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorGarrisonsASL.sqf"], - ["blck_fnc_sm_monitorGarrisons_relPos","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorGarrisons_relPos.sqf"], - ["blck_fnc_sm_spawnVehiclePatrol","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnVehiclePatrol.sqf"], - ["blck_fnc_sm_spawnAirPatrol","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnAirPatrol.sqf"], - ["blck_fnc_sm_spawnEmplaced","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnEmplaced.sqf"], -// ["blck_fnc_sm_spawnInfantryPatrol","\q\addons\custom_server\Missions\Static\Code\GMS_sm_spawnInfantryPatrol.sqf"], - ["blck_fnc_sm_staticPatrolMonitor","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_staticPatrolMonitor.sqf"], -// ["blck_fnc_sm_checkForPlayerNearMission","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_checkForPlayerNearMission.sqf"], - ["blck_fnc_sm_spawnAirPatrols","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnAirPatrols.sqf"], - ["blck_fnc_sm_spawnEmplaceds","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnEmplaced.sqf"], - ["blck_fnc_sm_spawnInfantryPatrols","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnInfantryPatrols.sqf"], - ["blck_fnc_sm_spawnLootContainers","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnLootContainers.sqf"], - ["blck_fnc_sm_spawnObjects","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnObjects.sqf"], - ["blck_fnc_sm_spawnVehiclePatrols","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnVehiclePatrols.sqf"], - ["blck_fnc_sm_spawnBuildingGarrison_ASL","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnBuildingGarrisonASL.sqf"], - ["blck_fnc_sm_spawnBuildingGarrison_relPos","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnBuildingGarrison_relPos.sqf"], - ["blck_fnc_sm_spawnObjectASLVectorDirUp","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnObjectASLVectorDirUp.sqf"], - ["blck_fnc_spawnScubaGroup","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_spawnScubaGroup.sqf"], - ["blck_fnc_spawnSDVPatrol","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_spawnSDVPatrol.sqf"], - ["blck_fnc_spawnSurfacePatrol","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_spawnSurfacePatrol.sqf"], - //["blck_fnc_sm_AddScubaGroup","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_AddScubaGroup.sqf"], - //["blck_fnc_sm_AddSurfaceVehicle","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_AddSurfaceVehicle.sqf"], - ["blck_fnc_sm_AddSDVVehicle","\q\addons\custom_server\Missions\Static\Code\GMS_sm_AddSDVVehicle.sqf"] -]; -{ - _x params ["_name","_path"]; - missionnamespace setvariable [_name,compileFinal preprocessFileLineNumbers _path]; -} foreach _functions; - -diag_log "[blckeagls] GMS_sm_init_functions.sqf "; - - -/* -blck_fnc_spawnScubaGroup = compileFinal preprocessFileLineNumbers "q\addons\custom_server\Missions\UMS\code\GMS_fnc_spawnScubaGroup.sqf"; -blck_fnc_spawnSDVPatrol = compileFinal preprocessFileLineNumbers "q\addons\custom_server\Missions\UMS\code\GMS_fnc_spawnSDVPatrol.sqf"; -blck_fnc_spawnSurfacePatrol = compileFinal preprocessFileLineNumbers "q\addons\custom_server\Missions\UMS\code\GMS_fnc_spawnSurfacePatrol.sqf"; -blck_fnc_sm_AddScubaGroup = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Missions\UMS\code\GMS_sm_AddScubaGroup.sqf"; -blck_fnc_sm_AddSurfaceVehicle = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Missions\UMS\code\GMS_sm_AddSurfaceVehicle.sqf"; -blck_fnc_sm_AddSDVVehicle = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Missions\UMS\code\GMS_sm_AddSDVVehicle.sqf"; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_initializeMission.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_initializeMission.sqf index c0fe1b9..58345e7 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_initializeMission.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_initializeMission.sqf @@ -28,7 +28,7 @@ if (isNil "_aiGroupParameters") then {_aiGroupParameters = []}; if (isNil "_missionEmplacedWeapons") then {_missionEmplacedWeapons = []}; if (isNil "_vehiclePatrolParameters") then {_vehiclePatrolParameters = []}; if (isNil "_missionLootVehicles") then {_missionLootVehicles = []}; - +if (isNil "_crateMoney") then {_crateMoney = 0}; _markerClass = format["static%1",floor(random(1000000))]; _blck_localMissionMarker = [_markerClass,_missionCenter,"","",_markerColor,_markerType]; if (blck_labelMapMarkers select 0) then @@ -43,25 +43,6 @@ _blck_localMissionMarker set [3,blck_labelMapMarkers select 1]; // Use an arrow [_blck_localMissionMarker] call blck_fnc_spawnMarker; [_missionLandscape] call blck_fnc_sm_spawnObjects; - -{ - //diag_log format["processing _garrisonedBuilding_ASL %1 which = %2",_forEachIndex,_x]; - // ["Land_i_House_Big_02_V2_F",[23650.3,18331.9,3.19],[[0,1,0],[0,0,1]],[true,true],"Red", - _x params["_buildingClassName","_buildingPosnASL","_buildingVectorDirUp","_buildingDamSim","_aiDifficulty","_staticsASL","_unitsASL","_respawnTimer","_noRespawns"]; - private _building = [_buildingClassName,_buildingPosnASL,_buildingVectorDirUp,_buildingDamSim] call blck_fnc_sm_spawnObjectASLVectorDirUp; - [blck_sm_garrisonBuildings_ASL,[_building,_aiDifficulty,_staticsASL,_unitsASL,_respawnTimer,_noRespawns]] call blck_fnc_sm_AddGroupToArray; - //diag_log format["_fnc_sm_initializeMission: blck_sm_garrisonBuildings_ASL updated to: %1",blck_sm_garrisonBuildings_ASL]; -}forEach _garrisonedBuilding_ASLsystem; - -// blcl_sm_garrisonBuilding_relPos -{ - //diag_log format["processing _garrisonedBuilding_relPos %1 which = %2",_forEachIndex,_x]; - _x params["_buildingClassName","_buildingPosnASL","_buildingVectorDirUp","_buildingDamSim","_aiDifficulty","_p","_noStatics","_typesStatics","_noUnits","_respawnTimer","_noRespawns"]; - private _building = [_buildingClassName,_buildingPosnASL,_buildingVectorDirUp,_buildingDamSim] call blck_fnc_sm_spawnObjectASLVectorDirUp; - [blcl_sm_garrisonBuilding_relPos,[_building,_aiDifficulty,_noStatics,_typesStatics,_noUnits,_respawnTimer,_noRespawns]] call blck_fnc_sm_AddGroupToArray; - //diag_log format["_fnc_sm_initializeMission: blcl_sm_garrisonBuilding_relPos updated to: %1",blcl_sm_garrisonBuilding_relPos]; -}forEach _garrisonedBuildings_BuildingPosnSystem; - { [blck_sm_Aircraft,_x] call blck_fnc_sm_AddGroupToArray; @@ -82,7 +63,7 @@ _blck_localMissionMarker set [3,blck_labelMapMarkers select 1]; // Use an arrow uiSleep 30; // spawn loot chests -[_missionLootBoxes,_missionCenter] call blck_fnc_sm_spawnLootContainers; -[_missionLootVehicles,_missionCenter] call blck_fnc_sm_spawnLootContainers; -diag_log format["[blckeagls] Static Mission Spawner: Mission %1 spawned",_mission]; +[_missionLootBoxes,_missionCenter,_crateMoney] call blck_fnc_sm_spawnLootContainers; +[_missionLootVehicles,_missionCenter,_crateMoney] call blck_fnc_sm_spawnLootContainers; +[format["Static Mission Spawner: Mission %1 spawned",_mission]] call blck_fnc_log; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_initializeUMSStaticMission.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_initializeUMSStaticMission.sqf index e1ed9a3..e57d06b 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_initializeUMSStaticMission.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_initializeUMSStaticMission.sqf @@ -70,4 +70,4 @@ _blck_localMissionMarker set [3,blck_labelMapMarkers select 1]; // Use an arrow // spawn loot chests [_missionLootBoxes,_missionCenter] call blck_fnc_sm_spawnLootContainers; -diag_log format["[blckeagls] UMS Mission Spawner: Static UMS Mission %1 spawned",_mission]; +[format["UMS Mission Spawner: Static UMS Mission %1 spawned",_mission]] call blck_fnc_log; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_monitorGarrisons_relPos.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_monitorGarrisons_relPos.sqf index af99c94..ef1eb54 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_monitorGarrisons_relPos.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_monitorGarrisons_relPos.sqf @@ -11,7 +11,7 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; private["_mode","_sm_groups","_pos","_element"]; if (blck_fnc_sm_spawnBuildingGarrison_relPos isEqualTo []) exitWith {}; -_sm_groups = +blcl_sm_garrisonBuilding_relPos; +_sm_groups = +blck_sm_garrisonBuilding_relPos; { _x params["_groupParameters","_group","_groupSpawned","_timesSpawned","_respawnAt"]; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnBuildingGarrisonASL.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnBuildingGarrisonASL.sqf index 4c7241b..4735b73 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnBuildingGarrisonASL.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnBuildingGarrisonASL.sqf @@ -1,11 +1,10 @@ params["_building","_aiDifficultyLevel","_statics","_units"]; -//diag_log format["_fnc_sm_spawnBuildingGarrisonASL: handling _building = %1 | at location = %2",_building,position _building]; + private _group = [blck_AI_Side,true] call blck_fnc_createGroup; if !(isNull _group) then { - //params["_building","_group","_statics","_men","_aiDifficultyLevel","_uniforms","_headGear","_vests","_backpacks",["_launcher","none"],"_weaponList","_sideArms"]; [_building,_group,_statics,_units,_aiDifficultyLevel] call blck_fnc_spawnGarrisonInsideBuilding_ATL; }; _group diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnEmplaced.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnEmplaced.sqf index 27b98fc..5d2efce 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnEmplaced.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnEmplaced.sqf @@ -19,38 +19,28 @@ _units = []; _abort = false; _pos = []; -//diag_log format["_sm_spawnEmplaced :: _missionEmplacedWeapons = %1",_missionEmplacedWeapons]; // Define _missionEmplacedWeapons if not already configured. if (_missionEmplacedWeapons isEqualTo []) then { _missionEmplacedWeaponPositions = [_coords,_noEmplacedWeapons,35,50] call blck_fnc_findPositionsAlongARadius; { _static = selectRandom blck_staticWeapons; - //diag_log format["_fnc_spawnEmplacedWeaponArray: creating spawn element [%1,%2]",_static,_x]; _missionEmplacedWeapons pushback [_static,_coords vectorAdd _x,_aiDifficultyLevel]; - //diag_log format["_fnc_spawnEmplacedWeaponArray: _mi updated to %1",_missionEmplacedWeapons]; } forEach _missionEmplacedWeaponPositions; }; -//diag_log format["_sm_spawnEmplaced:: _missionEmplacedWeapons = %1",_missionEmplacedWeapons]; + { _wepnClassName = _x select 0; _pos = _x select 1; _difficulty = _x select 2; - // params["_pos", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], "_center", ["_minDist",20], ["_maxDist",35], ["_uniforms",blck_SkinList], ["_headGear",blck_headgear] ]; private _empGroup = [blck_AI_Side,true] call blck_fnc_createGroup; if !(_empGroup) then { [_empGroup,_pos,1,1,_difficulty,_pos,1,2,_uniforms,_headGear,false] call blck_fnc_spawnGroup; _empGroup setcombatmode "RED"; _empGroup setBehaviour "COMBAT"; - // // params["_pos","_minDis","_maxDis","_group",["_mode","random"],["_wpPatrolMode","SAFE"],["_soldierType","null"],["_patrolRadius",30],["_wpTimeout",[5.0,7.5,10]]]; - // Not sure of the value of giving waypoints here - //[_pos,0.01,0.02,_empGroup,"random","SAD","emplaced"] spawn blck_fnc_setupWaypoints; - //if (isNull _empGroup) exitWith {_abort = _true}; - _wep = [_wepnClassName,[0,0,0],false] call blck_fnc_spawnVehicle; - //_empGroup setVariable["groupVehicle",_wep]; - //_wep setVariable["vehicleGroup",_empGroup]; + _wep = [_wepnClassName,[0,0,0],"NONE",0] call blck_fnc_spawnVehicle; _wep setVariable["GRG_vehType","emplaced"]; _wep setPosATL _pos; [_wep,false] call blck_fnc_configureMissionVehicle; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnEmplaceds.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnEmplaceds.sqf index e262077..4018aac 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnEmplaceds.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnEmplaceds.sqf @@ -19,34 +19,24 @@ _units = []; _abort = false; _pos = []; -//diag_log format["_sm_spawnEmplaced :: _missionEmplacedWeapons = %1",_missionEmplacedWeapons]; // Define _missionEmplacedWeapons if not already configured. if (_missionEmplacedWeapons isEqualTo []) then { _missionEmplacedWeaponPositions = [_coords,_noEmplacedWeapons,35,50] call blck_fnc_findPositionsAlongARadius; { _static = selectRandom blck_staticWeapons; - //diag_log format["_fnc_spawnEmplacedWeaponArray: creating spawn element [%1,%2]",_static,_x]; _missionEmplacedWeapons pushback [_static,_coords vectorAdd _x,_aiDifficultyLevel]; - //diag_log format["_fnc_spawnEmplacedWeaponArray: _mi updated to %1",_missionEmplacedWeapons]; } forEach _missionEmplacedWeaponPositions; }; -//diag_log format["_sm_spawnEmplaced:: _missionEmplacedWeapons = %1",_missionEmplacedWeapons]; + { _wepnClassName = _x select 0; _pos = _x select 1; _difficulty = _x select 2; - - /// params["_pos", "_center", _numai1, _numai2, _skillLevel, _minDist, _maxDist, _configureWaypoints, _uniforms, _headGear,_vests,_backpacks,_weaponList,_sideArms, _scuba ]; __empGroup = [_pos,_pos,1,1,_difficulty,1,2,false,_uniforms,_headGear] call blck_fnc_spawnGroup; _empGroup setcombatmode "RED"; _empGroup setBehaviour "COMBAT"; - // Not sure of the value of giving waypoints here. - //[_pos,0.01,0.02,_empGroup,"random","SAD","emplaced"] spawn blck_fnc_setupWaypoints; - //if (isNull _empGroup) exitWith {_abort = _true}; - _wep = [_wepnClassName,[0,0,0],false] call blck_fnc_spawnVehicle; - //_empGroup setVariable["groupVehicle",_wep]; - //_wep setVariable["vehicleGroup",_empGroup]; + _wep = [_wepnClassName,[0,0,0]] call blck_fnc_spawnVehicle; _wep setVariable["GRG_vehType","emplaced"]; _wep setPosATL _pos; [_wep,false] call blck_fnc_configureMissionVehicle; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnInfantryPatrols.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnInfantryPatrols.sqf index b78771b..aa59f9d 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnInfantryPatrols.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnInfantryPatrols.sqf @@ -27,13 +27,9 @@ _backpacks = [_aiDifficultyLevel] call blck_fnc_selectAIBackpacks; if !(_patrols isEqualTo []) then { { - //diag_log format["_sm_spawnInfantryPatrols.sqf:: _x = %1",_x]; // Use the pre-defined spawn positions and other parameters for each group. - // [[22819.4,16929.5,5.33892],"red",4, 75] _x params ["_pos","_difficulty","_noAI","_patrolRadius"]; private _group = [blck_AI_Side,true] call blck_fnc_createGroup; - // params[["_group","Error"],"_pos", "_center", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], ["_minDist",30], ["_maxDist",45],["_configureWaypoints",true], ["_uniforms",[]], ["_headGear",[]],["_vests",[]],["_backpacks",[]], - // ["_weaponList",[]],["_sideArms",[]], ["_scuba",false],["_patrolRadius",30]]; #define setupWaypoints true if !(isNull _group) then { diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnLootContainers.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnLootContainers.sqf index 3c7d549..91e4d09 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnLootContainers.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnLootContainers.sqf @@ -10,7 +10,7 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -params["_objectDescriptors","_coords"]; +params["_objectDescriptors","_coords",["_money",-1]]; if !(_objectDescriptors isEqualTo []) then { // Spawn loot crates where specified in _objects using the information for loot parameters provided for each location. @@ -18,6 +18,14 @@ if !(_objectDescriptors isEqualTo []) then // data within the descriptor for each loot crate is organized as follows (not that the _allowDamageSim is included just for backward compatibilty but is not used _x params["_crateClassName","_cratePosASL","_vectorDirUp","_allowDamageSim","_crateLoot","_lootCounts"]; private _crate = [_cratePosASL, _crateClassName] call blck_fnc_spawnCrate; + if (blck_debugLevel >= 3) then + { + [format["_fnc_sm_initializeMission: _money = %1",_money]] call blck_fnc_log; + }; + if (_money > 0) then + { + [_crate,_money] call blck_fnc_addMoneyToObject; + }; [_crate, _crateLoot,_lootCounts] call blck_fnc_fillBoxes; } forEach _objectDescriptors; } @@ -26,6 +34,10 @@ else { _crateType = selectRandom blck_crateTypes; _crate = [_coords,_crateType] call blck_fnc_spawnCrate; + if !(_money == -1) then + { + [_crate,_money] call blck_fnc_addMoneyToObject; + }; [_crate,blck_BoxLoot_Red,blck_lootCountsGreen] call blck_fnc_fillBoxes; }; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnLootVehicles.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnLootVehicles.sqf index 71984ef..5c52919 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnLootVehicles.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnLootVehicles.sqf @@ -16,7 +16,7 @@ params["_vehicleDescriptors","_coords"]; { // data within the descriptor for each loot vehicle is organized as follows (not that the _allowDamageSim is included just for backward compatibilty but is not used) _x params["_vehcleClassName","_posATL","_vectorDirUp","_allowDamageSim","_loot","_lootCounts"]; - private _veh = [_vehcleClassName,_posATL] call blck_fnc_spawnVehicle; + private _veh = [_vehcleClassName,_posATL,"NONE",30] call blck_fnc_spawnVehicle; [_veh, _loot,_lootCounts] call blck_fnc_fillBoxes; } forEach _vehicleDescriptors; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnMission.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnMission.sqf index e359772..72fcdd0 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnMission.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnMission.sqf @@ -18,27 +18,18 @@ uiSleep 10; // Let the objects 'settle' before placing anything on or around the // Spawn Air Patrols -// params["_airPatrols","_noAirPatrols","_heliTypes","_center","_difficulty","_uniforms","_headGear"]; [_airPatrols,_noAirPatrols,_aircraftTypes,_missionCenter,_difficulty,_uniforms,_headgear,_weapons] call blck_fnc_sm_spawnAirPatrols; -//uiSleep 1; // Spawn Vehicle Patrols -// params["_coords","_noVehiclePatrols","_vehiclePatrolSpawns","_aiDifficultyLevel","_uniforms","_headGear",["_missionType","unspecified"]]; [_missionCenter,_noVehiclePatrols,_vehiclePatrolParameters,_difficulty,_uniforms,_headGear] call blck_fnc_sm_spawnVehiclePatrols; -//uiSleep 1; - // spawn infantry -// params["_patrols","_coords",["_minNoAI",3],["_maxNoAI",6],["_aiDifficultyLevel","red"],["_weapons",blck_WeaponList_Orange],["_uniforms",blck_SkinList],["_headGear",blck_BanditHeadgear]]; [_aiGroupParameters, _missionCenter,_minNoAI,_maxNoAI,_difficulty,_weapons,_uniforms,_headGear] call blck_fnc_sm_spawnInfantryPatrols; -//uiSleep 1; // spawn loot vehicles -// params["_objects","_coords","_loot","_lootCounts"]; [_missionLootVehicles,_missionCenter,_crateLoot,_lootCounts] call blck_fnc_sm_spawnLootContainers; // Spawn static weapons -// params["_missionEmplacedWeapons","_noEmplacedWeapons","_aiDifficultyLevel","_coords","_uniforms","_headGear"]; [_missionEmplacedWeapons,_noEmplacedWeapons,_difficulty,_missionCenter,_uniforms,_headGear] call blck_fnc_sm_spawnEmplaceds; // spawn loot chests @@ -47,5 +38,4 @@ uiSleep 10; // Let the objects 'settle' before placing anything on or around the _blck_localMissionMarker = ["",_missionCenter,"","",_markerColor,_markerType]; [_blck_localMissionMarker] call blck_fnc_spawnMarker; -diag_log format["[blckeagls] Static Mission Spawner: Mission %1 spawned",_mission]; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnVehiclePatrols.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnVehiclePatrols.sqf index d6a9e0e..27f5f31 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnVehiclePatrols.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnVehiclePatrols.sqf @@ -13,15 +13,14 @@ params["_coords","_noVehiclePatrols","_vehiclePatrolSpawns","_aiDifficultyLevel"]; -private["_vehGroup","_patrolVehicle","_missionAI","_missiongroups","_vehicles","_return","_vehiclePatrolSpawns","_randomVehicle","_return","_abort"]; -private ["_weaponList","_sideArms","_uniforms","_headgear","_vests","_backpacks"]; +private["_vehGroup","_patrolVehicle","_missionAI","_missiongroups","_vehicles","_return","_vehiclePatrolSpawns","_randomVehicle","_return","_abort", + "_weaponList","_sideArms","_uniforms","_headgear","_vests","_backpacks"]; if (_vehiclePatrolSpawns isEqualTo []) then { private["_spawnPoints","_vehType"]; _spawnPoints = [_coords,_noVehiclePatrols,75,100] call blck_fnc_findPositionsAlongARadius; { - // ["Vehicle Class Name", position[x,y,z], AI Skill [blue, red, green, orange],patrol radius [0 for static units], respawn time [seconds]] #define vehiclePatrolRadius 150 #define vehicleRespawnTime 900 _vehType = selectRandom blck_AIPatrolVehicles; @@ -48,6 +47,7 @@ if (_vehiclePatrolSpawns isEqualTo []) then #define useWaypoints true _patrolVehicle = [_spawnPos,_spawnPos,_vehicle,_patrolRadius,_patrolRadius,_vehGroup,useWaypoints,[difficulty] call blck_fnc_selectVehicleCrewCount,_patrolRadius] call blck_fnc_spawnVehiclePatrol; // Check whether we should pass the group; looks like we should. + }; } forEach _vehiclePatrolSpawns; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_staticPatrolMonitor.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_staticPatrolMonitor.sqf index be5a3ee..9570b6b 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_staticPatrolMonitor.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_staticPatrolMonitor.sqf @@ -11,7 +11,6 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -//diag_log format["_fnc_staticPatrolMonitor called at %1",diag_tickTime]; [] call blck_fnc_sm_monitorInfantry; [] call blck_fnc_sm_monitorScuba; [] call blck_fnc_sm_monitorVehicles; @@ -19,7 +18,5 @@ [] call blck_fnc_sm_monitorEmplaced; [] call blck_fnc_sm_monitorShips; [] call blck_fnc_sm_monitorSubs; -//[] call blck_fnc_sm_monitorGarrisonsASL; -//[] call blck_fnc_sm_monitorGarrisons_relPos; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_smokeAtCrates.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_smokeAtCrates.sqf index 568f11c..c76f6c3 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_smokeAtCrates.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_smokeAtCrates.sqf @@ -12,54 +12,33 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; - + _wreckSelected = selectRandom ["Land_Wreck_Car2_F","Land_Wreck_Car3_F","Land_Wreck_Car_F","Land_Wreck_Offroad2_F","Land_Wreck_Offroad_F","Land_Tyres_F","Land_Pallets_F","Land_MetalBarrel_F"]; +params["_pos","_mode",["_maxDist",12],["_wreckChoices",_wreckSelected],["_addFire",false]]; private ["_objs","_wreckSelected","_smokeType","_fire","_posFire","_posWreck","_smoke","_dis","_minDis","_maxDis","_closest","_wrecks"]; -_objs = []; -// http://www.antihelios.de/EK/Arma/index.htm -_wrecks = ["Land_Wreck_Car2_F","Land_Wreck_Car3_F","Land_Wreck_Car_F","Land_Wreck_Offroad2_F","Land_Wreck_Offroad_F","Land_Tyres_F","Land_Pallets_F","Land_MetalBarrel_F"]; - -params["_pos","_mode",["_maxDist",12],["_wreckChoices",_wrecks],["_addFire",false]]; - -_wreckSelected = selectRandom _wreckChoices; -//_smokeTrail = "test_EmptyObjectForSmoke"; // "options are "test_EmptyObjectForFireBig", "test_EmptyObjectForSmoke" -_smokeType = if(_addFire) then {"test_EmptyObjectForFireBig"} else {"test_EmptyObjectForSmoke"}; + _smokeType = if(_addFire) then {"test_EmptyObjectForFireBig"} else {"test_EmptyObjectForSmoke"}; switch (_mode) do { - case "none": {if (true) exitWith {};}; + case "none": {_minDis = 0; _maxDis = 1; _closest = 1;}; case "center": {_minDis = 5; _maxDis = 15; _closest = 5;}; case "random": {_minDis = 15; _maxDis = 50; _closest = 10;}; default {_minDis = 5; _maxDis = 15; _closest = 5;}; }; -_dis = 0; -//_posWreck = [_pos, 0, 30, 10, 0, 20, 0] call BIS_fnc_findSafePos; // Position the wreck within 30 meters of the position and 5 meters away from the nearest object -// _minDis and _maxDis determine the spacing between the smoking item and the loot crate. -_minDis = 5; // Minimum distance of -//_maxDis = 50; -_closest = 10; +private _posWreck = [_pos, _minDis, 50, _closest, 0, 20, 0] call BIS_fnc_findSafePos; // find a safe spot near the location passed in the call -while {_dis < _maxDist} do -{ - _posWreck = [_pos, _minDis, 50, _closest, 0, 20, 0] call BIS_fnc_findSafePos; // find a safe spot near the location passed in the call - _dis = _posWreck distance _pos; -}; // spawn a wreck near the mission center _fire = createVehicle [_wreckSelected, [0,0,0], [], 0, "can_collide"]; _fire setVariable ["LAST_CHECK", (diag_tickTime + 14400)]; _fire setPos _posWreck; _fire setDir random(360); -//https://community.bistudio.com/wiki/setVectorUp -//_fire setVectorUp surfaceNormal position _fire; - // spawn asmoke or fire source near the wreck and attach it. -_smoke = createVehicle [_smokeType, [0,0,0], [], 0, "can_collide"]; // "test_EmptyObjectForSmoke" createVehicle _posFire; +_smoke = createVehicle [_smokeType, [0,0,0], [], 0, "can_collide"]; _smoke setVariable ["LAST_CHECK", (diag_tickTime + 14400)]; _smoke setPos _posWreck; -_smoke attachto [_fire, [0,0,1]]; +_smoke attachto [_fire, [0,0,1.5]]; -_objs = _objs + [_fire,_smoke]; -//diag_log format ["--smokeAtCrate.sqf:: _objs = %1",_objs]; +_objs = [_fire,_smoke]; _objs diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnBaseObjects.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnBaseObjects.sqf index c4c0915..46d0548 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnBaseObjects.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnBaseObjects.sqf @@ -34,13 +34,9 @@ _newObjs pushBack _obj; _dam = _x select 4; }; - //diag_log format["_fnc_spawnBaseObjects: className %1 | _center %2 | _offset %3 | element %4",_x select 0,_center,_x select 1,_forEachIndex]; - _obj = createVehicle[(_x select 0),_center vectorAdd (_x select 1),[],0,"CAN_COLLIDE"]; - //diag_log format["_fnc_spawnBaseObjects::-->> _x = %1 | _obj = %2",_x,_obj]; _newObjs pushback _obj; - _obj setDir (_x select 2); - + [_obj, (_x select 2)] call blck_fnc_setDirUp; _obj enableDynamicSimulation _sim; _obj allowDamage _dam; if ((typeOf _obj) isKindOf "LandVehicle" || (typeOf _obj) isKindOf "Air" || (typeOf _obj) isKindOf "Sea") then diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnCrate.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnCrate.sqf index ade82ac..eaa569d 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnCrate.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnCrate.sqf @@ -10,27 +10,22 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -private ["_crate"]; params["_coords",["_crateType","Box_NATO_Wps_F"],["_crateDir",0]]; -_crate = createVehicle [_crateType,[0,0,0],[], 2, "NONE"]; +private _cratePos = _coords findEmptyPosition[15,25,_crateType]; +_crate = createVehicle [_crateType,_coords,[], 0, "NONE"]; _crate setVariable ["LAST_CHECK", 100000]; _crate allowDamage false; _crate enableRopeAttach false; [_crate] call blck_fnc_emptyObject; - _crate setPosATL [_coords select 0, _coords select 1, (_coords select 2) + 0.25]; -_crate setDir _crateDir; -//_crate setVectorUp [0,0,1]; +[_crate, _crateDir] call blck_fnc_setDirUp; _crate setVectorUp surfaceNormal position _crate; -// the function to have a lightsource on underwater objects needs work. + if ((_coords select 2) < 0 || surfaceIsWater (_coords)) then { private["_lantern","_bbr","_p1","_p2","_maxHeight"]; - //_lantern = createVehicle ["PortableHelipadLight_01_red_F", [0,0,0],[],0,"CAN_COLLIDE"];// Land_Camping_Light_F - //_lantern enableSimulationGlobal true; - //_lantern switchLight "on"; _light = "#lightpoint" createVehicle (getPos _crate); _light setLightDayLight true; _light setLightBrightness 1.0; @@ -40,7 +35,6 @@ if ((_coords select 2) < 0 || surfaceIsWater (_coords)) then _p1 = _bbr select 0; _p2 = _bbr select 1; _maxHeight = abs ((_p2 select 2) - (_p1 select 2)); - //diag_log format["_fnc_spawnCrate: _bbr = %1 | _maxHeight = %2",_bbr,_maxHeight]; _light attachTo [_crate, [0,0,(_maxHeight + 0.5)]]; }; _crate; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnEmplacedWeaponArray.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnEmplacedWeaponArray.sqf index a02ff33..265c65c 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnEmplacedWeaponArray.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnEmplacedWeaponArray.sqf @@ -20,12 +20,6 @@ if (_backpacks isEqualTo []) then {_backpacks = [_aiDifficultyLevel] call blc if (_weaponList isEqualTo []) then {_weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout}; if (_sideArms isEqualTo []) then {[_aiDifficultyLevel] call blck_fnc_selectAISidearms}; -/* -{ - diag_log format["_fnc_spawnEmplacedWeaponArray: _this %1 varName %2 = %3",_forEachIndex,_x,_this select _forEachIndex]; -} forEach ["_coords","_missionEmplacedWeapons","_useRelativePos","_noEmplacedWeapons","_aiDifficultyLevel"]; -*/ - private["_return","_emplacedWeps","_emplacedAI","_wep","_units","_gunner","_abort","_pos","_mode","_useRelativePos","_useRelativePos"]; _emplacedWeps = []; _emplacedAI = []; @@ -58,8 +52,7 @@ if (_missionEmplacedWeapons isEqualTo []) then #define maxAI 1 #define minDist 1 #define maxDist 2 - - /// // params["_pos", "_center", _numai1, _numai2, _skillLevel, _minDist, _maxDist, _configureWaypoints, _uniforms, _headGear,_vests,_backpacks,_weaponList,_sideArms, _scuba ]; + private _empGroup = [blck_AI_Side,true] call blck_fnc_createGroup; if !(isNull _empGroup) then { @@ -82,7 +75,7 @@ if (_missionEmplacedWeapons isEqualTo []) then } else { _abort = true; _return = grpNull; - diag_log format["[blckeagls] createGroup returned grpNull"]; + ["createGroup returned grpNull","warning"] call blck_fnc_log; }; } forEach _missionEmplacedWeapons; if !(_abort) then diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnGarrisonInsideBuilding_ATL.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnGarrisonInsideBuilding_ATL.sqf index d0eebc7..dda8bef 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnGarrisonInsideBuilding_ATL.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnGarrisonInsideBuilding_ATL.sqf @@ -26,10 +26,8 @@ _staticsSpawned = []; _obj = [_staticClassName, [0,0,0]] call blck_fnc_spawnVehicle; _obj setVariable["GRG_vehType","emplaced"]; _staticsSpawned pushBack _obj; - //diag_log format["_fnc_spawnGarrisonInsideBuilding_ATL: _obj = %1 | _staticsSpawned = %2",_obj,_staticsSpawned]; _obj setPosATL (_staticRelPos vectorAdd getPosATL _building); _obj setDir _staticDir; - //diag_log format["_fnc_spawnGarrisonInsideBuilding_ATL: _obj = %1 | getPosATL _obj = %2",_obj,getPosATL _obj]; _unit = [[0,0,0],_group,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_launcher,_weaponList,_sideArms,false,true] call blck_fnc_spawnUnit; _unit moveInGunner _obj; }forEach _statics; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnGarrisonInsideBuilding_relPos.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnGarrisonInsideBuilding_relPos.sqf index 1160bda..7d17a2e 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnGarrisonInsideBuilding_relPos.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnGarrisonInsideBuilding_relPos.sqf @@ -17,29 +17,25 @@ if (_uniforms isEqualTo []) then {_uniforms = [_aiDifficultyLevel] call blck_f if (_headGear isEqualTo []) then {_headGear = [_aiDifficultyLevel] call blck_fnc_selectAIHeadgear}; if (_vests isEqualTo []) then {_vests = [_aiDifficultyLevel] call blck_fnc_selectAIVests}; if (_backpacks isEqualTo []) then {_backpacks = [_aiDifficultyLevel] call blck_fnc_selectAIBackpacks}; -//if (_typesStatics isEqualTo []) then {_typesStatics = blck_staticWeapons}; -private["_staticsSpawned","_allBldPsn","_allBldPsn","_floor","_ceil","_statics","_units","_unit","_obj","_staticClassName","_usedBldPsn","_pos","_obj"]; -_allBldPsn = [_building] call BIS_fnc_buildingPositions; -_usedBldPsn = []; -_floor = floor((count _allBldPsn)/2); -_ceil = ceil((count _allBldPsn)/2); -_statics = if (_ceil > _noStatics) then {_noStatics} else {_ceil}; -_units = if (_floor > _noUnits) then {_noUnits} else {_floor}; -_staticsSpawned = []; +private["_unit","_obj","_staticClassName","_usedBldPsn","_pos","_obj"]; +private _allBldPsn = [_building] call BIS_fnc_buildingPositions; +private _usedBldPsn = []; +private _floor = floor((count _allBldPsn)/2); +private _ceil = ceil((count _allBldPsn)/2); +private _statics = if (_ceil > _noStatics) then {_noStatics} else {_ceil}; +private _units = if (_floor > _noUnits) then {_noUnits} else {_floor}; +private _staticsSpawned = []; uiSleep 1; for "_i" from 1 to _statics do { - diag_log format["_fnc_spawnGarrisonInsideBuilding_relPos: _x = %1",_x]; _pos = selectRandom _allBldPsn; _allBldPsn = _allBldPsn - [_pos]; _staticClassName = selectRandom _typesStatics; - _obj = [_staticClassName, [0,0,0], true] call blck_fnc_spawnVehicle; + _obj = [_staticClassName, [0,0,0]] call blck_fnc_spawnVehicle; _obj setVariable["GRG_vehType","emplaced"]; _staticsSpawned pushBack _obj; - diag_log format["_fnc_spawnGarrisonInsideBuilding_relPos: _obj = %1 | _staticsSpawned = %2",_obj,_staticsSpawned]; _obj setPosATL _pos; // (_pos vectorAdd (getPosATL _building)); - diag_log format["static weapon %1 placed in building %2 located at %4 at postion %3",_obj,_building,_pos, getPosATL _building]; _unit = [[0,0,0],_group,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_launcher,_weaponList,_sideArms,false,true] call blck_fnc_spawnUnit; _unit moveInGunner _obj; }; @@ -48,7 +44,6 @@ for "_i" from 1 to _units do { _pos = selectRandom _allBldPsn; _allBldPsn = _allBldPsn - [_pos]; - // ["_pos","_aiGroup",["_aiDifficultyLevel","red"],["_uniforms", []],["_headGear",[]],["_vests",[]],["_backpacks",[]],["_Launcher","none"],["_weaponList",[]],["_sideArms",[]],["_scuba",false],["_garrison",false]]; _unit = [[0,0,0],_group,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_launcher,_weaponList,_sideArms,false,true] call blck_fnc_spawnUnit; _unit setPosATL _pos; }; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMines.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMines.sqf index 83932ac..fe62427 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMines.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMines.sqf @@ -32,13 +32,10 @@ for "_i" from 1 to _noMines/2 do _xpos = (_pos select 0) + sin (_dir) * _radius; _ypos = (_pos select 1) + cos (_dir) * _radius; _posMine = [_xpos,_ypos,0]; - //_posMine = [[_xpos,_ypos,0],0,10,_closest,0,20,0] call BIS_fnc_findSafePos; // find a random loc _mine = createMine ["ATMine", _posMine, [], 0]; _mine setVariable ["LAST_CHECK", (diag_tickTime + 14400)]; _mine setPos _posMine; - //https://community.bistudio.com/wiki/setVectorUp _minesPlaced = _minesPlaced + [_mine]; - //diag_log format["[spawnMines.sqf] mine # %2 spawned at %1",_posMine,_i]; }; _dir = _dir + _incr; }; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionCrates.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionCrates.sqf index 1fa2861..98ee94d 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionCrates.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionCrates.sqf @@ -17,7 +17,6 @@ _fnc_dropMissionCrates = { _markers = []; { - // params["_pos","_crate",["_crateVisualMarker",true],["_dropHeight", 150]]; [(getPos _x), _x, true, 150] call blck_fnc_paraDropObject; } forEach _crates; @@ -26,7 +25,6 @@ _fnc_dropMissionCrates = { { uiSleep 1; { - // (((getPos _crate) select 2) < 3) if ((getPos _x) select 2 < 5) then { _airborneCrates = _airborneCrates - [_x]; @@ -36,12 +34,9 @@ _fnc_dropMissionCrates = { _location = getPos _x; _blck_localMissionMarker = [format["crateMarker%1%2",_location select 0, _location select 1],_location,"","","ColorBlack",["mil_dot",[]]]; _marker = [_blck_localMissionMarker] call blck_fnc_spawnMarker; - //_markers pushBack _marker; blck_temporaryMarkers pushBack [_marker,diag_tickTime + 300]; - //uiSleep 0.5; _curPosCrate = getPos _x; _x setPos [_curPosCrate select 0, _curPosCrate select 1, 0.3]; - //_x setVectorDirAndUp[[0,1,0],[0,0,1]]; }; } forEach _crates; }; @@ -63,7 +58,7 @@ private _cratesSpawned = []; private _pos = _coords vectorAdd _crateOffset; private _crate = [_pos,_crateType] call blck_fnc_spawnCrate; - _crate setDir _crateDir; + [_crate, _crateDir] call blck_fnc_setDirUp; _crate setVariable["lootArray",_lootArray]; _crate setVariable["lootCounts",_lootCounts]; _crate setVariable["difficulty",_difficulty]; @@ -72,19 +67,10 @@ private _cratesSpawned = []; [_crate] call blck_fnc_loadMissionCrate; }; _cratesSpawned pushback _crate; - #define blck_debugMode - #ifdef blck_debugMode - if (blck_debugLevel >= 2) then - { - _marker = createMarker [format["crateMarker%1",random(1000000)], _pos]; - _marker setMarkerType "mil_triangle"; - _marker setMarkerColor "colorGreen"; - _crate setVariable["crateMarker",_marker]; - }; - #endif + }forEach _cratesToSpawn; -if (_spawnCrateTiming in ["atMissionEndAir","atMissionStartAir"]) then +if (_spawnCrateTiming in ["atMissionEndAir","atMissionSpawnAir"]) then { [_cratesSpawned] spawn _fnc_dropMissionCrates; }; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionLootVehicles.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionLootVehicles.sqf index b44771f..acbe0b4 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionLootVehicles.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionLootVehicles.sqf @@ -16,21 +16,13 @@ if (count _coords isEqualTo 2) then {_coords pushBack 0}; private _vehs = []; { _x params["_vehType","_vehOffset",["_dir",0],"_lootArray","_lootCounts"]; - //diag_log format["spawnMissionCVehicles: _vehType = %1 | _vehOffset = %2 | _lootCounts = %4 | _dir %5 | _lock %6 | _lootArray = %3 ",_vehType,_vehOffset,_lootArray,_lootCounts,_dir,_lock]; private _pos =_coords vectorAdd _vehOffset; _veh = [_vehType, _pos] call blck_fnc_spawnVehicle; - if (typeName _dir isEqualTo "SCALAR") then - { - _veh setDir _dir; - }; - if (typeName _dir isEqualTo "ARRAY") then - { - _veh setVectorDirAndUp _dir; - }; + [_veh, _dir] call blck_fnc_setDirUp; + _veh lock _lock; if (_loadCrateTiming isEqualTo "atMissionSpawn") then { - //diag_log format["blck_fnc_spawnMissionLootVehicles::-> loading loot at mission spawn for veh %1",_x]; [_veh,_lootArray,_lootCounts] call blck_fnc_fillBoxes; _veh setVariable["lootLoaded",true]; }; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionVehiclePatrols.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionVehiclePatrols.sqf index d515f84..41d59bd 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionVehiclePatrols.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionVehiclePatrols.sqf @@ -28,7 +28,7 @@ private["_vehGroup","_vehiclePatrolSpawns","_missionAI","_missiongroups","_vehic _vehicles = []; _missionAI = []; _abort = false; -//diag_log format["fnc_spawnMissionVehiclePatrols(29): _missionPatrolVehicles = %1",_missionPatrolVehicles]; + if (_missionPatrolVehicles isEqualTo []) then { _useRelativePos = false; @@ -37,7 +37,6 @@ if (_missionPatrolVehicles isEqualTo []) then _v = [_skillAI] call blck_fnc_selectPatrolVehicle; _missionPatrolVehicles pushBack [_v, _x]; }forEach _vehiclePatrolSpawns; - //diag_log format["fnc_spawnMissionVehiclePatrols(38): _missionPatrolVehicles updated to %1",_missionPatrolVehicles]; }; #define configureWaypoints false { diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnPendingMissions.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnPendingMissions.sqf index 0200063..77be5fd 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnPendingMissions.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnPendingMissions.sqf @@ -1,8 +1,3 @@ -/* - for ghostridergaming - By Ghostrider [GRG] - Copyright 2016 - checks the status of each entry in /* By Ghostrider [GRG] -------------------------- @@ -16,30 +11,29 @@ if (blck_missionsRunning >= blck_maxSpawnedMissions) exitWith {}; -private["_coords","_compiledMission","_search","_readyToSpawnQue","_missionToSpawn","_allowReinforcements"]; -_readyToSpawnQue = []; -{ - if ( (diag_tickTime > (_x select 5)) && ((_x select 5) > 0) ) then +{ + private _missionCategoryDescriptors = _x; + _missionCategoryDescriptors params["_difficulty","_maxNoMissions","_noActiveMissions","_tMin","_tMax","_waitTime","_missionsData"]; + + if (_noActiveMissions < _maxNoMissions && diag_tickTime > _waitTime && blck_missionsRunning < blck_maxSpawnedMissions) then { - _readyToSpawnQue pushback _x; + + // time to reset timers and spawn something. + private _wt = diag_tickTime + _tmin + (random(_tMax - _tMin)); + private _missionInitialized = [_x,selectRandom _missionsData] call blck_fnc_initializeMission; + if (blck_debugLevel >= 3) then + { + if !(_missionInitialized) then + { + [format["fnc_spawnPendingMissions: _missionInitialized = %1",_missionInitialized],"warning"] call blck_fnc_log; + }; + }; + if (_missionInitialized) then + { + #define waitTime 5 + #define noActive 2 + _x set[waitTime, _wt]; // _x here is the _missionCategoryDescriptors being evaluated + _x set[noActive, _noActiveMissions + 1]; + }; }; -} forEach blck_pendingMissions; - -if (count _readyToSpawnQue > 0) then -{ - _missionToSpawn = selectRandom _readyToSpawnQue; - - - _coords = [] call blck_fnc_FindSafePosn; - if (_coords isEqualTo []) exitWith - { - diag_log format["[blckagls] fnc_spawnPendingMissions: _fnc_findSafePosn could not find a location for this mission; consider reducing distances between players, bases, missions or towns."]; - }; - _compiledMission = selectRandom (_missionToSpawn select 0); - - _missionMarker = _missionToSpawn select 1; - _missionDifficulty = _missionToSpawn select 2; - [_coords,_missionMarker,_missionDifficulty] spawn _compiledMission; -}; - -true +} forEach blck_missionData; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnRandomLandscape.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnRandomLandscape.sqf index baf8ef2..059df64 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnRandomLandscape.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnRandomLandscape.sqf @@ -26,6 +26,7 @@ _wreck enableSimulationGlobal false; _wreck enableDynamicSimulation false; _objects pushBack _wreck; { + private _dir = random(360); private _radius = minObjectSpawnRadius + random(maxObjectSpawnRadius); _wreck = createVehicle[_x, _coords getPos[_radius,_dir], [], 2]; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnScubaGroup.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnScubaGroup.sqf index d03ddf8..200c798 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnScubaGroup.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnScubaGroup.sqf @@ -15,10 +15,7 @@ #define UMS_sidearms [] params["_group","_pos",["_skillLevel","red"],["_numUnits",6],["_patrolRadius",15]]; -//{diag_log format["_fnc_spawnScubaGroup: _this select %1 = %2",_foreachindex,_x]} forEach _this; - //params[["_group","Error"],"_pos", "_center", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], ["_minDist",30], ["_maxDist",45],["_configureWaypoints",true], - //["_uniforms",[]], ["_headGear",[]],["_vests",[]],["_backpacks",[]],["_weaponList",[]],["_sideArms",[]], ["_scuba",false],["_patrolRadius",30]]; [_group,_pos,_pos,_numUnits,_numUnits,_skillLevel, _patrolRadius - 2, _patrolRadius, configureWaypoints, blck_UMS_uniforms, blck_UMS_headgear, blck_UMS_vests, UMS_backpacks, blck_UMS_weapons, UMS_sidearms, isScubaGroup] call blck_fnc_spawnGroup; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnSurfacePatrol.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnSurfacePatrol.sqf index dc60d46..22c0cc5 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnSurfacePatrol.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnSurfacePatrol.sqf @@ -10,15 +10,14 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -// ["B_SDV_01_F",[22584.9,15304.8,-6.14801],"red",4, 75,0], + params["_SDV","_pos","_difficulty","_numAI","_patrolRadius","_respawnTime"]; -//diag_log format["_fnc_spawnSurfacePatrol: _this = %1",_this]; + private _group = [blck_AI_Side,true] call blck_fnc_createGroup; private _vehicle = objNull; if !(isNull _group) then { [_group,_pos,_numAI,_numAI,_difficulty,_pos,_patrolRadius - 2,_patrolRadius,blck_UMS_uniforms,blck_UMS_headgear,true,blck_UMS_weapons,blck_UMS_vests,true] call blck_fnc_spawnGroup; - // params["_center","_pos",["_vehType","I_G_Offroad_01_armed_F"],["_minDis",30],["_maxDis",45],["_group",grpNull]]; _vehicle = [_pos,_pos,_vehType,_minDis,_maxDis,_group] call blck_fnc_spawnVehiclePatrol; }; _vehicle diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_updateMissionQue.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_updateMissionQue.sqf index ada9e9c..aef5975 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_updateMissionQue.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_updateMissionQue.sqf @@ -13,6 +13,7 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; params["_mission","_status",["_coords",[0,0,0]] ]; + // _mission is the name used to identify the marker associated with that particular mission. it is a unique identifier. #ifdef blck_debugMode if (blck_debugLevel > 3) then {diag_log format["_fnc_updateMissionQue :: _mission = %1 | _status = %2 | _coords = %3",_mission,_status,_coords];}; @@ -23,23 +24,14 @@ private["_index","_element","_waitTime"]; if (_mission isEqualTo (_x select 1)) exitWith { _index = _forEachIndex; - //diag_log format["_fnc_updateMissionQue: match found at _forEachIndex %1 for _mission with _x = %2",_forEachIndex,_x select 1]; }; }forEach blck_pendingMissions; + //_index = blck_pendingMissions find _mission; if (_index > -1) then { - #ifdef blck_debugMode - if (blck_debuglevel > 4) then {diag_log format ["_fnc_updateMissionQue :: blck_pendingMissions began as %1",blck_pendingMissions];}; - #endif - _element = blck_pendingMissions select _index; - #ifdef blck_debugMode - if (blck_debuglevel > 3) then {diag_log format["_fnc_updateMissionQue:: -- >> _element before update = %1",_element];}; - #endif - // 0 1 2 3 4 5 6 - //_mission = [_missionList,format["%1%2",_marker,_i],_difficulty,_tMin,_tMax,_waitTime,[0,0,0]]; if (toLower(_status) isEqualTo "active") then { _element set[5, -1]; _element set[6,_coords]; @@ -51,15 +43,7 @@ if (_index > -1) then _element set [6,[0,0,0]]; }; - #ifdef blck_debugMode - if (blck_debuglevel > 2) then {diag_log format["_fnc_updateMissionQue:: -- >> _element after update = %1",_element];}; - #endif - blck_pendingMissions set [_index, _element]; - - #ifdef blck_debugMode - if (blck_debuglevel > 4) then {diag_log format ["_fnc_updateMissionQue :: blck_pendingMissions after update = %1",blck_pendingMissions];}; - #endif }; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_sm_AddScubaGroup.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_sm_AddScubaGroup.sqf index 3b73fdc..93c4255 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_sm_AddScubaGroup.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_sm_AddScubaGroup.sqf @@ -12,5 +12,4 @@ params["_group"]; blck_sm_scubaGroups pushBack [_group,grpNull,0]; -//diag_log format["_sm_AddScubaGroup:: blck_sm_scubaGroups = %1",blck_sm_scubaGroups]; true \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/TimeAccel/GMS_fnc_Time.sqf b/@GMS/addons/custom_server/Compiles/TimeAccel/GMS_fnc_Time.sqf index c348954..c502f54 100644 --- a/@GMS/addons/custom_server/Compiles/TimeAccel/GMS_fnc_Time.sqf +++ b/@GMS/addons/custom_server/Compiles/TimeAccel/GMS_fnc_Time.sqf @@ -28,26 +28,18 @@ _sunrise = _arr select 0; _sunset = _arr select 1; _time = dayTime; -//diag_log "fnc_Time:: Debug settings ON"; -//diag_log format["_fnc_Time:: --> blck_useTimeAcceleration = %1", blck_useTimeAcceleration]; -//diag_log format["_fnc_Time:: -- > _sunrise = %1 | _sunset = %2 | _time = %3",_sunrise,_sunset,_time]; - - // Night if (_time > (_sunset + 0.5) || _time < (_sunrise - 0.5)) exitWith { setTimeMultiplier blck_timeAccelerationNight; - //diag_log format["NIGHT TIMGE ADJUSTMENT:: time accel updated to %1; time of day = %2",timeMultiplier,dayTime]; }; // Day if (_time > (_sunrise + 0.5) && _time < (_sunset - 0.5)) exitWith { - setTimeMultiplier blck_timeAccelerationDay; - //diag_log format["DAYTIME ADJUSTMENT:: time accel updated to %1; time of day = %2",timeMultiplier,dayTime]; + setTimeMultiplier blck_timeAccelerationDay; }; // default setTimeMultiplier blck_timeAccelerationDusk; -//diag_log format["DUSK ADJUSTMENT:: time accel updated to %1; time of day = %2",timeMultiplier,dayTime]; diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_EH_AIHit.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_EH_AIHit.sqf index d1cf1a5..a49cb02 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_EH_AIHit.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_EH_AIHit.sqf @@ -7,7 +7,6 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ - //diag_log format["_EH_AIHit: _this = %1",_this]; if (isServer) then {_this call blck_fnc_processAIHit}; diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_EH_AIfiredNear.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_EH_AIfiredNear.sqf index a9cc62c..40df60c 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_EH_AIfiredNear.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_EH_AIfiredNear.sqf @@ -27,7 +27,6 @@ Introduced with Arma 3 version 1.65 gunner: Object - gunner, whose weapons are fired */ -//#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -//if (isServer) then {_this remoteExec ["blck_fnc_processAIKill",2]}; -//if (local (_this select 0)) then {_this call blck_fnc_processAIFiredNear}; +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; + _this call blck_fnc_processAIFiredNear \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_EH_AIHandleDamage.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_EH_HandleDamage.sqf similarity index 93% rename from @GMS/addons/custom_server/Compiles/Units/GMS_EH_AIHandleDamage.sqf rename to @GMS/addons/custom_server/Compiles/Units/GMS_EH_HandleDamage.sqf index daddfac..3683ba7 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_EH_AIHandleDamage.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_EH_HandleDamage.sqf @@ -25,6 +25,6 @@ private ["_unit","_killer","_group","_deleteAI_At"]; _unit = _this select 0; _source = _this select 3; -if (isPlayer _source) then { - [_unit,_source] call GRMS_fnc_alertGroup; +if !(isPlayer _source) then { + _unit setDamage 0; }; diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_EH_unitWeaponReloaded.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_EH_unitWeaponReloaded.sqf index d8a14d1..763c0d9 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_EH_unitWeaponReloaded.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_EH_unitWeaponReloaded.sqf @@ -21,9 +21,5 @@ #define unit _this select 0 #define newMagazine _this select 3 select 0 (unit) addMagazine (newMagazine); -#ifdef blck_debugMode -if (blck_debugLevel > 2) then { - diag_log format["_EH_unitWeaponReloaded:: one magazine of type %1 added to inventory of unit %2",_mag,(_this select 3 select 0)]; -}; -#endif + diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertGroupUnits.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertGroupUnits.sqf index 41e6501..ad9ba25 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertGroupUnits.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertGroupUnits.sqf @@ -14,11 +14,11 @@ params[["_unit",objNull],["_target",objNull]]; if (isNull _unit) exitWith {}; -//diag_log format["_fnc_alertGroupUnits: _unit = %1 | _target = %2",_unit,_target]; + { - _x reveal [_target,(_x knowsAbout _target) + (_unit getVariable ["intelligence",1])]; - _x doSuppressiveFire _target; + if (random(1) < -.33) then {_x reveal [_target,(_x knowsAbout _target) + random(_unit getVariable ["intelligence",1]) ]}; + //_x doSuppressiveFire _target; }forEach (units (group _unit)); -//leader(group _target) doSuppressiveFire _target; +leader(group _target) doSuppressiveFire _target; diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertNearbyGroups.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertNearbyGroups.sqf index 3490218..6d8d642 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertNearbyGroups.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertNearbyGroups.sqf @@ -12,12 +12,20 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -private["_nearbyGroups","_intelligence"]; params["_unit","_killer",["_searchRadius",300]]; private _nearbyGroups = allGroups select{(_unit distance (leader _x) < _searchRadius)}; + { private _group = _x; + + if (_group isEqualTo (group _unit)) then { - _x reveal[_killer,(_x knowsAbout _killer) + (_x getVariable ["intelligence",1])]; + [_unit,_killer] call blck_fnc_allertGroupUnits; + } else { + if (random(1) < 0.33) then + { + _x reveal[_killer,(_x knowsAbout _killer) + random(_x getVariable["intelligence",1])]; + }; }forEach (units _group); + }forEach _nearbyGroups; diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertNearbyUnits.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertNearbyUnits.sqf index e52d81c..d305f31 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertNearbyUnits.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertNearbyUnits.sqf @@ -13,9 +13,9 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; params["_unit","_killer"]; -private["_units"]; +private "_units"; if (toLower(blck_modType) isEqualTo "epoch") then {_units = _unit nearEntities ["I_Soldier_EPOCH", (_unit getVariable ["alertDist",300])]}; if !(toLower(blck_modType) isEqualTo "epoch") then {_units = _unit nearEntities ["i_g_soldier_unarmed_f", (_unit getVariable ["alertDist",300])]}; { - _x reveal[_killer, (_x knowsAbout _killer) + (_unit getVariable ["intelligence",1])] + _x reveal[_killer, (_x knowsAbout _killer) + random(_unit getVariable ["intelligence",1])] }forEach _units; diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertNearbyVehicles.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertNearbyVehicles.sqf index fa88d50..d8964a9 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertNearbyVehicles.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertNearbyVehicles.sqf @@ -12,13 +12,15 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; params[["_target",objNull]]; -//diag_log format["_fnc_alertNearbyVehicles: _target = %1 | typeName _target = %2",_target,typeName _target]; -if (isnull _target) exitWith {}; -private _nearestVehicles = (nearestObjects [getPos _target,["Car","Truck","Tank","Ship"],300]); -if (_nearestVehicles isEqualTo []) exitWith {}; -private _nearestVehicle = _nearestVehicles select 0; -//diag_log format["_fnc_alertNearbyVehicles: _target = %1 | _nearestVehicle = %2",_target,_nearestVehicle]; -[(crew _nearestVehicle) select 0,_target] call blck_fnc_alertGroupUnits; + +if !(isnull _target) then +{ + private _nearestVehicles = (nearestObjects [getPos _target,["Car","Tank","Ship","Air"],300]); + if !(_nearestVehicles isEqualTo []) then + { + if (random(1) < 0.33) then {[(crew (_nearestVehicles select 0)) select 0,_target] call blck_fnc_alertGroupUnits}; + }; +}; diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_allertNearestGroup.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_allertNearestGroup.sqf index 0cdd748..3e5a979 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_allertNearestGroup.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_allertNearestGroup.sqf @@ -15,5 +15,5 @@ params["_group"]; private _nearbyGroup = [group _unit] call blck_fnc_findNearestGroup; { - _x reveal[_killer,(_x knowsAbout _killer) + (_unit getVariable ["intelligence",1])]; + _x reveal[_killer,(_x knowsAbout _killer) + random(_unit getVariable ["intelligence",1])]; }forEach (units _nearbyGroup); diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_cleanupAliveAI.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_cleanupAliveAI.sqf index d07ac3c..0b2b822 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_cleanupAliveAI.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_cleanupAliveAI.sqf @@ -10,12 +10,12 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -//diag_log format["_fnc_cleanupaliveAI: called at %1 | count %2 | blck_liveMissionAI = %3",diag_ticktime,count blck_liveMissionAI,blck_liveMissionAI]; + for "_i" from 1 to (count blck_liveMissionAI) do { if ((_i) <= count blck_liveMissionAI) then { _units = blck_liveMissionAI deleteAt 0; _units params ["_missionCenter","_unitsarr","_timer"]; - //diag_log format["_fnc_cleanupAliveAI: _units = %4 | _missionCenter %1 | typeName _unitsArr = %2 | _unitsarr = %3",_missionCenter,typeName _unitsArr, _unitsarr,_units]; + if (diag_tickTime > _timer) then { private _nearplayer = [_missionCenter,800] call blck_fnc_nearestPlayers; diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_cleanupDeadAI.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_cleanupDeadAI.sqf index baad677..d2dd75c 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_cleanupDeadAI.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_cleanupDeadAI.sqf @@ -11,17 +11,14 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -//diag_log format["fnc_cleanupDeadAI: (partially deactivated) time %1 | count blck_deadAI %2",diag_tickTime,count blck_deadAI]; - { private _unit = _x; if (_unit getVariable["blck_cleanupAt",0] isEqualTo 0) then {_unit setVariable["blck_cleanupAt",diag_tickTime + blck_bodyCleanUpTimer]}; private _nearplayer = [position _unit,800] call blck_fnc_nearestPlayers; - //diag_log format["fnc_cleanupDeadAI: _unit = %1 | blck_cleanupat = %2 | _nearPlayer = %3",_unit, _unit getVariable["blck_cleanupAt",0],_nearPlayer]; + if (diag_tickTime > _unit getVariable ["blck_cleanupAt",0]) then { if (_nearplayer isequalto []) then { - //diag_log format["_fnc_cleanupDeadAI: handling deletion of unit %1",_unit]; { deleteVehicle _x; }forEach nearestObjects [getPos _unit,["WeaponHolderSimulated","GroundWeapoonHolder"],3]; diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_deleteAI.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_deleteAI.sqf index 9e03276..0fc3251 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_deleteAI.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_deleteAI.sqf @@ -14,8 +14,6 @@ private["_ai","_group"]; params["_unit"]; -//if (blck_debugLevel > 2) then {diag_log format["_fnc_deleteAI::-> deleting unit = %1",_unit];}; - { _unit removeAllEventHandlers _x; }forEach ["reloaded"]; @@ -23,7 +21,6 @@ params["_unit"]; _unit removeAllMPEventHandlers _x; } forEach ["MPKilled","MPHit"]; _group = (group _unit); -[_unit] joinSilent grpNull; deleteVehicle _unit; if (count units _group isEqualTo 0) then { diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_placeCharacterInBuilding.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_placeCharacterInBuilding.sqf index 1cafabb..8be0c35 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_placeCharacterInBuilding.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_placeCharacterInBuilding.sqf @@ -11,12 +11,11 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; params["_character","_center","_characterBuildingConfigs"]; -//diag_log format["_fnc_placeCharacterInBuilding: _characterBuildingConfigs = %1",_characterBuildingConfigs]; + private ["_obj"]; if !(_characterBuildingConfigs isEqualTo []) then { _obj = createVehicle[(_characterBuildingConfigs select 0),_center vectorAdd (_characterBuildingConfigs select 1),[],0,"CAN_COLLIDE"]; - //diag_log format["_fnc_placeCharacterInBuilding: _obj = %1",_obj]; _obj setDir (_characterBuildingConfigs select 2); _obj allowDamage true; _obj enableDynamicSimulation true; diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIHit.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIHit.sqf index fc95c99..516bb75 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIHit.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIHit.sqf @@ -13,43 +13,35 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; if !(isServer) exitWith {}; private ["_unit","_instigator","_group","_wp"]; -_unit = _this select 0 select 0; -_instigator = _this select 0 select 3; -//diag_log format["_fnc_processAIHit:(19): _units = %1 and _instigator = %2 units damage is %3",_unit,_instigator, damage _unit]; +(_this select 0) params["_unit","_causedBy","_damage","_instigator"]; + +if !(isPlayer _instigator) exitWith +{ + _unit setDamage ( (damage _unit) - _damage); +}; -//diag_log format["_fnc_processAIHit: evaluating case of ai not alive"]; if (!(alive _unit)) exitWith { - //diag_log format["_fnc_processAIHit: _unit %1 is dead",_unit]; [_unit, _instigator] call blck_fnc_processAIKill; }; -//diag_log format["_fnc_processAIHit: evaluating case of damage > 0.95"]; + if (damage _unit > 0.95) exitWith { - //diag_log format["_fnc_processAIHit: _unit %1 extensively damagged",_unit]; _unit setDamage 1.2; [_unit, _instigator] call blck_fnc_processAIKill; }; -//diag_log format["_fnc_processAIHit: evaluating case of killer not player"]; -if !(isPlayer _instigator) exitWith { - //diag_log format["_fnc_procesAIHit: _instigator %1 not player",_instigator]; -}; -//diag_log format["_processAIHit: calling [_unit,_instigator] call blck_fnc_alertGroupUnits with _unit = %1 and _instigator = %2",_unit,_instigator]; + + [_unit,_instigator,50] call GMS_fnc_alertNearbyGroups; [_instigator] call blck_fnc_alertNearbyVehicles; -//diag_log format["_fnc_processAIHit: updating group and waypoint settings"]; _group = group _unit; _wp = [_group, currentWaypoint _group]; _wp setWaypointBehaviour "COMBAT"; _group setCombatMode "RED"; _wp setWaypointCombatMode "RED"; -//diag_log format["_fnc_processAIHit: determining if prior heal has occured"]; -if (_unit getVariable ["hasHealed",false]) exitWith { - //diag_log format["_fnc_processAIHit: _unit %1 has already healed one",_unit]; -}; -//diag_log format["_fnc_processAIHit: no prior heal so evaluate whether one is needed"]; -if ((damage _unit) > 0.2 ) then +if (_unit getVariable ["hasHealed",false]) exitWith {}; + +if ((damage _unit) > 0.5 ) then { - //diag_log format["_EH_AIHit::-->> Healing unit %1",_unit]; _unit setVariable["hasHealed",true,true]; if (blck_useSmokeWhenHealing) then { @@ -58,8 +50,6 @@ if ((damage _unit) > 0.2 ) then _unit addItem "FAK"; _unit action ["HealSoldierSelf", _unit]; _unit setDamage 0; - //uiSleep 1; if ("FAK" in (items _unit)) then {_unit removeItem "FAK"}; - //_unit removeItem "FAK"; }; diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIKill.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIKill.sqf index e9ebe95..fc18cc8 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIKill.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIKill.sqf @@ -9,7 +9,7 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ -// TODO: check that emplaced weapons that should be deleted are added to the scheduler. + // assumptions: this is always and only run on the server regardless if th event is triggered on an HC or other client. #include "\q\addons\custom_server\Configs\blck_defines.hpp"; @@ -42,7 +42,6 @@ if (count(units (group _unit)) isEqualTo 0) then deleteGroup _group; }; -//diag_log format["_fnc_processAIKill: unit linked to crew of vehicle %1 | typeOf (vehicle _unit = %2)",vehicle _unit,typeOf (vehicle _unit)]; if !((vehicle _unit) isKindOf "Man") then { [_unit, ["Eject", vehicle _unit]] remoteExec ["action",(owner _unit)]; @@ -58,8 +57,6 @@ _wp setWaypointBehaviour "COMBAT"; (group _unit) setCombatMode "RED"; _wp setWaypointCombatMode "RED"; - - if ([_unit,_killer] call blck_fnc_processIlleagalAIKills) then { - [_unit,_killer] call GMS_fnc_handlePlayerUpdates; + [_unit,_killer] call blck_fnc_handlePlayerUpdates; }; diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIfiredNear.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIfiredNear.sqf index d3894e2..6ff6513 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIfiredNear.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIfiredNear.sqf @@ -13,26 +13,12 @@ See https://community.bistudio.com/wiki/Arma_3:_Event_Handlers#FiredNear for details on this event handler. - this addEventHandler ["FiredNear", { - params ["_unit", "_firer", "_distance", "_weapon", "_muzzle", "_mode", "_ammo", "_gunner"]; -}]; - - unit: Object - Object the event handler is assigned to - firer: Object - Object which fires a weapon near the unit - distance: Number - Distance in meters between the unit and firer (max. distance ~69m) - weapon: String - Fired weapon - muzzle: String - Muzzle that was used - mode: String - Current mode of the fired weapon - ammo: String - Ammo used - Introduced with Arma 3 version 1.65 - gunner: Object - gunner, whose weapons are fired */ -//#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; params["_unit","_firedBy"]; -//if ((side _unit) isEqualTo (side _firedBy) exitWith {}; // nearyby friendly fire + (group _unit) setBehaviour "COMBAT"; (group _unit) setCombatMode "RED"; -diag_log format["_fnc_processAIfiredNear: _unit %1 knows %2 about _firedBy %3",_unit, _unit knowsAbout _firedBy,_firedBy]; -diag_log format["_fnc_processAIfiredNear: owner _unit = %1 | local _unit = %2",owner _unit, local _unit]; + diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processIlleagalAIKills.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processIlleagalAIKills.sqf index f9b482c..6871c86 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processIlleagalAIKills.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processIlleagalAIKills.sqf @@ -10,17 +10,11 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -// assumptions: -// 1) if the muzzle that killed the AI was forbbiden then the kill does not count -// 2) if the vehicle the player was in when the player killed the AI, the kill does not count. -// data to check: blck_forbidenVehicles -// and blck_forbidenVehicleGuns -// blck_VK_RunoverDamage -// blck_RunGear private["_missionType","_wasRunover","_launcher","_legal"]; params["_unit","_killer"]; _legal = true; if (vehicle _killer == _killer) exitWith {true}; + // Player not in vehicle, no further checks needed. if (_killer == (driver (vehicle _killer))) then // If the killer is also the driver then the killer must have run the AI over { @@ -43,13 +37,8 @@ if (_killer == (driver (vehicle _killer))) then // If the killer is also the dr [vehicle _killer] call GMS_fnc_applyVehicleDamagePenalty; [_killer] call GMS_fnc_msgIED; _legal = false; - diag_log format[ - "_fnc_processIlleagalKills: _legal = %1 | (typeOf (vehicle _killer)) in blck_forbidenVehicles = %2 | (currentWeapon _killer) in blck_forbidenVehicleGuns) = %3", - _legal,(typeOf (vehicle _killer)) in blck_forbidenVehicles, - (currentWeapon _killer) in blck_forbidenVehicleGuns - ]; }; }; }; -//diag_log format["_fnc_testForIllegalKills: _legal = %1",_legal]; + _legal diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_removeNVG.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_removeNVG.sqf index 8cbe50e..9fe9b37 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_removeNVG.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_removeNVG.sqf @@ -12,13 +12,11 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; params["_unit"]; -//diag_log format["+--+ removing NVG for unit %1",_unit]; if (blck_useNVG) then { if (_unit getVariable ["hasNVG",false]) then { - _unit unassignitem "NVGoggles"; _unit removeweapon "NVGoggles"; }; }; diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_setSkill.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_setSkill.sqf index 08f19b3..2e288fb 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_setSkill.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_setSkill.sqf @@ -11,8 +11,6 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -// Self explanatory -// [_group, _skill] call blck_setSkill; params ["_unit","_skillsArrray"]; private["_skillLevel"]; { diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnCharacter.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnCharacter.sqf index 8bf7da0..96ebff8 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnCharacter.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnCharacter.sqf @@ -13,14 +13,6 @@ params["_coords","_charConfigs"]; private["_char","_charGroup"]; _charConfigs params["_classname","_posn","_dir","_simDamg","_animations","_headgear","_uniforms"]; -#ifdef blck_debugMode -{ - diag_log format["_fnc_spawnchar: _forEachIndex = %1 | _x = %2",_forEachIndex,_x]; -}forEach _charConfigs; -diag_log format["_fnc_spawnchar: _this = %1",_this]; -diag_log format["_fnc_spawnchar _classname = %1 | _posn = %2 | _dir = %3 | _animations = %4",_classname,_posn,_dir,_animations]; -#endif - _charGroup = createGroup [blck_AI_Side, true]; _char = _charGroup createUnit [_classname,[0,0,0], [], 0, "NONE"]; _char setCaptive true; diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnHostage.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnHostage.sqf index 3975d7e..955b93f 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnHostage.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnHostage.sqf @@ -17,7 +17,6 @@ _hostage remoteExec["GMS_fnc_initHostage", -2, true]; _hostage setVariable["assetType",1,true]; _building = [_hostage,_coords,_hostageConfigs select 7] call blck_fnc_placeCharacterInBuilding; _result = [_hostage,_building]; -//diag_log format["_fnd_spawnHostage: _result = %1",_result]; _result diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnLeader.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnLeader.sqf index f1ae006..cbe56ed 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnLeader.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnLeader.sqf @@ -16,9 +16,7 @@ _leader = [_coords, _leaderConfigs] call blck_fnc_spawnCharacter; _leader remoteExec["GMS_fnc_initLeader", -2, true]; _leader setVariable["assetType",2,true]; _leader setVariable["endAnimation",["Acts_CivilShocked_1"],true]; -//diag_log format["_fnc_spawnLeader: _leaderConfigs = %1",_leaderConfigs]; _building = [_leader,_coords,_leaderConfigs select 7] call blck_fnc_placeCharacterInBuilding; -//diag_log format["_fnc_spawnLeader: _building = %1",_building]; _result = [_leader,_building]; _result diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnParaUnits.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnParaUnits.sqf index 18332b3..2d20ae2 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnParaUnits.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnParaUnits.sqf @@ -30,7 +30,6 @@ private _params = ["_pos","_numAI","_skillAI"]; }forEach _params; #endif _paraGroup = [blck_AI_Side,true] call blck_fnc_createGroup; -//diag_log format["_fnc_spawnParaUnits: _paraGroup = %1",_paraGroup]; #define infantryPatrolRadius 30 #define infantryWaypointTimeout [5,7.5,10] [_pos,20,30,_paraGroup,"random","SAD","paraUnits",infantryPatrolRadius,infantryWaypointTimeout] call blck_fnc_setupWaypoints; @@ -45,24 +44,15 @@ for "_i" from 1 to _numAI do _spawnPos = _pos getPos[1,_dir]; _chute = createVehicle ["Steerable_Parachute_F", [_spawnPos select 0, _spawnPos select 1, 250], [], 0, "FLY"]; [_chute] call blck_fnc_protectVehicle; - // ["_pos","_aiGroup",["_skillLevel","red"],["_uniforms", blck_SkinList],["_headGear",blck_headgear],["_vests",blck_vests],["_backpacks",blck_backpacks],["_Launcher","none"],["_weaponList",[]],["_sideArms",[]],["_scuba",false]]; _unit = [getPos _chute,_paraGroup,_skillAI,_uniforms,_headGear,_vests,_backpacks,launcherType,_weapons,_sideArms,_isScuba] call blck_fnc_spawnUnit; - - #ifdef blck_debugMode - diag_log format["_fnc_spawnParaUnits: unit %1 = %2 dropping in chute %3",_i,_unit,_chute]; - #endif - - //_chute setPos [_spawnPos select 0, _spawnPos select 1, 125]; //(_offset select 2) - 10]; _unit assignAsDriver _chute; _unit moveInDriver _chute; - //_unit allowDamage true; _unit setVariable["chute",_chute]; _dir = _dir + _arc; uiSleep 2; }; - blck_monitoredMissionAIGroups pushback _paraGroup; _paraGroup diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnUnit.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnUnit.sqf index d19c5b0..356f671 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnUnit.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnUnit.sqf @@ -22,19 +22,10 @@ if (_headGear isEqualTo []) then {_headGear = [_skillLevel] call blck_fnc_sele if (_vests isEqualTo []) then {_vests = [_skillLevel] call blck_fnc_selectAIVests}; if (_backpacks isEqualTo []) then {_backpacks = [_skillLevel] call blck_fnc_selectAIBackpacks}; -#ifdef blck_debugMode -if (blck_debugLevel >= 2) then -{ - private _params = ["_pos","_aiGroup","_skillLevel","_uniforms","_headGear","_vests","_backpacks","_Launcher","_weaponList","_sideArms","_scuba","_garrison"]; //"_weaponList", "_Launcher" - { - diag_log format["_fnc_spawnUnit::-> _this select %1 (%2) = %3",_forEachIndex, _params select _forEachIndex, _this select _forEachIndex]; - }forEach _this; -}; -#endif -if (isNull _aiGroup) exitWith {diag_log "[blckeagls] ERROR CONDITION:-->> NULL-GROUP Provided to _fnc_spawnUnit"}; +if (isNull _aiGroup) exitWith {["NULL-GROUP Provided to _fnc_spawnUnit"] call blck_fnc_log}; _unit = ObjNull; -//private _unitType = ""; + if (blck_modType isEqualTo "Epoch") then { "I_Soldier_EPOCH" createUnit [_pos, _aiGroup, "_unit = this", blck_baseSkill, "COLONEL"]; @@ -46,7 +37,6 @@ if (blck_modType isEqualTo "Epoch") then case "green":{_unit setVariable["Crypto",6 + floor(random(blck_maxMoneyGreen)),true];}; case "orange":{_unit setVariable["Crypto",8 + floor(random(blck_maxMoneyOrange)),true];}; }; - //diag_log format["_fnc_spawnUnit: for unit %1 Crypto set to %2",_unit,_unit getVariable "Crypto"]; }; if !(blck_modType isEqualTo "Epoch") then { @@ -58,11 +48,10 @@ if !(blck_modType isEqualTo "Epoch") then case "green":{_unit setVariable["ExileMoney",6 + floor(random(blck_maxMoneyGreen)),true];}; case "orange":{_unit setVariable["ExileMoney",8 + floor(random(blck_maxMoneyOrange)),true];}; }; - //diag_log format["_fnc_spawnUnit: for unit %1 ExileMoney set to %2",_unit,_unit getVariable "ExileMoney"]; }; -// findEmptyPosition [minDistance, maxDistance, vehicleType] + private _tempPos = _pos findEmptyPosition [0.1, 3, typeOf _unit]; -//diag_log format["_fnc_spawnUnit: _pos = %1 | _tempPos = %2",_pos,_tempPos]; + if !(_tempPos isEqualTo []) then {_unit setPos _tempPos}; [_unit] call blck_fnc_removeGear; @@ -74,18 +63,8 @@ if (_scuba) then _skin = ""; _counter = 1; -while {_skin isEqualTo "" && _counter < 10} do -{ - _unit forceAddUniform (selectRandom _uniforms); - _skin = uniform _unit; - #ifdef blck_debugMode - if (blck_debugLevel > 2) then - { - diag_log format["_fnc_spawnUnit::-->> for unit _unit % uniform is %2",_unit, uniform _unit]; - }; - #endif - _counter = _counter + 1; -}; +_unit forceAddUniform (selectRandom _uniforms); + //Sets AI Tactics _unit enableAI "ALL"; if(_garrison) then @@ -99,23 +78,24 @@ _unit setunitpos "AUTO"; if !(_headGear isEqualTo []) then { _unit addHeadgear (selectRandom _headGear); - //diag_log format["Headgear for unit %1 = %2",_unit, headgear _unit]; }; if !(_vests isEqualTo []) then { _unit addVest (selectRandom _vests); - //diag_log format["Vest for unit %1 = %2",_unit, vest _unit]; }; if (_weaponList isEqualTo []) then {_weaponList = call blck_fnc_selectAILoadout}; _weap = selectRandom _weaponList; _unit addWeaponGlobal _weap; _ammoChoices = getArray (configFile >> "CfgWeapons" >> _weap >> "magazines"); +_unit addMagazines[selectRandom _ammochoices,3]; _optics = getArray (configfile >> "CfgWeapons" >> _weap >> "WeaponSlotsInfo" >> "CowsSlot" >> "compatibleItems"); _pointers = getArray (configFile >> "CfgWeapons" >> _weap >> "WeaponSlotsInfo" >> "PointerSlot" >> "compatibleItems"); _muzzles = getArray (configFile >> "CfgWeapons" >> _weap >> "WeaponSlotsInfo" >> "MuzzleSlot" >> "compatibleItems"); _underbarrel = getArray (configFile >> "CfgWeapons" >> _weap >> "WeaponSlotsInfo" >> "UnderBarrelSlot" >> "compatibleItems"); + + if (random 1 < 0.4) then {_unit addPrimaryWeaponItem (selectRandom _muzzles)}; if (random 1 < 0.4) then {_unit addPrimaryWeaponItem (selectRandom _optics)}; if (random 1 < 0.4) then {_unit addPrimaryWeaponItem (selectRandom _pointers)}; @@ -129,7 +109,6 @@ if ((count(getArray (configFile >> "cfgWeapons" >> _weap >> "muzzles"))) > 1) th if !(_sideArms isEqualTo []) then { _weap = selectRandom _sideArms; - //diag_log format["[spawnUnit.sqf] _weap os %1",_weap]; _unit addWeaponGlobal _weap; _ammoChoices = getArray (configFile >> "CfgWeapons" >> _weap >> "magazines"); _unit addMagazines [selectRandom _ammoChoices, 2]; @@ -142,10 +121,9 @@ for "_i" from 1 to (1+floor(random(4))) do // Add First Aid or Grenade 50% of the time if (round(random 10) <= 5) then { - //diag_log format["spawnUnit.sqf] -- Item is %1", _item]; _unit addItem selectRandom blck_specialItems; }; -//diag_log format["_spawnUnit: _Launcher = %1",_Launcher]; + if ( !(_Launcher isEqualTo "none") && !(_backpacks isEqualTo [])) then { _unit addWeaponGlobal _Launcher; @@ -173,7 +151,7 @@ else }; _unit addWeapon selectRandomWeighted["",4,"Binocular",3,"Rangefinder",1]; - +//_unit addEventHandler ["HandleDamage",{_this call blck_EH_handleDamage;}]; _unit addEventHandler ["FiredNear",{_this call blck_EH_AIfiredNear;}]; _unit addEventHandler ["Reloaded", {_this call blck_EH_unitWeaponReloaded;}]; _unit addMPEventHandler ["MPKilled", {[(_this select 0), (_this select 1)] call blck_EH_AIKilled;}]; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_HandleAIVehicleHit.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_HandleAIVehicleHit.sqf index 293f762..26e12b9 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_HandleAIVehicleHit.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_HandleAIVehicleHit.sqf @@ -15,12 +15,10 @@ private ["_veh","_instigator","_group","_wp"]; _veh = _this select 0; _instigator = _this select 3; -//diag_log format["_fnc_HandleAIVehicleHit: _veh = %1 | _instigator = %2",_veh,_instigator]; if (!(isPlayer _instigator)) exitWith {}; _crew = crew _veh; _group = group (_crew select 0); [_crew select 0,_instigator,50] call GMS_fnc_alertNearbyGroups; -//diag_log format["_fnc_handleAIVehicleHit: calling blck_fnc_alertNearbyVehicles with _instigator = %1",_instigator]; [_instigator] call blck_fnc_alertNearbyVehicles; _group setBehaviour "COMBAT"; _wp = [_group, currentWaypoint _group]; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_handleEmptyStaticWeapon.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_handleEmptyStaticWeapon.sqf index 312e0f1..1076218 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_handleEmptyStaticWeapon.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_handleEmptyStaticWeapon.sqf @@ -13,11 +13,9 @@ params["_veh"]; if (blck_killEmptyStaticWeapons) then { - //diag_log format["_processAIKill: disabling static %1 and setting its delete time",_veh]; _veh setDamage 1; _veh setVariable["blck_deleteAtTime",diag_tickTime + 60,true]; }else { - //diag_log format["_processAIKill: releasing static %1 to players and setting a default delete timer",_veh]; [_veh] call blck_fnc_releaseVehicleToPlayers; //Call this from _processAIKill _veh setVariable["blck_DeleteAt",diag_tickTime + blck_vehicleDeleteTimer,true]; }; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_handleEmptyVehicle.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_handleEmptyVehicle.sqf index 9eac3b3..8c3dd03 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_handleEmptyVehicle.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_handleEmptyVehicle.sqf @@ -9,37 +9,29 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ -//diag_log format["_fnc_handleEmptyVehicle: _this = %1",_this]; params["_veh"]; -//diag_log format["_fnc_handleEmptyVehicle: vehicle %1 | count(crew _veh) = %2 | typoeOf _veh = %3 | description _veh = %4",_veh,count(crew _veh),typeOf _veh,gettext(configFile >> 'cfgWeapons' >> typeOf _veh >> 'displayName')]; + if (isServer) then { if ({alive _x} count (crew _veh) == 0 || crew(_veh) isEqualTo []) then { - //diag_log format["_fnc_handleEmptyVehicle: no units alive in vehicle %1",_veh, typeOf _veh,gettext (configFile >> 'cfgWeapons' >> typeOf _veh >> 'displayName')]; - // TODO: Make sure this variable is properly set on all vehicles. if (_veh getVariable["GRG_vehType","none"] isEqualTo "emplaced") then { - //diag_log format["_fnc_handleEmptyVehicle: emplaced weapon %1 being handled",_veh]; if (blck_killEmptyStaticWeapons) then { - //diag_log format["_fnc_handleEmptyVehicle: disabling static %1 and setting its delete time",_veh]; _veh setDamage 1; _veh setVariable["blck_deleteAtTime",diag_tickTime + 60,true]; }else { - //diag_log format["_fnc_handleEmptyVehicle: releasing static %1 to players and setting a default delete timer",_veh]; [_veh] call blck_fnc_releaseVehicleToPlayers; //Call this from _processAIKill _veh setVariable["blck_deleteAtTime",diag_tickTime + blck_vehicleDeleteTimer,true]; }; } else { if (blck_killEmptyAIVehicles) then { - //diag_log format["_fnc_handleEmptyVehicle: disabling vehicle %1 and setting a delete time",_veh]; _veh setDamage 0.7; _veh setFuel 0; _veh setVariable["blck_deleteAtTime",diag_tickTime + 60]; } else { - //diag_log format["_fnc_handleEmptyVehicle: releasing vehicle %1 to players and setting a default delete timer",_veh]; _veh setVariable["blck_deleteAtTime",diag_tickTime + blck_vehicleDeleteTimer,true]; [_veh] call blck_fnc_releaseVehicleToPlayers; }; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_handleVehicleGetOut.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_handleVehicleGetOut.sqf index 75e40bd..22fe042 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_handleVehicleGetOut.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_handleVehicleGetOut.sqf @@ -9,18 +9,6 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ -/* -this addEventHandler ["GetOut", { - params ["_vehicle", "_role", "_unit", "_turret"]; -}]; - vehicle: Object - Vehicle the event handler is assigned to - role: String - Can be either "driver", "gunner" or "cargo" - unit: Object - Unit that left the vehicle - Introduced with Arma 3 version 1.36 - turret: Array - turret path -*/ - -//diag_log format["_fnc_handleAIgetOut: _this = %1",_this]; #define veh _this select 0 if ((isServer) || local (veh)) then {[veh] call blck_fnc_checkForEmptyVehicle}; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_loadVehicleCrew.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_loadVehicleCrew.sqf index d49ff9a..fba1873 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_loadVehicleCrew.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_loadVehicleCrew.sqf @@ -8,46 +8,16 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ -/* - _loadVehicleCrew - Expects the group has units and they are configured -*/ + if (isNil "blck_blacklisted_vehicle_weapons") then {blck_blacklisted_vehicle_weapons = []}; params["_veh","_group",["_crewCount",4]]; private _units = units _group; -#ifdef blck_debugMode -if (blck_debugLevel > 2) then -{ - diag_log format["_fnc_loadVehicleCrew: _veh = %1 | _group = %2 | group units = %4 | _crewCount = %3",_veh,_group,_crewCount, units _group]; -}; -#endif + for "_i" from 1 to _crewCount do { if (_units isEqualTo []) exitWith {}; _crew = _units deleteAt 0; - /* - Note that in documentation for the moveinAny command the order seats are filled is: - driver - commander - gunner - other turrets - cargo - - https://community.bistudio.com/wiki/moveInAny - */ _crew moveInAny _veh; - #ifdef blck_debugMode - if (blck_debugLevel > 2) then - { - diag_log format["_fnc_loadVehicleCrew: loaded unit %1 into vehicle %2",_crew,_veh]; - diag_log format["_fnc_loadVehicleCrew: new crew for vehicle %1 = %2",_veh, crew _veh]; - }; - #endif }; {deleteVehicle _x} forEach _units; -#ifdef blck_debugMode -if (blck_debugLevel > 2) then -{ - diag_log format["_fnc_loadVehicleCrew: _veh = %1 | crew = %2 | driver = %3",_veh,crew _veh,driver _veh]; -}; -#endif + diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_processAIVehicleKill.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_processAIVehicleKill.sqf index 869d625..0dfb950 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_processAIVehicleKill.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_processAIVehicleKill.sqf @@ -11,19 +11,16 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; private ["_veh","_killer","_group","_wp"]; -//diag_log format["_fnc_processAIVehicleKill: _this = %1",_this]; -params["_veh","_killer","_killer"]; -//params["_veh","_killer"]; +params["_veh","_killer","_killer"]; { _veh removealleventhandlers _x; } forEach ["GetIn","GetOut","fired","hit","hitpart","reloaded","dammaged","HandleDamage"]; + { _veh removeAllMPEventHandlers _x; } forEach ["MPHit","MPKilled"]; -//diag_log format["_fnc_processAIVehicleKill: _this = %1",_this]; -//diag_log format["_fnc_processAIVehicleKill:: _veh = %1 and _killer = %2 units damage is %3",_veh,_killer, damage _veh]; if (!(isPlayer _killer)) exitWith {}; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_releaseVehicleToPlayers.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_releaseVehicleToPlayers.sqf index babbc55..708da89 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_releaseVehicleToPlayers.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_releaseVehicleToPlayers.sqf @@ -9,11 +9,10 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ -// assummptions: since this is called after an AI Killed event that always runs on the server we can assume this code will too. + #include "\q\addons\custom_server\Configs\blck_defines.hpp"; params["_veh"]; -//diag_log format["_fnc_releaseVehicleToPlayers: _veh = %1",_veh]; [_veh] call blck_fnc_unlockVehicle; { _veh removealleventhandlers _x; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_searchForNearbyPlayers.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_searchForNearbyPlayers.sqf index 080e552..3ecbc90 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_searchForNearbyPlayers.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_searchForNearbyPlayers.sqf @@ -19,9 +19,9 @@ _nearbyPlayers = [position _vehicle, _vehicle getVariable["blck_vehicleSearchRan _cansee = [objNull, "VIEW"] checkVisibility [eyePos _x, _player]; if (_cansee > 0) then { - //_knowledgeGained = (_searchRadius - (_x distance _groupLeader))/_searchRadius; + _knowledgeGained = (_searchRadius - (_x distance _groupLeader))/_searchRadius; _knowsAbout = _x knowsAbout _player; - _groupLeader reveal [_x, _knowsAbout + _kno_canseewledgeGained]; + _groupLeader reveal [_x, _knowsAbout + _knowledgeGained]; }; }foreEach crew _vehicle; }; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_sendHeliHome.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_sendHeliHome.sqf index ac6fe7f..9d328a9 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_sendHeliHome.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_sendHeliHome.sqf @@ -10,13 +10,10 @@ _pilot = (units _grpPilot) select 0; _heli = vehicle _pilot; diag_log "reinforcements deployed:: send heli back to spawn"; [[_heli], 300 /* 5 min*/] spawn blck_fnc_addObjToQue; -// select a random location abotu 2K from the mission _spawnVector = round(random(360)); _spawnDistance = 2000; _pos = getPos _heli; -// Use the new functionality of getPos -// https://community.bistudio.com/wiki/getPos _home = _pos getPos [_spawnDistance,_spawnVector]; // Send the heli back to base @@ -31,6 +28,4 @@ _grpPilot = group this; [_grpPilot,0] setWaypointTimeout [0.5,0.5,0.5]; -diag_log "reinforcements:: sending Heli Home"; - diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnBoatPatrol.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnBoatPatrol.sqf index b80a783..d986376 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnBoatPatrol.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnBoatPatrol.sqf @@ -14,23 +14,10 @@ private["_veh"]; params["_vehType","_pos",["_crewCount",4]]; -#ifdef blck_debugMode -if (blck_debugLevel > 1) then {diag_log format["spawnVehicle.sqf: _vehType = %1 | _pos = %2",_vehType,_pos];}; -#endif - private _veh = [_vehType,_pos] call blck_fnc_spawnVehicle; _veh setVariable["blck_vehicleSearchRadius",blck_playerDetectionRangeSurfaceVehicle]; _veh setVariable["blck_vehiclePlayerDetectionOdds",blck_vehiclePlayerDetectionOdds]; - -#ifdef blck_debugMode -if (blck_debugLevel > 1) then {diag_log format["spawnVehicle.sqf:: vehicle spawned is %1",_veh];}; -#endif -// params["_veh",["_clearInventory",true]]; [_veh,_clearInventory] call blck_fnc_configureMissionVehicle; -//[_veh,_group,_crewCount] call blck_fnc_loadVehicleCrew; -#ifdef blck_debugMode -if (blck_debugLevel > 1) then {diag_log format["spawnVehicle:: returning parameter _veh = %1",_veh];}; -#endif _veh diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnMissionHeli.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnMissionHeli.sqf index e8ce30c..e00f2ee 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnMissionHeli.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnMissionHeli.sqf @@ -21,8 +21,6 @@ if (_backpacks isEqualTo []) then {_backpacks = [_skillAI] call blck_fnc_sele if (_weaponList isEqualTo []) then {_weaponList = [_skillAI] call blck_fnc_selectAILoadout}; if (_sideArms isEqualTo []) then {[_skillAI] call blck_fnc_selectAISidearms}; -// params["_pos", "_center", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], ["_minDist",30], ["_maxDist",45],["_configureWaypoints",true], ["_uniforms",[]], -//["_headGear",[]],["_vests",[]],["_backpacks",[]],["_weaponList",[]],["_sideArms",[]], ["_scuba",false]]; switch (toLower(_skillAI)) do { case "blue": {_minDist = 150;_maxDist = blck_maxPatrolRadiusHelisBlue}; @@ -48,13 +46,6 @@ if !(isNull _grpPilot) then _grpPilot setVariable["arc",0]; _grpPilot setVariable["wpRadius",0]; _grpPilot setVariable["wpMode","SAD"]; - #ifdef blck_debugMode - if (blck_debugLevel > 2) then - { - 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]; - }; - #endif #define aircraftPatrolRadius 800 #define aircraftWaypointTimeout [1,1.5,2] @@ -68,52 +59,17 @@ if !(isNull _grpPilot) then } else { _chopperType = _helis }; - - #ifdef blck_debugMode - if (blck_debugLevel > 1) then - { - diag_log format["_fnc_spawnMissionHeli(59): _skillAI = %1 | _minDist = %2 | _maxDist = %3",_skillAI,_minDist,_maxDist]; - diag_log format["_fnc_spawnMissionHeli (78):: _chopperType selected = %1",_chopperType]; - }; - #endif - //_patrolHeli = createVehicle [_chopperType, _coords, [], 90, "FLY"]; _patrolHeli = [_chopperType,_coords,"FLY"] call blck_fnc_spawnVehicle; - #ifdef blck_debugMode - if (blck_debugLevel > 2) then - { - diag_log format["_fnc_spawnMissionHeli (75): _patrolHeli = %1 | getPosATL _patrolHeli = %2",_patrolHeli,getposATL _patrolHeli]; - }; - #endif [_patrolHeli,2] call blck_fnc_configureMissionVehicle; - //_patrolHeli setVariable["blck_vehicle",true]; _patrolHeli setVariable["blck_vehicleSearchRadius",blck_playerDetectionRangeAir]; _patrolHeli setVariable["blck_vehiclePlayerDetectionOdds",blck_vehiclePlayerDetectionOdds]; - //_patrolHeli addEventHandler["GetOut",{_this remoteExec["blck_EH_vehicleGetOut",2]}]; - //[_patrolHeli] call blck_fnc_protectVehicle; _patrolHeli setFuel 1; _patrolHeli engineOn true; _patrolHeli flyInHeight 100; - //_patrolHeli setVehicleLock "LOCKED"; - // params["_veh","_group",["_crewCount",4]]; [_patrolHeli,_grpPilot,_crewCount] call blck_fnc_loadVehicleCrew; - - #ifdef blck_debugMode - if (blck_debugLevel > 1) then - { - diag_log format["_fnc_spawnMissionHeli (93):: heli %1 spawned with crew count of %2 | desired crew count = %3",_patrolHeli,count(crew _patrolHeli),_crewCount]; - diag_log format["_fnc_spawnMissionHeli (89): _patrolHeli = %1 | getPosATL _patrolHeli = %2 | driver _patrolHeli = %4",_patrolHeli,getposATL _patrolHeli,driver _patrolHeli]; - diag_log format["_fnc_spawnMissionHeli (133)::-->> Heli %1 outfited with a crew numbering %2",_patrolHeli, crew _patrolHeli]; - }; - #endif }; -//diag_log format["[blckeagls] _fnc_spawnMissionHeli:: _patrolHeli %1 | _grpPilot %2 | _abort %3",_patrolHeli,_grpPilot,_abort]; + _return = [_patrolHeli,units _grpPilot,_abort]; -#ifdef blck_debugMode -if (blck_debugLevel > 0) then -{ - diag_log format["_fnc_spawnMissionHeli:: function returning value for _return of %1",_return]; -}; -#endif _return; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnMissionParatroops.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnMissionParatroops.sqf index 415de3b..2fefe63 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnMissionParatroops.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnMissionParatroops.sqf @@ -24,75 +24,32 @@ _noPara = 0; _aborted = false; if (_skillAI isEqualTo "blue") then { - - #ifdef blck_debugMode - if (blck_debugON) then {diag_log "_fnc_spawnMissionParatroops: BLUE difficulty settings applied";}; - #endif - _chanceParatroops = blck_chanceParaBlue; _noPara = blck_noParaBlue; }; if (_skillAI isEqualTo "green") then { - - #ifdef blck_debugMode - if (blck_debugON) then {diag_log "_fnc_spawnMissionParatroops: GREEN difficulty settings applied";}; - #endif - _chanceParatroops = blck_chanceParaGreen; _noPara = blck_noParaGreen; }; if (_skillAI isEqualTo "orange") then { - - #ifdef blck_debugMode - if (blck_debugON) then {diag_log "_fnc_spawnMissionParatroops: ORANGE difficulty settings applied";}; - #endif - _chanceParatroops = blck_chanceParaOrange; _noPara = blck_noParaOrange; }; if (_skillAI isEqualTo "red") then { - #ifdef blck_debugMode - if (blck_debugON) then {diag_log "_fnc_spawnMissionParatroops: RED difficulty settings applied";}; - #endif - _chanceParatroops = blck_chanceParaRed; _noPara = blck_noParaRed; }; -#ifdef blck_debugMode -if (blck_debugLevel > 2) then {diag_log format["_fnc_spawnMissionParatroops (47): _chanceParatroops %1",_chanceParatroops];}; -if (blck_debugLevel > 2) then {diag_log format["_fnc_spawnMissionParatroops (48): _coords %1 | _numAI %2 | _skillAI %3 | _grpParatroops %4 | _heli %5",_coords,_noPara,_skillAI,_grpParatroops,_heli];}; -#endif - if ( (random(1) < _chanceParatroops)) then { if (isNull _grpParatroops) then { _grpParatroops = createGroup blck_AI_Side; - - #ifdef blck_debugMode - if (blck_debugLevel > 2) then - { - diag_log format["_fnc_spawnMissionParatroops (53):No group passed as a parameter, _grpParatroops %4 created",_grpParatroops]; - }; - #endif }; - - #ifdef blck_debugMode - if (blck_debugLevel > 2) then - { - diag_log format["_fnc_spawnMissionParatroops (58): function running and group %1 successfully created; now calling blck_fnc_spawnParaUnits",_grpParatroops]; - }; - #endif - - //params["_missionPos","_paraGroup",["_numAI",3],"_skillAI","_weapons","_uniforms","_headGear",["_heli",objNull]]; _aborted = [_coords,_grpParatroops,_noPara,_skillAI,_weapons,_uniforms,_headGear,_heli] call blck_fnc_spawnParaUnits; - //diag_log format["_fnc_spawnMissionParatroops: blck_fnc_spawnParaUnits returned a value of %1",_aborted]; }; -#ifdef blck_debugMode -diag_log format["_fnc_spawnMissionParatroops: _aborted = %1",_aborted]; -#endif + if (_aborted) then { _return = [[],true]; @@ -100,9 +57,5 @@ if (_aborted) then _return = [(units _grpParatroops),false]; }; -#ifdef blck_debugMode -diag_log format["_fnc_spawnMissionParatroops:-> _return = %1 | _abort = %2",_return,_aborted]; -#endif - _return diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnMissionReinforcements.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnMissionReinforcements.sqf index 1a3f42a..ae7f46d 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnMissionReinforcements.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnMissionReinforcements.sqf @@ -12,7 +12,6 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -// [_coords,_aiDifficultyLevel,_chancePara,_noPara,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] params["_coords","_missionHelis","_spawnHeli",["_aiSkillsLevel","Red"],["_chancePara",0],["_noPara",0],["_uniforms",[]], ["_headGear",[]],["_vests",[]],["_backpacks",[]],["_weaponList",[]],["_sideArms",[]]]; if (_uniforms isEqualTo []) then {_uniforms = [_skillAI] call blck_fnc_selectAIUniforms}; @@ -22,38 +21,14 @@ if (_backpacks isEqualTo []) then {_backpacks = [_skillAI] call blck_fnc_selec if (_weaponList isEqualTo []) then {_weaponList = [_skillAI] call blck_fnc_selectAILoadout}; if (_sideArms isEqualTo []) then {[_skillAI] call blck_fnc_selectAISidearms}; -#ifdef blck_debugMode -if (blck_debugLevel >=2) then -{ - private _params = ["_coords","_missionHelis","_spawnHeli","_aiSkillsLevel","_chancePara","_noPara","_uniforms","_headGear","_vests","_backpacks","_weapons","_sideArms"]; - { - diag_log format["_fnc_spawnMissionReinforcements:: param %1 | isEqualTo %2 | _forEachIndex %3",_params select _forEachIndex,_this select _forEachIndex, _forEachIndex]; - }forEach _this; -}; -#endif - private["_return","_temp","_missionHelis"]; -#ifdef blck_debugMode -if (blck_debugLevel > 0) then {diag_log format["_fnc_spawnMissionReinforcements (25): Script Starting with _aiSkillsLevel = %1",_aiSkillsLevel]}; -#endif - _aiSkillsLevel = toLower _aiSkillsLevel; if ( _spawnHeli ) then // if helipatrols are 'enabled' then paratroops will only drop if a heli spawns. // The chance that they drop is linked to the value for them for that difficulty _aiSkillsLevel //see _fnc_spannMissionParatroops for how this is handled. { - _temp = [objNull,[],false]; - //params["_coords","_aiSkillsLevel",,"_weapons","_uniforms","_headgear""_helis"]; - - #ifdef blck_debugMode - if (blck_debugLevel > 2) then - { - diag_log "_fnc_spawnMissionReinforcements (64): calling _fnc_spawnMissionHeli to spawn heli and paratroops"; - }; - #endif - // params["_coords","_skillAI","_weapons","_uniforms","_headGear","_helis",["_chanceParas",0]]; _temp = [_coords,_missionHelis,_aiDifficultyLevel,_chancePara,_noPara,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnMissionHeli; if (typeName _temp isEqualTo "ARRAY") then { @@ -63,23 +38,12 @@ if ( _spawnHeli ) then // if helipatrols are 'enabled' then paratroops will only { _return = [objNull, [], true]; }; - - #ifdef blck_debugMode - if (blck_debugLevel > 2) then {diag_log format["_fnc_spawnMissionReinforcements (66): blck_fnc_spawnMissionHeli returned value of %1 for _return",_return];}; - #endif - } else { if (blck_debugLevel > 2) then {diag_log "_fnc_spawnMissionReinforcements (68): calling _fnc_spawnMissionParatroops to spawn para reinforcements";}; _temp = [objNull,[],false]; _temp = [_coords,_aiSkillsLevel,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnMissionParatroops; - #ifdef blck_debugMode - if (blck_debugLevel > 2) then { - diag_log format["_fnc_spawnMissionReinforcements (71):: blck_fnc_spawnMissionParatroops returned value for _paratroops of %1",_temp]; - }; - #endif - if (typeName _temp isEqualTo "ARRAY") then { _return = [objNull, _temp select 0 /*units*/, _temp select 1 /*true/false*/]; @@ -88,8 +52,4 @@ if ( _spawnHeli ) then // if helipatrols are 'enabled' then paratroops will only }; }; -#ifdef blck_debugMode -if (blck_debugLevel > 1) then {diag_log format["_fnc_spawnMissionReinforcements (74):: _return = %1",_return];}; -#endif - _return \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnParaCrate.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnParaCrate.sqf index b2fa50a..c5e4f5e 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnParaCrate.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnParaCrate.sqf @@ -36,22 +36,16 @@ _offset = _supplyHeli getPos [10, _dir]; _chute = createVehicle ["I_Parachute_02_F", [100, 100, 100], [], 0, "FLY"]; [_chute] call blck_fnc_protectVehicle; _chute setPos [_offset select 0, _offset select 1, 100 ]; //(_offset select 2) - 10]; - -diag_log format["_fnc_spawnParaCrate:: chute spawned yielding object %1 at postion %2", _chute, getPos _chute]; //create the parachute and crate private["_crateSelected"]; _crateSelected = selectRandom["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_IND_AmmoVeh_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F"]; _crate = [getPos _chute, _crateSelected] call blck_fnc_spawnCrate; -//_crate = createVehicle [_crateSelected, position _chute, [], 0, "CAN_COLLIDE"]; _crate setPos [position _supplyHeli select 0, position _supplyHeli select 1, 250]; //(position _supplyHeli select 2) - 10]; _crate attachTo [_chute, [0, 0, -1.3]]; _crate allowdamage false; _crate enableRopeAttach true; // allow slingloading where possible -diag_log format["_fnc_spawnParaCrate:: crate spawned %1 at position %2 and attached to %3",_crate, getPos _crate, attachedTo _crate]; - - switch (_lootSetting) do { case "orange": {[_crate, blck_BoxLoot_Orange, _lootCounts] call blck_fnc_fillBoxes;}; @@ -60,8 +54,6 @@ switch (_lootSetting) do case "blue": {[_crate, blck_BoxLoot_Blue, _lootCounts] call blck_fnc_fillBoxes;}; default {[_crate, blck_BoxLoot_Red, _lootCounts] call blck_fnc_fillBoxes;}; }; - -diag_log format["_fnc_spawnParaCrate:: crate loaded and now at position %1 and attached to %2", getPos _crate, attachedTo _crate]; _fn_monitorCrate = { params["_crate","_chute"]; @@ -71,7 +63,6 @@ _fn_monitorCrate = { while {!_crateOnGround} do { uiSleep 1; - diag_log format["_fnc_spawnParaCrate:: Crate Altitude: %1 Crate Velocity: %2 Crate Position: %3 Crate attachedTo %4", getPos _crate select 2, velocityModelSpace _crate select 2, getPosATL _crate, attachedTo _crate]; if ( (((velocity _crate) select 2) < 0.1) || ((getPosATL _crate select 2) < 0.1) ) exitWith { uiSleep 10; // give some time for everything to settle diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnReinforcements.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnReinforcements.sqf index a219a08..90460fa 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnReinforcements.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnReinforcements.sqf @@ -13,66 +13,33 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; params["_coords","_aiSkillsLevel","_weapons","_uniforms","_headgear",["_chancePara",0]]; -/* -_coords = _this select 0; -_aiSkillsLevel = _this select 1; -_weapons = _this select 2; -_uniforms = _this select 3; -_headgear = _this select 4; -*/ private["_chanceHeliPatrol","_return","_temp","_missionHelis"]; -#ifdef blck_debugMode -if (blck_debugLevel > 0) then {diag_log format["_fnc_spawnMissionReinforcements (25): Script Starting with _aiSkillsLevel = %1",_aiSkillsLevel]}; -#endif + _aiSkillsLevel = toLower _aiSkillsLevel; if (_aiSkillsLevel isEqualTo "blue") then { - #ifdef blck_debugMode - if (blck_debugLevel > 0) then {diag_log "_fnc_spawnMissionReinforcements (29): BLUE difficulty settings applied";}; - #endif _chanceHeliPatrol = blck_chanceHeliPatrolBlue; _missionHelis = blck_patrolHelisBlue; }; if (_aiSkillsLevel isEqualTo "green") then { - #ifdef blck_debugMode - if (blck_debugLevel > 0) then {diag_log "_fnc_spawnMissionReinforcements (34): GREEN difficulty settings applied";}; - #endif _chanceHeliPatrol = blck_chanceHeliPatrolGreen; _missionHelis = blck_patrolHelisGreen; }; if (_aiSkillsLevel isEqualTo "orange") then { - #ifdef blck_debugMode - if (blck_debugLevel > 0) then {diag_log "_fnc_spawnMissionReinforcements (39): ORANGE difficulty settings applied";}; - #endif _chanceHeliPatrol = blck_chanceHeliPatrolOrange; _missionHelis = blck_patrolHelisOrange; }; if (_aiSkillsLevel isEqualTo "red") then { - #ifdef blck_debugMode - if (blck_debugLevel > 0) then {diag_log "_fnc_spawnMissionReinforcements (46): RED difficulty settings applied";}; - #endif _chanceHeliPatrol = blck_chanceHeliPatrolRed; _missionHelis = blck_patrolHelisRed; }; -#ifdef blck_debugMode -if (blck_debugLevel > 1) then {diag_log format["_fnc_spawnMissionReinforcements (50): Variables defined: _chanceHeliPatrol %1 | _missionHelis %2",_chanceHeliPatrol,_missionHelis];}; -#endif + if ( (_chanceHeliPatrol > 0) && (random (1) < _chanceHeliPatrol) ) then // if helipatrols are 'enabled' then paratroops will only drop if a heli spawns. // The chance that they drop is linked to the value for them for that difficulty _aiSkillsLevel //see _fnc_spannMissionParatroops for how this is handled. { - _temp = [objNull,[],false]; - //params["_coords","_aiSkillsLevel",,"_weapons","_uniforms","_headgear""_helis"]; - - #ifdef blck_debugMode - if (blck_debugLevel > 2) then - { - diag_log "_fnc_spawnMissionReinforcements (64): calling _fnc_spawnMissionHeli to spawn heli and paratroops"; - }; - #endif - // params["_coords","_skillAI","_weapons","_uniforms","_headGear","_helis",["_chanceParas",0]]; _temp = [_coords,_aiSkillsLevel,_weapons,_uniforms,_headgear,_missionHelis,_chancePara] call blck_fnc_spawnMissionHeli; if (typeName _temp isEqualTo "ARRAY") then { @@ -82,23 +49,9 @@ if ( (_chanceHeliPatrol > 0) && (random (1) < _chanceHeliPatrol) ) then // if he { _return = [objNull, [], true]; }; - - #ifdef blck_debugMode - if (blck_debugLevel > 2) then {diag_log format["_fnc_spawnMissionReinforcements (66): blck_fnc_spawnMissionHeli returned value of %1 for _return",_return];}; - #endif - } else { - if (blck_debugLevel > 2) then {diag_log "_fnc_spawnMissionReinforcements (68): calling _fnc_spawnMissionParatroops to spawn para reinforcements";}; - _temp = [objNull,[],false]; - // params["_coords","_skillAI","_weapons","_uniforms","_headgear"]; _temp = [_coords,_aiSkillsLevel,_weapons,_uniforms,_headgear] call blck_fnc_spawnMissionParatroops; - #ifdef blck_debugMode - if (blck_debugLevel > 2) then { - diag_log format["_fnc_spawnMissionReinforcements (71):: blck_fnc_spawnMissionParatroops returned value for _paratroops of %1",_temp]; - }; - #endif - if (typeName _temp isEqualTo "ARRAY") then { _return = [objNull, _temp select 0 /*units*/, _temp select 1 /*true/false*/]; @@ -107,8 +60,4 @@ if ( (_chanceHeliPatrol > 0) && (random (1) < _chanceHeliPatrol) ) then // if he }; }; -#ifdef blck_debugMode -if (blck_debugLevel > 1) then {diag_log format["_fnc_spawnMissionReinforcements (74):: _return = %1",_return];}; -#endif - _return \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnSubPatrol.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnSubPatrol.sqf index 729d0ec..8553fea 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnSubPatrol.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnSubPatrol.sqf @@ -14,23 +14,10 @@ params["_vehType","_pos",["_maxCrew",3]]; -#ifdef blck_debugMode -if (blck_debugLevel > 1) then {diag_log format["spawnVehicle.sqf: _vehType = %1 | _pos = %2",_vehType,_pos];}; -#endif - private _veh = [_vehType,_pos] call blck_fnc_spawnVehicle; _veh setVariable["blck_vehicleSearchRadius",blck_playerDetectionRangeSubs]; _veh setVariable["blck_vehiclePlayerDetectionOdds",blck_vehiclePlayerDetectionOdds]; - -#ifdef blck_debugMode -if (blck_debugLevel > 1) then {diag_log format["spawnVehicle.sqf:: vehicle spawned is %1",_veh];}; -#endif -//[_veh,_group,_crewCount] call blck_fnc_loadVehicleCrew; [_veh,2] call blck_fnc_configureMissionVehicle; -#ifdef blck_debugMode -if (blck_debugLevel > 1) then {diag_log format["spawnVehicle:: returning parameter _veh = %1",_veh];}; -#endif - _veh diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehicle.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehicle.sqf index 123e328..4048d6b 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehicle.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehicle.sqf @@ -12,9 +12,9 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -params["_vehType","_pos",["_special","NONE"]]; +params["_vehType","_pos",["_special","NONE"],["_radius",30]]; -private _veh = createVehicle[_vehType, _pos, [], 0, _special]; +private _veh = createVehicle[_vehType, _pos, [], _radius, _special]; _veh setVectorUp surfaceNormal position _veh; _veh allowDamage true; _veh enableRopeAttach true; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehiclePatrol.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehiclePatrol.sqf index 52713ef..530e01c 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehiclePatrol.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehiclePatrol.sqf @@ -15,14 +15,6 @@ params["_center","_pos",["_vehType","I_G_Offroad_01_armed_F"],["_minDis",40],["_maxDis",60],["_group",grpNull],["_setWaypoints",true],["_crewCount",4],["_patrolRadius",150],["_waypointTimeout",[5,7.5,10]]]; - -//_center Center of the mission area - this is usually the position treated as the center by the mission spawner. Vehicles will patrol the perimeter of the mission area. -// _pos the approximate spawn point for the vehicle -//_vehType = [_this,1,"I_G_Offroad_01_armed_F"] call BIS_fnc_param; -//_minDis = -//_maxDis = -//_groupForVehiclePatrol = The group with which to man the vehicle -// _crewCount = the number of AI including driver and gunners to place in the vehicle if (_group isEqualTo grpNull) exitWith { diag_log format["_fnc_spawnVehiclePatrol(30): Function can not accept a null group"]; @@ -30,8 +22,8 @@ if (_group isEqualTo grpNull) exitWith private _veh = objNull; -_veh = [_vehType,_pos] call blck_fnc_spawnVehicle; +_veh = [_vehType,_pos] call blck_fnc_spawnVehicle; _veh setVariable["blck_vehicleSearchRadius",blck_playerDetectionRangeGroundVehicle]; _veh setVariable["blck_vehiclePlayerDetectionOdds",blck_vehiclePlayerDetectionOdds]; @@ -41,13 +33,9 @@ private _maxCrew = [_crewCount] call blck_fnc_getNumberFromRange; [_veh,2] call blck_fnc_configureMissionVehicle; if (_setWaypoints) then { - // params["_pos","_minDis","_maxDis","_group",["_mode","random"],["_wpPatrolMode","SAD"],["_soldierType","null"] ]; [_center,_minDis,_maxDis,_group,"perimeter","SAD","vehicle",_patrolRadius,_waypointTimeout] spawn blck_fnc_setupWaypoints; - //diag_log format["_fnc_spawnVehiclePatrol(50): waypoint configuration set for vehicle %1 with crew %2",_veh, crew _veh]; }; - - _veh diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_vehicleMonitor.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_vehicleMonitor.sqf index 530d66a..148e9a9 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_vehicleMonitor.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_vehicleMonitor.sqf @@ -11,7 +11,6 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -//diag_log format["_fnc_vehicleMonitor:: function called at %1 with _vehList %2 ",diag_tickTime,blck_monitoredVehicles]; // TODO: Test that vehicles that are either scheduled for deletion are for deletion pending change in owner are proparly handled (kept in the list, deleted when the time arrives). private _serverIDs = ([2] + (entities "HeadlessClient_F")); for "_i" from 1 to (count blck_monitoredVehicles) do @@ -23,12 +22,10 @@ for "_i" from 1 to (count blck_monitoredVehicles) do // if the owner is a player do not add back for further monitoring if ((owner _veh) in (_serverIDs)) then { - //diag_log format["_fnc_vehicleMonitor: vehicle %1 to be deleted at %2",_veh,(_veh getVariable ["blck_deleteAtTime",0])]; if ((_veh getVariable ["blck_deleteAtTime",0]) > 0) then { if (diag_tickTime > ( _veh getVariable ["blck_deleteAtTime",0])) then { - //diag_log format["_fnc_vehicleMonitor: deleting vehicle and crew for %1",_veh]; [_veh] call blck_fnc_destroyVehicleAndCrew; } else { blck_monitoredVehicles pushBack _veh; @@ -38,12 +35,7 @@ for "_i" from 1 to (count blck_monitoredVehicles) do blck_monitoredVehicles pushBack _veh; }; } else { - #ifdef blck_debugMode - if (blck_debugOn) then - { - diag_log format["_fnc_vehicleMonitor: owner of vehicle %1 is a player, discontinuing further monitoring",_veh]; - }; - #endif + }; }; }; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_vehiclePlayerSensingLogic.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_vehiclePlayerSensingLogic.sqf index 032d7ca..5c2ad1f 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_vehiclePlayerSensingLogic.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_vehiclePlayerSensingLogic.sqf @@ -13,8 +13,6 @@ // No params { - // - //params["_vehicle","_group","searchRadius","_detectionOdds"]; _group = group driver _vehicle; _searchRadius = _vehicle getVariable["blck_vehicleSearchRadius",800]; _detectionOdds = _vehicle getVariable["blck_vehiclePlayerDetectionOds",0.5]; diff --git a/@GMS/addons/custom_server/Compiles/blck_functions.sqf b/@GMS/addons/custom_server/Compiles/blck_functions.sqf index bc782a6..20094d7 100644 --- a/@GMS/addons/custom_server/Compiles/blck_functions.sqf +++ b/@GMS/addons/custom_server/Compiles/blck_functions.sqf @@ -15,7 +15,7 @@ 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_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_findSafePosn_2","\q\addons\custom_server\Compiles\Functions\GMS_fnc_findSafePosn_2.sqf"], ["blck_fnc_randomPosition","\q\addons\custom_server\Compiles\Functions\GMS_fnc_randomPosn.sqf"], // find a randomPosn. see script for details. @@ -50,10 +50,12 @@ private _functions = [ ["blck_fnc_getAllMarkersOfSubtype","\q\addons\custom_server\Compiles\Functions\GMS_fnc_getAllMarkersOfSubtype.sqf"], ["blck_fnc_getAllDMSMarkers","\q\addons\custom_server\Compiles\Functions\GMS_fnc_getAllDMSMarkers.sqf"], ["blck_fnc_createMissionMarkers","\q\addons\custom_server\Compiles\Functions\GMS_fnc_createMissionMarkers.sqf"], + ["blck_fnc_log","\q\addons\custom_server\Compiles\Functions\GMS_fnc_log.sqf"], + ["blck_fnc_setDirUp","\q\addons\custom_server\Compiles\Functions\GMS_fnc_setDirUp.sqf"], // Player-related functions - ["GMS_fnc_handlePlayerUpdates","\q\addons\custom_server\Compiles\Units\GMS_fnc_handlePlayerUpdates.sqf"], - ["blck_fnc_MessagePlayers","\q\addons\custom_server\Compiles\Functions\GMS_fnc_AIM.sqf"], // Send messages to players regarding Missions + ["blck_fnc_handlePlayerUpdates","\q\addons\custom_server\Compiles\Units\GMS_fnc_handlePlayerUpdates.sqf"], + ["blck_fnc_MessagePlayers","\q\addons\custom_server\Compiles\Functions\GMS_fnc_messagePlayers.sqf"], // Send messages to players regarding Missions // Mission-related functions ["blck_fnc_selectAILoadout","\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectAILoadout.sqf"], @@ -70,8 +72,6 @@ private _functions = [ ["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_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"], @@ -106,24 +106,19 @@ private _functions = [ ["blck_fnc_sm_monitorEmplaced","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_monitorEmplaced.sqf"], ["blck_fnc_sm_monitorGarrisonsASL","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_monitorGarrisonsASL.sqf"], ["blck_fnc_sm_monitorGarrisons_relPos","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_monitorGarrisons_relPos.sqf"], - ["blck_fnc_sm_staticPatrolMonitor","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_staticPatrolMonitor.sqf"], - - ["blck_fnc_sm_spawnLootContainers","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_spawnLootContainers.sqf"], ["blck_fnc_sm_spawnObjects","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_spawnObjects.sqf"], - - ["blck_fnc_sm_spawnBuildingGarrison_ASL","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_spawnBuildingGarrisonASL.sqf"], ["blck_fnc_sm_spawnBuildingGarrison_relPos","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_spawnBuildingGarrison_relPos.sqf"], ["blck_fnc_sm_spawnObjectASLVectorDirUp","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_spawnObjectASLVectorDirUp.sqf"], ["blck_fnc_spawnScubaGroup","\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnScubaGroup.sqf"], ["blck_fnc_spawnSDVPatrol","\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnSDVPatrol.sqf"], ["blck_fnc_spawnSurfacePatrol","\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnSurfacePatrol.sqf"], - - ["blck_fnc_sm_AddGroupToArray", "\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_AddGroupToArray.sqf"], - + ["blck_fnc_initializeMission", "\q\addons\custom_server\Compiles\Missions\GMS_fnc_initializeMission.sqf"], + ["blck_fnc_monitorInitializedMissions","\q\addons\custom_server\Compiles\Missions\GMS_fnc_monitorInitializedMissions.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 @@ -146,9 +141,7 @@ private _functions = [ ["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_fnc_HandleAIVehicleHit","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_HandleAIVehicleHit.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"], @@ -160,7 +153,6 @@ private _functions = [ ["blck_fnc_unlockVehicle","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_unlockVehicle.sqf"], ["GMS_fnc_applyVehicleDamagePenalty","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_applyVehicleDamagePenalty.sqf"], ["GMS_fnc_revealVehicleToUnits","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_revealVehicleToUnits.sqf"], - ["blck_fnc_handleVehicleGetOut","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_handleVehicleGetOut.sqf"], ["blck_fnc_checkForEmptyVehicle","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_checkForEmptyVehicle.sqf"], ["blck_fnc_handleEmptyVehicle","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_handleEmptyVehicle.sqf"], @@ -175,11 +167,9 @@ private _functions = [ ["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_AIfiredNear","\q\addons\custom_server\Compiles\Units\GMS_EH_AIfiredNear.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_alertGroupUnits","\q\addons\custom_server\Compiles\Units\GMS_fnc_alertGroupUnits.sqf"], ["GMS_fnc_alertNearbyGroups","\q\addons\custom_server\Compiles\Units\GMS_fnc_alertNearbyGroups.sqf"], ["blck_fnc_alertNearbyVehicles","\q\addons\custom_server\Compiles\Units\GMS_fnc_alertNearbyVehicles.sqf"], @@ -193,7 +183,6 @@ private _functions = [ ["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_placeCharacterInBuilding","\q\addons\custom_server\Compiles\Units\GMS_fnc_placeCharacterInBuilding.sqf"], ["GMS_fnc_removeAllAIgear","\q\addons\custom_server\Compiles\Units\GMS_fnc_removeAllAIgear.sqf"], @@ -209,6 +198,10 @@ private _functions = [ missionnamespace setvariable [_name,compileFinal preprocessFileLineNumbers _path]; } foreach _functions; +#ifdef GRGserver +if (isServer) then {blck_fnc_broadcastServerFPS = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\Functions\GMS_fnc_broadcastServerFPS.sqf";}; +["blck_functions loaded using GRGserver settings ---- >>>> "] call blck_fnc_log; +#endif diff --git a/@GMS/addons/custom_server/Compiles/blck_functions_HC.sqf b/@GMS/addons/custom_server/Compiles/blck_functions_HC.sqf index 9cb2f62..7083a2b 100644 --- a/@GMS/addons/custom_server/Compiles/blck_functions_HC.sqf +++ b/@GMS/addons/custom_server/Compiles/blck_functions_HC.sqf @@ -14,205 +14,13 @@ 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_nearestPlayers","\q\addons\custom_server\Compiles\Functions\GMS_fnc_nearestPlayers.sqf"], - ["GMS_fnc_msgIED","\q\addons\custom_server\Compiles\Functions\GMS_fnc_msgIED.sqf"], - ["GMS_fnc_cleanupTemporaryMarkers","\q\addons\custom_server\Compiles\Functions\GMS_fnc_cleanupTemporaryMarkers.sqf"], - ["GMS_fnc_updateCrateSignals","\q\addons\custom_server\Compiles\Functions\GMS_fnc_updateCrateSignals.sqf"], - ["GMS_fnc_isClass","\q\addons\custom_server\Compiles\Functions\GMS_fnc_isClass.sqf"], - ["blck_fnc_findShoreLocation","q\addons\custom_server\Compiles\Functions\GMS_UMS_fnc_findShoreLocation.sqf"], - ["blck_fnc_findWaterDepth","q\addons\custom_server\Compiles\Functions\GMS_UMS_fnc_findWaterDepth.sqf"], - ["blck_fnc_setAILocality","\q\addons\custom_server\Compiles\Functions\GMS_fnc_setAILocality.sqf"], - ["blck_fnc_ai_offloadToClients","\q\addons\custom_server\Compiles\Functions\GMS_fnc_ai_offloadToClients.sqf"], - - // Player-related functions - ["GMS_fnc_handlePlayerUpdates","\q\addons\custom_server\Compiles\Units\GMS_fnc_handlePlayerUpdates.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"], - ["GMS_fnc_selectVehicleCrewCount","\q\addons\custom_server\Compiles\Missions\GMS_fnc_selectVehicleCrewCount.sqf"], - ["blck_fnc_addDyanamicUMS_Mission","q\addons\custom_server\Compiles\Missions\GMS_fnc_addDynamicUMS_Mission.sqf"], - ["blck_fnc_sm_monitorInfantry","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_monitorInfantry.sqf"], - ["blck_fnc_sm_monitorScuba","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_monitorScuba.sqf"], - ["blck_fnc_sm_monitorVehicles","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_monitorVehicles.sqf"], - ["blck_fnc_sm_monitorAircraft","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_monitorAircraft.sqf"], - ["blck_fnc_sm_monitorShips","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_monitorShips.sqf"], - ["blck_fnc_sm_monitorSubs","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_monitorSubs.sqf"], - ["blck_fnc_sm_monitorEmplaced","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_monitorEmplaced.sqf"], - ["blck_fnc_sm_monitorGarrisonsASL","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_monitorGarrisonsASL.sqf"], - ["blck_fnc_sm_monitorGarrisons_relPos","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_monitorGarrisons_relPos.sqf"], - //["blck_fnc_sm_spawnVehiclePatrol","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_spawnVehiclePatrol.sqf"], - ["blck_fnc_sm_spawnAirPatrol","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_spawnAirPatrol.sqf"], - ["blck_fnc_sm_spawnEmplaced","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_spawnEmplaced.sqf"], -// ["blck_fnc_sm_spawnInfantryPatrol","\q\addons\custom_server\Compiles\Missions\GMS_sm_spawnInfantryPatrol.sqf"], - ["blck_fnc_sm_staticPatrolMonitor","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_staticPatrolMonitor.sqf"], -// ["blck_fnc_sm_checkForPlayerNearMission","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_checkForPlayerNearMission.sqf"], - ["blck_fnc_sm_spawnAirPatrols","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_spawnAirPatrols.sqf"], - //["blck_fnc_sm_spawnEmplaceds","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_spawnEmplaced.sqf"], - ["blck_fnc_sm_spawnInfantryPatrols","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_spawnInfantryPatrols.sqf"], - ["blck_fnc_sm_spawnLootContainers","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_spawnLootContainers.sqf"], - ["blck_fnc_sm_spawnObjects","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_spawnObjects.sqf"], - ["blck_fnc_sm_spawnVehiclePatrols","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_spawnVehiclePatrols.sqf"], - ["blck_fnc_sm_spawnBuildingGarrison_ASL","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_spawnBuildingGarrisonASL.sqf"], - ["blck_fnc_sm_spawnBuildingGarrison_relPos","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_spawnBuildingGarrison_relPos.sqf"], - ["blck_fnc_sm_spawnObjectASLVectorDirUp","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_spawnObjectASLVectorDirUp.sqf"], - ["blck_fnc_spawnScubaGroup","\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnScubaGroup.sqf"], - ["blck_fnc_spawnSDVPatrol","\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnSDVPatrol.sqf"], - ["blck_fnc_spawnSurfacePatrol","\q\addons\custom_server\Compiles\Missions\GMS_fnc_spawnSurfacePatrol.sqf"], - //["blck_fnc_sm_AddScubaGroup","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_AddScubaGroup.sqf"], - //["blck_fnc_sm_AddSurfaceVehicle","\q\addons\custom_server\Compiles\Missions\GMS_fnc_sm_AddSurfaceVehicle.sqf"], - ["blck_fnc_sm_AddSDVVehicle","\q\addons\custom_server\Compiles\Missions\GMS_sm_AddSDVVehicle.sqf"], - ["blck_fnc_sm_AddGroupToArray", "\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_AddGroupToArray.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 - // 7/29/19 script mission; presume another function handles this now. - //["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_createGroup","\q\addons\custom_server\Compiles\Groups\GMS_fnc_create_AI_Group.sqf"], // create a group for which other functions spawn AI. - //["blck_fnc_simulationManager","\q\addons\custom_server\Compiles\Groups\GMS_fnc_simulationMonitor.sqf"], - //["blck_fnc_groupWaypointMonitor","\q\addons\custom_server\Compiles\Groups\GMS_fnc_groupWaypointMonitor.sqf"], - //["blck_fnc_checkgroupwaypointstatus","\q\addons\custom_server\Compiles\Groups\GMS_fnc_checkgroupwaypointstatus.sqf"], - // blck_fnc_checkgroupwaypointstatus - /* - // 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_EH_changeLocality","\q\addons\custom_server\Compiles\Vehicles\GMS_EH_changeLocality.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"], - ["GMS_fnc_unlockServerVehicle","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_unlockServerVehicle.sqf"], - ["GMS_fnc_applyVehicleDamagePenalty","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_applyVehicleDamagePenalty.sqf"], - ["GMS_fnc_revealVehicleToUnits","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_revealVehicleToUnits.sqf"], - //["GMS_fnc_handleEmptyStaticWeapon","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_handleEmptyStaticWeapon.sqf"], - */ - //["blck_EH_vehicleGetOut","\q\addons\custom_server\Compiles\Vehicles\GMS_EH_vehicleGetOut.sqf"], ["blck_fnc_handleVehicleGetOut","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_handleVehicleGetOut.sqf"], - /* - ["blck_fnc_checkForEmptyVehicle","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_checkForEmptyVehicle.sqf"], - ["blck_fnc_handleEmptyVehicle","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_handleEmptyVehicle.sqf"], - ["blck_fnc_loadVehicleCrew","\q\addons\custom_server\Compiles\Vehicles\GMS_fnc_loadVehicleCrew.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_AIfiredNear","\q\addons\custom_server\Compiles\Units\GMS_EH_AIfiredNear.sqf"], ["blck_fnc_processAIfiredNear","\q\addons\custom_server\Compiles\Units\GMS_fnc_processAIFiredNear.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"], - ["GMS_fnc_alertNearbyGroups","\q\addons\custom_server\Compiles\Units\GMS_fnc_alertNearbyGroups.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"], - ["GMS_fnc_removeAllAIgear","\q\addons\custom_server\Compiles\Units\GMS_fnc_removeAllAIgear.sqf"], - */ - // HC support functions - //["blck_fnc_HC_XferGroup","\q\addons\custom_server\Compiles\HC\GMS_fnc_HC_XferGroup.sqf"], - //["blck_fnc_HC_passToHCs","\q\addons\custom_server\Compiles\HC\GMS_fnc_passToHCs.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"] - [] + ["blck_fnc_processAIKill","\q\addons\custom_server\Compiles\Units\GMS_fnc_processAIKill.sqf"] ]; { diff --git a/@GMS/addons/custom_server/Compiles/blck_variables.sqf b/@GMS/addons/custom_server/Compiles/blck_variables.sqf index 1557a82..8777869 100644 --- a/@GMS/addons/custom_server/Compiles/blck_variables.sqf +++ b/@GMS/addons/custom_server/Compiles/blck_variables.sqf @@ -41,7 +41,6 @@ blck_connectedHCs = []; blck_missionMarkerRootName = "blckeagls_marker"; DMS_missionMarkerRootName = "DMS_MissionMarker"; blck_missionLabelMarkers = []; - blck_temporaryMarkers = []; blck_illuminatedCrates = []; // [crate,duration,freq of replacement] blck_mainThreadUpdateInterval = 60; @@ -53,5 +52,9 @@ blck_activeMissionsList = []; blck_initializedMissionsList = []; blck_blackListedLocations = []; // [ [marker, time]] +blck_validEndStates = ["allUnitsKilled", "playerNear", "allKilledOrPlayerNear","assetSecured"]; +blck_validLootSpawnTimings = ["atMissionSpawnGround","atMissionSpawnAir","atMissionEndGround","atMissionEndAir"]; +blck_validLootLoadTimings = ["atMissionCompletion", "atMissionSpawn"]; + if (blck_debugOn) then {diag_log "[blckeagls] Variables Loaded"}; diff --git a/@GMS/addons/custom_server/Configs/armed_vics_notes.txt b/@GMS/addons/custom_server/Configs/armed_vics_notes.txt deleted file mode 100644 index 199a327..0000000 --- a/@GMS/addons/custom_server/Configs/armed_vics_notes.txt +++ /dev/null @@ -1,91 +0,0 @@ - -_blck_lightlyArmed_ARMA3 = [ - "B_G_Offroad_01_armed_F", - "O_G_Offroad_01_armed_F", - "B_MRAP_01_gmg_F", - "B_MRAP_01_hmg_F", - "O_MRAP_02_gmg_F", - "O_MRAP_02_hmg_F", - "I_MRAP_03_hmg_F", - "I_MRAP_03_gmg_F", - "B_APC_Wheeled_01_cannon_F", - "I_APC_Wheeled_03_cannon_F" -]; - - -_blck_tracked_APC_ARMA3 = [ - "B_APC_Tracked_01_rcws_F", - "B_APC_Tracked_01_CRV_F", - "B_APC_Tracked_01_AA_F", - "O_APC_Tracked_02_cannon_F", - "O_APC_Tracked_02_AA_F", - "O_APC_Wheeled_02_rcws_F", - "I_APC_tracked_03_cannon_F" -]; - -_blck_Tanks_ARMA3 = [ - //"B_MBT_01_arty_F", - "B_MBT_01_mlrs_F", - "B_MBT_01_TUSK_F", - "O_MBT_02_cannon_F", - //"O_MBT_02_arty_F", - "I_MBT_03_cannon_F" -]; -_blck_APC_CUP = [ - "CUP_B_Mastiff_GMG_GB_D", - "CUP_B_Mastiff_HMG_GB_D", - "CUP_B_Ridgback_HMG_GB_D", - "CUP_B_Ridgback_GMG_GB_D", - "CUP_B_M1128_MGS_Desert", - "CUP_B_M1135_ATGMV_Desert_Slat", - "CUP_B_M1133_MEV_Desert_Slat", - "CUP_B_LAV25M240_desert_USMC", - "CUP_B_M1129_MC_MK19_Desert_Slat", - "CUP_B_LAV25_HQ_desert_USMC", - "CUP_B_BRDM2_ATGM_CDF", - "CUP_B_BTR60_CDF", - "CUP_B_M1130_CV_M2_Desert_Slat", - "CUP_B_M1126_ICV_MK19_Desert_Slat", - "CUP_O_BTR90_RU", - "CUP_O_GAZ_Vodnik_BPPU_RU", - "CUP_B_M1126_ICV_M2_Desert", - "CUP_B_M1126_ICV_MK19_Desert", - "CUP_B_M1130_CV_M2_Desert", - "CUP_B_M1126_ICV_M2_Desert_Slat", - "CUP_B_M1133_MEV_Desert", - "CUP_O_GAZ_Vodnik_AGS_RU", - "CUP_O_GAZ_Vodnik_PK_RU" -]; - -_blck_Tanks_CUP = [ - "CUP_B_M2A3Bradley_USA_D", - "CUP_B_M113_desert_USA", - "CUP_B_M163_USA", - "CUP_B_M6LineBacker_USA_D", - "CUP_B_M1A1_DES_US_Army", - "CUP_B_M1A2_TUSK_MG_DES_US_Army", - "CUP_B_AAV_USMC", - "CUP_B_M270_DPICM_USA", - "CUP_B_ZSU23_CDF", - "CUP_B_BMP2_CDF", - "CUP_B_T72_CDF", - "CUP_I_T34_NAPA", - "CUP_B_Challenger2_NATO", - "CUP_B_FV432_Bulldog_GB_D_RWS", - "CUP_B_FV432_Bulldog_GB_D", - "CUP_B_FV510_GB_D_SLAT", - "CUP_B_MCV80_GB_D_SLAT", - "CUP_O_2S6_RU", - "CUP_O_BMP3_RU", - "CUP_O_T90_RU", - "CUP_O_T55_SLA", - "CUP_O_BMP1P_TKA", - "CUP_B_M270_DPICM_USA", - "CUP_B_M2Bradley_USA_W", - "CUP_B_FV510_GB_D", - "CUP_B_MCV80_GB_D", - "CUP_B_M7Bradley_USA_D", - "CUP_O_2S6_RU", - "CUP_O_BMP1_TKA" -]; - diff --git a/@GMS/addons/custom_server/Configs/blck_configs.sqf b/@GMS/addons/custom_server/Configs/blck_configs.sqf index 12693e7..8078f51 100644 --- a/@GMS/addons/custom_server/Configs/blck_configs.sqf +++ b/@GMS/addons/custom_server/Configs/blck_configs.sqf @@ -22,11 +22,11 @@ #ifdef blck_milServer if (true) exitWith { - diag_log format["[blckeagls] Running configs for militarized servers build %1",blck_buildNumber]; + [format["Running configs for militarized servers build %1",blck_buildNumber]] call blck_fnc_log; execVM "\q\addons\custom_server\Configs\blck_configs_mil.sqf"; }; #endif - diag_log format["[blckeagls] Loading configurations for Non-militarized servers build %1",blck_buildNumber]; + [format["Loading configurations for Non-militarized servers build %1",blck_buildNumber]] call blck_fnc_log; /* ************************************** Configurations begin here @@ -42,8 +42,8 @@ 3) A time acceleration module. */ - 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_spawnMapAddons = false; // When true map addons will be spawned based on parameters define in custum_server\MapAddons\MapAddons_init.sqf + blck_spawnStaticLootCrates = false; // 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_useBlckeaglsSimulationManager; //diag_log format["[blckeagls] blck_configs: blck_simulationManager = %1",blck_simulationManager]; /* @@ -53,7 +53,7 @@ */ // Note that you can define map-specific variants in custom_server\configs\blck_custom_config.sqf - blck_useTimeAcceleration = true; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below. + blck_useTimeAcceleration = false; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below. blck_timeAccelerationDay = 2; // Daytime time accelearation blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation blck_timeAccelerationNight = 12; // Nighttim time acceleration @@ -100,11 +100,11 @@ blck_showCountAliveAI = true; //Minimum distance between missions - blck_MinDistanceFromMission = 1000; - blck_minDistanceToBases = 1000; + blck_MinDistanceFromMission = 2000; + blck_minDistanceToBases = 800; blck_minDistanceToPlayer = 800; - blck_minDistanceFromTowns = 500; - blck_minDistanceFromDMS = 500; // minimum distance for a blackeagls mission from any nearby DMS missions. set to -1 to disable this check. + blck_minDistanceFromTowns = 400; + blck_minDistanceFromDMS = 800; // minimum distance for a blackeagls mission from any nearby DMS missions. set to -1 to disable this check. /////////////////////////////// // Mission Smoke and Signals @@ -113,16 +113,16 @@ // global loot crate options // Options to spawn a smoking wreck near the crate. When the first parameter is true, a wreck or junk pile will be spawned. // It's position can be either "center" or "random". smoking wreck will be spawned at a random location between 15 and 50 m from the mission. - blck_SmokeAtMissions = [false,"random"]; // set to [false,"anything here"] to disable this function altogether. + blck_SmokeAtMissions = [true,"random"]; // set to [false,"anything here"] to disable this function altogether. blck_useSignalEnd = true; // When true a smoke grenade/chemlight will appear at the loot crate for 2 min after mission completion. - blck_missionEndCondition = "allKilledOrPlayerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" + blck_missionEndCondition = "allKilledOrPlayerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" /////////////////////////////// // General Mission Completion and Loot Settings /////////////////////////////// blck_killPercentage = 0.999999; // The mission will complete if this fraction of the total AI spawned has been killed. // This facilitates mission completion when one or two AI are spawned into objects. - blck_spawnCratesTiming = "atMissionSpawnGround"; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir". + blck_spawnCratesTiming = "atMissionSpawnGround"; // Choices: "atMissionSpawnGround","atMissionSpawnAir","atMissionEndGround","atMissionEndAir". // Crates spawned in the air will be spawned at mission center or the position(s) defined in the mission file and dropped under a parachute. // This sets the default value but can be overridden by defining _spawnCrateTiming in the file defining a particular mission. blck_loadCratesTiming = "atMissionSpawn"; // valid choices are "atMissionCompletion" and "atMissionSpawn"; @@ -145,10 +145,10 @@ blck_VK_Gear = true; // When set to true, AI that have been killed by a player in a vehicle in the list of forbidden vehicles or using a forbiden gun will be stripped of gear and the vehicle will be given blck_RunGearDamage of damage blck_VK_RunoverDamage = true; // when the AI was run over blck_RunGearDamage of damage will be applied to the killer's vehicle. blck_VK_GunnerDamage = false; // when the AI was killed by a gunner on a vehicle that is is in the list of forbidden vehicles, blck_RunGearDamage of damage will be applied to the killer's vehicle each time an AI is killed with a vehicle's gun. - blck_forbidenVehicles = ["B_MRAP_01_hmg_F","O_MRAP_02_hmg_F","I_MRAP_03_hmg_F","B_MRAP_01_hmg_F","O_MRAP_02_hmg_F"]; // Add any vehicles for which you wish to forbid vehicle kills + blck_forbidenVehicles = []; // Examples include ["B_MRAP_01_hmg_F","O_MRAP_02_hmg_F","I_MRAP_03_hmg_F","B_MRAP_01_hmg_F","O_MRAP_02_hmg_F"]; // Add any vehicles for which you wish to forbid vehicle kills // For a listing of the guns mounted on various land vehicles see the following link: https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Vehicle_Weapons // HMG_M2 is mounted on the armed offroad that is spawned by Epoch - blck_forbidenVehicleGuns = ["LMG_RCWS","LMG_M200","HMG_127","HMG_127_APC","HMG_M2","HMG_NSVT","GMG_40mm","GMG_UGV_40mm","autocannon_40mm_CTWS","autocannon_30mm_CTWS","autocannon_35mm","LMG_coax","autocannon_30mm","HMG_127_LSV_01"]; // Add any vehicles for which you wish to forbid vehicle kills, o + blck_forbidenVehicleGuns = []; // examples include["LMG_RCWS","LMG_M200","HMG_127","HMG_127_APC","HMG_M2","HMG_NSVT","GMG_40mm","GMG_UGV_40mm","autocannon_40mm_CTWS","autocannon_30mm_CTWS","autocannon_35mm","LMG_coax","autocannon_30mm","HMG_127_LSV_01"]; // Add any vehicles for which you wish to forbid vehicle kills, o /////////////////////////////// @@ -242,21 +242,21 @@ // Change this value to reduce the number of spawned missions at any one time. - blck_maxSpawnedMissions = 9; + blck_maxSpawnedMissions = 15; // Reduce to 1 sec for immediate spawns, or longer if you wish to space the missions out - blck_TMin_Orange = 250; - blck_TMin_Green = 200; - blck_TMin_Blue = 120; - blck_TMin_Red = 150; - blck_TMin_UMS = 180; + blck_TMin_Orange = 480; + blck_TMin_Green = 420; + blck_TMin_Blue = 300; + blck_TMin_Red = 360; + blck_TMin_UMS = 300; //Maximum Spawn time between missions in seconds - blck_TMax_Orange = 360; - blck_TMax_Green = 300; - blck_TMax_Blue = 200; - blck_TMax_Red = 250; + blck_TMax_Orange = 560; + blck_TMax_Green = 500; + blck_TMax_Blue = 360; + blck_TMax_Red = 420; blck_TMax_UMS = 400; @@ -387,7 +387,7 @@ //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_AIIntelligence = [0.1, 0.2, 0.3, 0.4]; blck_baseSkill = 1.0; // The overal skill of the AI - range 0.1 to 1.0. @@ -494,12 +494,10 @@ if (toLower(blck_modType) isEqualTo "epoch") then { - execVM "\q\addons\custom_server\Configs\blck_configs_epoch.sqf"; }; if (toLower(blck_modType) isEqualTo "exile") then { - execVM "\q\addons\custom_server\Configs\blck_configs_exile.sqf"; }; if (toLower(blck_modType) isEqualTo "default") then @@ -509,11 +507,11 @@ uiSleep 10; if (blck_useConfigsGeneratedLoadouts) then { - diag_log format["[blckeagls] Dynamic Configs Enabled"]; + ["Dynamic Configs Enabled"] call blck_fnc_log; execVM "\q\addons\custom_server\Configs\blck_dynamicConfigs.sqf"; } else { }; blck_configsLoaded = true; - diag_log format["<--- blck_configs loaded at %1 --->",diag_tickTime]; + //diag_log format["<--- blck_configs loaded at %1 --->",diag_tickTime]; diff --git a/@GMS/addons/custom_server/Configs/blck_configs_default.sqf b/@GMS/addons/custom_server/Configs/blck_configs_default.sqf index 3b78722..52a08a5 100644 --- a/@GMS/addons/custom_server/Configs/blck_configs_default.sqf +++ b/@GMS/addons/custom_server/Configs/blck_configs_default.sqf @@ -12,7 +12,7 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\init\build.sqf"; -diag_log format["[blckeagls] loading default configurations for blckeagls build %1",blck_buildNumber]; +//diag_log format["[blckeagls] loading default configurations for blckeagls build %1",blck_buildNumber]; //////////// // default settings //////////// @@ -45,12 +45,14 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR blck_crateMoneyRed = [175, 300]; blck_crateMoneyGreen = [300, 500]; blck_crateMoneyOrange = [500, 750]; + + blck_crateTypes = ["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F","Box_NATO_Wps_F","I_CargoNet_01_ammo_F","O_CargoNet_01_ammo_F","B_CargoNet_01_ammo_F"]; // Default crate type. blck_allowSalesAtBlackMktTraders = true; // Allow vehicles to be sold at Halvjes black market traders. blck_maximumItemPriceInAI_Loadouts = 100; - blck_lightlyArmed_ARMA3 = [ + blck_lightlyArmed_ARMA3 = [ "B_G_Offroad_01_armed_F", "O_G_Offroad_01_armed_F", "B_MRAP_01_gmg_F", @@ -63,25 +65,35 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR "I_APC_Wheeled_03_cannon_F" ]; + blck_light_AT_ARMA3 = [ + "O_G_Offroad_01_AT_F", + "B_G_Offroad_01_AT_F", + "O_T_LSV_02_AT_F", + "O_LSV_02_AT_F", + "B_T_LSV_01_AT_F", + "B_LSV_01_AT_F" + ]; + blck_tracked_AA_ARMA3 = [ + "O_APC_Tracked_02_AA_F", + "B_APC_Tracked_01_AA_F" + ]; blck_tracked_APC_ARMA3 = [ "B_APC_Tracked_01_rcws_F", "B_APC_Tracked_01_CRV_F", - "B_APC_Tracked_01_AA_F", "O_APC_Tracked_02_cannon_F", - "O_APC_Tracked_02_AA_F", "O_APC_Wheeled_02_rcws_F", "I_APC_tracked_03_cannon_F" ]; blck_Tanks_ARMA3 = [ //"B_MBT_01_arty_F", - "B_MBT_01_mlrs_F", + //"B_MBT_01_mlrs_F", "B_MBT_01_TUSK_F", "O_MBT_02_cannon_F", //"O_MBT_02_arty_F", "I_MBT_03_cannon_F" ]; - + #ifdef useCUP blck_APC_CUP = [ "CUP_B_Mastiff_GMG_GB_D", "CUP_B_Mastiff_HMG_GB_D", @@ -110,35 +122,36 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR blck_Tanks_CUP = [ "CUP_B_M2A3Bradley_USA_D", - "CUP_B_M113_desert_USA", - "CUP_B_M163_USA", + //"CUP_B_M113_desert_USA", + //"CUP_B_M163_USA", "CUP_B_M6LineBacker_USA_D", "CUP_B_M1A1_DES_US_Army", "CUP_B_M1A2_TUSK_MG_DES_US_Army", - "CUP_B_AAV_USMC", - "CUP_B_M270_DPICM_USA", + //"CUP_B_AAV_USMC", + //"CUP_B_M270_DPICM_USA", "CUP_B_ZSU23_CDF", - "CUP_B_BMP2_CDF", + //"CUP_B_BMP2_CDF", "CUP_B_T72_CDF", - "CUP_I_T34_NAPA", + //"CUP_I_T34_NAPA", "CUP_B_Challenger2_NATO", - "CUP_B_FV432_Bulldog_GB_D_RWS", - "CUP_B_FV432_Bulldog_GB_D", + //"CUP_B_FV432_Bulldog_GB_D_RWS", + //"CUP_B_FV432_Bulldog_GB_D", "CUP_B_FV510_GB_D_SLAT", - "CUP_B_MCV80_GB_D_SLAT", - "CUP_O_2S6_RU", + //"CUP_B_MCV80_GB_D_SLAT", + //"CUP_O_2S6_RU", "CUP_O_BMP3_RU", "CUP_O_T90_RU", - "CUP_O_T55_SLA", - "CUP_O_BMP1P_TKA", - "CUP_B_M270_DPICM_USA", - "CUP_B_M2Bradley_USA_W", - "CUP_B_FV510_GB_D", - "CUP_B_MCV80_GB_D", - "CUP_B_M7Bradley_USA_D", - "CUP_O_2S6_RU", - "CUP_O_BMP1_TKA" - ]; + "CUP_O_T55_SLA" //, + //"CUP_O_BMP1P_TKA", + //"CUP_B_M270_DPICM_USA", + //"CUP_B_M2Bradley_USA_W", + //"CUP_B_FV510_GB_D", + //"CUP_B_MCV80_GB_D", + //"CUP_B_M7Bradley_USA_D", + //"CUP_O_2S6_RU", + //"CUP_O_BMP1_TKA"" + ]; + #endif blck_AIPatrolVehicles = ["B_LSV_01_armed_F","I_C_Offroad_02_LMG_F","B_T_LSV_01_armed_black_F","B_T_LSV_01_armed_olive_F","B_T_LSV_01_armed_sand_F"]; // Type of vehicle spawned to defend AI bases blck_AIPatrolVehiclesBlue = blck_AIPatrolVehicles; @@ -523,6 +536,87 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR blck_NVG = ["NVG"]; blck_buildingMaterials = []; + blck_UMS_uniforms = + [ + "U_I_Wetsuit", + "U_O_Wetsuit", + "U_B_Wetsuit" + ]; + + blck_UMS_headgear = + [ + "G_Diving", + "G_B_Diving", + "G_O_Diving", + "G_I_Diving" + ]; + + blck_UMS_vests = + [ + "V_RebreatherB", + "V_RebreatherIA", + "V_RebreatherIR" + ]; + + blck_UMS_weapons = + [ + "arifle_SDAR_F" + ]; + + if ((tolower blck_modType) isEqualTo "exile") then + { + blck_UMS_submarines = + [ + + "Exile_Boat_SDV_CSAT", + "Exile_Boat_SDV_Digital", + "Exile_Boat_SDV_Grey" + ]; + + blck_UMS_crates = ["Exile_Container_SupplyBox"]; + }; + if ((tolower blck_modType) isEqualTo "epoch") then + { + blck_UMS_submarines = ["B_SDV_01_EPOCH"]; + blck_UMS_crates = blck_crateTypes; + //blck_UMS_crates = ["container_epoch"]; + }; + if ((toLower blck_modType) isEqualTo "default") then + { + blck_UMS_submarines = + [ + + "Exile_Boat_SDV_CSAT", + "Exile_Boat_SDV_Digital", + "Exile_Boat_SDV_Grey" + ]; + + blck_UMS_crates = blck_crateTypes; + + }; + + blck_UMS_unarmedSurfaceVessels = + [ + "B_Boat_Transport_01_F", + "I_Boat_Transport_01_F" + ]; + blck_UMS_armedSurfaceVessels = + [ + "B_Boat_Armed_01_minigun_F", + "I_Boat_Armed_01_minigun_F" + ]; + blck_UMS_surfaceVessels = blck_UMS_unarmedSurfaceVessels + blck_UMS_armedSurfaceVessels; + blck_UMS_shipWrecks = + [ + "Land_Boat_06_wreck_F", + "Land_Boat_05_wreck_F", + "Land_Boat_04_wreck_F", + "Land_Boat_02_abandoned_F", + "Land_Boat_01_abandoned_red_F", + "Land_Boat_01_abandoned_blue_F" + ]; + + /*************************************************************************************** DEFAULT CONTENTS OF LOOT CRATES FOR EACH MISSION Note however that these configurations can be used in any way you like or replaced with mission-specific customized loot arrays @@ -869,8 +963,5 @@ blck_contructionLoot = blck_BoxLoot_Orange; blck_highPoweredLoot = blck_BoxLoot_Orange; blck_supportLoot = blck_BoxLoot_Orange; - -blck_crateTypes = ["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F","Box_NATO_Wps_F","I_CargoNet_01_ammo_F","O_CargoNet_01_ammo_F","B_CargoNet_01_ammo_F"]; // Default crate type. - -diag_log "[blckeagls] Default Configurations Loaded"; +["[blckeagls] Default Configurations Loaded"] call blck_fnc_log; diff --git a/@GMS/addons/custom_server/Configs/blck_configs_default_mil.sqf b/@GMS/addons/custom_server/Configs/blck_configs_default_mil.sqf index 3b78722..7d72d4d 100644 --- a/@GMS/addons/custom_server/Configs/blck_configs_default_mil.sqf +++ b/@GMS/addons/custom_server/Configs/blck_configs_default_mil.sqf @@ -12,7 +12,7 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\init\build.sqf"; -diag_log format["[blckeagls] loading default configurations for blckeagls build %1",blck_buildNumber]; +//diag_log format["[blckeagls] loading default configurations for blckeagls build %1",blck_buildNumber]; //////////// // default settings //////////// @@ -45,6 +45,9 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR blck_crateMoneyRed = [175, 300]; blck_crateMoneyGreen = [300, 500]; blck_crateMoneyOrange = [500, 750]; + + + blck_crateTypes = ["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F","Box_NATO_Wps_F","I_CargoNet_01_ammo_F","O_CargoNet_01_ammo_F","B_CargoNet_01_ammo_F"]; // Default crate type. blck_allowSalesAtBlackMktTraders = true; // Allow vehicles to be sold at Halvjes black market traders. @@ -506,7 +509,87 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR blck_vests_red = blck_vests; blck_vests_green = blck_vests; blck_vests_orange = blck_vests; - + + blck_UMS_uniforms = + [ + "U_I_Wetsuit", + "U_O_Wetsuit", + "U_B_Wetsuit" + ]; + + blck_UMS_headgear = + [ + "G_Diving", + "G_B_Diving", + "G_O_Diving", + "G_I_Diving" + ]; + + blck_UMS_vests = + [ + "V_RebreatherB", + "V_RebreatherIA", + "V_RebreatherIR" + ]; + + blck_UMS_weapons = + [ + "arifle_SDAR_F" + ]; + + if ((tolower blck_modType) isEqualTo "exile") then + { + blck_UMS_submarines = + [ + + "Exile_Boat_SDV_CSAT", + "Exile_Boat_SDV_Digital", + "Exile_Boat_SDV_Grey" + ]; + + blck_UMS_crates = ["Exile_Container_SupplyBox"]; + }; + if ((tolower blck_modType) isEqualTo "epoch") then + { + blck_UMS_submarines = ["B_SDV_01_EPOCH"]; + blck_UMS_crates = blck_crateTypes; + //blck_UMS_crates = ["container_epoch"]; + }; + if ((toLower blck_modType) isEqualTo "default") then + { + blck_UMS_submarines = + [ + + "Exile_Boat_SDV_CSAT", + "Exile_Boat_SDV_Digital", + "Exile_Boat_SDV_Grey" + ]; + + blck_UMS_crates = blck_crateTypes; + + }; + + blck_UMS_unarmedSurfaceVessels = + [ + "B_Boat_Transport_01_F", + "I_Boat_Transport_01_F" + ]; + blck_UMS_armedSurfaceVessels = + [ + "B_Boat_Armed_01_minigun_F", + "I_Boat_Armed_01_minigun_F" + ]; + blck_UMS_surfaceVessels = blck_UMS_unarmedSurfaceVessels + blck_UMS_armedSurfaceVessels; + blck_UMS_shipWrecks = + [ + "Land_Boat_06_wreck_F", + "Land_Boat_05_wreck_F", + "Land_Boat_04_wreck_F", + "Land_Boat_02_abandoned_F", + "Land_Boat_01_abandoned_red_F", + "Land_Boat_01_abandoned_blue_F" + ]; + //CraftingFood blck_Meats=[ ]; @@ -869,8 +952,5 @@ blck_contructionLoot = blck_BoxLoot_Orange; blck_highPoweredLoot = blck_BoxLoot_Orange; blck_supportLoot = blck_BoxLoot_Orange; - -blck_crateTypes = ["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F","Box_NATO_Wps_F","I_CargoNet_01_ammo_F","O_CargoNet_01_ammo_F","B_CargoNet_01_ammo_F"]; // Default crate type. - -diag_log "[blckeagls] Default Configurations Loaded"; +["Default Configurations Loaded"] call blck_fnc_log; diff --git a/@GMS/addons/custom_server/Configs/blck_configs_epoch.sqf b/@GMS/addons/custom_server/Configs/blck_configs_epoch.sqf index fb54a89..a2e9dcf 100644 --- a/@GMS/addons/custom_server/Configs/blck_configs_epoch.sqf +++ b/@GMS/addons/custom_server/Configs/blck_configs_epoch.sqf @@ -12,7 +12,7 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\init\build.sqf"; -diag_log format["[blckeagls] loading configurations for Epoch for blckeagls build %1",blck_buildNumber]; +[format["Loading configurations for Epoch for blckeagls build %1",blck_buildNumber]] call blck_fnc_log; //////////// // Epoch-specific settings //////////// @@ -45,6 +45,8 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR blck_crateMoneyRed = [175, 300]; blck_crateMoneyGreen = [300, 500]; blck_crateMoneyOrange = [500, 750]; + + blck_crateTypes = ["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F","Box_NATO_Wps_F","I_CargoNet_01_ammo_F","O_CargoNet_01_ammo_F","B_CargoNet_01_ammo_F"]; // Default crate type. blck_allowSalesAtBlackMktTraders = true; // Allow vehicles to be sold at Halvjes black market traders. @@ -515,7 +517,87 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR blck_vests_red = blck_vests; blck_vests_green = blck_vests; blck_vests_orange = blck_vests; - + + blck_UMS_uniforms = + [ + "U_I_Wetsuit", + "U_O_Wetsuit", + "U_B_Wetsuit" + ]; + + blck_UMS_headgear = + [ + "G_Diving", + "G_B_Diving", + "G_O_Diving", + "G_I_Diving" + ]; + + blck_UMS_vests = + [ + "V_RebreatherB", + "V_RebreatherIA", + "V_RebreatherIR" + ]; + + blck_UMS_weapons = + [ + "arifle_SDAR_F" + ]; + + if ((tolower blck_modType) isEqualTo "exile") then + { + blck_UMS_submarines = + [ + + "Exile_Boat_SDV_CSAT", + "Exile_Boat_SDV_Digital", + "Exile_Boat_SDV_Grey" + ]; + + blck_UMS_crates = ["Exile_Container_SupplyBox"]; + }; + if ((tolower blck_modType) isEqualTo "epoch") then + { + blck_UMS_submarines = ["B_SDV_01_EPOCH"]; + blck_UMS_crates = blck_crateTypes; + //blck_UMS_crates = ["container_epoch"]; + }; + if ((toLower blck_modType) isEqualTo "default") then + { + blck_UMS_submarines = + [ + + "Exile_Boat_SDV_CSAT", + "Exile_Boat_SDV_Digital", + "Exile_Boat_SDV_Grey" + ]; + + blck_UMS_crates = blck_crateTypes; + + }; + + blck_UMS_unarmedSurfaceVessels = + [ + "B_Boat_Transport_01_F", + "I_Boat_Transport_01_F" + ]; + blck_UMS_armedSurfaceVessels = + [ + "B_Boat_Armed_01_minigun_F", + "I_Boat_Armed_01_minigun_F" + ]; + blck_UMS_surfaceVessels = blck_UMS_unarmedSurfaceVessels + blck_UMS_armedSurfaceVessels; + blck_UMS_shipWrecks = + [ + "Land_Boat_06_wreck_F", + "Land_Boat_05_wreck_F", + "Land_Boat_04_wreck_F", + "Land_Boat_02_abandoned_F", + "Land_Boat_01_abandoned_red_F", + "Land_Boat_01_abandoned_blue_F" + ]; + //CraftingFood blck_Meats=[ "SnakeCarcass_EPOCH","RabbitCarcass_EPOCH","ChickenCarcass_EPOCH","GoatCarcass_EPOCH","SheepCarcass_EPOCH","DogCarcass_EPOCH","ItemTrout","ItemSeaBass","ItemTuna" @@ -1095,8 +1177,5 @@ blck_contructionLoot = blck_BoxLoot_Orange; blck_highPoweredLoot = blck_BoxLoot_Orange; blck_supportLoot = blck_BoxLoot_Orange; - -blck_crateTypes = ["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F","Box_NATO_Wps_F","I_CargoNet_01_ammo_F","O_CargoNet_01_ammo_F","B_CargoNet_01_ammo_F"]; // Default crate type. - -diag_log "[blckeagls] Configurations for Epoch Loaded"; +["Configurations for Epoch Loaded"] call blck_fnc_log; diff --git a/@GMS/addons/custom_server/Configs/blck_configs_epoch_mil.sqf b/@GMS/addons/custom_server/Configs/blck_configs_epoch_mil.sqf index cd4c22d..ab7da7a 100644 --- a/@GMS/addons/custom_server/Configs/blck_configs_epoch_mil.sqf +++ b/@GMS/addons/custom_server/Configs/blck_configs_epoch_mil.sqf @@ -45,6 +45,7 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR blck_crateMoneyRed = [175, 300]; blck_crateMoneyGreen = [300, 500]; blck_crateMoneyOrange = [500, 750]; + blck_crateTypes = ["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F","Box_NATO_Wps_F","I_CargoNet_01_ammo_F","O_CargoNet_01_ammo_F","B_CargoNet_01_ammo_F"]; // Default crate type. blck_maximumItemPriceInAI_Loadouts = 100; @@ -152,10 +153,7 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR ]; blck_AIPatrolVehicles = ["B_G_Offroad_01_armed_EPOCH","B_LSV_01_armed_F"]; // Type of vehicle spawned to defend AI bases - blck_AIPatrolVehiclesBlue = blck_AIPatrolVehicles; - blck_AIPatrolVehiclesRed = blck_AIPatrolVehicles; - blck_AIPatrolVehiclesGreen = blck_AIPatrolVehicles; - blck_AIPatrolVehiclesOrange = blck_AIPatrolVehicles; + blck_AIPatrolVehicles = [ @@ -180,6 +178,12 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR "B_APC_Tracked_01_CRV_F", "B_APC_Tracked_01_rcws_F" ]; // Type of vehicle spawned to defend AI bases + + blck_AIPatrolVehiclesBlue = blck_AIPatrolVehicles; + blck_AIPatrolVehiclesRed = blck_AIPatrolVehicles; + blck_AIPatrolVehiclesGreen = blck_AIPatrolVehicles; + blck_AIPatrolVehiclesOrange = blck_AIPatrolVehicles; + // Blacklisted itesm blck_blacklistedOptics = ["optic_Nightstalker","optic_tws","optic_tws_mg"]; @@ -550,6 +554,86 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR blck_vests_red = blck_vests; blck_vests_green = blck_vests; blck_vests_orange = blck_vests; + + blck_UMS_uniforms = + [ + "U_I_Wetsuit", + "U_O_Wetsuit", + "U_B_Wetsuit" + ]; + + blck_UMS_headgear = + [ + "G_Diving", + "G_B_Diving", + "G_O_Diving", + "G_I_Diving" + ]; + + blck_UMS_vests = + [ + "V_RebreatherB", + "V_RebreatherIA", + "V_RebreatherIR" + ]; + + blck_UMS_weapons = + [ + "arifle_SDAR_F" + ]; + + if ((tolower blck_modType) isEqualTo "exile") then + { + blck_UMS_submarines = + [ + + "Exile_Boat_SDV_CSAT", + "Exile_Boat_SDV_Digital", + "Exile_Boat_SDV_Grey" + ]; + + blck_UMS_crates = ["Exile_Container_SupplyBox"]; + }; + if ((tolower blck_modType) isEqualTo "epoch") then + { + blck_UMS_submarines = ["B_SDV_01_EPOCH"]; + blck_UMS_crates = blck_crateTypes; + //blck_UMS_crates = ["container_epoch"]; + }; + if ((toLower blck_modType) isEqualTo "default") then + { + blck_UMS_submarines = + [ + + "Exile_Boat_SDV_CSAT", + "Exile_Boat_SDV_Digital", + "Exile_Boat_SDV_Grey" + ]; + + blck_UMS_crates = blck_crateTypes; + + }; + + blck_UMS_unarmedSurfaceVessels = + [ + "B_Boat_Transport_01_F", + "I_Boat_Transport_01_F" + ]; + blck_UMS_armedSurfaceVessels = + [ + "B_Boat_Armed_01_minigun_F", + "I_Boat_Armed_01_minigun_F" + ]; + blck_UMS_surfaceVessels = blck_UMS_unarmedSurfaceVessels + blck_UMS_armedSurfaceVessels; + blck_UMS_shipWrecks = + [ + "Land_Boat_06_wreck_F", + "Land_Boat_05_wreck_F", + "Land_Boat_04_wreck_F", + "Land_Boat_02_abandoned_F", + "Land_Boat_01_abandoned_red_F", + "Land_Boat_01_abandoned_blue_F" + ]; //CraftingFood blck_Meats=[ @@ -1010,7 +1094,5 @@ for examples of how you can do this see \Major\Compositions.sqf blck_highPoweredLoot = blck_BoxLoot_Orange; blck_supportLoot = blck_BoxLoot_Orange; - blck_crateTypes = ["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F","Box_NATO_Wps_F","I_CargoNet_01_ammo_F","O_CargoNet_01_ammo_F","B_CargoNet_01_ammo_F"]; // Default crate type. - - diag_log "[blckeagls] Configurations for Epoch Loaded"; + ["Configurations for Epoch Loaded"] call blck_fnc_log; diff --git a/@GMS/addons/custom_server/Configs/blck_configs_exile.sqf b/@GMS/addons/custom_server/Configs/blck_configs_exile.sqf index 099a0b9..1e5e885 100644 --- a/@GMS/addons/custom_server/Configs/blck_configs_exile.sqf +++ b/@GMS/addons/custom_server/Configs/blck_configs_exile.sqf @@ -17,11 +17,11 @@ #ifdef blck_milServer if (true) exitWith { - diag_log "[blckeagls] running blck_configs_exile_mil for militarized servers"; + ["Running blck_configs_exile_mil for militarized servers"] call blck_fnc_log; execVM "\q\addons\custom_server\Configs\blck_configs_exile_mil.sqf"; }; #endif -diag_log "[blckeagls] Loading Exile-specific configs for Non-militarized servers: blck_configs_exile.sqf"; +["Loading Exile-specific configs for Non-militarized servers: blck_configs_exile.sqf"] call blck_fnc_log; //////////// // Exile-specific settings //////////// @@ -56,7 +56,9 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR blck_crateMoneyRed = [175, 300]; blck_crateMoneyGreen = [300, 500]; blck_crateMoneyOrange = [500, 750]; - + + blck_crateTypes = ["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F","Box_NATO_Wps_F","I_CargoNet_01_ammo_F","O_CargoNet_01_ammo_F","B_CargoNet_01_ammo_F"]; // Default crate type. + blck_maximumItemPriceInAI_Loadouts = 1000; blck_armed_vehicles_Exile = [ @@ -643,6 +645,86 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR blck_vests_red = blck_vests; blck_vests_green = blck_vests; blck_vests_orange = blck_vests; + + blck_UMS_uniforms = + [ + "U_I_Wetsuit", + "U_O_Wetsuit", + "U_B_Wetsuit" + ]; + + blck_UMS_headgear = + [ + "G_Diving", + "G_B_Diving", + "G_O_Diving", + "G_I_Diving" + ]; + + blck_UMS_vests = + [ + "V_RebreatherB", + "V_RebreatherIA", + "V_RebreatherIR" + ]; + + blck_UMS_weapons = + [ + "arifle_SDAR_F" + ]; + + if ((tolower blck_modType) isEqualTo "exile") then + { + blck_UMS_submarines = + [ + + "Exile_Boat_SDV_CSAT", + "Exile_Boat_SDV_Digital", + "Exile_Boat_SDV_Grey" + ]; + + blck_UMS_crates = ["Exile_Container_SupplyBox"]; + }; + if ((tolower blck_modType) isEqualTo "epoch") then + { + blck_UMS_submarines = ["B_SDV_01_EPOCH"]; + blck_UMS_crates = blck_crateTypes; + //blck_UMS_crates = ["container_epoch"]; + }; + if ((toLower blck_modType) isEqualTo "default") then + { + blck_UMS_submarines = + [ + + "Exile_Boat_SDV_CSAT", + "Exile_Boat_SDV_Digital", + "Exile_Boat_SDV_Grey" + ]; + + blck_UMS_crates = blck_crateTypes; + + }; + + blck_UMS_unarmedSurfaceVessels = + [ + "B_Boat_Transport_01_F", + "I_Boat_Transport_01_F" + ]; + blck_UMS_armedSurfaceVessels = + [ + "B_Boat_Armed_01_minigun_F", + "I_Boat_Armed_01_minigun_F" + ]; + blck_UMS_surfaceVessels = blck_UMS_unarmedSurfaceVessels + blck_UMS_armedSurfaceVessels; + blck_UMS_shipWrecks = + [ + "Land_Boat_06_wreck_F", + "Land_Boat_05_wreck_F", + "Land_Boat_04_wreck_F", + "Land_Boat_02_abandoned_F", + "Land_Boat_01_abandoned_red_F", + "Land_Boat_01_abandoned_blue_F" + ]; //CraftingFood blck_Meats=[ @@ -1190,6 +1272,4 @@ blck_highPoweredLoot = [ ] ]; - blck_crateTypes = ["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F","Box_NATO_Wps_F","I_CargoNet_01_ammo_F","O_CargoNet_01_ammo_F","B_CargoNet_01_ammo_F"]; // Default crate type. - - diag_log format["[blckeagls] Configurations for Exile Loaded"]; +["Configurations for Exile Loaded"] call blck_fnc_log; diff --git a/@GMS/addons/custom_server/Configs/blck_configs_exile_mil - Namalks v146.sqf b/@GMS/addons/custom_server/Configs/blck_configs_exile_mil - Namalks v146.sqf deleted file mode 100644 index f273281..0000000 --- a/@GMS/addons/custom_server/Configs/blck_configs_exile_mil - Namalks v146.sqf +++ /dev/null @@ -1,1170 +0,0 @@ -/* - 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/ -*/ - -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -//////////// -// Exile-specific settings -//////////// - -// list of locations that are protected against mission spawns - -switch (toLower(worldName)) do -{ - case "altis": { - blck_locationBlackList append [ - //Add location as [[xpos,ypos,0],minimumDistance], - // Note that there should not be a comma after the last item in this table - [[10800,10641,0],1000] // isthmus - missions that spawn here often are glitched. - ]; - }; - case "tanoa": { - blck_locationBlackList append [ ]; - }; -}; - -/********************************************************************************* - -AI WEAPONS, UNIFORMS, VESTS AND GEAR - -**********************************************************************************/ - - blck_blacklistSpawns = false; - blck_listConcreteMixerZones = false; - blck_AI_Side = EAST; - - blck_crateMoneyBlue = [100,250]; - blck_crateMoneyRed = [175, 300]; - blck_crateMoneyGreen = [300, 500]; - blck_crateMoneyOrange = [500, 750]; - - // When true, AI loadouts will be set from the class names in CfgPricing rather than the settings in the mod-specific configuration files - blck_useConfigsGeneratedLoadouts = true; - blck_maximumItemPriceInAI_Loadouts = 1000; - - blck_armed_vehicles_Exile = [ - "Exile_Car_BTR40_MG_Green", - "Exile_Car_HMMWV_M134_Green", - "Exile_Car_HMMWV_M2_Green", - "B_LSV_01_armed_F", - "Exile_Car_Offroad_Armed_Guerilla01" - ]; - - blck_lightlyArmed_ARMA3 = [ - "B_G_Offroad_01_armed_F", - "O_G_Offroad_01_armed_F", - "B_MRAP_01_gmg_F", - "B_MRAP_01_hmg_F", - "O_MRAP_02_gmg_F", - "O_MRAP_02_hmg_F", - "I_MRAP_03_hmg_F", - "I_MRAP_03_gmg_F", - "B_APC_Wheeled_01_cannon_F", - "I_APC_Wheeled_03_cannon_F" - ]; - - blck_tracked_APC_ARMA3 = [ - "B_APC_Tracked_01_rcws_F", - "B_APC_Tracked_01_CRV_F", - "B_APC_Tracked_01_AA_F", - "O_APC_Tracked_02_cannon_F", - "O_APC_Tracked_02_AA_F", - "O_APC_Wheeled_02_rcws_F", - "I_APC_tracked_03_cannon_F" - ]; - - blck_Tanks_ARMA3 = [ - //"B_MBT_01_arty_F", - //"B_MBT_01_mlrs_F", - "B_MBT_01_TUSK_F", - "O_MBT_02_cannon_F", - //"O_MBT_02_arty_F", - "I_MBT_03_cannon_F" - ]; - - _blck_APC_CUP = [ - "CUP_B_Mastiff_GMG_GB_D", - "CUP_B_Mastiff_HMG_GB_D", - "CUP_B_Ridgback_HMG_GB_D", - "CUP_B_Ridgback_GMG_GB_D", - "CUP_B_M1128_MGS_Desert", - "CUP_B_M1135_ATGMV_Desert_Slat", - "CUP_B_M1133_MEV_Desert_Slat", - "CUP_B_LAV25M240_desert_USMC", - "CUP_B_M1129_MC_MK19_Desert_Slat", - "CUP_B_LAV25_HQ_desert_USMC", - "CUP_B_BRDM2_ATGM_CDF", - "CUP_B_BTR60_CDF", - "CUP_B_M1130_CV_M2_Desert_Slat", - "CUP_B_M1126_ICV_MK19_Desert_Slat", - "CUP_O_BTR90_RU", - "CUP_O_GAZ_Vodnik_BPPU_RU", - "CUP_B_M1126_ICV_M2_Desert", - "CUP_B_M1126_ICV_MK19_Desert", - "CUP_B_M1130_CV_M2_Desert", - "CUP_B_M1126_ICV_M2_Desert_Slat", - "CUP_B_M1133_MEV_Desert", - "CUP_O_GAZ_Vodnik_AGS_RU", - "CUP_O_GAZ_Vodnik_PK_RU" - ]; - - _blck_Tanks_CUP = [ - "CUP_B_M2A3Bradley_USA_D", - //"CUP_B_M113_desert_USA", - //"CUP_B_M163_USA", - "CUP_B_M6LineBacker_USA_D", - "CUP_B_M1A1_DES_US_Army", - "CUP_B_M1A2_TUSK_MG_DES_US_Army", - //"CUP_B_AAV_USMC", - //"CUP_B_M270_DPICM_USA", - "CUP_B_ZSU23_CDF", - //"CUP_B_BMP2_CDF", - "CUP_B_T72_CDF", - //"CUP_I_T34_NAPA", - "CUP_B_Challenger2_NATO", - //"CUP_B_FV432_Bulldog_GB_D_RWS", - //"CUP_B_FV432_Bulldog_GB_D", - "CUP_B_FV510_GB_D_SLAT", - //"CUP_B_MCV80_GB_D_SLAT", - //"CUP_O_2S6_RU", - "CUP_O_BMP3_RU", - "CUP_O_T90_RU", - "CUP_O_T55_SLA" //, - //"CUP_O_BMP1P_TKA", - //"CUP_B_M270_DPICM_USA", - //"CUP_B_M2Bradley_USA_W", - //"CUP_B_FV510_GB_D", - //"CUP_B_MCV80_GB_D", - //"CUP_B_M7Bradley_USA_D", - //"CUP_O_2S6_RU", - //"CUP_O_BMP1_TKA"" - ]; - - blck_AIPatrolVehicles = - [ - //"Exile_Car_Offroad_Armed_Guerilla01", - //"Exile_Car_Offroad_Armed_Guerilla02", - //"Exile_Car_BTR40_MG_Green", - //"Exile_Car_BTR40_MG_Camo", - //"Exile_Car_HMMWV_M134_Green", - //"Exile_Car_HMMWV_M134_Desert", - //"Exile_Car_HMMWV_M134_Desert", - "Exile_Car_HMMWV_M2_Desert", - "B_LSV_01_armed_F", - //"_MRAP_02_gmg_ghex_F", - //"O_MRAP_02_hmg_ghex_F", - //"O_MRAP_03_gmg_ghex_F", - //"O_MRAP_03_hmg_ghex_F", - "B_MBT_01_cannon_F", - "B_MBT_01_cannon_F", // Duplicate to increase chance that these will spawn relative to others - //"B_MBT_01_mlrs_base_F", - //"B_MBT_01_mlrs_F", - "B_MBT_01_TUSK_F", - "B_MBT_01_TUSK_F",// Duplicate to increase chance that these will spawn relative to others - "B_APC_Tracked_01_AA_F", - "B_APC_Tracked_01_AA_F",// Duplicate to increase chance that these will spawn relative to others - "B_APC_Tracked_01_AA_F",// Duplicate to increase chance that these will spawn relative to others - "B_APC_Tracked_01_CRV_F", - "B_APC_Tracked_01_rcws_F" - ]; // Type of vehicle spawned to defend AI bases - - blck_AIPatrolVehiclesBlue = [ - "Exile_Car_Offroad_Armed_Guerilla01", - "Exile_Car_Offroad_Armed_Guerilla02", - "Exile_Car_BTR40_MG_Green", - "Exile_Car_BTR40_MG_Camo", - "Exile_Car_HMMWV_M134_Green", - "Exile_Car_HMMWV_M134_Desert", - "Exile_Car_HMMWV_M134_Desert", - "Exile_Car_HMMWV_M2_Desert", - "B_LSV_01_armed_F" - ]; - - blck_AIPatrolVehiclesRed = blck_lightlyArmed_ARMA3 + _blck_APC_CUP; - blck_AIPatrolVehiclesGreen = blck_Tanks_ARMA3 + _blck_Tanks_CUP; - blck_AIPatrolVehiclesOrange = blck_Tanks_ARMA3 + _blck_Tanks_CUP; - - if (toLower(worldName) isEqualTo "namalsk") then - { - = [ - "B_G_Offroad_01_armed_F", - "O_G_Offroad_01_armed_F", - //"B_MRAP_01_gmg_F", - "B_MRAP_01_hmg_F", - //"O_MRAP_02_gmg_F", - "O_MRAP_02_hmg_F", - "I_MRAP_03_hmg_F" - //"I_MRAP_03_gmg_F", - //"B_APC_Wheeled_01_cannon_F", - //"I_APC_Wheeled_03_cannon_F" - ]; - diag_log "blck)configs_exile_mil.sqf:: - > Using special settings for namalsk"; - blck_AIPatrolVehiclesRed = blck_lightlyArmed_ARMA3 + blck_AIPatrolVehiclesBlue; - blck_AIPatrolVehiclesGreen = blck_AIPatrolVehiclesRed; - blck_AIPatrolVehiclesOrange = blck_AIPatrolVehiclesRed; - }; - - // Blacklisted itesm - blck_blacklistedOptics = ["optic_Nightstalker","optic_tws","optic_tws_mg"]; - - // AI Weapons and Attachments - blck_bipods = ["bipod_01_F_blk","bipod_01_F_mtp","bipod_01_F_snd","bipod_02_F_blk","bipod_02_F_hex","bipod_02_F_tan","bipod_03_F_blk","bipod_03_F_oli"]; - - blck_Optics_Holo = ["optic_Hamr","optic_MRD","optic_Holosight","optic_Holosight_smg","optic_Aco","optic_ACO_grn","optic_ACO_grn_smg","optic_Aco_smg","optic_Yorris"]; - blck_Optics_Reticule = ["optic_Arco","optic_MRCO"]; - blck_Optics_Scopes = [ - "optic_AMS","optic_AMS_khk","optic_AMS_snd", - "optic_DMS", - "optic_KHS_blk","optic_KHS_hex","optic_KHS_old","optic_KHS_tan", - "optic_LRPS", - "optic_Nightstalker", - "optic_NVS", - "optic_SOS", - "optic_tws", - "optic_tws_mg" - ]; - - #ifdef useAPEX - blck_Optics_Apex = [ - //Apex - "optic_Arco_blk_F", "optic_Arco_ghex_F", - "optic_DMS_ghex_F", - "optic_Hamr_khk_F", - "optic_ERCO_blk_F","optic_ERCO_khk_F","optic_ERCO_snd_F", - "optic_SOS_khk_F", - "optic_LRPS_tna_F","optic_LRPS_ghex_F", - "optic_Holosight_blk_F","optic_Holosight_khk_F","optic_Holosight_smg_blk_F" - ]; - blck_Optics = blck_Optics_Holo + blck_Optics_Reticule + blck_Optics_Scopes; - blck_Optics = blck_Optics + blck_Optics_Apex; - #endif - - blck_bipods = [ - "bipod_01_F_blk","bipod_01_F_mtp","bipod_01_F_snd","bipod_02_F_blk","bipod_02_F_hex","bipod_02_F_tan","bipod_03_F_blk","bipod_03_F_oli", - //Apex - "bipod_01_F_khk" - ]; - - blck_silencers = [ - "muzzle_snds_338_black","muzzle_snds_338_green","muzzle_snds_338_sand","muzzle_snds_93mmg","muzzle_snds_93mmg_tan","muzzle_snds_acp","muzzle_snds_B", - "muzzle_snds_H","muzzle_snds_H_MG","muzzle_snds_H_SW","muzzle_snds_L","muzzle_snds_M", - //Apex - "muzzle_snds_H_khk_F","muzzle_snds_H_snd_F","muzzle_snds_58_blk_F","muzzle_snds_m_khk_F","muzzle_snds_m_snd_F","muzzle_snds_B_khk_F","muzzle_snds_B_snd_F", - "muzzle_snds_58_wdm_F","muzzle_snds_65_TI_blk_F","muzzle_snds_65_TI_hex_F","muzzle_snds_65_TI_ghex_F","muzzle_snds_H_MG_blk_F","muzzle_snds_H_MG_khk_F" - ]; - - blck_RifleSniper = [ - "srifle_EBR_F","srifle_GM6_F","srifle_LRR_F","srifle_DMR_01_F" - ]; - - blck_RifleAsault_556 = [ - "arifle_SDAR_F","arifle_TRG21_F","arifle_TRG20_F","arifle_TRG21_GL_F","arifle_Mk20_F","arifle_Mk20C_F","arifle_Mk20_GL_F","arifle_Mk20_plain_F","arifle_Mk20C_plain_F","arifle_Mk20_GL_plain_F","arifle_SDAR_F" - ]; - - blck_RifleAsault_650 = [ - "arifle_Katiba_F","arifle_Katiba_C_F","arifle_Katiba_GL_F","arifle_MXC_F","arifle_MX_F","arifle_MX_GL_F","arifle_MXM_F" - ]; - - blck_RifleAsault = [ - "arifle_Katiba_F","arifle_Katiba_C_F","arifle_Katiba_GL_F","arifle_MXC_F","arifle_MX_F","arifle_MX_GL_F","arifle_MXM_F","arifle_SDAR_F", - "arifle_TRG21_F","arifle_TRG20_F","arifle_TRG21_GL_F","arifle_Mk20_F","arifle_Mk20C_F","arifle_Mk20_GL_F","arifle_Mk20_plain_F","arifle_Mk20C_plain_F","arifle_Mk20_GL_plain_F" - ]; - - blck_RifleLMG = [ - "LMG_Mk200_F","LMG_Zafir_F" - ]; - - blck_RifleOther = [ - "SMG_01_F","SMG_02_F" - ]; - - blck_Pistols = [ - "hgun_PDW2000_F","hgun_ACPC2_F","hgun_Rook40_F","hgun_P07_F","hgun_Pistol_heavy_01_F","hgun_Pistol_heavy_02_F","hgun_Pistol_Signal_F" - ]; - blck_Pistols_blue = blck_Pistols; - blck_Pistols_red = blck_Pistols; - blck_Pistols_green = blck_Pistols; - blck_Pistols_orange = blck_Pistols; - - blck_DLC_MMG = [ - "MMG_01_hex_F","MMG_02_sand_F","MMG_01_tan_F","MMG_02_black_F","MMG_02_camo_F" - ]; - - blck_DLC_Sniper = [ - "srifle_DMR_02_camo_F","srifle_DMR_02_F","srifle_DMR_02_sniper_F","srifle_DMR_03_F","srifle_DMR_03_tan_F","srifle_DMR_04_F","srifle_DMR_04_Tan_F","srifle_DMR_05_blk_F","srifle_DMR_05_hex_F","srifle_DMR_05_tan_F","srifle_DMR_06_camo_F","srifle_DMR_06_olive_F" - ]; - - //This defines the random weapon to spawn on the AI - //https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Weapons - blck_WeaponList_Orange = blck_RifleSniper + blck_RifleAsault_650 + blck_RifleLMG + blck_DLC_Sniper + blck_DLC_MMG; - blck_WeaponList_Green = blck_RifleSniper + blck_RifleAsault_650 +blck_RifleLMG + blck_DLC_MMG; - blck_WeaponList_Blue = blck_RifleOther + blck_RifleAsault_556 + blck_RifleAsault_650; - blck_WeaponList_Red = blck_RifleAsault_556 + blck_RifleSniper + blck_RifleAsault_650 + blck_RifleLMG; - - #ifdef useAPEX - blck_apexWeapons = ["arifle_AK12_F","arifle_AK12_GL_F","arifle_AKM_F","arifle_AKM_FL_F","arifle_AKS_F","arifle_ARX_blk_F","arifle_ARX_ghex_F","arifle_ARX_hex_F","arifle_CTAR_blk_F","arifle_CTAR_hex_F", - "arifle_CTAR_ghex_F","arifle_CTAR_GL_blk_F","arifle_CTARS_blk_F","arifle_CTARS_hex_F","arifle_CTARS_ghex_F","arifle_SPAR_01_blk_F","arifle_SPAR_01_khk_F","arifle_SPAR_01_snd_F", - "arifle_SPAR_01_GL_blk_F","arifle_SPAR_01_GL_khk_F","arifle_SPAR_01_GL_snd_F","arifle_SPAR_02_blk_F","arifle_SPAR_02_khk_F","arifle_SPAR_02_snd_F","arifle_SPAR_03_blk_F", - "arifle_SPAR_03_khk_F","arifle_SPAR_03_snd_F","arifle_MX_khk_F","arifle_MX_GL_khk_F","arifle_MXC_khk_F","arifle_MXM_khk_F"]; - - blck_WeaponList_Orange = blck_WeaponList_Orange + blck_apexWeapons; - blck_WeaponList_Green = blck_WeaponList_Green + blck_apexWeapons; - #endif - - - - blck_backpacks = ["B_Carryall_ocamo","B_Carryall_oucamo","B_Carryall_mcamo","B_Carryall_oli","B_Carryall_khk","B_Carryall_cbr" ]; - - #ifdef useAPEX - blck_ApexBackpacks = [ - "B_Bergen_mcamo_F","B_Bergen_dgtl_F","B_Bergen_hex_F","B_Bergen_tna_F","B_AssaultPack_tna_F","B_Carryall_ghex_F", - "B_FieldPack_ghex_F","B_ViperHarness_blk_F","B_ViperHarness_ghex_F","B_ViperHarness_hex_F","B_ViperHarness_khk_F", - "B_ViperHarness_oli_F","B_ViperLightHarness_blk_F","B_ViperLightHarness_ghex_F","B_ViperLightHarness_hex_F","B_ViperLightHarness_khk_F","B_ViperLightHarness_oli_F" - ]; - blck_backpacks = blck_backpacks + blck_ApexBackpacks; - #endif - blck_backpacks_blue = blck_backpacks; - blck_backpacks_red = blck_backpacks; - blck_backpacks_green = blck_backpacks; - blck_backpacks_orange = blck_backpacks; - - blck_BanditHeadgear = ["H_Shemag_khk","H_Shemag_olive","H_Shemag_tan","H_ShemagOpen_khk"]; - //This defines the skin list, some skins are disabled by default to permit players to have high visibility uniforms distinct from those of the AI. - blck_headgear = [ - "H_Cap_blk", - "H_Cap_blk_Raven", - "H_Cap_blu", - "H_Cap_brn_SPECOPS", - "H_Cap_grn", - "H_Cap_headphones", - "H_Cap_khaki_specops_UK", - "H_Cap_oli", - "H_Cap_press", - "H_Cap_red", - "H_Cap_tan", - "H_Cap_tan_specops_US", - "H_Watchcap_blk", - "H_Watchcap_camo", - "H_Watchcap_khk", - "H_Watchcap_sgg", - "H_MilCap_blue", - "H_MilCap_dgtl", - "H_MilCap_mcamo", - "H_MilCap_ocamo", - "H_MilCap_oucamo", - "H_MilCap_rucamo", - "H_Bandanna_camo", - "H_Bandanna_cbr", - "H_Bandanna_gry", - "H_Bandanna_khk", - "H_Bandanna_khk_hs", - "H_Bandanna_mcamo", - "H_Bandanna_sgg", - "H_Bandanna_surfer", - "H_Booniehat_dgtl", - "H_Booniehat_dirty", - "H_Booniehat_grn", - "H_Booniehat_indp", - "H_Booniehat_khk", - "H_Booniehat_khk_hs", - "H_Booniehat_mcamo", - "H_Booniehat_tan", - "H_Hat_blue", - "H_Hat_brown", - "H_Hat_camo", - "H_Hat_checker", - "H_Hat_grey", - "H_Hat_tan", - "H_StrawHat", - "H_StrawHat_dark", - "H_Beret_02", - "H_Beret_blk", - "H_Beret_blk_POLICE", - "H_Beret_brn_SF", - "H_Beret_Colonel", - "H_Beret_grn", - "H_Beret_grn_SF", - "H_Beret_ocamo", - "H_Beret_red", - "H_Shemag_khk", - "H_Shemag_olive", - "H_Shemag_olive_hs", - "H_Shemag_tan", - "H_ShemagOpen_khk", - "H_ShemagOpen_tan", - "H_TurbanO_blk", - "H_CrewHelmetHeli_B", - "H_CrewHelmetHeli_I", - "H_CrewHelmetHeli_O", - "H_HelmetCrew_I", - "H_HelmetCrew_B", - "H_HelmetCrew_O", - "H_PilotHelmetHeli_B", - "H_PilotHelmetHeli_I", - "H_PilotHelmetHeli_O", - //Apex - - "H_MilCap_tna_F", - "H_MilCap_ghex_F", - "H_Booniehat_tna_F", - "H_Beret_gen_F", - "H_MilCap_gen_F", - "H_Cap_oli_Syndikat_F", - "H_Cap_tan_Syndikat_F", - "H_Cap_blk_Syndikat_F", - "H_Cap_grn_Syndikat_F" - ]; - blck_helmets = [ - "H_HelmetB", - "H_HelmetB_black", - "H_HelmetB_camo", - "H_HelmetB_desert", - "H_HelmetB_grass", - "H_HelmetB_light", - "H_HelmetB_light_black", - "H_HelmetB_light_desert", - "H_HelmetB_light_grass", - "H_HelmetB_light_sand", - "H_HelmetB_light_snakeskin", - "H_HelmetB_paint", - "H_HelmetB_plain_blk", - "H_HelmetB_sand", - "H_HelmetB_snakeskin", - "H_HelmetCrew_B", - "H_HelmetCrew_I", - "H_HelmetCrew_O", - "H_HelmetIA", - "H_HelmetIA_camo", - "H_HelmetIA_net", - "H_HelmetLeaderO_ocamo", - "H_HelmetLeaderO_oucamo", - "H_HelmetO_ocamo", - "H_HelmetO_oucamo", - "H_HelmetSpecB", - "H_HelmetSpecB_blk", - "H_HelmetSpecB_paint1", - "H_HelmetSpecB_paint2", - "H_HelmetSpecO_blk", - "H_HelmetSpecO_ocamo", - "H_CrewHelmetHeli_B", - "H_CrewHelmetHeli_I", - "H_CrewHelmetHeli_O", - "H_HelmetCrew_I", - "H_HelmetCrew_B", - "H_HelmetCrew_O", - "H_PilotHelmetHeli_B", - "H_PilotHelmetHeli_I", - "H_PilotHelmetHeli_O", - "H_Helmet_Skate", - "H_HelmetB_TI_tna_F", - // Apex - //"H_HelmetO_ViperSP_hex_F", - //"H_HelmetO_ViperSP_ghex_F", - "H_HelmetB_tna_F", - "H_HelmetB_Enh_tna_F", - "H_HelmetB_Light_tna_F", - "H_HelmetSpecO_ghex_F", - "H_HelmetLeaderO_ghex_F", - "H_HelmetO_ghex_F", - "H_HelmetCrew_O_ghex_F" - ]; - blck_headgearList = blck_headgear + blck_helmets; - blck_headgear_blue = blck_headgearList; - blck_headgear_red = blck_headgearList; - blck_headgear_green = blck_headgearList; - blck_headgear_orange = blck_headgearList; - - //This defines the skin list, some skins are disabled by default to permit players to have high visibility uniforms distinct from those of the AI. - blck_SkinList = [ - //https://community.bistudio.com/wiki/Arma_3_CfgWeapons_Equipment - // I have commented out some high visibility uniforms that can be reserved for players or special missions. - // for example, you could have a uniform list specified in a mission template. - "U_AntigonaBody", - "U_AttisBody", - "U_B_CombatUniform_mcam","U_B_CombatUniform_mcam_tshirt","U_B_CombatUniform_mcam_vest","U_B_CombatUniform_mcam_worn","U_B_CombatUniform_sgg","U_B_CombatUniform_sgg_tshirt","U_B_CombatUniform_sgg_vest","U_B_CombatUniform_wdl","U_B_CombatUniform_wdl_tshirt","U_B_CombatUniform_wdl_vest", - "U_B_CTRG_1","U_B_CTRG_2","U_B_CTRG_3", - "U_B_GhillieSuit", - "U_B_HeliPilotCoveralls","U_B_PilotCoveralls", - "U_B_SpecopsUniform_sgg", - "U_B_survival_uniform", - "U_B_Wetsuit", - //"U_BasicBody", - "U_BG_Guerilla1_1","U_BG_Guerilla2_1","U_BG_Guerilla2_2","U_BG_Guerilla2_3","U_BG_Guerilla3_1","U_BG_Guerilla3_2", - "U_BG_leader", - "U_C_Commoner_shorts","U_C_Commoner1_1","U_C_Commoner1_2","U_C_Commoner1_3","U_C_Commoner2_1","U_C_Commoner2_2","U_C_Commoner2_3", - "U_C_Farmer","U_C_Fisherman","U_C_FishermanOveralls","U_C_HunterBody_brn","U_C_HunterBody_grn", - //"U_C_Journalist", - "U_C_Novak", - //"U_C_Poloshirt_blue","U_C_Poloshirt_burgundy","U_C_Poloshirt_redwhite","U_C_Poloshirt_salmon","U_C_Poloshirt_stripped","U_C_Poloshirt_tricolour", - "U_C_Poor_1","U_C_Poor_2","U_C_Poor_shorts_1","U_C_Poor_shorts_2","U_C_PriestBody","U_C_Scavenger_1","U_C_Scavenger_2", - //"U_C_Scientist","U_C_ShirtSurfer_shorts","U_C_TeeSurfer_shorts_1","U_C_TeeSurfer_shorts_2", - "U_C_WorkerCoveralls","U_C_WorkerOveralls","U_Competitor", - "U_I_CombatUniform","U_I_CombatUniform_shortsleeve","U_I_CombatUniform_tshirt","U_I_G_resistanceLeader_F", - "U_I_G_Story_Protagonist_F", - "U_I_GhillieSuit", - "U_I_HeliPilotCoveralls", - "U_I_OfficerUniform", - "U_I_pilotCoveralls", - "U_I_Wetsuit", - "U_IG_Guerilla1_1","U_IG_Guerilla2_1","U_IG_Guerilla2_2","U_IG_Guerilla2_3","U_IG_Guerilla3_1","U_IG_Guerilla3_2", - "U_IG_leader", - "U_IG_Menelaos", - //"U_KerryBody", - //"U_MillerBody", - //"U_NikosAgedBody", - //"U_NikosBody", - "U_O_CombatUniform_ocamo","U_O_CombatUniform_oucamo", - "U_O_GhillieSuit", - "U_O_OfficerUniform_ocamo", - "U_O_PilotCoveralls", - "U_O_SpecopsUniform_blk", - "U_O_SpecopsUniform_ocamo", - "U_O_Wetsuit", - "U_OG_Guerilla1_1","U_OG_Guerilla2_1","U_OG_Guerilla2_2","U_OG_Guerilla2_3","U_OG_Guerilla3_1","U_OG_Guerilla3_2","U_OG_leader", - //"U_OI_Scientist", - //"U_OrestesBody", - "U_Rangemaster", - // DLC - "U_B_FullGhillie_ard","U_I_FullGhillie_ard","U_O_FullGhillie_ard","U_B_FullGhillie_sard","U_O_FullGhillie_sard","U_I_FullGhillie_sard","U_B_FullGhillie_lsh","U_O_FullGhillie_lsh","U_I_FullGhillie_lsh", - //Apex - "U_B_T_Soldier_F", - "U_B_T_Soldier_AR_F", - "U_B_T_Soldier_SL_F", - //"U_B_T_Sniper_F", - //"U_B_T_FullGhillie_tna_F", - "U_B_CTRG_Soldier_F", - "U_B_CTRG_Soldier_2_F", - "U_B_CTRG_Soldier_3_F", - "U_B_GEN_Soldier_F", - "U_B_GEN_Commander_F", - "U_O_T_Soldier_F", - "U_O_T_Officer_F", - //"U_O_T_Sniper_F", - //"U_O_T_FullGhillie_tna_F", - "U_O_V_Soldier_Viper_F", - "U_O_V_Soldier_Viper_hex_F", - "U_I_C_Soldier_Para_1_F", - "U_I_C_Soldier_Para_2_F", - "U_I_C_Soldier_Para_3_F", - "U_I_C_Soldier_Para_4_F", - "U_I_C_Soldier_Para_5_F", - "U_I_C_Soldier_Bandit_1_F", - "U_I_C_Soldier_Bandit_2_F", - "U_I_C_Soldier_Bandit_3_F", - "U_I_C_Soldier_Bandit_4_F", - "U_I_C_Soldier_Bandit_5_F", - "U_I_C_Soldier_Camo_F", - "U_C_man_sport_1_F", - "U_C_man_sport_2_F", - "U_C_man_sport_3_F", - "U_C_Man_casual_1_F", - "U_C_Man_casual_2_F", - "U_C_Man_casual_3_F", - "U_C_Man_casual_4_F", - "U_C_Man_casual_5_F", - "U_C_Man_casual_6_F", - "U_B_CTRG_Soldier_urb_1_F", - "U_B_CTRG_Soldier_urb_2_F", - "U_B_CTRG_Soldier_urb_3_F" - ]; - blck_SkinList_blue = blck_SkinList; - blck_SkinList_red = blck_SkinList; - blck_SkinList_green = blck_SkinList; - blck_SkinList_orange = blck_SkinList; - - blck_vests = [ - "V_Press_F", - "V_Rangemaster_belt", - "V_TacVest_blk", - "V_TacVest_blk_POLICE", - "V_TacVest_brn", - "V_TacVest_camo", - "V_TacVest_khk", - "V_TacVest_oli", - "V_TacVestCamo_khk", - "V_TacVestIR_blk", - "V_I_G_resistanceLeader_F", - "V_BandollierB_blk", - "V_BandollierB_cbr", - "V_BandollierB_khk", - "V_BandollierB_oli", - "V_BandollierB_rgr", - "V_Chestrig_blk", - "V_Chestrig_khk", - "V_Chestrig_oli", - "V_Chestrig_rgr", - "V_HarnessO_brn", - "V_HarnessO_gry", - "V_HarnessOGL_brn", - "V_HarnessOGL_gry", - "V_HarnessOSpec_brn", - "V_HarnessOSpec_gry", - "V_PlateCarrier1_blk", - "V_PlateCarrier1_rgr", - "V_PlateCarrier2_rgr", - "V_PlateCarrier3_rgr", - "V_PlateCarrierGL_blk", - "V_PlateCarrierGL_mtp", - "V_PlateCarrierGL_rgr", - "V_PlateCarrierH_CTRG", - "V_PlateCarrierIA1_dgtl", - "V_PlateCarrierIA2_dgtl", - "V_PlateCarrierIAGL_dgtl", - "V_PlateCarrierIAGL_oli", - "V_PlateCarrierL_CTRG", - "V_PlateCarrierSpec_blk", - "V_PlateCarrierSpec_mtp", - #ifdef useAPEX - //Apex - "V_TacChestrig_grn_F", - "V_TacChestrig_oli_F", - "V_TacChestrig_cbr_F", - "V_PlateCarrier1_tna_F", - "V_PlateCarrier2_tna_F", - "V_PlateCarrierSpec_tna_F", - "V_PlateCarrierGL_tna_F", - "V_HarnessO_ghex_F", - "V_HarnessOGL_ghex_F", - "V_BandollierB_ghex_F", - "V_TacVest_gen_F", - "V_PlateCarrier1_rgr_noflag_F", - #endif - "V_PlateCarrier2_rgr_noflag_F" - ]; - blck_vests_blue = blck_vests; - blck_vests_red = blck_vests; - blck_vests_green = blck_vests; - blck_vests_orange = blck_vests; - - //CraftingFood - blck_Meats=[ - - ]; - blck_Drink = [ - "Exile_Item_PlasticBottleCoffee", - "Exile_Item_PowerDrink", - "Exile_Item_PlasticBottleFreshWater", - "Exile_Item_Beer", - "Exile_Item_EnergyDrink", - "Exile_Item_MountainDupe" - ]; - blck_Food = [ - "Exile_Item_EMRE", - "Exile_Item_GloriousKnakworst", - "Exile_Item_Surstromming", - "Exile_Item_SausageGravy", - "Exile_Item_Catfood", - "Exile_Item_ChristmasTinner", - "Exile_Item_BBQSandwich", - "Exile_Item_Dogfood", - "Exile_Item_BeefParts", - "Exile_Item_Cheathas", - "Exile_Item_Noodles", - "Exile_Item_SeedAstics", - "Exile_Item_Raisins", - "Exile_Item_Moobar", - "Exile_Item_InstantCoffee" - ]; - - #ifdef useCUP - - #endif - - #ifdef useRHS - - #endif - blck_ConsumableItems = blck_Meats + blck_Drink + blck_Food; - blck_throwableExplosives = ["HandGrenade","MiniGrenade"]; - blck_otherExplosives = ["1Rnd_HE_Grenade_shell","3Rnd_HE_Grenade_shell","DemoCharge_Remote_Mag","SatchelCharge_Remote_Mag"]; - blck_explosives = blck_throwableExplosives + blck_otherExplosives; - blck_medicalItems = ["Exile_Item_InstaDoc","Exile_Item_Bandage","Exile_Item_Vishpirin"]; - blck_specialItems = blck_throwableExplosives + blck_medicalItems; - - blck_NVG = ["NVGoggles","NVGoggles_INDEP","NVGoggles_OPFOR","Exile_Item_XM8"]; - blck_buildingMaterials = ["Exile_Item_ExtensionCord","Exile_Item_JunkMetal","Exile_Item_LightBulb","Exile_Item_MetalBoard", - "Exile_Item_MetalPole","Exile_Item_MetalScrews","Exile_Item_Cement","Exile_Item_Sand","Exile_Item_MetalWire","Exile_Item_ExtensionCord","Exile_Item_JunkMetal"]; - blck_tools = ["Exile_Item_Matches","Exile_Item_CookingPot","Exile_Melee_Axe","Exile_Melee_SledgeHammmer","Exile_Item_Handsaw","Exile_Item_Pliers","Exile_Item_CanOpener","Exile_Item_Shovel"]; - -/*************************************************************************************** -DEFAULT CONTENTS OF LOOT CRATES FOR EACH MISSION -Note however that these configurations can be used in any way you like or replaced with mission-specific customized loot arrays -for examples of how you can do this see \Major\Compositions.sqf -***************************************************************************************/ - - // values are: number of things from the weapons, magazines, optics, materials(cinder etc), items (food etc) and backpacks arrays to add, respectively. - blck_lootCountsOrange = [8,32,8,35,16,2]; // Orange - blck_lootCountsGreen = [7,24,6,25,18,2]; // Green - blck_lootCountsRed = [5,16,4,10,6,1]; // Red - blck_lootCountsBlue = [4,12,3,6,6,1]; // Blue - - blck_BoxLoot_Orange = - // 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 - #ifdef useAPEX - "arifle_AK12_F","arifle_AK12_GL_F","arifle_AKM_F","arifle_AKM_FL_F","arifle_AKS_F","arifle_ARX_blk_F","arifle_ARX_ghex_F","arifle_ARX_hex_F","arifle_CTAR_blk_F","arifle_CTAR_hex_F", - "arifle_CTAR_ghex_F","arifle_CTAR_GL_blk_F","arifle_CTARS_blk_F","arifle_CTARS_hex_F","arifle_CTARS_ghex_F","arifle_SPAR_01_blk_F","arifle_SPAR_01_khk_F","arifle_SPAR_01_snd_F", - "arifle_SPAR_01_GL_blk_F","arifle_SPAR_01_GL_khk_F","arifle_SPAR_01_GL_snd_F","arifle_SPAR_02_blk_F","arifle_SPAR_02_khk_F","arifle_SPAR_02_snd_F","arifle_SPAR_03_blk_F", - "arifle_SPAR_03_khk_F","arifle_SPAR_03_snd_F","arifle_MX_khk_F","arifle_MX_GL_khk_F","arifle_MXC_khk_F","arifle_MXM_khk_F", - #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_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"], - ["MMG_01_hex_F","150Rnd_93x64_Mag"], - ["MMG_01_tan_F","150Rnd_93x64_Mag"], - ["MMG_02_black_F","150Rnd_93x64_Mag"], - ["MMG_02_camo_F","150Rnd_93x64_Mag"], - ["MMG_02_sand_F","150Rnd_93x64_Mag"], - ["srifle_DMR_02_camo_F","10Rnd_338_Mag"], - ["srifle_DMR_02_F","10Rnd_338_Mag"], - ["srifle_DMR_02_sniper_F","10Rnd_338_Mag"], - ["srifle_DMR_03_F","10Rnd_338_Mag"], - ["srifle_DMR_03_tan_F","10Rnd_338_Mag"], - ["srifle_DMR_04_Tan_F","10Rnd_338_Mag"], - ["srifle_DMR_05_hex_F","10Rnd_338_Mag"], - ["srifle_DMR_05_tan_F","10Rnd_338_Mag"], - ["srifle_DMR_06_camo_F","10Rnd_338_Mag"], - ["srifle_DMR_04_F","10Rnd_127x54_Mag"], - ["srifle_DMR_05_blk_F","10Rnd_93x64_DMR_05_Mag"], - ["srifle_DMR_06_olive_F","20Rnd_762x51_Mag"] - ], - [//Magazines - ["3rnd_HE_Grenade_Shell",3,6], - ["30Rnd_65x39_caseless_green",3,6], - ["30Rnd_556x45_Stanag",3,6], - ["30Rnd_45ACP_Mag_SMG_01",3,6], - ["20Rnd_556x45_UW_mag",3,6], - ["20Rnd_762x51_Mag",7,14], - ["200Rnd_65x39_cased_Box",3,6], - ["100Rnd_65x39_caseless_mag_Tracer",3,6], - ["3rnd_HE_Grenade_Shell",1,3], - ["HandGrenade",1,5], - // Marksman Pack Ammo - ["10Rnd_338_Mag",3,5], - ["10Rnd_338_Mag",3,5], - ["10Rnd_127x54_Mag" ,3,5], - ["10Rnd_127x54_Mag",3,5], - ["10Rnd_93x64_DMR_05_Mag" ,3,5], - ["10Rnd_93x64_DMR_05_Mag" ,3,5], - ["150Rnd_93x64_Mag",3,5], - ["130Rnd_338_Mag",3,5] - ], - [ // Optics - ["optic_SOS",1,2],["optic_LRPS",1,2],["optic_DMS",1,2], - ["optic_Arco",1,3], - ["optic_SOS",1,3],["optic_MRCO",1,3],["optic_DMS",1,3],["optic_Yorris",1,3], - ["optic_MRD",1,3],["optic_LRPS",1,3],["optic_NVS",1,3],["optic_Nightstalker",1,2],["optic_Nightstalker",1,2],["optic_Nightstalker",1,2], - ["optic_tws",1,3],["optic_tws_mg",1,3],["muzzle_snds_H",1,3],["muzzle_snds_L",1,3],["muzzle_snds_M",1,3],["muzzle_snds_B",1,3],["muzzle_snds_H_MG",1,3],["muzzle_snds_acp",1,3], - ["optic_AMS_khk",1,3],["optic_AMS_snd",1,3],["optic_KHS_blk",1,3],["optic_KHS_hex",1,3],["optic_KHS_old",1,3],["optic_KHS_tan",1,3] - ], - [// Materials and supplies - ["Exile_Item_Matches",1,2],["Exile_Item_CookingPot",1,2],["Exile_Item_Rope",1,2],["Exile_Item_DuctTape",1,8],["Exile_Item_ExtensionCord",1,8],["Exile_Item_FuelCanisterEmpty",1,2], - ["Exile_Item_JunkMetal",1,10],["Exile_Item_LightBulb",1,10],["Exile_Item_MetalBoard",1,10],["Exile_Item_MetalPole",1,10],["Exile_Item_CamoTentKit",1,10],["Exile_Item_WorkBenchKit",1,10], - ["Exile_Item_WoodWindowKit",1,10],["Exile_Item_WoodWallKit",1,10],["Exile_Item_WoodStairsKit",1,10],["Exile_Item_WoodGateKit",1,10],["Exile_Item_WoodDoorwayKit",1,10],["Exile_Item_MetalBoard",1,10], - ["Exile_Item_MetalBoard",1,10],["Exile_Item_ExtensionCord",1,10],["Exile_Item_MetalPole",1,10],["Exile_Item_Sand",3,10],["Exile_Item_Cement",3,10],["Exile_Item_Sand",3,10],["Exile_Item_Cement",3,10], - ["Exile_Item_MetalWire",3,10],["Exile_Item_MetalScrews",3,10] - // - ], - [//Items - ["Exile_Item_InstaDoc",1,2],["NVGoggles",1,2],["Rangefinder",1,2],["Exile_Item_Bandage",1,3],["Exile_Item_Vishpirin",1,3], - ["Exile_Item_Catfood",1,3],["Exile_Item_Surstromming",1,3],["Exile_Item_BBQSandwich",1,3],["Exile_Item_ChristmasTinner",1,3],["Exile_Item_SausageGravy",1,3],["Exile_Item_GloriousKnakworst",1,3], - ["Exile_Item_BeefParts",1,3],["Exile_Item_Cheathas",1,3],["Exile_Item_Noodles",1,3],["Exile_Item_SeedAstics",1,3],["Exile_Item_Raisins",1,3],["Exile_Item_Moobar",1,3],["Exile_Item_InstantCoffee",1,3],["Exile_Item_EMRE",1,3], - ["Exile_Item_PlasticBottleCoffee",1,3],["Exile_Item_PowerDrink",1,3],["Exile_Item_PlasticBottleFreshWater",1,3],["Exile_Item_Beer",1,3],["Exile_Item_EnergyDrink",1,3],["Exile_Item_MountainDupe",1,3] - ], - [ // Backpacks - ["B_AssaultPack_dgtl",1,2],["B_AssaultPack_khk",1,2],["B_AssaultPack_mcamo",1,2],["B_AssaultPack_cbr",1,2],["B_AssaultPack_rgr",1,2],["B_AssaultPack_sgg",1,2], - ["B_Carryall_cbr",1,2],["B_Carryall_khk",1,2],["B_Carryall_mcamo",1,2],["B_Carryall_ocamo",1,2],["B_Carryall_oli",1,2],["B_Carryall_oucamo",1,2], - ["B_FieldPack_blk",1,2],["B_FieldPack_cbr",1,2],["B_FieldPack_ocamo",1,2],["B_FieldPack_oucamo",1,2], - ["B_Kitbag_cbr",1,2],["B_Kitbag_mcamo",1,2],["B_Kitbag_sgg",1,2], - ["B_Parachute",1,2],["V_RebreatherB",1,2],["V_RebreatherIA",1,2],["V_RebreatherIR",1,2], - ["B_TacticalPack_blk",1,2],["B_TacticalPack_mcamo",1,2],["B_TacticalPack_ocamo",1,2],["B_TacticalPack_oli",1,2],["B_TacticalPack_rgr",1,2], - ["B_Bergen_blk",1,2],["B_Bergen_mcamo",1,2],["B_Bergen_rgr",1,2],["B_Bergen_sgg",1,2], - ["B_HuntingBackpack",1,2],["B_OutdoorPack_blk",1,2],["B_OutdoorPack_blu",1,2],["B_OutdoorPack_tan",1,2] - ] - ]; - - blck_BoxLoot_Green = - [ - [// Weapons - // Format is ["Weapon Name","Magazine Name"], - #ifdef useAPEX - "arifle_AK12_F","arifle_AK12_GL_F","arifle_AKM_F","arifle_AKM_FL_F","arifle_AKS_F","arifle_ARX_blk_F","arifle_ARX_ghex_F","arifle_ARX_hex_F","arifle_CTAR_blk_F","arifle_CTAR_hex_F", - "arifle_CTAR_ghex_F","arifle_CTAR_GL_blk_F","arifle_CTARS_blk_F","arifle_CTARS_hex_F","arifle_CTARS_ghex_F","arifle_SPAR_01_blk_F","arifle_SPAR_01_khk_F","arifle_SPAR_01_snd_F", - "arifle_SPAR_01_GL_blk_F","arifle_SPAR_01_GL_khk_F","arifle_SPAR_01_GL_snd_F","arifle_SPAR_02_blk_F","arifle_SPAR_02_khk_F","arifle_SPAR_02_snd_F","arifle_SPAR_03_blk_F", - "arifle_SPAR_03_khk_F","arifle_SPAR_03_snd_F","arifle_MX_khk_F","arifle_MX_GL_khk_F","arifle_MXC_khk_F","arifle_MXM_khk_F", - #endif - ["arifle_Katiba_F","30Rnd_65x39_caseless_green"], - ["arifle_Katiba_GL_F","30Rnd_65x39_caseless_green"], - ["arifle_MX_F","30Rnd_65x39_caseless_mag"], - ["arifle_MX_GL_F","30Rnd_65x39_caseless_mag"], - ["arifle_MXC_F","30Rnd_65x39_caseless_mag"], - ["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_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"], - ["MMG_01_hex_F","150Rnd_93x64_Mag"], - ["srifle_DMR_02_camo_F","10Rnd_338_Mag"], - ["srifle_DMR_03_F","10Rnd_338_Mag"], - ["srifle_DMR_04_Tan_F","10Rnd_338_Mag"], - ["srifle_DMR_05_hex_F","10Rnd_338_Mag"], - ["srifle_DMR_06_camo_F","10Rnd_338_Mag"] - ], - [//Magazines - // Format is ["Magazine name, Minimum number to add, Maximum number to add], - ["3rnd_HE_Grenade_Shell",2,4], - ["30Rnd_65x39_caseless_green",3,6], - ["30Rnd_556x45_Stanag",3,6], - ["30Rnd_556x45_Stanag",3,6], - ["30Rnd_45ACP_Mag_SMG_01",3,6], - ["20Rnd_556x45_UW_mag",3,6], - ["20Rnd_762x51_Mag",6,12], - ["200Rnd_65x39_cased_Box",3,6], - ["100Rnd_65x39_caseless_mag_Tracer",3,6], - ["3rnd_HE_Grenade_Shell",1,3], - ["HandGrenade",1,3], - // Marksman Pack Ammo - ["10Rnd_338_Mag",1,4], - ["10Rnd_338_Mag",1,4], - ["10Rnd_127x54_Mag" ,1,4], - ["10Rnd_127x54_Mag",1,4], - ["10Rnd_93x64_DMR_05_Mag" ,1,4], - ["10Rnd_93x64_DMR_05_Mag" ,1,4], - ["130Rnd_338_Mag",3,5] - ], - [ // Optics - ["optic_SOS",1,2],["optic_LRPS",1,2],["optic_DMS",1,2],["optic_Aco",1,3],["optic_ACO_grn",1,3],["optic_Holosight",1,3],["acc_flashlight",1,3],["acc_pointer_IR",1,3], - ["optic_Arco",1,3],["optic_Hamr",1,3],["optic_Aco",1,3],["optic_ACO_grn",1,3],["optic_Aco_smg",1,3],["optic_ACO_grn_smg",1,3], - ["optic_Holosight",1,3],["optic_Holosight_smg",1,3],["optic_SOS",1,3],["optic_MRCO",1,3],["optic_DMS",1,3],["optic_Yorris",1,3], - ["optic_MRD",1,3],["optic_LRPS",1,3],["optic_NVS",1,3],["optic_Nightstalker",1,2],["optic_Nightstalker",1,2],["optic_Nightstalker",1,2], - ["optic_tws",1,3],["optic_tws_mg",1,3],["muzzle_snds_H",1,3],["muzzle_snds_L",1,3],["muzzle_snds_M",1,3],["muzzle_snds_B",1,3],["muzzle_snds_H_MG",1,3],["muzzle_snds_acp",1,3], - ["optic_AMS_khk",1,3],["optic_AMS_snd",1,3],["optic_KHS_blk",1,3],["optic_KHS_hex",1,3],["optic_KHS_old",1,3],["optic_KHS_tan",1,3] - ], - [// Materials and supplies - ["Exile_Item_Matches",1,2],["Exile_Item_CookingPot",1,2],["Exile_Item_Rope",1,2],["Exile_Item_DuctTape",1,8],["Exile_Item_ExtensionCord",1,8],["Exile_Item_FuelCanisterEmpty",1,2], - ["Exile_Item_JunkMetal",1,5],["Exile_Item_LightBulb",1,5],["Exile_Item_MetalBoard",1,5],["Exile_Item_MetalPole",1,5],["Exile_Item_CamoTentKit",1,5],["Exile_Item_WorkBenchKit",1,5], - ["Exile_Item_MetalBoard",1,5],["Exile_Item_MetalWire",3,10],["Exile_Item_MetalScrews",3,10],["Exile_Item_ExtensionCord",1,5],["Exile_Item_MetalPole",1,5],["Exile_Item_Sand",2,5], - ["Exile_Item_Cement",2,8],["Exile_Item_Sand",2,8],["Exile_Item_Cement",2,8] - ], - [//Items - ["Exile_Item_InstaDoc",1,2],["NVGoggles",1,2],["Rangefinder",1,2],["Exile_Item_Bandage",1,6],["Exile_Item_Vishpirin",1,6], - ["Exile_Item_Catfood",1,3],["Exile_Item_Surstromming",1,3],["Exile_Item_BBQSandwich",1,3],["Exile_Item_ChristmasTinner",1,3],["Exile_Item_SausageGravy",1,3],["Exile_Item_GloriousKnakworst",1,3], - ["Exile_Item_BeefParts",1,3],["Exile_Item_Cheathas",1,3],["Exile_Item_Noodles",1,3],["Exile_Item_SeedAstics",1,3],["Exile_Item_Raisins",1,3],["Exile_Item_Moobar",1,3],["Exile_Item_InstantCoffee",1,3],["Exile_Item_EMRE",1,3], - ["Exile_Item_PlasticBottleCoffee",1,3],["Exile_Item_PowerDrink",1,3],["Exile_Item_PlasticBottleFreshWater",1,3],["Exile_Item_Beer",1,3],["Exile_Item_EnergyDrink",1,3],["Exile_Item_MountainDupe",1,3] - ], - [ // Backpacks - ["B_AssaultPack_dgtl",1,2],["B_AssaultPack_khk",1,2],["B_AssaultPack_mcamo",1,2],["B_AssaultPack_cbr",1,2],["B_AssaultPack_rgr",1,2],["B_AssaultPack_sgg",1,2], - ["B_Carryall_cbr",1,2],["B_Carryall_khk",1,2],["B_Carryall_mcamo",1,2],["B_Carryall_ocamo",1,2],["B_Carryall_oli",1,2],["B_Carryall_oucamo",1,2], - ["B_FieldPack_blk",1,2],["B_FieldPack_cbr",1,2],["B_FieldPack_ocamo",1,2],["B_FieldPack_oucamo",1,2], - ["B_Kitbag_cbr",1,2],["B_Kitbag_mcamo",1,2],["B_Kitbag_sgg",1,2], - ["B_Parachute",1,2],["V_RebreatherB",1,2],["V_RebreatherIA",1,2],["V_RebreatherIR",1,2], - ["B_TacticalPack_blk",1,2],["B_TacticalPack_mcamo",1,2],["B_TacticalPack_ocamo",1,2],["B_TacticalPack_oli",1,2],["B_TacticalPack_rgr",1,2], - ["B_Bergen_blk",1,2],["B_Bergen_mcamo",1,2],["B_Bergen_rgr",1,2],["B_Bergen_sgg",1,2], - ["B_HuntingBackpack",1,2],["B_OutdoorPack_blk",1,2],["B_OutdoorPack_blu",1,2],["B_OutdoorPack_tan",1,2] - ] - ]; - - blck_BoxLoot_Blue = - [ - [// Weapons - ["arifle_Katiba_F","30Rnd_65x39_caseless_green"], - ["arifle_Katiba_GL_F","30Rnd_65x39_caseless_green"], - ["arifle_Mk20_F","30Rnd_556x45_Stanag"], - ["arifle_Mk20_plain_F","30Rnd_556x45_Stanag"], - ["arifle_Mk20C_F","30Rnd_556x45_Stanag"], - ["arifle_Mk20_GL_F","30Rnd_556x45_Stanag"], - ["arifle_Mk20_GL_plain_F","30Rnd_556x45_Stanag"], - ["arifle_MX_F","30Rnd_65x39_caseless_mag"], - ["arifle_MX_GL_F","30Rnd_65x39_caseless_mag"], - ["arifle_MXC_F","30Rnd_65x39_caseless_mag"], - ["arifle_MXM_F","30Rnd_65x39_caseless_mag"], - ["arifle_SDAR_F","20Rnd_556x45_UW_mag"], - ["arifle_TRG20_F","30Rnd_556x45_Stanag"], - ["SMG_02_F","30Rnd_9x21_Mag"], - ["SMG_01_F","30Rnd_45ACP_Mag_SMG_01"], - ["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_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"] - ], - [//Magazines - ["3rnd_HE_Grenade_Shell",1,2], - ["30Rnd_65x39_caseless_green",3,6], - ["30Rnd_556x45_Stanag",3,6], - ["30Rnd_556x45_Stanag",3,6], - ["30Rnd_45ACP_Mag_SMG_01",3,6], - ["20Rnd_556x45_UW_mag",3,6], - ["20Rnd_762x51_Mag",3,10], - ["200Rnd_65x39_cased_Box",3,6], - ["100Rnd_65x39_caseless_mag_Tracer",3,6], - ["3rnd_HE_Grenade_Shell",1,4], - ["HandGrenade",1,3], - // Marksman Pack Ammo - ["150Rnd_93x64_Mag",1,4], - ["10Rnd_338_Mag",1,4], - ["10Rnd_127x54_Mag" ,1,4], - ["10Rnd_127x54_Mag",1,4], - ["10Rnd_93x64_DMR_05_Mag" ,1,4] - ], - [ // Optics - ["optic_SOS",1,2],["optic_LRPS",1,2],["optic_DMS",1,2],["optic_Aco",1,3],["optic_ACO_grn",1,3],["optic_Holosight",1,3],["acc_flashlight",1,3],["acc_pointer_IR",1,3], - ["optic_Arco",1,3],["optic_Hamr",1,3],["optic_Aco",1,3],["optic_ACO_grn",1,3],["optic_Aco_smg",1,3],["optic_ACO_grn_smg",1,3], - ["optic_Holosight",1,3],["optic_Holosight_smg",1,3],["optic_SOS",1,3],["optic_MRCO",1,3],["optic_DMS",1,3],["optic_Yorris",1,3], - ["optic_MRD",1,3],["optic_LRPS",1,3],["optic_NVS",1,3],["optic_Nightstalker",1,2], - ["optic_tws",1,3],["optic_tws_mg",1,3],["muzzle_snds_H",1,3],["muzzle_snds_L",1,3],["muzzle_snds_M",1,3],["muzzle_snds_B",1,3],["muzzle_snds_H_MG",1,3],["muzzle_snds_acp",1,3], - ["optic_AMS_khk",1,3],["optic_AMS_snd",1,3],["optic_KHS_blk",1,3],["optic_KHS_hex",1,3],["optic_KHS_old",1,3],["optic_KHS_tan",1,3] - ], - [// Materials and supplies - ["Exile_Item_Matches",1,2],["Exile_Item_CookingPot",1,2],["Exile_Item_Rope",1,2],["Exile_Item_DuctTape",1,3],["Exile_Item_ExtensionCord",1,2],["Exile_Item_FuelCanisterEmpty",1,2], - ["Exile_Item_JunkMetal",1,6],["Exile_Item_LightBulb",1,6],["Exile_Item_MetalBoard",1,6],["Exile_Item_MetalPole",1,6],["Exile_Item_CamoTentKit",1,6],["Exile_Item_MetalWire",1,4] - ], - [//Items - ["Exile_Item_InstaDoc",1,2],["NVGoggles",1,2],["Rangefinder",1,2],["Exile_Item_Bandage",1,3],["Exile_Item_Vishpirin",1,3], - ["Exile_Item_Catfood",1,3],["Exile_Item_Surstromming",1,3],["Exile_Item_BBQSandwich",1,3],["Exile_Item_ChristmasTinner",1,3],["Exile_Item_SausageGravy",1,3],["Exile_Item_GloriousKnakworst",1,3], - ["Exile_Item_BeefParts",1,3],["Exile_Item_Cheathas",1,3],["Exile_Item_Noodles",1,3],["Exile_Item_SeedAstics",1,3],["Exile_Item_Raisins",1,3],["Exile_Item_Moobar",1,3],["Exile_Item_InstantCoffee",1,3],["Exile_Item_EMRE",1,3], - ["Exile_Item_PlasticBottleCoffee",1,3],["Exile_Item_PowerDrink",1,3],["Exile_Item_PlasticBottleFreshWater",1,3],["Exile_Item_Beer",1,3],["Exile_Item_EnergyDrink",1,3],["Exile_Item_MountainDupe",1,3] - ], - [ // Backpacks - ["B_AssaultPack_dgtl",1,2],["B_AssaultPack_khk",1,2],["B_AssaultPack_mcamo",1,2],["B_AssaultPack_cbr",1,2],["B_AssaultPack_rgr",1,2],["B_AssaultPack_sgg",1,2], - ["B_Carryall_cbr",1,2],["B_Carryall_khk",1,2],["B_Carryall_mcamo",1,2],["B_Carryall_ocamo",1,2],["B_Carryall_oli",1,2],["B_Carryall_oucamo",1,2], - ["B_FieldPack_blk",1,2],["B_FieldPack_cbr",1,2],["B_FieldPack_ocamo",1,2],["B_FieldPack_oucamo",1,2], - ["B_Kitbag_cbr",1,2],["B_Kitbag_mcamo",1,2],["B_Kitbag_sgg",1,2], - ["B_Parachute",1,2],["V_RebreatherB",1,2],["V_RebreatherIA",1,2],["V_RebreatherIR",1,2], - ["B_TacticalPack_blk",1,2],["B_TacticalPack_mcamo",1,2],["B_TacticalPack_ocamo",1,2],["B_TacticalPack_oli",1,2],["B_TacticalPack_rgr",1,2], - ["B_Bergen_blk",1,2],["B_Bergen_mcamo",1,2],["B_Bergen_rgr",1,2],["B_Bergen_sgg",1,2], - ["B_HuntingBackpack",1,2],["B_OutdoorPack_blk",1,2],["B_OutdoorPack_blu",1,2],["B_OutdoorPack_tan",1,2] - ] - ]; - - blck_BoxLoot_Red = - [ - [// Weapons - ["arifle_Katiba_F","30Rnd_65x39_caseless_green"], - ["arifle_Katiba_GL_F","30Rnd_65x39_caseless_green"], - ["arifle_Mk20_F","30Rnd_556x45_Stanag"], - ["arifle_Mk20_plain_F","30Rnd_556x45_Stanag"], - ["arifle_Mk20C_F","30Rnd_556x45_Stanag"], - ["arifle_Mk20_GL_F","30Rnd_556x45_Stanag"], - ["arifle_Mk20_GL_plain_F","30Rnd_556x45_Stanag"], - ["arifle_MX_F","30Rnd_65x39_caseless_mag"], - ["arifle_MX_GL_F","30Rnd_65x39_caseless_mag"], - //["arifle_MX_SW_Black_Hamr_pointer_F","100Rnd_65x39_caseless_mag_Tracer"], - ["arifle_MXC_F","30Rnd_65x39_caseless_mag"], - ["arifle_MXM_F","30Rnd_65x39_caseless_mag"], - ["arifle_SDAR_F","20Rnd_556x45_UW_mag"], - ["arifle_TRG20_F","30Rnd_556x45_Stanag"], - ["SMG_02_F","30Rnd_9x21_Mag"], - ["SMG_01_F","30Rnd_45ACP_Mag_SMG_01"], - ["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_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"], - ["MMG_01_hex_F","150Rnd_93x64_Mag"], - ["srifle_DMR_04_Tan_F","10Rnd_338_Mag"], - ["srifle_DMR_06_camo_F","10Rnd_338_Mag"] - ], - [//Magazines - - ["3rnd_HE_Grenade_Shell",1,5],["30Rnd_65x39_caseless_green",3,6],["30Rnd_556x45_Stanag",3,6],["30Rnd_556x45_Stanag",3,6],["30Rnd_45ACP_Mag_SMG_01",3,6],["20Rnd_556x45_UW_mag",3,6], - ["10Rnd_762x51_Mag",3,6],["20Rnd_762x51_Mag",3,7],["200Rnd_65x39_cased_Box",3,6],["100Rnd_65x39_caseless_mag_Tracer",3,6], - // Marksman Pack Ammo - ["150Rnd_93x64_Mag",1,4], - ["10Rnd_338_Mag",1,4], - ["10Rnd_127x54_Mag" ,1,4], - ["10Rnd_127x54_Mag",1,4], - ["10Rnd_93x64_DMR_05_Mag" ,1,4] - ], - [ // Optics - ["optic_SOS",1,2],["optic_LRPS",1,2],["optic_DMS",1,2],["optic_Aco",1,3],["optic_ACO_grn",1,3],["optic_Holosight",1,3],["acc_flashlight",1,3],["acc_pointer_IR",1,3], - ["optic_Arco",1,3],["optic_Hamr",1,3],["optic_Aco",1,3],["optic_ACO_grn",1,3],["optic_Aco_smg",1,3],["optic_ACO_grn_smg",1,3], - ["optic_Holosight",1,3],["optic_Holosight_smg",1,3],["optic_SOS",1,3],["optic_MRCO",1,3],["optic_DMS",1,3],["optic_Yorris",1,3], - ["optic_MRD",1,3],["optic_LRPS",1,3],["optic_NVS",1,3],["optic_Nightstalker",1,2], - ["optic_tws",1,3],["optic_tws_mg",1,3],["muzzle_snds_H",1,3],["muzzle_snds_L",1,3],["muzzle_snds_M",1,3],["muzzle_snds_B",1,3],["muzzle_snds_H_MG",1,3],["muzzle_snds_acp",1,3], - ["optic_AMS_khk",1,3],["optic_KHS_blk",1,3],["optic_KHS_hex",1,3],["optic_KHS_old",1,3],["optic_KHS_tan",1,3] - ], - [// Materials and supplies - ["Exile_Item_Matches",1,2],["Exile_Item_CookingPot",1,2],["Exile_Item_Rope",1,2],["Exile_Item_DuctTape",1,8],["Exile_Item_ExtensionCord",1,8],["Exile_Item_FuelCanisterEmpty",1,2], - ["Exile_Item_JunkMetal",1,5],["Exile_Item_LightBulb",1,5],["Exile_Item_MetalBoard",1,5],["Exile_Item_MetalPole",1,5],["Exile_Item_CamoTentKit",1,5],["Exile_Item_WorkBenchKit",1,5], - ["Exile_Item_MetalBoard",1,5],["Exile_Item_MetalWire",3,10],["Exile_Item_MetalScrews",3,10],["Exile_Item_ExtensionCord",1,5],["Exile_Item_MetalPole",1,5],["Exile_Item_Sand",2,5], - ["Exile_Item_Cement",2,5],["Exile_Item_Sand",2,5],["Exile_Item_Cement",2,5] - ], - [//Items - ["Exile_Item_InstaDoc",1,2],["NVGoggles",1,2],["Exile_Item_Energydrink",1,4],["Exile_Item_Beer",1,3],["Rangefinder",1,2], - ["Exile_Item_Catfood",1,3],["Exile_Item_Surstromming",1,3],["Exile_Item_BBQSandwich",1,3],["Exile_Item_ChristmasTinner",1,3],["Exile_Item_SausageGravy",1,3],["Exile_Item_GloriousKnakworst",1,3] - ], - [ // Backpacks - ["B_AssaultPack_dgtl",1,2],["B_AssaultPack_khk",1,2],["B_AssaultPack_mcamo",1,2],["B_AssaultPack_cbr",1,2],["B_AssaultPack_rgr",1,2],["B_AssaultPack_sgg",1,2], - ["B_Carryall_cbr",1,2],["B_Carryall_khk",1,2],["B_Carryall_mcamo",1,2],["B_Carryall_ocamo",1,2],["B_Carryall_oli",1,2],["B_Carryall_oucamo",1,2], - ["B_FieldPack_blk",1,2],["B_FieldPack_cbr",1,2],["B_FieldPack_ocamo",1,2],["B_FieldPack_oucamo",1,2], - ["B_Kitbag_cbr",1,2],["B_Kitbag_mcamo",1,2],["B_Kitbag_sgg",1,2], - ["B_Parachute",1,2],["V_RebreatherB",1,2],["V_RebreatherIA",1,2],["V_RebreatherIR",1,2], - ["B_TacticalPack_blk",1,2],["B_TacticalPack_mcamo",1,2],["B_TacticalPack_ocamo",1,2],["B_TacticalPack_oli",1,2],["B_TacticalPack_rgr",1,2], - ["B_Bergen_blk",1,2],["B_Bergen_mcamo",1,2],["B_Bergen_rgr",1,2],["B_Bergen_sgg",1,2], - ["B_HuntingBackpack",1,2],["B_OutdoorPack_blk",1,2],["B_OutdoorPack_blu",1,2],["B_OutdoorPack_tan",1,2] - ] - ]; - - - -blck_contructionLootExile = [ - [// Weapons - - ], - [//Magazines - - ], - [ // Optics - - ], - [// Materials and supplies - - // - ["Exile_Item_Matches",1,2],["Exile_Item_CookingPot",1,2],["Exile_Item_Rope",1,2],["Exile_Item_DuctTape",1,8],["Exile_Item_ExtensionCord",1,8],["Exile_Item_FuelCanisterEmpty",1,2], - ["Exile_Item_JunkMetal",1,10],["Exile_Item_LightBulb",1,10],["Exile_Item_MetalBoard",1,10],["Exile_Item_MetalPole",1,10],["Exile_Item_CamoTentKit",1,10],["Exile_Item_MetalScrews",3,10], - ["Exile_Item_MetalPole",1,10],["Exile_Item_Sand",2,10],["Exile_Item_Cement",2,10] - ], - [//Items - "Exile_Item_Matches","Exile_Item_CookingPot","Exile_Item_CanOpener","Exile_Item_Handsaw","Exile_Item_Pliers","Exile_Item_Grinder","Exile_Item_Foolbox","Exile_Item_Hammer", - "Exile_Item_CordlessScrewdriver","Exile_Item_FireExtinguisher","Exile_Item_OilCanister","Exile_Item_Screwdriver","Exile_Item_Shovel","Exile_Item_Wrench","Exile_Item_CordlessScrewdriver", - "Exile_Item_FireExtinguisher","Exile_Item_OilCanister","Exile_Item_Screwdriver","Exile_Item_DuctTape","Binocular","Rangefinder","ItemGPS","ItemMap","ItemCompass","ItemRadio","ItemWatch", - "Exile_Item_XM8" - ], - [ // Backpacks - - ] -]; -blck_contructionLoot = blck_contructionLootExile; -blck_supportLootExile = [ - [// Weapons - - ], - [//Magazines - - ], - [ // Optics - - ], - [// Materials and supplies - - ], - [//Items - ["Exile_Item_Matches",2,4],["Exile_Item_CookingPot",2,4],["Exile_Item_CanOpener",2,4], - ["Exile_Item_InstaDoc",1,2],["NVGoggles",1,2],["Rangefinder",1,2],["Exile_Item_Bandage",1,3],["Exile_Item_Vishpirin",1,3], - ["Exile_Item_Catfood",1,3],["Exile_Item_Surstromming",1,3],["Exile_Item_BBQSandwich",1,3],["Exile_Item_ChristmasTinner",1,3],["Exile_Item_SausageGravy",1,3],["Exile_Item_GloriousKnakworst",1,3], - ["Exile_Item_BeefParts",1,3],["Exile_Item_Cheathas",1,3],["Exile_Item_Noodles",1,3],["Exile_Item_SeedAstics",1,3],["Exile_Item_Raisins",1,3],["Exile_Item_Moobar",1,3],["Exile_Item_InstantCoffee",1,3],["Exile_Item_EMRE",1,3], - ["Exile_Item_PlasticBottleCoffee",1,3],["Exile_Item_PowerDrink",1,3],["Exile_Item_PlasticBottleFreshWater",1,3],["Exile_Item_Beer",1,3],["Exile_Item_EnergyDrink",1,3],["Exile_Item_MountainDupe",1,3] - ], - [ // Backpacks - - ] -]; - -blck_supportLoot = blck_supportLootExile; - -blck_highPoweredLoot = [ - [// Weapons - ["MMG_01_hex_F","150Rnd_93x64_Mag"], - ["MMG_01_tan_F","150Rnd_93x64_Mag"], - ["MMG_02_black_F","150Rnd_93x64_Mag"], - ["MMG_02_camo_F","150Rnd_93x64_Mag"], - ["MMG_02_sand_F","150Rnd_93x64_Mag"], - ["srifle_DMR_02_camo_F","10Rnd_338_Mag"], - ["srifle_DMR_02_F","10Rnd_338_Mag"], - ["srifle_DMR_02_sniper_F","10Rnd_338_Mag"], - ["srifle_DMR_03_F","10Rnd_338_Mag"], - ["srifle_DMR_03_tan_F","10Rnd_338_Mag"], - ["srifle_DMR_04_Tan_F","10Rnd_338_Mag"], - ["srifle_DMR_05_hex_F","10Rnd_338_Mag"], - ["srifle_DMR_05_tan_F","10Rnd_338_Mag"], - ["srifle_DMR_06_camo_F","10Rnd_338_Mag"], - ["srifle_DMR_04_F","10Rnd_127x54_Mag"], - ["srifle_DMR_05_blk_F","10Rnd_93x64_DMR_05_Mag"], - ["srifle_DMR_06_olive_F","20Rnd_762x51_Mag"], - ["launch_NLAW_F","NLAW_F"], - ["launch_RPG32_F","RPG7_F"], - ["launch_B_Titan_F","Titan_AT"], - ["launch_I_Titan_F","Titan_AT"], - ["launch_O_Titan_F","Titan_AP"], - ["launch_B_Titan_short_F","Titan_AA"], - ["launch_I_Titan_short_F","Titan_AA"], - ["launch_O_Titan_short_F","Titan_AA"], - ["launch_RPG7_F","RPG32_F"], - ["launch_O_Vorona_brown_F","vorona_HEAT"], - ["launch_O_Vorona_green_F","Vorona_HE"] - ], - [//Magazines - ["NLAW_F",1,3], - ["RPG32_F",1,3], - ["RPG32_HE_F",1,3], - ["Titan_AA",1,3], - ["Titan_AT",1,3], - ["Titan_AP",1,3], - ["RPG7_F",1,3], - ["vorona_HEAT",1,3], - ["Vorona_HE",1,3], - //["10Rnd_338_Mag",1,5], - ["10Rnd_338_Mag",3,5], - //["10Rnd_127x54_Mag" ,1,5], - ["10Rnd_127x54_Mag",3,5], - ["10Rnd_93x64_DMR_05_Mag" ,3,5], - //["10Rnd_93x64_DMR_05_Mag" ,1,5], - ["150Rnd_93x64_Mag",2,5], - ["130Rnd_338_Mag",3,5] - ], - [ // Optics - - ], - [// Materials and supplies - - ], - [//Items - ], - [ // Backpacks - - ] -]; - // Time the marker remains after completing the mission in seconds - experimental not yet implemented - - blck_crateTypes = ["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F","Box_NATO_Wps_F","I_CargoNet_01_ammo_F","O_CargoNet_01_ammo_F","B_CargoNet_01_ammo_F"]; // Default crate type. - - diag_log format["[blckeagls] Configurations for Exile Loaded"]; - - blck_configsExileLoaded = true; diff --git a/@GMS/addons/custom_server/Configs/blck_configs_exile_mil.sqf b/@GMS/addons/custom_server/Configs/blck_configs_exile_mil.sqf index 7affd6e..aa8fc5a 100644 --- a/@GMS/addons/custom_server/Configs/blck_configs_exile_mil.sqf +++ b/@GMS/addons/custom_server/Configs/blck_configs_exile_mil.sqf @@ -47,6 +47,8 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR blck_crateMoneyGreen = [300, 500]; blck_crateMoneyOrange = [500, 750]; + blck_crateTypes = ["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F","Box_NATO_Wps_F","I_CargoNet_01_ammo_F","O_CargoNet_01_ammo_F","B_CargoNet_01_ammo_F"]; // Default crate type. + blck_maximumItemPriceInAI_Loadouts = 1000; blck_armed_vehicles_Exile = [ @@ -663,6 +665,86 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR blck_vests_red = blck_vests; blck_vests_green = blck_vests; blck_vests_orange = blck_vests; + + blck_UMS_uniforms = + [ + "U_I_Wetsuit", + "U_O_Wetsuit", + "U_B_Wetsuit" + ]; + + blck_UMS_headgear = + [ + "G_Diving", + "G_B_Diving", + "G_O_Diving", + "G_I_Diving" + ]; + + blck_UMS_vests = + [ + "V_RebreatherB", + "V_RebreatherIA", + "V_RebreatherIR" + ]; + + blck_UMS_weapons = + [ + "arifle_SDAR_F" + ]; + + if ((tolower blck_modType) isEqualTo "exile") then + { + blck_UMS_submarines = + [ + + "Exile_Boat_SDV_CSAT", + "Exile_Boat_SDV_Digital", + "Exile_Boat_SDV_Grey" + ]; + + blck_UMS_crates = ["Exile_Container_SupplyBox"]; + }; + if ((tolower blck_modType) isEqualTo "epoch") then + { + blck_UMS_submarines = ["B_SDV_01_EPOCH"]; + blck_UMS_crates = blck_crateTypes; + //blck_UMS_crates = ["container_epoch"]; + }; + if ((toLower blck_modType) isEqualTo "default") then + { + blck_UMS_submarines = + [ + + "Exile_Boat_SDV_CSAT", + "Exile_Boat_SDV_Digital", + "Exile_Boat_SDV_Grey" + ]; + + blck_UMS_crates = blck_crateTypes; + + }; + + blck_UMS_unarmedSurfaceVessels = + [ + "B_Boat_Transport_01_F", + "I_Boat_Transport_01_F" + ]; + blck_UMS_armedSurfaceVessels = + [ + "B_Boat_Armed_01_minigun_F", + "I_Boat_Armed_01_minigun_F" + ]; + blck_UMS_surfaceVessels = blck_UMS_unarmedSurfaceVessels + blck_UMS_armedSurfaceVessels; + blck_UMS_shipWrecks = + [ + "Land_Boat_06_wreck_F", + "Land_Boat_05_wreck_F", + "Land_Boat_04_wreck_F", + "Land_Boat_02_abandoned_F", + "Land_Boat_01_abandoned_red_F", + "Land_Boat_01_abandoned_blue_F" + ]; //CraftingFood blck_Meats=[ @@ -1238,9 +1320,6 @@ blck_highPoweredLoot = [ ] ]; - // Time the marker remains after completing the mission in seconds - experimental not yet implemented - blck_crateTypes = ["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F","Box_NATO_Wps_F","I_CargoNet_01_ammo_F","O_CargoNet_01_ammo_F","B_CargoNet_01_ammo_F"]; // Default crate type. - - diag_log format["[blckeagls] Configurations for Exile Loaded"]; + ["Configurations for Exile Loaded"] call blck_fnc_log; diff --git a/@GMS/addons/custom_server/Configs/blck_configs_mil.sqf b/@GMS/addons/custom_server/Configs/blck_configs_mil.sqf index faddd7a..f8fe0b1 100644 --- a/@GMS/addons/custom_server/Configs/blck_configs_mil.sqf +++ b/@GMS/addons/custom_server/Configs/blck_configs_mil.sqf @@ -12,7 +12,7 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\init\build.sqf" - diag_log format["[blckeagls] Loading blck_configs_mil.sqf for Militarized Servers for blckeagls build %1",blck_buildNumber]; + [format["Loading blck_configs_mil.sqf for Militarized Servers for blckeagls build %1",blck_buildNumber]] call blck_fnc_log; /*************************************************************** BLCKEAGLS SUPPLEMENTAL MODULES @@ -52,7 +52,7 @@ blck_useHC = false; // Experimental (should be working). // Credit to Defent and eraser for their excellent work on scripts to transfer AI to clients for which these settings are required. - blck_ai_offload_to_client = true; // forces AI to be transfered to player's PCs. Disable if you have players running slow PCs. + blck_ai_offload_to_client = false; // forces AI to be transfered to player's PCs. Disable if you have players running slow PCs. // ******************************************************* // Experimental; may cause issues with waypoints // ******************************************************* @@ -76,10 +76,10 @@ blck_showCountAliveAI = true; //Minimum distance between missions - blck_MinDistanceFromMission = 1000; - blck_minDistanceToBases = 1000; - blck_minDistanceToPlayer = 800; - blck_minDistanceFromTowns = 500; + blck_MinDistanceFromMission = 2000; + blck_minDistanceToBases = 800; + blck_minDistanceToPlayer = 500; + blck_minDistanceFromTowns = 300; blck_minDistanceFromDMS = 500; // minimum distance for a blackeagls mission from any nearby DMS missions. set to -1 to disable this check. /////////////////////////////// @@ -89,7 +89,7 @@ // global loot crate options // Options to spawn a smoking wreck near the crate. When the first parameter is true, a wreck or junk pile will be spawned. // It's position can be either "center" or "random". smoking wreck will be spawned at a random location between 15 and 50 m from the mission. - blck_SmokeAtMissions = [false,"random"]; // set to [false,"anything here"] to disable this function altogether. + blck_SmokeAtMissions = [true,"random"]; // set to [false,"anything here"] to disable this function altogether. blck_useSignalEnd = true; // When true a smoke grenade/chemlight will appear at the loot crate for 2 min after mission completion. /////////////////////////////// @@ -98,7 +98,7 @@ blck_missionEndCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" blck_killPercentage = 0.99999999999; // The mission will complete if this fraction of the total AI spawned has been killed. // This facilitates mission completion when one or two AI are spawned into objects. - blck_spawnCratesTiming = "atMissionSpawnGround"; // Choices: "atMissionSpawnGround","atMissionStartAir","atMissionEndGround","atMissionEndAir". + blck_spawnCratesTiming = "atMissionSpawnGround"; // Choices: "atMissionSpawnGround","atMissionSpawnAir","atMissionEndGround","atMissionEndAir". // Crates spawned in the air will be spawned at mission center or the position(s) defined in the mission file and dropped under a parachute. // This sets the default value but can be overridden by defining _spawnCrateTiming in the file defining a particular mission. blck_loadCratesTiming = "atMissionSpawn"; // valid choices are "atMissionCompletion" and "atMissionSpawn"; @@ -231,18 +231,18 @@ //////////////////// // Reduce to 1 sec for immediate spawns, or longer if you wish to space the missions out - blck_TMin_Orange = 250; - blck_TMin_Green = 200; - blck_TMin_Blue = 120; - blck_TMin_Red = 150; - blck_TMin_UMS = 180; + blck_TMin_Orange = 480; + blck_TMin_Green = 420; + blck_TMin_Blue = 300; + blck_TMin_Red = 360; + blck_TMin_UMS = 300; //Maximum Spawn time between missions in seconds - blck_TMax_Orange = 360; - blck_TMax_Green = 300; - blck_TMax_Blue = 200; - blck_TMax_Red = 250; - blck_TMax_UMS = 200; + blck_TMax_Orange = 560; + blck_TMax_Green = 500; + blck_TMax_Blue = 360; + blck_TMax_Red = 420; + blck_TMax_UMS = 400; /////////////////////////////// // AI VEHICLE PATROL PARAMETERS @@ -422,17 +422,17 @@ if (toLower(blck_modType) isEqualTo "epoch") then { - diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",blck_modType]; + [format[" Loading Mission System using Parameters for %1 for militarized servers",blck_modType]] call blck_fnc_log; execVM "\q\addons\custom_server\Configs\blck_configs_epoch_mil.sqf"; }; if (toLower(blck_modType) isEqualTo "exile") then { - diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",blck_modType]; + [format[" Loading Mission System using Parameters for %1 for militarized servers",blck_modType]] call blck_fnc_log; execVM "\q\addons\custom_server\Configs\blck_configs_exile_mil.sqf"; }; if (toLower(blck_modType) isEqualTo "default") then { - diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",blck_modType]; + [format[" Loading Mission System using Parameters for %1 for militarized servers",blck_modType]] call blck_fnc_log; execVM "\q\addons\custom_server\Configs\blck_configs_default_mil.sqf"; }; //waitUntil{!isNil "blck_useConfigsGeneratedLoadouts"}; @@ -440,7 +440,7 @@ uiSleep 10; if (blck_useConfigsGeneratedLoadouts) then { - diag_log format["[blckeagls] Dynamic Configs Enabled"]; + [" Dynamic Configs Enabled"] call blck_fnc_log; execVM "\q\addons\custom_server\Configs\blck_dynamicConfigs.sqf"; }; diff --git a/@GMS/addons/custom_server/Configs/blck_custom_config.sqf b/@GMS/addons/custom_server/Configs/blck_custom_config.sqf index 7569ce4..54f346c 100644 --- a/@GMS/addons/custom_server/Configs/blck_custom_config.sqf +++ b/@GMS/addons/custom_server/Configs/blck_custom_config.sqf @@ -1227,5 +1227,49 @@ diag_log format["[blckeagls] blck_CUPHeadgear = %1",if (isNil "blck_CUPHeadgear" diag_log "[blckeagls] end of Custom Configurations for RHS 5/2/20"; blck_customConfigsLoaded = 1; +if (blck_debugOn) then { +diag_log " HEY YOU ITS WORKING"; + blck_MinDistanceFromMission = 1000; + blck_minDistanceToBases = 1000; + blck_minDistanceToPlayer = 1000; + blck_minDistanceFromTowns = 500; + diag_log " HEY YOU porkid's settings were loaded"; + + blck_MissionTimeout = 3000; + + blck_maxSpawnedMissions = 15; + blck_mainThreadUpdateInterval = 10; + blck_enableOrangeMissions = 1; + blck_enableGreenMissions = 1; + blck_enableRedMissions = 1; + blck_enableBlueMissions = 1; + blck_numberUnderwaterDynamicMissions = 1; + blck_enableHunterMissions = 1; + blck_enableScoutsMissions = 1; + blck_maxCrashSites = 0; + diag_log " HEY YOU custom settings for enabling missions were loaded"; + + blck_TMin_Blue = 7; + blck_TMin_Red = 10; + blck_TMin_Green = 13; + blck_TMin_Orange = 16; + blck_TMin_Hunter = 20; + blck_TMin_Scouts = 20; + blck_TMin_Crashes = 5; + blck_TMin_UMS = 20; + //Maximum Spawn time between missions in seconds + blck_TMax_Blue = 12; + blck_TMax_Red = 15; + blck_TMax_Green = 17; + blck_TMax_Orange = 21; + blck_TMax_Hunter = 22; + blck_TMax_Scouts = 22; + blck_TMax_Crashes = 15; + blck_TMax_UMS = 25; + + diag_log "[blckeagls] Custom Configs Custom mission timers loaded" +}; + + diff --git a/@GMS/addons/custom_server/Configs/blck_defines.hpp b/@GMS/addons/custom_server/Configs/blck_defines.hpp index 7187be8..cc7624a 100644 --- a/@GMS/addons/custom_server/Configs/blck_defines.hpp +++ b/@GMS/addons/custom_server/Configs/blck_defines.hpp @@ -27,7 +27,7 @@ //#define blck_debugMode //#define blck_addCarParts #define blck_triggerLoopCompleteTime 40*60 - +#define max_distance_crate_moved_uncompleted_mission 120 #define onFoot 1 #define inVehicle 2 diff --git a/@GMS/addons/custom_server/FAQ.txt b/@GMS/addons/custom_server/FAQ.txt deleted file mode 100644 index e8f54d5..0000000 --- a/@GMS/addons/custom_server/FAQ.txt +++ /dev/null @@ -1,99 +0,0 @@ -Core Mission System. - -The core mission system is configured to run 4 different classes of mission (Blue, Red, Green and Orange) simultaneously. -Reducing value for ...\custom_serer\configs\blck_configs.sqf\blck_maxSpawnedMissions will reduce the number of missions running on the server. - -General settings include the ability set whether and how messages to players regarding missions spawned or completed are displayed, - whether and how messages to players regarding killed AI are displayed - - Number of AI groups; - Number of AI per group; - AI skills; - Number and type of static weapons; - Number and type of armed vehicle patrols. - Presence of AI helicopter patrols. - Whether such patrols drop AI reinforcements. - - Loot can also be configured for each mission class. You can modify the number of weapons, magazines, items, construction materials, etc. - You can also adjust the choices for each of these types of items. - The equipment selected for each class of mission can also be specified. - Whether kills by guns mounted on vehicles are to be penalized (gunes that are prohobited are listed in blck_config.sys). - Whether to spawn a smoking wreck near the mission to be used as a visual landmark. - Whether to spawn mines (recommended only when no vehcle patrols are spawned). - -Where possible, I have tried group weapons based on desirability from low rank (5.56 ammo) to high rank (7.6 caliber or larger, large bore sniper, heavy LMG) then combine these groups to define parameters as needed. - -The missions themselves are spawned from templates which can be used to define: - the messages sent to players; - text used to label the mark - type of marker used to label the map - number of AI groups and number of AI - (optional) loot chest positions and loot to be loaded - type and location of any objects, buildings, or other entities that give the mission character - number and (optional) locations of static weapons - number of vehicle patrols - - To create and run new missions simply: - layout an AI base in the Arma 3 editor, - export the base as an .sqf - Define the above parameters (nu. AI groups, No AI, etc) - add this information to the mission template and modify any messages accordingly - Add the name of the file (e.g., "newAImission" to the list of missions to be spawned of that class in ...\custom)server\missions\GMS_missionLists.sqf - Repack your custom_server.pbo - -Performance considerations. -At present, missions do not actually spawn objects or players untill a player is within the trigger distance (1000 M). -Hence, performance penalties should be modest to none until players engage a mission. -There is some performance penalty to having a lot of dead AI on the server, or a lot of spawned objects used for scenery at AI missions. Hence, these are deleted after a certain time. - -Static Mission System (WIP). - -Additional Modules Available: - -1. Time Acceleration - -This provides an optional ability to accelerate time by user-specified factors. -The time acceleration can be specified for night, daytime and dusk. -Variables controlling the time acceleration module are located in ...\custom_server\configs\blck_configs.sqf and are: - - blck_useTimeAcceleration = false; // When true, time acceleration will be periodically updated based on amount of daylight at that time according to the values below. - blck_timeAccelerationDay = 1; // Daytime time accelearation - blck_timeAccelerationDusk = 4; // Dawn/dusk time accelearation - blck_timeAccelerationNight = 8; // Nighttim time acceleration - -Note that map/mod specific settings can be specified in blck_custom_config.sqf if that is helpful. - -2. Map Addons - -This module allows you to load map-addons (custom bases, enhancements to villages or towns, ATMs at traders etc) but to do so in a way that is map and mod-specific. -I use it to manage the map addons we run on multiple different Arma servers. -It is designed to permit you to place files in subdirectories of the MapAddons folder to simplyfy organization of the various files. -You can enable/disable the use of map-addons with the following variable found in ...\custom_server\configs\blck_configs: - -blck_spawnMapAddons = false; - -You can define which addons you wish to load in ...\custom_server\MapAddons\MapAddons_init.sqf. - -3. Static Loot System - -This module spawns loot crates at pre-specified locations on the ground, inside buildings or on roofs. -It is designed to function in conjunction with the Map Addons module if you wish it to. -It was derived from the loot crate spawner originally released by DarthRogue but has been extensively revised. -One enhancement is that I have written the code so that you do not need to sort items by there arma type (weapon, magazine, item). -In any event, it is a great tool for placing loot chests at AI strongholds or static missions. - -Some basic features are: -Crates can be spawned at precise locations with / without a nearby smoking wreck to mark their location (which crates an apololyptic feel). -Crates can be loaded with one of 3 different loadouts (add more if you like) which can be specified or randomly determined. -If the number of possible spawn locations is greater than the number of crates to spawned, spawn locations will be randomly chosen giving some variation to your mission. - -The static loot crate spawner is enabled/disable by changing the following variable in ...\custom_server\configs\blck_configs.sqf - - blck_spawnStaticLootCrates = false; - -I wrote the crate spawner in a way that helps me manage static loot crates across multiple maps and mods. -The configuration files for Epoch or Exile give examples of how to implement the system. - -Known issues - -1. diff --git a/@GMS/addons/custom_server/KnownIssues.txt b/@GMS/addons/custom_server/KnownIssues.txt deleted file mode 100644 index e2472f3..0000000 --- a/@GMS/addons/custom_server/KnownIssues.txt +++ /dev/null @@ -1,5 +0,0 @@ - - -Known issues - -1. diff --git a/@GMS/addons/custom_server/Missions/Blue/IDAP.sqf b/@GMS/addons/custom_server/Missions/Blue/IDAP.sqf new file mode 100644 index 0000000..5c2c997 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Blue/IDAP.sqf @@ -0,0 +1,143 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Blue Mission with template = default"; +_crateLoot = blck_BoxLoot_Blue; +_lootCounts = blck_lootCountsBlue; +_startMsg = "A IDAP HQ was sighted in a nearby sector! Check the Blue marker on your map for the location!"; +_endMsg = "The IDAP HQ at the Blue Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[200,200],"Solid"]; +_markerColor = "ColorBlue"; +_markerMissionName = "IDAP"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_Patrol_V3_F",[-24.0081,2.26978,-0.00143814],126.833,true,true,[["B_G_HMG_02_high_F",[-0.0534668,1.83252,4.38749],311.417]],[]], + ["Land_Cargo_Patrol_V3_F",[-5.29565,-28.9109,-0.00143814],1.92,true,true,[["B_G_HMG_02_high_F",[1.3645,-1.13159,4.38749],184.956]],[]], + ["Land_Cargo_HQ_V3_F",[-0.00732422,-3.21069,-0.00143814],270.541,true,true,[["B_G_HMG_02_high_F",[1.68311,6.03589,3.16996],360]],[]] +]; + + +_missionLandscape = [ + ["Land_Sign_WarningMilitaryArea_F",[-7.08057,-34.5996,-0.00143862],2.31973,true,true], + ["Land_CncShelter_F",[-11.4443,-31.9636,-0.00143862],0,true,true], + ["Land_CncShelter_F",[-11.4595,-33.4424,-0.00143862],0,true,true], + ["Land_HBarrier_Big_F",[-13.7441,-29.9917,-0.00143862],270.667,true,true], + ["Land_HBarrier_Big_F",[-28.533,-12.366,-0.00143862],92.486,true,true], + ["Land_HBarrier_Big_F",[-25.606,-19.6677,-0.00143862],223.764,true,true], + ["Land_HBarrier_Big_F",[-18.7449,-24.3645,-0.00143862],29.6621,true,true], + ["Land_HBarrier_Big_F",[-9.21753,-20.6865,-0.00143862],92.486,true,true], + ["Land_HBarrier_Big_F",[-9.28906,-28.9602,-0.00143862],92.486,true,true], + ["CamoNet_OPFOR_big_F",[-21.7307,-10.7373,1.64043],272.913,true,true], + ["Land_Cargo_House_V3_F",[-13.5071,0.647949,-0.00143862],0.832826,true,true], + ["Land_HBarrier_Big_F",[-8.40747,-6.52612,-0.00143862],269.796,true,true], + ["Land_HBarrier_Big_F",[-20.4199,6.59521,-0.00143862],180.674,true,true], + ["Land_HBarrier_Big_F",[-11.9136,6.71753,-0.00143862],180.674,true,true], + ["Land_HBarrier_Big_F",[-28.7576,-3.9104,-0.00143862],269.796,true,true], + ["Land_HBarrier_Big_F",[-8.60986,1.66675,-0.00143862],269.796,true,true], + ["Land_HBarrier_Big_F",[-26.3406,3.49731,-0.00143862],305.711,true,true], + ["CamoNet_OPFOR_F",[5.36572,-16.136,0.610557],90.0482,true,true], + ["Land_HBarrier_Big_F",[0.511719,-24.9692,-0.00143862],2.055,true,true], + ["Land_HBarrier_Big_F",[6.54102,-21.916,-0.00143862],307.294,true,true], + ["Land_HBarrier_Big_F",[-1.5127,-29.9829,-0.00143862],270.667,true,true], + ["Land_HBarrier_Big_F",[8.75342,-14.7712,-0.00143862],269.796,true,true], + ["Land_HBarrier_Big_F",[-6.03955,-33.3083,-0.00143862],2.055,true,true], + ["Land_HBarrier_5_F",[-5.41772,-20.895,-0.00143862],2.05508,true,true], + ["Land_HBarrier_Big_F",[8.23633,2.08301,-0.00143862],269.796,true,true], + ["Land_HBarrier_Big_F",[-3.49609,6.90259,-0.00143862],180.674,true,true], + ["Land_HBarrier_Big_F",[8.43506,-6.2915,-0.00143862],269.796,true,true], + ["Land_HBarrier_Big_F",[4.94263,6.96313,-0.00143862],180.674,true,true], + ["CargoNet_01_barrels_F",[-22.2239,-18.2131,-0.00143814],0.000125958,true,true], + ["CargoNet_01_barrels_F",[6.12988,-10.5715,-0.00143862],0.000316873,true,true], + ["CargoNet_01_barrels_F",[4.43457,-19.3284,-0.00143862],3.40987e-006,true,true] +]; + +_missionLootBoxes = [ +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["B_G_Offroad_01_armed_F",[3.04663,-40.3821,0.00804186],262.322] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = [ + +]; + +_missionGroups = [ + //[[-19.4963,-14.0864,4.76837e-007],3,6,"Red",30,45], + //[[-14.4426,-4.01489,4.76837e-007],3,6,"Red",30,45], + //[[-1.97192,-13.9941,4.76837e-007],3,6,"Red",30,45] +]; + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Blue; +_maxNoAI = blck_MaxAI_Blue; +_noAIGroups = blck_AIGrps_Blue; +_noVehiclePatrols = blck_SpawnVeh_Blue; +_noEmplacedWeapons = blck_SpawnEmplaced_Blue; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Blue"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir". + // Crates spawned in the air will be spawned at mission center or the position(s) defined in the mission file and dropped under a parachute. + // This sets the default value but can be overridden by defining _spawnCrateTiming in the file defining a particular mission. +_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn"; + // Pertains only to crates spawned at mission spawn. + // This sets the default but can be overridden for specific missions by defining _loadCratesTiming + + // Examples: + // To spawn crates at mission start loaded with gear set blck_spawnCratesTiming = "atMissionSpawnGround" && blck_loadCratesTiming = "atMissionSpawn" + // To spawn crates at mission start but load gear only after the mission is completed set blck_spawnCratesTiming = "atMissionSpawnGround" && blck_loadCratesTiming = "atMissionCompletion" + // To spawn crates on the ground at mission completion set blck_spawnCratesTiming = "atMissionEndGround" // Note that a loaded crate will be spawned. + // To spawn crates in the air and drop them by chutes set blck_spawnCratesTiming = "atMissionEndAir" // Note that a loaded crate will be spawned. +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" + // Setting this in the mission file overrides the defaults + +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Blue/Service_point.sqf b/@GMS/addons/custom_server/Missions/Blue/Service_point.sqf new file mode 100644 index 0000000..1f2b377 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Blue/Service_point.sqf @@ -0,0 +1,162 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Blue Mission with template = default"; +_crateLoot = blck_BoxLoot_Blue; +_lootCounts = blck_lootCountsBlue; +_startMsg = "A Service Point was sighted in a nearby sector! Check the Blue marker on your map for the location!"; +_endMsg = "The Service Point at the Blue Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[200,200],"Solid"]; +_markerColor = "ColorBlue"; +_markerMissionName = "Service Point"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_Patrol_V1_F",[-19.2107,-30.5151,-0.00143814],0,true,true,[["B_G_HMG_02_high_F",[1.16187,-1.16968,4.38749],177.998],["B_G_HMG_02_high_F",[-2.16211,13.6677,0.0444469],95.0891]],[]], + ["Land_Cargo_Patrol_V1_F",[-0.0581055,-30.4399,-0.00143814],0,true,true,[["B_G_HMG_02_high_F",[-1.44629,-1.22632,4.38749],184.401]],[]] +]; + +_missionLandscape = [ + ["Land_RoadBarrier_01_F",[-9.31006,-35.3601,-0.00143862],0,true,true], + ["Land_Sign_WarningMilitaryArea_F",[-2.61255,-36.5635,-0.00143862],359.892,true,true], + ["Land_HBarrierBig_F",[-24.6367,-14.2813,-0.00143862],271.204,true,true], + ["Land_HBarrierBig_F",[-18.7668,-25.9514,-0.00143862],0.792412,true,true], + ["Land_HBarrierBig_F",[-24.3547,-22.8525,-0.00143862],269.27,true,true], + ["Land_HBarrierBig_F",[-24.0122,-31.4038,-0.00143862],269.27,true,true], + ["Land_HBarrierBig_F",[-18.7783,-34.6914,-0.00143862],0.792412,true,true], + ["Land_PaperBox_closed_F",[-21.1392,-13.5237,-0.00143862],0,true,true], + ["CamoNet_INDP_open_F",[-20.3684,-17.9075,-0.00143862],93.326,true,true], + ["Land_Device_assembled_F",[-4.73267,4.11304,-0.00143862],0,true,true], + ["Land_Cargo_House_V1_F",[-12.1433,1.5144,-0.00143862],359.944,true,true], + ["Land_Cargo_House_V1_F",[-18.6406,-5.72363,-0.00143862],270.169,true,true], + ["Land_HBarrierBig_F",[-13.1831,7.9502,-0.00143862],181.375,true,true], + ["Land_HBarrierBig_F",[-24.7129,-5.87695,-0.00143862],271.204,true,true], + ["Land_HBarrierBig_F",[-4.71753,8.1543,-0.00143862],181.375,true,true], + ["Land_HBarrierBig_F",[-24.738,2.64307,-0.00143862],271.568,true,true], + ["Land_HBarrierBig_F",[-21.6355,7.85986,-0.00143862],181.375,true,true], + ["CargoPlaftorm_01_green_F",[-19.5588,2.55005,-0.00143862],0,true,true], + ["Land_HBarrierBig_F",[-0.253174,-26.094,-0.00143862],0.792412,true,true], + ["Land_HBarrierBig_F",[13.2122,-14.0542,-0.00143862],270.301,true,true], + ["Land_HBarrierBig_F",[8.23169,-25.9136,-0.00143862],359.697,true,true], + ["Land_HBarrierBig_F",[-0.206543,-34.8694,-0.00143862],359.697,true,true], + ["Land_HBarrierBig_F",[13.2056,-22.5811,-0.00143862],271.956,true,true], + ["Land_HBarrierBig_F",[4.76733,-31.5369,-0.00143862],271.956,true,true], + ["Land_BagFence_Long_F",[15.9219,-12.9792,-0.00143862],359.93,true,true], + ["Land_PaperBox_closed_F",[2.95581,-21.4031,-0.00143862],327.535,true,true], + ["Land_PaperBox_closed_F",[9.46167,-21.7529,-0.00143862],88.9779,true,true], + ["Land_BagFence_Corner_F",[17.7617,-12.5837,-0.00143862],89.1122,true,true], + ["Land_MedicalTent_01_wdl_generic_outer_F",[6.18726,-18.9663,-0.00143862],90.6678,true,true], + ["Land_BagFence_Short_F",[18.0669,-11.1177,-0.00143862],270.301,true,true], + ["Land_Cargo_House_V1_F",[18.2529,0.919678,-0.00143862],359.944,true,true], + ["Land_RoadBarrier_01_F",[13.8696,-5.63843,-0.00143862],89.9252,true,true], + ["Land_HBarrierBig_F",[13.0317,2.95288,-0.00143862],271.956,true,true], + ["Land_HBarrierBig_F",[3.65161,8.21143,-0.00143862],181.375,true,true], + ["Land_HBarrierBig_F",[9.88525,8.16089,-0.00143862],181.89,true,true], + // + ["B_Slingload_01_Repair_F",[-34.0637,-5.31909,-0.00143814],286.86,true,true], + ["B_Slingload_01_Ammo_F",[-33.7891,1.13989,-0.00143719],1.26154,true,true], + ["CargoNet_01_barrels_F",[-20.8491,-21.4822,-0.00143909],326.531,true,true], + //["Land_Pod_Heli_Transport_04_fuel_F",[-19.5588,2.55005,7.17512],0,true,true], + ["CargoNet_01_barrels_F",[-7.34326,5.33838,-0.00143862],36,true,true], + ["B_Slingload_01_Cargo_F",[-28.2134,-3.27197,-0.00143862],347.458,true,true], + ["B_Slingload_01_Ammo_F",[-1.96753,20.9294,-0.00143814],13.8038,true,true], + ["B_Slingload_01_Fuel_F",[-4.57788,15.0125,-0.00143862],307.628,true,true], + ["CargoNet_01_barrels_F",[5.34155,-21.6731,0.269362],13.203,true,true], + ["B_Slingload_01_Repair_F",[2.70557,16.3206,-0.00143814],299.402,true,true], + ["CargoNet_01_barrels_F",[2.15674,5.51074,-0.00143957],326.531,true,true], + ["B_Slingload_01_Cargo_F",[8.86084,17.0483,-0.00143862],360,true,true], + ["Land_RepairDepot_01_green_F",[5.00415,1.97778,-0.000936985],180.302,true,true] +]; + +_missionLootBoxes = [ +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["B_G_Offroad_01_armed_F",[-8.93213,-44.4866,0.00822115],273.053], + ["B_G_Offroad_01_armed_F",[16.876,-5.17969,0.00825357],294.284] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = [ + //["B_G_HMG_02_high_F",[-21.3728,-16.8474,0.0430088],95.0891], + //["B_G_HMG_02_high_F",[16.0146,-12.0088,0.043014],89.3354] +]; + +_missionGroups = [ + //[[-18.5681,-19.4417,4.76837e-007],3,6,"Red",30,45], + //[[-9.15723,-30.8086,4.76837e-007],3,6,"Red",30,45], + //[[7.19946,-18.9819,4.76837e-007],3,6,"Red",30,45], + //[[3.74561,-8.16309,4.76837e-007],3,6,"Red",30,45] +]; + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Blue; +_maxNoAI = blck_MaxAI_Blue; +_noAIGroups = blck_AIGrps_Blue; +_noVehiclePatrols = blck_SpawnVeh_Blue; +_noEmplacedWeapons = blck_SpawnEmplaced_Blue; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Blue"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir". + // Crates spawned in the air will be spawned at mission center or the position(s) defined in the mission file and dropped under a parachute. + // This sets the default value but can be overridden by defining _spawnCrateTiming in the file defining a particular mission. +_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn"; + // Pertains only to crates spawned at mission spawn. + // This sets the default but can be overridden for specific missions by defining _loadCratesTiming + + // Examples: + // To spawn crates at mission start loaded with gear set blck_spawnCratesTiming = "atMissionSpawnGround" && blck_loadCratesTiming = "atMissionSpawn" + // To spawn crates at mission start but load gear only after the mission is completed set blck_spawnCratesTiming = "atMissionSpawnGround" && blck_loadCratesTiming = "atMissionCompletion" + // To spawn crates on the ground at mission completion set blck_spawnCratesTiming = "atMissionEndGround" // Note that a loaded crate will be spawned. + // To spawn crates in the air and drop them by chutes set blck_spawnCratesTiming = "atMissionEndAir" // Note that a loaded crate will be spawned. +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" + // Setting this in the mission file overrides the defaults + +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Blue/Toxin.sqf b/@GMS/addons/custom_server/Missions/Blue/Toxin.sqf new file mode 100644 index 0000000..36e8d9c --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Blue/Toxin.sqf @@ -0,0 +1,166 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Blue Mission with template = default"; +_crateLoot = blck_BoxLoot_Blue; +_lootCounts = blck_lootCountsBlue; +_startMsg = "A Toxin Center was sighted in a nearby sector! Check the Blue marker on your map for the location!"; +_endMsg = "The Toxin Center at the Blue Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[200,200],"Solid"]; +_markerColor = "ColorBlue"; +_markerMissionName = "Toxin Center"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Research_HQ_F",[-6.71143,10.6191,-0.00143909],179.046,true,true,[["B_GMG_01_high_F",[2.39746,3.8103,3.11371],360]],[]], + ["Land_Research_HQ_F",[11.5024,-2.94189,-0.00143909],89.179,true,true,[["B_Mortar_01_F",[0.713867,-5.21362,3.1624],360],["B_HMG_01_high_F",[-7.5625,-20.228,-0.0121174],180.433]],[]] +]; + +_missionLandscape = [ + ["Land_Mil_WiredFence_F",[-9.75415,-20.865,-0.00143909],359.2,true,true], + ["Land_Mil_WiredFence_F",[-21.4592,-9.60181,-0.00143909],89.3037,true,true], + ["Land_Mil_WiredFence_F",[-17.6565,-20.9314,-0.00143909],359.2,true,true], + ["Land_Mil_WiredFence_F",[-21.3225,-17.4338,-0.00143909],89.3037,true,true], + ["Land_Mil_WiredFence_F",[-21.4573,-1.78149,-0.00143909],89.3037,true,true], + ["Land_Device_assembled_F",[-12.4314,0.409668,-0.00143909],0,true,true], + ["Land_Sign_WarningMilitaryArea_F",[-7.7229,-21.8035,-0.00143909],359.892,true,true], + ["Land_Sign_WarningMilitaryArea_F",[4.04224,-21.6248,-0.00143909],359.892,true,true], + ["Land_HBarrierBig_F",[-17.3535,-2.16992,-0.00143909],271.204,true,true], + ["Land_HBarrierBig_F",[-17.0715,-10.7412,-0.00143909],269.27,true,true], + ["Land_HBarrierBig_F",[-11.4836,-13.8401,-0.00143909],0.792412,true,true], + ["Land_BagFence_Long_F",[-7.15112,-24.29,-0.00143909],0.556939,true,true], + ["Land_BagFence_Long_F",[3.73877,-24.3738,-0.00143909],180.252,true,true], + ["Land_PaperBox_closed_F",[-14.3025,-3.37964,-0.00143909],327.535,true,true], + ["Land_BagFence_Corner_F",[-9.23682,-24.0522,-0.00143909],177.869,true,true], + ["Land_BagFence_Corner_F",[5.64087,-23.9683,-0.00143909],90.5438,true,true], + ["Land_BagFence_Short_F",[-9.64136,-22.7109,-0.00143909],268.498,true,true], + ["Land_Mil_WiredFenceD_F",[-21.8179,13.9368,-0.00143909],89.5986,true,true], + ["Land_Mil_WiredFence_F",[5.21021,25.5369,-0.00143909],179.508,true,true], + ["Land_Mil_WiredFence_F",[-21.8245,21.7146,-0.00143909],89.3037,true,true], + ["Land_Mil_WiredFence_F",[-18.2957,25.3298,-0.00143909],179.508,true,true], + ["Land_Mil_WiredFence_F",[-2.63354,25.4646,-0.00143909],179.508,true,true], + ["Land_Mil_WiredFence_F",[-10.4656,25.3845,-0.00143909],179.508,true,true], + ["Land_Mil_WiredFence_F",[-21.5764,6.02905,-0.00143909],89.3037,true,true], + ["Land_HBarrierBig_F",[-14.3523,19.9712,-0.00143909],181.375,true,true], + ["Land_HBarrierBig_F",[-1.87573,20.2095,-0.00143909],181.375,true,true], + ["Land_HBarrierBig_F",[-17.4297,6.23438,-0.00143909],271.204,true,true], + ["Land_HBarrierBig_F",[2.31177,20.2192,-0.00143909],181.375,true,true], + ["Land_HBarrierBig_F",[-17.4548,14.7544,-0.00143909],271.568,true,true], + ["Land_Mil_WiredFence_F",[5.88647,-20.7947,-0.00143909],359.2,true,true], + ["Land_Mil_WiredFence_F",[25.0657,-17.1169,-0.00143909],269.14,true,true], + ["Land_Mil_WiredFence_F",[21.5857,-20.6306,-0.00143909],0.102386,true,true], + ["Land_Mil_WiredFence_F",[24.927,-9.29077,-0.00143909],269.14,true,true], + ["Land_Mil_WiredFence_F",[13.738,-20.6443,-0.00143909],0.102386,true,true], + ["Land_Mil_WiredFence_F",[24.8528,-1.49976,-0.00143909],269.14,true,true], + ["Land_HBarrierBig_F",[20.4888,-10.4697,-0.00143909],271.956,true,true], + ["Land_HBarrierBig_F",[20.4954,-1.94287,-0.00143909],270.301,true,true], + ["Land_HBarrierBig_F",[7.03003,-13.9827,-0.00143909],0.792412,true,true], + ["Land_HBarrierBig_F",[15.5149,-13.8022,-0.00143909],359.697,true,true], + ["Land_BagFence_Short_F",[5.89844,-22.4365,-0.00143909],268.498,true,true], + ["Land_Mil_WiredFence_F",[13.0396,25.6086,-0.00143909],179.508,true,true], + ["Land_Mil_WiredFence_F",[20.884,25.658,-0.00143909],179.508,true,true], + ["Land_Mil_WiredFence_F",[24.5051,22.0549,-0.00143909],269.14,true,true], + ["Land_Mil_WiredFence_F",[24.6458,14.1819,-0.00143909],269.14,true,true], + ["Land_Mil_WiredFence_F",[24.7532,6.3479,-0.00143909],269.14,true,true], + ["Land_HBarrierBig_F",[20.4177,4.55054,-0.00143909],271.054,true,true], + ["Land_HBarrierBig_F",[10.9348,20.3228,-0.00143909],181.375,true,true], + ["Land_HBarrierBig_F",[17.1685,20.2722,-0.00143909],181.89,true,true], + ["Land_HBarrierBig_F",[20.3484,15.8003,-0.00143909],271.956,true,true], + ["Land_Research_house_V1_F",[14.592,14.5435,-0.00143909],0,true,true], + // + ["CargoNet_01_barrels_F",[-13.5122,-10.8784,-0.00144005],0.00034241,true,true], + ["CargoNet_01_barrels_F",[-13.6389,-8.33862,-0.00143957],326.531,true,true], + ["CargoNet_01_barrels_F",[9.43994,17.6221,-0.00143957],326.531,true,true], + ["B_Slingload_01_Fuel_F",[29.73,4.14917,-0.00143909],156.234,true,true] +]; + +_missionLootBoxes = [ +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["B_T_LSV_01_armed_F",[-2.67554,-31.7471,-0.0237646],87.6435], + ["B_T_LSV_01_armed_F",[-5.24243,34.4316,-0.023603],270.757] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = [ + //["B_HMG_01_high_F",[3.93994,-23.1699,-0.0135565],180.433], + //["B_HMG_01_high_F",[-7.9519,-23.1421,-0.0135584],180.433] +]; + +_missionGroups = [ + //[[-1.2981,-19.1914,0],3,6,"Red",30,45], + //[[6.48682,10.343,0],3,6,"Red",30,45] +]; + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Blue; +_maxNoAI = blck_MaxAI_Blue; +_noAIGroups = blck_AIGrps_Blue; +_noVehiclePatrols = blck_SpawnVeh_Blue; +_noEmplacedWeapons = blck_SpawnEmplaced_Blue; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Blue"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir". + // Crates spawned in the air will be spawned at mission center or the position(s) defined in the mission file and dropped under a parachute. + // This sets the default value but can be overridden by defining _spawnCrateTiming in the file defining a particular mission. +_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn"; + // Pertains only to crates spawned at mission spawn. + // This sets the default but can be overridden for specific missions by defining _loadCratesTiming + + // Examples: + // To spawn crates at mission start loaded with gear set blck_spawnCratesTiming = "atMissionSpawnGround" && blck_loadCratesTiming = "atMissionSpawn" + // To spawn crates at mission start but load gear only after the mission is completed set blck_spawnCratesTiming = "atMissionSpawnGround" && blck_loadCratesTiming = "atMissionCompletion" + // To spawn crates on the ground at mission completion set blck_spawnCratesTiming = "atMissionEndGround" // Note that a loaded crate will be spawned. + // To spawn crates in the air and drop them by chutes set blck_spawnCratesTiming = "atMissionEndAir" // Note that a loaded crate will be spawned. +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" + // Setting this in the mission file overrides the defaults + +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Blue/default2.sqf b/@GMS/addons/custom_server/Missions/Blue/default2.sqf index 9c98f51..2d664a8 100644 --- a/@GMS/addons/custom_server/Missions/Blue/default2.sqf +++ b/@GMS/addons/custom_server/Missions/Blue/default2.sqf @@ -149,6 +149,6 @@ _noPara = blck_noParaBlue; // Setting this in the mission file overrides the de //_chanceHeliPatrol = blck_chanceHeliPatrolBlue; // Setting this in the mission file overrides the defaults _noChoppers = blck_noPatrolHelisBlue; _missionHelis = blck_patrolHelisBlue; -_endCondition = "allKilledOrPlayerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +_endCondition = // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" //_timeOut = -1; #include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Blue/derbunker.sqf b/@GMS/addons/custom_server/Missions/Blue/derbunker.sqf new file mode 100644 index 0000000..5d9c184 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Blue/derbunker.sqf @@ -0,0 +1,116 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Blue Mission with template = default"; +_crateLoot = blck_BoxLoot_Blue; +_lootCounts = blck_lootCountsBlue; +_startMsg = "An enemy Bunker was sighted in a nearby sector! Check the Blue marker on your map for the location!"; +_endMsg = "The Bunker at the Blue Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"GRID"]; +_markerColor = "ColorBlue"; +_markerMissionName = "DerBunker"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Bunker_01_big_F",[-15.925,9.02295,0.760561],90.071,true,true,[["O_HMG_01_high_F",[-5.45947,-3.38574,0.109706],359.994]],[]], + ["Land_Bunker_01_tall_F",[-15.377,-8.8042,-0.00143909],90.071,true,true,[["O_HMG_01_high_F",[5.50562,-2.54395,-0.0121193],0.00145215],["O_HMG_01_high_F",[-1.72095,-0.109375,4.96893],0.00948966]],[]], + ["Land_Bunker_01_tall_F",[-15.76,28.606,-0.00143909],90.071,true,true,[["O_HMG_01_high_F",[5.47437,2.47559,-0.0121179],0.000581241],["O_HMG_01_high_F",[-1.38867,-0.0722656,4.967],359.999],["O_HMG_01_high_F",[11.8271,5.87988,-0.0121188],0.00143633]],[]], + ["Land_Bunker_01_big_F",[20.199,10.729,0.760561],270.416,true,true,[["O_HMG_01_high_F",[5.86328,3.25586,0.109697],0.0117801]],[]], + ["Land_Bunker_01_tall_F",[19.8899,-8.86914,-0.00143909],270.416,true,true,[["O_HMG_01_high_F",[-5.13818,-2.33496,-0.0121174],0.0002874],["O_HMG_01_high_F",[1.45801,0.0512695,4.96698],360]],[]], + ["Land_Bunker_01_tall_F",[19.731,28.542,-0.00143909],270.416,true,true,[["O_HMG_01_high_F",[-5.00977,2.1792,-0.0121188],0.00143735],["O_HMG_01_high_F",[1.80957,0.26709,4.96756],360],["O_HMG_01_high_F",[-12.0127,6.1333,-0.0121193],0.00145178]],[]] +]; + +_missionLandscape = [ + ["Land_Bunker_01_blocks_3_F",[-13.762,17.5518,-0.00143909],270.35,true,true], + ["Land_Bunker_01_blocks_3_F",[-0.0979004,-12.9033,-0.00143909],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[-5.18799,-12.9092,-0.00143909],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[-10.175,-12.9253,-0.502439],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[-13.814,-4.44141,-0.00143909],270.35,true,true], + ["Land_Bunker_01_blocks_3_F",[-13.7959,0.544922,-0.00143909],270.35,true,true], + ["CamoNet_INDP_big_F",[2.23804,-2.70508,-0.00143909],182.545,true,true], + ["Land_Bunker_01_blocks_3_F",[-13.7451,22.5391,-0.00143909],270.35,true,true], + ["Land_Bunker_01_blocks_3_F",[-2.51611,30.105,-0.00143909],90.192,true,true], + ["Land_Bunker_01_blocks_3_F",[-10.6179,32.6689,-0.432439],0.106,true,true], + ["Land_Bunker_01_blocks_3_F",[-5.63013,32.6719,-0.00143909],0.106,true,true], + ["Land_Bunker_01_blocks_3_F",[17.958,2.1958,-0.00143909],90.695,true,true], + ["Land_Bunker_01_blocks_3_F",[14.9771,-12.854,-0.529439],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[4.88892,-12.8853,-0.00143909],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[17.9109,-2.78906,-0.00143909],90.695,true,true], + ["Land_Bunker_01_blocks_3_F",[9.98999,-12.8711,-0.00143909],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[6.58691,30.1689,-0.00143909],269.774,true,true], + ["Land_Bunker_01_blocks_3_F",[18.095,19.2026,-0.00143909],90.695,true,true], + ["Land_Bunker_01_blocks_3_F",[18.1409,24.189,-0.00143909],90.695,true,true], + ["Land_Bunker_01_blocks_3_F",[9.54907,32.6689,-0.00143909],0.106,true,true], + ["Land_Bunker_01_blocks_3_F",[14.5359,32.6729,-0.363439],0.106,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[0.0446777,-1.31494,-0.001441],_crateLoot,_lootCounts,0.00167282] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["O_LSV_02_armed_F",[-37.46,8.55273,-0.0378561],359.999], + ["O_LSV_02_unarmed_F",[38.3699,8.21484,-0.0378113],359.999] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Blue; +_maxNoAI = blck_MaxAI_Blue; +_noAIGroups = blck_AIGrps_Blue; +_noVehiclePatrols = blck_SpawnVeh_Blue; +_noEmplacedWeapons = blck_SpawnEmplaced_Blue; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +//_chancePara = 0.75; // Setting this in the mission file overrides the defaults +//_noPara = 5; // Setting this in the mission file overrides the defaults +//_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +//_paraSkill = "Blue"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +//_chanceLoot = 0.7; +//private _lootIndex = selectRandom[1,2,3,4]; +//private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +//private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +//_paraLoot = _paralootChoices select _lootIndex; +//_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = "allKilledOrPlayerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Blue/forgotten_HQ.sqf b/@GMS/addons/custom_server/Missions/Blue/forgotten_HQ.sqf new file mode 100644 index 0000000..b1119f0 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Blue/forgotten_HQ.sqf @@ -0,0 +1,208 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Blue Mission with template = default"; +_crateLoot = blck_BoxLoot_Blue; +_lootCounts = blck_lootCountsBlue; +_startMsg = "A Forgotten HQ was sighted in a nearby sector! Check the Blue marker on your map for the location!"; +_endMsg = "The Forgotten HQ at the Blue Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[200,200],"Solid"]; +_markerColor = "ColorBlue"; +_markerMissionName = "Forgotten HQ"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_Patrol_V2_F",[-16.0361,-36.5635,-0.00143862],0,true,true,[["O_G_HMG_02_high_F",[1.07422,-1.17676,4.38749],183.214]],[]], + ["Land_Cargo_Patrol_V2_F",[1.44385,-36.4934,-0.00143862],0,true,true,[["O_G_HMG_02_high_F",[-1.49438,-1.08521,4.38749],183.771]],[]], + ["Land_Cargo_HQ_V2_F",[-20.6721,-8.55249,-0.00143862],180,true,true,[["O_G_HMG_02_high_F",[-4.84253,-3.34399,3.16997],0.00630354]],[]], + ["Land_Cargo_Tower_V2_F",[-16.9631,-26.0334,-0.00143909],180,true,true,[["O_G_HMG_02_high_F",[-4.54858,0.758057,17.9329],0.00661736],["O_G_HMG_02_high_F",[3.65967,3.33838,17.9329],0.000690221]],[]], + ["Land_Cargo_HQ_V2_F",[7.14893,2.62769,-0.00143862],270.279,true,true,[["O_G_HMG_02_high_F",[-0.843506,5.84277,3.16996],0.00567617]],[]] +]; + + +_missionLandscape = [ + ["Land_CncWall4_F",[-32.4219,-12.8027,-0.00143909],90,true,true], + ["Land_CncWall4_F",[-32.4495,-2.36279,-0.00143909],90,true,true], + ["Land_CncWall4_F",[-32.4219,-7.55273,-0.00143909],90,true,true], + ["Land_CncWall1_F",[-32.4219,-16.0527,-0.00143909],90,true,true], + ["Land_CncWall1_F",[-32.1719,-17.3027,-0.00143909],60,true,true], + ["Land_CncWall4_F",[-17.2,-37.5388,-0.00143909],0,true,true], + ["Land_CncWall4_F",[-19.45,-35.2888,-0.00143909],90,true,true], + ["Land_CncWall1_F",[-13.95,-37.2888,-0.00143909],345,true,true], + ["Land_CncWall1_F",[-0.469971,-37.123,-0.00143909],15,true,true], + ["Land_CncWall1_F",[-1.70728,-36.5938,-0.00143909],30,true,true], + ["Land_CncWall1_F",[-12.7,-36.7888,-0.00143909],330,true,true], + ["Land_Mil_WiredFence_Gate_F",[-7.18335,-36.4424,-0.00143909],0,true,true], + ["Land_LampShabby_F",[-2.78442,-36.3179,-0.00143909],267.423,true,true], + ["Land_LampShabby_F",[-11.5483,-36.9063,-0.00143909],96.8408,true,true], + ["Land_Razorwire_F",[-15.4663,-50.6616,-0.00143909],0,true,true], + ["Land_Garbage_square5_F",[-5.48242,-33.7585,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_Dam_F",[-23.4219,-33.3027,0.0484428],90,true,true], + ["Oil_Spill_F",[-0.250732,-46.9929,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_F",[-18.6699,-48.1602,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_F",[-8.92188,-48.0527,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_F",[-23.377,-43.2129,-0.00143909],90,true,true], + ["Land_CncWall4_F",[-10.9219,-12.4277,-0.00143909],270,true,true], + ["Land_CncWall4_F",[-10.9219,-7.17773,-0.00143909],270,true,true], + ["Land_CncWall4_F",[-23.9219,-17.8027,-0.00143909],0,true,true], + ["Land_CncWall4_F",[-19.0479,-28.729,-0.00143909],90,true,true], + ["Land_CncWall4_F",[-18.5469,-17.8027,-0.00143909],0,true,true], + ["Land_CncWall4_F",[-29.2969,-17.8027,-0.00143909],0,true,true], + ["Land_CncWall4_F",[-19.0479,-23.479,-0.00143909],90,true,true], + ["Land_CncWall1_F",[-12.0469,-16.5527,-0.00143909],315,true,true], + ["Land_CncWall1_F",[-13.0469,-17.1777,-0.00143909],345,true,true], + ["Land_CncWall1_F",[-11.2969,-15.5527,-0.00143909],300,true,true], + ["Land_CncWall1_F",[-18.7979,-20.229,-0.00143909],105,true,true], + ["Land_CncWall1_F",[-19.2,-32.0388,-0.00143909],105,true,true], + ["Land_CncWall1_F",[-1.87036,-6.15894,-0.00143909],76.1339,true,true], + ["Land_CncWall1_F",[-18.2979,-18.979,-0.00143909],120,true,true], + ["Land_CncWall1_F",[-0.776123,-8.00391,-0.00143909],44.3183,true,true], + ["Land_CncWall1_F",[-1.98975,-5.05225,-0.00143909],89.3183,true,true], + ["Land_CncWall1_F",[-10.9346,-1.3584,-0.00143909],254.791,true,true], + ["Land_CncWall1_F",[-1.50586,-7.08521,-0.00143909],59.3183,true,true], + ["Land_LampShabby_F",[-12.0967,-15.9277,-0.00143909],304.187,true,true], + ["Land_CncShelter_F",[-5.76489,-3.25,-0.00143909],90.2789,true,true], + ["Land_CncShelter_F",[-2.69824,-3.26221,-0.00143909],90.2789,true,true], + ["Land_CncShelter_F",[-10.3674,-3.21143,-0.00143909],90.2789,true,true], + ["Land_CncShelter_F",[-7.29834,-3.24414,-0.00143909],90.2789,true,true], + ["Land_CncShelter_F",[-8.83398,-3.21729,-0.00143909],90.2789,true,true], + ["Land_CncShelter_F",[-4.23169,-3.25635,-0.00143909],90.2789,true,true], + ["Land_CncShelter_F",[-14.8062,-17.8242,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_F",[-23.4219,-23.3027,-0.00143909],90,true,true], + ["Land_Garbage_line_F",[-6.69629,-14.0273,-0.00143909],0,true,true], + ["Land_CncWall4_F",[-2.08496,5.92285,-0.00143909],90.2789,true,true], + ["Land_CncWall4_F",[-24.9495,-0.112793,-0.00143909],180,true,true], + ["Land_CncWall4_F",[-2.11108,0.548096,-0.00143909],90.2789,true,true], + ["Land_CncWall4_F",[-19.6995,-0.112793,-0.00143909],180,true,true], + ["Land_CncWall4_F",[-2.05884,11.2979,-0.00143909],90.2789,true,true], + ["Land_CncWall4_F",[-30.1995,-0.112793,-0.00143909],180,true,true], + ["Land_CncWall4_F",[-14.4768,-0.108398,-0.00143909],180,true,true], + ["Land_CncWall1_F",[-0.293457,14.4143,-0.00143909],180.279,true,true], + ["Land_CncWall1_F",[-11.5137,-0.462158,-0.00143909],218.676,true,true], + ["Land_CncWall1_F",[-1.54468,14.1704,-0.00143909],150.279,true,true], + ["Land_CncWall4_F",[2.78003,-37.373,-0.00143909],0,true,true], + ["Land_CncWall4_F",[5.15894,-34.9495,-0.00143909],270,true,true], + ["Land_New_WiredFence_5m_F",[18.6162,-49.2598,-0.00143909],180,true,true], + ["Land_Mil_WiredFence_Gate_F",[1.02295,-48.2319,-0.00143909],0,true,true], + ["Land_Razorwire_F",[14.8767,-50.5405,-0.0014348],0,true,true], + ["Land_Garbage_square5_F",[3.02661,-41.5759,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_F",[22.4329,-43.2773,-0.00143766],90,true,true], + ["Land_New_WiredFence_10m_F",[20.8657,-33.5273,-0.00143909],270,true,true], + ["Land_New_WiredFence_10m_F",[11.0781,-47.8027,-0.00143909],0,true,true], + ["Land_CncWall4_F",[15.5647,-3.63062,-0.00143909],270.279,true,true], + ["Land_CncWall4_F",[12.5393,-8.48145,-0.00143909],0.278918,true,true], + ["Land_CncWall4_F",[2.11768,-8.40479,-0.00143909],0.278918,true,true], + ["Land_CncWall4_F",[7.28931,-8.45581,-0.00143909],0.278918,true,true], + ["Land_CncWall4_F",[5.1084,-19.2168,-0.00143909],270,true,true], + ["Land_CncWall4_F",[5.07373,-13.9578,-0.00143909],270,true,true], + ["Land_CncWall4_F",[5.14282,-29.6782,-0.00143909],270,true,true], + ["Land_CncWall4_F",[5.11499,-24.4495,-0.00143909],270,true,true], + ["Land_CncWall1_F",[15.2651,-8.03906,-0.00143909],300.801,true,true], + ["Land_CncWall1_F",[15.5632,-6.90161,-0.00143909],270.801,true,true], + ["Land_HelipadSquare_F",[14.0413,-24.9829,-0.00143909],0,true,true], + ["Land_New_WiredFence_5m_F",[18.8281,-8.80273,-0.00143909],180,true,true], + ["Land_LampShabby_F",[14.521,-6.92456,-0.00143909],315,true,true], + ["Land_CncShelter_F",[4.83472,-10.1133,-0.00143909],90.2789,true,true], + ["Land_GarbageBags_F",[2.49902,-16.0364,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_F",[20.8281,-23.5527,-0.00143909],270,true,true], + ["Land_New_WiredFence_10m_F",[20.8281,-13.5527,-0.00143909],270,true,true], + ["Land_Wreck_Heli_Attack_02_F",[13.4341,-23.897,-0.00143909],0,true,true], + ["Land_CncWall4_F",[15.6953,12.0864,-0.00143909],270.279,true,true], + ["Land_CncWall4_F",[13.4563,14.3474,-0.00143909],180.279,true,true], + ["Land_CncWall4_F",[15.6443,1.58667,-0.00143909],270.279,true,true], + ["Land_CncWall4_F",[8.2063,14.3728,-0.00143909],180.279,true,true], + ["Land_CncWall4_F",[15.6697,6.83643,-0.00143909],270.279,true,true], + ["Land_CncWall4_F",[2.9563,14.3984,-0.00143909],180.279,true,true] +]; + +_missionLootBoxes = [ +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["O_G_Offroad_01_armed_F",[-10.8826,-67.0554,0.00841188],85.3805], + ["O_G_Offroad_01_armed_F",[-7.25098,-35.3657,0.00811148],357.094] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = [ + +]; + +_missionGroups = [ + //[[-10.0691,-41.8555,0],3,6,"Red",30,45], + //[[-1.13232,-24.1541,0],3,6,"Red",30,45], + //[[-9.49146,-26.8044,0],3,6,"Red",30,45], + //[[12.8374,-37.3408,0],3,6,"Red",30,45] +]; + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Blue; +_maxNoAI = blck_MaxAI_Blue; +_noAIGroups = blck_AIGrps_Blue; +_noVehiclePatrols = blck_SpawnVeh_Blue; +_noEmplacedWeapons = blck_SpawnEmplaced_Blue; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Blue"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir". + // Crates spawned in the air will be spawned at mission center or the position(s) defined in the mission file and dropped under a parachute. + // This sets the default value but can be overridden by defining _spawnCrateTiming in the file defining a particular mission. +_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn"; + // Pertains only to crates spawned at mission spawn. + // This sets the default but can be overridden for specific missions by defining _loadCratesTiming + + // Examples: + // To spawn crates at mission start loaded with gear set blck_spawnCratesTiming = "atMissionSpawnGround" && blck_loadCratesTiming = "atMissionSpawn" + // To spawn crates at mission start but load gear only after the mission is completed set blck_spawnCratesTiming = "atMissionSpawnGround" && blck_loadCratesTiming = "atMissionCompletion" + // To spawn crates on the ground at mission completion set blck_spawnCratesTiming = "atMissionEndGround" // Note that a loaded crate will be spawned. + // To spawn crates in the air and drop them by chutes set blck_spawnCratesTiming = "atMissionEndAir" // Note that a loaded crate will be spawned. +_endCondition = "allKilledOrPlayerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" + // Setting this in the mission file overrides the defaults + +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Blue/garrison.sqf b/@GMS/addons/custom_server/Missions/Blue/garrison.sqf new file mode 100644 index 0000000..be4b26b --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Blue/garrison.sqf @@ -0,0 +1,141 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Green Mission with template = default"; +_crateLoot = blck_BoxLoot_Green; +_lootCounts = blck_lootCountsGreen; +_startMsg = "An enemy garrison was sighted in a nearby sector!"; +_endMsg = "The garrison is under survivor control!"; +_markerLabel = ""; +_markerType = ["ellipse",[225,225],"GRID"]; +_markerColor = "ColorBlue"; +_markerMissionName = "Garrison"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + + + + +_garrisonedBuildings_BuildingPosnSystem = [ + ["Land_Unfinished_Building_02_F",[-28.137,-48.6494,-0.00268841],0,true,true,0.67,3,[],4], + ["Land_i_Shop_02_V2_F",[22.688,35.2515,-0.00268841],0,true,true,0.67,3,[],4] +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Unfinished_Building_02_F",[-28.3966,34.8145,-0.00268841],0,true,true,[["B_HMG_01_high_F",[-5.76953,1.16504,7.21168],360]],[]], + ["Land_Unfinished_Building_02_F",[20.1816,-44.2554,-0.00268841],0,true,true,[],[[[4.68567,3.59082,0.257384],0],[[-5.20032,5.66797,3.96986],0]]] +]; + +_missionLandscape = [ + ["Land_i_House_Big_02_V3_F",[-64.5577,-100.259,-0.00268841],0,true,true], + ["Land_u_House_Big_01_V1_F",[-65.2944,63.9878,-0.00268841],0,true,true], + ["Sign_Sphere100cm_F",[-25.4528,-44.6294,0.614402],0,true,true], + ["Sign_Arrow_Direction_Green_F",[24.8673,-40.6646,0.254696],0,true,true], + ["Sign_Arrow_Direction_Green_F",[14.9813,-38.5874,3.96717],0,true,true], + ["Sign_Arrow_F",[10.937,-14.8413,1.03384],0,true,true], + ["Sign_Sphere100cm_F",[18.4126,35.3154,0.499284],0,true,true], + ["Land_i_House_Big_02_V1_F",[53.7161,-101.875,-0.00268841],0,true,true], + ["Land_i_House_Big_02_V2_F",[52.6943,66.0278,-0.00268841],0,true,true] +]; + +_missionLootBoxes = [ + ["Box_IND_AmmoOrd_F",[-25.7473,-46.3496,3.72631],_crateLoot,_lootCounts,359.995], + ["Box_NATO_Ammo_F",[-31.2815,14.4961,-0.00268984],_crateLoot,_lootCounts,359.995], + ["Box_AAF_Equip_F",[-2.56213,-16.4194,-0.00268888],_crateLoot,_lootCounts,359.999], + ["Box_IND_AmmoOrd_F",[3.29309,-24.7749,-0.00268984],_crateLoot,_lootCounts,359.995], + ["Box_NATO_Wps_F",[18.3497,-0.543945,-0.00268888],_crateLoot,_lootCounts,360] +]; + +_missionLootVehicles = [ + ["B_G_Van_01_transport_F",[10.937,-14.8413,1.03384],_crateLoot,_lootCounts,0] +]; + +_missionPatrolVehicles = [ + ["B_LSV_01_armed_F",[-1.72729,-70.439,-0.0251398],0.00168032], + ["B_MRAP_01_gmg_F",[-3.96387,50.4224,-0.0167227],0.000187991] + //["B_G_Van_01_transport_F",[11.2661,-13.9561,0.0110526],359.998] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ + ["B_Heli_Light_01_dynamicLoadout_F",[-52.1934,-2.21631,0.00351906],0.0012961] +]; + +_missionEmplacedWeapons = [ + ["B_HMG_01_high_F",[-34.1661,35.9795,7.20899],360], + ["B_GMG_01_high_F",[43.4441,-24.4961,-0.0144982],360] +]; + +_missionGroups = [ + [[-31.2625,5.21875,-0.00124931],3,6,"Red",30,45], + [[-46.3765,18.731,-0.00124931],3,6,"Red",30,45], + [[-21.8778,18.8506,-0.00124931],3,6,"Red",30,45], + [[-3.32458,-42.5176,-0.00124931],3,6,"Red",30,45], + [[-2.06714,36.3027,-0.00124931],3,6,"Red",30,45], + [[29.3705,-18.0239,-0.00124931],3,6,"Red",30,45] +]; + +_scubaGroupParameters = [ +]; +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Green; +_maxNoAI = blck_MaxAI_Green; +_noAIGroups = blck_AIGrps_Green; +_noVehiclePatrols = blck_SpawnVeh_Green; +_noEmplacedWeapons = blck_SpawnEmplaced_Green; +_minNoAI = blck_MinAI_Blue; // Setting this in the mission file overrides the defaults such as blck_MinAI_Blue +_maxNoAI = blck_MaxAI_Blue; // Setting this in the mission file overrides the defaults +_noAIGroups = blck_AIGrps_Blue; // Setting this in the mission file overrides the defaults +_noVehiclePatrols = blck_SpawnVeh_Blue; // Setting this in the mission file overrides the defaults +_noEmplacedWeapons = blck_SpawnEmplaced_Blue; // Setting this in the mission file overrides the defaults +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; // Setting this in the mission file overrides the defaults +_uniforms = blck_SkinList; // Setting this in the mission file overrides the defaults +_headgear = blck_headgear; // Setting this in the mission file overrides the defaults +_vests = blck_vests; +_backpacks = blck_backpacks; +_weaponList = ["blue"] call blck_fnc_selectAILoadout; +_sideArms = blck_Pistols; +_chanceHeliPatrol = blck_chanceHeliPatrolBlue; // Setting this in the mission file overrides the defaults +_noChoppers = blck_noPatrolHelisBlue; +_missionHelis = blck_patrolHelisBlue; + +_chancePara = blck_chanceParaBlue; // Setting this in the mission file overrides the defaults +_noPara = blck_noParaBlue; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. +_chanceLoot = 0.0; +_paraLoot = blck_BoxLoot_Blue; +_paraLootCounts = blck_lootCountsRed; // Throw in something more exotic than found at a normal blue mission. + +_spawnCratesTiming = blck_spawnCratesTiming; // Choices: "atMissionSpawnGround","atMissionEndGround","atMissionEndAir". + // Crates spawned in the air will be spawned at mission center or the position(s) defined in the mission file and dropped under a parachute. + // This sets the default value but can be overridden by defining _spawnCrateTiming in the file defining a particular mission. +_loadCratesTiming = blck_loadCratesTiming; // valid choices are "atMissionCompletion" and "atMissionSpawn"; + // Pertains only to crates spawned at mission spawn. + // This sets the default but can be overridden for specific missions by defining _loadCratesTiming + + // Examples: + // To spawn crates at mission start loaded with gear set blck_spawnCratesTiming = "atMissionSpawnGround" && blck_loadCratesTiming = "atMissionSpawn" + // To spawn crates at mission start but load gear only after the mission is completed set blck_spawnCratesTiming = "atMissionSpawnGround" && blck_loadCratesTiming = "atMissionCompletion" + // To spawn crates on the ground at mission completion set blck_spawnCratesTiming = "atMissionEndGround" // Note that a loaded crate will be spawned. + // To spawn crates in the air and drop them by chutes set blck_spawnCratesTiming = "atMissionEndAir" // Note that a loaded crate will be spawned. +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" + // Setting this in the mission file overrides the defaults +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Blue/inhaftierung.sqf b/@GMS/addons/custom_server/Missions/Blue/inhaftierung.sqf new file mode 100644 index 0000000..7727a48 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Blue/inhaftierung.sqf @@ -0,0 +1,166 @@ +/* + Mission Template by Ghostrider [GRG] + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Blue Mission with template = default2"; + +_crateLoot = blck_BoxLoot_Blue; +_lootCounts = blck_lootCountsBlue; +_startMsg = "A local Mafia Don has been spotted! Capture him and earn a reward!"; +_endMsg = "The Maria Don was captured and the area is under survivor control!"; +_assetKilledMsg = "Enemy Leader Killed and Bandits Fled with All Loot: Mission Aborted"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorBlue"; +_markerMissionName = "inhaftierung"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" +_missionLandscape = [ + //["babe_helper",[-3327.46,-2809.42,-0.00143909],0,true,true], + //["Sign_Arrow_Green_F",[-3324.96,-2809.92,-0.00143909],0,true,true], + //["Sign_Arrow_F",[-3324.96,-2809.92,-0.00143909],0,true,true], + //["Sign_Arrow_Yellow_F",[-3324.96,-2809.92,-0.00143909],0,true,true], + ["Land_HBarrier_Big_F",[-2.76221,-30.3596,-0.00143909],0,true,true], + ["Land_HBarrier_1_F",[-9.74463,-27.0081,-0.00143909],180,true,true], + ["Land_BagFence_Long_F",[-9.74268,-29.0042,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-8.36182,-30.3743,-0.00143909],180,true,true], + ["CamoNet_OPFOR_open_F",[-0.361816,-1.01782,-0.00143909],180,true,true], + ["Land_HBarrier_3_F",[-15.3853,-13.9866,-0.00143909],315,true,true], + ["Land_HBarrier_Big_F",[-3.61768,-5.26782,-0.00143909],180,true,true], + ["Land_HBarrier_Big_F",[-5.46533,3.40405,-0.00143909],0,true,true], + ["Land_HBarrier_Big_F",[-18.5767,-14.5354,-0.00143909],45,true,true], + ["Land_HBarrier_Big_F",[-12.4985,-20.3987,-0.00143909],45,true,true], + ["Land_HBarrier_1_F",[-22.9692,-2.77563,-0.00143909],270,true,true], + ["Land_HBarrier_1_F",[-23.3423,0.478271,-0.00143909],15,true,true], + ["Land_BagFence_Long_F",[-24.5767,-9.90649,-0.00143909],315,true,true], + ["Land_BagFence_Long_F",[-22.8071,-8.13794,-0.00143909],315,true,true], + ["Land_BagFence_Long_F",[-18.7427,-12.3811,-0.00143909],315,true,true], + ["Land_BagFence_Long_F",[-23.2368,2.26245,-0.00143909],90,true,true], + ["Land_BagFence_Long_F",[-21.8657,6.25952,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[-22.3657,-13.8772,-0.00143909],135,true,true], + ["Land_BagFence_Long_F",[-9.74268,-25.1174,-0.00143909],90,true,true], + ["Land_BagFence_Long_F",[-18.5649,-8.3147,-0.00143909],45,true,true], + ["Land_BagFence_Long_F",[-23.2368,4.88843,-0.00143909],90,true,true], + ["Land_BagFence_Long_F",[-25.2192,0.111084,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[-25.2192,-2.76587,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[-26.5884,-1.39282,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-24.3989,-13.9709,-0.00143909],225,true,true], + ["Land_BagFence_Round_F",[-17.5747,-10.4006,-0.00143909],270,true,true], + ["Land_BagFence_Round_F",[-25.5493,-11.9026,-0.00143909],90,true,true], + ["Land_BagFence_Round_F",[-20.7212,-7.07642,-0.00143909],180,true,true], + ["Land_BagFence_End_F",[-9.7583,-23.3167,-0.00143909],270,true,true], + ["Land_Cargo_Patrol_V3_F",[-10.9263,-16.053,-0.00143862],45,true,true], + ["Land_Cargo_House_V3_F",[-3.09424,-20.7424,-0.00143909],180,true,true], + ["CamoNet_OPFOR_open_F",[-0.225098,8.17163,-0.00143909],0,true,true], + ["Land_HBarrier_3_F",[-1.85596,17.1208,-0.00143909],180,true,true], + ["Land_HBarrier_3_F",[-2.70752,19.4275,-0.00143909],90,true,true], + ["Land_HBarrier_Big_F",[-19.6177,9.36694,-0.00143909],270,true,true], + ["Land_HBarrier_Big_F",[-19.6646,17.5466,-0.00143909],90,true,true], + ["Land_HBarrier_1_F",[-4.93994,9.58374,-0.00143909],270,true,true], + ["Land_HBarrier_1_F",[-16.4673,27.1775,-0.00143909],285,true,true], + ["Land_HBarrier_1_F",[-2.68408,25.3513,-0.00143909],120,true,true], + ["Land_BagFence_Long_F",[-2.30908,23.7244,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-19.7173,23.0505,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-19.7153,25.9265,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-18.3462,27.4314,-0.00143909],0,true,true], + ["Land_Cargo_Patrol_V3_F",[-15.4087,10.7146,-0.00143862],90,true,true], + ["Land_HBarrier_5_F",[-15.7407,14.7517,-0.00143909],0,true,true], + ["Land_HBarrier_5_F",[-6.33838,7.41382,-0.00143909],270,true,true], + ["Land_HBarrier_Big_F",[4.87646,-28.4124,-0.00143909],330,true,true], + ["Land_HBarrier_3_F",[10.5171,0.540771,-0.00143909],0,true,true], + ["Land_HBarrier_3_F",[11.3687,-7.17212,-0.00143909],270,true,true], + ["Land_HBarrier_Big_F",[23.0171,-13.6155,-0.00143909],285,true,true], + ["Land_HBarrier_Big_F",[3.04834,3.62964,-0.00143909],1.36604e-005,true,true], + ["Land_HBarrier_Big_F",[11.8745,-23.9084,-0.00143909],330,true,true], + ["Land_HBarrier_Big_F",[7.90967,0.343506,-0.00143909],90,true,true], + ["Land_HBarrier_Big_F",[24.978,-5.36938,-0.00143909],285,true,true], + ["Land_HBarrier_Big_F",[11.2808,-4.62427,-0.00143909],180,true,true], + ["Land_HBarrier_Big_F",[25.9077,2.68921,-0.00143909],270,true,true], + ["Land_HBarrier_1_F",[4.35498,-2.41431,-0.00143909],90,true,true], + ["Land_HBarrier_1_F",[21.0073,-21.7493,-0.00143909],30,true,true], + ["Land_BagFence_Long_F",[19.1304,-21.6174,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[16.5073,-21.6174,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[7.89795,6.07788,-0.00143909],270,true,true], + ["Land_Loudspeakers_F",[21.2026,-15.3088,-0.00143909],196,true,true], + ["Land_HBarrier_5_F",[17.7847,6.20483,-0.00143909],270,true,true], + ["Land_HBarrier_5_F",[11.3823,-11.5022,-0.00143909],270,true,true], + ["Land_HBarrier_5_F",[5.75146,-0.244385,-0.00143909],90,true,true], + ["Land_Cargo_House_V3_F",[5.49561,-9.99927,-0.00143909],90,true,true], + ["Land_Cargo_House_V3_F",[5.03076,-17.6174,-0.00143909],150,true,true], + ["CamoNet_OPFOR_open_F",[22.6538,9.88257,-0.00143909],270,true,true], + ["Land_HBarrier_3_F",[18.7593,9.75757,-0.00143909],0,true,true], + ["Land_HBarrier_Big_F",[9.20264,21.2849,-0.00143909],180,true,true], + ["Land_HBarrier_Big_F",[15.9546,18.7849,-0.00143909],225,true,true], + ["Land_HBarrier_Big_F",[22.4077,16.1892,-0.00143909],0,true,true], + ["Land_HBarrier_Big_F",[0.70459,21.283,-0.00143909],180,true,true], + ["Land_HBarrier_Big_F",[25.7827,11.0642,-0.00143909],90,true,true], + ["Land_BagFence_Long_F",[4.57764,19.0466,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[4.57764,16.1716,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[11.3843,19.2634,-0.00143909],90,true,true], + ["Land_BagFence_End_F",[4.57764,14.4216,-0.00143909],90,true,true], + ["Land_BagFence_End_F",[7.68896,7.77515,-0.00143909],240,true,true], + ["Land_BagFence_End_F",[11.3843,17.5134,-0.00143909],90,true,true] + ]; // list of objects to spawn as landscape; // list of objects to spawn as landscape + +_buildings = [ + //"Land_Cargo_HQ_V4_F", + //"Land_Cargo_HQ_V1_F", + //"Land_Cargo_HQ_V2_F", + //"Land_Cargo_HQ_V3_F", + //"Land_Cargo_Tower_V1_F", + //"Land_Cargo_Tower_V2_F", + //"Land_Cargo_Tower_V3_F", + "Land_Cargo_Patrol_V3_F", + "Land_Cargo_House_V3_F" +]; +_enemyLeaderConfig = + ["I_G_resistanceLeader_F", // select 0 + [-7.83789,13.1465,-0.00143886], // select 1 + 126.345, // select 2 + [true,false], // select 3 + ["Acts_B_briefings"], // Use the animation viewer to see other choices: http://killzonekid.com/arma-3-animation-viewer-jumping-animation/ + ["H_Beret_Colonel"], // array of headgear choices + ["U_OrestesBody"], // array of uniform choices + [selectRandom _buildings,[-3.79102,2.56055,0],0,[true,false]] + ]; +_enemyLeaderConfig set[ + 1, selectRandom [[-7.83789,13.1465,-0.00143886]] + ]; + // This allows us to place the antagonist to be arrested in one of several random locations. +_missionLootBoxes = [ + + ]; // Parameters are "Box Item Code", array defining the loot to be spawned, and position. + + // blck_lootCountsBlue= [4,12,3,6,6,1]; +_missionPatrolVehicles = [ + ["B_LSV_01_armed_F",[-41.377,-5.40894,-0.0238895],0.00171121], + ["B_LSV_01_armed_F",[39.5627,-5.26709,-0.0237107],0.00169144] + ]; // Parameters are "vehiclel type", offset relative to mission center, loot array, items to load from each category of the loot array. + + +_missionEmplacedWeapons = []; + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Blue; +_maxNoAI = blck_MaxAI_Blue; +_noAIGroups = blck_AIGrps_Blue; +_noVehiclePatrols = blck_SpawnVeh_Blue; +_noEmplacedWeapons = blck_SpawnEmplaced_Blue; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; +_chanceReinforcements = blck_chanceParaBlue; +_noPara = blck_noParaBlue; +_chanceHeliPatrol = 0; +_spawnCratesTiming = "atMissionEndAir"; +_endCondition = "assetSecured"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear", "assetSecured" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Blue/resupplyCamp.sqf b/@GMS/addons/custom_server/Missions/Blue/resupplyCamp.sqf index 1619e03..8364b6c 100644 --- a/@GMS/addons/custom_server/Missions/Blue/resupplyCamp.sqf +++ b/@GMS/addons/custom_server/Missions/Blue/resupplyCamp.sqf @@ -74,7 +74,7 @@ _noEmplacedWeapons = blck_SpawnEmplaced_Blue; // To spawn crates at mission start but load gear only after the mission is completed set blck_spawnCratesTiming = "atMissionSpawnGround" && blck_loadCratesTiming = "atMissionCompletion" // To spawn crates on the ground at mission completion set blck_spawnCratesTiming = "atMissionEndGround" // Note that a loaded crate will be spawned. // To spawn crates in the air and drop them by chutes set blck_spawnCratesTiming = "atMissionEndAir" // Note that a loaded crate will be spawned. -//_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" // Setting this in the mission file overrides the defaults //_timeOut = -1; diff --git a/@GMS/addons/custom_server/Missions/GMS_missionLists.sqf b/@GMS/addons/custom_server/Missions/GMS_missionLists.sqf index e90786b..c662f85 100644 --- a/@GMS/addons/custom_server/Missions/GMS_missionLists.sqf +++ b/@GMS/addons/custom_server/Missions/GMS_missionLists.sqf @@ -12,15 +12,93 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; - +private ["_missionListBlue","_missionListRed","_missionListGreen","_missionListOrange"]; private _pathBlue = "Blue"; -private _missionListBlue = ["default","hostage1","captive1","medicalCamp","redCamp","resupplyCamp"]; +if (blck_debugOn) then +{ + _missionListBlue = ["Toxin"]; +} else { + _missionListBlue = [ + "default", + "hostage1", + "captive1", + "medicalCamp", + "redCamp", + "resupplyCamp", + "derbunker", // OK + "forgotten_HQ", // OK + "IDAP", // OK + "Service_point", // OK + "Toxin" // OK + ]; +}; private _pathRed = "Red"; -private _missionListRed = ["default","redCamp","medicalCamp","resupplyCamp"]; +if (blck_debugOn) then { +_missionListRed = ["tko_camp"]; +} else { + _missionListRed = [ + "default", + "redCamp", + "medicalCamp", + "resupplyCamp", + "carThieves", + "Ammunition_depot", // OK + "Camp_Moreell", // OK + "dashq", // OK + "derbunker", // OK + "factory", // OK + "lager", // OK + "Operations_Command", // OK + "Outpost", // OK + "tko_camp" // OK + ]; +}; + private _pathGreen = "Green"; -private _missionListGreen = ["default","medicalCamp","redCamp","resupplyCamp"]; +if (blck_debugOn) then +{ + _missionListGreen = ["Operations_Command"]; +} else { + _missionListGreen = [ + "default", + "medicalCamp", + "redCamp", + "resupplyCamp", + "Camp_Moreell", // OK + "charlston", // OK + "dashq", // OK + "derbunker", // OK + "factory", // OK + "fortification", // OK + "lager", // OK + "munitionsResearch", // OK + "Operations_Command", // OK + "tko_camp" // OK + ]; +}; private _pathOrange = "Orange"; -private _missionListOrange = ["default","medicalCamp","redCamp","resupplyCamp"]; +if (blck_debugOn) then +{ + _missionListOrange = ["dashq"]; +} else { + _missionListOrange = [ + "default", + "medicalCamp", + "redCamp", + "resupplyCamp", + "Ammunition_depot", // OK + "Camp_Moreell", // OK + "dashq", // OK + "derbunker", // OK + "lager", // OK + "Operations_Command", + "Outpost", // OK + "tko_camp" // OK + ]; +}; + +private _pathUMS = "UMS\dynamicMissions"; +private _missionListUMS = ["default"]; diff --git a/@GMS/addons/custom_server/Missions/Green/Camp_Moreell.sqf b/@GMS/addons/custom_server/Missions/Green/Camp_Moreell.sqf new file mode 100644 index 0000000..9d00850 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Green/Camp_Moreell.sqf @@ -0,0 +1,157 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Green Mission with template = default"; +_crateLoot = blck_BoxLoot_Green; +_lootCounts = blck_lootCountsGreen; +_startMsg = "Enemy Camp Moreell was built in a nearby sector! Check the Green marker on your map for the location!"; +_endMsg = "The Camp Moreell at the Green Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[200,200],"Solid"]; +_markerColor = "ColorGreen"; +_markerMissionName = "Camp Moreell"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_Patrol_V3_F",[-3.45557,32.6038,-0.00143814],163.034,true,true,[["O_HMG_01_high_F",[-1.75244,0.382568,4.33092],0.00157772]],[]], + ["Land_Cargo_HQ_V3_F",[1.5835,1.53711,-0.00143814],90.021,true,true,[["O_HMG_01_high_F",[-4.53003,1.89331,3.1134],270.551],["O_Mortar_01_F",[0.884277,-5.92041,3.1624],178.341],["O_GMG_01_high_F",[-11.2842,-8.48218,-0.0118098],221.694],["O_HMG_01_high_F",[-12.6897,-6.82007,-0.0121179],236.126],["O_GMG_01_high_F",[10.885,-11.4487,-0.0118084],147.658],["O_GMG_01_high_F",[19.3098,-6.53003,-0.0118093],147.655]],[]], + ["Land_Cargo_Patrol_V3_F",[10.9478,34.4741,-0.00143814],195.395,true,true,[["O_HMG_01_high_F",[1.41943,0.690674,4.33092],359.999]],[]] +]; + + + +_missionLandscape = [ + ["Land_HBarrier_Big_F",[-14.1831,0.348877,-0.00143862],54.7855,true,true], + ["Land_HBarrier_1_F",[-7.70728,-8.24048,-0.00143862],295.873,true,true], + ["Land_BagFence_Long_F",[-11.6091,-6.83057,-0.00143862],45.3947,true,true], + ["Land_BagFence_Round_F",[-12.8318,-4.68042,-0.00143862],90.3947,true,true], + ["Land_BagFence_Round_F",[-9.44946,-8.13599,-0.00143862],0.394724,true,true], + ["Land_Cargo_House_V3_F",[-11.8579,27.8225,-0.00143862],341.505,true,true], + ["CamoNet_OPFOR_open_F",[-14.8772,18.198,-0.00143862],90.3947,true,true], + ["Land_HBarrier_Big_F",[-24.5461,25.9207,-0.00143862],195.395,true,true], + ["Land_HBarrier_Big_F",[-7.8335,30.6655,-0.00143862],255.395,true,true], + ["Land_HBarrier_Big_F",[-24.0242,10.8638,-0.00143862],165.395,true,true], + ["Land_HBarrier_Big_F",[-18.0986,7.95679,-0.00143862],255.395,true,true], + ["Land_HBarrier_Big_F",[-19.7212,22.9065,-0.00143862],90.3947,true,true], + ["Land_HBarrier_Big_F",[-31.6633,25.0271,-0.00143862],150.395,true,true], + ["Land_HBarrier_Big_F",[-12.3518,34.6216,-0.00143862],345.395,true,true], + ["Land_HBarrier_Big_F",[-17.9399,30.3276,-0.00143862],300.395,true,true], + ["Land_HBarrier_Big_F",[-19.3733,16.4546,-0.00143862],90.3947,true,true], + ["Land_HBarrier_1_F",[-32.8965,12.5454,-0.00143862],42.5069,true,true], + ["Land_HBarrier_1_F",[-30.3511,10.0146,-0.00143862],42.5069,true,true], + ["CamoNet_OPFOR_big_F",[-27.2468,18.4834,-0.00143862],75.3947,true,true], + ["Land_BagFence_Round_F",[-33.3694,10.7087,-0.00143862],87.5069,true,true], + ["Land_BagFence_Round_F",[-31.8938,9.28491,-0.00143862],357.507,true,true], + ["Land_HBarrier_5_F",[9.15552,-4.91626,-0.00143862],269.593,true,true], + ["Land_HBarrier_5_F",[9.13477,0.585938,-0.00143862],269.593,true,true], + ["Land_Cargo_House_V3_F",[25.2329,2.59155,-0.00143862],105.395,true,true], + ["Land_HBarrier_Big_F",[-2.57373,-8.99463,-0.00143862],180.395,true,true], + ["Land_HBarrier_Big_F",[26.4961,-2.62256,-0.00143862],195.395,true,true], + ["Land_HBarrier_Big_F",[5.79712,-8.80371,-0.00143862],180.395,true,true], + ["Land_HBarrier_1_F",[14.0208,-8.50757,-0.00143862],334.157,true,true], + ["Land_HBarrier_1_F",[22.1511,-3.42603,-0.00143862],324.626,true,true], + ["Land_HBarrier_1_F",[19.1423,-5.3833,-0.00143862],324.626,true,true], + ["Land_HBarrier_1_F",[10.7295,-9.9397,-0.00143862],334.157,true,true], + ["Land_BagFence_Round_F",[22.5408,-5.08765,-0.00143862],279.626,true,true], + ["Land_BagFence_Round_F",[20.8389,-6.23145,-0.00143862],9.62595,true,true], + ["Land_BagFence_Round_F",[14.1299,-10.2107,-0.00143862],289.157,true,true], + ["Land_BagFence_Round_F",[12.262,-11.0569,-0.00143862],19.157,true,true], + ["Land_HBarrier_5_F",[7.05835,9.52783,-0.00143862],181.048,true,true], + ["Land_HBarrier_5_F",[26.3564,29.2161,-0.00143862],195.395,true,true], + ["Land_HBarrier_5_F",[9.08203,5.92139,-0.00143862],269.593,true,true], + ["Land_HBarrier_Big_F",[18.55,34.8018,-0.00143862],195.395,true,true], + ["Land_HBarrier_Big_F",[1.32568,35.1333,-0.00143862],255.395,true,true], + ["Land_HBarrier_Big_F",[7.22388,36.5254,-0.00143862],285.395,true,true], + ["Land_HBarrier_Big_F",[-4.35571,36.8228,-0.00143862],345.395,true,true], + ["Land_HBarrier_Big_F",[7.04761,30.9424,-0.00143862],195.395,true,true], + ["Land_BagFence_Long_F",[24.1768,15.7207,-0.00143862],105.395,true,true], + ["Land_BagFence_Long_F",[22.7461,10.5283,-0.00143862],285.395,true,true], + ["Land_HBarrier_3_F",[25.4558,17.1135,-0.00143862],195.395,true,true], + ["Land_HBarrier_3_F",[22.7898,29.1609,-0.00143862],285.395,true,true], + ["Land_HBarrier_3_F",[23.3201,8.88696,-0.00143862],195.395,true,true], + ["Land_HBarrier_Big_F",[12.9075,38.3318,-0.00143862],195.395,true,true], + ["Land_HBarrier_Big_F",[30.9158,1.41919,-0.00143862],105.395,true,true], + ["Land_HBarrier_5_F",[29.5054,24.8923,-0.00143862],269.593,true,true], + ["Land_HBarrier_5_F",[29.5303,19.5947,-0.00143862],269.593,true,true], + ["CamoNet_OPFOR_open_F",[28.1597,12.0786,-0.00143862],195.395,true,true], + ["Land_HBarrier_Big_F",[31.4031,16.592,-0.00143862],0.394724,true,true], + ["Land_HBarrier_Big_F",[28.876,7.35913,-0.00143862],195.395,true,true], + ["Land_HBarrier_1_F",[33.3733,10.5449,-0.00143862],15.3947,true,true], + ["Land_HBarrier_1_F",[27.9988,12.1958,-0.00143862],195.395,true,true], + ["Land_BagFence_Long_F",[32.6428,9.11694,-0.00143862],285.395,true,true], + ["Land_BagFence_Long_F",[28.4683,13.8879,-0.00143862],105.395,true,true], + ["Land_HBarrier_3_F",[29.9619,29.1274,-0.00143862],105.395,true,true], + ["Land_HBarrier_3_F",[34.8462,14.4836,-0.00143862],90.3947,true,true], + ["Land_BagBunker_Large_F",[27.696,35.6018,-0.00143862],195.395,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[9.8,9.8,0],_crateLoot,_lootCounts,0.000320471] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["O_LSV_02_armed_F",[34.9805,-28.0225,-0.0376697],359.999] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = [ + +]; + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Green; +_maxNoAI = blck_MaxAI_Green; +_noAIGroups = blck_AIGrps_Green; +_noVehiclePatrols = blck_SpawnVeh_Green; +_noEmplacedWeapons = blck_SpawnEmplaced_Green; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +//_chancePara = 0.75; // Setting this in the mission file overrides the defaults +//_noPara = 5; // Setting this in the mission file overrides the defaults +//_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +//_paraSkill = "Green"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +//_chanceLoot = 0.7; +//private _lootIndex = selectRandom[1,2,3,4]; +//private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +//private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +//_paraLoot = _paralootChoices select _lootIndex; +//_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Green/Operations_Command.sqf b/@GMS/addons/custom_server/Missions/Green/Operations_Command.sqf new file mode 100644 index 0000000..d65adb8 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Green/Operations_Command.sqf @@ -0,0 +1,185 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Green Mission with template = default"; +_crateLoot = blck_BoxLoot_Green; +_lootCounts = blck_lootCountsGreen; +_startMsg = "An Operations Command was sighted in a nearby sector! Check the Green marker on your map for the location!"; +_endMsg = "The Operations Command at the Green Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorGreen"; +_markerMissionName = "Operations Command"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_Patrol_V3_F",[-26.1375,13.395,-0.00143862],104.247,true,true,[["O_HMG_01_high_F",[-1.16919,-1.02051,4.33092],359.999]],[]], + ["Land_Cargo_Tower_V3_F",[0.0512695,-43.2329,-0.00143909],1.37485,true,true,[["O_HMG_01_high_F",[-11.6333,3.14819,-0.0121188],360],["O_Mortar_01_F",[-3.08325,4.21802,17.9254],0.000187431],["O_GMG_01_high_F",[-3.21069,-3.16113,17.8767],360],["O_GMG_01_high_F",[4.70557,-0.741943,17.8767],360]],[]], + ["Land_Cargo_Patrol_V3_F",[-22.3018,-36.6943,-0.00143862],16.3749,true,true,[["O_HMG_01_high_F",[-1.44019,-0.544922,4.33092],0.000570454],["O_HMG_01_high_F",[-6.95337,5.57886,-0.0121193],359.998]],[]], + ["Land_Cargo_HQ_V3_F",[0.157227,3.02832,-0.00143862],91.3748,true,true,[["O_Mortar_01_F",[1.9917,1.24707,3.16241],359.999],["O_HMG_01_high_F",[-4.22266,1.80176,3.1134],359.999],["O_HMG_01_high_F",[3.10205,-5.8584,3.1134],359.999],["O_HMG_01_high_F",[-6.48584,7.63452,-0.0121193],359.998],["O_HMG_01_high_F",[9.13306,15.3284,-0.0121193],359.998]],[]], + ["Land_Cargo_Tower_V3_F",[-16.1003,25.6072,-0.00143909],181.375,true,true,[["O_HMG_01_high_F",[3.25903,3.35229,17.8764],359.997],["O_GMG_01_high_F",[-4.9707,0.915771,17.8767],359.995]],[]], + ["Land_Cargo_Patrol_V3_F",[21.9438,-2.25854,-0.00143862],269.918,true,true,[["O_GMG_01_high_F",[1.11499,0.921387,4.33123],360]],[]], + ["Land_Cargo_House_V3_F",[7.7749,-26.0698,-0.00143909],1.37485,true,true,[["O_HMG_01_high_F",[2.2688,8.65552,-0.0121188],360]],[]] +]; + + + +_missionLandscape = [ + ["CamoNet_OPFOR_open_F",[-31.8352,-29.0081,-0.00143909],235.13,true,true], + ["CamoNet_OPFOR_open_F",[-43.8352,-16.6941,-0.00143909],181.375,true,true], + ["Land_HBarrier_Big_F",[-37.4087,-8.59814,-0.00143909],286.375,true,true], + ["Land_HBarrier_Big_F",[-29.3643,-37.0271,-0.00143909],37.1575,true,true], + ["Land_HBarrier_Big_F",[-35.4788,-31.5889,-0.00143909],50.6964,true,true], + ["Land_HBarrier_Big_F",[-38.9624,-25.2727,-0.00143909],255.154,true,true], + ["Land_BagBunker_Large_F",[-43.364,-16.4709,-0.00143909],91.3748,true,true], + ["Land_HBarrier_Big_F",[-34.405,-1.28906,-0.00143909],301.375,true,true], + ["Land_HBarrier_Big_F",[-29.0862,14.3416,-0.00143909],286.375,true,true], + ["Land_HBarrier_Big_F",[-31.1816,6.38184,-0.00143909],286.375,true,true], + ["Land_LampHalogen_F",[-29.8584,2.74854,-0.00143862],256.375,true,true], + ["Land_HBarrierWall_corridor_F",[-16.1533,-40.845,-0.00143909],106.375,true,true], + ["Land_HBarrier_Big_F",[-10.9395,-43.5535,-0.00143909],13.6286,true,true], + ["Land_HBarrier_Big_F",[-3.8855,-44.2878,-0.00143909],0.866833,true,true], + ["Land_HBarrier_Big_F",[-22.3318,-40.6543,-0.00143909],200.888,true,true], + ["Land_HBarrier_Big_F",[4.41016,-44.2852,-0.00143909],0.866833,true,true], + ["Land_HBarrier_5_F",[2.9043,-17.4326,-0.00143909],271.375,true,true], + ["Land_HBarrier_5_F",[-5.53174,-9.47681,-0.00143909],181.375,true,true], + ["Land_Cargo_House_V3_F",[-1.97241,-25.8367,-0.00143909],1.37485,true,true], + ["Land_HBarrier_Big_F",[-9.21558,-15.051,-0.00143909],271.375,true,true], + ["Land_HBarrier_Big_F",[-5.97168,-20.2385,-0.00143909],181.375,true,true], + ["Land_HBarrier_Big_F",[2.51318,-20.2158,-0.00143909],181.375,true,true], + ["Land_HBarrier_3_F",[2.83398,-22.9663,-0.00143909],91.3748,true,true], + ["Land_HBarrier_3_F",[2.75586,-26.2246,-0.00143909],91.3748,true,true], + ["Land_HBarrier_3_F",[2.94287,-10.5574,-0.00143909],271.375,true,true], + ["Land_HBarrier_3_F",[0.964355,-9.63477,-0.00143909],1.37485,true,true], + ["Land_HBarrier_3_F",[-6.09448,-25.2507,-0.00143909],271.375,true,true], + ["Land_HBarrier_3_F",[1.72021,-27.6951,-0.00143909],1.37485,true,true], + ["Land_HBarrier_3_F",[-6.02515,-22.2542,-0.00143909],271.375,true,true], + ["Land_HBarrier_3_F",[4.84912,-27.7708,-0.00143909],1.37485,true,true], + ["Land_HBarrier_3_F",[-5.15039,-27.5239,-0.00143909],1.37485,true,true], + ["Land_HelipadCircle_F",[-22.2104,-10.7046,-0.00143909],90.8075,true,true], + ["Land_TTowerBig_2_F",[-3.03882,-15.5251,-0.00143909],1.37485,true,true], + ["Land_HBarrier_5_F",[-24.4253,17.3018,-0.00143909],194.949,true,true], + ["Land_HBarrier_5_F",[-12.988,7.96045,-0.00143909],181.375,true,true], + ["Land_HBarrier_5_F",[-26.457,9.23633,-0.00143909],16.5662,true,true], + ["Land_Cargo_House_V3_F",[-15.2529,3.47607,-0.00143909],91.3748,true,true], + ["Land_HBarrier_Big_F",[-5.96069,14.4766,-0.00143909],1.375,true,true], + ["Land_HBarrier_Big_F",[2.22437,14.509,-0.00143909],1.375,true,true], + ["Land_HBarrier_Big_F",[-9.21826,9.43896,-0.00143909],271.375,true,true], + ["Land_HBarrier_Big_F",[-9.23389,1.12988,-0.00143909],271.375,true,true], + ["Land_HBarrier_Big_F",[-9.2439,-6.94019,-0.00143909],271.375,true,true], + ["Land_HBarrier_Big_F",[-26.9719,22.2693,-0.00143909],286.375,true,true], + ["Land_HBarrier_3_F",[-10.071,23.9849,-0.00143909],91.3748,true,true], + ["Land_HBarrier_Big_F",[-14.6584,26.7698,-0.00143909],1.375,true,true], + ["Land_HBarrier_Big_F",[-22.5229,26.7314,-0.00143909],1.375,true,true], + ["Land_HBarrier_Big_F",[-6.28784,26.8616,-0.00143909],1.375,true,true], + ["Land_HBarrier_Big_F",[1.70752,25.8137,-0.00143909],16.375,true,true], + ["CamoNet_OPFOR_open_F",[13.4675,-46.5574,-0.00143909],256.375,true,true], + ["Land_BagBunker_Large_F",[13.6731,-46.6125,-0.00143909],346.375,true,true], + ["Land_HBarrier_Big_F",[25.0122,-8.42798,-0.00143909],89.245,true,true], + ["Land_HBarrier_Big_F",[20.2207,-26.6072,-0.00143909],346.375,true,true], + ["Land_HBarrier_Big_F",[10.3425,-20.1804,-0.00143909],181.375,true,true], + ["Land_HBarrier_Big_F",[13.3196,-15.1829,-0.00143909],91.375,true,true], + ["Land_HBarrier_Big_F",[25.2847,-22.1433,-0.00143909],89.8961,true,true], + ["Land_HBarrier_Big_F",[15.2939,-23.981,-0.00143909],61.375,true,true], + ["Land_HBarrier_Big_F",[17.6921,-30.4187,-0.00143909],261.124,true,true], + ["Land_HBarrier_Big_F",[18.2314,-37.9956,-0.00143909],275.055,true,true], + ["Land_HBarrier_1_F",[26.3027,-13.0132,-0.00143909],224.245,true,true], + ["Land_HBarrier_1_F",[26.3459,-17.553,-0.00143909],134.896,true,true], + ["Land_HBarrier_3_F",[24.4424,-13.2629,-0.00143909],179.245,true,true], + ["Land_HBarrier_3_F",[23.5449,-11.0381,-0.00143909],89.245,true,true], + ["Land_HBarrier_3_F",[23.5166,-19.6731,-0.00143909],269.896,true,true], + ["Land_HBarrier_3_F",[24.4841,-17.4751,-0.00143909],359.896,true,true], + ["Land_HBarrier_3_F",[26.4421,-11.2278,-0.00143909],89.245,true,true], + ["Land_HBarrier_3_F",[26.521,-19.3137,-0.00143909],269.896,true,true], + ["Land_Tank_rust_F",[17.9231,-22.1641,-0.00143909],238.726,true,true], + ["Land_LampHalogen_F",[25.1262,-18.7678,-0.00143862],151.326,true,true], + ["Land_LampHalogen_F",[25.188,-11.5505,-0.00143862],241.375,true,true], + ["Land_HBarrierWall_corridor_F",[8.88965,13.3088,-0.00143909],76.3748,true,true], + ["Land_HBarrierWall_corridor_F",[11.9426,4.98389,-0.00143909],1.37485,true,true], + ["Land_HBarrierWall_corridor_F",[14.0635,10.1843,-0.00143909],331.375,true,true], + ["CamoNet_OPFOR_open_F",[16.8806,13.8459,-0.00143909],46.3748,true,true], + ["Land_HBarrierWall4_F",[12.9727,17.2073,-0.00143909],301.375,true,true], + ["Land_HBarrierWall4_F",[13.927,14.678,-0.00143909],241.375,true,true], + ["Land_HBarrier_Big_F",[24.7051,-0.242188,-0.00143909],89.245,true,true], + ["Land_HBarrier_Big_F",[8.90503,22.6189,-0.00143909],33.6192,true,true], + ["Land_HBarrier_Big_F",[13.2727,-6.86401,-0.00143909],91.375,true,true], + ["Land_HBarrier_Big_F",[24.3503,8.13452,-0.00143909],89.245,true,true], + ["Land_HBarrier_Big_F",[13.3027,-0.90332,-0.00143909],91.375,true,true], + ["Land_BagBunker_Small_F",[20.2654,17.5417,-0.00143909],226.375,true,true], + ["Land_LampHalogen_F",[10.6421,2.27686,-0.00143862],241.375,true,true], + ["Land_LampHalogen_F",[11.4541,10.5645,-0.00143862],136.375,true,true], + ["Land_HBarrierWall_corner_F",[21.3845,12.748,-0.00143909],46.3748,true,true], + ["Land_HBarrierWall_corner_F",[15.5208,19.1467,-0.00143909],346.375,true,true], + ["Land_HBarrierWall_corner_F",[18.5425,9.32104,-0.00143909],136.375,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[-22.2104,-10.704,0],_crateLoot,_lootCounts,0.000320471] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["O_LSV_02_unarmed_F",[-53.4402,-44.895,-0.037971],359.999], + ["O_LSV_02_armed_F",[7.56689,40.9209,-0.0379591],359.999], + ["O_LSV_02_armed_F",[38.9788,-44.417,-0.0373936],359.999] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Green; +_maxNoAI = blck_MaxAI_Green; +_noAIGroups = blck_AIGrps_Green; +_noVehiclePatrols = blck_SpawnVeh_Green; +_noEmplacedWeapons = blck_SpawnEmplaced_Green; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Green/banditVillage.sqf b/@GMS/addons/custom_server/Missions/Green/banditVillage.sqf new file mode 100644 index 0000000..9d92a06 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Green/banditVillage.sqf @@ -0,0 +1,112 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Green Mission with template = default"; +_crateLoot = blck_BoxLoot_Green; +_lootCounts = blck_lootCountsGreen; +_startMsg = "An enemy village was sighted in a nearby sector! Check the Green marker on your map for the location!"; +_endMsg = "The Sector at the Green Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ellipse",[225,225],"GRID"]; +_markerColor = "ColorGreen"; +_markerMissionName = "Village"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + + +_garrisonedBuildings_BuildingPosnSystem = [ + ["Land_Unfinished_Building_02_F",[-28.137,-48.6494,0],0,true,true,0.67,3,[],4], + ["Land_i_Shop_02_V2_F",[22.688,35.2515,0],0,true,true,0.67,3,[],4] +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Unfinished_Building_02_F",[-28.3966,34.8145,0],0,true,true,[["B_HMG_01_high_F",[-5.76953,1.16504,7.2248],0]],[]], + ["Land_Unfinished_Building_02_F",[20.1816,-44.2554,0],0,true,true,[],[[[4.68567,3.59082,0.257384],0],[[-5.20032,5.66797,3.96986],0]]] +]; + +_missionLandscape = [ + ["Land_i_House_Big_02_V3_F",[-64.5577,-100.259,0],0,true,true], + ["Land_u_House_Big_01_V1_F",[-65.2944,63.9878,0],0,true,true], + // ["Sign_Sphere100cm_F",[-25.4528,-44.6294,0.617091],0,true,true], + // ["Sign_Arrow_Direction_Green_F",[24.8673,-40.6646,0.257384],0,true,true], + // ["Sign_Arrow_Direction_Green_F",[14.9813,-38.5874,3.96986],0,true,true], + //["Sign_Arrow_F",[10.937,-14.8413,1.03653],0,true,true], + // ["Sign_Sphere100cm_F",[18.4126,35.3154,0.501973],0,true,true], + ["Land_i_House_Big_02_V1_F",[53.7161,-101.875,0],0,true,true], + ["Land_i_House_Big_02_V2_F",[52.6943,66.0278,0],0,true,true] +]; + +_missionLootBoxes = [ + selectRandom[ + ["Box_IND_AmmoOrd_F",[-25.7473,-46.3496,3.73],_crateLoot,_lootCounts,0], + ["Box_NATO_Ammo_F",[-31.2815,14.4961,0],_crateLoot,_lootCounts,0], + ["Box_AAF_Equip_F",[-2.56213,-16.4194,0],_crateLoot,_lootCounts,0], + ["Box_IND_AmmoOrd_F",[3.29309,-24.7749,0],_crateLoot,_lootCounts,0], + ["Box_NATO_Wps_F",[18.3497,-0.543945,0],_crateLoot,_lootCounts,0] + ] +]; + +_missionLootVehicles = [ + // ["",[10.937,-14.8413,1.03653],_crateLoot,_lootCounts,0] +]; + +_missionPatrolVehicles = [ + //["B_LSV_01_armed_F",[-1.72583,-70.4502,0],0], + //["B_MRAP_01_gmg_F",[-3.95642,50.4224,-9.53674e-007],0], + // ["B_G_Van_01_transport_F",[11.2654,-13.9736,-0.000131607],0] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ + ["B_Heli_Light_01_dynamicLoadout_F",[-52.1934,-2.21387,0],0] +]; + +_missionEmplacedWeapons = [ + ["B_HMG_01_high_F",[-34.1661,35.9795,7.2248],0], + ["B_GMG_01_high_F",[43.4441,-24.4961,0],0] +]; + +_missionGroups = [ + [[-31.2625,5.21875,0.00143909],3,6,"Green",30,45], + [[-3.32458,-42.5176,0.00143909],3,6,"Green",30,45], + [[-7.85986,-2.72217,0.00143909],3,6,"Green",30,45], + [[-2.06714,36.3027,0.00143909],3,6,"Green",30,45], + [[29.3705,-18.0239,0.00143909],3,6,"Green",30,45] +]; + +_scubaGroupParameters = [ +]; + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Green; +_maxNoAI = blck_MaxAI_Green; +_noAIGroups = blck_AIGrps_Green; +_noVehiclePatrols = blck_SpawnVeh_Green; +_noEmplacedWeapons = blck_SpawnEmplaced_Green; +_uniforms = blck_SkinList; +_headgear = blck_headgear; +_chanceLoot = 0.6; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,8,8,0],[0,0,0,8,8,0],[8,8,0,0,0,0],[0,0,0,0,12,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. +//_endCondition = // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Green/charlston.sqf b/@GMS/addons/custom_server/Missions/Green/charlston.sqf new file mode 100644 index 0000000..63d6c12 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Green/charlston.sqf @@ -0,0 +1,185 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +_crateLoot = blck_BoxLoot_Green; +_lootCounts = blck_lootCountsGreen; +_startMsg = "Camp Charlston is being built by the enemy in a nearby sector."; +_endMsg = "Camp Charleston is under survivor control!"; +_markerLabel = ""; +_markerType = ["ellipse",[200,200],"Solid"]; +_markerColor = "ColorGreen"; +_markerMissionName = "Camp Charleston"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = []; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_Patrol_V1_F",[4.47693,-36.1753,-0.00143862],0,true,true,[["B_HMG_01_high_F",[1.09753,-0.78125,4.33092],182.337],["B_HMG_01_high_F",[-8.18188,3.96289,-0.0121179],270.389],["B_HMG_01_high_F",[11.7308,-7.875,-0.0121193],181.165]],[]], + ["Land_Cargo_Tower_V1_F",[6.56189,-19.98,-0.00143909],180,true,true,[["B_HMG_01_high_F",[12.7545,4.6084,-0.0121183],225.183],["B_HMG_01_high_F",[-4.78821,0.935547,17.8764],270.571],["B_HMG_01_high_F",[3.17285,4.91357,17.7788],0.00164279]],[]], + ["Land_Cargo_HQ_V1_F",[2.97693,0.074707,-0.00143862],180,true,true,[["B_HMG_01_high_F",[-5.3407,0.772461,3.1134],181.165]],[]], + ["Land_Cargo_Patrol_V1_F",[41.4769,-36.1753,-0.00143862],0,true,true,[["B_HMG_01_high_F",[1.27466,-0.849121,4.33092],181.165],["B_HMG_01_high_F",[-7.82532,-8.49463,-0.0121193],181.165]],[]] +]; + +_missionLandscape = [ + ["Land_CncWall4_F",[-8.77258,1.07471,-0.00143909],90,true,true], + ["Land_CncWall4_F",[-8.77258,-4.17529,-0.00143909],90,true,true], + ["Land_CncWall4_F",[-8.77258,6.32471,-0.00143909],90,true,true], + ["Land_CncWall4_F",[-6.52258,8.57471,-0.00143909],180,true,true], + ["Land_CncWall1_F",[-8.77258,-7.42529,-0.00143909],90,true,true], + ["Land_CncWall1_F",[-8.52258,-8.67529,-0.00143909],60,true,true], + ["Land_New_WiredFence_10m_F",[-9.77258,-4.92529,-0.00143909],90,true,true], + ["Land_New_WiredFence_10m_F",[-9.77258,5.07471,-0.00143909],90,true,true], + ["Land_LampShabby_F",[19.8737,-40.29,-0.00143909],149.832,true,true], + ["Land_BagFence_Round_F",[-4.80505,-33.3926,-0.00143909],45.9826,true,true], + ["Land_BagFence_Round_F",[14.8495,-44.9292,-0.00143909],45,true,true], + ["Land_BagFence_Round_F",[-4.76855,-31.2666,-0.00143909],135.983,true,true], + ["Land_BagFence_Round_F",[14.599,-41.1792,-0.00143909],120,true,true], + ["Land_BagFence_Long_F",[11.2294,-22.6245,-0.00143909],180,true,true], + ["Land_BagFence_Long_F",[12.6,-24.3042,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[11.224,-25.6792,-0.00143909],180,true,true], + ["Land_BagFence_Long_F",[-2.69324,-34.1782,-0.00143909],180.983,true,true], + ["Land_BagFence_Long_F",[17.1,-45.6792,-0.00143909],180,true,true], + ["Land_BagFence_Long_F",[18.4745,-44.1792,-0.00143909],90,true,true], + ["Land_CncBarrier_F",[19.975,-35.6792,-0.00143909],270,true,true], + ["Land_PortableLight_double_F",[7.0155,-26.8413,-0.00143909],270,true,true], + ["Land_CncWall4_F",[4.47742,-22.6753,-0.00143909],90,true,true], + ["Land_CncWall4_F",[1.22742,-35.1753,-0.00143909],90,true,true], + ["Land_CncWall4_F",[3.47742,-37.4253,-0.00143909],0,true,true], + ["Land_CncWall1_F",[1.47742,-31.9253,-0.00143909],105,true,true], + ["Land_CncWall1_F",[7.97742,-36.6753,-0.00143909],330,true,true], + ["Land_CncWall1_F",[6.72742,-37.1753,-0.00143909],345,true,true], + ["Land_CncWall1_F",[5.31714,-26.9092,-0.00143909],75,true,true], + ["Land_CncWall1_F",[4.80066,-25.6685,-0.00143909],60,true,true], + ["Land_BagFence_End_F",[15.9755,-40.3042,-0.00143909],0,true,true], + ["Land_BagFence_End_F",[-1.75403,-30.4434,-0.00143909],330.983,true,true], + ["Land_BagFence_End_F",[18.8319,-42.6753,-0.00143909],330,true,true], + ["Land_BagFence_End_F",[-0.797119,-32.9614,-0.00143909],300.983,true,true], + ["Land_New_WiredFence_10m_F",[4.97937,-39.5308,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_F",[14.7274,-39.4253,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_F",[0.272339,-34.5835,-0.00143909],90,true,true], + ["Land_BagFence_Corner_F",[-1.31201,-33.8271,-0.00143909],90.9826,true,true], + ["Land_BarGate_F",[24.7274,-41.9253,-0.00143909],0,true,true], + ["Land_Mil_WiredFence_Gate_F",[24.7274,-39.6675,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_Dam_F",[0.227417,-24.6753,-0.00143909],90,true,true], + ["Land_BagFence_Short_F",[-2.88318,-30.6743,-0.00143909],180.983,true,true], + ["Land_BagFence_Short_F",[14.224,-43.0542,-0.00143909],270,true,true], + ["Land_Mil_WallBig_4m_F",[25.6038,-18.8174,-0.00143909],270,true,true], + ["Land_BagFence_Round_F",[18.3368,-16.3926,-0.00143909],45,true,true], + ["Land_BagFence_Long_F",[11.349,-18.1792,-0.00143909],180,true,true], + ["Land_BagFence_Long_F",[12.7245,-16.8042,-0.00143909],90,true,true], + ["Land_BagFence_Long_F",[11.349,-15.4312,-0.00143909],180,true,true], + ["Land_BagFence_Long_F",[20.8373,-17.0176,-0.00143909],0,true,true], + ["Land_CncWall4_F",[-0.272583,-9.17529,-0.00143909],0,true,true], + ["Land_CncWall4_F",[-5.64758,-9.17529,-0.00143909],0,true,true], + ["Land_CncWall4_F",[5.10242,-9.17529,-0.00143909],0,true,true], + ["Land_CncWall4_F",[3.97742,8.57471,-0.00143909],180,true,true], + ["Land_CncWall4_F",[4.47742,-17.4253,-0.00143909],90,true,true], + ["Land_CncWall4_F",[8.72742,7.19971,-0.00143909],210,true,true], + ["Land_CncWall4_F",[-1.27258,8.57471,-0.00143909],180,true,true], + ["Land_CncWall4_F",[4.48242,-12.2109,-0.00143909],90,true,true], + ["Land_CncWall4_F",[12.7274,-3.80029,-0.00143909],270,true,true], + ["Land_CncWall4_F",[12.7274,1.44971,-0.00143909],270,true,true], + ["Land_CncWall1_F",[11.6024,-7.92529,-0.00143909],315,true,true], + ["Land_CncWall1_F",[11.6024,5.44971,-0.00143909],210,true,true], + ["Land_CncWall1_F",[12.4774,4.57471,-0.00143909],240,true,true], + ["Land_CncWall1_F",[10.6024,-8.55029,-0.00143909],345,true,true], + ["Land_CncWall1_F",[12.3524,-6.92529,-0.00143909],300,true,true], + ["Land_New_WiredFence_10m_F",[14.9774,9.57471,-0.00143909],180,true,true], + ["Land_New_WiredFence_10m_F",[4.97742,9.57471,-0.00143909],180,true,true], + ["Land_New_WiredFence_10m_F",[-5.27258,-9.42529,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_F",[-5.02258,9.57471,-0.00143909],180,true,true], + ["Land_New_WiredFence_10m_F",[0.227417,-14.6753,-0.00143909],90,true,true], + ["Land_CncShelter_F",[8.84314,-9.19678,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_Dam_F",[24.9774,-0.050293,-0.00143909],180,true,true], + ["Land_New_WiredFence_10m_Dam_F",[19.7274,5.07471,-0.00143909],270,true,true], + ["Land_BagFence_Short_F",[17.7123,-14.3945,-0.00143909],90,true,true], + ["Land_Mil_WallBig_4m_F",[23.4019,-2.35938,-0.00143909],0,true,true], + ["Land_Mil_WallBig_4m_F",[17.7269,-11.4253,-0.00143909],270,true,true], + ["Land_Mil_WallBig_4m_F",[19.2269,-6.17529,-0.00143909],0,true,true], + ["Land_Mil_WallBig_4m_F",[20.0457,-13.5703,-0.00143909],180,true,true], + ["Land_Mil_WallBig_4m_F",[21.1479,-4.53125,-0.00143909],270,true,true], + ["Land_LampShabby_F",[29.5619,-40.2676,-0.00143909],210,true,true], + ["Land_LampShabby_F",[40.4146,-21.3286,-0.00143909],326.67,true,true], + ["Land_BagFence_Round_F",[34.9688,-45.8774,-0.00143909],315,true,true], + ["Land_BagFence_Round_F",[32.8423,-45.8774,-0.00143909],45,true,true], + ["Land_BagFence_Long_F",[35.7183,-43.7524,-0.00143909],90,true,true], + ["Land_CncBarrier_F",[29.725,-35.5542,-0.00143909],270,true,true], + ["Land_CncWall4_F",[41.7274,-38.6753,-0.00143909],0,true,true], + ["Land_CncWall4_F",[43.9774,-36.4253,-0.00143909],270,true,true], + ["Land_CncWall1_F",[38.4774,-38.4253,-0.00143909],15,true,true], + ["Land_CncWall1_F",[37.2401,-37.894,-0.00143909],30,true,true], + ["Land_CncWall1_F",[43.7274,-33.1753,-0.00143909],255,true,true], + ["Land_BagFence_End_F",[34.4688,-41.8774,-0.00143909],210,true,true], + ["Land_BagFence_End_F",[31.9678,-42.8774,-0.00143909],240,true,true], + ["Land_New_WiredFence_10m_F",[44.515,-24.8999,-0.00143909],270,true,true], + ["Land_New_WiredFence_10m_F",[34.7274,-39.1753,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_F",[44.515,-34.6499,-0.00143909],270,true,true], + ["Land_BagFence_Corner_F",[35.3433,-42.3774,-0.00143909],0,true,true], + ["Land_New_WiredFence_5m_F",[42.2655,-39.1499,-0.00143909],0,true,true], + ["Land_BagFence_Short_F",[32.2178,-44.0024,-0.00143909],90,true,true], + ["Land_Mil_WallBig_4m_F",[39.1169,-22.2583,-0.00143909],180,true,true], + ["Land_Mil_WallBig_4m_F",[31.9081,-20.9619,-0.00143909],180,true,true], + ["Land_Mil_WallBig_4m_F",[41.4412,-20.3794,-0.00143909],90,true,true], + ["Land_Mil_WallBig_4m_F",[27.9435,-20.9658,-0.00143909],180,true,true], + ["Land_Cargo_HQ_V1_F",[33.7463,-12.4639,-0.00143862],271.492,true,true], + ["Land_New_WiredFence_10m_F",[44.4774,-4.92529,-0.00143909],270,true,true], + ["Land_New_WiredFence_10m_F",[44.4774,-14.9253,-0.00143909],270,true,true], + ["Land_New_WiredFence_10m_F",[34.9774,-0.175293,-0.00143909],180,true,true], + ["Land_New_WiredFence_5m_F",[42.4774,-0.175293,-0.00143909],180,true,true], + ["Land_Mil_WallBig_4m_F",[31.3369,-2.34375,-0.00143909],0,true,true], + ["Land_Mil_WallBig_4m_F",[41.4467,-8.47168,-0.00143909],90,true,true], + ["Land_Mil_WallBig_4m_F",[41.4458,-12.4146,-0.00143909],90,true,true], + ["Land_Mil_WallBig_4m_F",[41.4386,-16.4019,-0.00143909],90,true,true], + ["Land_Mil_WallBig_4m_F",[35.2737,-2.33789,-0.00143909],0,true,true], + ["Land_Mil_WallBig_4m_F",[41.4539,-4.48438,-0.00143909],90,true,true], + ["Land_Mil_WallBig_4m_F",[39.1295,-2.32617,-0.00143909],0,true,true], + ["Land_Mil_WallBig_4m_F",[27.3386,-2.35352,-0.00143909],0,true,true] +]; + +_missionLootBoxes = []; + +_missionLootVehicles = []; + +_missionPatrolVehicles = [ + ["B_G_Offroad_01_armed_F",[21.4174,19.0781,0.00804281],90.3115], + ["B_G_Offroad_01_armed_F",[27.5131,-53.1431,0.00819397],268.528] +]; + +_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position. +_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position. +_missionEmplacedWeapons = []; +_missionGroups = []; + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Green; +_maxNoAI = blck_MaxAI_Green; +_noAIGroups = blck_AIGrps_Green; +_noVehiclePatrols = blck_SpawnVeh_Green; +_noEmplacedWeapons = blck_SpawnEmplaced_Green; +_uniforms = blck_SkinList; +_headgear = blck_headgear; +_chanceLoot = 0.6; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,8,8,0],[0,0,0,8,8,0],[8,8,0,0,0,0],[0,0,0,0,12,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Green/dashq.sqf b/@GMS/addons/custom_server/Missions/Green/dashq.sqf new file mode 100644 index 0000000..cfec33f --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Green/dashq.sqf @@ -0,0 +1,230 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Green Mission with template = default"; +_crateLoot = blck_BoxLoot_Green; +_lootCounts = blck_lootCountsGreen; +_startMsg = "An enemy HQ center was sighted in a nearby sector! Check the Green marker on your map for the location!"; +_endMsg = "The HQ at the Green Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorGreen"; +_markerMissionName = "Operations Base"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_HQ_V1_F",[-0.358154,-18.6514,-0.00143862],179.905,true,true,[["B_HMG_01_high_F",[-6.5437,1.09253,3.11855],145.121],["B_HMG_01_high_F",[-13.9094,-10.7791,-0.0121183],206.716]],[]] +]; + +_missionLandscape = [ + ["Land_PortableLight_double_F",[-42.614,-26.0178,-0.00143909],225.577,true,true], + ["Land_CncWall4_F",[-45.3523,-21.509,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-33.5913,-28.1145,-0.00143909],359.905,true,true], + ["Land_CncWall4_F",[-38.842,-28.124,-0.00143909],359.905,true,true], + ["Land_CncWall1_F",[-44.093,-26.7578,-0.00143909],44.9051,true,true], + ["Land_CncWall1_F",[-43.0923,-27.5063,-0.00143909],29.9051,true,true], + ["Land_CncWall1_F",[-45.2207,-24.6689,-0.00143909],74.9051,true,true], + ["Land_CncWall1_F",[-44.845,-25.7581,-0.00143909],59.9051,true,true], + ["Land_CncWall1_F",[-41.9668,-28.0046,-0.00143909],14.9051,true,true], + ["Land_BagBunker_01_large_green_F",[-49.7271,-16.9226,-0.00143909],90.2555,true,true], + ["Land_Cargo_Tower_V1_F",[-36.3582,-19.3394,-0.00143909],89.905,true,true], + ["Land_CncWall4_F",[-33.4968,-9.73975,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-45.3792,-5.75879,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-45.3867,-0.508789,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-45.3694,-11.0095,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-45.3955,4.74121,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-45.4041,9.99072,-0.00143909],89.9051,true,true], + ["Land_CncWall1_F",[-32.0076,1.70923,-0.00143909],74.9051,true,true], + ["Land_CncWall1_F",[-31.6313,0.61792,-0.00143909],59.9051,true,true], + ["Land_BagBunker_01_large_green_F",[-49.7959,14.4089,-0.00143909],90.2555,true,true], + ["Land_Cargo_HQ_V1_F",[-34.4014,20.1455,-0.00143862],269.491,true,true], + ["Land_CncWall4_F",[-45.4214,20.4915,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-45.4302,25.7415,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-38.8159,32.2512,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-33.5662,32.2607,-0.00143909],179.905,true,true], + ["Land_CncWall1_F",[-43.0654,31.7451,-0.00143909],149.905,true,true], + ["Land_CncWall1_F",[-41.9753,32.1199,-0.00143909],164.905,true,true], + ["Land_CncWall1_F",[-44.0635,30.9924,-0.00143909],134.905,true,true], + ["Land_CncWall1_F",[-44.8127,29.991,-0.00143909],119.905,true,true], + ["Land_CncWall1_F",[-45.3108,28.8672,-0.00143909],104.905,true,true], + ["Land_BagFence_Round_F",[-15.3367,-30.4338,-0.00143909],44.9051,true,true], + ["Land_BagFence_Round_F",[-25.8376,-30.2017,-0.00143909],314.905,true,true], + ["Land_PortableLight_double_F",[-2.30811,-29.9211,-0.00143909],44.7366,true,true], + ["Land_CncWall4_F",[-2.09229,-28.0632,-0.00143909],359.905,true,true], + ["Land_CncWall4_F",[-26.9856,-16.3538,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[-13.8528,-21.4565,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-26.9783,-21.6038,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[-7.34155,-28.0718,-0.00143909],359.905,true,true], + ["Land_CncWall4_F",[-13.8606,-16.2065,-0.00143909],89.9051,true,true], + ["Land_CncWall1_F",[-13.3455,-25.7068,-0.00143909],59.9051,true,true], + ["Land_CncWall1_F",[-12.593,-26.7058,-0.00143909],44.9051,true,true], + ["Land_CncWall1_F",[-27.5952,-25.8552,-0.00143909],299.905,true,true], + ["Land_CncWall1_F",[-27.0967,-24.7288,-0.00143909],284.905,true,true], + ["Land_CncWall1_F",[-13.7209,-24.6165,-0.00143909],74.9051,true,true], + ["Land_CncWall1_F",[-10.4666,-27.9514,-0.00143909],14.9051,true,true], + ["Land_CncWall1_F",[-29.3428,-27.6084,-0.00143909],329.905,true,true], + ["Land_CncWall1_F",[-30.4331,-27.9832,-0.00143909],344.905,true,true], + ["Land_CncWall1_F",[-11.592,-27.4541,-0.00143909],29.9051,true,true], + ["Land_CncWall1_F",[-28.3438,-26.855,-0.00143909],314.905,true,true], + ["Land_BagFence_Long_F",[-25.2168,-27.7002,-0.00143909],269.905,true,true], + ["Land_BagFence_Long_F",[-15.9658,-27.9348,-0.00143909],269.905,true,true], + ["Land_BagFence_Long_F",[-12.8359,-31.0559,-0.00143909],359.905,true,true], + ["Land_BagFence_Long_F",[-28.3364,-30.8318,-0.00143909],179.905,true,true], + ["Land_BagFence_Round_F",[-7.19092,10.5073,-0.00143909],44.9051,true,true], + ["Land_PortableLight_double_F",[-11.7207,0.158936,-0.00143909],135.598,true,true], + ["Land_PortableLight_double_F",[-29.4041,0.418701,-0.00143909],218.658,true,true], + ["Land_CncWall4_F",[-7.24731,-9.69678,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-20.376,-1.73682,-0.00143909],359.905,true,true], + ["Land_CncWall4_F",[-25.6274,-1.74609,-0.00143909],359.905,true,true], + ["Land_CncWall4_F",[-15.1272,-1.72925,-0.00143909],359.905,true,true], + ["Land_CncWall1_F",[-10.4058,-9.82935,-0.00143909],164.905,true,true], + ["Land_CncWall1_F",[-10.8779,-1.22144,-0.00143909],329.905,true,true], + ["Land_CncWall1_F",[-9.13086,0.531982,-0.00143909],299.905,true,true], + ["Land_CncWall1_F",[-11.4956,-10.2031,-0.00143909],149.905,true,true], + ["Land_CncWall1_F",[-8.63257,1.65747,-0.00143909],284.905,true,true], + ["Land_CncWall1_F",[-11.9688,-1.59668,-0.00143909],344.905,true,true], + ["Land_CncWall1_F",[-27.4932,-12.1047,-0.00143909],239.905,true,true], + ["Land_CncWall1_F",[-12.4951,-10.9553,-0.00143909],134.905,true,true], + ["Land_CncWall1_F",[-13.2424,-11.9563,-0.00143909],119.905,true,true], + ["Land_CncWall1_F",[-29.8777,-1.12744,-0.00143909],29.9051,true,true], + ["Land_CncWall1_F",[-9.87939,-0.470703,-0.00143909],314.905,true,true], + ["Land_CncWall1_F",[-30.3708,-9.86011,-0.00143909],194.905,true,true], + ["Land_CncWall1_F",[-30.8787,-0.378906,-0.00143909],44.9051,true,true], + ["Land_CncWall1_F",[-29.2468,-10.3582,-0.00143909],209.905,true,true], + ["Land_CncWall1_F",[-13.7417,-13.0818,-0.00143909],104.905,true,true], + ["Land_CncWall1_F",[-28.2449,-11.1069,-0.00143909],224.905,true,true], + ["Land_CncWall1_F",[-27.1179,-13.1948,-0.00143909],254.905,true,true], + ["Land_CncWall1_F",[-28.7524,-1.62573,-0.00143909],14.9051,true,true], + ["Land_BagFence_Long_F",[-7.8208,13.0066,-0.00143909],269.905,true,true], + ["Land_BagFence_Long_F",[-4.69067,9.88257,-0.00143909],359.905,true,true], + ["Land_Cargo_Patrol_V1_F",[-19.8857,1.92358,-0.00143862],359.905,true,true], + ["Land_Cargo_HQ_V1_F",[-17.6404,20.1672,-0.00143862],269.491,true,true], + ["Land_HelipadSquare_F",[0.169189,17.6489,-0.00143909],359.936,true,true], + ["Land_BagFence_Round_F",[-7.21484,25.1335,-0.00143909],134.905,true,true], + ["Land_BagFence_Round_F",[-8.354,36.8232,-0.00143909],134.905,true,true], + ["Land_CncWall4_F",[-23.0659,32.2773,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-12.615,32.3005,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-17.8164,32.2856,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-7.396,32.3115,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-2.25146,35.2305,-0.00143909],179.977,true,true], + ["Land_CncWall4_F",[-28.3167,32.269,-0.00143909],179.905,true,true], + ["Land_CncWall1_F",[-4.03638,32.6663,-0.00143909],149.461,true,true], + ["Land_BagFence_Long_F",[-4.71533,25.7625,-0.00143909],359.905,true,true], + ["Land_BagFence_Long_F",[-5.85449,37.4521,-0.00143909],359.905,true,true], + ["Land_BagFence_Long_F",[-7.83618,22.6321,-0.00143909],89.9051,true,true], + ["Land_BagFence_Long_F",[-8.97534,34.3218,-0.00143909],89.9051,true,true], + ["Land_PortableLight_double_F",[12.1106,-26.1833,-0.00143909],149.905,true,true], + ["Land_CncWall4_F",[15.0215,-21.5349,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[8.38428,-28.1101,-0.00143909],359.905,true,true], + ["Land_CncWall4_F",[15.0137,-16.2847,-0.00143909],269.905,true,true], + ["Land_CncWall1_F",[14.9031,-24.6597,-0.00143909],284.905,true,true], + ["Land_CncWall1_F",[12.6567,-27.5383,-0.00143909],329.905,true,true], + ["Land_CncWall1_F",[11.5676,-27.9133,-0.00143909],344.905,true,true], + ["Land_CncWall1_F",[14.4038,-25.7854,-0.00143909],299.905,true,true], + ["Land_CncWall1_F",[13.656,-26.7861,-0.00143909],314.905,true,true], + ["Land_BagFence_Long_F",[12.5037,-23.1807,-0.00143909],89.3707,true,true], + ["Land_BagFence_Long_F",[11.072,-24.5706,-0.00143909],359.905,true,true], + ["Land_BagFence_Long_F",[10.9707,-21.8315,-0.00143909],179.371,true,true], + ["Land_BagFence_Long_F",[9.56812,-23.1921,-0.00143909],269.905,true,true], + ["Land_BagBunker_01_large_green_F",[3.83936,-32.5405,-0.00143909],0,true,true], + ["Land_TTowerSmall_2_F",[11.5024,-23.7861,-0.00143909],179.905,true,true], + ["Land_Cargo_House_V1_F",[9.00171,-10.2603,-0.00143909],89.905,true,true], + ["Land_Cargo_House_V1_F",[8.98071,2.86475,-0.00143909],89.905,true,true], + ["Land_Medevac_house_V1_F",[8.99219,-3.76099,-0.00143909],90.3921,true,true], + ["Land_BagFence_Round_F",[8.05933,10.2788,-0.00143909],314.905,true,true], + ["Land_PortableLight_double_F",[12.8176,7.44629,-0.00143909],134.905,true,true], + ["Land_CncWall4_F",[14.9788,4.71558,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[15.0054,-11.0347,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[14.9961,-5.78418,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[14.9878,-0.533936,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[14.9705,9.96558,-0.00143909],269.905,true,true], + ["Land_BagFence_Long_F",[8.68018,12.7852,-0.00143909],269.905,true,true], + ["Land_BagFence_Long_F",[5.55933,9.6499,-0.00143909],179.905,true,true], + ["Land_BagBunker_01_large_green_F",[19.272,16.1316,-0.00143909],269.832,true,true], + ["Land_BagFence_Round_F",[7.91089,24.9097,-0.00143909],224.905,true,true], + ["Land_BagFence_Round_F",[9.05054,36.9314,-0.00143909],224.905,true,true], + ["Land_PortableLight_double_F",[11.8816,29.2671,-0.00143909],44.7366,true,true], + ["Land_CncWall4_F",[14.9529,20.4653,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[8.43433,32.3303,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[2.95288,35.22,-0.00143909],179.977,true,true], + ["Land_CncWall4_F",[14.9443,25.7156,-0.00143909],269.905,true,true], + ["Land_CncWall1_F",[14.4373,29.9646,-0.00143909],239.905,true,true], + ["Land_CncWall1_F",[14.813,28.8745,-0.00143909],254.905,true,true], + ["Land_CncWall1_F",[13.6853,30.9644,-0.00143909],224.905,true,true], + ["Land_CncWall1_F",[12.6843,31.7119,-0.00143909],209.905,true,true], + ["Land_CncWall1_F",[11.5593,32.2114,-0.00143909],194.905,true,true], + ["Land_CncWall1_F",[5.11841,32.7061,-0.00143909],209.905,true,true], + ["Land_BagFence_Long_F",[8.54004,22.4104,-0.00143909],89.9051,true,true], + ["Land_BagFence_Long_F",[9.67969,34.4321,-0.00143909],89.9051,true,true], + ["Land_BagFence_Long_F",[5.40894,25.5288,-0.00143909],179.905,true,true], + ["Land_BagFence_Long_F",[6.54858,37.5505,-0.00143909],179.905,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[0.0717773,16.9431,-0.00143814],_crateLoot,_lootCounts,0.000320471] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["O_T_LSV_02_armed_F",[-62.7971,0.422119,-0.0236669],0.00164848], + ["O_T_LSV_02_armed_F",[31.9084,-7.18774,-0.0238085],0.00168349] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Green; +_maxNoAI = blck_MaxAI_Green; +_noAIGroups = blck_AIGrps_Green; +_noVehiclePatrols = blck_SpawnVeh_Green; +_noEmplacedWeapons = blck_SpawnEmplaced_Green; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Green"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Green/derbunker.sqf b/@GMS/addons/custom_server/Missions/Green/derbunker.sqf new file mode 100644 index 0000000..3a8a403 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Green/derbunker.sqf @@ -0,0 +1,120 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Green Mission with template = default"; +_crateLoot = blck_BoxLoot_Green; +_lootCounts = blck_lootCountsGreen; +_startMsg = "An enemy Bunker was sighted in a nearby sector! Check the Green marker on your map for the location!"; +_endMsg = "The Bunker at the Green Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorGreen"; +_markerMissionName = "DerBunker"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Bunker_01_big_F",[-15.925,9.02295,0.760561],90.071,true,true,[["O_HMG_01_high_F",[-5.45947,-3.38574,0.109706],359.994]],[]], + ["Land_Bunker_01_tall_F",[-15.377,-8.8042,-0.00143909],90.071,true,true,[["O_HMG_01_high_F",[5.50562,-2.54395,-0.0121193],0.00145215],["O_HMG_01_high_F",[-1.72095,-0.109375,4.96893],0.00948966]],[]], + ["Land_Bunker_01_tall_F",[-15.76,28.606,-0.00143909],90.071,true,true,[["O_HMG_01_high_F",[5.47437,2.47559,-0.0121179],0.000581241],["O_HMG_01_high_F",[-1.38867,-0.0722656,4.967],359.999],["O_HMG_01_high_F",[11.8271,5.87988,-0.0121188],0.00143633]],[]], + ["Land_Bunker_01_big_F",[20.199,10.729,0.760561],270.416,true,true,[["O_HMG_01_high_F",[5.86328,3.25586,0.109697],0.0117801]],[]], + ["Land_Bunker_01_tall_F",[19.8899,-8.86914,-0.00143909],270.416,true,true,[["O_HMG_01_high_F",[-5.13818,-2.33496,-0.0121174],0.0002874],["O_HMG_01_high_F",[1.45801,0.0512695,4.96698],360]],[]], + ["Land_Bunker_01_tall_F",[19.731,28.542,-0.00143909],270.416,true,true,[["O_HMG_01_high_F",[-5.00977,2.1792,-0.0121188],0.00143735],["O_HMG_01_high_F",[1.80957,0.26709,4.96756],360],["O_HMG_01_high_F",[-12.0127,6.1333,-0.0121193],0.00145178]],[]] +]; + +_missionLandscape = [ + //["Sign_Arrow_F",[-3163.22,-5166.85,-0.00143909],0,true,true], + //["Sign_Arrow_Green_F",[-3163.22,-5166.85,-0.00143909],0,true,true], + //["Sign_Arrow_Yellow_F",[-3163.22,-5166.85,-0.00143909],0,true,true], + //["babe_helper",[-3165.72,-5166.35,-0.00143909],90.8645,true,true], + ["Land_Bunker_01_blocks_3_F",[-13.762,17.5518,-0.00143909],270.35,true,true], + ["Land_Bunker_01_blocks_3_F",[-0.0979004,-12.9033,-0.00143909],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[-5.18799,-12.9092,-0.00143909],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[-10.175,-12.9253,-0.502439],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[-13.814,-4.44141,-0.00143909],270.35,true,true], + ["Land_Bunker_01_blocks_3_F",[-13.7959,0.544922,-0.00143909],270.35,true,true], + ["CamoNet_INDP_big_F",[2.23804,-2.70508,-0.00143909],182.545,true,true], + ["Land_Bunker_01_blocks_3_F",[-13.7451,22.5391,-0.00143909],270.35,true,true], + ["Land_Bunker_01_blocks_3_F",[-2.51611,30.105,-0.00143909],90.192,true,true], + ["Land_Bunker_01_blocks_3_F",[-10.6179,32.6689,-0.432439],0.106,true,true], + ["Land_Bunker_01_blocks_3_F",[-5.63013,32.6719,-0.00143909],0.106,true,true], + ["Land_Bunker_01_blocks_3_F",[17.958,2.1958,-0.00143909],90.695,true,true], + ["Land_Bunker_01_blocks_3_F",[14.9771,-12.854,-0.529439],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[4.88892,-12.8853,-0.00143909],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[17.9109,-2.78906,-0.00143909],90.695,true,true], + ["Land_Bunker_01_blocks_3_F",[9.98999,-12.8711,-0.00143909],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[6.58691,30.1689,-0.00143909],269.774,true,true], + ["Land_Bunker_01_blocks_3_F",[18.095,19.2026,-0.00143909],90.695,true,true], + ["Land_Bunker_01_blocks_3_F",[18.1409,24.189,-0.00143909],90.695,true,true], + ["Land_Bunker_01_blocks_3_F",[9.54907,32.6689,-0.00143909],0.106,true,true], + ["Land_Bunker_01_blocks_3_F",[14.5359,32.6729,-0.363439],0.106,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[0.0446777,-1.31494,-0.001441],_crateLoot,_lootCounts,0.00167282] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["O_LSV_02_armed_F",[-37.46,8.55273,-0.0378561],359.999], + ["O_LSV_02_unarmed_F",[38.3699,8.21484,-0.0378113],359.999] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Green; +_maxNoAI = blck_MaxAI_Green; +_noAIGroups = blck_AIGrps_Green; +_noVehiclePatrols = blck_SpawnVeh_Green; +_noEmplacedWeapons = blck_SpawnEmplaced_Green; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Green"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Green/factory.sqf b/@GMS/addons/custom_server/Missions/Green/factory.sqf new file mode 100644 index 0000000..2f431f3 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Green/factory.sqf @@ -0,0 +1,145 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepaGreen for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Green Mission with template = default"; +_crateLoot = blck_BoxLoot_Green; +_lootCounts = blck_lootCountsGreen; +_startMsg = "An Ammunition Factory was sighted in a nearby sector! Check the Green marker on your map for the location!"; +_endMsg = "The Factory at the Green Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorGreen"; +_markerMissionName = "Factory"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_Tower_V3_F",[-18.6987,-51.7905,-0.0014348],91.6296,true,true,[["B_HMG_01_high_F",[3.31396,2.89209,8.57585],359.999],["B_HMG_01_high_F",[13.0347,0.8479,-0.0121226],360],["B_HMG_01_high_F",[-9.4834,13.5967,-0.0121226],0.00158913],["B_HMG_01_high_F",[-0.601074,3.90967,17.8764],359.999],["B_HMG_01_high_F",[-0.877441,-4.83179,17.8764],359.999],["B_HMG_01_high_F",[-9.77783,29.3799,-0.0121226],360]],[]], + ["Land_Cargo_Patrol_V3_F",[-27.1675,-15.407,-0.00143814],91.6296,true,true,[["B_HMG_01_high_F",[-1.15381,1.24658,4.33092],275.276]],[]], + ["Land_Cargo_Patrol_V3_F",[-10.7632,4.77441,-0.00143814],181.63,true,true,[["B_HMG_01_high_F",[-1.32959,1.03662,4.33092],359.999]],[]], + ["Land_Cargo_Patrol_V3_F",[12.9375,3.5835,-0.00143814],181.63,true,true,[["B_HMG_01_high_F",[1.57861,1.04736,4.33093],357.402],["B_HMG_01_high_F",[8.41357,-9.20557,-0.0121202],0.0033673]],[]] +]; + +_missionLandscape = [ + //["babe_helper",[-4335.99,-3525.64,-0.00143862],0,true,true], + //["Sign_Arrow_Green_F",[-4333.49,-3526.14,-0.00143862],0,true,true], + //["Sign_Arrow_F",[-4333.49,-3526.14,-0.00143862],0,true,true], + //["Sign_Arrow_Yellow_F",[-4333.49,-3526.14,-0.00143862],0,true,true], + ["Land_BagFence_Long_F",[-29.7012,-38.5171,-0.00143862],91.6296,true,true], + ["Land_HBarrier_Big_F",[0,0,0],181.63,true,true], + ["Land_HBarrier_Big_F",[13.4092,-3.25757,0],271.63,true,true], + ["Land_HBarrier_Big_F",[8.375,-0.113037,0],181.63,true,true], + ["Land_Cargo_Patrol_V3_F",[1.41602,-4.66895,4.76837e-007],181.63,true,true], + ["Land_HBarrier_Big_F",[13.4199,-11.7607,0],271.63,true,true], + ["Land_HBarrier_Big_F",[18.5933,-23.1626,0],181.63,true,true], + ["Land_HBarrier_Big_F",[13.436,-19.8896,0],271.63,true,true], + ["Land_HBarrier_Big_F",[21.832,-28.0088,0],271.63,true,true], + ["Land_BagFence_Round_F",[26.2334,-38.7039,0],316.63,true,true], + ["Land_BagFence_Round_F",[26.3379,-36.5427,0],226.63,true,true], + ["Land_BagFence_Long_F",[23.7163,-39.2576,0],181.63,true,true], + ["CamoNet_OPFOR_F",[10.2559,-17.4697,0],91.6296,true,true], + ["Land_HBarrier_Big_F",[-3.3916,-4.90503,0],91.6296,true,true], + ["Land_HBarrier_Big_F",[-30.9849,1.00684,0],181.63,true,true], + ["Land_HBarrier_Big_F",[-17.564,-2.00073,0],271.63,true,true], + ["Land_HBarrier_Big_F",[-22.731,1.02173,0],181.63,true,true], + ["Land_Cargo_Patrol_V3_F",[-22.2847,-3.47803,4.76837e-007],181.63,true,true], + ["CamoNet_OPFOR_big_F",[-34.8179,-6.18286,0],1.62962,true,true], + ["Land_HBarrier_Big_F",[-20.0698,-63.729,0],91.6296,true,true], + ["Land_HBarrier_Big_F",[-33.6689,-66.9641,0],181.63,true,true], + ["Land_HBarrier_Big_F",[-25.1631,-66.959,0],181.63,true,true], + ["Land_BagFence_Long_F",[-17.6025,-60.449,0],181.63,true,true], + ["Land_Cargo_Tower_V3_F",[-30.2202,-60.043,3.8147e-006],91.6296,true,true], + ["Land_BagFence_Round_F",[-15.085,-59.8953,0],316.63,true,true], + ["Land_HBarrier_Big_F",[-39.3599,1.11987,0],181.63,true,true], + ["Land_HBarrier_Big_F",[-42.751,-3.7854,0],91.6296,true,true], + ["Land_HBarrier_Big_F",[-42.8638,-12.1604,0],91.6296,true,true], + ["Land_HBarrier_Big_F",[-37.8037,-27.686,0],181.63,true,true], + ["Land_HBarrier_Big_F",[-42.8486,-20.4146,0],91.6296,true,true], + ["Land_HBarrier_Big_F",[-42.9619,-28.7896,0],91.6296,true,true], + ["Land_Cargo_Patrol_V3_F",[-38.689,-23.6594,4.76837e-007],91.6296,true,true], + ["CamoNet_OPFOR_F",[-37.1313,-30.3784,0],1.62962,true,true], + ["Land_HBarrier_Big_F",[-36.8999,-61.8621,0],91.6296,true,true], + ["Land_HBarrier_Big_F",[-36.792,-53.6099,0],91.6296,true,true], + ["Land_BagFence_Corner_F",[-37.04,-49.1382,0],1.62962,true,true], + ["Land_BagFence_Corner_F",[-40.8984,-48.5288,0],181.63,true,true], + ["Land_BagFence_Long_F",[-39.0317,-48.8325,0],181.63,true,true], + ["Land_BagFence_Long_F",[-39.1577,-44.4534,0],1.62962,true,true], + ["Land_BagFence_Long_F",[-41.2227,-46.7695,0],91.6296,true,true], + ["Land_BagFence_Corner_F",[-40.916,-44.7759,0],271.63,true,true], + ["Land_HBarrier_Big_F",[0.214844,-63.1599,0],181.63,true,true], + ["Land_HBarrier_Big_F",[8.46875,-63.145,0],181.63,true,true], + ["Land_HBarrier_Big_F",[-8.16016,-63.0469,0],181.63,true,true], + ["Land_HBarrier_Big_F",[21.3247,-43.1565,0],271.63,true,true], + ["Land_HBarrier_Big_F",[21.3354,-51.6597,0],271.63,true,true], + ["Land_HBarrier_Big_F",[21.3516,-59.7886,0],271.63,true,true], + ["Land_HBarrier_Big_F",[16.6245,-63.0515,0],181.63,true,true], + ["Land_Dome_Small_F",[0.337891,-44.8254,-4.76837e-007],0.223401,true,true], + ["Land_dp_smallTank_F",[18.314,-70.0537,0],0,true,true], + ["Land_dp_smallTank_F",[9.81934,-69.9482,0],0,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[0.337891,-44.,0],_crateLoot,_lootCounts,0.000320471] +]; + +_missionLootVehicles = []; + +_missionPatrolVehicles = [ + ["B_G_Offroad_01_armed_F",[-53.8027,-29.7834,0.00867844],0.00103655], + ["B_G_Offroad_01_armed_F",[51.0596,-25.7876,0.00815535],0.00104356] +]; + +_submarinePatrolParameters = []; + +_airPatrols = []; + +_missionEmplacedWeapons = []; // + +_missionGroups = []; + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Green; +_maxNoAI = blck_MaxAI_Green; +_noAIGroups = blck_AIGrps_Green; +_noVehiclePatrols = blck_SpawnVeh_Green; +_noEmplacedWeapons = blck_SpawnEmplaced_Green; +_uniforms = blck_SkinList; +_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Green"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Green/fortification.sqf b/@GMS/addons/custom_server/Missions/Green/fortification.sqf new file mode 100644 index 0000000..60f162a --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Green/fortification.sqf @@ -0,0 +1,188 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Green Mission with template = default"; +_crateLoot = blck_BoxLoot_Green; +_lootCounts = blck_lootCountsGreen; +_startMsg = "An enemy fortification was sighted in a nearby sector! Check the Green marker on your map for the location!"; +_endMsg = "The Sector at the Green Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorGreen"; +_markerMissionName = "Fortification"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_Patrol_V1_F",[4.47693,-36.1753,-0.00143862],0,true,true,[["B_HMG_01_high_F",[1.09753,-0.78125,4.33092],182.337],["B_HMG_01_high_F",[-8.18188,3.96289,-0.0121179],270.389],["B_HMG_01_high_F",[11.7308,-7.875,-0.0121193],181.165]],[]], + ["Land_Cargo_Tower_V1_F",[6.56189,-19.98,-0.00143909],180,true,true,[["B_HMG_01_high_F",[12.7545,4.6084,-0.0121183],225.183],["B_HMG_01_high_F",[-4.78821,0.935547,17.8764],270.571],["B_HMG_01_high_F",[3.17285,4.91357,17.7788],0.00164279]],[]], + ["Land_Cargo_HQ_V1_F",[2.97693,0.074707,-0.00143862],180,true,true,[["B_HMG_01_high_F",[-5.3407,0.772461,3.1134],181.165]],[]], + ["Land_Cargo_Patrol_V1_F",[41.4769,-36.1753,-0.00143862],0,true,true,[["B_HMG_01_high_F",[1.27466,-0.849121,4.33092],181.165],["B_HMG_01_high_F",[-7.82532,-8.49463,-0.0121193],181.165]],[]] +]; + +_missionLandscape = [ + ["Land_CncWall4_F",[-8.77258,1.07471,-0.00143909],90,true,true], + ["Land_CncWall4_F",[-8.77258,-4.17529,-0.00143909],90,true,true], + ["Land_CncWall4_F",[-8.77258,6.32471,-0.00143909],90,true,true], + ["Land_CncWall4_F",[-6.52258,8.57471,-0.00143909],180,true,true], + ["Land_CncWall1_F",[-8.77258,-7.42529,-0.00143909],90,true,true], + ["Land_CncWall1_F",[-8.52258,-8.67529,-0.00143909],60,true,true], + ["Land_New_WiredFence_10m_F",[-9.77258,-4.92529,-0.00143909],90,true,true], + ["Land_New_WiredFence_10m_F",[-9.77258,5.07471,-0.00143909],90,true,true], + ["Land_LampShabby_F",[19.8737,-40.29,-0.00143909],149.832,true,true], + ["Land_BagFence_Round_F",[-4.80505,-33.3926,-0.00143909],45.9826,true,true], + ["Land_BagFence_Round_F",[14.8495,-44.9292,-0.00143909],45,true,true], + ["Land_BagFence_Round_F",[-4.76855,-31.2666,-0.00143909],135.983,true,true], + ["Land_BagFence_Round_F",[14.599,-41.1792,-0.00143909],120,true,true], + ["Land_BagFence_Long_F",[11.2294,-22.6245,-0.00143909],180,true,true], + ["Land_BagFence_Long_F",[12.6,-24.3042,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[11.224,-25.6792,-0.00143909],180,true,true], + ["Land_BagFence_Long_F",[-2.69324,-34.1782,-0.00143909],180.983,true,true], + ["Land_BagFence_Long_F",[17.1,-45.6792,-0.00143909],180,true,true], + ["Land_BagFence_Long_F",[18.4745,-44.1792,-0.00143909],90,true,true], + ["Land_CncBarrier_F",[19.975,-35.6792,-0.00143909],270,true,true], + ["Land_PortableLight_double_F",[7.0155,-26.8413,-0.00143909],270,true,true], + ["Land_CncWall4_F",[4.47742,-22.6753,-0.00143909],90,true,true], + ["Land_CncWall4_F",[1.22742,-35.1753,-0.00143909],90,true,true], + ["Land_CncWall4_F",[3.47742,-37.4253,-0.00143909],0,true,true], + ["Land_CncWall1_F",[1.47742,-31.9253,-0.00143909],105,true,true], + ["Land_CncWall1_F",[7.97742,-36.6753,-0.00143909],330,true,true], + ["Land_CncWall1_F",[6.72742,-37.1753,-0.00143909],345,true,true], + ["Land_CncWall1_F",[5.31714,-26.9092,-0.00143909],75,true,true], + ["Land_CncWall1_F",[4.80066,-25.6685,-0.00143909],60,true,true], + ["Land_BagFence_End_F",[15.9755,-40.3042,-0.00143909],0,true,true], + ["Land_BagFence_End_F",[-1.75403,-30.4434,-0.00143909],330.983,true,true], + ["Land_BagFence_End_F",[18.8319,-42.6753,-0.00143909],330,true,true], + ["Land_BagFence_End_F",[-0.797119,-32.9614,-0.00143909],300.983,true,true], + ["Land_New_WiredFence_10m_F",[4.97937,-39.5308,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_F",[14.7274,-39.4253,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_F",[0.272339,-34.5835,-0.00143909],90,true,true], + ["Land_BagFence_Corner_F",[-1.31201,-33.8271,-0.00143909],90.9826,true,true], + ["Land_BarGate_F",[24.7274,-41.9253,-0.00143909],0,true,true], + ["Land_Mil_WiredFence_Gate_F",[24.7274,-39.6675,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_Dam_F",[0.227417,-24.6753,-0.00143909],90,true,true], + ["Land_BagFence_Short_F",[-2.88318,-30.6743,-0.00143909],180.983,true,true], + ["Land_BagFence_Short_F",[14.224,-43.0542,-0.00143909],270,true,true], + ["Land_Mil_WallBig_4m_F",[25.6038,-18.8174,-0.00143909],270,true,true], + ["Land_BagFence_Round_F",[18.3368,-16.3926,-0.00143909],45,true,true], + ["Land_BagFence_Long_F",[11.349,-18.1792,-0.00143909],180,true,true], + ["Land_BagFence_Long_F",[12.7245,-16.8042,-0.00143909],90,true,true], + ["Land_BagFence_Long_F",[11.349,-15.4312,-0.00143909],180,true,true], + ["Land_BagFence_Long_F",[20.8373,-17.0176,-0.00143909],0,true,true], + ["Land_CncWall4_F",[-0.272583,-9.17529,-0.00143909],0,true,true], + ["Land_CncWall4_F",[-5.64758,-9.17529,-0.00143909],0,true,true], + ["Land_CncWall4_F",[5.10242,-9.17529,-0.00143909],0,true,true], + ["Land_CncWall4_F",[3.97742,8.57471,-0.00143909],180,true,true], + ["Land_CncWall4_F",[4.47742,-17.4253,-0.00143909],90,true,true], + ["Land_CncWall4_F",[8.72742,7.19971,-0.00143909],210,true,true], + ["Land_CncWall4_F",[-1.27258,8.57471,-0.00143909],180,true,true], + ["Land_CncWall4_F",[4.48242,-12.2109,-0.00143909],90,true,true], + ["Land_CncWall4_F",[12.7274,-3.80029,-0.00143909],270,true,true], + ["Land_CncWall4_F",[12.7274,1.44971,-0.00143909],270,true,true], + ["Land_CncWall1_F",[11.6024,-7.92529,-0.00143909],315,true,true], + ["Land_CncWall1_F",[11.6024,5.44971,-0.00143909],210,true,true], + ["Land_CncWall1_F",[12.4774,4.57471,-0.00143909],240,true,true], + ["Land_CncWall1_F",[10.6024,-8.55029,-0.00143909],345,true,true], + ["Land_CncWall1_F",[12.3524,-6.92529,-0.00143909],300,true,true], + ["Land_New_WiredFence_10m_F",[14.9774,9.57471,-0.00143909],180,true,true], + ["Land_New_WiredFence_10m_F",[4.97742,9.57471,-0.00143909],180,true,true], + ["Land_New_WiredFence_10m_F",[-5.27258,-9.42529,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_F",[-5.02258,9.57471,-0.00143909],180,true,true], + ["Land_New_WiredFence_10m_F",[0.227417,-14.6753,-0.00143909],90,true,true], + ["Land_CncShelter_F",[8.84314,-9.19678,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_Dam_F",[24.9774,-0.050293,-0.00143909],180,true,true], + ["Land_New_WiredFence_10m_Dam_F",[19.7274,5.07471,-0.00143909],270,true,true], + ["Land_BagFence_Short_F",[17.7123,-14.3945,-0.00143909],90,true,true], + ["Land_Mil_WallBig_4m_F",[23.4019,-2.35938,-0.00143909],0,true,true], + ["Land_Mil_WallBig_4m_F",[17.7269,-11.4253,-0.00143909],270,true,true], + ["Land_Mil_WallBig_4m_F",[19.2269,-6.17529,-0.00143909],0,true,true], + ["Land_Mil_WallBig_4m_F",[20.0457,-13.5703,-0.00143909],180,true,true], + ["Land_Mil_WallBig_4m_F",[21.1479,-4.53125,-0.00143909],270,true,true], + ["Land_LampShabby_F",[29.5619,-40.2676,-0.00143909],210,true,true], + ["Land_LampShabby_F",[40.4146,-21.3286,-0.00143909],326.67,true,true], + ["Land_BagFence_Round_F",[34.9688,-45.8774,-0.00143909],315,true,true], + ["Land_BagFence_Round_F",[32.8423,-45.8774,-0.00143909],45,true,true], + ["Land_BagFence_Long_F",[35.7183,-43.7524,-0.00143909],90,true,true], + ["Land_CncBarrier_F",[29.725,-35.5542,-0.00143909],270,true,true], + ["Land_CncWall4_F",[41.7274,-38.6753,-0.00143909],0,true,true], + ["Land_CncWall4_F",[43.9774,-36.4253,-0.00143909],270,true,true], + ["Land_CncWall1_F",[38.4774,-38.4253,-0.00143909],15,true,true], + ["Land_CncWall1_F",[37.2401,-37.894,-0.00143909],30,true,true], + ["Land_CncWall1_F",[43.7274,-33.1753,-0.00143909],255,true,true], + ["Land_BagFence_End_F",[34.4688,-41.8774,-0.00143909],210,true,true], + ["Land_BagFence_End_F",[31.9678,-42.8774,-0.00143909],240,true,true], + ["Land_New_WiredFence_10m_F",[44.515,-24.8999,-0.00143909],270,true,true], + ["Land_New_WiredFence_10m_F",[34.7274,-39.1753,-0.00143909],0,true,true], + ["Land_New_WiredFence_10m_F",[44.515,-34.6499,-0.00143909],270,true,true], + ["Land_BagFence_Corner_F",[35.3433,-42.3774,-0.00143909],0,true,true], + ["Land_New_WiredFence_5m_F",[42.2655,-39.1499,-0.00143909],0,true,true], + ["Land_BagFence_Short_F",[32.2178,-44.0024,-0.00143909],90,true,true], + ["Land_Mil_WallBig_4m_F",[39.1169,-22.2583,-0.00143909],180,true,true], + ["Land_Mil_WallBig_4m_F",[31.9081,-20.9619,-0.00143909],180,true,true], + ["Land_Mil_WallBig_4m_F",[41.4412,-20.3794,-0.00143909],90,true,true], + ["Land_Mil_WallBig_4m_F",[27.9435,-20.9658,-0.00143909],180,true,true], + ["Land_Cargo_HQ_V1_F",[33.7463,-12.4639,-0.00143862],271.492,true,true], + ["Land_New_WiredFence_10m_F",[44.4774,-4.92529,-0.00143909],270,true,true], + ["Land_New_WiredFence_10m_F",[44.4774,-14.9253,-0.00143909],270,true,true], + ["Land_New_WiredFence_10m_F",[34.9774,-0.175293,-0.00143909],180,true,true], + ["Land_New_WiredFence_5m_F",[42.4774,-0.175293,-0.00143909],180,true,true], + ["Land_Mil_WallBig_4m_F",[31.3369,-2.34375,-0.00143909],0,true,true], + ["Land_Mil_WallBig_4m_F",[41.4467,-8.47168,-0.00143909],90,true,true], + ["Land_Mil_WallBig_4m_F",[41.4458,-12.4146,-0.00143909],90,true,true], + ["Land_Mil_WallBig_4m_F",[41.4386,-16.4019,-0.00143909],90,true,true], + ["Land_Mil_WallBig_4m_F",[35.2737,-2.33789,-0.00143909],0,true,true], + ["Land_Mil_WallBig_4m_F",[41.4539,-4.48438,-0.00143909],90,true,true], + ["Land_Mil_WallBig_4m_F",[39.1295,-2.32617,-0.00143909],0,true,true], + ["Land_Mil_WallBig_4m_F",[27.3386,-2.35352,-0.00143909],0,true,true] +]; +_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position. +_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position. + +_missionPatrolVehicles = [ + ["B_G_Offroad_01_armed_F",[21.4174,19.0781,0.00804281],90.3115], + ["B_G_Offroad_01_armed_F",[27.5131,-53.1431,0.00819397],268.528] +]; + +_submarinePatrolParameters = []; + +_airPatrols = []; + +_missionEmplacedWeapons = [ + +]; + +_missionGroups = [ + +]; + +_scubaGroupParameters = []; + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Green; +_maxNoAI = blck_MaxAI_Green; +_noAIGroups = blck_AIGrps_Green; +_noVehiclePatrols = blck_SpawnVeh_Green; +_noEmplacedWeapons = blck_SpawnEmplaced_Green; +_uniforms = blck_SkinList; +_headgear = blck_headgear; +_chanceLoot = 0.6; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,8,8,0],[0,0,0,8,8,0],[8,8,0,0,0,0],[0,0,0,0,12,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Green/lager.sqf b/@GMS/addons/custom_server/Missions/Green/lager.sqf new file mode 100644 index 0000000..dc68f3d --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Green/lager.sqf @@ -0,0 +1,185 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Green Mission with template = default"; +_crateLoot = blck_BoxLoot_Green; +_lootCounts = blck_lootCountsGreen; +_startMsg = "An enemy Camp was sighted in a nearby sector! Check the Green marker on your map for the location!"; +_endMsg = "The Camp at the Green Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorGreen"; +_markerMissionName = "Nachschublager"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_Tower_V1_F",[-8.1167,-39.0396,-0.00143862],180.738,true,true,[["O_HMG_01_high_F",[-4.98901,13.312,-0.0121193],359.999],["O_HMG_01_high_F",[-4.88916,0.893799,17.8798],359.999],["O_GMG_01_high_F",[2.86377,5.15186,17.7791],0.00110346],["O_GMG_01_high_F",[3.12354,-4.59814,17.8788],0.00619121],["O_HMG_01_high_F",[8.82837,21.6572,-0.0121193],359.999],["O_GMG_01_high_F",[-3.55591,26.4539,-0.0118098],360]],[]], + ["Land_Cargo_Tower_V1_F",[-8.7854,37.2058,-0.00143862],180.738,true,true,[["O_HMG_01_high_F",[-4.1167,-15.228,-0.0121188],359.999],["O_GMG_01_high_F",[-5.05029,0.812012,17.8801],359.999],["O_HMG_01_high_F",[2.97925,4.90308,17.7791],359.995],["O_HMG_01_high_F",[3.02808,-5.19946,17.8776],359.987],["O_HMG_01_high_F",[9.59595,-22.2854,-0.0121188],359.999],["O_GMG_01_high_F",[-1.95337,-25.9678,-0.0118098],360]],[]], + ["Land_Cargo_HQ_V1_F",[41.5171,-35.4209,-0.00143814],88.7297,true,true,[["O_HMG_01_high_F",[-4.19043,0.419922,3.1134],360],["O_GMG_01_high_F",[1.2395,-6.33594,3.11891],359.998]],[]], + ["Land_Cargo_HQ_V1_F",[41.6394,35.6191,-0.00143814],271.277,true,true,[["O_HMG_01_high_F",[1.75781,6.54565,3.11813],359.998]],[]], + ["Land_Cargo_Patrol_V1_F",[58.7402,-14.1282,-0.00143814],179.058,true,true,[["O_HMG_01_high_F",[0.936523,-0.546631,4.55561],186.318],["O_HMG_01_high_F",[-8.49658,3.90869,-0.0121207],0.00101132]],[]], + ["Land_Cargo_Patrol_V1_F",[58.6057,14.2329,-0.00143814],359.375,true,true,[["O_GMG_01_high_F",[1.16113,-1.15356,4.33123],360],["O_HMG_01_high_F",[-8.44897,-1.0686,-0.0121198],359.999]],[]] +]; + +_missionLandscape = [ + //["babe_helper",[-3950.48,-2427.52,-0.00143862],0,true,true], + //["Sign_Arrow_Green_F",[-3947.98,-2428.02,-0.00143862],0,true,true], + //["Sign_Arrow_F",[-3947.98,-2428.02,-0.00143862],0,true,true], + //["Sign_Arrow_Yellow_F",[-3947.98,-2428.02,-0.00143862],0,true,true], + ["Land_LampHalogen_F",[-16.9238,-29.4194,-0.00143814],175.993,true,true], + ["Land_HBarrierBig_F",[-16.6211,-36.4802,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-16.6907,-44.7676,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-16.8193,-28.7813,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-17.0107,-4.99146,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-16.8831,-20.9722,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-16.813,-12.6887,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-16.9338,3.10571,-0.00143862],271.533,true,true], + ["Land_LampHalogen_F",[-17.1384,26.0154,-0.00143814],175.993,true,true], + ["Land_HBarrierBig_F",[-17.126,26.9011,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-17.0623,19.092,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-16.8643,11.3931,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-17.0559,35.1846,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-17.2517,42.8821,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[10.6238,-49.76,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[4.90186,-29.2209,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[2.92627,-49.9541,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[-3.42188,-29.1743,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[-5.36133,-49.8767,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[-13.5088,-49.9219,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[13.3582,-29.1738,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[-11.5808,-29.1753,-0.00143862],181.755,true,true], + ["Land_LampHalogen_F",[6.08081,-17.4399,-0.00143814],183.353,true,true], + ["Land_Cargo_House_V1_F",[5.85425,-11.7749,-0.00143862],178.957,true,true], + ["Land_Cargo_House_V1_F",[12.7263,-11.8384,-0.00143862],180.484,true,true], + ["Land_Cargo_House_V1_F",[6.03076,-23.2114,-0.00143862],0.530105,true,true], + ["Land_Cargo_House_V1_F",[-9.97656,-7.45703,-0.00143862],270.031,true,true], + ["Land_Cargo_House_V1_F",[-9.95679,-0.756836,-0.00143862],270.244,true,true], + ["Land_Cargo_House_V1_F",[12.6707,-23.292,-0.00143862],0.742551,true,true], + ["Land_LampHalogen_F",[4.89917,14.9739,-0.00143814],183.353,true,true], + ["Land_HBarrierBig_F",[3.46533,26.0403,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[-4.86035,26.0867,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[11.9197,26.0874,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[-13.1709,26.1252,-0.00143862],181.755,true,true], + ["Land_Cargo_House_V1_F",[-9.93091,6.11108,-0.00143862],268.716,true,true], + ["Land_Cargo_House_V1_F",[11.5469,20.5737,-0.00143862],180.484,true,true], + ["Land_Cargo_House_V1_F",[11.4912,9.12012,-0.00143862],0.742551,true,true], + ["Land_Cargo_House_V1_F",[4.6748,20.6372,-0.00143862],178.957,true,true], + ["Land_Cargo_House_V1_F",[4.79419,9.20044,-0.00143862],0.530105,true,true], + ["Land_HBarrierBig_F",[-13.959,47.9253,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[10.1702,48.1106,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[1.88428,48.1787,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[-6.26294,48.124,-0.00143862],1.51588,true,true], + ["Land_LampHalogen_F",[37.4138,-49.6885,-0.00143814],86.6613,true,true], + ["Land_HBarrierBig_F",[18.4333,-49.7061,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[21.7261,-29.1707,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[34.4153,-49.5938,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[42.5332,-49.4375,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[26.7168,-49.782,-0.00143862],1.58276,true,true], + ["Land_LampHalogen_F",[24.2969,-4.63354,-0.00143814],175.763,true,true], + ["Land_LampHalogen_F",[24.0779,2.92041,-0.00143814],175.763,true,true], + ["Land_HBarrierBig_F",[24.7175,-16.5247,-0.00143862],270.156,true,true], + ["Land_HBarrierBig_F",[24.5884,-8.51978,-0.00143862],270.156,true,true], + ["Land_HBarrierBig_F",[20.874,3.03345,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[24.8879,-24.3479,-0.00143862],270.156,true,true], + ["Land_HBarrierBig_F",[21.095,-4.52222,-0.00143862],181.755,true,true], + ["Land_Cargo_House_V1_F",[19.4255,-11.8789,-0.00143862],180.272,true,true], + ["Land_Cargo_House_V1_F",[19.5381,-23.3779,-0.00143862],359.215,true,true], + ["Land_HBarrierBig_F",[24.0823,6.26489,-0.00143862],270.156,true,true], + ["Land_HBarrierBig_F",[23.7832,22.0911,-0.00143862],270.156,true,true], + ["Land_HBarrierBig_F",[23.9121,14.0862,-0.00143862],270.156,true,true], + ["Land_HBarrierBig_F",[20.2896,26.0906,-0.00143862],181.755,true,true], + ["Land_Cargo_House_V1_F",[18.3564,9.03589,-0.00143862],359.215,true,true], + ["Land_Cargo_House_V1_F",[18.2441,20.533,-0.00143862],180.272,true,true], + ["Land_LampHalogen_F",[37.1499,49.4319,-0.00143814],270.972,true,true], + ["Land_HBarrierBig_F",[17.8696,48.312,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[33.9624,48.3108,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[25.6785,48.3774,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[41.6587,48.5078,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[53.832,-28.3086,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[53.8938,-44.4204,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[53.9326,-36.322,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[50.8213,-49.5146,-0.00143862],1.58276,true,true], + ["Land_LampHalogen_F",[61.6257,-8.93774,-0.00143814],183.353,true,true], + ["Land_HBarrierBig_F",[53.5598,-12.5808,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[58.1006,-9.04248,-0.00143862],180.639,true,true], + ["Land_HBarrierBig_F",[53.6702,-20.0735,-0.00143862],271.533,true,true], + ["Land_LampHalogen_F",[61.2739,9.27808,-0.00143814],183.353,true,true], + ["Land_HBarrierBig_F",[57.9741,9.22607,-0.00143862],180.457,true,true], + ["Land_HBarrierBig_F",[53.0159,20.7566,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[53.2136,13.0596,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[53.0928,28.8538,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[53.1624,37.1411,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[52.9644,44.8403,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[49.8362,48.4373,-0.00143862],1.51588,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[-2.28174,0.128662,-0.00143862],_crateLoot,_lootCounts,0.000181514] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["Exile_Car_Hunter",[24.8054,-67.8333,0.00875282],89.6558], + ["Exile_Car_HEMMT",[24.8997,69.1799,-0.00138235],91.5468], + ["O_LSV_02_armed_F",[74.0911,1.21655,-0.0377212],359.999] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Green; +_maxNoAI = blck_MaxAI_Green; +_noAIGroups = blck_AIGrps_Green; +_noVehiclePatrols = blck_SpawnVeh_Green; +_noEmplacedWeapons = blck_SpawnEmplaced_Green; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Green"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Green/munitionsResearch.sqf b/@GMS/addons/custom_server/Missions/Green/munitionsResearch.sqf new file mode 100644 index 0000000..f0bcd3c --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Green/munitionsResearch.sqf @@ -0,0 +1,103 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Green Mission with template = default"; +_crateLoot = blck_BoxLoot_Green; +_lootCounts = blck_lootCountsOrange; +_startMsg = "An munitions research center was sighted in a nearby sector! Check the Green marker on your map for the location!"; +_endMsg = "The Sector at the Green Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorGreen"; +_markerMissionName = "Munitions"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = []; + +_garrisonedBuilding_ATLsystem = [ + +]; + +_missionLandscape = [ + ["Flag_AltisColonial_F",[3,3,0],0,[false,false]], + ["Land_Research_HQ_F",[-40.4258,-57.4492,-7.15256e-007],0,[true,false]], + ["Land_Research_HQ_F",[79.9063,68.1406,2.38419e-007],0,[true,false]], + ["Land_Research_house_V1_F",[-27.6895,70.9883,0],0,[true,false]], + ["Land_Research_house_V1_F",[-110.166,14.3926,0],0,[true,false]], + ["Land_Research_house_V1_F",[54.5078,-70.8457,0],0,[true,false]], + ["Land_Cargo_Patrol_V1_F",[111.865,11.9375,9.53674e-007],0,[true,false]], + ["Land_Cargo_HQ_V2_F",[-115.473,-44.5977,-4.76837e-007],0,[true,false]], + ["Land_SharpRock_apart",[-59.6836,-59.5996,-4.76837e-007],0,[false,false]], + ["Land_W_sharpRock_apart",[-81.6973,-42.4082,-4.76837e-007],0,[false,false]], + ["Land_SharpRock_apart",[-96.2168,-5.32031,4.76837e-007],0,[false,false]], + ["Land_Limestone_01_apart_F",[-79.2305,43.4219,0],0,[false,false]], + ["Land_Limestone_01_apart_F",[-50.2344,82.4746,0],0,[false,false]], + ["Land_BluntRock_apart",[3.88281,-71.5488,-2.38419e-007],0,[false,false]], + ["Land_Limestone_01_apart_F",[35.8926,-77.5918,0],0,[false,false]], + ["Land_Limestone_01_apart_F",[78.541,-52.3926,-4.76837e-007],0,[false,false]], + ["Land_Limestone_01_apart_F",[103.91,-6.88867,0],0,[false,false]], + ["Land_BluntRock_apart",[-11.5586,93.9688,-2.38419e-007],0,[false,false]], + ["Land_W_sharpStone_02",[54.7344,96.7012,0],0,[false,false]], + ["Land_BluntRock_apart",[77.4453,88.8301,-2.38419e-007],0,[false,false]], + ["Land_SharpRock_apart",[104.758,45.668,0],0,[false,false]], + ["Land_Limestone_01_02_F",[99.5117,23.752,-4.76837e-007],0,[false,false]], + ["Land_Limestone_01_02_F",[49.8477,50.0039,0],0,[false,false]], + ["Land_Limestone_01_02_F",[-8.14844,32.2227,4.76837e-007],0,[false,false]], + ["Land_Limestone_01_02_F",[-35.334,35.1465,-2.38419e-007],0,[false,false]], + ["Land_SharpStone_02",[-28.6523,1.33398,4.76837e-007],0,[false,false]], + ["Land_SharpStone_02",[-58.707,-7.46094,-4.76837e-007],0,[false,false]], + ["Land_Limestone_01_02_F",[64.5078,31.9707,0],0,[false,false]], + ["Land_Limestone_01_02_F",[33.7246,11.5469,0],0,[false,false]], + ["Land_SharpStone_02",[69.4277,-3.20313,0],0,[false,false]], + ["Land_SharpStone_02",[53.7227,-40.1777,-2.38419e-007],0,[false,false]], + ["Land_Limestone_01_02_F",[-6.26563,-46.0996,-4.76837e-007],0,[false,false]] +]; + +_missionLootBoxes = []; + +_missionLootVehicles = []; + +_missionPatrolVehicles = [ + [selectRandom blck_AIPatrolVehiclesGreen,[27.8945,100.275,0],0,[true,false]], + [selectRandom blck_AIPatrolVehiclesGreen,[-84.7793,72.2617,9.53674e-007],0,[true,false]], + [selectRandom blck_AIPatrolVehiclesGreen,[-87.8457,-109.947,7.15256e-007],0,[true,false]] +]; + +_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position. +_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position. +_missionEmplacedWeapons = []; +_missionGroups = []; + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Green; +_maxNoAI = blck_MaxAI_Green; +_noAIGroups = blck_AIGrps_Green; +_noVehiclePatrols = blck_SpawnVeh_Green; +_noEmplacedWeapons = blck_SpawnEmplaced_Green; +_uniforms = blck_SkinList; +_headgear = blck_headgear; +_chanceLoot = 0.6; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,8,8,0],[0,0,0,8,8,0],[8,8,0,0,0,0],[0,0,0,0,12,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Green/tko_camp.sqf b/@GMS/addons/custom_server/Missions/Green/tko_camp.sqf new file mode 100644 index 0000000..7a86deb --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Green/tko_camp.sqf @@ -0,0 +1,174 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Green Mission with template = default"; +_crateLoot = blck_BoxLoot_Green; +_lootCounts = blck_lootCountsGreen; +_startMsg = "An enemy Military Camp was sighted in a nearby sector! Check the Green marker on your map for the location!"; +_endMsg = "The Military Camp at the Green Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorGreen"; +_markerMissionName = "Military Camp"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_House_V3_F",[8.00928,15.6453,-0.00143909],0,true,true,[["B_HMG_01_high_F",[-8.28516,3.27148,-0.0121188],0.000433404]],[]] +]; + +_missionLandscape = [ + //["babe_helper",[-3327.46,-2809.42,-0.00143909],0,true,true], + //["Sign_Arrow_Green_F",[-3324.96,-2809.92,-0.00143909],0,true,true], + //["Sign_Arrow_F",[-3324.96,-2809.92,-0.00143909],0,true,true], + //["Sign_Arrow_Yellow_F",[-3324.96,-2809.92,-0.00143909],0,true,true], + ["Land_HBarrier_Big_F",[-2.76221,-30.3596,-0.00143909],0,true,true], + ["Land_HBarrier_1_F",[-9.74463,-27.0081,-0.00143909],180,true,true], + ["Land_BagFence_Long_F",[-9.74268,-29.0042,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-8.36182,-30.3743,-0.00143909],180,true,true], + ["CamoNet_OPFOR_open_F",[-0.361816,-1.01782,-0.00143909],180,true,true], + ["Land_HBarrier_3_F",[-15.3853,-13.9866,-0.00143909],315,true,true], + ["Land_HBarrier_Big_F",[-3.61768,-5.26782,-0.00143909],180,true,true], + ["Land_HBarrier_Big_F",[-5.46533,3.40405,-0.00143909],0,true,true], + ["Land_HBarrier_Big_F",[-18.5767,-14.5354,-0.00143909],45,true,true], + ["Land_HBarrier_Big_F",[-12.4985,-20.3987,-0.00143909],45,true,true], + ["Land_HBarrier_1_F",[-22.9692,-2.77563,-0.00143909],270,true,true], + ["Land_HBarrier_1_F",[-23.3423,0.478271,-0.00143909],15,true,true], + ["Land_BagFence_Long_F",[-24.5767,-9.90649,-0.00143909],315,true,true], + ["Land_BagFence_Long_F",[-22.8071,-8.13794,-0.00143909],315,true,true], + ["Land_BagFence_Long_F",[-18.7427,-12.3811,-0.00143909],315,true,true], + ["Land_BagFence_Long_F",[-23.2368,2.26245,-0.00143909],90,true,true], + ["Land_BagFence_Long_F",[-21.8657,6.25952,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[-22.3657,-13.8772,-0.00143909],135,true,true], + ["Land_BagFence_Long_F",[-9.74268,-25.1174,-0.00143909],90,true,true], + ["Land_BagFence_Long_F",[-18.5649,-8.3147,-0.00143909],45,true,true], + ["Land_BagFence_Long_F",[-23.2368,4.88843,-0.00143909],90,true,true], + ["Land_BagFence_Long_F",[-25.2192,0.111084,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[-25.2192,-2.76587,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[-26.5884,-1.39282,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-24.3989,-13.9709,-0.00143909],225,true,true], + ["Land_BagFence_Round_F",[-17.5747,-10.4006,-0.00143909],270,true,true], + ["Land_BagFence_Round_F",[-25.5493,-11.9026,-0.00143909],90,true,true], + ["Land_BagFence_Round_F",[-20.7212,-7.07642,-0.00143909],180,true,true], + ["Land_BagFence_End_F",[-9.7583,-23.3167,-0.00143909],270,true,true], + ["Land_Cargo_Patrol_V3_F",[-10.9263,-16.053,-0.00143862],45,true,true], + ["Land_Cargo_House_V3_F",[-3.09424,-20.7424,-0.00143909],180,true,true], + ["CamoNet_OPFOR_open_F",[-0.225098,8.17163,-0.00143909],0,true,true], + ["Land_HBarrier_3_F",[-1.85596,17.1208,-0.00143909],180,true,true], + ["Land_HBarrier_3_F",[-2.70752,19.4275,-0.00143909],90,true,true], + ["Land_HBarrier_Big_F",[-19.6177,9.36694,-0.00143909],270,true,true], + ["Land_HBarrier_Big_F",[-19.6646,17.5466,-0.00143909],90,true,true], + ["Land_HBarrier_1_F",[-4.93994,9.58374,-0.00143909],270,true,true], + ["Land_HBarrier_1_F",[-16.4673,27.1775,-0.00143909],285,true,true], + ["Land_HBarrier_1_F",[-2.68408,25.3513,-0.00143909],120,true,true], + ["Land_BagFence_Long_F",[-2.30908,23.7244,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-19.7173,23.0505,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-19.7153,25.9265,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-18.3462,27.4314,-0.00143909],0,true,true], + ["Land_Cargo_Patrol_V3_F",[-15.4087,10.7146,-0.00143862],90,true,true], + ["Land_HBarrier_5_F",[-15.7407,14.7517,-0.00143909],0,true,true], + ["Land_HBarrier_5_F",[-6.33838,7.41382,-0.00143909],270,true,true], + ["Land_HBarrier_Big_F",[4.87646,-28.4124,-0.00143909],330,true,true], + ["Land_HBarrier_3_F",[10.5171,0.540771,-0.00143909],0,true,true], + ["Land_HBarrier_3_F",[11.3687,-7.17212,-0.00143909],270,true,true], + ["Land_HBarrier_Big_F",[23.0171,-13.6155,-0.00143909],285,true,true], + ["Land_HBarrier_Big_F",[3.04834,3.62964,-0.00143909],1.36604e-005,true,true], + ["Land_HBarrier_Big_F",[11.8745,-23.9084,-0.00143909],330,true,true], + ["Land_HBarrier_Big_F",[7.90967,0.343506,-0.00143909],90,true,true], + ["Land_HBarrier_Big_F",[24.978,-5.36938,-0.00143909],285,true,true], + ["Land_HBarrier_Big_F",[11.2808,-4.62427,-0.00143909],180,true,true], + ["Land_HBarrier_Big_F",[25.9077,2.68921,-0.00143909],270,true,true], + ["Land_HBarrier_1_F",[4.35498,-2.41431,-0.00143909],90,true,true], + ["Land_HBarrier_1_F",[21.0073,-21.7493,-0.00143909],30,true,true], + ["Land_BagFence_Long_F",[19.1304,-21.6174,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[16.5073,-21.6174,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[7.89795,6.07788,-0.00143909],270,true,true], + ["Land_Loudspeakers_F",[21.2026,-15.3088,-0.00143909],196,true,true], + ["Land_HBarrier_5_F",[17.7847,6.20483,-0.00143909],270,true,true], + ["Land_HBarrier_5_F",[11.3823,-11.5022,-0.00143909],270,true,true], + ["Land_HBarrier_5_F",[5.75146,-0.244385,-0.00143909],90,true,true], + ["Land_Cargo_House_V3_F",[5.49561,-9.99927,-0.00143909],90,true,true], + ["Land_Cargo_House_V3_F",[5.03076,-17.6174,-0.00143909],150,true,true], + ["CamoNet_OPFOR_open_F",[22.6538,9.88257,-0.00143909],270,true,true], + ["Land_HBarrier_3_F",[18.7593,9.75757,-0.00143909],0,true,true], + ["Land_HBarrier_Big_F",[9.20264,21.2849,-0.00143909],180,true,true], + ["Land_HBarrier_Big_F",[15.9546,18.7849,-0.00143909],225,true,true], + ["Land_HBarrier_Big_F",[22.4077,16.1892,-0.00143909],0,true,true], + ["Land_HBarrier_Big_F",[0.70459,21.283,-0.00143909],180,true,true], + ["Land_HBarrier_Big_F",[25.7827,11.0642,-0.00143909],90,true,true], + ["Land_BagFence_Long_F",[4.57764,19.0466,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[4.57764,16.1716,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[11.3843,19.2634,-0.00143909],90,true,true], + ["Land_BagFence_End_F",[4.57764,14.4216,-0.00143909],90,true,true], + ["Land_BagFence_End_F",[7.68896,7.77515,-0.00143909],240,true,true], + ["Land_BagFence_End_F",[11.3843,17.5134,-0.00143909],90,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[1.55273,0.0065918,-0.00143957],_crateLoot,_lootCounts,0.000522983] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["B_LSV_01_armed_F",[-41.377,-5.40894,-0.0238895],0.00171121], + ["B_LSV_01_armed_F",[39.5627,-5.26709,-0.0237107],0.00169144] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Green; +_maxNoAI = blck_MaxAI_Green; +_noAIGroups = blck_AIGrps_Green; +_noVehiclePatrols = blck_SpawnVeh_Green; +_noEmplacedWeapons = blck_SpawnEmplaced_Green; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Green"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Orange/Ammunition_depot.sqf b/@GMS/addons/custom_server/Missions/Orange/Ammunition_depot.sqf new file mode 100644 index 0000000..50b83f8 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Orange/Ammunition_depot.sqf @@ -0,0 +1,173 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Orange Mission with template = default"; +_crateLoot = blck_BoxLoot_Orange; +_lootCounts = blck_lootCountsOrange; +_startMsg = "An Anemy Ammunition Depot was sighted in a nearby sector! Check the Orange marker on your map for the location!"; +_endMsg = "The Ammunition depot at the Orange Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[200,200],"Solid"]; +_markerColor = "ColorOrange"; +_markerMissionName = "Ammunition Depot"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_MilOffices_V1_F",[0.936035,53.2339,-0.00146103],0.0551743,true,true,[["B_HMG_01_high_F",[-14.6453,4.44092,0.48988],0.00164355],["B_HMG_01_high_F",[16.2224,2.84473,0.48988],0.00164314],["B_HMG_01_high_F",[16.2043,-18.5793,-0.0121188],360],["B_HMG_01_high_F",[19.0071,-25.5498,-0.0121188],360]],[]] +]; + + + +_missionLandscape = [ + //["babe_helper",[-3584.79,-2745.02,-0.00146103],0,true,true], + //["Sign_Arrow_Green_F",[-3582.29,-2745.52,-0.00146103],0,true,true], + //["Sign_Arrow_F",[-3582.29,-2745.52,-0.00146103],0,true,true], + //["Sign_Arrow_Yellow_F",[-3582.29,-2745.52,-0.00146103],0,true,true], + ["Land_dp_smallTank_F",[-23.4897,0.757568,-0.00146103],315.055,true,true], + ["Land_HBarrier_Big_F",[-30.251,0.998047,-0.00146103],90.6364,true,true], + ["Land_HBarrier_Big_F",[-30.0261,-4.99609,-0.00146103],88.8324,true,true], + ["Land_HBarrier_Big_F",[-24.3879,-7.97534,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[-15.9822,-8.03101,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[-7.62939,-8.03394,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[-30.4287,8.68091,-0.00146103],90.6364,true,true], + ["Land_HBarrier_Big_F",[-30.5715,17.0325,-0.00146103],90.6364,true,true], + ["Land_HBarrier_Big_F",[-30.8035,33.8059,-0.00146103],90.6364,true,true], + ["Land_HBarrier_Big_F",[-30.7122,25.4006,-0.00146103],90.6364,true,true], + ["Land_i_Barracks_V1_F",[-21.0911,25.2551,-0.00146103],270.055,true,true], + ["Land_LampHalogen_F",[-30.0498,68.0146,-0.00146055],240.055,true,true], + ["Land_Medevac_house_V1_F",[-25.7917,63.0088,-0.00146103],359.798,true,true], + ["Land_Medevac_house_V1_F",[-25.821,54.4678,-0.00146103],179.534,true,true], + ["Land_Tank_rust_F",[-26.2607,48.0527,-0.00146103],180.055,true,true], + ["Land_HBarrier_Big_F",[-26.0667,70.3225,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[-0.915771,70.2883,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[-9.30811,70.2639,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[-17.6609,70.2668,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[-30.9465,42.1575,-0.00146103],90.6364,true,true], + ["Land_HBarrier_Big_F",[-31.3367,67.2683,-0.00146103],90.6364,true,true], + ["Land_HBarrier_Big_F",[-31.1025,50.5112,-0.00146103],90.6364,true,true], + ["Land_HBarrier_Big_F",[-31.1938,58.9167,-0.00146103],90.6364,true,true], + ["Land_LampHalogen_F",[12.158,-7.74023,-0.00146055],90.0552,true,true], + ["Land_HBarrier_Big_F",[17.4336,-8.0415,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[25.7888,-8.03149,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[0.675049,-7.98291,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[9.08105,-8.03857,-0.00146103],181.637,true,true], + ["Land_HelipadSquare_F",[31.1362,2.08008,-0.00146103],180.086,true,true], + ["Land_BagFence_Long_F",[23.658,6.82251,-0.00146103],90.0552,true,true], + ["Land_BagFence_Long_F",[14.4004,5.9585,-0.00146103],90.0552,true,true], + ["Land_i_Shed_Ind_F",[0.762939,3.73413,-0.00146103],179.98,true,true], + ["Land_PortableLight_double_F",[19.6589,24.5911,-0.00146103],240.055,true,true], + ["Land_BagFence_Round_F",[13.7778,8.4668,-0.00146103],225.055,true,true], + ["Land_BagFence_Round_F",[24.2874,9.32739,-0.00146103],135.055,true,true], + ["Land_CncWall4_F",[19.353,37.1301,-0.00146103],269.856,true,true], + ["Land_CncWall4_F",[19.3921,31.9155,-0.00146103],269.856,true,true], + ["Land_BagFence_Long_F",[11.2759,9.09644,-0.00146103],180.055,true,true], + ["Land_BagFence_Long_F",[26.7832,9.94385,-0.00146103],0.0551743,true,true], + ["Land_LampHalogen_F",[19.0601,40.1711,-0.00146055],315.055,true,true], + ["Land_HBarrier_Big_F",[15.8428,70.2297,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[7.49023,70.2327,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[24.198,70.2397,-0.00146103],181.637,true,true], + ["Land_CncWall4_F",[22.377,40.0833,-0.00146103],0,true,true], + ["Land_CncWall4_F",[27.5962,40.116,-0.00146103],0,true,true], + ["Land_LampHalogen_F",[45.8774,-7.93433,-0.00146055],60.0552,true,true], + ["Land_LampHalogen_F",[45.5952,6.93604,-0.00146055],180.055,true,true], + ["Land_Tank_rust_F",[43.6697,0.581299,-0.00146103],90.0552,true,true], + ["Land_HBarrier_Big_F",[42.5474,-8.09009,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[47.6099,-4.77002,-0.00146103],90.055,true,true], + ["Land_HBarrier_Big_F",[34.1946,-8.08716,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[47.4333,3.63403,-0.00146103],90.055,true,true], + ["Land_BagFence_Round_F",[53.0293,5.18921,-0.00146103],315.055,true,true], + ["Land_BagFence_Long_F",[50.5286,4.56616,-0.00146103],180.055,true,true], + ["Land_BagFence_Long_F",[39.7786,6.70166,-0.00146103],90.0552,true,true], + ["Land_Wall_IndCnc_Pole_F",[46.9377,21.1001,-0.00146103],90.0552,true,true], + ["Land_Shed_Big_F",[31.9468,31.2043,-0.00146151],89.7488,true,true], + ["Land_HBarrier_Big_F",[46.9426,33.5571,-0.00146103],90.055,true,true], + ["Land_HBarrier_Big_F",[47.1191,25.1531,-0.00146103],90.055,true,true], + ["Land_BagFence_Round_F",[39.1563,9.17456,-0.00146103],225.055,true,true], + ["Land_BagFence_Round_F",[53.0469,24.4275,-0.00146103],225.055,true,true], + ["Land_BagFence_Long_F",[36.6648,9.80176,-0.00146103],180.055,true,true], + ["Land_BagFence_Long_F",[53.6729,21.9277,-0.00146103],90.0552,true,true], + ["Land_BagFence_Long_F",[50.5496,25.0559,-0.00146103],180.055,true,true], + ["Land_BagFence_Long_F",[53.6707,7.68921,-0.00146103],270.055,true,true], + ["Land_BarGate_F",[47.6548,14.5193,-0.00146103],90.0552,true,true], + ["Land_LampHalogen_F",[44.5273,41.2136,-0.00146055],60.0552,true,true], + ["Land_HBarrier_Big_F",[46.7148,41.9067,-0.00146103],90.055,true,true], + ["Land_HBarrier_Big_F",[46.2976,58.6626,-0.00146103],90.055,true,true], + ["Land_HBarrier_Big_F",[32.6038,70.1841,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[40.9565,70.1812,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[46.0698,67.0122,-0.00146103],90.055,true,true], + ["Land_HBarrier_Big_F",[46.4741,50.2585,-0.00146103],90.055,true,true], + ["Land_CncWall4_F",[37.9797,40.1345,-0.00146103],0,true,true], + ["Land_CncWall4_F",[32.7908,40.125,-0.00146103],0,true,true], + ["Land_CncWall4_F",[43.1743,40.1436,-0.00146103],0,true,true], + ["Land_TTowerBig_1_F",[33.9404,56.3271,-0.00146103],0.0551743,true,true] +]; + +_missionLootBoxes = [ +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["B_G_Offroad_01_armed_F",[-51.5793,28.9631,0.00801468],179.03], + ["B_G_Offroad_01_armed_F",[9.30664,88.3091,0.00802708],89.9029], + ["B_G_Offroad_01_armed_F",[72.2974,6.63599,0.00802183],0.00106337] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Orange; +_maxNoAI = blck_MaxAI_Orange; +_noAIGroups = blck_AIGrps_Orange; +_noVehiclePatrols = blck_SpawnVeh_Orange; +_noEmplacedWeapons = blck_SpawnEmplaced_Orange; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Orange"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Orange/Camp_Moreell.sqf b/@GMS/addons/custom_server/Missions/Orange/Camp_Moreell.sqf new file mode 100644 index 0000000..aba0098 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Orange/Camp_Moreell.sqf @@ -0,0 +1,157 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Orange Mission with template = default"; +_crateLoot = blck_BoxLoot_Orange; +_lootCounts = blck_lootCountsOrange; +_startMsg = "Enemy Camp Moreell was sighted in a nearby sector! Check the Orange marker on your map for the location!"; +_endMsg = "The Camp Moreell at the Orange Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[200,200],"Solid"]; +_markerColor = "ColorOrange"; +_markerMissionName = "Camp Moreell"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_Patrol_V3_F",[-3.45557,32.6038,-0.00143814],163.034,true,true,[["O_HMG_01_high_F",[-1.75244,0.382568,4.33092],0.00157772]],[]], + ["Land_Cargo_HQ_V3_F",[1.5835,1.53711,-0.00143814],90.021,true,true,[["O_HMG_01_high_F",[-4.53003,1.89331,3.1134],270.551],["O_Mortar_01_F",[0.884277,-5.92041,3.1624],178.341],["O_GMG_01_high_F",[-11.2842,-8.48218,-0.0118098],221.694],["O_HMG_01_high_F",[-12.6897,-6.82007,-0.0121179],236.126],["O_GMG_01_high_F",[10.885,-11.4487,-0.0118084],147.658],["O_GMG_01_high_F",[19.3098,-6.53003,-0.0118093],147.655]],[]], + ["Land_Cargo_Patrol_V3_F",[10.9478,34.4741,-0.00143814],195.395,true,true,[["O_HMG_01_high_F",[1.41943,0.690674,4.33092],359.999]],[]] +]; + + + +_missionLandscape = [ + ["Land_HBarrier_Big_F",[-14.1831,0.348877,-0.00143862],54.7855,true,true], + ["Land_HBarrier_1_F",[-7.70728,-8.24048,-0.00143862],295.873,true,true], + ["Land_BagFence_Long_F",[-11.6091,-6.83057,-0.00143862],45.3947,true,true], + ["Land_BagFence_Round_F",[-12.8318,-4.68042,-0.00143862],90.3947,true,true], + ["Land_BagFence_Round_F",[-9.44946,-8.13599,-0.00143862],0.394724,true,true], + ["Land_Cargo_House_V3_F",[-11.8579,27.8225,-0.00143862],341.505,true,true], + ["CamoNet_OPFOR_open_F",[-14.8772,18.198,-0.00143862],90.3947,true,true], + ["Land_HBarrier_Big_F",[-24.5461,25.9207,-0.00143862],195.395,true,true], + ["Land_HBarrier_Big_F",[-7.8335,30.6655,-0.00143862],255.395,true,true], + ["Land_HBarrier_Big_F",[-24.0242,10.8638,-0.00143862],165.395,true,true], + ["Land_HBarrier_Big_F",[-18.0986,7.95679,-0.00143862],255.395,true,true], + ["Land_HBarrier_Big_F",[-19.7212,22.9065,-0.00143862],90.3947,true,true], + ["Land_HBarrier_Big_F",[-31.6633,25.0271,-0.00143862],150.395,true,true], + ["Land_HBarrier_Big_F",[-12.3518,34.6216,-0.00143862],345.395,true,true], + ["Land_HBarrier_Big_F",[-17.9399,30.3276,-0.00143862],300.395,true,true], + ["Land_HBarrier_Big_F",[-19.3733,16.4546,-0.00143862],90.3947,true,true], + ["Land_HBarrier_1_F",[-32.8965,12.5454,-0.00143862],42.5069,true,true], + ["Land_HBarrier_1_F",[-30.3511,10.0146,-0.00143862],42.5069,true,true], + ["CamoNet_OPFOR_big_F",[-27.2468,18.4834,-0.00143862],75.3947,true,true], + ["Land_BagFence_Round_F",[-33.3694,10.7087,-0.00143862],87.5069,true,true], + ["Land_BagFence_Round_F",[-31.8938,9.28491,-0.00143862],357.507,true,true], + ["Land_HBarrier_5_F",[9.15552,-4.91626,-0.00143862],269.593,true,true], + ["Land_HBarrier_5_F",[9.13477,0.585938,-0.00143862],269.593,true,true], + ["Land_Cargo_House_V3_F",[25.2329,2.59155,-0.00143862],105.395,true,true], + ["Land_HBarrier_Big_F",[-2.57373,-8.99463,-0.00143862],180.395,true,true], + ["Land_HBarrier_Big_F",[26.4961,-2.62256,-0.00143862],195.395,true,true], + ["Land_HBarrier_Big_F",[5.79712,-8.80371,-0.00143862],180.395,true,true], + ["Land_HBarrier_1_F",[14.0208,-8.50757,-0.00143862],334.157,true,true], + ["Land_HBarrier_1_F",[22.1511,-3.42603,-0.00143862],324.626,true,true], + ["Land_HBarrier_1_F",[19.1423,-5.3833,-0.00143862],324.626,true,true], + ["Land_HBarrier_1_F",[10.7295,-9.9397,-0.00143862],334.157,true,true], + ["Land_BagFence_Round_F",[22.5408,-5.08765,-0.00143862],279.626,true,true], + ["Land_BagFence_Round_F",[20.8389,-6.23145,-0.00143862],9.62595,true,true], + ["Land_BagFence_Round_F",[14.1299,-10.2107,-0.00143862],289.157,true,true], + ["Land_BagFence_Round_F",[12.262,-11.0569,-0.00143862],19.157,true,true], + ["Land_HBarrier_5_F",[7.05835,9.52783,-0.00143862],181.048,true,true], + ["Land_HBarrier_5_F",[26.3564,29.2161,-0.00143862],195.395,true,true], + ["Land_HBarrier_5_F",[9.08203,5.92139,-0.00143862],269.593,true,true], + ["Land_HBarrier_Big_F",[18.55,34.8018,-0.00143862],195.395,true,true], + ["Land_HBarrier_Big_F",[1.32568,35.1333,-0.00143862],255.395,true,true], + ["Land_HBarrier_Big_F",[7.22388,36.5254,-0.00143862],285.395,true,true], + ["Land_HBarrier_Big_F",[-4.35571,36.8228,-0.00143862],345.395,true,true], + ["Land_HBarrier_Big_F",[7.04761,30.9424,-0.00143862],195.395,true,true], + ["Land_BagFence_Long_F",[24.1768,15.7207,-0.00143862],105.395,true,true], + ["Land_BagFence_Long_F",[22.7461,10.5283,-0.00143862],285.395,true,true], + ["Land_HBarrier_3_F",[25.4558,17.1135,-0.00143862],195.395,true,true], + ["Land_HBarrier_3_F",[22.7898,29.1609,-0.00143862],285.395,true,true], + ["Land_HBarrier_3_F",[23.3201,8.88696,-0.00143862],195.395,true,true], + ["Land_HBarrier_Big_F",[12.9075,38.3318,-0.00143862],195.395,true,true], + ["Land_HBarrier_Big_F",[30.9158,1.41919,-0.00143862],105.395,true,true], + ["Land_HBarrier_5_F",[29.5054,24.8923,-0.00143862],269.593,true,true], + ["Land_HBarrier_5_F",[29.5303,19.5947,-0.00143862],269.593,true,true], + ["CamoNet_OPFOR_open_F",[28.1597,12.0786,-0.00143862],195.395,true,true], + ["Land_HBarrier_Big_F",[31.4031,16.592,-0.00143862],0.394724,true,true], + ["Land_HBarrier_Big_F",[28.876,7.35913,-0.00143862],195.395,true,true], + ["Land_HBarrier_1_F",[33.3733,10.5449,-0.00143862],15.3947,true,true], + ["Land_HBarrier_1_F",[27.9988,12.1958,-0.00143862],195.395,true,true], + ["Land_BagFence_Long_F",[32.6428,9.11694,-0.00143862],285.395,true,true], + ["Land_BagFence_Long_F",[28.4683,13.8879,-0.00143862],105.395,true,true], + ["Land_HBarrier_3_F",[29.9619,29.1274,-0.00143862],105.395,true,true], + ["Land_HBarrier_3_F",[34.8462,14.4836,-0.00143862],90.3947,true,true], + ["Land_BagBunker_Large_F",[27.696,35.6018,-0.00143862],195.395,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[9.8,9.8,0],_crateLoot,_lootCounts,0.000320471] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["O_LSV_02_armed_F",[34.9805,-28.0225,-0.0376697],359.999] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = [ + +]; + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Orange; +_maxNoAI = blck_MaxAI_Orange; +_noAIGroups = blck_AIGrps_Orange; +_noVehiclePatrols = blck_SpawnVeh_Orange; +_noEmplacedWeapons = blck_SpawnEmplaced_Orange; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Orange"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Orange/Operations_Command.sqf b/@GMS/addons/custom_server/Missions/Orange/Operations_Command.sqf new file mode 100644 index 0000000..181243a --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Orange/Operations_Command.sqf @@ -0,0 +1,185 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Orange Mission with template = default"; +_crateLoot = blck_BoxLoot_Orange; +_lootCounts = blck_lootCountsOrange; +_startMsg = "An Operations Command was sighted in a nearby sector! Check the Orange marker on your map for the location!"; +_endMsg = "The Operations Command at the Orange Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorOrange"; +_markerMissionName = "Operations Command"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_Patrol_V3_F",[-26.1375,13.395,-0.00143862],104.247,true,true,[["O_HMG_01_high_F",[-1.16919,-1.02051,4.33092],359.999]],[]], + ["Land_Cargo_Tower_V3_F",[0.0512695,-43.2329,-0.00143909],1.37485,true,true,[["O_HMG_01_high_F",[-11.6333,3.14819,-0.0121188],360],["O_Mortar_01_F",[-3.08325,4.21802,17.9254],0.000187431],["O_GMG_01_high_F",[-3.21069,-3.16113,17.8767],360],["O_GMG_01_high_F",[4.70557,-0.741943,17.8767],360]],[]], + ["Land_Cargo_Patrol_V3_F",[-22.3018,-36.6943,-0.00143862],16.3749,true,true,[["O_HMG_01_high_F",[-1.44019,-0.544922,4.33092],0.000570454],["O_HMG_01_high_F",[-6.95337,5.57886,-0.0121193],359.998]],[]], + ["Land_Cargo_HQ_V3_F",[0.157227,3.02832,-0.00143862],91.3748,true,true,[["O_Mortar_01_F",[1.9917,1.24707,3.16241],359.999],["O_HMG_01_high_F",[-4.22266,1.80176,3.1134],359.999],["O_HMG_01_high_F",[3.10205,-5.8584,3.1134],359.999],["O_HMG_01_high_F",[-6.48584,7.63452,-0.0121193],359.998],["O_HMG_01_high_F",[9.13306,15.3284,-0.0121193],359.998]],[]], + ["Land_Cargo_Tower_V3_F",[-16.1003,25.6072,-0.00143909],181.375,true,true,[["O_HMG_01_high_F",[3.25903,3.35229,17.8764],359.997],["O_GMG_01_high_F",[-4.9707,0.915771,17.8767],359.995]],[]], + ["Land_Cargo_Patrol_V3_F",[21.9438,-2.25854,-0.00143862],269.918,true,true,[["O_GMG_01_high_F",[1.11499,0.921387,4.33123],360]],[]], + ["Land_Cargo_House_V3_F",[7.7749,-26.0698,-0.00143909],1.37485,true,true,[["O_HMG_01_high_F",[2.2688,8.65552,-0.0121188],360]],[]] +]; + + + +_missionLandscape = [ + ["CamoNet_OPFOR_open_F",[-31.8352,-29.0081,-0.00143909],235.13,true,true], + ["CamoNet_OPFOR_open_F",[-43.8352,-16.6941,-0.00143909],181.375,true,true], + ["Land_HBarrier_Big_F",[-37.4087,-8.59814,-0.00143909],286.375,true,true], + ["Land_HBarrier_Big_F",[-29.3643,-37.0271,-0.00143909],37.1575,true,true], + ["Land_HBarrier_Big_F",[-35.4788,-31.5889,-0.00143909],50.6964,true,true], + ["Land_HBarrier_Big_F",[-38.9624,-25.2727,-0.00143909],255.154,true,true], + ["Land_BagBunker_Large_F",[-43.364,-16.4709,-0.00143909],91.3748,true,true], + ["Land_HBarrier_Big_F",[-34.405,-1.28906,-0.00143909],301.375,true,true], + ["Land_HBarrier_Big_F",[-29.0862,14.3416,-0.00143909],286.375,true,true], + ["Land_HBarrier_Big_F",[-31.1816,6.38184,-0.00143909],286.375,true,true], + ["Land_LampHalogen_F",[-29.8584,2.74854,-0.00143862],256.375,true,true], + ["Land_HBarrierWall_corridor_F",[-16.1533,-40.845,-0.00143909],106.375,true,true], + ["Land_HBarrier_Big_F",[-10.9395,-43.5535,-0.00143909],13.6286,true,true], + ["Land_HBarrier_Big_F",[-3.8855,-44.2878,-0.00143909],0.866833,true,true], + ["Land_HBarrier_Big_F",[-22.3318,-40.6543,-0.00143909],200.888,true,true], + ["Land_HBarrier_Big_F",[4.41016,-44.2852,-0.00143909],0.866833,true,true], + ["Land_HBarrier_5_F",[2.9043,-17.4326,-0.00143909],271.375,true,true], + ["Land_HBarrier_5_F",[-5.53174,-9.47681,-0.00143909],181.375,true,true], + ["Land_Cargo_House_V3_F",[-1.97241,-25.8367,-0.00143909],1.37485,true,true], + ["Land_HBarrier_Big_F",[-9.21558,-15.051,-0.00143909],271.375,true,true], + ["Land_HBarrier_Big_F",[-5.97168,-20.2385,-0.00143909],181.375,true,true], + ["Land_HBarrier_Big_F",[2.51318,-20.2158,-0.00143909],181.375,true,true], + ["Land_HBarrier_3_F",[2.83398,-22.9663,-0.00143909],91.3748,true,true], + ["Land_HBarrier_3_F",[2.75586,-26.2246,-0.00143909],91.3748,true,true], + ["Land_HBarrier_3_F",[2.94287,-10.5574,-0.00143909],271.375,true,true], + ["Land_HBarrier_3_F",[0.964355,-9.63477,-0.00143909],1.37485,true,true], + ["Land_HBarrier_3_F",[-6.09448,-25.2507,-0.00143909],271.375,true,true], + ["Land_HBarrier_3_F",[1.72021,-27.6951,-0.00143909],1.37485,true,true], + ["Land_HBarrier_3_F",[-6.02515,-22.2542,-0.00143909],271.375,true,true], + ["Land_HBarrier_3_F",[4.84912,-27.7708,-0.00143909],1.37485,true,true], + ["Land_HBarrier_3_F",[-5.15039,-27.5239,-0.00143909],1.37485,true,true], + ["Land_HelipadCircle_F",[-22.2104,-10.7046,-0.00143909],90.8075,true,true], + ["Land_TTowerBig_2_F",[-3.03882,-15.5251,-0.00143909],1.37485,true,true], + ["Land_HBarrier_5_F",[-24.4253,17.3018,-0.00143909],194.949,true,true], + ["Land_HBarrier_5_F",[-12.988,7.96045,-0.00143909],181.375,true,true], + ["Land_HBarrier_5_F",[-26.457,9.23633,-0.00143909],16.5662,true,true], + ["Land_Cargo_House_V3_F",[-15.2529,3.47607,-0.00143909],91.3748,true,true], + ["Land_HBarrier_Big_F",[-5.96069,14.4766,-0.00143909],1.375,true,true], + ["Land_HBarrier_Big_F",[2.22437,14.509,-0.00143909],1.375,true,true], + ["Land_HBarrier_Big_F",[-9.21826,9.43896,-0.00143909],271.375,true,true], + ["Land_HBarrier_Big_F",[-9.23389,1.12988,-0.00143909],271.375,true,true], + ["Land_HBarrier_Big_F",[-9.2439,-6.94019,-0.00143909],271.375,true,true], + ["Land_HBarrier_Big_F",[-26.9719,22.2693,-0.00143909],286.375,true,true], + ["Land_HBarrier_3_F",[-10.071,23.9849,-0.00143909],91.3748,true,true], + ["Land_HBarrier_Big_F",[-14.6584,26.7698,-0.00143909],1.375,true,true], + ["Land_HBarrier_Big_F",[-22.5229,26.7314,-0.00143909],1.375,true,true], + ["Land_HBarrier_Big_F",[-6.28784,26.8616,-0.00143909],1.375,true,true], + ["Land_HBarrier_Big_F",[1.70752,25.8137,-0.00143909],16.375,true,true], + ["CamoNet_OPFOR_open_F",[13.4675,-46.5574,-0.00143909],256.375,true,true], + ["Land_BagBunker_Large_F",[13.6731,-46.6125,-0.00143909],346.375,true,true], + ["Land_HBarrier_Big_F",[25.0122,-8.42798,-0.00143909],89.245,true,true], + ["Land_HBarrier_Big_F",[20.2207,-26.6072,-0.00143909],346.375,true,true], + ["Land_HBarrier_Big_F",[10.3425,-20.1804,-0.00143909],181.375,true,true], + ["Land_HBarrier_Big_F",[13.3196,-15.1829,-0.00143909],91.375,true,true], + ["Land_HBarrier_Big_F",[25.2847,-22.1433,-0.00143909],89.8961,true,true], + ["Land_HBarrier_Big_F",[15.2939,-23.981,-0.00143909],61.375,true,true], + ["Land_HBarrier_Big_F",[17.6921,-30.4187,-0.00143909],261.124,true,true], + ["Land_HBarrier_Big_F",[18.2314,-37.9956,-0.00143909],275.055,true,true], + ["Land_HBarrier_1_F",[26.3027,-13.0132,-0.00143909],224.245,true,true], + ["Land_HBarrier_1_F",[26.3459,-17.553,-0.00143909],134.896,true,true], + ["Land_HBarrier_3_F",[24.4424,-13.2629,-0.00143909],179.245,true,true], + ["Land_HBarrier_3_F",[23.5449,-11.0381,-0.00143909],89.245,true,true], + ["Land_HBarrier_3_F",[23.5166,-19.6731,-0.00143909],269.896,true,true], + ["Land_HBarrier_3_F",[24.4841,-17.4751,-0.00143909],359.896,true,true], + ["Land_HBarrier_3_F",[26.4421,-11.2278,-0.00143909],89.245,true,true], + ["Land_HBarrier_3_F",[26.521,-19.3137,-0.00143909],269.896,true,true], + ["Land_Tank_rust_F",[17.9231,-22.1641,-0.00143909],238.726,true,true], + ["Land_LampHalogen_F",[25.1262,-18.7678,-0.00143862],151.326,true,true], + ["Land_LampHalogen_F",[25.188,-11.5505,-0.00143862],241.375,true,true], + ["Land_HBarrierWall_corridor_F",[8.88965,13.3088,-0.00143909],76.3748,true,true], + ["Land_HBarrierWall_corridor_F",[11.9426,4.98389,-0.00143909],1.37485,true,true], + ["Land_HBarrierWall_corridor_F",[14.0635,10.1843,-0.00143909],331.375,true,true], + ["CamoNet_OPFOR_open_F",[16.8806,13.8459,-0.00143909],46.3748,true,true], + ["Land_HBarrierWall4_F",[12.9727,17.2073,-0.00143909],301.375,true,true], + ["Land_HBarrierWall4_F",[13.927,14.678,-0.00143909],241.375,true,true], + ["Land_HBarrier_Big_F",[24.7051,-0.242188,-0.00143909],89.245,true,true], + ["Land_HBarrier_Big_F",[8.90503,22.6189,-0.00143909],33.6192,true,true], + ["Land_HBarrier_Big_F",[13.2727,-6.86401,-0.00143909],91.375,true,true], + ["Land_HBarrier_Big_F",[24.3503,8.13452,-0.00143909],89.245,true,true], + ["Land_HBarrier_Big_F",[13.3027,-0.90332,-0.00143909],91.375,true,true], + ["Land_BagBunker_Small_F",[20.2654,17.5417,-0.00143909],226.375,true,true], + ["Land_LampHalogen_F",[10.6421,2.27686,-0.00143862],241.375,true,true], + ["Land_LampHalogen_F",[11.4541,10.5645,-0.00143862],136.375,true,true], + ["Land_HBarrierWall_corner_F",[21.3845,12.748,-0.00143909],46.3748,true,true], + ["Land_HBarrierWall_corner_F",[15.5208,19.1467,-0.00143909],346.375,true,true], + ["Land_HBarrierWall_corner_F",[18.5425,9.32104,-0.00143909],136.375,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[-22.2104,-10.704,0],_crateLoot,_lootCounts,0.000320471] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["O_LSV_02_unarmed_F",[-53.4402,-44.895,-0.037971],359.999], + ["O_LSV_02_armed_F",[7.56689,40.9209,-0.0379591],359.999], + ["O_LSV_02_armed_F",[38.9788,-44.417,-0.0373936],359.999] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Orange; +_maxNoAI = blck_MaxAI_Orange; +_noAIGroups = blck_AIGrps_Orange; +_noVehiclePatrols = blck_SpawnVeh_Orange; +_noEmplacedWeapons = blck_SpawnEmplaced_Orange; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Orange/Outpost.sqf b/@GMS/addons/custom_server/Missions/Orange/Outpost.sqf new file mode 100644 index 0000000..f7eb8a0 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Orange/Outpost.sqf @@ -0,0 +1,155 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Orange Mission with template = default"; +_crateLoot = blck_BoxLoot_Orange; +_lootCounts = blck_lootCountsOrange; +_startMsg = "An Anemy Outpost was sighted in a nearby sector! Check the Orange marker on your map for the location!"; +_endMsg = "The Outpost at the Orange Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[200,200],"Solid"]; +_markerColor = "ColorOrange"; +_markerMissionName = "Outpost"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_Patrol_V3_F",[-25.0786,-7.48535,-0.00143814],91.041,true,true,[["B_HMG_01_high_F",[-1.1084,-1.16431,4.33092],0.000110027]],[]], + ["Land_Cargo_Patrol_V3_F",[-12.2451,10.7849,-0.00143814],181.041,true,true,[["B_HMG_01_high_F",[-1.25928,1.22339,4.33092],0.00719478],["B_HMG_01_high_F",[3.44727,7.05835,-0.0121179],0.0015095],["B_HMG_01_high_F",[12.4185,7.21094,-0.0121183],0.00126386]],[]], + ["Land_Cargo_Patrol_V3_F",[24.0273,-12.3459,-0.00143814],269.838,true,true,[["B_HMG_01_high_F",[1.03076,-1.20874,4.33092],359.999],["B_HMG_01_high_F",[-11.6992,1.96533,-0.0121193],0.00189448]],[]], + ["Land_Cargo_HQ_V3_F",[6.30029,-0.909424,-0.00143814],270.038,true,true,[["B_HMG_01_high_F",[4.31299,-1.39307,3.70484],47.4694],["B_HMG_01_high_F",[-9.66064,-15.759,-0.0121193],0.00274103]],[]] +]; + + + +_missionLandscape = [ + //["Sign_Arrow_F",[-5049.41,-2726.72,-0.00143862],0,true,true], + //["Sign_Arrow_Green_F",[-5049.41,-2726.72,-0.00143862],0,true,true], + //["Sign_Arrow_Yellow_F",[-5049.41,-2726.72,-0.00143862],0,true,true], + //["babe_helper",[-5051.91,-2726.22,-0.00143862],78.6345,true,true], + ["Land_HBarrier_Big_F",[-28.8394,-8.42627,-0.00143862],91.041,true,true], + ["Land_CncShelter_F",[-10.0513,-26.2283,-0.00143862],0.0913576,true,true], + ["Land_HBarrierWall6_F",[0.581543,-12.7048,-0.00143862],91.041,true,true], + ["Land_HBarrierWall6_F",[-19.6943,-14.0881,-0.00143862],271.041,true,true], + ["Land_HBarrierWall6_F",[-5.04932,-19.8594,-0.00143862],181.041,true,true], + ["Land_HBarrier_Big_F",[-25.6514,-11.7356,-0.00143862],181.041,true,true], + ["Land_BagFence_Round_F",[-3.4668,-15.3809,-0.00143862],166.041,true,true], + ["Land_BagFence_Round_F",[-14.3892,-29.0183,-0.00143862],31.041,true,true], + ["Land_BagFence_Round_F",[-7.70801,-28.5588,-0.00143862],46.041,true,true], + ["Land_BagFence_Round_F",[-14.9326,-26.8369,-0.00143862],121.041,true,true], + ["Land_BagFence_Round_F",[-12.2075,-28.4763,-0.00143862],301.041,true,true], + ["Land_BagFence_Round_F",[-4.56348,-17.2019,-0.00143862],76.041,true,true], + ["Land_BagFence_Round_F",[-5.41797,-26.3496,-0.00143862],226.041,true,true], + ["Land_BagFence_Round_F",[-5.45801,-28.5986,-0.00143862],316.041,true,true], + ["Land_HBarrierWall_corridor_F",[-10.1372,-24.7649,-0.00143862],271.041,true,true], + ["Land_HBarrierWall4_F",[-13.7993,-19.9495,-0.00143862],181.041,true,true], + ["Land_HBarrierWall_corner_F",[-19.2007,-20,-0.00143862],181.041,true,true], + ["Land_HBarrierWall_corner_F",[0.711426,-19.4619,-0.00143862],91.041,true,true], + ["Land_LampShabby_F",[-19.8394,5.67236,-0.00143862],136.041,true,true], + ["Land_CncShelter_F",[-5.49072,10.4077,-0.00143862],181.041,true,true], + ["Land_HBarrierWall6_F",[-19.7158,-1.58594,-0.00143862],271.041,true,true], + ["Land_HBarrier_Big_F",[-25.4941,-3.23608,-0.00143862],1.04101,true,true], + ["Land_HBarrier_Big_F",[-12.9121,14.7922,-0.00143862],181.041,true,true], + ["Land_HBarrier_Big_F",[-16.2207,11.6028,-0.00143862],271.041,true,true], + ["Land_HBarrier_Big_F",[-7.72217,11.448,-0.00143862],91.041,true,true], + ["Land_HelipadSquare_F",[-9.93359,-5.85596,-0.00143862],0.362537,true,true], + ["Land_BagFence_Round_F",[-9.72363,18.6138,-0.00143862],136.041,true,true], + ["Land_BagFence_Round_F",[0.90918,18.9221,-0.00143862],226.041,true,true], + ["Land_BagFence_Round_F",[-7.59863,18.5762,-0.00143862],226.041,true,true], + ["Land_BagFence_Round_F",[-1.21631,18.9595,-0.00143862],136.041,true,true], + ["Land_BagFence_Long_F",[-7.02197,15.9382,-0.00143862],91.041,true,true], + ["Land_BagFence_Long_F",[1.48633,16.2864,-0.00143862],91.041,true,true], + ["Land_BagFence_Long_F",[-1.88379,16.5967,-0.00143862],91.041,true,true], + ["Land_BagFence_Long_F",[-10.3921,16.2498,-0.00143862],91.041,true,true], + ["Land_HBarrierWall_corridor_F",[-1.52295,8.83716,-0.00143862],181.041,true,true], + ["Land_HBarrierWall4_F",[3.81348,13.4924,-0.00143862],1.04101,true,true], + ["Land_HBarrierWall4_F",[-6.83154,5.68286,-0.00143862],1.04101,true,true], + ["Land_HBarrierWall4_F",[-16.5835,5.60962,-0.00143862],1.04101,true,true], + ["Land_HBarrierWall_corner_F",[-19.8418,5.16846,-0.00143862],271.041,true,true], + ["Land_HBarrierWall_corner_F",[-0.694824,13.0745,-0.00143862],271.041,true,true], + ["Land_LampShabby_F",[9.37598,-10.3596,-0.00143862],1.04101,true,true], + ["Land_HBarrierWall6_F",[7.20605,-19.8293,-0.00143862],181.041,true,true], + ["Land_HBarrierWall6_F",[6.87402,-10.5664,-0.00143862],181.041,true,true], + ["Land_HBarrier_Big_F",[24.5322,-16.5854,-0.00143862],179.838,true,true], + ["Land_HBarrier_Big_F",[24.5107,-8.08472,-0.00143862],359.838,true,true], + ["Land_HBarrier_Big_F",[27.7676,-11.3262,-0.00143862],269.838,true,true], + ["Land_BagFence_Round_F",[13.2651,-9.68359,-0.00143862],226.041,true,true], + ["Land_BagFence_Round_F",[11.1396,-9.64404,-0.00143862],136.041,true,true], + ["Land_HBarrierWall4_F",[13.9541,-19.9521,-0.00143862],181.041,true,true], + ["Land_Cargo_House_V3_F",[7.46289,-15.906,-0.00143862],271.041,true,true], + ["Land_HBarrierWall_corner_F",[18.2109,-19.53,-0.00143862],91.041,true,true], + ["Land_LampShabby_F",[18.0684,13.9841,-0.00143862],226.041,true,true], + ["Land_HBarrierWall6_F",[17.8833,3.73438,-0.00143862],91.041,true,true], + ["Land_HBarrierWall6_F",[17.9854,-4.51611,-0.00143862],91.041,true,true], + ["Land_HBarrierWall6_F",[10.5679,13.6208,-0.00143862],1.04101,true,true], + ["Land_HBarrierWall4_F",[17.7358,9.23999,-0.00143862],91.041,true,true], + ["Land_HBarrierWall_corner_F",[17.3179,13.7493,-0.00143862],1.04101,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[-9.93359,-5.85596,0],_crateLoot,_lootCounts,0.000320471] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["B_G_Offroad_01_armed_F",[35.8379,4.96387,0.00813246],0.00104452] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Orange; +_maxNoAI = blck_MaxAI_Orange; +_noAIGroups = blck_AIGrps_Orange; +_noVehiclePatrols = blck_SpawnVeh_Orange; +_noEmplacedWeapons = blck_SpawnEmplaced_Orange; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Orange/dashq.sqf b/@GMS/addons/custom_server/Missions/Orange/dashq.sqf new file mode 100644 index 0000000..fcd8d5d --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Orange/dashq.sqf @@ -0,0 +1,231 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Orange Mission with template = default"; +_crateLoot = blck_BoxLoot_Orange; +_lootCounts = blck_lootCountsOrange; +_startMsg = "An enemy HQ center was sighted in a nearby sector! Check the Orange marker on your map for the location!"; +_endMsg = "The HQ at the Orange Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorOrange"; +_markerMissionName = "Operations Base"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_HQ_V1_F",[-0.358154,-18.6514,-0.00143862],179.905,true,true,[["B_HMG_01_high_F",[-6.5437,1.09253,3.11855],145.121],["B_HMG_01_high_F",[-13.9094,-10.7791,-0.0121183],206.716]],[]] +]; + +_missionLandscape = [ + ["Land_PortableLight_double_F",[-42.614,-26.0178,-0.00143909],225.577,true,true], + ["Land_CncWall4_F",[-45.3523,-21.509,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-33.5913,-28.1145,-0.00143909],359.905,true,true], + ["Land_CncWall4_F",[-38.842,-28.124,-0.00143909],359.905,true,true], + ["Land_CncWall1_F",[-44.093,-26.7578,-0.00143909],44.9051,true,true], + ["Land_CncWall1_F",[-43.0923,-27.5063,-0.00143909],29.9051,true,true], + ["Land_CncWall1_F",[-45.2207,-24.6689,-0.00143909],74.9051,true,true], + ["Land_CncWall1_F",[-44.845,-25.7581,-0.00143909],59.9051,true,true], + ["Land_CncWall1_F",[-41.9668,-28.0046,-0.00143909],14.9051,true,true], + ["Land_BagBunker_01_large_green_F",[-49.7271,-16.9226,-0.00143909],90.2555,true,true], + ["Land_Cargo_Tower_V1_F",[-36.3582,-19.3394,-0.00143909],89.905,true,true], + ["Land_CncWall4_F",[-33.4968,-9.73975,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-45.3792,-5.75879,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-45.3867,-0.508789,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-45.3694,-11.0095,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-45.3955,4.74121,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-45.4041,9.99072,-0.00143909],89.9051,true,true], + ["Land_CncWall1_F",[-32.0076,1.70923,-0.00143909],74.9051,true,true], + ["Land_CncWall1_F",[-31.6313,0.61792,-0.00143909],59.9051,true,true], + ["Land_BagBunker_01_large_green_F",[-49.7959,14.4089,-0.00143909],90.2555,true,true], + ["Land_Cargo_HQ_V1_F",[-34.4014,20.1455,-0.00143862],269.491,true,true], + ["Land_CncWall4_F",[-45.4214,20.4915,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-45.4302,25.7415,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-38.8159,32.2512,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-33.5662,32.2607,-0.00143909],179.905,true,true], + ["Land_CncWall1_F",[-43.0654,31.7451,-0.00143909],149.905,true,true], + ["Land_CncWall1_F",[-41.9753,32.1199,-0.00143909],164.905,true,true], + ["Land_CncWall1_F",[-44.0635,30.9924,-0.00143909],134.905,true,true], + ["Land_CncWall1_F",[-44.8127,29.991,-0.00143909],119.905,true,true], + ["Land_CncWall1_F",[-45.3108,28.8672,-0.00143909],104.905,true,true], + ["Land_BagFence_Round_F",[-15.3367,-30.4338,-0.00143909],44.9051,true,true], + ["Land_BagFence_Round_F",[-25.8376,-30.2017,-0.00143909],314.905,true,true], + ["Land_PortableLight_double_F",[-2.30811,-29.9211,-0.00143909],44.7366,true,true], + ["Land_CncWall4_F",[-2.09229,-28.0632,-0.00143909],359.905,true,true], + ["Land_CncWall4_F",[-26.9856,-16.3538,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[-13.8528,-21.4565,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-26.9783,-21.6038,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[-7.34155,-28.0718,-0.00143909],359.905,true,true], + ["Land_CncWall4_F",[-13.8606,-16.2065,-0.00143909],89.9051,true,true], + ["Land_CncWall1_F",[-13.3455,-25.7068,-0.00143909],59.9051,true,true], + ["Land_CncWall1_F",[-12.593,-26.7058,-0.00143909],44.9051,true,true], + ["Land_CncWall1_F",[-27.5952,-25.8552,-0.00143909],299.905,true,true], + ["Land_CncWall1_F",[-27.0967,-24.7288,-0.00143909],284.905,true,true], + ["Land_CncWall1_F",[-13.7209,-24.6165,-0.00143909],74.9051,true,true], + ["Land_CncWall1_F",[-10.4666,-27.9514,-0.00143909],14.9051,true,true], + ["Land_CncWall1_F",[-29.3428,-27.6084,-0.00143909],329.905,true,true], + ["Land_CncWall1_F",[-30.4331,-27.9832,-0.00143909],344.905,true,true], + ["Land_CncWall1_F",[-11.592,-27.4541,-0.00143909],29.9051,true,true], + ["Land_CncWall1_F",[-28.3438,-26.855,-0.00143909],314.905,true,true], + ["Land_BagFence_Long_F",[-25.2168,-27.7002,-0.00143909],269.905,true,true], + ["Land_BagFence_Long_F",[-15.9658,-27.9348,-0.00143909],269.905,true,true], + ["Land_BagFence_Long_F",[-12.8359,-31.0559,-0.00143909],359.905,true,true], + ["Land_BagFence_Long_F",[-28.3364,-30.8318,-0.00143909],179.905,true,true], + ["Land_BagFence_Round_F",[-7.19092,10.5073,-0.00143909],44.9051,true,true], + ["Land_PortableLight_double_F",[-11.7207,0.158936,-0.00143909],135.598,true,true], + ["Land_PortableLight_double_F",[-29.4041,0.418701,-0.00143909],218.658,true,true], + ["Land_CncWall4_F",[-7.24731,-9.69678,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-20.376,-1.73682,-0.00143909],359.905,true,true], + ["Land_CncWall4_F",[-25.6274,-1.74609,-0.00143909],359.905,true,true], + ["Land_CncWall4_F",[-15.1272,-1.72925,-0.00143909],359.905,true,true], + ["Land_CncWall1_F",[-10.4058,-9.82935,-0.00143909],164.905,true,true], + ["Land_CncWall1_F",[-10.8779,-1.22144,-0.00143909],329.905,true,true], + ["Land_CncWall1_F",[-9.13086,0.531982,-0.00143909],299.905,true,true], + ["Land_CncWall1_F",[-11.4956,-10.2031,-0.00143909],149.905,true,true], + ["Land_CncWall1_F",[-8.63257,1.65747,-0.00143909],284.905,true,true], + ["Land_CncWall1_F",[-11.9688,-1.59668,-0.00143909],344.905,true,true], + ["Land_CncWall1_F",[-27.4932,-12.1047,-0.00143909],239.905,true,true], + ["Land_CncWall1_F",[-12.4951,-10.9553,-0.00143909],134.905,true,true], + ["Land_CncWall1_F",[-13.2424,-11.9563,-0.00143909],119.905,true,true], + ["Land_CncWall1_F",[-29.8777,-1.12744,-0.00143909],29.9051,true,true], + ["Land_CncWall1_F",[-9.87939,-0.470703,-0.00143909],314.905,true,true], + ["Land_CncWall1_F",[-30.3708,-9.86011,-0.00143909],194.905,true,true], + ["Land_CncWall1_F",[-30.8787,-0.378906,-0.00143909],44.9051,true,true], + ["Land_CncWall1_F",[-29.2468,-10.3582,-0.00143909],209.905,true,true], + ["Land_CncWall1_F",[-13.7417,-13.0818,-0.00143909],104.905,true,true], + ["Land_CncWall1_F",[-28.2449,-11.1069,-0.00143909],224.905,true,true], + ["Land_CncWall1_F",[-27.1179,-13.1948,-0.00143909],254.905,true,true], + ["Land_CncWall1_F",[-28.7524,-1.62573,-0.00143909],14.9051,true,true], + ["Land_BagFence_Long_F",[-7.8208,13.0066,-0.00143909],269.905,true,true], + ["Land_BagFence_Long_F",[-4.69067,9.88257,-0.00143909],359.905,true,true], + ["Land_Cargo_Patrol_V1_F",[-19.8857,1.92358,-0.00143862],359.905,true,true], + ["Land_Cargo_HQ_V1_F",[-17.6404,20.1672,-0.00143862],269.491,true,true], + ["Land_HelipadSquare_F",[0.169189,17.6489,-0.00143909],359.936,true,true], + ["Land_BagFence_Round_F",[-7.21484,25.1335,-0.00143909],134.905,true,true], + ["Land_BagFence_Round_F",[-8.354,36.8232,-0.00143909],134.905,true,true], + ["Land_CncWall4_F",[-23.0659,32.2773,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-12.615,32.3005,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-17.8164,32.2856,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-7.396,32.3115,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-2.25146,35.2305,-0.00143909],179.977,true,true], + ["Land_CncWall4_F",[-28.3167,32.269,-0.00143909],179.905,true,true], + ["Land_CncWall1_F",[-4.03638,32.6663,-0.00143909],149.461,true,true], + ["Land_BagFence_Long_F",[-4.71533,25.7625,-0.00143909],359.905,true,true], + ["Land_BagFence_Long_F",[-5.85449,37.4521,-0.00143909],359.905,true,true], + ["Land_BagFence_Long_F",[-7.83618,22.6321,-0.00143909],89.9051,true,true], + ["Land_BagFence_Long_F",[-8.97534,34.3218,-0.00143909],89.9051,true,true], + ["Land_PortableLight_double_F",[12.1106,-26.1833,-0.00143909],149.905,true,true], + ["Land_CncWall4_F",[15.0215,-21.5349,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[8.38428,-28.1101,-0.00143909],359.905,true,true], + ["Land_CncWall4_F",[15.0137,-16.2847,-0.00143909],269.905,true,true], + ["Land_CncWall1_F",[14.9031,-24.6597,-0.00143909],284.905,true,true], + ["Land_CncWall1_F",[12.6567,-27.5383,-0.00143909],329.905,true,true], + ["Land_CncWall1_F",[11.5676,-27.9133,-0.00143909],344.905,true,true], + ["Land_CncWall1_F",[14.4038,-25.7854,-0.00143909],299.905,true,true], + ["Land_CncWall1_F",[13.656,-26.7861,-0.00143909],314.905,true,true], + ["Land_BagFence_Long_F",[12.5037,-23.1807,-0.00143909],89.3707,true,true], + ["Land_BagFence_Long_F",[11.072,-24.5706,-0.00143909],359.905,true,true], + ["Land_BagFence_Long_F",[10.9707,-21.8315,-0.00143909],179.371,true,true], + ["Land_BagFence_Long_F",[9.56812,-23.1921,-0.00143909],269.905,true,true], + ["Land_BagBunker_01_large_green_F",[3.83936,-32.5405,-0.00143909],0,true,true], + ["Land_TTowerSmall_2_F",[11.5024,-23.7861,-0.00143909],179.905,true,true], + ["Land_Cargo_House_V1_F",[9.00171,-10.2603,-0.00143909],89.905,true,true], + ["Land_Cargo_House_V1_F",[8.98071,2.86475,-0.00143909],89.905,true,true], + ["Land_Medevac_house_V1_F",[8.99219,-3.76099,-0.00143909],90.3921,true,true], + ["Land_BagFence_Round_F",[8.05933,10.2788,-0.00143909],314.905,true,true], + ["Land_PortableLight_double_F",[12.8176,7.44629,-0.00143909],134.905,true,true], + ["Land_CncWall4_F",[14.9788,4.71558,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[15.0054,-11.0347,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[14.9961,-5.78418,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[14.9878,-0.533936,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[14.9705,9.96558,-0.00143909],269.905,true,true], + ["Land_BagFence_Long_F",[8.68018,12.7852,-0.00143909],269.905,true,true], + ["Land_BagFence_Long_F",[5.55933,9.6499,-0.00143909],179.905,true,true], + ["Land_BagBunker_01_large_green_F",[19.272,16.1316,-0.00143909],269.832,true,true], + ["Land_BagFence_Round_F",[7.91089,24.9097,-0.00143909],224.905,true,true], + ["Land_BagFence_Round_F",[9.05054,36.9314,-0.00143909],224.905,true,true], + ["Land_PortableLight_double_F",[11.8816,29.2671,-0.00143909],44.7366,true,true], + ["Land_CncWall4_F",[14.9529,20.4653,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[8.43433,32.3303,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[2.95288,35.22,-0.00143909],179.977,true,true], + ["Land_CncWall4_F",[14.9443,25.7156,-0.00143909],269.905,true,true], + ["Land_CncWall1_F",[14.4373,29.9646,-0.00143909],239.905,true,true], + ["Land_CncWall1_F",[14.813,28.8745,-0.00143909],254.905,true,true], + ["Land_CncWall1_F",[13.6853,30.9644,-0.00143909],224.905,true,true], + ["Land_CncWall1_F",[12.6843,31.7119,-0.00143909],209.905,true,true], + ["Land_CncWall1_F",[11.5593,32.2114,-0.00143909],194.905,true,true], + ["Land_CncWall1_F",[5.11841,32.7061,-0.00143909],209.905,true,true], + ["Land_BagFence_Long_F",[8.54004,22.4104,-0.00143909],89.9051,true,true], + ["Land_BagFence_Long_F",[9.67969,34.4321,-0.00143909],89.9051,true,true], + ["Land_BagFence_Long_F",[5.40894,25.5288,-0.00143909],179.905,true,true], + ["Land_BagFence_Long_F",[6.54858,37.5505,-0.00143909],179.905,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[0.0717773,16.9431,-0.00143814],_crateLoot,_lootCounts,0.000320471] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["O_T_LSV_02_armed_F",[-62.7971,0.422119,-0.0236669],0.00164848], + ["O_T_LSV_02_armed_F",[31.9084,-7.18774,-0.0238085],0.00168349] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Orange; +_maxNoAI = blck_MaxAI_Orange; +_noAIGroups = blck_AIGrps_Orange; +_noVehiclePatrols = blck_SpawnVeh_Orange; +_noEmplacedWeapons = blck_SpawnEmplaced_Orange; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "orange"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Orange/derbunker.sqf b/@GMS/addons/custom_server/Missions/Orange/derbunker.sqf new file mode 100644 index 0000000..4b9f76a --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Orange/derbunker.sqf @@ -0,0 +1,120 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Orange Mission with template = default"; +_crateLoot = blck_BoxLoot_Orange; +_lootCounts = blck_lootCountsOrange; +_startMsg = "An enemy Bunker was sighted in a nearby sector! Check the Orange marker on your map for the location!"; +_endMsg = "The Bunker at the Orange Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorOrange"; +_markerMissionName = "DerBunker"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Bunker_01_big_F",[-15.925,9.02295,0.760561],90.071,true,true,[["O_HMG_01_high_F",[-5.45947,-3.38574,0.109706],359.994]],[]], + ["Land_Bunker_01_tall_F",[-15.377,-8.8042,-0.00143909],90.071,true,true,[["O_HMG_01_high_F",[5.50562,-2.54395,-0.0121193],0.00145215],["O_HMG_01_high_F",[-1.72095,-0.109375,4.96893],0.00948966]],[]], + ["Land_Bunker_01_tall_F",[-15.76,28.606,-0.00143909],90.071,true,true,[["O_HMG_01_high_F",[5.47437,2.47559,-0.0121179],0.000581241],["O_HMG_01_high_F",[-1.38867,-0.0722656,4.967],359.999],["O_HMG_01_high_F",[11.8271,5.87988,-0.0121188],0.00143633]],[]], + ["Land_Bunker_01_big_F",[20.199,10.729,0.760561],270.416,true,true,[["O_HMG_01_high_F",[5.86328,3.25586,0.109697],0.0117801]],[]], + ["Land_Bunker_01_tall_F",[19.8899,-8.86914,-0.00143909],270.416,true,true,[["O_HMG_01_high_F",[-5.13818,-2.33496,-0.0121174],0.0002874],["O_HMG_01_high_F",[1.45801,0.0512695,4.96698],360]],[]], + ["Land_Bunker_01_tall_F",[19.731,28.542,-0.00143909],270.416,true,true,[["O_HMG_01_high_F",[-5.00977,2.1792,-0.0121188],0.00143735],["O_HMG_01_high_F",[1.80957,0.26709,4.96756],360],["O_HMG_01_high_F",[-12.0127,6.1333,-0.0121193],0.00145178]],[]] +]; + +_missionLandscape = [ + //["Sign_Arrow_F",[-3163.22,-5166.85,-0.00143909],0,true,true], + //["Sign_Arrow_Green_F",[-3163.22,-5166.85,-0.00143909],0,true,true], + //["Sign_Arrow_Yellow_F",[-3163.22,-5166.85,-0.00143909],0,true,true], + //["babe_helper",[-3165.72,-5166.35,-0.00143909],90.8645,true,true], + ["Land_Bunker_01_blocks_3_F",[-13.762,17.5518,-0.00143909],270.35,true,true], + ["Land_Bunker_01_blocks_3_F",[-0.0979004,-12.9033,-0.00143909],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[-5.18799,-12.9092,-0.00143909],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[-10.175,-12.9253,-0.502439],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[-13.814,-4.44141,-0.00143909],270.35,true,true], + ["Land_Bunker_01_blocks_3_F",[-13.7959,0.544922,-0.00143909],270.35,true,true], + ["CamoNet_INDP_big_F",[2.23804,-2.70508,-0.00143909],182.545,true,true], + ["Land_Bunker_01_blocks_3_F",[-13.7451,22.5391,-0.00143909],270.35,true,true], + ["Land_Bunker_01_blocks_3_F",[-2.51611,30.105,-0.00143909],90.192,true,true], + ["Land_Bunker_01_blocks_3_F",[-10.6179,32.6689,-0.432439],0.106,true,true], + ["Land_Bunker_01_blocks_3_F",[-5.63013,32.6719,-0.00143909],0.106,true,true], + ["Land_Bunker_01_blocks_3_F",[17.958,2.1958,-0.00143909],90.695,true,true], + ["Land_Bunker_01_blocks_3_F",[14.9771,-12.854,-0.529439],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[4.88892,-12.8853,-0.00143909],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[17.9109,-2.78906,-0.00143909],90.695,true,true], + ["Land_Bunker_01_blocks_3_F",[9.98999,-12.8711,-0.00143909],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[6.58691,30.1689,-0.00143909],269.774,true,true], + ["Land_Bunker_01_blocks_3_F",[18.095,19.2026,-0.00143909],90.695,true,true], + ["Land_Bunker_01_blocks_3_F",[18.1409,24.189,-0.00143909],90.695,true,true], + ["Land_Bunker_01_blocks_3_F",[9.54907,32.6689,-0.00143909],0.106,true,true], + ["Land_Bunker_01_blocks_3_F",[14.5359,32.6729,-0.363439],0.106,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[0.0446777,-1.31494,-0.001441],_crateLoot,_lootCounts,0.00167282] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["O_LSV_02_armed_F",[-37.46,8.55273,-0.0378561],359.999], + ["O_LSV_02_unarmed_F",[38.3699,8.21484,-0.0378113],359.999] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Orange; +_maxNoAI = blck_MaxAI_Orange; +_noAIGroups = blck_AIGrps_Orange; +_noVehiclePatrols = blck_SpawnVeh_Orange; +_noEmplacedWeapons = blck_SpawnEmplaced_Orange; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "orange"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Orange/lager.sqf b/@GMS/addons/custom_server/Missions/Orange/lager.sqf new file mode 100644 index 0000000..5728569 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Orange/lager.sqf @@ -0,0 +1,185 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Orange Mission with template = default"; +_crateLoot = blck_BoxLoot_Orange; +_lootCounts = blck_lootCountsOrange; +_startMsg = "An enemy Camp was sighted in a nearby sector! Check the Orange marker on your map for the location!"; +_endMsg = "The Camp at the Orange Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorOrange"; +_markerMissionName = "Nachschublager"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_Tower_V1_F",[-8.1167,-39.0396,-0.00143862],180.738,true,true,[["O_HMG_01_high_F",[-4.98901,13.312,-0.0121193],359.999],["O_HMG_01_high_F",[-4.88916,0.893799,17.8798],359.999],["O_GMG_01_high_F",[2.86377,5.15186,17.7791],0.00110346],["O_GMG_01_high_F",[3.12354,-4.59814,17.8788],0.00619121],["O_HMG_01_high_F",[8.82837,21.6572,-0.0121193],359.999],["O_GMG_01_high_F",[-3.55591,26.4539,-0.0118098],360]],[]], + ["Land_Cargo_Tower_V1_F",[-8.7854,37.2058,-0.00143862],180.738,true,true,[["O_HMG_01_high_F",[-4.1167,-15.228,-0.0121188],359.999],["O_GMG_01_high_F",[-5.05029,0.812012,17.8801],359.999],["O_HMG_01_high_F",[2.97925,4.90308,17.7791],359.995],["O_HMG_01_high_F",[3.02808,-5.19946,17.8776],359.987],["O_HMG_01_high_F",[9.59595,-22.2854,-0.0121188],359.999],["O_GMG_01_high_F",[-1.95337,-25.9678,-0.0118098],360]],[]], + ["Land_Cargo_HQ_V1_F",[41.5171,-35.4209,-0.00143814],88.7297,true,true,[["O_HMG_01_high_F",[-4.19043,0.419922,3.1134],360],["O_GMG_01_high_F",[1.2395,-6.33594,3.11891],359.998]],[]], + ["Land_Cargo_HQ_V1_F",[41.6394,35.6191,-0.00143814],271.277,true,true,[["O_HMG_01_high_F",[1.75781,6.54565,3.11813],359.998]],[]], + ["Land_Cargo_Patrol_V1_F",[58.7402,-14.1282,-0.00143814],179.058,true,true,[["O_HMG_01_high_F",[0.936523,-0.546631,4.55561],186.318],["O_HMG_01_high_F",[-8.49658,3.90869,-0.0121207],0.00101132]],[]], + ["Land_Cargo_Patrol_V1_F",[58.6057,14.2329,-0.00143814],359.375,true,true,[["O_GMG_01_high_F",[1.16113,-1.15356,4.33123],360],["O_HMG_01_high_F",[-8.44897,-1.0686,-0.0121198],359.999]],[]] +]; + +_missionLandscape = [ + //["babe_helper",[-3950.48,-2427.52,-0.00143862],0,true,true], + //["Sign_Arrow_Green_F",[-3947.98,-2428.02,-0.00143862],0,true,true], + //["Sign_Arrow_F",[-3947.98,-2428.02,-0.00143862],0,true,true], + //["Sign_Arrow_Yellow_F",[-3947.98,-2428.02,-0.00143862],0,true,true], + ["Land_LampHalogen_F",[-16.9238,-29.4194,-0.00143814],175.993,true,true], + ["Land_HBarrierBig_F",[-16.6211,-36.4802,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-16.6907,-44.7676,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-16.8193,-28.7813,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-17.0107,-4.99146,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-16.8831,-20.9722,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-16.813,-12.6887,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-16.9338,3.10571,-0.00143862],271.533,true,true], + ["Land_LampHalogen_F",[-17.1384,26.0154,-0.00143814],175.993,true,true], + ["Land_HBarrierBig_F",[-17.126,26.9011,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-17.0623,19.092,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-16.8643,11.3931,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-17.0559,35.1846,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-17.2517,42.8821,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[10.6238,-49.76,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[4.90186,-29.2209,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[2.92627,-49.9541,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[-3.42188,-29.1743,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[-5.36133,-49.8767,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[-13.5088,-49.9219,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[13.3582,-29.1738,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[-11.5808,-29.1753,-0.00143862],181.755,true,true], + ["Land_LampHalogen_F",[6.08081,-17.4399,-0.00143814],183.353,true,true], + ["Land_Cargo_House_V1_F",[5.85425,-11.7749,-0.00143862],178.957,true,true], + ["Land_Cargo_House_V1_F",[12.7263,-11.8384,-0.00143862],180.484,true,true], + ["Land_Cargo_House_V1_F",[6.03076,-23.2114,-0.00143862],0.530105,true,true], + ["Land_Cargo_House_V1_F",[-9.97656,-7.45703,-0.00143862],270.031,true,true], + ["Land_Cargo_House_V1_F",[-9.95679,-0.756836,-0.00143862],270.244,true,true], + ["Land_Cargo_House_V1_F",[12.6707,-23.292,-0.00143862],0.742551,true,true], + ["Land_LampHalogen_F",[4.89917,14.9739,-0.00143814],183.353,true,true], + ["Land_HBarrierBig_F",[3.46533,26.0403,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[-4.86035,26.0867,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[11.9197,26.0874,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[-13.1709,26.1252,-0.00143862],181.755,true,true], + ["Land_Cargo_House_V1_F",[-9.93091,6.11108,-0.00143862],268.716,true,true], + ["Land_Cargo_House_V1_F",[11.5469,20.5737,-0.00143862],180.484,true,true], + ["Land_Cargo_House_V1_F",[11.4912,9.12012,-0.00143862],0.742551,true,true], + ["Land_Cargo_House_V1_F",[4.6748,20.6372,-0.00143862],178.957,true,true], + ["Land_Cargo_House_V1_F",[4.79419,9.20044,-0.00143862],0.530105,true,true], + ["Land_HBarrierBig_F",[-13.959,47.9253,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[10.1702,48.1106,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[1.88428,48.1787,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[-6.26294,48.124,-0.00143862],1.51588,true,true], + ["Land_LampHalogen_F",[37.4138,-49.6885,-0.00143814],86.6613,true,true], + ["Land_HBarrierBig_F",[18.4333,-49.7061,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[21.7261,-29.1707,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[34.4153,-49.5938,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[42.5332,-49.4375,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[26.7168,-49.782,-0.00143862],1.58276,true,true], + ["Land_LampHalogen_F",[24.2969,-4.63354,-0.00143814],175.763,true,true], + ["Land_LampHalogen_F",[24.0779,2.92041,-0.00143814],175.763,true,true], + ["Land_HBarrierBig_F",[24.7175,-16.5247,-0.00143862],270.156,true,true], + ["Land_HBarrierBig_F",[24.5884,-8.51978,-0.00143862],270.156,true,true], + ["Land_HBarrierBig_F",[20.874,3.03345,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[24.8879,-24.3479,-0.00143862],270.156,true,true], + ["Land_HBarrierBig_F",[21.095,-4.52222,-0.00143862],181.755,true,true], + ["Land_Cargo_House_V1_F",[19.4255,-11.8789,-0.00143862],180.272,true,true], + ["Land_Cargo_House_V1_F",[19.5381,-23.3779,-0.00143862],359.215,true,true], + ["Land_HBarrierBig_F",[24.0823,6.26489,-0.00143862],270.156,true,true], + ["Land_HBarrierBig_F",[23.7832,22.0911,-0.00143862],270.156,true,true], + ["Land_HBarrierBig_F",[23.9121,14.0862,-0.00143862],270.156,true,true], + ["Land_HBarrierBig_F",[20.2896,26.0906,-0.00143862],181.755,true,true], + ["Land_Cargo_House_V1_F",[18.3564,9.03589,-0.00143862],359.215,true,true], + ["Land_Cargo_House_V1_F",[18.2441,20.533,-0.00143862],180.272,true,true], + ["Land_LampHalogen_F",[37.1499,49.4319,-0.00143814],270.972,true,true], + ["Land_HBarrierBig_F",[17.8696,48.312,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[33.9624,48.3108,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[25.6785,48.3774,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[41.6587,48.5078,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[53.832,-28.3086,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[53.8938,-44.4204,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[53.9326,-36.322,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[50.8213,-49.5146,-0.00143862],1.58276,true,true], + ["Land_LampHalogen_F",[61.6257,-8.93774,-0.00143814],183.353,true,true], + ["Land_HBarrierBig_F",[53.5598,-12.5808,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[58.1006,-9.04248,-0.00143862],180.639,true,true], + ["Land_HBarrierBig_F",[53.6702,-20.0735,-0.00143862],271.533,true,true], + ["Land_LampHalogen_F",[61.2739,9.27808,-0.00143814],183.353,true,true], + ["Land_HBarrierBig_F",[57.9741,9.22607,-0.00143862],180.457,true,true], + ["Land_HBarrierBig_F",[53.0159,20.7566,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[53.2136,13.0596,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[53.0928,28.8538,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[53.1624,37.1411,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[52.9644,44.8403,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[49.8362,48.4373,-0.00143862],1.51588,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[-2.28174,0.128662,-0.00143862],_crateLoot,_lootCounts,0.000181514] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["Exile_Car_Hunter",[24.8054,-67.8333,0.00875282],89.6558], + ["Exile_Car_HEMMT",[24.8997,69.1799,-0.00138235],91.5468], + ["O_LSV_02_armed_F",[74.0911,1.21655,-0.0377212],359.999] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Orange; +_maxNoAI = blck_MaxAI_Orange; +_noAIGroups = blck_AIGrps_Orange; +_noVehiclePatrols = blck_SpawnVeh_Orange; +_noEmplacedWeapons = blck_SpawnEmplaced_Orange; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "orange"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Orange/tko_camp.sqf b/@GMS/addons/custom_server/Missions/Orange/tko_camp.sqf new file mode 100644 index 0000000..a0561eb --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Orange/tko_camp.sqf @@ -0,0 +1,174 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Orange Mission with template = default"; +_crateLoot = blck_BoxLoot_Orange; +_lootCounts = blck_lootCountsOrange; +_startMsg = "An enemy Military Camp was sighted in a nearby sector! Check the Orange marker on your map for the location!"; +_endMsg = "The Military Camp at the Orange Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorOrange"; +_markerMissionName = "Military Camp"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_House_V3_F",[8.00928,15.6453,-0.00143909],0,true,true,[["B_HMG_01_high_F",[-8.28516,3.27148,-0.0121188],0.000433404]],[]] +]; + +_missionLandscape = [ + //["babe_helper",[-3327.46,-2809.42,-0.00143909],0,true,true], + //["Sign_Arrow_Green_F",[-3324.96,-2809.92,-0.00143909],0,true,true], + //["Sign_Arrow_F",[-3324.96,-2809.92,-0.00143909],0,true,true], + //["Sign_Arrow_Yellow_F",[-3324.96,-2809.92,-0.00143909],0,true,true], + ["Land_HBarrier_Big_F",[-2.76221,-30.3596,-0.00143909],0,true,true], + ["Land_HBarrier_1_F",[-9.74463,-27.0081,-0.00143909],180,true,true], + ["Land_BagFence_Long_F",[-9.74268,-29.0042,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-8.36182,-30.3743,-0.00143909],180,true,true], + ["CamoNet_OPFOR_open_F",[-0.361816,-1.01782,-0.00143909],180,true,true], + ["Land_HBarrier_3_F",[-15.3853,-13.9866,-0.00143909],315,true,true], + ["Land_HBarrier_Big_F",[-3.61768,-5.26782,-0.00143909],180,true,true], + ["Land_HBarrier_Big_F",[-5.46533,3.40405,-0.00143909],0,true,true], + ["Land_HBarrier_Big_F",[-18.5767,-14.5354,-0.00143909],45,true,true], + ["Land_HBarrier_Big_F",[-12.4985,-20.3987,-0.00143909],45,true,true], + ["Land_HBarrier_1_F",[-22.9692,-2.77563,-0.00143909],270,true,true], + ["Land_HBarrier_1_F",[-23.3423,0.478271,-0.00143909],15,true,true], + ["Land_BagFence_Long_F",[-24.5767,-9.90649,-0.00143909],315,true,true], + ["Land_BagFence_Long_F",[-22.8071,-8.13794,-0.00143909],315,true,true], + ["Land_BagFence_Long_F",[-18.7427,-12.3811,-0.00143909],315,true,true], + ["Land_BagFence_Long_F",[-23.2368,2.26245,-0.00143909],90,true,true], + ["Land_BagFence_Long_F",[-21.8657,6.25952,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[-22.3657,-13.8772,-0.00143909],135,true,true], + ["Land_BagFence_Long_F",[-9.74268,-25.1174,-0.00143909],90,true,true], + ["Land_BagFence_Long_F",[-18.5649,-8.3147,-0.00143909],45,true,true], + ["Land_BagFence_Long_F",[-23.2368,4.88843,-0.00143909],90,true,true], + ["Land_BagFence_Long_F",[-25.2192,0.111084,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[-25.2192,-2.76587,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[-26.5884,-1.39282,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-24.3989,-13.9709,-0.00143909],225,true,true], + ["Land_BagFence_Round_F",[-17.5747,-10.4006,-0.00143909],270,true,true], + ["Land_BagFence_Round_F",[-25.5493,-11.9026,-0.00143909],90,true,true], + ["Land_BagFence_Round_F",[-20.7212,-7.07642,-0.00143909],180,true,true], + ["Land_BagFence_End_F",[-9.7583,-23.3167,-0.00143909],270,true,true], + ["Land_Cargo_Patrol_V3_F",[-10.9263,-16.053,-0.00143862],45,true,true], + ["Land_Cargo_House_V3_F",[-3.09424,-20.7424,-0.00143909],180,true,true], + ["CamoNet_OPFOR_open_F",[-0.225098,8.17163,-0.00143909],0,true,true], + ["Land_HBarrier_3_F",[-1.85596,17.1208,-0.00143909],180,true,true], + ["Land_HBarrier_3_F",[-2.70752,19.4275,-0.00143909],90,true,true], + ["Land_HBarrier_Big_F",[-19.6177,9.36694,-0.00143909],270,true,true], + ["Land_HBarrier_Big_F",[-19.6646,17.5466,-0.00143909],90,true,true], + ["Land_HBarrier_1_F",[-4.93994,9.58374,-0.00143909],270,true,true], + ["Land_HBarrier_1_F",[-16.4673,27.1775,-0.00143909],285,true,true], + ["Land_HBarrier_1_F",[-2.68408,25.3513,-0.00143909],120,true,true], + ["Land_BagFence_Long_F",[-2.30908,23.7244,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-19.7173,23.0505,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-19.7153,25.9265,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-18.3462,27.4314,-0.00143909],0,true,true], + ["Land_Cargo_Patrol_V3_F",[-15.4087,10.7146,-0.00143862],90,true,true], + ["Land_HBarrier_5_F",[-15.7407,14.7517,-0.00143909],0,true,true], + ["Land_HBarrier_5_F",[-6.33838,7.41382,-0.00143909],270,true,true], + ["Land_HBarrier_Big_F",[4.87646,-28.4124,-0.00143909],330,true,true], + ["Land_HBarrier_3_F",[10.5171,0.540771,-0.00143909],0,true,true], + ["Land_HBarrier_3_F",[11.3687,-7.17212,-0.00143909],270,true,true], + ["Land_HBarrier_Big_F",[23.0171,-13.6155,-0.00143909],285,true,true], + ["Land_HBarrier_Big_F",[3.04834,3.62964,-0.00143909],1.36604e-005,true,true], + ["Land_HBarrier_Big_F",[11.8745,-23.9084,-0.00143909],330,true,true], + ["Land_HBarrier_Big_F",[7.90967,0.343506,-0.00143909],90,true,true], + ["Land_HBarrier_Big_F",[24.978,-5.36938,-0.00143909],285,true,true], + ["Land_HBarrier_Big_F",[11.2808,-4.62427,-0.00143909],180,true,true], + ["Land_HBarrier_Big_F",[25.9077,2.68921,-0.00143909],270,true,true], + ["Land_HBarrier_1_F",[4.35498,-2.41431,-0.00143909],90,true,true], + ["Land_HBarrier_1_F",[21.0073,-21.7493,-0.00143909],30,true,true], + ["Land_BagFence_Long_F",[19.1304,-21.6174,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[16.5073,-21.6174,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[7.89795,6.07788,-0.00143909],270,true,true], + ["Land_Loudspeakers_F",[21.2026,-15.3088,-0.00143909],196,true,true], + ["Land_HBarrier_5_F",[17.7847,6.20483,-0.00143909],270,true,true], + ["Land_HBarrier_5_F",[11.3823,-11.5022,-0.00143909],270,true,true], + ["Land_HBarrier_5_F",[5.75146,-0.244385,-0.00143909],90,true,true], + ["Land_Cargo_House_V3_F",[5.49561,-9.99927,-0.00143909],90,true,true], + ["Land_Cargo_House_V3_F",[5.03076,-17.6174,-0.00143909],150,true,true], + ["CamoNet_OPFOR_open_F",[22.6538,9.88257,-0.00143909],270,true,true], + ["Land_HBarrier_3_F",[18.7593,9.75757,-0.00143909],0,true,true], + ["Land_HBarrier_Big_F",[9.20264,21.2849,-0.00143909],180,true,true], + ["Land_HBarrier_Big_F",[15.9546,18.7849,-0.00143909],225,true,true], + ["Land_HBarrier_Big_F",[22.4077,16.1892,-0.00143909],0,true,true], + ["Land_HBarrier_Big_F",[0.70459,21.283,-0.00143909],180,true,true], + ["Land_HBarrier_Big_F",[25.7827,11.0642,-0.00143909],90,true,true], + ["Land_BagFence_Long_F",[4.57764,19.0466,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[4.57764,16.1716,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[11.3843,19.2634,-0.00143909],90,true,true], + ["Land_BagFence_End_F",[4.57764,14.4216,-0.00143909],90,true,true], + ["Land_BagFence_End_F",[7.68896,7.77515,-0.00143909],240,true,true], + ["Land_BagFence_End_F",[11.3843,17.5134,-0.00143909],90,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[1.55273,0.0065918,-0.00143957],_crateLoot,_lootCounts,0.000522983] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["B_LSV_01_armed_F",[-41.377,-5.40894,-0.0238895],0.00171121], + ["B_LSV_01_armed_F",[39.5627,-5.26709,-0.0237107],0.00169144] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Orange; +_maxNoAI = blck_MaxAI_Orange; +_noAIGroups = blck_AIGrps_Orange; +_noVehiclePatrols = blck_SpawnVeh_Orange; +_noEmplacedWeapons = blck_SpawnEmplaced_Orange; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "orange"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Red/Ammunition_depot.sqf b/@GMS/addons/custom_server/Missions/Red/Ammunition_depot.sqf new file mode 100644 index 0000000..6fe6711 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Red/Ammunition_depot.sqf @@ -0,0 +1,173 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Red Mission with template = default"; +_crateLoot = blck_BoxLoot_Red; +_lootCounts = blck_lootCountsRed; +_startMsg = "An Anemy Ammunition Depot was sighted in a nearby sector! Check the Red marker on your map for the location!"; +_endMsg = "The Ammunition depot at the Red Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[200,200],"Solid"]; +_markerColor = "ColorRed"; +_markerMissionName = "Ammunition Depot"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_MilOffices_V1_F",[0.936035,53.2339,-0.00146103],0.0551743,true,true,[["B_HMG_01_high_F",[-14.6453,4.44092,0.48988],0.00164355],["B_HMG_01_high_F",[16.2224,2.84473,0.48988],0.00164314],["B_HMG_01_high_F",[16.2043,-18.5793,-0.0121188],360],["B_HMG_01_high_F",[19.0071,-25.5498,-0.0121188],360]],[]] +]; + + + +_missionLandscape = [ + //["babe_helper",[-3584.79,-2745.02,-0.00146103],0,true,true], + //["Sign_Arrow_Green_F",[-3582.29,-2745.52,-0.00146103],0,true,true], + //["Sign_Arrow_F",[-3582.29,-2745.52,-0.00146103],0,true,true], + //["Sign_Arrow_Yellow_F",[-3582.29,-2745.52,-0.00146103],0,true,true], + ["Land_dp_smallTank_F",[-23.4897,0.757568,-0.00146103],315.055,true,true], + ["Land_HBarrier_Big_F",[-30.251,0.998047,-0.00146103],90.6364,true,true], + ["Land_HBarrier_Big_F",[-30.0261,-4.99609,-0.00146103],88.8324,true,true], + ["Land_HBarrier_Big_F",[-24.3879,-7.97534,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[-15.9822,-8.03101,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[-7.62939,-8.03394,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[-30.4287,8.68091,-0.00146103],90.6364,true,true], + ["Land_HBarrier_Big_F",[-30.5715,17.0325,-0.00146103],90.6364,true,true], + ["Land_HBarrier_Big_F",[-30.8035,33.8059,-0.00146103],90.6364,true,true], + ["Land_HBarrier_Big_F",[-30.7122,25.4006,-0.00146103],90.6364,true,true], + ["Land_i_Barracks_V1_F",[-21.0911,25.2551,-0.00146103],270.055,true,true], + ["Land_LampHalogen_F",[-30.0498,68.0146,-0.00146055],240.055,true,true], + ["Land_Medevac_house_V1_F",[-25.7917,63.0088,-0.00146103],359.798,true,true], + ["Land_Medevac_house_V1_F",[-25.821,54.4678,-0.00146103],179.534,true,true], + ["Land_Tank_rust_F",[-26.2607,48.0527,-0.00146103],180.055,true,true], + ["Land_HBarrier_Big_F",[-26.0667,70.3225,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[-0.915771,70.2883,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[-9.30811,70.2639,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[-17.6609,70.2668,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[-30.9465,42.1575,-0.00146103],90.6364,true,true], + ["Land_HBarrier_Big_F",[-31.3367,67.2683,-0.00146103],90.6364,true,true], + ["Land_HBarrier_Big_F",[-31.1025,50.5112,-0.00146103],90.6364,true,true], + ["Land_HBarrier_Big_F",[-31.1938,58.9167,-0.00146103],90.6364,true,true], + ["Land_LampHalogen_F",[12.158,-7.74023,-0.00146055],90.0552,true,true], + ["Land_HBarrier_Big_F",[17.4336,-8.0415,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[25.7888,-8.03149,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[0.675049,-7.98291,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[9.08105,-8.03857,-0.00146103],181.637,true,true], + ["Land_HelipadSquare_F",[31.1362,2.08008,-0.00146103],180.086,true,true], + ["Land_BagFence_Long_F",[23.658,6.82251,-0.00146103],90.0552,true,true], + ["Land_BagFence_Long_F",[14.4004,5.9585,-0.00146103],90.0552,true,true], + ["Land_i_Shed_Ind_F",[0.762939,3.73413,-0.00146103],179.98,true,true], + ["Land_PortableLight_double_F",[19.6589,24.5911,-0.00146103],240.055,true,true], + ["Land_BagFence_Round_F",[13.7778,8.4668,-0.00146103],225.055,true,true], + ["Land_BagFence_Round_F",[24.2874,9.32739,-0.00146103],135.055,true,true], + ["Land_CncWall4_F",[19.353,37.1301,-0.00146103],269.856,true,true], + ["Land_CncWall4_F",[19.3921,31.9155,-0.00146103],269.856,true,true], + ["Land_BagFence_Long_F",[11.2759,9.09644,-0.00146103],180.055,true,true], + ["Land_BagFence_Long_F",[26.7832,9.94385,-0.00146103],0.0551743,true,true], + ["Land_LampHalogen_F",[19.0601,40.1711,-0.00146055],315.055,true,true], + ["Land_HBarrier_Big_F",[15.8428,70.2297,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[7.49023,70.2327,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[24.198,70.2397,-0.00146103],181.637,true,true], + ["Land_CncWall4_F",[22.377,40.0833,-0.00146103],0,true,true], + ["Land_CncWall4_F",[27.5962,40.116,-0.00146103],0,true,true], + ["Land_LampHalogen_F",[45.8774,-7.93433,-0.00146055],60.0552,true,true], + ["Land_LampHalogen_F",[45.5952,6.93604,-0.00146055],180.055,true,true], + ["Land_Tank_rust_F",[43.6697,0.581299,-0.00146103],90.0552,true,true], + ["Land_HBarrier_Big_F",[42.5474,-8.09009,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[47.6099,-4.77002,-0.00146103],90.055,true,true], + ["Land_HBarrier_Big_F",[34.1946,-8.08716,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[47.4333,3.63403,-0.00146103],90.055,true,true], + ["Land_BagFence_Round_F",[53.0293,5.18921,-0.00146103],315.055,true,true], + ["Land_BagFence_Long_F",[50.5286,4.56616,-0.00146103],180.055,true,true], + ["Land_BagFence_Long_F",[39.7786,6.70166,-0.00146103],90.0552,true,true], + ["Land_Wall_IndCnc_Pole_F",[46.9377,21.1001,-0.00146103],90.0552,true,true], + ["Land_Shed_Big_F",[31.9468,31.2043,-0.00146151],89.7488,true,true], + ["Land_HBarrier_Big_F",[46.9426,33.5571,-0.00146103],90.055,true,true], + ["Land_HBarrier_Big_F",[47.1191,25.1531,-0.00146103],90.055,true,true], + ["Land_BagFence_Round_F",[39.1563,9.17456,-0.00146103],225.055,true,true], + ["Land_BagFence_Round_F",[53.0469,24.4275,-0.00146103],225.055,true,true], + ["Land_BagFence_Long_F",[36.6648,9.80176,-0.00146103],180.055,true,true], + ["Land_BagFence_Long_F",[53.6729,21.9277,-0.00146103],90.0552,true,true], + ["Land_BagFence_Long_F",[50.5496,25.0559,-0.00146103],180.055,true,true], + ["Land_BagFence_Long_F",[53.6707,7.68921,-0.00146103],270.055,true,true], + ["Land_BarGate_F",[47.6548,14.5193,-0.00146103],90.0552,true,true], + ["Land_LampHalogen_F",[44.5273,41.2136,-0.00146055],60.0552,true,true], + ["Land_HBarrier_Big_F",[46.7148,41.9067,-0.00146103],90.055,true,true], + ["Land_HBarrier_Big_F",[46.2976,58.6626,-0.00146103],90.055,true,true], + ["Land_HBarrier_Big_F",[32.6038,70.1841,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[40.9565,70.1812,-0.00146103],181.637,true,true], + ["Land_HBarrier_Big_F",[46.0698,67.0122,-0.00146103],90.055,true,true], + ["Land_HBarrier_Big_F",[46.4741,50.2585,-0.00146103],90.055,true,true], + ["Land_CncWall4_F",[37.9797,40.1345,-0.00146103],0,true,true], + ["Land_CncWall4_F",[32.7908,40.125,-0.00146103],0,true,true], + ["Land_CncWall4_F",[43.1743,40.1436,-0.00146103],0,true,true], + ["Land_TTowerBig_1_F",[33.9404,56.3271,-0.00146103],0.0551743,true,true] +]; + +_missionLootBoxes = [ +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["B_G_Offroad_01_armed_F",[-51.5793,28.9631,0.00801468],179.03], + ["B_G_Offroad_01_armed_F",[9.30664,88.3091,0.00802708],89.9029], + ["B_G_Offroad_01_armed_F",[72.2974,6.63599,0.00802183],0.00106337] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Red; +_maxNoAI = blck_MaxAI_Red; +_noAIGroups = blck_AIGrps_Red; +_noVehiclePatrols = blck_SpawnVeh_Red; +_noEmplacedWeapons = blck_SpawnEmplaced_Red; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +//_chancePara = 0.75; // Setting this in the mission file overrides the defaults +//_noPara = 5; // Setting this in the mission file overrides the defaults +//_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +//_paraSkill = "Red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +//_chanceLoot = 0.7; +//private _lootIndex = selectRandom[1,2,3,4]; +//private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +//private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +//_paraLoot = _paralootChoices select _lootIndex; +//_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Red/Camp_Moreell.sqf b/@GMS/addons/custom_server/Missions/Red/Camp_Moreell.sqf new file mode 100644 index 0000000..3377100 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Red/Camp_Moreell.sqf @@ -0,0 +1,157 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Red Mission with template = default"; +_crateLoot = blck_BoxLoot_Red; +_lootCounts = blck_lootCountsRed; +_startMsg = "Enemy Camp Moreell was sighted in a nearby sector! Check the Red marker on your map for the location!"; +_endMsg = "The Camp Moreell at the Red Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[200,200],"Solid"]; +_markerColor = "ColorRed"; +_markerMissionName = "Camp Moreell"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_Patrol_V3_F",[-3.45557,32.6038,-0.00143814],163.034,true,true,[["O_HMG_01_high_F",[-1.75244,0.382568,4.33092],0.00157772]],[]], + ["Land_Cargo_HQ_V3_F",[1.5835,1.53711,-0.00143814],90.021,true,true,[["O_HMG_01_high_F",[-4.53003,1.89331,3.1134],270.551],["O_Mortar_01_F",[0.884277,-5.92041,3.1624],178.341],["O_GMG_01_high_F",[-11.2842,-8.48218,-0.0118098],221.694],["O_HMG_01_high_F",[-12.6897,-6.82007,-0.0121179],236.126],["O_GMG_01_high_F",[10.885,-11.4487,-0.0118084],147.658],["O_GMG_01_high_F",[19.3098,-6.53003,-0.0118093],147.655]],[]], + ["Land_Cargo_Patrol_V3_F",[10.9478,34.4741,-0.00143814],195.395,true,true,[["O_HMG_01_high_F",[1.41943,0.690674,4.33092],359.999]],[]] +]; + + + +_missionLandscape = [ + ["Land_HBarrier_Big_F",[-14.1831,0.348877,-0.00143862],54.7855,true,true], + ["Land_HBarrier_1_F",[-7.70728,-8.24048,-0.00143862],295.873,true,true], + ["Land_BagFence_Long_F",[-11.6091,-6.83057,-0.00143862],45.3947,true,true], + ["Land_BagFence_Round_F",[-12.8318,-4.68042,-0.00143862],90.3947,true,true], + ["Land_BagFence_Round_F",[-9.44946,-8.13599,-0.00143862],0.394724,true,true], + ["Land_Cargo_House_V3_F",[-11.8579,27.8225,-0.00143862],341.505,true,true], + ["CamoNet_OPFOR_open_F",[-14.8772,18.198,-0.00143862],90.3947,true,true], + ["Land_HBarrier_Big_F",[-24.5461,25.9207,-0.00143862],195.395,true,true], + ["Land_HBarrier_Big_F",[-7.8335,30.6655,-0.00143862],255.395,true,true], + ["Land_HBarrier_Big_F",[-24.0242,10.8638,-0.00143862],165.395,true,true], + ["Land_HBarrier_Big_F",[-18.0986,7.95679,-0.00143862],255.395,true,true], + ["Land_HBarrier_Big_F",[-19.7212,22.9065,-0.00143862],90.3947,true,true], + ["Land_HBarrier_Big_F",[-31.6633,25.0271,-0.00143862],150.395,true,true], + ["Land_HBarrier_Big_F",[-12.3518,34.6216,-0.00143862],345.395,true,true], + ["Land_HBarrier_Big_F",[-17.9399,30.3276,-0.00143862],300.395,true,true], + ["Land_HBarrier_Big_F",[-19.3733,16.4546,-0.00143862],90.3947,true,true], + ["Land_HBarrier_1_F",[-32.8965,12.5454,-0.00143862],42.5069,true,true], + ["Land_HBarrier_1_F",[-30.3511,10.0146,-0.00143862],42.5069,true,true], + ["CamoNet_OPFOR_big_F",[-27.2468,18.4834,-0.00143862],75.3947,true,true], + ["Land_BagFence_Round_F",[-33.3694,10.7087,-0.00143862],87.5069,true,true], + ["Land_BagFence_Round_F",[-31.8938,9.28491,-0.00143862],357.507,true,true], + ["Land_HBarrier_5_F",[9.15552,-4.91626,-0.00143862],269.593,true,true], + ["Land_HBarrier_5_F",[9.13477,0.585938,-0.00143862],269.593,true,true], + ["Land_Cargo_House_V3_F",[25.2329,2.59155,-0.00143862],105.395,true,true], + ["Land_HBarrier_Big_F",[-2.57373,-8.99463,-0.00143862],180.395,true,true], + ["Land_HBarrier_Big_F",[26.4961,-2.62256,-0.00143862],195.395,true,true], + ["Land_HBarrier_Big_F",[5.79712,-8.80371,-0.00143862],180.395,true,true], + ["Land_HBarrier_1_F",[14.0208,-8.50757,-0.00143862],334.157,true,true], + ["Land_HBarrier_1_F",[22.1511,-3.42603,-0.00143862],324.626,true,true], + ["Land_HBarrier_1_F",[19.1423,-5.3833,-0.00143862],324.626,true,true], + ["Land_HBarrier_1_F",[10.7295,-9.9397,-0.00143862],334.157,true,true], + ["Land_BagFence_Round_F",[22.5408,-5.08765,-0.00143862],279.626,true,true], + ["Land_BagFence_Round_F",[20.8389,-6.23145,-0.00143862],9.62595,true,true], + ["Land_BagFence_Round_F",[14.1299,-10.2107,-0.00143862],289.157,true,true], + ["Land_BagFence_Round_F",[12.262,-11.0569,-0.00143862],19.157,true,true], + ["Land_HBarrier_5_F",[7.05835,9.52783,-0.00143862],181.048,true,true], + ["Land_HBarrier_5_F",[26.3564,29.2161,-0.00143862],195.395,true,true], + ["Land_HBarrier_5_F",[9.08203,5.92139,-0.00143862],269.593,true,true], + ["Land_HBarrier_Big_F",[18.55,34.8018,-0.00143862],195.395,true,true], + ["Land_HBarrier_Big_F",[1.32568,35.1333,-0.00143862],255.395,true,true], + ["Land_HBarrier_Big_F",[7.22388,36.5254,-0.00143862],285.395,true,true], + ["Land_HBarrier_Big_F",[-4.35571,36.8228,-0.00143862],345.395,true,true], + ["Land_HBarrier_Big_F",[7.04761,30.9424,-0.00143862],195.395,true,true], + ["Land_BagFence_Long_F",[24.1768,15.7207,-0.00143862],105.395,true,true], + ["Land_BagFence_Long_F",[22.7461,10.5283,-0.00143862],285.395,true,true], + ["Land_HBarrier_3_F",[25.4558,17.1135,-0.00143862],195.395,true,true], + ["Land_HBarrier_3_F",[22.7898,29.1609,-0.00143862],285.395,true,true], + ["Land_HBarrier_3_F",[23.3201,8.88696,-0.00143862],195.395,true,true], + ["Land_HBarrier_Big_F",[12.9075,38.3318,-0.00143862],195.395,true,true], + ["Land_HBarrier_Big_F",[30.9158,1.41919,-0.00143862],105.395,true,true], + ["Land_HBarrier_5_F",[29.5054,24.8923,-0.00143862],269.593,true,true], + ["Land_HBarrier_5_F",[29.5303,19.5947,-0.00143862],269.593,true,true], + ["CamoNet_OPFOR_open_F",[28.1597,12.0786,-0.00143862],195.395,true,true], + ["Land_HBarrier_Big_F",[31.4031,16.592,-0.00143862],0.394724,true,true], + ["Land_HBarrier_Big_F",[28.876,7.35913,-0.00143862],195.395,true,true], + ["Land_HBarrier_1_F",[33.3733,10.5449,-0.00143862],15.3947,true,true], + ["Land_HBarrier_1_F",[27.9988,12.1958,-0.00143862],195.395,true,true], + ["Land_BagFence_Long_F",[32.6428,9.11694,-0.00143862],285.395,true,true], + ["Land_BagFence_Long_F",[28.4683,13.8879,-0.00143862],105.395,true,true], + ["Land_HBarrier_3_F",[29.9619,29.1274,-0.00143862],105.395,true,true], + ["Land_HBarrier_3_F",[34.8462,14.4836,-0.00143862],90.3947,true,true], + ["Land_BagBunker_Large_F",[27.696,35.6018,-0.00143862],195.395,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[9.8,9.8,0],_crateLoot,_lootCounts,0.000320471] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["O_LSV_02_armed_F",[34.9805,-28.0225,-0.0376697],359.999] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = [ + +]; + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Red; +_maxNoAI = blck_MaxAI_Red; +_noAIGroups = blck_AIGrps_Red; +_noVehiclePatrols = blck_SpawnVeh_Red; +_noEmplacedWeapons = blck_SpawnEmplaced_Red; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Red/Operations_Command.sqf b/@GMS/addons/custom_server/Missions/Red/Operations_Command.sqf new file mode 100644 index 0000000..642d49a --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Red/Operations_Command.sqf @@ -0,0 +1,185 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Red Mission with template = default"; +_crateLoot = blck_BoxLoot_Red; +_lootCounts = blck_lootCountsRed; +_startMsg = "An Operations Command was sighted in a nearby sector! Check the Red marker on your map for the location!"; +_endMsg = "The Operations Command at the Red Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorRed"; +_markerMissionName = "Operations Command"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_Patrol_V3_F",[-26.1375,13.395,-0.00143862],104.247,true,true,[["O_HMG_01_high_F",[-1.16919,-1.02051,4.33092],359.999]],[]], + ["Land_Cargo_Tower_V3_F",[0.0512695,-43.2329,-0.00143909],1.37485,true,true,[["O_HMG_01_high_F",[-11.6333,3.14819,-0.0121188],360],["O_Mortar_01_F",[-3.08325,4.21802,17.9254],0.000187431],["O_GMG_01_high_F",[-3.21069,-3.16113,17.8767],360],["O_GMG_01_high_F",[4.70557,-0.741943,17.8767],360]],[]], + ["Land_Cargo_Patrol_V3_F",[-22.3018,-36.6943,-0.00143862],16.3749,true,true,[["O_HMG_01_high_F",[-1.44019,-0.544922,4.33092],0.000570454],["O_HMG_01_high_F",[-6.95337,5.57886,-0.0121193],359.998]],[]], + ["Land_Cargo_HQ_V3_F",[0.157227,3.02832,-0.00143862],91.3748,true,true,[["O_Mortar_01_F",[1.9917,1.24707,3.16241],359.999],["O_HMG_01_high_F",[-4.22266,1.80176,3.1134],359.999],["O_HMG_01_high_F",[3.10205,-5.8584,3.1134],359.999],["O_HMG_01_high_F",[-6.48584,7.63452,-0.0121193],359.998],["O_HMG_01_high_F",[9.13306,15.3284,-0.0121193],359.998]],[]], + ["Land_Cargo_Tower_V3_F",[-16.1003,25.6072,-0.00143909],181.375,true,true,[["O_HMG_01_high_F",[3.25903,3.35229,17.8764],359.997],["O_GMG_01_high_F",[-4.9707,0.915771,17.8767],359.995]],[]], + ["Land_Cargo_Patrol_V3_F",[21.9438,-2.25854,-0.00143862],269.918,true,true,[["O_GMG_01_high_F",[1.11499,0.921387,4.33123],360]],[]], + ["Land_Cargo_House_V3_F",[7.7749,-26.0698,-0.00143909],1.37485,true,true,[["O_HMG_01_high_F",[2.2688,8.65552,-0.0121188],360]],[]] +]; + + + +_missionLandscape = [ + ["CamoNet_OPFOR_open_F",[-31.8352,-29.0081,-0.00143909],235.13,true,true], + ["CamoNet_OPFOR_open_F",[-43.8352,-16.6941,-0.00143909],181.375,true,true], + ["Land_HBarrier_Big_F",[-37.4087,-8.59814,-0.00143909],286.375,true,true], + ["Land_HBarrier_Big_F",[-29.3643,-37.0271,-0.00143909],37.1575,true,true], + ["Land_HBarrier_Big_F",[-35.4788,-31.5889,-0.00143909],50.6964,true,true], + ["Land_HBarrier_Big_F",[-38.9624,-25.2727,-0.00143909],255.154,true,true], + ["Land_BagBunker_Large_F",[-43.364,-16.4709,-0.00143909],91.3748,true,true], + ["Land_HBarrier_Big_F",[-34.405,-1.28906,-0.00143909],301.375,true,true], + ["Land_HBarrier_Big_F",[-29.0862,14.3416,-0.00143909],286.375,true,true], + ["Land_HBarrier_Big_F",[-31.1816,6.38184,-0.00143909],286.375,true,true], + ["Land_LampHalogen_F",[-29.8584,2.74854,-0.00143862],256.375,true,true], + ["Land_HBarrierWall_corridor_F",[-16.1533,-40.845,-0.00143909],106.375,true,true], + ["Land_HBarrier_Big_F",[-10.9395,-43.5535,-0.00143909],13.6286,true,true], + ["Land_HBarrier_Big_F",[-3.8855,-44.2878,-0.00143909],0.866833,true,true], + ["Land_HBarrier_Big_F",[-22.3318,-40.6543,-0.00143909],200.888,true,true], + ["Land_HBarrier_Big_F",[4.41016,-44.2852,-0.00143909],0.866833,true,true], + ["Land_HBarrier_5_F",[2.9043,-17.4326,-0.00143909],271.375,true,true], + ["Land_HBarrier_5_F",[-5.53174,-9.47681,-0.00143909],181.375,true,true], + ["Land_Cargo_House_V3_F",[-1.97241,-25.8367,-0.00143909],1.37485,true,true], + ["Land_HBarrier_Big_F",[-9.21558,-15.051,-0.00143909],271.375,true,true], + ["Land_HBarrier_Big_F",[-5.97168,-20.2385,-0.00143909],181.375,true,true], + ["Land_HBarrier_Big_F",[2.51318,-20.2158,-0.00143909],181.375,true,true], + ["Land_HBarrier_3_F",[2.83398,-22.9663,-0.00143909],91.3748,true,true], + ["Land_HBarrier_3_F",[2.75586,-26.2246,-0.00143909],91.3748,true,true], + ["Land_HBarrier_3_F",[2.94287,-10.5574,-0.00143909],271.375,true,true], + ["Land_HBarrier_3_F",[0.964355,-9.63477,-0.00143909],1.37485,true,true], + ["Land_HBarrier_3_F",[-6.09448,-25.2507,-0.00143909],271.375,true,true], + ["Land_HBarrier_3_F",[1.72021,-27.6951,-0.00143909],1.37485,true,true], + ["Land_HBarrier_3_F",[-6.02515,-22.2542,-0.00143909],271.375,true,true], + ["Land_HBarrier_3_F",[4.84912,-27.7708,-0.00143909],1.37485,true,true], + ["Land_HBarrier_3_F",[-5.15039,-27.5239,-0.00143909],1.37485,true,true], + ["Land_HelipadCircle_F",[-22.2104,-10.7046,-0.00143909],90.8075,true,true], + ["Land_TTowerBig_2_F",[-3.03882,-15.5251,-0.00143909],1.37485,true,true], + ["Land_HBarrier_5_F",[-24.4253,17.3018,-0.00143909],194.949,true,true], + ["Land_HBarrier_5_F",[-12.988,7.96045,-0.00143909],181.375,true,true], + ["Land_HBarrier_5_F",[-26.457,9.23633,-0.00143909],16.5662,true,true], + ["Land_Cargo_House_V3_F",[-15.2529,3.47607,-0.00143909],91.3748,true,true], + ["Land_HBarrier_Big_F",[-5.96069,14.4766,-0.00143909],1.375,true,true], + ["Land_HBarrier_Big_F",[2.22437,14.509,-0.00143909],1.375,true,true], + ["Land_HBarrier_Big_F",[-9.21826,9.43896,-0.00143909],271.375,true,true], + ["Land_HBarrier_Big_F",[-9.23389,1.12988,-0.00143909],271.375,true,true], + ["Land_HBarrier_Big_F",[-9.2439,-6.94019,-0.00143909],271.375,true,true], + ["Land_HBarrier_Big_F",[-26.9719,22.2693,-0.00143909],286.375,true,true], + ["Land_HBarrier_3_F",[-10.071,23.9849,-0.00143909],91.3748,true,true], + ["Land_HBarrier_Big_F",[-14.6584,26.7698,-0.00143909],1.375,true,true], + ["Land_HBarrier_Big_F",[-22.5229,26.7314,-0.00143909],1.375,true,true], + ["Land_HBarrier_Big_F",[-6.28784,26.8616,-0.00143909],1.375,true,true], + ["Land_HBarrier_Big_F",[1.70752,25.8137,-0.00143909],16.375,true,true], + ["CamoNet_OPFOR_open_F",[13.4675,-46.5574,-0.00143909],256.375,true,true], + ["Land_BagBunker_Large_F",[13.6731,-46.6125,-0.00143909],346.375,true,true], + ["Land_HBarrier_Big_F",[25.0122,-8.42798,-0.00143909],89.245,true,true], + ["Land_HBarrier_Big_F",[20.2207,-26.6072,-0.00143909],346.375,true,true], + ["Land_HBarrier_Big_F",[10.3425,-20.1804,-0.00143909],181.375,true,true], + ["Land_HBarrier_Big_F",[13.3196,-15.1829,-0.00143909],91.375,true,true], + ["Land_HBarrier_Big_F",[25.2847,-22.1433,-0.00143909],89.8961,true,true], + ["Land_HBarrier_Big_F",[15.2939,-23.981,-0.00143909],61.375,true,true], + ["Land_HBarrier_Big_F",[17.6921,-30.4187,-0.00143909],261.124,true,true], + ["Land_HBarrier_Big_F",[18.2314,-37.9956,-0.00143909],275.055,true,true], + ["Land_HBarrier_1_F",[26.3027,-13.0132,-0.00143909],224.245,true,true], + ["Land_HBarrier_1_F",[26.3459,-17.553,-0.00143909],134.896,true,true], + ["Land_HBarrier_3_F",[24.4424,-13.2629,-0.00143909],179.245,true,true], + ["Land_HBarrier_3_F",[23.5449,-11.0381,-0.00143909],89.245,true,true], + ["Land_HBarrier_3_F",[23.5166,-19.6731,-0.00143909],269.896,true,true], + ["Land_HBarrier_3_F",[24.4841,-17.4751,-0.00143909],359.896,true,true], + ["Land_HBarrier_3_F",[26.4421,-11.2278,-0.00143909],89.245,true,true], + ["Land_HBarrier_3_F",[26.521,-19.3137,-0.00143909],269.896,true,true], + ["Land_Tank_rust_F",[17.9231,-22.1641,-0.00143909],238.726,true,true], + ["Land_LampHalogen_F",[25.1262,-18.7678,-0.00143862],151.326,true,true], + ["Land_LampHalogen_F",[25.188,-11.5505,-0.00143862],241.375,true,true], + ["Land_HBarrierWall_corridor_F",[8.88965,13.3088,-0.00143909],76.3748,true,true], + ["Land_HBarrierWall_corridor_F",[11.9426,4.98389,-0.00143909],1.37485,true,true], + ["Land_HBarrierWall_corridor_F",[14.0635,10.1843,-0.00143909],331.375,true,true], + ["CamoNet_OPFOR_open_F",[16.8806,13.8459,-0.00143909],46.3748,true,true], + ["Land_HBarrierWall4_F",[12.9727,17.2073,-0.00143909],301.375,true,true], + ["Land_HBarrierWall4_F",[13.927,14.678,-0.00143909],241.375,true,true], + ["Land_HBarrier_Big_F",[24.7051,-0.242188,-0.00143909],89.245,true,true], + ["Land_HBarrier_Big_F",[8.90503,22.6189,-0.00143909],33.6192,true,true], + ["Land_HBarrier_Big_F",[13.2727,-6.86401,-0.00143909],91.375,true,true], + ["Land_HBarrier_Big_F",[24.3503,8.13452,-0.00143909],89.245,true,true], + ["Land_HBarrier_Big_F",[13.3027,-0.90332,-0.00143909],91.375,true,true], + ["Land_BagBunker_Small_F",[20.2654,17.5417,-0.00143909],226.375,true,true], + ["Land_LampHalogen_F",[10.6421,2.27686,-0.00143862],241.375,true,true], + ["Land_LampHalogen_F",[11.4541,10.5645,-0.00143862],136.375,true,true], + ["Land_HBarrierWall_corner_F",[21.3845,12.748,-0.00143909],46.3748,true,true], + ["Land_HBarrierWall_corner_F",[15.5208,19.1467,-0.00143909],346.375,true,true], + ["Land_HBarrierWall_corner_F",[18.5425,9.32104,-0.00143909],136.375,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[-22.2104,-10.704,0],_crateLoot,_lootCounts,0.000320471] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["O_LSV_02_unarmed_F",[-53.4402,-44.895,-0.037971],359.999], + ["O_LSV_02_armed_F",[7.56689,40.9209,-0.0379591],359.999], + ["O_LSV_02_armed_F",[38.9788,-44.417,-0.0373936],359.999] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Red; +_maxNoAI = blck_MaxAI_Red; +_noAIGroups = blck_AIGrps_Red; +_noVehiclePatrols = blck_SpawnVeh_Red; +_noEmplacedWeapons = blck_SpawnEmplaced_Red; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Red/Outpost.sqf b/@GMS/addons/custom_server/Missions/Red/Outpost.sqf new file mode 100644 index 0000000..790b25d --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Red/Outpost.sqf @@ -0,0 +1,155 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Red Mission with template = default"; +_crateLoot = blck_BoxLoot_Red; +_lootCounts = blck_lootCountsRed; +_startMsg = "An Anemy Outpost was sighted in a nearby sector! Check the Red marker on your map for the location!"; +_endMsg = "The Outpost at the Red Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[200,200],"Solid"]; +_markerColor = "ColorRed"; +_markerMissionName = "Outpost"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_Patrol_V3_F",[-25.0786,-7.48535,-0.00143814],91.041,true,true,[["B_HMG_01_high_F",[-1.1084,-1.16431,4.33092],0.000110027]],[]], + ["Land_Cargo_Patrol_V3_F",[-12.2451,10.7849,-0.00143814],181.041,true,true,[["B_HMG_01_high_F",[-1.25928,1.22339,4.33092],0.00719478],["B_HMG_01_high_F",[3.44727,7.05835,-0.0121179],0.0015095],["B_HMG_01_high_F",[12.4185,7.21094,-0.0121183],0.00126386]],[]], + ["Land_Cargo_Patrol_V3_F",[24.0273,-12.3459,-0.00143814],269.838,true,true,[["B_HMG_01_high_F",[1.03076,-1.20874,4.33092],359.999],["B_HMG_01_high_F",[-11.6992,1.96533,-0.0121193],0.00189448]],[]], + ["Land_Cargo_HQ_V3_F",[6.30029,-0.909424,-0.00143814],270.038,true,true,[["B_HMG_01_high_F",[4.31299,-1.39307,3.70484],47.4694],["B_HMG_01_high_F",[-9.66064,-15.759,-0.0121193],0.00274103]],[]] +]; + + + +_missionLandscape = [ + //["Sign_Arrow_F",[-5049.41,-2726.72,-0.00143862],0,true,true], + //["Sign_Arrow_Green_F",[-5049.41,-2726.72,-0.00143862],0,true,true], + //["Sign_Arrow_Yellow_F",[-5049.41,-2726.72,-0.00143862],0,true,true], + //["babe_helper",[-5051.91,-2726.22,-0.00143862],78.6345,true,true], + ["Land_HBarrier_Big_F",[-28.8394,-8.42627,-0.00143862],91.041,true,true], + ["Land_CncShelter_F",[-10.0513,-26.2283,-0.00143862],0.0913576,true,true], + ["Land_HBarrierWall6_F",[0.581543,-12.7048,-0.00143862],91.041,true,true], + ["Land_HBarrierWall6_F",[-19.6943,-14.0881,-0.00143862],271.041,true,true], + ["Land_HBarrierWall6_F",[-5.04932,-19.8594,-0.00143862],181.041,true,true], + ["Land_HBarrier_Big_F",[-25.6514,-11.7356,-0.00143862],181.041,true,true], + ["Land_BagFence_Round_F",[-3.4668,-15.3809,-0.00143862],166.041,true,true], + ["Land_BagFence_Round_F",[-14.3892,-29.0183,-0.00143862],31.041,true,true], + ["Land_BagFence_Round_F",[-7.70801,-28.5588,-0.00143862],46.041,true,true], + ["Land_BagFence_Round_F",[-14.9326,-26.8369,-0.00143862],121.041,true,true], + ["Land_BagFence_Round_F",[-12.2075,-28.4763,-0.00143862],301.041,true,true], + ["Land_BagFence_Round_F",[-4.56348,-17.2019,-0.00143862],76.041,true,true], + ["Land_BagFence_Round_F",[-5.41797,-26.3496,-0.00143862],226.041,true,true], + ["Land_BagFence_Round_F",[-5.45801,-28.5986,-0.00143862],316.041,true,true], + ["Land_HBarrierWall_corridor_F",[-10.1372,-24.7649,-0.00143862],271.041,true,true], + ["Land_HBarrierWall4_F",[-13.7993,-19.9495,-0.00143862],181.041,true,true], + ["Land_HBarrierWall_corner_F",[-19.2007,-20,-0.00143862],181.041,true,true], + ["Land_HBarrierWall_corner_F",[0.711426,-19.4619,-0.00143862],91.041,true,true], + ["Land_LampShabby_F",[-19.8394,5.67236,-0.00143862],136.041,true,true], + ["Land_CncShelter_F",[-5.49072,10.4077,-0.00143862],181.041,true,true], + ["Land_HBarrierWall6_F",[-19.7158,-1.58594,-0.00143862],271.041,true,true], + ["Land_HBarrier_Big_F",[-25.4941,-3.23608,-0.00143862],1.04101,true,true], + ["Land_HBarrier_Big_F",[-12.9121,14.7922,-0.00143862],181.041,true,true], + ["Land_HBarrier_Big_F",[-16.2207,11.6028,-0.00143862],271.041,true,true], + ["Land_HBarrier_Big_F",[-7.72217,11.448,-0.00143862],91.041,true,true], + ["Land_HelipadSquare_F",[-9.93359,-5.85596,-0.00143862],0.362537,true,true], + ["Land_BagFence_Round_F",[-9.72363,18.6138,-0.00143862],136.041,true,true], + ["Land_BagFence_Round_F",[0.90918,18.9221,-0.00143862],226.041,true,true], + ["Land_BagFence_Round_F",[-7.59863,18.5762,-0.00143862],226.041,true,true], + ["Land_BagFence_Round_F",[-1.21631,18.9595,-0.00143862],136.041,true,true], + ["Land_BagFence_Long_F",[-7.02197,15.9382,-0.00143862],91.041,true,true], + ["Land_BagFence_Long_F",[1.48633,16.2864,-0.00143862],91.041,true,true], + ["Land_BagFence_Long_F",[-1.88379,16.5967,-0.00143862],91.041,true,true], + ["Land_BagFence_Long_F",[-10.3921,16.2498,-0.00143862],91.041,true,true], + ["Land_HBarrierWall_corridor_F",[-1.52295,8.83716,-0.00143862],181.041,true,true], + ["Land_HBarrierWall4_F",[3.81348,13.4924,-0.00143862],1.04101,true,true], + ["Land_HBarrierWall4_F",[-6.83154,5.68286,-0.00143862],1.04101,true,true], + ["Land_HBarrierWall4_F",[-16.5835,5.60962,-0.00143862],1.04101,true,true], + ["Land_HBarrierWall_corner_F",[-19.8418,5.16846,-0.00143862],271.041,true,true], + ["Land_HBarrierWall_corner_F",[-0.694824,13.0745,-0.00143862],271.041,true,true], + ["Land_LampShabby_F",[9.37598,-10.3596,-0.00143862],1.04101,true,true], + ["Land_HBarrierWall6_F",[7.20605,-19.8293,-0.00143862],181.041,true,true], + ["Land_HBarrierWall6_F",[6.87402,-10.5664,-0.00143862],181.041,true,true], + ["Land_HBarrier_Big_F",[24.5322,-16.5854,-0.00143862],179.838,true,true], + ["Land_HBarrier_Big_F",[24.5107,-8.08472,-0.00143862],359.838,true,true], + ["Land_HBarrier_Big_F",[27.7676,-11.3262,-0.00143862],269.838,true,true], + ["Land_BagFence_Round_F",[13.2651,-9.68359,-0.00143862],226.041,true,true], + ["Land_BagFence_Round_F",[11.1396,-9.64404,-0.00143862],136.041,true,true], + ["Land_HBarrierWall4_F",[13.9541,-19.9521,-0.00143862],181.041,true,true], + ["Land_Cargo_House_V3_F",[7.46289,-15.906,-0.00143862],271.041,true,true], + ["Land_HBarrierWall_corner_F",[18.2109,-19.53,-0.00143862],91.041,true,true], + ["Land_LampShabby_F",[18.0684,13.9841,-0.00143862],226.041,true,true], + ["Land_HBarrierWall6_F",[17.8833,3.73438,-0.00143862],91.041,true,true], + ["Land_HBarrierWall6_F",[17.9854,-4.51611,-0.00143862],91.041,true,true], + ["Land_HBarrierWall6_F",[10.5679,13.6208,-0.00143862],1.04101,true,true], + ["Land_HBarrierWall4_F",[17.7358,9.23999,-0.00143862],91.041,true,true], + ["Land_HBarrierWall_corner_F",[17.3179,13.7493,-0.00143862],1.04101,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[-9.93359,-5.85596,0],_crateLoot,_lootCounts,0.000320471] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["B_G_Offroad_01_armed_F",[35.8379,4.96387,0.00813246],0.00104452] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Red; +_maxNoAI = blck_MaxAI_Red; +_noAIGroups = blck_AIGrps_Red; +_noVehiclePatrols = blck_SpawnVeh_Red; +_noEmplacedWeapons = blck_SpawnEmplaced_Red; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Red/carThieves.sqf b/@GMS/addons/custom_server/Missions/Red/carThieves.sqf new file mode 100644 index 0000000..567f439 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Red/carThieves.sqf @@ -0,0 +1,74 @@ +/* +Mission Compositions by Ghostrider [GRG] for ghostridergaming +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Red Mission with template = default"; +_crateLoot = blck_BoxLoot_Red; +_lootCounts = blck_lootCountsRed; +_startMsg = "Car thieves were sighted in a nearby sector! Check the Red marker on your map for the location!"; +_endMsg = "The Sector at the Red Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorRed"; +_markerMissionName = "Thieves"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" +_missionLandscape = [ + ["Flag_AAF_F",[4,4,0],0,[false,false]], + ["Land_i_Garage_V2_F",[3.875,-30.1152,0],252.899,[true,true]], + ["Land_i_Garage_V2_F",[-17.2246,28.0176,-0.00298452],65.4825,[true,true]], + ["Land_i_House_Big_02_V2_F",[30.9844,14.6074,-2.38419e-007],77.0403,[true,true]], + ["Land_i_House_Big_01_V3_F",[-42.3359,-7.80469,2.38419e-007],343.548,[true,true]], + ["Land_Wreck_Truck_F",[48.3457,-1.48242,0],0,[false,false]], + ["Land_Wreck_Car2_F",[34.3457,-12.3398,2.38419e-007],0,[false,false]], + ["Land_Wreck_Car3_F",[23.7402,-24.3887,0],0,[false,false]], + ["Land_Wreck_Hunter_F",[21.4395,-35.9492,2.38419e-007],0,[false,false]], + ["Land_Wreck_Van_F",[14.5645,21.1934,-0.000167847],0,[false,false]], + ["Land_Wreck_Offroad_F",[12.6328,29.0918,0.000607967],0,[false,false]], + ["Land_Wreck_Offroad2_F",[-0.875,27.1035,0.00187802],0,[false,false]], + ["Land_Wreck_UAZ_F",[-24.3984,22.4688,-0.000131845],0,[false,false]], + ["Land_Wreck_Ural_F",[-31.2441,18.7832,-1.90735e-006],0,[false,false]], + ["Land_Wreck_Truck_dropside_F",[-35.7227,7.54883,2.38419e-007],0,[false,false]], + ["Land_Wreck_Heli_Attack_01_F",[-34.1113,27.1094,0.00630307],0,[false,false]], + ["Land_Wreck_Heli_Attack_01_F",[-5.27734,-35.4395,2.38419e-007],0,[false,false]], + ["Land_Wreck_Heli_Attack_02_F",[-15.1113,-41.4531,0],0,[false,false]], + ["Land_UWreck_Heli_Attack_02_F",[-24.7617,-27.7559,0],0,[false,false]], + ["Land_HistoricalPlaneDebris_04_F",[-15.4902,-27.8711,0],0,[false,false]], + ["Land_HistoricalPlaneDebris_03_F",[-42.4453,13.793,0],0,[false,false]], + ["Land_HistoricalPlaneDebris_02_F",[35.041,-24.9219,0],0,[false,false]], + ["Land_HistoricalPlaneDebris_01_F",[42.6582,-17.5762,0],0,[false,false]], + ["Land_Wreck_Slammer_hull_F",[25.1035,30.7656,0.00311899],0,[false,false]], + ["Land_Wreck_Slammer_F",[-5.16797,38.9414,0.0154414],0,[false,false]], + ["Land_CargoBox_V1_F",[-9.66406,-16.6582,0],0,[false,false]], + ["Land_Cargo40_blue_F",[6.50195,-19.627,0],154.788,[false,false]], + ["Land_Cargo40_blue_F",[-7.36914,-23.0078,0],0,[false,false]], + ["Land_Cargo40_blue_F",[-19.6152,-18.0742,0],41.2042,[false,false]], + ["Land_CncBarrier_F",[-6.70508,9.58203,0],141.162,[false,false]], + ["Land_CncBarrierMedium4_F",[4.69141,12.666,0],0,[false,false]], + //["Land_CncBarrierMedium4_F",[-11.3613,5.03516,0],136.997,[false,false]], + ["Land_CncBarrierMedium4_F",[-17.4824,-0.664063,0],136.997,[false,false]], + ["Land_CncBarrierMedium4_F",[-22.625,-7.21289,0],301.167,[false,false]] + +]; // list of objects to spawn as landscape +_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position. +_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position. +_missionEmplacedWeapons = []; // 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 +_minNoAI = blck_MinAI_Red; +_maxNoAI = blck_MaxAI_Red; +_noAIGroups = blck_AIGrps_Red; +_noVehiclePatrols = blck_SpawnVeh_Red; +_noEmplacedWeapons = blck_SpawnEmplaced_Red; +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +#ifdef blck_useCUP +_uniforms = blck_CUPUniforms; +_weaponList = blck_CUPWeapons; +_vests = blck_CUPVests; +_backpacs = blck_CUPBackpacks; +_headgear = blck_CUPHeadgear; +#endif + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Red/dashq.sqf b/@GMS/addons/custom_server/Missions/Red/dashq.sqf new file mode 100644 index 0000000..2b0ddfe --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Red/dashq.sqf @@ -0,0 +1,231 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Red Mission with template = default"; +_crateLoot = blck_BoxLoot_Red; +_lootCounts = blck_lootCountsRed; +_startMsg = "An enemy HQ center was sighted in a nearby sector! Check the Red marker on your map for the location!"; +_endMsg = "The HQ at the Red Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorRed"; +_markerMissionName = "Operations Base"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_HQ_V1_F",[-0.358154,-18.6514,-0.00143862],179.905,true,true,[["B_HMG_01_high_F",[-6.5437,1.09253,3.11855],145.121],["B_HMG_01_high_F",[-13.9094,-10.7791,-0.0121183],206.716]],[]] +]; + +_missionLandscape = [ + ["Land_PortableLight_double_F",[-42.614,-26.0178,-0.00143909],225.577,true,true], + ["Land_CncWall4_F",[-45.3523,-21.509,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-33.5913,-28.1145,-0.00143909],359.905,true,true], + ["Land_CncWall4_F",[-38.842,-28.124,-0.00143909],359.905,true,true], + ["Land_CncWall1_F",[-44.093,-26.7578,-0.00143909],44.9051,true,true], + ["Land_CncWall1_F",[-43.0923,-27.5063,-0.00143909],29.9051,true,true], + ["Land_CncWall1_F",[-45.2207,-24.6689,-0.00143909],74.9051,true,true], + ["Land_CncWall1_F",[-44.845,-25.7581,-0.00143909],59.9051,true,true], + ["Land_CncWall1_F",[-41.9668,-28.0046,-0.00143909],14.9051,true,true], + ["Land_BagBunker_01_large_green_F",[-49.7271,-16.9226,-0.00143909],90.2555,true,true], + ["Land_Cargo_Tower_V1_F",[-36.3582,-19.3394,-0.00143909],89.905,true,true], + ["Land_CncWall4_F",[-33.4968,-9.73975,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-45.3792,-5.75879,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-45.3867,-0.508789,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-45.3694,-11.0095,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-45.3955,4.74121,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-45.4041,9.99072,-0.00143909],89.9051,true,true], + ["Land_CncWall1_F",[-32.0076,1.70923,-0.00143909],74.9051,true,true], + ["Land_CncWall1_F",[-31.6313,0.61792,-0.00143909],59.9051,true,true], + ["Land_BagBunker_01_large_green_F",[-49.7959,14.4089,-0.00143909],90.2555,true,true], + ["Land_Cargo_HQ_V1_F",[-34.4014,20.1455,-0.00143862],269.491,true,true], + ["Land_CncWall4_F",[-45.4214,20.4915,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-45.4302,25.7415,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-38.8159,32.2512,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-33.5662,32.2607,-0.00143909],179.905,true,true], + ["Land_CncWall1_F",[-43.0654,31.7451,-0.00143909],149.905,true,true], + ["Land_CncWall1_F",[-41.9753,32.1199,-0.00143909],164.905,true,true], + ["Land_CncWall1_F",[-44.0635,30.9924,-0.00143909],134.905,true,true], + ["Land_CncWall1_F",[-44.8127,29.991,-0.00143909],119.905,true,true], + ["Land_CncWall1_F",[-45.3108,28.8672,-0.00143909],104.905,true,true], + ["Land_BagFence_Round_F",[-15.3367,-30.4338,-0.00143909],44.9051,true,true], + ["Land_BagFence_Round_F",[-25.8376,-30.2017,-0.00143909],314.905,true,true], + ["Land_PortableLight_double_F",[-2.30811,-29.9211,-0.00143909],44.7366,true,true], + ["Land_CncWall4_F",[-2.09229,-28.0632,-0.00143909],359.905,true,true], + ["Land_CncWall4_F",[-26.9856,-16.3538,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[-13.8528,-21.4565,-0.00143909],89.9051,true,true], + ["Land_CncWall4_F",[-26.9783,-21.6038,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[-7.34155,-28.0718,-0.00143909],359.905,true,true], + ["Land_CncWall4_F",[-13.8606,-16.2065,-0.00143909],89.9051,true,true], + ["Land_CncWall1_F",[-13.3455,-25.7068,-0.00143909],59.9051,true,true], + ["Land_CncWall1_F",[-12.593,-26.7058,-0.00143909],44.9051,true,true], + ["Land_CncWall1_F",[-27.5952,-25.8552,-0.00143909],299.905,true,true], + ["Land_CncWall1_F",[-27.0967,-24.7288,-0.00143909],284.905,true,true], + ["Land_CncWall1_F",[-13.7209,-24.6165,-0.00143909],74.9051,true,true], + ["Land_CncWall1_F",[-10.4666,-27.9514,-0.00143909],14.9051,true,true], + ["Land_CncWall1_F",[-29.3428,-27.6084,-0.00143909],329.905,true,true], + ["Land_CncWall1_F",[-30.4331,-27.9832,-0.00143909],344.905,true,true], + ["Land_CncWall1_F",[-11.592,-27.4541,-0.00143909],29.9051,true,true], + ["Land_CncWall1_F",[-28.3438,-26.855,-0.00143909],314.905,true,true], + ["Land_BagFence_Long_F",[-25.2168,-27.7002,-0.00143909],269.905,true,true], + ["Land_BagFence_Long_F",[-15.9658,-27.9348,-0.00143909],269.905,true,true], + ["Land_BagFence_Long_F",[-12.8359,-31.0559,-0.00143909],359.905,true,true], + ["Land_BagFence_Long_F",[-28.3364,-30.8318,-0.00143909],179.905,true,true], + ["Land_BagFence_Round_F",[-7.19092,10.5073,-0.00143909],44.9051,true,true], + ["Land_PortableLight_double_F",[-11.7207,0.158936,-0.00143909],135.598,true,true], + ["Land_PortableLight_double_F",[-29.4041,0.418701,-0.00143909],218.658,true,true], + ["Land_CncWall4_F",[-7.24731,-9.69678,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-20.376,-1.73682,-0.00143909],359.905,true,true], + ["Land_CncWall4_F",[-25.6274,-1.74609,-0.00143909],359.905,true,true], + ["Land_CncWall4_F",[-15.1272,-1.72925,-0.00143909],359.905,true,true], + ["Land_CncWall1_F",[-10.4058,-9.82935,-0.00143909],164.905,true,true], + ["Land_CncWall1_F",[-10.8779,-1.22144,-0.00143909],329.905,true,true], + ["Land_CncWall1_F",[-9.13086,0.531982,-0.00143909],299.905,true,true], + ["Land_CncWall1_F",[-11.4956,-10.2031,-0.00143909],149.905,true,true], + ["Land_CncWall1_F",[-8.63257,1.65747,-0.00143909],284.905,true,true], + ["Land_CncWall1_F",[-11.9688,-1.59668,-0.00143909],344.905,true,true], + ["Land_CncWall1_F",[-27.4932,-12.1047,-0.00143909],239.905,true,true], + ["Land_CncWall1_F",[-12.4951,-10.9553,-0.00143909],134.905,true,true], + ["Land_CncWall1_F",[-13.2424,-11.9563,-0.00143909],119.905,true,true], + ["Land_CncWall1_F",[-29.8777,-1.12744,-0.00143909],29.9051,true,true], + ["Land_CncWall1_F",[-9.87939,-0.470703,-0.00143909],314.905,true,true], + ["Land_CncWall1_F",[-30.3708,-9.86011,-0.00143909],194.905,true,true], + ["Land_CncWall1_F",[-30.8787,-0.378906,-0.00143909],44.9051,true,true], + ["Land_CncWall1_F",[-29.2468,-10.3582,-0.00143909],209.905,true,true], + ["Land_CncWall1_F",[-13.7417,-13.0818,-0.00143909],104.905,true,true], + ["Land_CncWall1_F",[-28.2449,-11.1069,-0.00143909],224.905,true,true], + ["Land_CncWall1_F",[-27.1179,-13.1948,-0.00143909],254.905,true,true], + ["Land_CncWall1_F",[-28.7524,-1.62573,-0.00143909],14.9051,true,true], + ["Land_BagFence_Long_F",[-7.8208,13.0066,-0.00143909],269.905,true,true], + ["Land_BagFence_Long_F",[-4.69067,9.88257,-0.00143909],359.905,true,true], + ["Land_Cargo_Patrol_V1_F",[-19.8857,1.92358,-0.00143862],359.905,true,true], + ["Land_Cargo_HQ_V1_F",[-17.6404,20.1672,-0.00143862],269.491,true,true], + ["Land_HelipadSquare_F",[0.169189,17.6489,-0.00143909],359.936,true,true], + ["Land_BagFence_Round_F",[-7.21484,25.1335,-0.00143909],134.905,true,true], + ["Land_BagFence_Round_F",[-8.354,36.8232,-0.00143909],134.905,true,true], + ["Land_CncWall4_F",[-23.0659,32.2773,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-12.615,32.3005,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-17.8164,32.2856,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-7.396,32.3115,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[-2.25146,35.2305,-0.00143909],179.977,true,true], + ["Land_CncWall4_F",[-28.3167,32.269,-0.00143909],179.905,true,true], + ["Land_CncWall1_F",[-4.03638,32.6663,-0.00143909],149.461,true,true], + ["Land_BagFence_Long_F",[-4.71533,25.7625,-0.00143909],359.905,true,true], + ["Land_BagFence_Long_F",[-5.85449,37.4521,-0.00143909],359.905,true,true], + ["Land_BagFence_Long_F",[-7.83618,22.6321,-0.00143909],89.9051,true,true], + ["Land_BagFence_Long_F",[-8.97534,34.3218,-0.00143909],89.9051,true,true], + ["Land_PortableLight_double_F",[12.1106,-26.1833,-0.00143909],149.905,true,true], + ["Land_CncWall4_F",[15.0215,-21.5349,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[8.38428,-28.1101,-0.00143909],359.905,true,true], + ["Land_CncWall4_F",[15.0137,-16.2847,-0.00143909],269.905,true,true], + ["Land_CncWall1_F",[14.9031,-24.6597,-0.00143909],284.905,true,true], + ["Land_CncWall1_F",[12.6567,-27.5383,-0.00143909],329.905,true,true], + ["Land_CncWall1_F",[11.5676,-27.9133,-0.00143909],344.905,true,true], + ["Land_CncWall1_F",[14.4038,-25.7854,-0.00143909],299.905,true,true], + ["Land_CncWall1_F",[13.656,-26.7861,-0.00143909],314.905,true,true], + ["Land_BagFence_Long_F",[12.5037,-23.1807,-0.00143909],89.3707,true,true], + ["Land_BagFence_Long_F",[11.072,-24.5706,-0.00143909],359.905,true,true], + ["Land_BagFence_Long_F",[10.9707,-21.8315,-0.00143909],179.371,true,true], + ["Land_BagFence_Long_F",[9.56812,-23.1921,-0.00143909],269.905,true,true], + ["Land_BagBunker_01_large_green_F",[3.83936,-32.5405,-0.00143909],0,true,true], + ["Land_TTowerSmall_2_F",[11.5024,-23.7861,-0.00143909],179.905,true,true], + ["Land_Cargo_House_V1_F",[9.00171,-10.2603,-0.00143909],89.905,true,true], + ["Land_Cargo_House_V1_F",[8.98071,2.86475,-0.00143909],89.905,true,true], + ["Land_Medevac_house_V1_F",[8.99219,-3.76099,-0.00143909],90.3921,true,true], + ["Land_BagFence_Round_F",[8.05933,10.2788,-0.00143909],314.905,true,true], + ["Land_PortableLight_double_F",[12.8176,7.44629,-0.00143909],134.905,true,true], + ["Land_CncWall4_F",[14.9788,4.71558,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[15.0054,-11.0347,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[14.9961,-5.78418,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[14.9878,-0.533936,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[14.9705,9.96558,-0.00143909],269.905,true,true], + ["Land_BagFence_Long_F",[8.68018,12.7852,-0.00143909],269.905,true,true], + ["Land_BagFence_Long_F",[5.55933,9.6499,-0.00143909],179.905,true,true], + ["Land_BagBunker_01_large_green_F",[19.272,16.1316,-0.00143909],269.832,true,true], + ["Land_BagFence_Round_F",[7.91089,24.9097,-0.00143909],224.905,true,true], + ["Land_BagFence_Round_F",[9.05054,36.9314,-0.00143909],224.905,true,true], + ["Land_PortableLight_double_F",[11.8816,29.2671,-0.00143909],44.7366,true,true], + ["Land_CncWall4_F",[14.9529,20.4653,-0.00143909],269.905,true,true], + ["Land_CncWall4_F",[8.43433,32.3303,-0.00143909],179.905,true,true], + ["Land_CncWall4_F",[2.95288,35.22,-0.00143909],179.977,true,true], + ["Land_CncWall4_F",[14.9443,25.7156,-0.00143909],269.905,true,true], + ["Land_CncWall1_F",[14.4373,29.9646,-0.00143909],239.905,true,true], + ["Land_CncWall1_F",[14.813,28.8745,-0.00143909],254.905,true,true], + ["Land_CncWall1_F",[13.6853,30.9644,-0.00143909],224.905,true,true], + ["Land_CncWall1_F",[12.6843,31.7119,-0.00143909],209.905,true,true], + ["Land_CncWall1_F",[11.5593,32.2114,-0.00143909],194.905,true,true], + ["Land_CncWall1_F",[5.11841,32.7061,-0.00143909],209.905,true,true], + ["Land_BagFence_Long_F",[8.54004,22.4104,-0.00143909],89.9051,true,true], + ["Land_BagFence_Long_F",[9.67969,34.4321,-0.00143909],89.9051,true,true], + ["Land_BagFence_Long_F",[5.40894,25.5288,-0.00143909],179.905,true,true], + ["Land_BagFence_Long_F",[6.54858,37.5505,-0.00143909],179.905,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[0.0717773,16.9431,-0.00143814],_crateLoot,_lootCounts,0.000320471] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["O_T_LSV_02_armed_F",[-62.7971,0.422119,-0.0236669],0.00164848], + ["O_T_LSV_02_armed_F",[31.9084,-7.18774,-0.0238085],0.00168349] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Red; +_maxNoAI = blck_MaxAI_Red; +_noAIGroups = blck_AIGrps_Red; +_noVehiclePatrols = blck_SpawnVeh_Red; +_noEmplacedWeapons = blck_SpawnEmplaced_Red; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Red/derbunker.sqf b/@GMS/addons/custom_server/Missions/Red/derbunker.sqf new file mode 100644 index 0000000..2b47374 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Red/derbunker.sqf @@ -0,0 +1,120 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Red Mission with template = default"; +_crateLoot = blck_BoxLoot_Red; +_lootCounts = blck_lootCountsRed; +_startMsg = "An enemy Bunker was sighted in a nearby sector! Check the Red marker on your map for the location!"; +_endMsg = "The Bunker at the Red Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorRed"; +_markerMissionName = "DerBunker"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Bunker_01_big_F",[-15.925,9.02295,0.760561],90.071,true,true,[["O_HMG_01_high_F",[-5.45947,-3.38574,0.109706],359.994]],[]], + ["Land_Bunker_01_tall_F",[-15.377,-8.8042,-0.00143909],90.071,true,true,[["O_HMG_01_high_F",[5.50562,-2.54395,-0.0121193],0.00145215],["O_HMG_01_high_F",[-1.72095,-0.109375,4.96893],0.00948966]],[]], + ["Land_Bunker_01_tall_F",[-15.76,28.606,-0.00143909],90.071,true,true,[["O_HMG_01_high_F",[5.47437,2.47559,-0.0121179],0.000581241],["O_HMG_01_high_F",[-1.38867,-0.0722656,4.967],359.999],["O_HMG_01_high_F",[11.8271,5.87988,-0.0121188],0.00143633]],[]], + ["Land_Bunker_01_big_F",[20.199,10.729,0.760561],270.416,true,true,[["O_HMG_01_high_F",[5.86328,3.25586,0.109697],0.0117801]],[]], + ["Land_Bunker_01_tall_F",[19.8899,-8.86914,-0.00143909],270.416,true,true,[["O_HMG_01_high_F",[-5.13818,-2.33496,-0.0121174],0.0002874],["O_HMG_01_high_F",[1.45801,0.0512695,4.96698],360]],[]], + ["Land_Bunker_01_tall_F",[19.731,28.542,-0.00143909],270.416,true,true,[["O_HMG_01_high_F",[-5.00977,2.1792,-0.0121188],0.00143735],["O_HMG_01_high_F",[1.80957,0.26709,4.96756],360],["O_HMG_01_high_F",[-12.0127,6.1333,-0.0121193],0.00145178]],[]] +]; + +_missionLandscape = [ + //["Sign_Arrow_F",[-3163.22,-5166.85,-0.00143909],0,true,true], + //["Sign_Arrow_Green_F",[-3163.22,-5166.85,-0.00143909],0,true,true], + //["Sign_Arrow_Yellow_F",[-3163.22,-5166.85,-0.00143909],0,true,true], + //["babe_helper",[-3165.72,-5166.35,-0.00143909],90.8645,true,true], + ["Land_Bunker_01_blocks_3_F",[-13.762,17.5518,-0.00143909],270.35,true,true], + ["Land_Bunker_01_blocks_3_F",[-0.0979004,-12.9033,-0.00143909],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[-5.18799,-12.9092,-0.00143909],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[-10.175,-12.9253,-0.502439],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[-13.814,-4.44141,-0.00143909],270.35,true,true], + ["Land_Bunker_01_blocks_3_F",[-13.7959,0.544922,-0.00143909],270.35,true,true], + ["CamoNet_INDP_big_F",[2.23804,-2.70508,-0.00143909],182.545,true,true], + ["Land_Bunker_01_blocks_3_F",[-13.7451,22.5391,-0.00143909],270.35,true,true], + ["Land_Bunker_01_blocks_3_F",[-2.51611,30.105,-0.00143909],90.192,true,true], + ["Land_Bunker_01_blocks_3_F",[-10.6179,32.6689,-0.432439],0.106,true,true], + ["Land_Bunker_01_blocks_3_F",[-5.63013,32.6719,-0.00143909],0.106,true,true], + ["Land_Bunker_01_blocks_3_F",[17.958,2.1958,-0.00143909],90.695,true,true], + ["Land_Bunker_01_blocks_3_F",[14.9771,-12.854,-0.529439],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[4.88892,-12.8853,-0.00143909],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[17.9109,-2.78906,-0.00143909],90.695,true,true], + ["Land_Bunker_01_blocks_3_F",[9.98999,-12.8711,-0.00143909],179.955,true,true], + ["Land_Bunker_01_blocks_3_F",[6.58691,30.1689,-0.00143909],269.774,true,true], + ["Land_Bunker_01_blocks_3_F",[18.095,19.2026,-0.00143909],90.695,true,true], + ["Land_Bunker_01_blocks_3_F",[18.1409,24.189,-0.00143909],90.695,true,true], + ["Land_Bunker_01_blocks_3_F",[9.54907,32.6689,-0.00143909],0.106,true,true], + ["Land_Bunker_01_blocks_3_F",[14.5359,32.6729,-0.363439],0.106,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[0.0446777,-1.31494,-0.001441],_crateLoot,_lootCounts,0.00167282] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["O_LSV_02_armed_F",[-37.46,8.55273,-0.0378561],359.999], + ["O_LSV_02_unarmed_F",[38.3699,8.21484,-0.0378113],359.999] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Red; +_maxNoAI = blck_MaxAI_Red; +_noAIGroups = blck_AIGrps_Red; +_noVehiclePatrols = blck_SpawnVeh_Red; +_noEmplacedWeapons = blck_SpawnEmplaced_Red; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Red/factory.sqf b/@GMS/addons/custom_server/Missions/Red/factory.sqf new file mode 100644 index 0000000..6449cd1 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Red/factory.sqf @@ -0,0 +1,149 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Red Mission with template = default"; +_crateLoot = blck_BoxLoot_Red; +_lootCounts = blck_lootCountsRed; +_startMsg = "An Ammunition Factory was sighted in a nearby sector! Check the Red marker on your map for the location!"; +_endMsg = "The Factory at the Red Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorRed"; +_markerMissionName = "Factory"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_Tower_V3_F",[-18.6987,-51.7905,-0.0014348],91.6296,true,true,[["B_HMG_01_high_F",[3.31396,2.89209,8.57585],359.999],["B_HMG_01_high_F",[13.0347,0.8479,-0.0121226],360],["B_HMG_01_high_F",[-9.4834,13.5967,-0.0121226],0.00158913],["B_HMG_01_high_F",[-0.601074,3.90967,17.8764],359.999],["B_HMG_01_high_F",[-0.877441,-4.83179,17.8764],359.999],["B_HMG_01_high_F",[-9.77783,29.3799,-0.0121226],360]],[]], + ["Land_Cargo_Patrol_V3_F",[-27.1675,-15.407,-0.00143814],91.6296,true,true,[["B_HMG_01_high_F",[-1.15381,1.24658,4.33092],275.276]],[]], + ["Land_Cargo_Patrol_V3_F",[-10.7632,4.77441,-0.00143814],181.63,true,true,[["B_HMG_01_high_F",[-1.32959,1.03662,4.33092],359.999]],[]], + ["Land_Cargo_Patrol_V3_F",[12.9375,3.5835,-0.00143814],181.63,true,true,[["B_HMG_01_high_F",[1.57861,1.04736,4.33093],357.402],["B_HMG_01_high_F",[8.41357,-9.20557,-0.0121202],0.0033673]],[]] +]; + + + +_missionLandscape = [ + //["babe_helper",[-4335.99,-3525.64,-0.00143862],0,true,true], + //["Sign_Arrow_Green_F",[-4333.49,-3526.14,-0.00143862],0,true,true], + //["Sign_Arrow_F",[-4333.49,-3526.14,-0.00143862],0,true,true], + //["Sign_Arrow_Yellow_F",[-4333.49,-3526.14,-0.00143862],0,true,true], + ["Land_HBarrier_Big_F",[0,0,0],181.63,true,true], + ["Land_HBarrier_Big_F",[13.4092,-3.25757,0],271.63,true,true], + ["Land_HBarrier_Big_F",[8.375,-0.113037,0],181.63,true,true], + ["Land_Cargo_Patrol_V3_F",[1.41602,-4.66895,4.76837e-007],181.63,true,true], + ["Land_HBarrier_Big_F",[13.4199,-11.7607,0],271.63,true,true], + ["Land_HBarrier_Big_F",[18.5933,-23.1626,0],181.63,true,true], + ["Land_HBarrier_Big_F",[13.436,-19.8896,0],271.63,true,true], + ["Land_HBarrier_Big_F",[21.832,-28.0088,0],271.63,true,true], + ["Land_BagFence_Round_F",[26.2334,-38.7039,0],316.63,true,true], + ["Land_BagFence_Round_F",[26.3379,-36.5427,0],226.63,true,true], + ["Land_BagFence_Long_F",[23.7163,-39.2576,0],181.63,true,true], + ["CamoNet_OPFOR_F",[10.2559,-17.4697,0],91.6296,true,true], + ["Land_HBarrier_Big_F",[-3.3916,-4.90503,0],91.6296,true,true], + ["Land_HBarrier_Big_F",[-30.9849,1.00684,0],181.63,true,true], + ["Land_HBarrier_Big_F",[-17.564,-2.00073,0],271.63,true,true], + ["Land_HBarrier_Big_F",[-22.731,1.02173,0],181.63,true,true], + ["Land_Cargo_Patrol_V3_F",[-22.2847,-3.47803,4.76837e-007],181.63,true,true], + ["CamoNet_OPFOR_big_F",[-34.8179,-6.18286,0],1.62962,true,true], + ["Land_HBarrier_Big_F",[-20.0698,-63.729,0],91.6296,true,true], + ["Land_HBarrier_Big_F",[-33.6689,-66.9641,0],181.63,true,true], + ["Land_HBarrier_Big_F",[-25.1631,-66.959,0],181.63,true,true], + ["Land_BagFence_Long_F",[-17.6025,-60.449,0],181.63,true,true], + ["Land_Cargo_Tower_V3_F",[-30.2202,-60.043,3.8147e-006],91.6296,true,true], + ["Land_BagFence_Round_F",[-15.085,-59.8953,0],316.63,true,true], + ["Land_HBarrier_Big_F",[-39.3599,1.11987,0],181.63,true,true], + ["Land_HBarrier_Big_F",[-42.751,-3.7854,0],91.6296,true,true], + ["Land_HBarrier_Big_F",[-42.8638,-12.1604,0],91.6296,true,true], + ["Land_HBarrier_Big_F",[-37.8037,-27.686,0],181.63,true,true], + ["Land_HBarrier_Big_F",[-42.8486,-20.4146,0],91.6296,true,true], + ["Land_HBarrier_Big_F",[-42.9619,-28.7896,0],91.6296,true,true], + ["Land_Cargo_Patrol_V3_F",[-38.689,-23.6594,4.76837e-007],91.6296,true,true], + ["CamoNet_OPFOR_F",[-37.1313,-30.3784,0],1.62962,true,true], + ["Land_HBarrier_Big_F",[-36.8999,-61.8621,0],91.6296,true,true], + ["Land_HBarrier_Big_F",[-36.792,-53.6099,0],91.6296,true,true], + ["Land_BagFence_Corner_F",[-37.04,-49.1382,0],1.62962,true,true], + ["Land_BagFence_Corner_F",[-40.8984,-48.5288,0],181.63,true,true], + ["Land_BagFence_Long_F",[-39.0317,-48.8325,0],181.63,true,true], + ["Land_BagFence_Long_F",[-39.1577,-44.4534,0],1.62962,true,true], + ["Land_BagFence_Long_F",[-41.2227,-46.7695,0],91.6296,true,true], + ["Land_BagFence_Corner_F",[-40.916,-44.7759,0],271.63,true,true], + ["Land_HBarrier_Big_F",[0.214844,-63.1599,0],181.63,true,true], + ["Land_HBarrier_Big_F",[8.46875,-63.145,0],181.63,true,true], + ["Land_HBarrier_Big_F",[-8.16016,-63.0469,0],181.63,true,true], + ["Land_HBarrier_Big_F",[21.3247,-43.1565,0],271.63,true,true], + ["Land_HBarrier_Big_F",[21.3354,-51.6597,0],271.63,true,true], + ["Land_HBarrier_Big_F",[21.3516,-59.7886,0],271.63,true,true], + ["Land_HBarrier_Big_F",[16.6245,-63.0515,0],181.63,true,true], + ["Land_Dome_Small_F",[0.337891,-44.8254,-4.76837e-007],0.223401,true,true], + ["Land_dp_smallTank_F",[18.314,-70.0537,0],0,true,true], + ["Land_dp_smallTank_F",[9.81934,-69.9482,0],0,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[0.337891,-44.,0],_crateLoot,_lootCounts,0.000320471] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["B_G_Offroad_01_armed_F",[-53.8027,-29.7834,0.00867844],0.00103655], + ["B_G_Offroad_01_armed_F",[51.0596,-25.7876,0.00815535],0.00104356] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Red; +_maxNoAI = blck_MaxAI_Red; +_noAIGroups = blck_AIGrps_Red; +_noVehiclePatrols = blck_SpawnVeh_Red; +_noEmplacedWeapons = blck_SpawnEmplaced_Red; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Red/junkyardWilly.sqf b/@GMS/addons/custom_server/Missions/Red/junkyardWilly.sqf new file mode 100644 index 0000000..5b48eda --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Red/junkyardWilly.sqf @@ -0,0 +1,59 @@ +/* +Mission Compositions by Ghostrider [GRG] for ghostridergaming +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Red Mission with template = default"; +_crateLoot = blck_BoxLoot_Red; +_lootCounts = blck_lootCountsRed; +_startMsg = "An enemy junkyard was sighted in a nearby sector! Check the Red marker on your map for the location!"; +_endMsg = "The Sector at the Red Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorRed"; +_markerMissionName = "Junkyard"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" +_missionLandscape = [ + ["Land_Wreck_Van_F",[-9.02148,-1.02734,0],0,[false,false]], + ["Land_Wreck_Truck_dropside_F",[-3.02148,-7.02734,2.38419e-007],0,[false,false]], + ["Land_Wreck_T72_hull_F",[4.97852,8.97266,0],0,[false,false]], + ["Land_Wreck_Slammer_turret_F",[-5.02148,4.97266,0],0,[false,false]], + ["Land_Wreck_Ural_F",[9.97852,2.97266,-2.38419e-007],0,[false,false]], + ["Land_Wreck_UAZ_F",[9.97852,-5.02734,-2.38419e-007],0,[false,false]], + ["Land_Wreck_Offroad2_F",[6.97852,-11.0273,0],0,[false,false]], + ["Land_Wreck_Offroad_F",[-9.02148,-10.0273,2.38419e-007],0,[false,false]], + ["Land_Wreck_Heli_Attack_02_F",[17.9785,12.9727,0],0,[false,false]], + ["Land_Wreck_Hunter_F",[-10.0215,14.9727,2.38419e-007],0,[false,false]], + ["Land_Wreck_Car3_F",[-16.0215,5.97266,0],0,[false,false]], + ["Land_Wreck_Car_F",[-15.0215,-6.02734,0],0,[false,false]], + ["Land_Wreck_Car2_F",[17.9785,-6.02734,2.38419e-007],0,[false,false]], + ["Land_Wreck_Truck_F",[3.97852,23.9727,0],0,[false,false]], + ["Land_Wreck_CarDismantled_F",[-1.02148,-16.0273,0],0,[false,false]], + ["Land_Wreck_BRDM2_F",[-21.0215,0.972656,0],0,[false,false]], + ["Land_Wreck_BMP2_F",[14.9785,-18.0273,0],0,[false,false]], + ["Flag_AAF_F",[4,4,0],0,[false,false]] +]; // list of objects to spawn as landscape +_missionLootBoxes = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position. +_missionLootVehicles = []; // Parameters are "Box Item Code", array defining the loot to be spawned, and position. +_missionEmplacedWeapons = []; // 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 +_minNoAI = blck_MinAI_Red; +_maxNoAI = blck_MaxAI_Red; +_noAIGroups = blck_AIGrps_Red; +_noVehiclePatrols = blck_SpawnVeh_Red; +_noEmplacedWeapons = blck_SpawnEmplaced_Red; +// Change _useMines to true/false below to enable mission-specific settings. +#ifdef blck_useCUP +_uniforms = blck_CUPUniforms; +_weaponList = blck_CUPWeapons; +_vests = blck_CUPVests; +_backpacks = blck_CUPBackpacks; +_headgear = blck_CUPHeadgear; +#endif +#ifdef blck_useNIA +_weaponList = _weaponList + + blck_NIA_WeaponsSniper; +#endif + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Red/lager.sqf b/@GMS/addons/custom_server/Missions/Red/lager.sqf new file mode 100644 index 0000000..bf1ca51 --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Red/lager.sqf @@ -0,0 +1,185 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Red Mission with template = default"; +_crateLoot = blck_BoxLoot_Red; +_lootCounts = blck_lootCountsRed; +_startMsg = "An enemy Camp was sighted in a nearby sector! Check the Red marker on your map for the location!"; +_endMsg = "The Camp at the Red Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorRed"; +_markerMissionName = "Nachschublager"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_Tower_V1_F",[-8.1167,-39.0396,-0.00143862],180.738,true,true,[["O_HMG_01_high_F",[-4.98901,13.312,-0.0121193],359.999],["O_HMG_01_high_F",[-4.88916,0.893799,17.8798],359.999],["O_GMG_01_high_F",[2.86377,5.15186,17.7791],0.00110346],["O_GMG_01_high_F",[3.12354,-4.59814,17.8788],0.00619121],["O_HMG_01_high_F",[8.82837,21.6572,-0.0121193],359.999],["O_GMG_01_high_F",[-3.55591,26.4539,-0.0118098],360]],[]], + ["Land_Cargo_Tower_V1_F",[-8.7854,37.2058,-0.00143862],180.738,true,true,[["O_HMG_01_high_F",[-4.1167,-15.228,-0.0121188],359.999],["O_GMG_01_high_F",[-5.05029,0.812012,17.8801],359.999],["O_HMG_01_high_F",[2.97925,4.90308,17.7791],359.995],["O_HMG_01_high_F",[3.02808,-5.19946,17.8776],359.987],["O_HMG_01_high_F",[9.59595,-22.2854,-0.0121188],359.999],["O_GMG_01_high_F",[-1.95337,-25.9678,-0.0118098],360]],[]], + ["Land_Cargo_HQ_V1_F",[41.5171,-35.4209,-0.00143814],88.7297,true,true,[["O_HMG_01_high_F",[-4.19043,0.419922,3.1134],360],["O_GMG_01_high_F",[1.2395,-6.33594,3.11891],359.998]],[]], + ["Land_Cargo_HQ_V1_F",[41.6394,35.6191,-0.00143814],271.277,true,true,[["O_HMG_01_high_F",[1.75781,6.54565,3.11813],359.998]],[]], + ["Land_Cargo_Patrol_V1_F",[58.7402,-14.1282,-0.00143814],179.058,true,true,[["O_HMG_01_high_F",[0.936523,-0.546631,4.55561],186.318],["O_HMG_01_high_F",[-8.49658,3.90869,-0.0121207],0.00101132]],[]], + ["Land_Cargo_Patrol_V1_F",[58.6057,14.2329,-0.00143814],359.375,true,true,[["O_GMG_01_high_F",[1.16113,-1.15356,4.33123],360],["O_HMG_01_high_F",[-8.44897,-1.0686,-0.0121198],359.999]],[]] +]; + +_missionLandscape = [ + //["babe_helper",[-3950.48,-2427.52,-0.00143862],0,true,true], + //["Sign_Arrow_Green_F",[-3947.98,-2428.02,-0.00143862],0,true,true], + //["Sign_Arrow_F",[-3947.98,-2428.02,-0.00143862],0,true,true], + //["Sign_Arrow_Yellow_F",[-3947.98,-2428.02,-0.00143862],0,true,true], + ["Land_LampHalogen_F",[-16.9238,-29.4194,-0.00143814],175.993,true,true], + ["Land_HBarrierBig_F",[-16.6211,-36.4802,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-16.6907,-44.7676,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-16.8193,-28.7813,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-17.0107,-4.99146,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-16.8831,-20.9722,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-16.813,-12.6887,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-16.9338,3.10571,-0.00143862],271.533,true,true], + ["Land_LampHalogen_F",[-17.1384,26.0154,-0.00143814],175.993,true,true], + ["Land_HBarrierBig_F",[-17.126,26.9011,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-17.0623,19.092,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-16.8643,11.3931,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-17.0559,35.1846,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[-17.2517,42.8821,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[10.6238,-49.76,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[4.90186,-29.2209,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[2.92627,-49.9541,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[-3.42188,-29.1743,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[-5.36133,-49.8767,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[-13.5088,-49.9219,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[13.3582,-29.1738,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[-11.5808,-29.1753,-0.00143862],181.755,true,true], + ["Land_LampHalogen_F",[6.08081,-17.4399,-0.00143814],183.353,true,true], + ["Land_Cargo_House_V1_F",[5.85425,-11.7749,-0.00143862],178.957,true,true], + ["Land_Cargo_House_V1_F",[12.7263,-11.8384,-0.00143862],180.484,true,true], + ["Land_Cargo_House_V1_F",[6.03076,-23.2114,-0.00143862],0.530105,true,true], + ["Land_Cargo_House_V1_F",[-9.97656,-7.45703,-0.00143862],270.031,true,true], + ["Land_Cargo_House_V1_F",[-9.95679,-0.756836,-0.00143862],270.244,true,true], + ["Land_Cargo_House_V1_F",[12.6707,-23.292,-0.00143862],0.742551,true,true], + ["Land_LampHalogen_F",[4.89917,14.9739,-0.00143814],183.353,true,true], + ["Land_HBarrierBig_F",[3.46533,26.0403,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[-4.86035,26.0867,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[11.9197,26.0874,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[-13.1709,26.1252,-0.00143862],181.755,true,true], + ["Land_Cargo_House_V1_F",[-9.93091,6.11108,-0.00143862],268.716,true,true], + ["Land_Cargo_House_V1_F",[11.5469,20.5737,-0.00143862],180.484,true,true], + ["Land_Cargo_House_V1_F",[11.4912,9.12012,-0.00143862],0.742551,true,true], + ["Land_Cargo_House_V1_F",[4.6748,20.6372,-0.00143862],178.957,true,true], + ["Land_Cargo_House_V1_F",[4.79419,9.20044,-0.00143862],0.530105,true,true], + ["Land_HBarrierBig_F",[-13.959,47.9253,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[10.1702,48.1106,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[1.88428,48.1787,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[-6.26294,48.124,-0.00143862],1.51588,true,true], + ["Land_LampHalogen_F",[37.4138,-49.6885,-0.00143814],86.6613,true,true], + ["Land_HBarrierBig_F",[18.4333,-49.7061,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[21.7261,-29.1707,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[34.4153,-49.5938,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[42.5332,-49.4375,-0.00143862],1.58276,true,true], + ["Land_HBarrierBig_F",[26.7168,-49.782,-0.00143862],1.58276,true,true], + ["Land_LampHalogen_F",[24.2969,-4.63354,-0.00143814],175.763,true,true], + ["Land_LampHalogen_F",[24.0779,2.92041,-0.00143814],175.763,true,true], + ["Land_HBarrierBig_F",[24.7175,-16.5247,-0.00143862],270.156,true,true], + ["Land_HBarrierBig_F",[24.5884,-8.51978,-0.00143862],270.156,true,true], + ["Land_HBarrierBig_F",[20.874,3.03345,-0.00143862],181.755,true,true], + ["Land_HBarrierBig_F",[24.8879,-24.3479,-0.00143862],270.156,true,true], + ["Land_HBarrierBig_F",[21.095,-4.52222,-0.00143862],181.755,true,true], + ["Land_Cargo_House_V1_F",[19.4255,-11.8789,-0.00143862],180.272,true,true], + ["Land_Cargo_House_V1_F",[19.5381,-23.3779,-0.00143862],359.215,true,true], + ["Land_HBarrierBig_F",[24.0823,6.26489,-0.00143862],270.156,true,true], + ["Land_HBarrierBig_F",[23.7832,22.0911,-0.00143862],270.156,true,true], + ["Land_HBarrierBig_F",[23.9121,14.0862,-0.00143862],270.156,true,true], + ["Land_HBarrierBig_F",[20.2896,26.0906,-0.00143862],181.755,true,true], + ["Land_Cargo_House_V1_F",[18.3564,9.03589,-0.00143862],359.215,true,true], + ["Land_Cargo_House_V1_F",[18.2441,20.533,-0.00143862],180.272,true,true], + ["Land_LampHalogen_F",[37.1499,49.4319,-0.00143814],270.972,true,true], + ["Land_HBarrierBig_F",[17.8696,48.312,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[33.9624,48.3108,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[25.6785,48.3774,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[41.6587,48.5078,-0.00143862],1.51588,true,true], + ["Land_HBarrierBig_F",[53.832,-28.3086,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[53.8938,-44.4204,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[53.9326,-36.322,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[50.8213,-49.5146,-0.00143862],1.58276,true,true], + ["Land_LampHalogen_F",[61.6257,-8.93774,-0.00143814],183.353,true,true], + ["Land_HBarrierBig_F",[53.5598,-12.5808,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[58.1006,-9.04248,-0.00143862],180.639,true,true], + ["Land_HBarrierBig_F",[53.6702,-20.0735,-0.00143862],271.533,true,true], + ["Land_LampHalogen_F",[61.2739,9.27808,-0.00143814],183.353,true,true], + ["Land_HBarrierBig_F",[57.9741,9.22607,-0.00143862],180.457,true,true], + ["Land_HBarrierBig_F",[53.0159,20.7566,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[53.2136,13.0596,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[53.0928,28.8538,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[53.1624,37.1411,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[52.9644,44.8403,-0.00143862],271.533,true,true], + ["Land_HBarrierBig_F",[49.8362,48.4373,-0.00143862],1.51588,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[-2.28174,0.128662,-0.00143862],_crateLoot,_lootCounts,0.000181514] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["Exile_Car_Hunter",[24.8054,-67.8333,0.00875282],89.6558], + ["Exile_Car_HEMMT",[24.8997,69.1799,-0.00138235],91.5468], + ["O_LSV_02_armed_F",[74.0911,1.21655,-0.0377212],359.999] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Red; +_maxNoAI = blck_MaxAI_Red; +_noAIGroups = blck_AIGrps_Red; +_noVehiclePatrols = blck_SpawnVeh_Red; +_noEmplacedWeapons = blck_SpawnEmplaced_Red; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Red/tko_camp.sqf b/@GMS/addons/custom_server/Missions/Red/tko_camp.sqf new file mode 100644 index 0000000..f71feaf --- /dev/null +++ b/@GMS/addons/custom_server/Missions/Red/tko_camp.sqf @@ -0,0 +1,174 @@ +/* + Mission Template by Ghostrider [GRG] + Mission Compositions by Bill prepared for ghostridergaming + Copyright 2016 + Last modified 3/20/17 + + -------------------------- + 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/ +*/ +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +//diag_log "[blckeagls] Spawning Red Mission with template = default"; +_crateLoot = blck_BoxLoot_Red; +_lootCounts = blck_lootCountsRed; +_startMsg = "An enemy Military Camp was sighted in a nearby sector! Check the Red marker on your map for the location!"; +_endMsg = "The Military Camp at the Red Marker is under survivor control!"; +_markerLabel = ""; +_markerType = ["ELLIPSE",[300,300],"Solid"]; +_markerColor = "ColorRed"; +_markerMissionName = "Military Camp"; +_missionLandscapeMode = "precise"; // acceptable values are "none","random","precise" + +////////// +// Past the output of the script here +_garrisonedBuildings_BuildingPosnSystem = [ +]; + +_garrisonedBuilding_ATLsystem = [ + ["Land_Cargo_House_V3_F",[8.00928,15.6453,-0.00143909],0,true,true,[["B_HMG_01_high_F",[-8.28516,3.27148,-0.0121188],0.000433404]],[]] +]; + +_missionLandscape = [ + //["babe_helper",[-3327.46,-2809.42,-0.00143909],0,true,true], + //["Sign_Arrow_Green_F",[-3324.96,-2809.92,-0.00143909],0,true,true], + //["Sign_Arrow_F",[-3324.96,-2809.92,-0.00143909],0,true,true], + //["Sign_Arrow_Yellow_F",[-3324.96,-2809.92,-0.00143909],0,true,true], + ["Land_HBarrier_Big_F",[-2.76221,-30.3596,-0.00143909],0,true,true], + ["Land_HBarrier_1_F",[-9.74463,-27.0081,-0.00143909],180,true,true], + ["Land_BagFence_Long_F",[-9.74268,-29.0042,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-8.36182,-30.3743,-0.00143909],180,true,true], + ["CamoNet_OPFOR_open_F",[-0.361816,-1.01782,-0.00143909],180,true,true], + ["Land_HBarrier_3_F",[-15.3853,-13.9866,-0.00143909],315,true,true], + ["Land_HBarrier_Big_F",[-3.61768,-5.26782,-0.00143909],180,true,true], + ["Land_HBarrier_Big_F",[-5.46533,3.40405,-0.00143909],0,true,true], + ["Land_HBarrier_Big_F",[-18.5767,-14.5354,-0.00143909],45,true,true], + ["Land_HBarrier_Big_F",[-12.4985,-20.3987,-0.00143909],45,true,true], + ["Land_HBarrier_1_F",[-22.9692,-2.77563,-0.00143909],270,true,true], + ["Land_HBarrier_1_F",[-23.3423,0.478271,-0.00143909],15,true,true], + ["Land_BagFence_Long_F",[-24.5767,-9.90649,-0.00143909],315,true,true], + ["Land_BagFence_Long_F",[-22.8071,-8.13794,-0.00143909],315,true,true], + ["Land_BagFence_Long_F",[-18.7427,-12.3811,-0.00143909],315,true,true], + ["Land_BagFence_Long_F",[-23.2368,2.26245,-0.00143909],90,true,true], + ["Land_BagFence_Long_F",[-21.8657,6.25952,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[-22.3657,-13.8772,-0.00143909],135,true,true], + ["Land_BagFence_Long_F",[-9.74268,-25.1174,-0.00143909],90,true,true], + ["Land_BagFence_Long_F",[-18.5649,-8.3147,-0.00143909],45,true,true], + ["Land_BagFence_Long_F",[-23.2368,4.88843,-0.00143909],90,true,true], + ["Land_BagFence_Long_F",[-25.2192,0.111084,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[-25.2192,-2.76587,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[-26.5884,-1.39282,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-24.3989,-13.9709,-0.00143909],225,true,true], + ["Land_BagFence_Round_F",[-17.5747,-10.4006,-0.00143909],270,true,true], + ["Land_BagFence_Round_F",[-25.5493,-11.9026,-0.00143909],90,true,true], + ["Land_BagFence_Round_F",[-20.7212,-7.07642,-0.00143909],180,true,true], + ["Land_BagFence_End_F",[-9.7583,-23.3167,-0.00143909],270,true,true], + ["Land_Cargo_Patrol_V3_F",[-10.9263,-16.053,-0.00143862],45,true,true], + ["Land_Cargo_House_V3_F",[-3.09424,-20.7424,-0.00143909],180,true,true], + ["CamoNet_OPFOR_open_F",[-0.225098,8.17163,-0.00143909],0,true,true], + ["Land_HBarrier_3_F",[-1.85596,17.1208,-0.00143909],180,true,true], + ["Land_HBarrier_3_F",[-2.70752,19.4275,-0.00143909],90,true,true], + ["Land_HBarrier_Big_F",[-19.6177,9.36694,-0.00143909],270,true,true], + ["Land_HBarrier_Big_F",[-19.6646,17.5466,-0.00143909],90,true,true], + ["Land_HBarrier_1_F",[-4.93994,9.58374,-0.00143909],270,true,true], + ["Land_HBarrier_1_F",[-16.4673,27.1775,-0.00143909],285,true,true], + ["Land_HBarrier_1_F",[-2.68408,25.3513,-0.00143909],120,true,true], + ["Land_BagFence_Long_F",[-2.30908,23.7244,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-19.7173,23.0505,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-19.7153,25.9265,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[-18.3462,27.4314,-0.00143909],0,true,true], + ["Land_Cargo_Patrol_V3_F",[-15.4087,10.7146,-0.00143862],90,true,true], + ["Land_HBarrier_5_F",[-15.7407,14.7517,-0.00143909],0,true,true], + ["Land_HBarrier_5_F",[-6.33838,7.41382,-0.00143909],270,true,true], + ["Land_HBarrier_Big_F",[4.87646,-28.4124,-0.00143909],330,true,true], + ["Land_HBarrier_3_F",[10.5171,0.540771,-0.00143909],0,true,true], + ["Land_HBarrier_3_F",[11.3687,-7.17212,-0.00143909],270,true,true], + ["Land_HBarrier_Big_F",[23.0171,-13.6155,-0.00143909],285,true,true], + ["Land_HBarrier_Big_F",[3.04834,3.62964,-0.00143909],1.36604e-005,true,true], + ["Land_HBarrier_Big_F",[11.8745,-23.9084,-0.00143909],330,true,true], + ["Land_HBarrier_Big_F",[7.90967,0.343506,-0.00143909],90,true,true], + ["Land_HBarrier_Big_F",[24.978,-5.36938,-0.00143909],285,true,true], + ["Land_HBarrier_Big_F",[11.2808,-4.62427,-0.00143909],180,true,true], + ["Land_HBarrier_Big_F",[25.9077,2.68921,-0.00143909],270,true,true], + ["Land_HBarrier_1_F",[4.35498,-2.41431,-0.00143909],90,true,true], + ["Land_HBarrier_1_F",[21.0073,-21.7493,-0.00143909],30,true,true], + ["Land_BagFence_Long_F",[19.1304,-21.6174,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[16.5073,-21.6174,-0.00143909],0,true,true], + ["Land_BagFence_Long_F",[7.89795,6.07788,-0.00143909],270,true,true], + ["Land_Loudspeakers_F",[21.2026,-15.3088,-0.00143909],196,true,true], + ["Land_HBarrier_5_F",[17.7847,6.20483,-0.00143909],270,true,true], + ["Land_HBarrier_5_F",[11.3823,-11.5022,-0.00143909],270,true,true], + ["Land_HBarrier_5_F",[5.75146,-0.244385,-0.00143909],90,true,true], + ["Land_Cargo_House_V3_F",[5.49561,-9.99927,-0.00143909],90,true,true], + ["Land_Cargo_House_V3_F",[5.03076,-17.6174,-0.00143909],150,true,true], + ["CamoNet_OPFOR_open_F",[22.6538,9.88257,-0.00143909],270,true,true], + ["Land_HBarrier_3_F",[18.7593,9.75757,-0.00143909],0,true,true], + ["Land_HBarrier_Big_F",[9.20264,21.2849,-0.00143909],180,true,true], + ["Land_HBarrier_Big_F",[15.9546,18.7849,-0.00143909],225,true,true], + ["Land_HBarrier_Big_F",[22.4077,16.1892,-0.00143909],0,true,true], + ["Land_HBarrier_Big_F",[0.70459,21.283,-0.00143909],180,true,true], + ["Land_HBarrier_Big_F",[25.7827,11.0642,-0.00143909],90,true,true], + ["Land_BagFence_Long_F",[4.57764,19.0466,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[4.57764,16.1716,-0.00143909],270,true,true], + ["Land_BagFence_Long_F",[11.3843,19.2634,-0.00143909],90,true,true], + ["Land_BagFence_End_F",[4.57764,14.4216,-0.00143909],90,true,true], + ["Land_BagFence_End_F",[7.68896,7.77515,-0.00143909],240,true,true], + ["Land_BagFence_End_F",[11.3843,17.5134,-0.00143909],90,true,true] +]; + +_missionLootBoxes = [ + [selectRandom blck_crateTypes,[1.55273,0.0065918,-0.00143957],_crateLoot,_lootCounts,0.000522983] +]; + +_missionLootVehicles = [ +]; + +_missionPatrolVehicles = [ + ["B_LSV_01_armed_F",[-41.377,-5.40894,-0.0238895],0.00171121], + ["B_LSV_01_armed_F",[39.5627,-5.26709,-0.0237107],0.00169144] +]; + +_submarinePatrolParameters = [ +]; + +_airPatrols = [ +]; + +_missionEmplacedWeapons = []; // + + + +////////// +// The lines below define additional variables you may wish to configure. + + +// Change _useMines to true/false below to enable mission-specific settings. +_useMines = blck_useMines; +_minNoAI = blck_MinAI_Red; +_maxNoAI = blck_MaxAI_Red; +_noAIGroups = blck_AIGrps_Red; +_noVehiclePatrols = blck_SpawnVeh_Red; +_noEmplacedWeapons = blck_SpawnEmplaced_Red; +//_uniforms = blck_SkinList; +//_headgear = blck_headgear; + +_chancePara = 0.75; // Setting this in the mission file overrides the defaults +_noPara = 5; // Setting this in the mission file overrides the defaults +_paraTriggerDistance = 400; // Distance from mission at which a player triggers these reinforcements and any supplemental loot. // To have paras spawn at the time the mission spawns with/without accompanying loot set this to 0. +_paraSkill = "Red"; // Choose any skill you like; bump up skill or add AI to justify more valuable loot. + +_chanceLoot = 0.7; +private _lootIndex = selectRandom[1,2,3,4]; +private _paralootChoices = [blck_contructionLoot,blck_contructionLoot,blck_highPoweredLoot,blck_supportLoot]; +private _paralootCountsChoices = [[0,0,0,10,10,0],[0,0,0,10,10,0],[10,10,0,0,0,0],[0,0,0,0,15,0]]; +_paraLoot = _paralootChoices select _lootIndex; +_paraLootCounts = _paralootCountsChoices select _lootIndex; // Throw in something more exotic than found at a normal blue mission. + +_endCondition = blck_missionEndCondition; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" +//_timeOut = -1; +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Static/Code/GMS_fnc_sm_initializeMission.sqf b/@GMS/addons/custom_server/Missions/Static/Code/GMS_fnc_sm_initializeMission.sqf index 8251319..f9bd0a7 100644 --- a/@GMS/addons/custom_server/Missions/Static/Code/GMS_fnc_sm_initializeMission.sqf +++ b/@GMS/addons/custom_server/Missions/Static/Code/GMS_fnc_sm_initializeMission.sqf @@ -10,8 +10,7 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; params["_mission"]; -// Spawn landscape -// params["_objects"]; + if (isNil "_markerColor") then {_markerColor = "ColorBlack"}; if (isNil "_markerType") then {_markerType = ["mil_box",[]]}; if (isNil "_missionLandscape") then {_missionLandscape = []}; @@ -28,7 +27,10 @@ if (isNil "_aiGroupParameters") then {_aiGroupParameters = []}; if (isNil "_missionEmplacedWeapons") then {_missionEmplacedWeapons = []}; if (isNil "_vehiclePatrolParameters") then {_vehiclePatrolParameters = []}; if (isNil "_missionLootVehicles") then {_missionLootVehicles = []}; - +if (isNil "_crateMoney") then +{ + missionNamespace setVariable["_crateMoney",missionNamespace getVariable "blck_crateMoneyOrange"]; +}; _markerClass = format["static%1",floor(random(1000000))]; _blck_localMissionMarker = [_markerClass,_missionCenter,"","",_markerColor,_markerType]; if (blck_labelMapMarkers select 0) then @@ -82,8 +84,8 @@ _blck_localMissionMarker set [3,blck_labelMapMarkers select 1]; // Use an arrow uiSleep 30; // spawn loot chests -[_missionLootBoxes,_missionCenter] call blck_fnc_sm_spawnLootContainers; -[_missionLootVehicles,_missionCenter] call blck_fnc_sm_spawnLootVehicles; +[_missionLootBoxes,_missionCenter,_crateMoney] call blck_fnc_sm_spawnLootContainers; +[_missionLootVehicles,_missionCenter,_crateMoney] call blck_fnc_sm_spawnLootVehicles; diag_log format["[blckeagls] Static Mission Spawner: Mission %1 spawned",_mission]; diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_initializeMission.sqf b/@GMS/addons/custom_server/Missions/Static/Code/GMS_fnc_sm_initializeVariables.sqf similarity index 97% rename from @GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_initializeMission.sqf rename to @GMS/addons/custom_server/Missions/Static/Code/GMS_fnc_sm_initializeVariables.sqf index c0fe1b9..a082f91 100644 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_initializeMission.sqf +++ b/@GMS/addons/custom_server/Missions/Static/Code/GMS_fnc_sm_initializeVariables.sqf @@ -83,6 +83,7 @@ _blck_localMissionMarker set [3,blck_labelMapMarkers select 1]; // Use an arrow uiSleep 30; // spawn loot chests [_missionLootBoxes,_missionCenter] call blck_fnc_sm_spawnLootContainers; -[_missionLootVehicles,_missionCenter] call blck_fnc_sm_spawnLootContainers; -diag_log format["[blckeagls] Static Mission Spawner: Mission %1 spawned",_mission]; +[_missionLootVehicles,_missionCenter] call blck_fnc_sm_spawnLootVehicles; + +[format["Static Mission Spawner: Mission %1 spawned",_mission]] call blck_fnc_log; diff --git a/@GMS/addons/custom_server/Missions/Static/GMS_StaticMissions_init.sqf b/@GMS/addons/custom_server/Missions/Static/GMS_StaticMissions_init.sqf index 26b0356..df01fd6 100644 --- a/@GMS/addons/custom_server/Missions/Static/GMS_StaticMissions_init.sqf +++ b/@GMS/addons/custom_server/Missions/Static/GMS_StaticMissions_init.sqf @@ -10,9 +10,6 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -//diag_log "[blckeagls] GMS_StaticMissions_init.sqf "; -//static mission descriptor for code: [position,level, numAI or [min,maxAI],patrolRadius, respawn, group[groupNull],spawnedAt[0],respawn[0]] -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\Missions\Static\GMS_StaticMissions_Lists.sqf"; blck_sm_Infantry = []; @@ -34,9 +31,10 @@ blck_sm_patrolRespawnInterval = 600; { if ((toLower blck_modType) isEqualTo (toLower(_x select 0))) then { - call compilefinal preprocessFileLineNumbers format["\q\addons\custom_server\Missions\Static\missions\%1",(_x select 2)]; + [] call compilefinal preprocessFileLineNumbers format["\q\addons\custom_server\Missions\Static\missions\%1",(_x select 2)]; + diag_log format["_initializing static mission %1 for mod type %2",_x select 1,blck_modType]; }; }; }forEach _staticMissions; -diag_log "[blckeagls] GMS_StaticMissions Initialized.sqf "; +["GMS_StaticMissions Initialized.sqf "] call blck_fnc_log; diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_AddAircraft.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_AddAircraft.sqf deleted file mode 100644 index 2aed2f4..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_AddAircraft.sqf +++ /dev/null @@ -1,17 +0,0 @@ -/* - by Ghostrider [GRG] - - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -//diag_log format["_sm_addAircraft: _this = %5",_this]; -params["_aircraftPatrol"]; -//diag_log format["_sm_addAircraft: _aircraftPatrol = %1",_aircraftPatrol]; -blck_sm_Aircraft pushBack [_aircraftPatrol,grpNull,0]; -//diag_log format["_sm_addAircraft: updated blck_sm_Aircraft = %1",blck_sm_Aircraft]; -true diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_AddEmplaced.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_AddEmplaced.sqf deleted file mode 100644 index 01d7722..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_AddEmplaced.sqf +++ /dev/null @@ -1,16 +0,0 @@ -/* - by Ghostrider [GRG] - - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -params["_emplacedWeapon"]; -blck_sm_Emplaced pushBack [_emplacedWeapon,grpNull,0]; -diag_log format["_sm_AddEmplaced::-> _emplacedWeapon = %1, blck_sm_Emplaced = %2",_emplacedWeapon,blck_sm_Emplaced]; -true \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_AddGroup.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_AddGroup.sqf deleted file mode 100644 index 49abe09..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_AddGroup.sqf +++ /dev/null @@ -1,16 +0,0 @@ -/* - by Ghostrider [GRG] - - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -params["_group"]; -blck_sm_Groups pushBack [_group,grpNull,0]; -diag_log format["_sm_AddGroup:: blck_sm_Groups = %1",blck_sm_Groups]; -true \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_AddGroupToArray.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_AddGroupToArray.sqf deleted file mode 100644 index 4efaebc..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_AddGroupToArray.sqf +++ /dev/null @@ -1,22 +0,0 @@ -/* - by Ghostrider [GRG] - - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -params["_array","_patrolInformation",["_timesToRespawn",-1]]; -waitUntil {blck_sm_monitoring isEqualTo 0}; -_array pushBack [ - _patrolInformation, - grpNull, - 0, // groupSpawned - 0, // times Spawned - 0, // Respawn At - _timesToRespawn // Max Times to Respawn -]; -_array diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_AddVehicle.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_AddVehicle.sqf deleted file mode 100644 index 47dd046..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_AddVehicle.sqf +++ /dev/null @@ -1,16 +0,0 @@ -/* - by Ghostrider [GRG] - - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -params["_vehicle"]; -blck_sm_Vehicles pushBack [_vehicle,grpNull,0]; -//diag_log format["_fnc_sm_AddVehicle: _vehicle = %1",_vehicle]; -true \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorAircraft.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorAircraft.sqf deleted file mode 100644 index 325b8d2..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorAircraft.sqf +++ /dev/null @@ -1,93 +0,0 @@ -/* - by Ghostrider [GRG] - - -------------------------- - 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/ -*/ - -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -//private["_mode","_sm_groups"]; -//_sm_groups = +blck_sm_Aircraft; -//diag_log format["_fnc_monitorAircraft: time %2 | blck_sm_Aircraft %1",blck_sm_Aircraft,diag_tickTime]; -for "_i" from 1 to (count blck_sm_Aircraft) do -{ - if (_i == (count blck_sm_Aircraft)) exitWith {}; - private _element = blck_sm_Aircraft deleteAt 0; - _element params["_groupParameters","_group","_groupSpawned","_timesSpawned","_respawnAt","_maxRespawns"]; - //diag_log format["_fnc_monitorAircraft: _x %1",_element]; - //diag_log format["_fnc_monitorAircraft: _groupParameters = %1",_groupParameters]; - //diag_log format["_fnc_monitorAircraft (9): _group %1 | _groupSpawned %2 | _timesSpawned %3 | _respawnAt %4",_group,_groupSpawned,_timesSpawned,_respawnAt]; - _groupParameters params["_pos","_difficulty","_units","_patrolRadius","_respawnTime"]; - _groupParameters params["_aircraftType","_pos","_difficulty","_patrolRadius","_respawnTime"]; - //diag_log format["_fnc_monitorAircraft: _aircraftType | %1 | _pos = %2 | _difficulty = %3 | _patrolRadius = %4 | _respawnTime = %5",_aircraftType,_pos,_difficulty,_patrolRadius,_respawnTime]; - - if (!(isNull _group) && {alive _x} count (units _group) == 0) then - { - deleteGroup _group; - _group = grpNull; - }; - if (isNull _group) then - { - _mode = -1; - if ((_timesSpawned == 0) && (_groupSpawned == 0)) then {_mode = 1}; // spawn-respawn - if (_timesSpawned > 0) then - { - if ((_groupSpawned == 1) && (_respawnTime == 0)) then {_mode = 0}; // remove patrol from further evaluation - if ((_timesSpawned > _maxRespawns) && (_maxRespawns != -1)) then {_mode = 0}; - if ((_groupSpawned == 1) && (_respawnTime > 0)) then {_mode = 2}; // set up for respawn at a later time - if ((_groupSpawned == 0) && (diag_tickTime > _respawnAt)) then {_mode = 1}; - }; - switch (_mode) do - { - case 0: {}; - case 1: { - - if ([_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange) then - { - _return = [_pos,_difficulty,[_aircraftType]] call blck_fnc_spawnMissionHeli; - _group = group (driver (_return select 0)); - _element set[patrolGroup,_group]; - _element set[groupSpawned,1]; - _element set[timesSpawned,_timesSpawned + 1]; - _element set[respawnAt,0]; - }; - blck_sm_Aircraft pushBack _element; - }; - case 2: { - _element set[respawnAt,diag_tickTime + _respawnTime]; - _element set[groupSpawned,0]; - blck_sm_Aircraft pushBack _element; - //diag_log format["_fnc_monitorAircraft: update respawn time to %1",_respawnAt]; - }; - default {}; - }; - //diag_log format["_fnc_monitorAircraft(56) respawn conditions evaluated : _group = %1 | _groupSpawned = %2 | _timesSpawned = %3",_group,_groupSpawned,_timesSpawned]; - } else { - //diag_log format["_fnc_monitorAircraft: diag_tickTime = %1 | playerNearAt = %2",diag_tickTime,_group getVariable["playerNearAt",-1]]; - if ([_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange) then - { - _group setVariable["playerNearAt",diag_tickTime]; - //diag_log format["_fnc_monitorAircraft: playerNearAt updated to %1",_group getVariable["playerNearAt",-1]]; - blck_sm_Aircraft pushBack _element; - } else { - if (diag_tickTime > (_group getVariable["playerNearAt",diag_tickTime]) + blck_sm_groupDespawnTime) then - { - //diag_log format["_fnc_monitorAircraft: despanwing patrol for _element %1",_element]; - //_groupParameters set [2, {alive _x} count (units _group)]; - private _veh = vehicle (leader _group); - {deleteVehicle _x} forEach (units _group); - deleteGroup _group; - [_veh] call blck_fnc_destroyVehicleAndCrew; - _element set[groupParameters,_groupParameters]; - _element set[patrolGroup ,grpNull]; - _element set[timesSpawned,(_timesSpawned - 1)]; - _element set[groupSpawned,0]; - }; - blck_sm_Aircraft pushBack _element; - }; - }; -}; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorEmplaced.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorEmplaced.sqf deleted file mode 100644 index a4cb16b..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorEmplaced.sqf +++ /dev/null @@ -1,92 +0,0 @@ -/* - by Ghostrider [GRG] - - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -//diag_log format["_fnc_monitorEmplaced: time %2 | blck_sm_Emplaced %1",blck_sm_Emplaced,diag_tickTime]; -for "_i" from 0 to (count blck_sm_Emplaced) do -{ - if (_i >= (count blck_sm_Emplaced)) exitWith {}; - private _element = blck_sm_Emplaced deleteAt 0; - _element params["_groupParameters","_group","_groupSpawned","_timesSpawned","_respawnAt","_maxRespawns"]; - //diag_log format["_fnc_monitorEmplaced: _element %1",_element]; - //diag_log format["_fnc_monitorEmplaced: _groupParameters = %1",_groupParameters]; - //diag_log format["_fnc_monitorEmplaced (9): _group %1 | _groupSpawned %2 | _timesSpawned %3 | _respawnAt %4",_group,_groupSpawned,_timesSpawned,_respawnAt]; - _groupParameters params["_pos","_difficulty","_units","_patrolRadius","_respawnTime"]; - _groupParameters params["_vehicleType","_pos","_difficulty","_patrolRadius","_respawnTime"]; - //diag_log format["_fnc_monitorEmplaced: _vehicleType | %1 | _pos = %2 | _difficulty = %3 | _patrolRadius = %4 | _respawnTime = %5",_vehicleType,_pos,_difficulty,_patrolRadius,_respawnTime]; - - if (!(isNull _group) && {alive _x} count (units _group) == 0) then - { - deleteGroup _group; - _group = grpNull; - }; - if (isNull _group) then - { - _mode = -1; - if ((_timesSpawned == 0) && (_groupSpawned == 0)) then {_mode = 1}; // spawn-respawn - if (_timesSpawned > 0) then - { - if ((_groupSpawned == 1) && (_respawnTime == 0)) then {_mode = 0}; // remove patrol from further evaluation - if ((_timesSpawned > _maxRespawns) && (_maxRespawns != -1)) then {_mode = 0}; - if ((_groupSpawned == 1) && (_respawnTime > 0)) then {_mode = 2}; // set up for respawn at a later time - if ((_groupSpawned == 0) && (diag_tickTime > _respawnAt)) then {_mode = 1}; - }; - switch (_mode) do - { - case 0: {}; - case 1: { - - if ([_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange) then - { - // params["_coords","_missionEmplacedWeapons","_useRelativePos","_noEmplacedWeapons","_aiDifficultyLevel",["_uniforms",[]], ["_headGear",[]],["_vests",[]],["_backpacks",[]],["_weaponList",[]],["_sideArms",[]]]; - private _return = [_pos,[_groupParameters],false,1,_difficulty] call blck_fnc_spawnEmplacedWeaponArray; - _group = group( (_return select 1) select 0); - _element set[patrolGroup,_group]; - _element set[groupSpawned,1]; - _element set[timesSpawned,_timesSpawned + 1]; - _element set[respawnAt,0]; - }; - blck_sm_Emplaced pushBack _element; - }; - case 2: { - _element set[respawnAt,diag_tickTime + _respawnTime]; - _element set[groupSpawned,0]; - blck_sm_Emplaced pushBack _element; - //diag_log format["_fnc_monitorEmplaced: update respawn time to %1",_respawnAt]; - }; - default {}; - }; - //diag_log format["_fnc_monitorEmplaced(56) respawn conditions evaluated : _group = %1 | _groupSpawned = %2 | _timesSpawned = %3",_group,_groupSpawned,_timesSpawned]; - } else { - //diag_log format["_fnc_monitorEmplaced: diag_tickTime = %1 | playerNearAt = %2",diag_tickTime,_group getVariable["playerNearAt",-1]]; - if ([_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange) then - { - _group setVariable["playerNearAt",diag_tickTime]; - //diag_log format["_fnc_monitorEmplaced: playerNearAt updated to %1",_group getVariable["playerNearAt",-1]]; - blck_sm_Emplaced pushBack _element; - } else { - if (diag_tickTime >= (_group getVariable["playerNearAt",diag_tickTime]) + blck_sm_groupDespawnTime) then - { - //diag_log format["_fnc_monitorEmplaced: despanwing patrol for _element %1",_element]; - //_groupParameters set [2, {alive _x} count (units _group)]; - private _veh = vehicle (leader _group); - {deleteVehicle _x} forEach (units _group); - deleteGroup _group; - [_veh] call blck_fnc_destroyVehicleAndCrew; - _element set[groupParameters,_groupParameters]; - _element set[patrolGroup ,grpNull]; - _element set[timesSpawned,(_timesSpawned - 1)]; - _element set[groupSpawned,0]; - }; - blck_sm_Emplaced pushBack _element; - }; - }; -}; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorGarrisonsASL.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorGarrisonsASL.sqf deleted file mode 100644 index b48d478..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorGarrisonsASL.sqf +++ /dev/null @@ -1,97 +0,0 @@ -/* - by Ghostrider [GRG] - - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -private["_mode","_sm_groups"]; -//diag_log format["_fnc_sm_monitorGarrisonASL: blck_fnc_spawnGarrisonInsideBuilding_ATL = %1",blck_sm_garrisonBuildings_ASL]; -if (blck_sm_garrisonBuildings_ASL isEqualTo []) exitWith {}; -for "_i" from 0 to (count blck_sm_garrisonBuildings_ASL) do - { - if (_i >= (count blck_sm_garrisonBuildings_ASL)) exitWith {}; - private _element = blck_sm_garrisonBuildings_ASL deleteAt 0; - _element params["_groupParameters","_group","_groupSpawned","_timesSpawned","_respawnAt"]; - // ["_building","_aiDifficultyLevel","_staticsATL","_unitsATL"]; - _groupParameters params['_building','_aiDifficulty','_staticsASL','_unitsASL','_respawnTime','_maxRespawns']; - //diag_log format["_fnc_sm_monitorGarrisonASL: _group = %1 | _timesSpawned = %2 | _respawnTime = %3 | _respawnAt = %4 | _groupSpawned = %5",_group,_timesSpawned,_respawnTime,_respawnAt,_groupSpawned]; - private _pos = position _building; - if (!(isNull _group) && {alive _x} count (units _group) == 0) then - { - deleteGroup _group; - _group = grpNull; - }; - if (isNull _group) then - { - _mode = -1; - if ((_timesSpawned == 0) && (_groupSpawned == 0)) then {_mode = 1}; // spawn-respawn - if (_timesSpawned > 0) then - { - if ((_groupSpawned == 1) && (_respawnTime == 0)) then {_mode = 0}; // remove patrol from further evaluation - if ((_timesSpawned > _maxRespawns) && (_maxRespawns != -1)) then {_mode = 0}; - if ((_groupSpawned == 1) && (_respawnTime > 0)) then {_mode = 2}; // set up for respawn at a later time - if ((_groupSpawned == 0) && (diag_tickTime > _respawnAt)) then {_mode = 1}; - }; - switch (_mode) do - { - case 0: {}; - case 1: { - - if ([_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange) then - { - // ["_building","_aiDifficultyLevel","_staticsATL","_unitsATL"] - //diag_log format - private _group = [_building,_aiDifficulty,_staticsASL,_unitsASL] call blck_fnc_sm_spawnBuildingGarrison_ASL; - _timesSpawned = _timesSpawned + 1; - _groupSpawned = 1; - _respawnAt = 0; - _element set[patrolGroup,_group]; - _element set[groupSpawned,1]; - _element set[timesSpawned,_timesSpawned]; - _element set[respawnAt,_respawnAt]; - //blck_sm_garrisonBuildings_ASL set[blck_sm_garrisonBuildings_ASL find _x,_element]; - }; - blck_sm_garrisonBuildings_ASL pushBack _element; - }; - case 2: { - _groupSpawned = 0; - _respawnAt = diag_tickTime + _respawnTime; - _element set[respawnAt,_respawnAt]; - _element set[groupSpawned,_groupSpawned]; - //blck_sm_garrisonBuildings_ASL set[blck_sm_garrisonBuildings_ASL find _x,_element]; - blck_sm_garrisonBuildings_ASL pushBack _element; - }; - default {}; - }; - - } else { - - if ([_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange) then - { - _group setVariable["playerNearAt",diag_tickTime]; - blck_sm_garrisonBuildings_ASL pushBack _element; - } else { - if (diag_tickTime > (_group getVariable["playerNearAt",diag_tickTime]) + blck_sm_groupDespawnTime) then - { - - //_groupParameters set [2, {alive _x} count (units _group)]; - private _veh = vehicle (leader _group); - {deleteVehicle _x} forEach (units _group); - deleteGroup _group; - [_veh] call blck_fnc_destroyVehicleAndCrew; - _element set[groupParameters,_groupParameters]; - _element set[patrolGroup ,grpNull]; - _element set[timesSpawned,(_timesSpawned - 1)]; - _element set[groupSpawned,0]; - //blck_sm_garrisonBuildings_ASL set[(blck_sm_garrisonBuildings_ASL find _x), _element]; - - }; - blck_sm_garrisonBuildings_ASL pushBack _element; - }; - }; -}; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorGarrisons_relPos.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorGarrisons_relPos.sqf deleted file mode 100644 index af99c94..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorGarrisons_relPos.sqf +++ /dev/null @@ -1,89 +0,0 @@ -/* - by Ghostrider [GRG] - - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -private["_mode","_sm_groups","_pos","_element"]; -if (blck_fnc_sm_spawnBuildingGarrison_relPos isEqualTo []) exitWith {}; -_sm_groups = +blcl_sm_garrisonBuilding_relPos; - -{ - _x params["_groupParameters","_group","_groupSpawned","_timesSpawned","_respawnAt"]; - // [_building,_aiDifficulty,_noStatics,_typesStatics,_noUnits,_respawn] - _groupParameters params['_building','_aiDifficulty','_noStatics','_typesStatics','_noUnits','_respawnTime','_maxRespawns']; - _element = +_x;// - _pos = position _building; - if (!(isNull _group) && {alive _x} count (units _group) == 0) then - { - deleteGroup _group; - _group = grpNull; - }; - if (isNull _group) then - { - _mode = -1; - if ((_timesSpawned == 0) && (_groupSpawned == 0)) then {_mode = 1}; // spawn-respawn - if (_timesSpawned > 0) then - { - if ((_groupSpawned == 1) && (_respawnTime == 0)) then {_mode = 0}; // remove patrol from further evaluation - if ((_timesSpawned > _maxRespawns) && (_maxRespawns != -1)) then {_mode = 0}; - if ((_groupSpawned == 1) && (_respawnTime > 0)) then {_mode = 2}; // set up for respawn at a later time - if ((_groupSpawned == 0) && (diag_tickTime > _respawnAt)) then {_mode = 1}; - }; - switch (_mode) do - { - case 0: {blcl_sm_garrisonBuilding_relPos deleteAt (blcl_sm_garrisonBuilding_relPos find _x)}; - case 1: { - - if (true /*[_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange*/) then - { - // ["_building","_skillLevel","_noStatics","_typesStatics","_noUnits"]; - private _group = [_building,_aiDifficulty,_noStatics,_typesStatics,_noUnits] call blck_fnc_sm_spawnBuildingGarrison_relPos; - _timesSpawned = _timesSpawned + 1; - _groupSpawned = 1; - _respawnAt = 0; - _element set[patrolGroup,_group]; - _element set[groupSpawned,1]; - _element set[timesSpawned,_timesSpawned]; - _element set[respawnAt,_respawnAt]; - blcl_sm_garrisonBuilding_relPos set[blcl_sm_garrisonBuilding_relPos find _x,_element]; - }; - }; - case 2: { - _groupSpawned = 0; - _respawnAt = diag_tickTime + _respawnTime; - _element set[respawnAt,_respawnAt]; - _element set[groupSpawned,_groupSpawned]; - blcl_sm_garrisonBuilding_relPos set[blcl_sm_garrisonBuilding_relPos find _x,_element]; - - }; - default {}; - }; - - } else { - - if ([_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange) then - { - _group setVariable["playerNearAt",diag_tickTime]; - - } else { - if (diag_tickTime > (_group getVariable["playerNearAt",diag_tickTime]) + blck_sm_groupDespawnTime) then - { - - _groupParameters set [2, {alive _x} count (units _group)]; - private _veh = vehicle (leader _group); - [_veh] call blck_fnc_destroyVehicleAndCrew; - _element set[groupParameters,_groupParameters]; - _element set[patrolGroup ,grpNull]; - _element set[timesSpawned,(_timesSpawned - 1)]; - _element set[groupSpawned,0]; - blcl_sm_garrisonBuilding_relPos set[(blcl_sm_garrisonBuilding_relPos find _x), _element]; - }; - }; - }; -}forEach _sm_groups; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorInfantry.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorInfantry.sqf deleted file mode 100644 index db85898..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorInfantry.sqf +++ /dev/null @@ -1,111 +0,0 @@ -/* - by Ghostrider [GRG] - - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -//diag_log format["_fnc_monitorInfantry(12): time %2 | blck_sm_Infantry %1",blck_sm_Infantry,diag_tickTime]; -if (blck_sm_Infantry isEqualTo []) exitWith {}; -private["_element"]; -for "_i" from 0 to (count blck_sm_Infantry) do -{ - if (_i >= count(blck_sm_Infantry)) exitWith {}; - _element = blck_sm_Infantry deleteAt 0; - //diag_log format["(18) element = %1",_element]; - //diag_log format["_fnc_monitorInfantry(20): _element %1 | _i = %2",_element,_i]; - - if !(_element isEqualTo []) then - { - _element params["_groupParameters","_group","_groupSpawned","_timesSpawned","_respawnAt","_maxRespawns"]; - _groupParameters params["_pos","_difficulty","_units","_patrolRadius","_respawnTime","_maxRespawns"]; - //diag_log format["_fnc_monitorInfantry(21): _groupParameters = %1",_groupParameters]; - //diag_log format["_fnc_monitorInfantry (22): _group %1 | _groupSpawned %2 | _timesSpawned %3 | _respawnAt %4",_group,_groupSpawned,_timesSpawned,_respawnAt]; - //diag_log format["_fnc_monitorInfantry(28): _pos = %1 | _difficulty = 2 | _units = %3 | _patrolRadius = %4 | _respawnTime = %5",_pos,_difficulty,_units,_patrolRadius,_respawnTime]; - if (!(isNull _group) && {alive _x} count (units _group) == 0) then - { - deleteGroup _group; - _group = grpNull; - }; - if (isNull _group) then - { - _mode = -1; - if ((_timesSpawned == 0) && (_groupSpawned == 0)) then {_mode = 1}; // spawn-respawn - if (_timesSpawned > 0) then - { - if ((_groupSpawned == 1) && (_respawnTime == 0)) then {_mode = 0}; // remove patrol from further evaluation - if ((_timesSpawned > _maxRespawns) && (_maxRespawns != -1)) then {_mode = 0}; - if ((_groupSpawned == 1) && (_respawnTime > 0)) then {_mode = 2}; // set up for respawn at a later time - if ((_groupSpawned == 0) && (diag_tickTime > _respawnAt)) then {_mode = 1}; - }; - - switch (_mode) do - { - case 0: { - //diag_log format["_fnc_sm_monitorInfantry(46): no further respawns requested for %1",_element]; - }; - case 1: { // Spawn Group Now - //diag_log format["_fnc_sm_monitorInfantry(49): spawning infantry group with element = %1",_element]; - if ([_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange) then - { - private _numAI = [_units] call blck_fnc_getNumberFromRange; - //params["_pos", "_center", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], ["_minDist",20], ["_maxDist",35],["_configureWaypoints",true], ["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_vests",blck_vests],["_backpacks",blck_backpacks],["_weaponList",[]],["_sideArms",blck_Pistols], ["_scuba",false] ]; - _group = [ - _pos,_pos,_numAI,_numAI,_difficulty,_patrolRadius-1,_patrolRadius,true, - [_difficulty] call blck_fnc_selectAIUniforms, - [_difficulty] call blck_fnc_selectAIHeadgear, - [_difficulty] call blck_fnc_selectAIVests, - [_difficulty] call blck_fnc_selectAIBackpacks, - [_difficulty] call blck_fnc_selectAILoadout, - [_difficulty] call blck_fnc_selectAISidearms - ] call blck_fnc_spawnGroup; - _element set[patrolGroup,_group]; - _element set[groupSpawned,1]; - _element set[timesSpawned,_timesSpawned + 1]; - _element set[respawnAt,0]; - //diag_log format["_fnc_monitorInfantry (67): _element %1",_element]; - //diag_log format["_fnc_monitorInfantry (69): blck_sm_Infantry %1",blck_sm_Infantry]; - }; - blck_sm_Infantry pushBack _element; - }; - case 2: { // Spawn Group at a Later Time. - blck_liveMissionAI pushBack[units _group,diag_tickTime]; // schedule units of group for deletion now. - _element set[respawnAt,diag_tickTime + _respawnTime]; - _element set[groupSpawned,0]; - blck_sm_Infantry pushBack _element; - //diag_log format["_fnc_monitorInfantry(77): update respawn time to %1",_respawnAt]; - }; - default {}; - }; - //diag_log format["_fnc_monitorInfantry(81) respawn conditions evaluated : _group = %1 | _groupSpawned = %2 | _timesSpawned = %3",_group,_groupSpawned,_timesSpawned]; - } else { - //diag_log format["_fnc_monitorInfantry(83): diag_tickTime = %1 | playerNearAt = %2",diag_tickTime,_group getVariable["playerNearAt",-1]]; - if ([_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange) then - { - _group setVariable["playerNearAt",diag_tickTime]; - //diag_log format["_fnc_monitorInfantry(87): playerNearAt updated to %1",_group getVariable["playerNearAt",-1]]; - blck_sm_Infantry pushBack _element; - } else { - if (diag_tickTime > (_group getVariable["playerNearAt",diag_tickTime]) + blck_sm_groupDespawnTime) then - { - //diag_log format["_fnc_monitorInfantry(92): despanwing patrol for _element %1",_element]; - _groupParameters set [2, {alive _x} count (units _group)]; - {[_x] call blck_fnc_deleteAI} forEach (units _group); - deleteGroup _group; - _element set[groupParameters,_groupParameters]; - _element set[patrolGroup ,grpNull]; - _element set[timesSpawned,(_timesSpawned - 1)]; - _element set[groupSpawned,0]; - //diag_log format["_fnc_monitorInfantry (101): _element %1",_element]; - //diag_log format["_fnc_monitorInfantry (102): blck_sm_Infantry %1",blck_sm_Infantry]; - }; - blck_sm_Infantry pushBack _element; - }; - }; - }; - //blck_sm_Infantry pushBack _element; -}; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorScuba.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorScuba.sqf deleted file mode 100644 index 9ffcad5..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorScuba.sqf +++ /dev/null @@ -1,92 +0,0 @@ -/* - by Ghostrider [GRG] - - -------------------------- - 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/ -*/ - -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -//diag_log format["_fnc_monitorScubaGroups: time %2 | blck_sm_scubaGroups %1",blck_sm_scubaGroups,diag_tickTime]; -if (blck_sm_scubaGroups isEqualTo []) exitWith {}; -for "_i" from 0 to (count blck_sm_scubaGroups) do -{ - if (_i >= (count blck_sm_scubaGroups)) exitWith {}; - private _element = blck_sm_scubaGroups deleteAt 0; - _element params["_groupParameters","_group","_groupSpawned","_timesSpawned","_respawnAt","_maxRespawns"]; - //diag_log format["_fnc_monitorScubaGroups: _element %1 | _i = %2",_element,_i]; - //diag_log format["_fnc_monitorScubaGroups: _groupParameters = %1",_groupParameters]; - //diag_log format["_fnc_monitorScubaGroups (9): _group %1 | _groupSpawned %2 | _timesSpawned %3 | _respawnAt %4",_group,_groupSpawned,_timesSpawned,_respawnAt]; - _groupParameters params["_pos","_difficulty","_units","_patrolRadius","_respawnTime","_maxRespawns"]; - //diag_log format["_fnc_monitorScubaGroups: _pos = %1 | _difficulty = 2 | _units = %3 | _patrolRadius = %4 | _respawnTime = %5",_pos,_difficulty,_units,_patrolRadius,_respawnTime]; - - if (!(isNull _group) && {alive _x} count (units _group) == 0) then - { - deleteGroup _group; - _group = grpNull; - }; - if (isNull _group) then - { - _mode = -1; - if ((_timesSpawned == 0) && (_groupSpawned == 0)) then {_mode = 1}; // spawn-respawn - if (_timesSpawned > 0) then - { - if ((_groupSpawned == 1) && (_respawnTime == 0)) then {_mode = 0}; // remove patrol from further evaluation - if ((_timesSpawned > _maxRespawns) && (_maxRespawns != -1)) then {_mode = 0}; - if ((_groupSpawned == 1) && (_respawnTime > 0)) then {_mode = 2}; // set up for respawn at a later time - if ((_groupSpawned == 0) && (diag_tickTime > _respawnAt)) then {_mode = 1}; - }; - switch (_mode) do - { - case 0: { - //diag_log format["_fnc_sm_monitorInfantry(46): no further respawns requested for %1",_element]; - }; - case 1: { - if ([_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange) then - { - private _numAI = [_units] call blck_fnc_getNumberFromRange; - //params["_pos", "_center", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], ["_minDist",20], ["_maxDist",35],["_configureWaypoints",true], ["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_vests",blck_vests],["_backpacks",blck_backpacks],["_weaponList",[]],["_sideArms",blck_Pistols], ["_scuba",false] ]; - _group = [_pos,_difficulty,_units,_patrolRadius] call blck_fnc_spawnScubaGroup; - _element set[patrolGroup,_group]; - _element set[groupSpawned,1]; - _element set[timesSpawned,_timesSpawned + 1]; - _element set[respawnAt,0]; - }; - blck_sm_scubaGroups pushBack _element; - }; - case 2: { - blck_liveMissionAI pushBack[units _group,diag_tickTime]; // schedule units of group for deletion now. - _element set[respawnAt,diag_tickTime + _respawnTime]; - _element set[groupSpawned,0]; - blck_sm_scubaGroups pushBack _element; - //diag_log format["_fnc_monitorScubaGroups: update respawn time to %1",_respawnAt]; - }; - default {}; - }; - //diag_log format["_fnc_monitorScubaGroups(56) respawn conditions evaluated : _group = %1 | _groupSpawned = %2 | _timesSpawned = %3",_group,_groupSpawned,_timesSpawned]; - } else { - //diag_log format["_fnc_monitorScubaGroups: diag_tickTime = %1 | playerNearAt = %2",diag_tickTime,_group getVariable["playerNearAt",-1]]; - if ([_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange) then - { - _group setVariable["playerNearAt",diag_tickTime]; - blck_sm_scubaGroups pushBack _element; - //diag_log format["_fnc_monitorScubaGroups: playerNearAt updated to %1",_group getVariable["playerNearAt",-1]]; - } else { - if (diag_tickTime > (_group getVariable["playerNearAt",diag_tickTime]) + blck_sm_groupDespawnTime) then - { - //diag_log format["_fnc_monitorScubaGroups: despanwing patrol for _element %1",_element]; - _groupParameters set [2, {alive _x} count (units _group)]; - {[_x] call blck_fnc_deleteAI} forEach (units _group); - deleteGroup _group; - _element set[groupParameters,_groupParameters]; - _element set[patrolGroup ,grpNull]; - _element set[timesSpawned,(_timesSpawned - 1)]; - _element set[groupSpawned,0]; - }; - blck_sm_scubaGroups pushBack _element; - }; - }; -}; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorShips.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorShips.sqf deleted file mode 100644 index 5f3a0b2..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorShips.sqf +++ /dev/null @@ -1,94 +0,0 @@ -/* - by Ghostrider [GRG] - - -------------------------- - 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/ -*/ - -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -//diag_log format["_fnc_monitorShips: time %2 | blck_sm_surfaceShips %1",blck_sm_surfaceShips,diag_tickTime]; -for "_i" from 0 to (count blck_sm_surfaceShips) do -{ - if (_i >= (count blck_sm_surfaceShips)) exitWith {}; - private _element = blck_sm_surfaceShips deleteAt 0; - _element params["_groupParameters","_group","_groupSpawned","_timesSpawned","_respawnAt","_maxRespawns"]; - //diag_log format["_fnc_monitorShips: _element %1",_element]; - //diag_log format["_fnc_monitorShips: _groupParameters = %1",_groupParameters]; - //diag_log format["_fnc_monitorShips (9): _group %1 | _groupSpawned %2 | _timesSpawned %3 | _respawnAt %4",_group,_groupSpawned,_timesSpawned,_respawnAt]; - _groupParameters params["_pos","_difficulty","_units","_patrolRadius","_respawnTime"]; - _groupParameters params["_vehicleType","_pos","_difficulty","_patrolRadius","_respawnTime","_maxRespawns"]; - //diag_log format["_fnc_monitorVehicles: _vehicleType | %1 | _pos = %2 | _difficulty = %3 | _patrolRadius = %4 | _respawnTime = %5",_vehicleType,_pos,_difficulty,_patrolRadius,_respawnTime]; - - if (!(isNull _group) && {alive _x} count (units _group) == 0) then - { - deleteGroup _group; - _group = grpNull; - }; - if (isNull _group) then - { - _mode = -1; - if ((_timesSpawned == 0) && (_groupSpawned == 0)) then {_mode = 1}; // spawn-respawn - if (_timesSpawned > 0) then - { - if ((_groupSpawned == 1) && (_respawnTime == 0)) then {_mode = 0}; // remove patrol from further evaluation - if ((_timesSpawned > _maxRespawns) && (_maxRespawns != -1)) then {_mode = 0}; - if ((_groupSpawned == 1) && (_respawnTime > 0)) then {_mode = 2}; // set up for respawn at a later time - if ((_groupSpawned == 0) && (diag_tickTime > _respawnAt)) then {_mode = 1}; - }; - switch (_mode) do - { - case 0: {}; - case 1: { - - if ([_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange) then - { - _return = [_pos,1,_difficulty,[_groupParameters],false] call blck_fnc_spawnMissionVehiclePatrols; - //diag_log format["_fnc_monitorShips: _return = %1",_return]; - _group = group ((_return select 1) select 0); - _element set[patrolGroup,_group]; - _element set[groupSpawned,1]; - _element set[timesSpawned,_timesSpawned + 1]; - _element set[respawnAt,0]; - //blck_sm_surfaceShips pushBack _element; - }; - blck_sm_surfaceShips pushBack _element; - }; - case 2: { - _element set[respawnAt,diag_tickTime + _respawnTime]; - _element set[groupSpawned,0]; - blck_sm_surfaceShips pushBack _element; - //diag_log format["_fnc_monitorShips: update respawn time to %1",_respawnAt]; - }; - default {}; - }; - //diag_log format["_fnc_monitorShips(56) respawn conditions evaluated : _group = %1 | _groupSpawned = %2 | _timesSpawned = %3",_group,_groupSpawned,_timesSpawned]; - } else { - //diag_log format["_fnc_monitorShips: diag_tickTime = %1 | playerNearAt = %2",diag_tickTime,_group getVariable["playerNearAt",-1]]; - if ([_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange) then - { - _group setVariable["playerNearAt",diag_tickTime]; - //diag_log format["_fnc_monitorShips: playerNearAt updated to %1",_group getVariable["playerNearAt",-1]]; - blck_sm_surfaceShips pushBack _element; - } else { - if (diag_tickTime > (_group getVariable["playerNearAt",diag_tickTime]) + blck_sm_groupDespawnTime) then - { - //diag_log format["_fnc_monitorShips: despanwing patrol for _element %1",_element]; - //_groupParameters set [2, {alive _x} count (units _group)]; - private _veh = vehicle (leader _group); - {deleteVehicle _x} forEach (units _group); - deleteGroup _group; - [_veh] call blck_fnc_destroyVehicleAndCrew; - _element set[groupParameters,_groupParameters]; - _element set[patrolGroup ,grpNull]; - _element set[timesSpawned,(_timesSpawned - 1)]; - _element set[groupSpawned,0]; - }; - blck_sm_surfaceShips pushBack _element; - }; - }; -}; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorStaticUnits.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorStaticUnits.sqf deleted file mode 100644 index ceb0974..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorStaticUnits.sqf +++ /dev/null @@ -1,236 +0,0 @@ -/* - by Ghostrider [GRG] - for ghostridergaming - 12/5/17 - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -private _triggerRange = 2000; -_fnc_updateGroupSpawnTimerFields = { - //diag_log format["_fnc_updateGroupSpawnTimerFields::-> _this = %1",_this]; - params["_array","_element",["_group",grpNull],["_spawnTime",0]]; - private["_index"]; - _index = _array find _element; - _element set[1,_group]; - _element set[2,_spawnTime]; - _array set[_index,_element]; -}; - -private["_group","_groupParameters","_numAI","_return"]; -_sm_groups = +blck_sm_Groups; -{ - - // [ [px, py, pz] /* position*/, "difficulty", 4 /*Number to Spawn*/, 150 /*radius of patrol*/, _respawnTime, _group, _spawnAt] - _x params["_groupParameters","_group","_spawnAt"]; - _groupParameters params["_pos","_difficulty","_units","_patrolRadius","_respawnTime","_maxRespawns"]; - //diag_log format["<_sm_monitorStaticUnits::Group spawning routine:: _units = %1 | _x = %2 |_forEachIndex = %3",_units,_x,_forEachIndex]; - private _groupSpawned = false; - if ([_pos,_triggerRange] call blck_fnc_playerInRange) then - { - if ((isNull _group) && (diag_tickTime > _spawnAt) && (_spawnAt != -1)) then // no group has been spawned, spawn one. - { - //diag_log format["[blckeagls static group spawner] evaluating _x = %1 ",_x]; - _numAI = [_units] call blck_fnc_getNumberFromRange; - //diag_log format["[blckeagls static group spawner] _units = %1 and _numAI = %2",_units,_numAI]; - // // params["_pos", "_center", _numai1, _numai2, _skillLevel, _minDist, _maxDist, _configureWaypoints, _uniforms, _headGear,_vests,_backpacks,_weaponList,_sideArms, _scuba ]; - _group = [_pos,_pos,_numAI,_numAI,_difficulty,_patrolRadius-2,_patrolRadius,true] call blck_fnc_spawnGroup; - //diag_log format["[blckeagls static group spawner] _group %1",_group]; - [blck_sm_Groups,_x,_group,-1] call _fnc_updateGroupSpawnTimerFields; - //diag_log format["_sm_monitorStaticUnits | spawn Group step :: blck_sm_Groups updated to %1",blck_sm_Groups]; - }; - if (!(_groupSpawned) && (isNull _group) && (_spawnAt == -1) && (_respawnTime > 0)) then // a group was spawned and all units are dead and we should rspawn them after a certain interval - { - [blck_sm_Groups,_x,_group,(diag_tickTime + _respawnTime)] call _fnc_updateGroupSpawnTimerFields; - //diag_log format["_sm_monitorStaticUnits | set Group respawn time step :: blck_sm_Groups updated to %1",blck_sm_Groups]; - }; - if (!(_groupSpawned) && (isNull _group) && (_spawnAt == -1) && (_respawnTime == 0) ) then // a group was spawned and all units are dead but we should not do a respawn - { - blck_sm_Groups deleteAt (blck_sm_Groups find _x); - }; - }; -}forEach _sm_groups; - -_sm_scubaGroups = +blck_sm_scubaGroups; -{ - - // [ [px, py, pz] /* position*/, "difficulty", 4 /*Number to Spawn*/, 150 /*radius of patrol*/, _respawnTime, _group, _spawnAt] - _x params["_groupParameters","_group","_spawnAt"]; - _groupParameters params["_pos","_difficulty","_units","_patrolRadius","_respawnTime"]; - //diag_log format["<_sm_monitorScubaUnits:: _group = %1 | _x = %2 |_forEachIndex = %3",_group,_x,_forEachIndex]; - private _groupSpawned = false; - if ([_pos,_triggerRange] call blck_fnc_playerInRange) then - { - if ((isNull _group) && (diag_tickTime > _spawnAt) && (_spawnAt != -1)) then // no group has been spawned, spawn one. - { - //diag_log format["[blckeagls static scubaGroup spawner] evaluating _x = %1 ",_x]; - _numAI = [_units] call blck_fnc_getNumberFromRange; - //diag_log format["[blckeagls static scubaGroup spawning routine] _units = %1 and _numAI = %2",_units,_numAI]; - //params["_pos", "_numUnits", ["_skillLevel","red"], "_center", ["_minDist",20], ["_maxDist",35], ["_uniforms",blck_UMS_uniforms], ["_headGear",blck_UMS_headgear],["_configureWaypoints",true],["_weapons",blck_UMS_weapons],["_vests",blck_UMS_vests]]; - _group = [_pos,_difficulty,_units,_patrolRadius] call blck_fnc_spawnScubaGroup; - //diag_log format["[blckeagls static scubaGroup spawner] _group %1",_group]; - [blck_sm_scubaGroups,_x,_group,-1] call _fnc_updateGroupSpawnTimerFields; - //diag_log format["_sm_monitorStaticUnits | spawn Group step :: blck_sm_Groups updated to %1",blck_sm_Groups]; - }; - if (!(_groupSpawned) && (isNull _group) && (_spawnAt == -1) && (_respawnTime > 0)) then // a group was spawned and all units are dead and we should rspawn them after a certain interval - { - [blck_sm_scubaGroups,_x,_group,(diag_tickTime + _respawnTime)] call _fnc_updateGroupSpawnTimerFields; - //diag_log format["_sm_monitorStaticUnits | set scubaGroup respawn time step :: blck_sm_Groups updated to %1",blck_sm_scubaGroups]; - }; - if (!(_groupSpawned) && (isNull _group) && (_spawnAt == -1) && (_respawnTime == 0) ) then // a group was spawned and all units are dead but we should not do a respawn - { - blck_sm_scubaGroups deleteAt (blck_sm_scubaGroups find _x); - }; - }; -}forEach _sm_scubaGroups; - -_sm_Emplaced = +blck_sm_Emplaced; -{ - // ["B_G_Mortar_01_F",[22944.3,16820.5,3.14243],"green",0,0,_group,_spawnAt] - //diag_log format["_sm_monitorEmplacedUnits::-> _x = %1",_x]; - _x params["_groupParameters","_group","_spawnAt"]; - _groupParameters params["_weapType","_pos","_difficulty","_patrolRadius","_respawnTime"]; - if ([_pos,_triggerRange] call blck_fnc_playerInRange) then - { - if ( (_group isEqualTo grpNull) && (diag_tickTime > _spawnAt) && (_spawnAt != -1) ) then // no group has been spawned, spawn one. - { - //diag_log format["[blckeagls static Emplaced spawner] _weapType = %1 and _difficulty = %2",_weapType,_difficulty]; - // params["_coords","_missionEmplacedWeapons","_useRelativePos","_noEmplacedWeapons","_aiDifficultyLevel",["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_vests",blck_vests],["_backpacks",blck_backpacks],["_weaponList",[]],["_sideArms",blck_Pistols]]; - _group = [_pos,[_groupParameters],false,1,_difficulty] call blck_fnc_spawnEmplacedWeaponArray; - [blck_sm_Emplaced,_x,_group,-1] call _fnc_updateGroupSpawnTimerFields; - //diag_log format["_sm_monitorStaticUnits | spawn emplaced step :: blck_sm_Emplaced updated to %1",blck_sm_Emplaced]; - }; - }; - if ( (_group isEqualTo grpNull) && (_spawnAt == -1) && (_respawnTime > 0) ) then // a group was spawned and all units are dead - { - [blck_sm_Emplaced,_x,_group,(diag_tickTime + _respawnTime)] call _fnc_updateGroupSpawnTimerFields; - //diag_log format["_sm_monitorStaticUnits | set Group respawn time step :: blck_sm_Emplaced updated to %1",blck_sm_Emplaced]; - }; - if ( (_group isEqualTo grpNull) && (_spawnAt == -1) && (_respawnTime == 0)) then // a group was spawned and all units are dead - { - blck_sm_Emplaced deleteAt (blck_sm_Emplaced find _x); - }; - -}forEach _sm_Emplaced; - -_sm_Vehicles = +blck_sm_Vehicles; -{ - // ["B_G_Offroad_01_armed_F",[22819.4,16929.5,3.17413],"red",600,0,_group,_spawnAt], - //diag_log format["_sm_monitorVehicles::-> _x = %1",_x]; - _x params["_groupParameters","_group","_spawnAt"]; - _groupParameters params["_vehicleType","_pos","_difficulty","_patrolRadius","_respawnTime"]; - if ([_pos,_triggerRange] call blck_fnc_playerInRange) then - { - if ( (_group isEqualTo grpNull) && (diag_tickTime > _spawnAt) && (_spawnAt != -1) ) then // no group has been spawned, spawn one. - { - //params["_coords","_noVehiclePatrols","_aiDifficultyLevel","_missionPatrolVehicles",["_useRelativePos",true],["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_vests",blck_vests],["_backpacks",blck_backpacks],["_weaponList",[]],["_sideArms",blck_Pistols], ["_isScubaGroup",false]]; - _return = [_pos,1,_difficulty,[_groupParameters],false] call blck_fnc_spawnMissionVehiclePatrols; - // _return = [_vehicles, _missionAI, _abort]; - _group = group (_return select 1 select 0); - [blck_sm_Vehicles,_x,_group,-1] call _fnc_updateGroupSpawnTimerFields; - //diag_log format["_sm_monitorStaticUnits | spawn emplaced step :: blck_sm_Vehicles updated to %1",blck_sm_Vehicles]; - }; - }; - if ( (_group isEqualTo grpNull) && (_spawnAt == -1) && (_respawnTime > 0) ) then // a group was spawned and all units are dead - { - [blck_sm_Vehicles,_x,_group,(diag_tickTime + _respawnTime)] call _fnc_updateGroupSpawnTimerFields; - //diag_log format["_sm_monitorStaticUnits | set Group respawn time step :: blck_sm_Vehicles updated to %1",blck_sm_Vehicles]; - }; - if ( (_group isEqualTo grpNull) && (_spawnAt == -1) && (_respawnTime == 0) ) then // a group was spawned and all units are dead - { - blck_sm_Vehicles deleteAt (blck_sm_Vehicles find _x); - }; -}forEach _sm_Vehicles; - -_sm_surfaceVehicles = +blck_sm_surfaceShips; -{ - // ["B_G_Offroad_01_armed_F",[22819.4,16929.5,3.17413],"red",600,0,_group,_spawnAt], - _x params["_groupParameters","_group","_spawnAt"]; - _groupParameters params["_weapType","_pos","_difficulty","_patrolRadius","_respawnTime"]; - if ([_pos,_triggerRange] call blck_fnc_playerInRange) then - { - if ( (_group isEqualTo grpNull) && (diag_tickTime > _spawnAt) && (_spawnAt != -1) ) then // no group has been spawned, spawn one. - { - //diag_log format["[blckeagls static vehiclePatrol spawner] _weapType = %1 and _difficulty = %2",_weapType,_difficulty]; - [_pos,1,_difficulty,[_groupParameters],false] call blck_fnc_spawnMissionVehiclePatrols; - _return params ["_vehicles", "_missionAI", "_abort"]; - _group = group (_missionAI select 0); - [blck_sm_surfaceShips,_x,_group,-1] call _fnc_updateGroupSpawnTimerFields; - //diag_log format["_sm_monitorStaticUnits | spawn emplaced step :: blck_sm_Vehicles updated to %1",blck_sm_Vehicles]; - }; - }; - if ( (_group isEqualTo grpNull) && (_spawnAt == -1) && (_respawnTime > 0) ) then // a group was spawned and all units are dead - { - [blck_sm_surfaceShips,_x,_group,(diag_tickTime + _respawnTime)] call _fnc_updateGroupSpawnTimerFields; - //diag_log format["_sm_monitorStaticUnits | set Group respawn time step :: blck_sm_Vehicles updated to %1",blck_sm_Vehicles]; - }; - if ( (_group isEqualTo grpNull) && (_spawnAt == -1) && (_respawnTime == 0) ) then // a group was spawned and all units are dead - { - blck_sm_surfaceShips deleteAt (blck_sm_surfaceShips find _x); - }; -}forEach _sm_surfaceVehicles; - -_sm_SDVVehicles = +blck_sm_submarines; -{ - // ["B_G_Offroad_01_armed_F",[22819.4,16929.5,3.17413],"red",600,0,_group,_spawnAt], - _x params["_groupParameters","_group","_spawnAt"]; - _groupParameters params["_weapType","_pos","_difficulty","_patrolRadius","_respawnTime"]; - if ([_pos,_triggerRange] call blck_fnc_playerInRange) then - { - if ( (_group isEqualTo grpNull) && (diag_tickTime > _spawnAt) && (_spawnAt != -1) ) then // no group has been spawned, spawn one. - { - //diag_log format["[blckeagls static sub patrol spawner] _weapType = %1 and _difficulty = %2",_weapType,_difficulty]; - //params["_coords","_noVehiclePatrols","_aiDifficultyLevel","_missionPatrolVehicles",["_useRelativePos",true],["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_vests",blck_vests],["_backpacks",blck_backpacks],["_weaponList",[]],["_sideArms",blck_Pistols], ["_isScubaGroup",false]]; - _return = [_pos,1,_difficulty,[_groupParameters],false,blck_UMS_uniforms,blck_UMS_headgear,blck_UMS_vests,blck_backpacks,blck_UMS_weapons,blck_Pistols,true] call blck_fnc_spawnMissionVehiclePatrols; - _return params ["_vehicles", "_missionAI", "_abort"]; - _group = group (_missionAI select 0); - [blck_sm_submarines,_x,_group,-1] call _fnc_updateGroupSpawnTimerFields; - //diag_log format["_sm_monitorStaticUnits | spawn emplaced step :: blck_sm_Vehicles updated to %1",blck_sm_Vehicles]; - }; - }; - if ( (_group isEqualTo grpNull) && (_spawnAt == -1) && (_respawnTime > 0) ) then // a group was spawned and all units are dead - { - [blck_sm_submarines,_x,_group,(diag_tickTime + _respawnTime)] call _fnc_updateGroupSpawnTimerFields; - //diag_log format["_sm_monitorStaticUnits | set Group respawn time step :: blck_sm_Vehicles updated to %1",blck_sm_Vehicles]; - }; - if ( (_group isEqualTo grpNull) && (_spawnAt == -1) && (_respawnTime == 0) ) then // a group was spawned and all units are dead - { - blck_sm_submarines deleteAt (blck_sm_submarines find _x); - }; -}forEach _sm_SDVVehicles; - -_sm_Aircraft = +blck_sm_Aircraft; -{ - // ["Exile_Chopper_Huey_Armed_Green",[22923.4,16953,3.19],"red",1000,0], - _x params["_groupParameters","_group","_spawnAt"]; - _groupParameters params["_aircraftType","_pos","_difficulty","_patrolRadius","_respawnTime"]; - if ([_pos,_triggerRange] call blck_fnc_playerInRange) then - { - if ( (isNull _group) && (diag_tickTime > _spawnAt) && (_spawnAt != -1)) then // no group has been spawned, spawn one. - { - _weapon = [toLower _difficulty] call blck_fnc_selectAILoadout; - //params["_coords","_skillAI","_helis",["_uniforms", blck_SkinList],["_headGear",blck_headgear],["_vests",blck_vests],["_backpacks",blck_backpacks],["_Launcher","none"],["_weaponList",[]],["_sideArms",[]]] - //diag_log format["[blckeagls static aircraftePatrol spawner] _weapon = %1 and _difficulty = %2",_weapon,_difficulty]; - _return = [_pos,_difficulty,[_aircraftType]] call blck_fnc_spawnMissionHeli; // Allow the spawner to fit the default AI Loadouts for blckeagls; revisit at a later time when custom uniforms are set up for these AI. - //diag_log format["[blckeagls] static aircraftePatrol spawner -> _return = %1",_return]; - _return params ["_patrolHeli","_ai","_abort"]; - _group = group (_ai select 0); - [blck_sm_Aircraft,_x,_group,-1] call _fnc_updateGroupSpawnTimerFields; - //diag_log format["_sm_monitorStaticUnits | spawn emplaced step :: blck_sm_Aircraft updated to %1",blck_sm_Aircraft]; - }; - }; - if ( (isNull _group) && (_spawnAt == -1) && (_respawnTime > 0) ) then // a group was spawned and all units are dead - { - [blck_sm_Aircraft,_x,_group,(diag_tickTime + _respawnTime)] call _fnc_updateGroupSpawnTimerFields; - //diag_log format["_sm_monitorStaticUnits | set Group respawn time step :: blck_sm_Aircraft updated to %1",blck_sm_Aircraft]; - }; - if ( (_group isEqualTo grpNull) && (_spawnAt == -1) && (_respawnTime == 0) ) then // a group was spawned and all units are dead - { - blck_sm_Aircraft deleteAt (blck_sm_Aircraft find _x); - }; -}forEach _sm_Aircraft; diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorSubs.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorSubs.sqf deleted file mode 100644 index fc2790d..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorSubs.sqf +++ /dev/null @@ -1,94 +0,0 @@ -/* - by Ghostrider [GRG] - - -------------------------- - 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/ -*/ - -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -//diag_log format["_fnc_monitorSubs: time %2 | blck_sm_submarines %1",blck_sm_submarines,diag_tickTime]; -for "_i" from 0 to (count blck_sm_submarines) do -{ - if (_i >= (count blck_sm_submarines)) exitWith {}; - private _element = blck_sm_submarines deleteAt 0; - _element params["_groupParameters","_group","_groupSpawned","_timesSpawned","_respawnAt","_maxRespawns"]; - //diag_log format["_fnc_monitorSubs: _element %1",_element]; - //diag_log format["_fnc_monitorSubs: _groupParameters = %1",_groupParameters]; - //diag_log format["_fnc_monitorSubs (9): _group %1 | _groupSpawned %2 | _timesSpawned %3 | _respawnAt %4",_group,_groupSpawned,_timesSpawned,_respawnAt]; - //_groupParameters params["_pos","_difficulty","_units","_patrolRadius","_respawnTime"]; - _groupParameters params["_vehicleType","_pos","_difficulty","_patrolRadius","_respawnTime","_maxRespawns"]; - //diag_log format["_fnc_monitorVehicles: _vehicleType | %1 | _pos = %2 | _difficulty = %3 | _patrolRadius = %4 | _respawnTime = %5",_vehicleType,_pos,_difficulty,_patrolRadius,_respawnTime]; - - if (!(isNull _group) && {alive _x} count (units _group) == 0) then - { - deleteGroup _group; - _group = grpNull; - }; - if (isNull _group) then - { - _mode = -1; - if ((_timesSpawned == 0) && (_groupSpawned == 0)) then {_mode = 1}; // spawn-respawn - if (_timesSpawned > 0) then - { - if ((_groupSpawned == 1) && (_respawnTime == 0)) then {_mode = 0}; // remove patrol from further evaluation - if ((_timesSpawned > _maxRespawns) && (_maxRespawns != -1)) then {_mode = 0}; - if ((_groupSpawned == 1) && (_respawnTime > 0)) then {_mode = 2}; // set up for respawn at a later time - if ((_groupSpawned == 0) && (diag_tickTime > _respawnAt)) then {_mode = 1}; - }; - switch (_mode) do - { - case 0: {}; - case 1: { - - if ([_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange) then - { - _return = [_pos,1,_difficulty,[_groupParameters],false,blck_UMS_uniforms,blck_UMS_headgear,blck_UMS_vests,blck_backpacks,blck_UMS_weapons,blck_Pistols,true] call blck_fnc_spawnMissionVehiclePatrols; - //diag_log format["_fnc_monitorSubs: _return = %1",_return]; - _group = group ((_return select 1) select 0); - _element set[patrolGroup,_group]; - _element set[groupSpawned,1]; - _element set[timesSpawned,_timesSpawned + 1]; - _element set[respawnAt,0]; - //blck_sm_submarines pushBack _element; - }; - blck_sm_submarines pushBack _element; - }; - case 2: { - _element set[respawnAt,diag_tickTime + _respawnTime]; - _element set[groupSpawned,0]; - bblck_sm_submarines pushBack _element; - //diag_log format["_fnc_monitorSubs: update respawn time to %1",_respawnAt]; - }; - default {}; - }; - //diag_log format["_fnc_monitorSubs(56) respawn conditions evaluated : _group = %1 | _groupSpawned = %2 | _timesSpawned = %3",_group,_groupSpawned,_timesSpawned]; - } else { - //diag_log format["_fnc_monitorSubs: diag_tickTime = %1 | playerNearAt = %2",diag_tickTime,_group getVariable["playerNearAt",-1]]; - if ([_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange) then - { - _group setVariable["playerNearAt",diag_tickTime]; - //diag_log format["_fnc_monitorSubs: playerNearAt updated to %1",_group getVariable["playerNearAt",-1]]; - blck_sm_submarines pushBack _element; - } else { - if (diag_tickTime > (_group getVariable["playerNearAt",diag_tickTime]) + blck_sm_groupDespawnTime) then - { - //diag_log format["_fnc_monitorSubs: despanwing patrol for _element %1",_element]; - //_groupParameters set [2, {alive _x} count (units _group)]; - private _veh = vehicle (leader _group); - {deleteVehicle _x} forEach (units _group); - deleteGroup _group; - [_veh] call blck_fnc_destroyVehicleAndCrew; - _element set[groupParameters,_groupParameters]; - _element set[patrolGroup ,grpNull]; - _element set[timesSpawned,(_timesSpawned - 1)]; - _element set[groupSpawned,0]; - }; - blck_sm_submarines pushBack _element; - }; - }; -}; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorVehicles.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorVehicles.sqf deleted file mode 100644 index 50b5f48..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_monitorVehicles.sqf +++ /dev/null @@ -1,96 +0,0 @@ -/* - by Ghostrider [GRG] - - -------------------------- - 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/ -*/ - -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -//diag_log format["_fnc_monitorVehicles: time %2 | blck_sm_Vehicles %1",blck_sm_Vehicles,diag_tickTime]; -for "_i" from 0 to (count blck_sm_Vehicles) do -{ - if (_i >= (count blck_sm_Vehicles)) exitWith {}; - private _element = blck_sm_Vehicles deleteAt 0; - //diag_log format["_fnc_monitorVehicles(18): _element %1",_element]; - _element params["_groupParameters","_group","_groupSpawned","_timesSpawned","_respawnAt","_maxRespawns"]; - //diag_log format["_fnc_monitorVehicles: _groupParameters = %1",_groupParameters]; - //diag_log format["_fnc_monitorVehicles (21): _group %1 | _groupSpawned %2 | _timesSpawned %3 | _respawnAt %4",_group,_groupSpawned,_timesSpawned,_respawnAt]; - _groupParameters params["_vehicleType","_pos","_difficulty","_patrolRadius","_respawnTime","_maxRespawns"]; - //diag_log format["_fnc_monitorVehicles(23): _vehicleType | %1 | _pos = %2 | _difficulty = %3 | _patrolRadius = %4 | _respawnTime = %5",_vehicleType,_pos,_difficulty,_patrolRadius,_respawnTime]; - - if (!(isNull _group) && {alive _x} count (units _group) == 0) then - { - deleteGroup _group; - _group = grpNull; - }; - if (isNull _group) then - { - _mode = -1; - if ((_timesSpawned == 0) && (_groupSpawned == 0)) then {_mode = 1}; // spawn-respawn - if (_timesSpawned > 0) then - { - if ((_groupSpawned == 1) && (_respawnTime == 0)) then {_mode = 0}; // remove patrol from further evaluation - if ((_timesSpawned > _maxRespawns) && (_maxRespawns != -1)) then {_mode = 0}; - if ((_groupSpawned == 1) && (_respawnTime > 0)) then {_mode = 2}; // set up for respawn at a later time - if ((_groupSpawned == 0) && (diag_tickTime > _respawnAt)) then {_mode = 1}; - }; - switch (_mode) do - { - case 0: {}; - case 1: { - - if ([_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange) then - { - // params["_coords","_noVehiclePatrols","_aiDifficultyLevel","_missionPatrolVehicles",["_useRelativePos",true],["_uniforms",[]], ["_headGear",[]],["_vests",[]],["_backpacks",[]],["_weaponList",[]],["_sideArms",[]], ["_isScubaGroup",false]]; - _return = [_pos,1,_difficulty,[_groupParameters],false] call blck_fnc_spawnMissionVehiclePatrols; - //diag_log format["_fnc_monitorVehicles(50): _return = %1",_return]; - _group = group ((_return select 1) select 0); - // _element [[""Exile_Car_Offroad_Armed_Guerilla02"",[22809.5,16699.2,8.78706],""green"",600,90],O Alpha 1-1,1,1,0,-1]" - // _groupParameters = [""Exile_Car_Offroad_Armed_Guerilla02"",[22809.5,16699.2,8.78706],""green"",600,90]" - _element set[patrolGroup,_group]; - _element set[groupSpawned,1]; - _element set[timesSpawned,_timesSpawned + 1]; - _element set[respawnAt,0]; - }; - blck_sm_Vehicles pushBack _element; - }; - case 2: { - _element set[respawnAt,diag_tickTime + _respawnTime]; - _element set[groupSpawned,0]; - blck_sm_Vehicles pushBack _element; - //diag_log format["_fnc_monitorVehicles(63): update respawn time to %1",_respawnAt]; - }; - default {}; - }; - //diag_log format["_fnc_monitorVehicles(67) respawn conditions evaluated : _group = %1 | _groupSpawned = %2 | _timesSpawned = %3",_group,_groupSpawned,_timesSpawned]; - } else { - //diag_log format["_fnc_monitorVehicles(69): diag_tickTime = %1 | playerNearAt = %2 | _playerInRange = %3",diag_tickTime,_group getVariable["playerNearAt",-1],[_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange]; - if ([_pos,staticPatrolTriggerRange] call blck_fnc_playerInRange) then - { - _group setVariable["playerNearAt",diag_tickTime]; - //diag_log format["_fnc_monitorVehicles(73): playerNearAt updated to %1",_group getVariable["playerNearAt",-1]]; - blck_sm_Vehicles pushBack _element; - } else { - if (diag_tickTime > (_group getVariable["playerNearAt",diag_tickTime]) + blck_sm_groupDespawnTime) then - { - //diag_log format["_fnc_monitorVehicles(78): despanwing patrol for _element %1",_element]; - // _element [[""Exile_Car_Offroad_Armed_Guerilla02"",[22809.5,16699.2,8.78706],""green"",600,90],O Alpha 1-1,1,1,0,-1]" - // _groupParameters = [""Exile_Car_Offroad_Armed_Guerilla02"",[22809.5,16699.2,8.78706],""green"",600,90]" - //_groupParameters set [2, {alive _x} count (units _group)]; - private _veh = vehicle (leader _group); - {deleteVehicle _x} forEach (units _group); - deleteGroup _group; - [_veh] call blck_fnc_destroyVehicleAndCrew; - _element set[groupParameters,_groupParameters]; - _element set[patrolGroup ,grpNull]; - _element set[timesSpawned,(_timesSpawned - 1)]; - _element set[groupSpawned,0]; - }; - blck_sm_Vehicles pushBack _element; - }; - }; -}; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnAirPatrol.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnAirPatrol.sqf deleted file mode 100644 index 02dc685..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnAirPatrol.sqf +++ /dev/null @@ -1,31 +0,0 @@ -/* - by Ghostrider [GRG] - for ghostridergaming - 12/5/17 - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -diag_log format["_fnc_sm_spawnAirPatrols: _this = %1",_this]; -params["_airPatrols"]; -private["_aircraft","_pos","_difficulty","_uniforms","_headGear"]; -_aircraft = _x select 0; -_pos = _x select 1; -_difficulty = _x select 2; -_uniforms = blck_SkinList; -_headGear = blck_headgearList; -switch (_difficulty) do -{ - case "blue": {_weapons = blck_WeaponList_Blue;}; - case "red": {_weapons = blck_WeaponList_Red}; - case "green": {_weapons = blck_WeaponList_Green}; - case "orange": {_weapons = blck_WeaponList_Orange}; -}; -_return = [_pos,_difficulty,_weapons,_uniforms,_headGear,_aircraft] call blck_fnc_spawnMissionHeli; -_group = group (_return select 1 select 0); -_group - diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnAirPatrols.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnAirPatrols.sqf deleted file mode 100644 index 9aaf64e..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnAirPatrols.sqf +++ /dev/null @@ -1,50 +0,0 @@ -/* - by Ghostrider [GRG] - for ghostridergaming - 12/5/17 - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -/* -_coords = _this select 0; -_skillAI = _this select 1; -_weapons = _this select 2; -_uniforms = _this select 3; -_headGear = _this select 4; -_helis = _this select 5; -*/ - -params["_airPatrols","_noAirPatrols","_heliTypes","_center","_difficulty","_uniforms","_headGear","_weapons"]; -diag_log format["_sm_spawnAirPatrols:: _this = %1",_this]; -diag_log format["_sm_spawnAirPatrols:: _airPatrols = %1",_airPatrols]; -if (_airPatrols isEqualTo []) then -{ - for "_i" from 1 to _noAirPatrols do - { - /* - _coords = _this select 0; - _skillAI = _this select 1; - _weapons = _this select 2; - _uniforms = _this select 3; - _headGear = _this select 4; - _helis = _this select 5; - */ - [_center,_difficulty,_weapons,_uniforms,_headGear,_heliTypes,0] call blck_fnc_spawnMissionHeli; - }; -} else { - { - /* - /*[aircraft classname, position, difficulty(blue, red etc)]*/ - _aircraft = _x select 0; - _pos = _x select 1; - _difficulty = _x select 2; - [_pos,_difficulty,_weapons,_uniforms,_headGear,_aircraft] call blck_fnc_spawnMissionHeli; - }forEach _airPatrols; -}; - diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnBuildingGarrisonASL.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnBuildingGarrisonASL.sqf deleted file mode 100644 index 6cb3fd4..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnBuildingGarrisonASL.sqf +++ /dev/null @@ -1,8 +0,0 @@ - - -params["_building","_aiDifficultyLevel","_statics","_units"]; -diag_log format["_fnc_sm_spawnBuildingGarrisonASL: handling _building = %1 | at location = %2",_building,position _building]; -private _group = [] call blck_fnc_create_AI_Group; -//params["_building","_group","_statics","_men","_aiDifficultyLevel","_uniforms","_headGear","_vests","_backpacks",["_launcher","none"],"_weaponList","_sideArms"]; -[_building,_group,_statics,_units,_aiDifficultyLevel] call blck_fnc_spawnGarrisonInsideBuilding_ATL; -_group diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnBuildingGarrison_relPos.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnBuildingGarrison_relPos.sqf deleted file mode 100644 index a49e28f..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnBuildingGarrison_relPos.sqf +++ /dev/null @@ -1,8 +0,0 @@ - - -params["_building","_skillLevel","_noStatics","_typesStatics","_noUnits"]; -diag_log format["_fnc_sm_spawnBuildingGarrison_relPos: handling _building = %1 | at location = %2",_building,position _building]; -private _group = [] call blck_fnc_create_AI_Group; -// ["_building","_group","_noStatics","_typesStatics","_noUnits",["_aiDifficultyLevel","Red"], -[_building,_group,_noStatics,[],_noUnits,_skillLevel] call blck_fnc_spawnGarrisonInsideBuilding_relPos; -_group \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnEmplaced.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnEmplaced.sqf deleted file mode 100644 index 8632a43..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnEmplaced.sqf +++ /dev/null @@ -1,59 +0,0 @@ -/* - by Ghostrider [GRG] - for ghostridergaming - 12/5/17 - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -params["_missionEmplacedWeapons","_noEmplacedWeapons","_aiDifficultyLevel","_coords","_uniforms","_headGear"]; -private["_return","_emplacedWeps","_emplacedAI","_wep","_units","_gunner","_abort","_pos","_mode"]; -_emplacedWeps = []; -_emplacedAI = []; -_units = []; -_abort = false; -_pos = []; - -//diag_log format["_sm_spawnEmplaced :: _missionEmplacedWeapons = %1",_missionEmplacedWeapons]; -// Define _missionEmplacedWeapons if not already configured. -if (_missionEmplacedWeapons isEqualTo []) then -{ - _missionEmplacedWeaponPositions = [_coords,_noEmplacedWeapons,35,50] call blck_fnc_findPositionsAlongARadius; - { - _static = selectRandom blck_staticWeapons; - //diag_log format["_fnc_spawnEmplacedWeaponArray: creating spawn element [%1,%2]",_static,_x]; - _missionEmplacedWeapons pushback [_static,_coords vectorAdd _x,_aiDifficultyLevel]; - //diag_log format["_fnc_spawnEmplacedWeaponArray: _mi updated to %1",_missionEmplacedWeapons]; - } forEach _missionEmplacedWeaponPositions; -}; -//diag_log format["_sm_spawnEmplaced:: _missionEmplacedWeapons = %1",_missionEmplacedWeapons]; -{ - _wepnClassName = _x select 0; - _pos = _x select 1; - _difficulty = _x select 2; - - // params["_pos", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], "_center", ["_minDist",20], ["_maxDist",35], ["_uniforms",blck_SkinList], ["_headGear",blck_headgear] ]; - _empGroup = [_pos,1,1,_difficulty,_pos,1,2,_uniforms,_headGear,false] call blck_fnc_spawnGroup; - _empGroup setcombatmode "RED"; - _empGroup setBehaviour "COMBAT"; - // Unsure of the value of setting waypoints for emplaced weapons - //[_pos,0.01,0.02,_empGroup,"random","SAD","emplaced"] spawn blck_fnc_setupWaypoints; - //if (isNull _empGroup) exitWith {_abort = _true}; - _wep = [_wepnClassName,[0,0,0],false] call blck_fnc_spawnVehicle; - //_empGroup setVariable["groupVehicle",_wep]; - //_wep setVariable["vehicleGroup",_empGroup]; - _wep setVariable["GRG_vehType","emplaced"]; - _wep setPosATL _pos; - [_wep,false] call blck_fnc_configureMissionVehicle; - _units = units _empGroup; - _gunner = _units select 0; - _gunner moveingunner _wep; -} forEach _missionEmplacedWeapons; -blck_monitoredVehicles append _emplacedWeps; - -true diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnEmplaceds.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnEmplaceds.sqf deleted file mode 100644 index a0c6ba0..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnEmplaceds.sqf +++ /dev/null @@ -1,59 +0,0 @@ -/* - by Ghostrider [GRG] - for ghostridergaming - 12/5/17 - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -params["_missionEmplacedWeapons","_noEmplacedWeapons","_aiDifficultyLevel","_coords","_uniforms","_headGear"]; -private["_return","_emplacedWeps","_emplacedAI","_wep","_units","_gunner","_abort","_pos","_mode"]; -_emplacedWeps = []; -_emplacedAI = []; -_units = []; -_abort = false; -_pos = []; - -//diag_log format["_sm_spawnEmplaced :: _missionEmplacedWeapons = %1",_missionEmplacedWeapons]; -// Define _missionEmplacedWeapons if not already configured. -if (_missionEmplacedWeapons isEqualTo []) then -{ - _missionEmplacedWeaponPositions = [_coords,_noEmplacedWeapons,35,50] call blck_fnc_findPositionsAlongARadius; - { - _static = selectRandom blck_staticWeapons; - //diag_log format["_fnc_spawnEmplacedWeaponArray: creating spawn element [%1,%2]",_static,_x]; - _missionEmplacedWeapons pushback [_static,_coords vectorAdd _x,_aiDifficultyLevel]; - //diag_log format["_fnc_spawnEmplacedWeaponArray: _mi updated to %1",_missionEmplacedWeapons]; - } forEach _missionEmplacedWeaponPositions; -}; -//diag_log format["_sm_spawnEmplaced:: _missionEmplacedWeapons = %1",_missionEmplacedWeapons]; -{ - _wepnClassName = _x select 0; - _pos = _x select 1; - _difficulty = _x select 2; - - /// params["_pos", "_center", _numai1, _numai2, _skillLevel, _minDist, _maxDist, _configureWaypoints, _uniforms, _headGear,_vests,_backpacks,_weaponList,_sideArms, _scuba ]; - __empGroup = [_pos,_pos,1,1,_difficulty,1,2,false,_uniforms,_headGear] call blck_fnc_spawnGroup; - _empGroup setcombatmode "RED"; - _empGroup setBehaviour "COMBAT"; - // Unsure of the value of setting waypoints for emplaced weapons - //[_pos,0.01,0.02,_empGroup,"random","SAD","emplaced"] spawn blck_fnc_setupWaypoints; - //if (isNull _empGroup) exitWith {_abort = _true}; - _wep = [_wepnClassName,[0,0,0],false] call blck_fnc_spawnVehicle; - //_empGroup setVariable["groupVehicle",_wep]; - //_wep setVariable["vehicleGroup",_empGroup]; - _wep setVariable["GRG_vehType","emplaced"]; - _wep setPosATL _pos; - [_wep,false] call blck_fnc_configureMissionVehicle; - _units = units _empGroup; - _gunner = _units select 0; - _gunner moveingunner _wep; -} forEach _missionEmplacedWeapons; -blck_monitoredVehicles append _emplacedWeps; - -true diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnInfantryPatrols.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnInfantryPatrols.sqf deleted file mode 100644 index e99242a..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnInfantryPatrols.sqf +++ /dev/null @@ -1,37 +0,0 @@ -/* - by Ghostrider [GRG] - for ghostridergaming - 12/5/17 - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -// params["_coords",["_minNoAI",3],["_maxNoAI",6],["_aiDifficultyLevel","red"],["_uniforms",blck_SkinList],["_headGear",blck_BanditHeadgear]]; -params["_patrols","_coords",["_minNoAI",3],["_maxNoAI",6],["_aiDifficultyLevel","red"],["_weapons",blck_WeaponList_Orange],["_uniforms",blck_SkinList],["_headGear",blck_BanditHeadgear]]; -//diag_log format["_sm_spawnInfantryPatrols:: _this = %1",_this]; -//diag_log format["_sm_spawnInfantryPatrols:: patrols = %1",_patrols]; -if (_patrols isEqualTo []) then -{ - // Use the random spawn logic from the regular dyanmic mission system. - //params[_coords,"_maxNoAI,_missionGroups,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_weapons,sideArms,_isScubaGroup]; - [_coords,_minNoAI,_maxNoAI,_aiDifficultyLevel,_uniforms,_headGear] call blck_fnc_spawnMissionAI -} else { - { - //diag_log format["_sm_spawnInfantryPatrols.sqf:: _x = %1",_x]; - // Use the pre-defined spawn positions and other parameters for each group. - // [[22819.4,16929.5,5.33892],"red",4, 75] - private["_pos","_difficulty","_noAI","_patrolRadius"]; - _pos = _x select 0; // Position at which to spawn the group - _difficulty = _x select 1; // AI difficulty setting (blue, green etc) - _noAI = _x select 2; // Number of AI to spawn with the group - _patrolRadius = _x select 3; // Radius within which AI should patrol - // params["_pos", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], "_center", ["_minDist",20], ["_maxDist",35], ["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_configureWaypoints",true] ]; - [_pos,_pos,_noAI,_noAI,_difficulty,_patrolRadius,_patrolRadius,true,_uniforms,_headGear] call blck_fnc_spawnGroup; - }forEach _patrols; -}; - diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnLootContainers.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnLootContainers.sqf deleted file mode 100644 index a2fe092..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnLootContainers.sqf +++ /dev/null @@ -1,40 +0,0 @@ -/* - by Ghostrider [GRG] - - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -params["_objects","_coords"]; -private["_object"]; - -if !(_objects isEqualTo []) exitWith -{ // Spawn loot crates where specified in _objects using the information for loot parameters provided for each location. - { - #ifdef blck_debugMode - if (blck_debugLevel > 2) then - { - diag_log format["_fnc_sm_spawnLootContainers (21):-> _x = %1",_x]; - }; - #endif - //diag_log format["_fnc_sm_spawnLootContainers (21):-> _x = %1",_x]; - // [selectRandom blck_crateTypes,[22904.8,16742.5,6.30195],[[0,1,0],[0,0,1]],[true,false], _crateLoot, _lootCounts] - _x params["_crateClassName","_cratePosASL","_vectorDirUp","_allowDamageSim","_crateLoot","_lootCounts"]; - _crate = [_cratePosASL, _crateClassName] call blck_fnc_spawnCrate; - [_crate, _crateLoot,_lootCounts] call blck_fnc_fillBoxes; - } forEach _objects; -}; - -// In the case where no loot crate parameters are defined in _objects just spawn 1 at the center of the mission. -if (_objects isEqualTo []) then -{ - _crateType = selectRandom blck_crateTypes; - _crate = [_coords,_crateType] call blck_fnc_spawnCrate; - [_crate,blck_BoxLoot_Red,blck_lootCountsGreen] call blck_fnc_fillBoxes; -}; - diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnMission.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnMission.sqf deleted file mode 100644 index 3bac3b3..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnMission.sqf +++ /dev/null @@ -1,53 +0,0 @@ -/* - GMS_fnc_sm_spawnMission - - by Ghostrider [GRG] - for ghostridergaming - 12/5/17 - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -params["_mission"]; -// Spawn landscape -// params["_objects"]; -[_missionLandscape] call blck_fnc_sm_spawnObjects; -uiSleep 10; // Let the objects 'settle' before placing anything on or around them. - - -// Spawn Air Patrols -// params["_airPatrols","_noAirPatrols","_heliTypes","_center","_difficulty","_uniforms","_headGear"]; -[_airPatrols,_noAirPatrols,_aircraftTypes,_missionCenter,_difficulty,_uniforms,_headgear,_weapons] call blck_fnc_sm_spawnAirPatrols; -//uiSleep 1; - -// Spawn Vehicle Patrols -// params["_coords","_noVehiclePatrols","_vehiclePatrolSpawns","_aiDifficultyLevel","_uniforms","_headGear",["_missionType","unspecified"]]; -[_missionCenter,_noVehiclePatrols,_vehiclePatrolParameters,_difficulty,_uniforms,_headGear] call blck_fnc_sm_spawnVehiclePatrols; -//uiSleep 1; - - -// spawn infantry -// params["_patrols","_coords",["_minNoAI",3],["_maxNoAI",6],["_aiDifficultyLevel","red"],["_weapons",blck_WeaponList_Orange],["_uniforms",blck_SkinList],["_headGear",blck_BanditHeadgear]]; -[_aiGroupParameters, _missionCenter,_minNoAI,_maxNoAI,_difficulty,_weapons,_uniforms,_headGear] call blck_fnc_sm_spawnInfantryPatrols; -//uiSleep 1; - -// spawn loot vehicles -// params["_objects","_coords","_loot","_lootCounts"]; -[_missionLootVehicles,_missionCenter,_crateLoot,_lootCounts] call blck_fnc_sm_spawnLootContainers; - -// Spawn static weapons -// params["_missionEmplacedWeapons","_noEmplacedWeapons","_aiDifficultyLevel","_coords","_uniforms","_headGear"]; -[_missionEmplacedWeapons,_noEmplacedWeapons,_difficulty,_missionCenter,_uniforms,_headGear] call blck_fnc_sm_spawnEmplaceds; - -// spawn loot chests -[_missionLootBoxes,_missionCenter,_crateLoot,_lootCounts] call blck_fnc_sm_spawnLootContainers; - -_blck_localMissionMarker = ["",_missionCenter,"","",_markerColor,_markerType]; -[_blck_localMissionMarker] call blck_fnc_spawnMarker; - -diag_log format["[blckeagls] Static Mission Spawner: Mission %1 spawned",_mission]; - diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnObjectASLVectorDirUp.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnObjectASLVectorDirUp.sqf deleted file mode 100644 index 9ed7137..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnObjectASLVectorDirUp.sqf +++ /dev/null @@ -1,21 +0,0 @@ - -/* - by Ghostrider [GRG] - for ghostridergaming - 12/5/17 - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -params["_buildingClassName","_posASL","_vectorDirUp","_enableDamSim"]; -_object = createVehicle [_buildingClassName, [0,0,0], [], 0, "CAN_COLLIDE"]; -_object setPosASL _posASL; -_object setVectorDirAndUp _vectorDirUp; -_object enableSimulationGlobal (_enableDamSim select 0); -_object allowDamage (_enableDamSim select 1); - -_object \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnObjects.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnObjects.sqf deleted file mode 100644 index c9f885f..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnObjects.sqf +++ /dev/null @@ -1,19 +0,0 @@ -/* - by Ghostrider [GRG] - - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -params["_objects"]; -private["_objects","_object"]; -{ - _object = [_x select 0, _x select 1, _x select 2, _x select 3] call blck_fnc_sm_spawnObjectASLVectorDirUp; -} forEach _objects; - - diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnVehiclePatrol.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnVehiclePatrol.sqf deleted file mode 100644 index 689b715..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnVehiclePatrol.sqf +++ /dev/null @@ -1,33 +0,0 @@ -/* - by Ghostrider [GRG] - for ghostridergaming - 12/5/17 - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -params["_airPatrols"]; -private["_aircraft","_pos","_difficulty","_uniforms","_headGear"]; -_aircraft = _x select 0; -_pos = _x select 1; -_difficulty = _x select 2; -_uniforms = blck_SkinList; -_headGear = blck_headgearList; -switch (_difficulty) do -{ - case "blue": {_weapons = blck_WeaponList_Blue;}; - case "red": {_weapons = blck_WeaponList_Red}; - case "green": {_weapons = blck_WeaponList_Green}; - case "orange": {_weapons = blck_WeaponList_Orange}; -}; -_vehGroup = [_spawnPos,3,3,_aiDifficultyLevel,_coords,1,2,_uniforms,_headGear,false] call blck_fnc_spawnGroup; -//params["_center","_pos",["_vehType","I_G_Offroad_01_armed_F"],["_minDis",30],["_maxDis",45],["_group",grpNull]]; -_return = [_pos,_difficulty,_weapons,_uniforms,_headGear,_aircraft] call blck_fnc_spawnVehiclePatrol; -_group = group (_return select 1 select 0); -_group - diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnVehiclePatrols.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnVehiclePatrols.sqf deleted file mode 100644 index 76e3cb0..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_spawnVehiclePatrols.sqf +++ /dev/null @@ -1,43 +0,0 @@ -/* - by Ghostrider [GRG] - for ghostridergaming - 12/5/17 - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - - -params["_coords","_noVehiclePatrols","_vehiclePatrolSpawns","_aiDifficultyLevel","_uniforms","_headGear",["_missionType","unspecified"]]; -//diag_log format["_sm_spawnVehiclePatrols:: _vehiclePatrolSpawns = %1",_vehiclePatrolSpawns]; -private["_vehGroup","_patrolVehicle","_missionAI","_missiongroups","_vehicles","_return","_vehiclePatrolSpawns","_randomVehicle","_return","_abort"]; -//if (count _weapons isEqualTo 0) then {_weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout}; -if (_vehiclePatrolSpawns isEqualTo []) then -{ - private["_spawnPoints","_vehType"]; - _spawnPoints = [_coords,_noVehiclePatrols,75,100] call blck_fnc_findPositionsAlongARadius; - { - // ["B_G_Offroad_01_armed_F",[22819.4,16929.5,3.17413],"red", 600], - _vehType = selectRandom blck_AIPatrolVehicles; - _vehiclePatrolSpawns pushBack [_vehType, _x, _aiDifficultyLevel, 150]; - } forEach _spawnPoints; -}; - -{ - _x params ["_vehicle","_spawnPos","_difficulty","_patrolRadius"]; - _vehGroup = [_spawnPos,_spawnPos,3,3,_difficulty,1,2,_uniforms,_headGear,false] call blck_fnc_spawnGroup; - //params["_center","_pos",["_vehType","I_G_Offroad_01_armed_F"],["_minDis",40],["_maxDis",60],["_group",grpNull],["_setWaypoints",true],["_crewCount",4],["_patrolRadius",150],["_waypointTimeout",[5,7.5,10]]] - _patrolVehicle = [_spawnPos,_spawnPos,_vehicle,_patrolRadius,_patrolRadius,_vehGroup,[_aiDifficultyLevel]call blck_fnc_selectVehicleCrewCount] call blck_fnc_spawnVehiclePatrol; - //if !(isNull _patrolVehicle) then - //{ - //_patrolVehicle setVariable["vehicleGroup",_vehGroup]; - //}; -} forEach _vehiclePatrolSpawns; - -true - - diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_staticPatrolMonitor.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_staticPatrolMonitor.sqf deleted file mode 100644 index f57a5de..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_sm_staticPatrolMonitor.sqf +++ /dev/null @@ -1,27 +0,0 @@ -/* - by Ghostrider [GRG] - for ghostridergaming - 12/5/17 - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -// GMS_fnc_sm_missionPatrolMonitor - -[] call blck_fnc_sm_monitorInfantry; -[] call blck_fnc_sm_monitorScuba; -//uiSleep 0.1; -[] call blck_fnc_sm_monitorVehicles; -[] call blck_fnc_sm_monitorAircraft; -[] call blck_fnc_sm_monitorEmplaced; - -[] call blck_fnc_sm_monitorShips; -[] call blck_fnc_sm_monitorSubs; -//[] call blck_fnc_sm_monitorGarrisonsASL; -//[] call blck_fnc_sm_monitorGarrisons_relPos; - - diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_spawnSDVPatrol.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_spawnSDVPatrol.sqf deleted file mode 100644 index 653d82b..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_spawnSDVPatrol.sqf +++ /dev/null @@ -1,23 +0,0 @@ -/* - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -// ["B_SDV_01_F",[22584.9,15304.8,-6.14801],"red",4, 75,0], -params["_SDV","_pos","_difficulty","_numAI","_patrolRadius","_respawnTime"]; -//diag_log format["_fnc_spawnSDVPatrol: _this = %1",_this]; -private["_vehicle","_group","_diveDepth"]; - -_group = [_pos,_numAI,_numAI,_difficulty,_pos,_patrolRadius - 2,_patrolRadius,blck_UMS_uniforms,blck_UMS_headgear,true,blck_UMS_weapons,blck_UMS_vests,true] call blck_fnc_spawnGroup; -//params["_center","_pos",["_vehType","I_G_Offroad_01_armed_F"],["_minDis",40],["_maxDis",60],["_group",grpNull],["_setWaypoints",true],["_crewCount",4],["_patrolRadius",150],["_waypointTimeout",[5,7.5,10]]] -#define SDVwaypointTimeout [5,7.5,10] -_vehicle = [[_pos select 0, _pos select 1,0],[_pos select 0, _pos select 1,0],_vehType,_patrolRadius - 2,_patrolRadius,_group,true,_numAI,_patrolradius,SDVwaypointTimeout] call blck_fnc_spawnVehiclePatrol; -_diveDepth = 0.5 * [_pos] call blck_fnc_findWaterDepth; -(driver _vehicle) swiminDepth (_diveDepth select 2); -_group \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_spawnScubaGroup.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_spawnScubaGroup.sqf deleted file mode 100644 index b9d40c1..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_spawnScubaGroup.sqf +++ /dev/null @@ -1,38 +0,0 @@ -/* - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -#define configureWaypoints true -#define isScubaGroup true -// [_pos,_difficulty,_units,_patrolRadius] -params["_pos",["_skillLevel","red"],["_numUnits",6],["_patrolRadius",15]]; -//diag_log format["_fnc_spawnScubaGroup: _this = %1",_this]; -private["_group","_diveDepth"]; -_group = grpNull; -//params["_pos", "_center", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], ["_minDist",20], ["_maxDist",35],["_configureWaypoints",true], ["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_vests",blck_vests],["_backpacks",blck_backpacks],["_weaponList",[]],["_sideArms",blck_Pistols], ["_scuba",false] ]; -_group = [_pos,_pos,_numUnits,_numUnits,_skillLevel, _patrolRadius - 2, _patrolRadius, configureWaypoints, blck_UMS_uniforms, blck_UMS_headgear, blck_UMS_vests, [], blck_UMS_weapons, [], isScubaGroup] call blck_fnc_spawnGroup; -//diag_log format["_fnc_spawnScubaGroup (14): -> value returned for group = %1",_group]; -private _waterDepth = [_pos] call blck_fnc_findWaterDepth; -_diveDepth = _waterDepth * 0.5; -{ - _x swimInDepth (_diveDepth); -} forEach units _group; - -#ifdef blck_debugMode -if (blck_debugLevel > 1) then -{ - { - diag_log format["_fnc_spawnScubaGroup:: _this select %1 = %2",_forEachIndex,_this select _forEachIndex]; - }forEach _this; - - diag_log format["_fnc_spawnScubaGroup:: -->> group spawned = %1",_group]; -}; -#endif -_group; diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_spawnSurfacePatrol.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_spawnSurfacePatrol.sqf deleted file mode 100644 index 403a90f..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_fnc_spawnSurfacePatrol.sqf +++ /dev/null @@ -1,22 +0,0 @@ - -/* - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -// ["B_SDV_01_F",[22584.9,15304.8,-6.14801],"red",4, 75,0], -params["_SDV","_pos","_difficulty","_numAI","_patrolRadius","_respawnTime"]; -//diag_log format["_fnc_spawnSurfacePatrol: _this = %1",_this]; -private["_vehicle"]; -_group = [_pos,_numAI,_numAI,_difficulty,_pos,_patrolRadius - 2,_patrolRadius,blck_UMS_uniforms,blck_UMS_headgear,true,blck_UMS_weapons,blck_UMS_vests,true] call blck_fnc_spawnGroup; -//params["_center","_pos",["_vehType","I_G_Offroad_01_armed_F"],["_minDis",40],["_maxDis",60],["_group",grpNull],["_setWaypoints",true],["_crewCount",4],["_patrolRadius",150],["_waypointTimeout",[5,7.5,10]]] -#define shipWaypointTimeout [10,12,5,15] -_vehicle = [_pos,_pos,_vehType,_minDis,_maxDis,_group,true,_numAI,_patrolRadius,shipWaypointTimeout] call blck_fnc_spawnVehiclePatrol; -_vehicle - diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_sm_AddSDVVehicle.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_sm_AddSDVVehicle.sqf deleted file mode 100644 index 49581d0..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_sm_AddSDVVehicle.sqf +++ /dev/null @@ -1,15 +0,0 @@ -/* - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -params["_vehicle"]; -blck_sm_submarines pushBack [_vehicle,grpNull,0]; -true \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_sm_AddScubaGroup.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_sm_AddScubaGroup.sqf deleted file mode 100644 index 3b73fdc..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_sm_AddScubaGroup.sqf +++ /dev/null @@ -1,16 +0,0 @@ -/* - by Ghostrider [GRG] - Copyright 20167 - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -params["_group"]; -blck_sm_scubaGroups pushBack [_group,grpNull,0]; -//diag_log format["_sm_AddScubaGroup:: blck_sm_scubaGroups = %1",blck_sm_scubaGroups]; -true \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_sm_AddSurfaceVehicle.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_sm_AddSurfaceVehicle.sqf deleted file mode 100644 index 3150815..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/GMS_sm_AddSurfaceVehicle.sqf +++ /dev/null @@ -1,15 +0,0 @@ -/* - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -params["_vehicle"]; -blck_sm_surfaceShips pushBack [_vehicle,grpNull,0]; -true \ No newline at end of file diff --git a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/_GMS_fnc_sm_init_functions.sqf b/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/_GMS_fnc_sm_init_functions.sqf deleted file mode 100644 index 73661a5..0000000 --- a/@GMS/addons/custom_server/Missions/Static/Old_Unused_Code/_GMS_fnc_sm_init_functions.sqf +++ /dev/null @@ -1,80 +0,0 @@ -/* - by Ghostrider [GRG] - - -------------------------- - 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/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -//diag_log "[blckeagls] GMS_fnc_sm_init_functions.sqf "; -//blck_sm_Groups = []; -blck_sm_Infantry = []; -blck_sm_Vehicles = []; -blck_sm_Aircraft = []; -blck_sm_Emplaced = []; -blck_sm_scubaGroups = []; -blck_sm_surfaceShips = []; -blck_sm_submarines = []; -blck_sm_lootContainers = []; -blck_sm_garrisonBuildings_ASL = []; -blcl_sm_garrisonBuilding_relPos = []; - -blck_fnc_sm_AddGroupToArray = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_AddGroupToArray.sqf"; - -/* -blck_fnc_sm_AddGroup = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_AddGroup.sqf"; -blck_fnc_sm_AddVehicle = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_AddVehicle.sqf"; -blck_fnc_sm_AddAircraft = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_AddAircraft.sqf"; -blck_fnc_sm_AddEmplaced = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_AddEmplaced.sqf"; -*/ -private _functions = [ - //["blck_fnc_sm_monitorStaticUnits","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorStaticPatrols.sqf"], - ["blck_fnc_sm_monitorInfantry","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorInfantry.sqf"], - ["blck_fnc_sm_monitorScuba","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorScuba.sqf"], - ["blck_fnc_sm_monitorVehicles","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorVehicles.sqf"], - ["blck_fnc_sm_monitorAircraft","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorAircraft.sqf"], - ["blck_fnc_sm_monitorShips","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorShips.sqf"], - ["blck_fnc_sm_monitorSubs","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorSubs.sqf"], - ["blck_fnc_sm_monitorEmplaced","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorEmplaced.sqf"], - ["blck_fnc_sm_monitorGarrisonsASL","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorGarrisonsASL.sqf"], - ["blck_fnc_sm_monitorGarrisons_relPos","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_monitorGarrisons_relPos.sqf"], - ["blck_fnc_sm_spawnVehiclePatrol","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnVehiclePatrol.sqf"], - ["blck_fnc_sm_spawnAirPatrol","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnAirPatrol.sqf"], - ["blck_fnc_sm_spawnEmplaced","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnEmplaced.sqf"], -// ["blck_fnc_sm_spawnInfantryPatrol","\q\addons\custom_server\Missions\Static\Code\GMS_sm_spawnInfantryPatrol.sqf"], - ["blck_fnc_sm_staticPatrolMonitor","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_staticPatrolMonitor.sqf"], -// ["blck_fnc_sm_checkForPlayerNearMission","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_checkForPlayerNearMission.sqf"], - ["blck_fnc_sm_spawnAirPatrols","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnAirPatrols.sqf"], - ["blck_fnc_sm_spawnEmplaceds","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnEmplaced.sqf"], - ["blck_fnc_sm_spawnInfantryPatrols","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnInfantryPatrols.sqf"], - ["blck_fnc_sm_spawnLootContainers","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnLootContainers.sqf"], - ["blck_fnc_sm_spawnObjects","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnObjects.sqf"], - ["blck_fnc_sm_spawnVehiclePatrols","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnVehiclePatrols.sqf"], - ["blck_fnc_sm_spawnBuildingGarrison_ASL","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnBuildingGarrisonASL.sqf"], - ["blck_fnc_sm_spawnBuildingGarrison_relPos","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnBuildingGarrison_relPos.sqf"], - ["blck_fnc_sm_spawnObjectASLVectorDirUp","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_spawnObjectASLVectorDirUp.sqf"], - ["blck_fnc_spawnScubaGroup","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_spawnScubaGroup.sqf"], - ["blck_fnc_spawnSDVPatrol","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_spawnSDVPatrol.sqf"], - ["blck_fnc_spawnSurfacePatrol","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_spawnSurfacePatrol.sqf"], - //["blck_fnc_sm_AddScubaGroup","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_AddScubaGroup.sqf"], - //["blck_fnc_sm_AddSurfaceVehicle","\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_AddSurfaceVehicle.sqf"], - ["blck_fnc_sm_AddSDVVehicle","\q\addons\custom_server\Missions\Static\Code\GMS_sm_AddSDVVehicle.sqf"] -]; -{ - _x params ["_name","_path"]; - missionnamespace setvariable [_name,compileFinal preprocessFileLineNumbers _path]; -} foreach _functions; - -diag_log "[blckeagls] GMS_sm_init_functions.sqf "; - - -/* -blck_fnc_spawnScubaGroup = compileFinal preprocessFileLineNumbers "q\addons\custom_server\Missions\UMS\code\GMS_fnc_spawnScubaGroup.sqf"; -blck_fnc_spawnSDVPatrol = compileFinal preprocessFileLineNumbers "q\addons\custom_server\Missions\UMS\code\GMS_fnc_spawnSDVPatrol.sqf"; -blck_fnc_spawnSurfacePatrol = compileFinal preprocessFileLineNumbers "q\addons\custom_server\Missions\UMS\code\GMS_fnc_spawnSurfacePatrol.sqf"; -blck_fnc_sm_AddScubaGroup = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Missions\UMS\code\GMS_sm_AddScubaGroup.sqf"; -blck_fnc_sm_AddSurfaceVehicle = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Missions\UMS\code\GMS_sm_AddSurfaceVehicle.sqf"; -blck_fnc_sm_AddSDVVehicle = compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Missions\UMS\code\GMS_sm_AddSDVVehicle.sqf"; diff --git a/@GMS/addons/custom_server/Missions/Static/missions/privateVars.sqf b/@GMS/addons/custom_server/Missions/Static/missions/privateVars.sqf index c479e4c..29adbeb 100644 --- a/@GMS/addons/custom_server/Missions/Static/missions/privateVars.sqf +++ b/@GMS/addons/custom_server/Missions/Static/missions/privateVars.sqf @@ -2,10 +2,14 @@ private ["_mission","_difficulty","_crateLoot","_lootCounts","_markerMissionName","_missionLandscapeMode","_markerLabel", "_endMsg","_startMsg","_markerType","_markerColor","_missionCenter", - "_missionLandscape","_missionLootBoxes","_missionLootVehicles","_missionEmplacedWeapons","_garrisonedBuilding_ASLsystem","_garrisonedBuildings_BuildingPosnSystem", + "_missionLandscape","_missionLootBoxes","_crateMoney","_missionLootVehicles", + "_missionEmplacedWeapons","_garrisonedBuilding_ASLsystem","_garrisonedBuildings_BuildingPosnSystem", "_minNoAI","_maxNoAI","_noAIGroups","_noVehiclePatrols","_noEmplacedWeapons","_noPara","_helipatrol","_aircraftTypes", "_uniforms","_headgear","_weaponList","_sideArms","_vests","_backpacks", - "_weapons","_sideArms","_chanceReinforcements","_endCondition", - "_useMines"]; + "_weapons","_sideArms", + "_chanceReinforcements", + "_endCondition", + "_useMines" +]; // _mission diff --git a/@GMS/addons/custom_server/Missions/UMS/GMS_UMS_configurations.sqf b/@GMS/addons/custom_server/Missions/UMS/GMS_UMS_configurations.sqf index d23ce75..67b1e5a 100644 --- a/@GMS/addons/custom_server/Missions/UMS/GMS_UMS_configurations.sqf +++ b/@GMS/addons/custom_server/Missions/UMS/GMS_UMS_configurations.sqf @@ -52,8 +52,8 @@ if ((tolower blck_modType) isEqualTo "exile") then if ((tolower blck_modType) isEqualTo "epoch") then { blck_UMS_submarines = ["B_SDV_01_EPOCH"]; - //blck_UMS_crates = blck_crateTypes; - blck_UMS_crates = ["container_epoch"]; + blck_UMS_crates = blck_crateTypes; + //blck_UMS_crates = ["container_epoch"]; }; if ((toLower blck_modType) isEqualTo "default") then { @@ -68,6 +68,7 @@ if ((toLower blck_modType) isEqualTo "default") then blck_UMS_crates = blck_crateTypes; }; + blck_UMS_unarmedSurfaceVessels = [ "B_Boat_Transport_01_F", diff --git a/@GMS/addons/custom_server/Missions/UMS/GMS_UMS_init.sqf b/@GMS/addons/custom_server/Missions/UMS/GMS_UMS_init.sqf index c888f56..3514792 100644 --- a/@GMS/addons/custom_server/Missions/UMS/GMS_UMS_init.sqf +++ b/@GMS/addons/custom_server/Missions/UMS/GMS_UMS_init.sqf @@ -8,20 +8,20 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ -diag_log "[blckeagls] Initializing UMS"; +//diag_log "[blckeagls] Initializing UMS"; #include "\q\addons\custom_server\Configs\blck_defines.hpp"; blck_dynamicUMS_MissionsRuning = 0; blck_priorDynamicUMS_Missions = []; blck_UMS_ActiveDynamicMissions = []; -diag_log "Including GMS_UMS_configurations.sqf"; +//diag_log "Including GMS_UMS_configurations.sqf"; #include "GMS_UMS_configurations.sqf"; -diag_log "Including GMS_UMS_dynamicMissionLIsts.sqf"; -#include "GMS_UMS_dynamicMissionList.sqf"; -diag_log format ["Initializing UMS static missions at %1",diag_tickTime]; +//diag_log "Including GMS_UMS_dynamicMissionLIsts.sqf"; +//#include "GMS_UMS_dynamicMissionList.sqf"; +//diag_log format ["Initializing UMS static missions at %1",diag_tickTime]; [] execVM "q\addons\custom_server\Missions\UMS\GMS_UMS_StaticMissions_init.sqf"; -diag_log "[blckeagls] UMS "; +//diag_log "[blckeagls] UMS "; diff --git a/@GMS/addons/custom_server/changeLog.sqf b/@GMS/addons/custom_server/changeLog.sqf deleted file mode 100644 index 7b3a947..0000000 --- a/@GMS/addons/custom_server/changeLog.sqf +++ /dev/null @@ -1,690 +0,0 @@ -/* -blck Mission system by Ghostrider [GRG] -Loosely based on the AI mission system by blckeagls ver 2.0.2 -Contributions by Narines: bug fixes, testing, infinite ammo fix. -Ideas or code from that by He-Man, Vampire and KiloSwiss have been used for certain functions. -Many thanks for new Coding and ideas from Grahame. - -Significant Changes: -===================== -6.98 Build 206 -FIXED: few minor bug fixes. -FIXED: Static Mission Loot vehicles are no longer deleted by Epoch servers when players enter them. -FIXED: an error in coordinates for some randomly spawned missions tha added an extra 0 to the array with the coordinaates. -Added: a define for NIA all in one in blck_defines; -Added a few preconfiguration variables with lists of NIA Armas items. -Added: an optional parameter to define the location of a mission as one of one or more locations in an array - _defaultMissionLocations = []; - -Added: a function that returns an array of all mission markers used by blckeagls for mission makers and server owners - blck_fnc_getAllBlackeaglsMarkers - Returns: an array with all markers used by the mission system. - -Added: a function to pull a list of all map markers belonging to DMS and avoid spawning new blckeagls missions near these. - Configuraiont parameter: blck_minDistanceFromDMS // set to -1 to disable this check. - Function: blck_fnc_getAllDMSMarkers - -Removed: some debugging and map sepcific settings from blck_custom_config.sqf -Changed: some code for finding locations for a new mission. -Added: all blckeagls map markers have the same prefix: "blckeagls_marker" - - - - -6.96 Build 199 -Added support for Arma servers not running Epoch or Exile - -6.96 Build 197 -Sorted some wisses with the dynamic UMS spawner. -Removing debugging info -TODO: come back to grpNull detection - -6092 Build 196 -sorted issues with markers -and added new findSafeLocation - -6.92 Build 194 -Added _noAIGroups to parameter list for _spawnMissionAI -Other minor changes to delete logging. - -6.92 Build 193 -Updates to scripts to see if player(s) are near locations. -Updates to scripts to delete alive and dead AI. -Updates to simulation managers. - -6.92 Guild 192 -All actions on dead AI are handled throug units blck_graveyardGroup -All use of blck_deadAI has been deleted. - -6.92 Build 184 -Fixed an issues that caused blckeagls to load before exile servers were ready to accept players. -Added checks that ensure that live AI and mission scenery do not despawn when players are nearby. -Decreased the frequency with which some checks (dead AI, live AI, scenery at completed missions) is checked. -Redid a few lops that should be using the more speedy deleteAt rather than forEach methods. -worked on killed and hit EH so that these can run on the client owning the unit and server with each having a specific role - - note that this requires that the code be streamed to clients and compiled on the HC. -Updates to client to reduce logging -Added a firedNear EH -Redid system for setting up combatmode and behavior to be context dependent -Redid setNextWaypont to include an antiStuck check and implement the above checks on behavior and combat mode. -Support for claim-vehicle scripts is now built-in - blck_allowClaimVehicle = true; // To allow players to claim vehicles (Exile only). -Added a setting to disable having AI toss smoke before healing. Set: - blck_useSmokeWhenHealing=false; // to disable this -Added an option to display kill notices using Toasts - blck_aiKillUseToast=true; // in blckClient.sqf in the debug folder of your mission.pbo to enable these. -Added offloading of AI to clients - //////// - // Client Offloading and Headless Client Configurations - blck_useHC = true; // Experimental (death messages and rewards not yet working). - // Credit to Defent and eraser for their excellent work on scripts to transfer AI to clients for which these settings are required. - blck_ai_offload_to_client = true; // forces AI to be transfered to player's PCs. Disable if you have players running slow PCs. - blck_ai_offload_notifyClient = false; // Set true if you want notifications when AI are offloaded to a client PC. Only for testing/debugging purposes. - // TODO: set to false before release - blck_limit_ai_offload_to_blckeagls = true; // when true, only groups spawned by blckeagls are evaluated. - - - -Fixed - Vehicle unlock when empty of crew through adding a getOut event handler. -Code for spawning vehicles redone to reduced redundancy. -Monitoring of groups refined to route mission groups that have left the mission area back to it. - -V 6.90 Build 175 -1. Added new settings to specify the number of crew per vehhicle to blck_config.sqf and blck_config_mil.sqf - - // global settings for this parameters - // Determine the number of crew plus driver per vehicle; excess crew are ignored. - // This can be a value or array of [_min, _max]; - blck_vehCrew_blue = 3; - blck_vehCrew_red = 3; - blck_vehCrew_green = 3; - blck_vehCrew_orange = 3; - - You can also define this value in missions by adding the following variable definition to the mission template: - - _vehicleCrewCount = [3,6]; // min/max number of AI to load including driver. see the missions\blue\template.sqf and blck_configs.sqf for more info. - -2. Lists of items to be excluded from dynamically generated loadouts has been moved to: - blck_config.sqf - blck_config_mil.sqf - -3. Added a new setting that specifies whether logging of blacklisted items is done (handy for debugging) - blck_logBlacklistedItems = true; // set to false to disable logging - -4. Hit and Killed event handlers extensively reworked. Methods for notification of nearby AI and Vehicles of the killers whereabouts were revised to be more inclusive of neighboring AI. - -5. Issues with AIHit events fixed; AI now deploy smoke and heal. - -6. Added constraints on aircraft patrols to keep them in the mission area. - -7. Removed some unnecessary logging. - -8. Other minor coding fixes and optimizations. - -6.88 -This update consists primarily of a set of bug fixes and code tweaks. -Many thanks to HeMan for his time in effort spent going through the scripts to troublehsoot and improve them. - -6.86 Build 156 -Added support for spawning infantry and statics inside buildings for forming a garrison using either of two methods. - 1. by placing a marker object such as a sphere in the building you define it as having units/statics inside - 2. by placing units or statics in it you determine the garrison to be placed at mission spawn. -Added tools to facilitate grabbing data from missions in the editor (see the new TOOLS folders for more information). -Added additional error checks for missing mission parameters. -Fixed: issues that prevented completion of capture/hostage missions on exile servers -Added: code that forces air, land and sea vehicles to detect nearby players which should help with frozen AI _noChoppers -Changed: code for blckeagls simulation manager to force simulation when groups are awoken. -Added: additional settings for simulation management (see blck_configs.sqf for details) -Changed: Simulation management is now set using the new variable blck_simulationManager which is defined in blck_configs.sqf -Fixed: Heli's just hovered over missions. -Fixed: GRG code that locked up the mission system was removed from the public RC. - -6.84 Build 145 -Added Option to load weapons, pistols, uniforms, headgear, vests and backpacks from CfgPricing (Epoch) or the Arsenal (Exile) and exclude items above a certain price - Add details on configs for enabling this and setting the maximum price - To use this new feature - Set blck_useConfigsGeneratedLoadouts = true; - - To specify the maximum price for items added to AI, change: - blck_maximumItemPriceInAI_Loadouts = 100; - - NOTE: this function overides any loadouts you specify in blck_config.sqf etc. - -Added functions to despawn static patrols of all types when no players are nearby. This tracks the number of infantry alive in a group and respawns only the number alive when the group was despawned. -Added: Static units will now be spawned with gear specific to difficulty level (blue, red, green, orange) as specified in blck_config.sqf etc. -Added: AI now have a chance of spawning with binocs or range finders. -Added: a lit road cone spawns at the center of the mission to help find it and aid in triggering mission completion. - -Changed: Hostage missions redesigned to reduce chances of AI being glitched into containers and of mission objects flying about when spawned in. -Changed: Units are spawned with greater dispersion. -Changed: method for spawning random landscapes has been changed. Note the added randomization in missions\blue\default.sqf - -Fixed: Collisions between objects at missions caused issues. -Fixed: Attempted a fix to reduce the chance that AI will spawn inside or under objects like rocks or containers. -Fixed: Captive missions now complete properly. -Fixed: Hostage missions now complete properly. -Fixed: Paratroops spawned at UMS missions now spawn with scuba gear. - -Version 1.82 Build 134 -Added: configs for blue, red, green and orange pistol, vest, backpack and uniforms (with thanks to Grahame for suggesting this change and doing most of the coding) -Changes: - Commented out all configs in missions for uniforms, headgear, backpacks and uniforms. - Commented out most configs for helis, paratroops and supplemental loot dropped by paratroops. - Removed some logging that is not required. - -Version 1.82 Build 132 -Added: blck_killPercentage = 0.9; // The mission will complete if this fraction of the total AI spawned has been killed. - // This facilitates mission completion when one or two AI are spawned into objects. - -Added: Male and Female uniforms are separated and can be used alone or together for specific missiosn (Epoch Only). - -Added: Loot tables updated to include food and supplies as of Epoch 1.1.0. - -Added: Setting that configures vehicles to be sold at Black Market Traders. - blck_allowSalesAtBlackMktTraders = true; // Allow vehicles to be sold at Halve's black market traders. - -Added: Support for hostage rescue missions. - The hostage can be spawned at any location relative to the mission center. - The mission aborts if the hostage is killed; all loot is deleted. - To complete the mission, a player must approach the hostage and execute the rescue action. - The hostage then runs away, and loot becomes available to the player. - See missions\blue\hostage.sqf for an example mission. - - ***** PLEASE READ - IMPORTANT **** - Please update the blck_client.sqf in your mission.pbo or you will not be able to interact with or see animations of the new AI characters. - -Added: Support for Arrest Leader missions. - These are similar to the rescue hostage mission except that the leader, when arrested, will sites - awaiting arrival of imaginary survivor forces. - See missions\blue\capture.sqf for an example mission - -Added: blck_missionEndCondition = "playerNear"; // Options are "allUnitsKilled", "playerNear", "allKilledOrPlayerNear" - which provides a simple way to define the default conditions under which the mission ends for all missions. - You can of course define _endCondition in the specific mission file if you wish. - -Added: A new mission completion condition for hostage and captive missions. - _endCondition = "assetSecured"; - -Added: Mission crates can now be spawned on the ground or in the air at mission completion. - blck_spawnCratesTiming sets the default for all missions. - blck_spawnCratesTiming = "atMissionEndAir"; // Choices: "atMissionSpawnGround","atMissionStartAir","atMissionEndGround","atMissionEndAir". - Define _spawnCratesTiming to set this parameter for a particular mission. - _spawnCratesTiming = "atMissionEndAir"; - See the hostage1.sqf mission as an example. - -Added: Crates spawn with tabs or crypto. Set the values in the mod-specific configs. - For Epoch, the crypto can be accessed by pressing space bar. - -Added: Additional documentation for those who wish to design their own missions. - See \missions\blue\default.sqf and default2.sqf for details. - -Added: greater control over AI loadouts. - For land-based dynamic missions you can now specify for each mission: - Uniforms - Headgear - Vests - Weapons allowed - Sidearms allows. - (See \Missions\Blue\default2.sqf for examples). - [Still to do: upgrade statics for the same functionality; doable but will require adding these parameters to the spawn info for the groups of infantry, vehicle, submerged and air units]; - -Added: greater control of mission helis - you can now set variables in the mission file (see examples below). - when these are not defined in the mission file, defaults are used. - _chancePara = blck_chanceParaBlue; // Setting this in the mission file overrides the defaults - _noPara = blck_noParaBlue; // Setting this in the mission file overrides the defaults - _chanceHeliPatrol = blck_chanceHeliPatrolBlue; // Setting this in the mission file overrides the defaults - _noChoppers = blck_noPatrolHelisBlue; - _missionHelis = blck_patrolHelisBlue; - -Added: default minimun and maximum radius for groups to patrol. - blck_minimumPatrolRadius = 22; // AI will patrol within a circle with radius of approximately min-max meters. note that because of the way waypoints are completed they may more more or less than this distance. - blck_maximumPatrolRadius = 35; - -Changed: **** VERY IMPORTANT ****** - The definitions of private variables used in missions in now read in through an include statement (see Missions\Blue\default.sqf for an example) - Please update any custom mission you have generated accordingly. - This should save quite a bit of editing going forward. - Please note that if you do not update the private variables definitions list certain features of the mission spawner may not work due to issues with scope of variables. - -Changed: Each mission is now compiled at server startup which I hope will save a little server resource between restarts. - A few variables that were not used were eliminated. - Some declarations of private variables were consolidated. - Together these changes should be worth a small performance bump. - -Changed: Code for Heli Patrols redone. - Code that spawns paratroops moved to a separate function that is called when a player is within a certain radius of the mission. - Code that spawns a supplemental loot chest added - this will be spawned along with the paratroop reinforcements, if desired. - This crate can have customized loot (think ammo, building supplies, tools and food, ala Exile/Epoch airdrops). - -Changed: Logic for spawning paratroops was redone so it is more clear. - When helis are spawned the paratroops will spawn at the heli location at the location at which the heli spawn based on probability set in _chancePara in the mission file or the default for that mission difficulty. - When no helies are to be spawned, paratroops will spawn at the mission center when it spawns based on probability set in _chancePara in the mission file or the default for that mission difficulty. - A delay was added so that paratroops spawn when players are nearby for more drama !! - -Changed: Methods for detecting NULL Groups (rarely a problem with arma these days) simplified. - Still more work to be done here. - -Changed: Methods for defining mission crate loot were relaxed. - You can define each item either with the old method ["Item Name", minimun number, maximum number] or just "Item name". - -Fixed: disabled some logging that is not required except when debugging. -Fixed: AI Counts were not being shown at dynamic UMS. -Fixed: AI were glitching through walls. -Fixed: Emplaced weapons are now spawned at correct locations when their positions are defined in an array in the mission file. -Fixed: an issue with the experimental build whereby the number of dynamically tracked missions was not correctly spawned. -Fixed: Dead Ai in vehicles were sometimes detected as alive. Dead AI are now ejected. -Fixed: Vehicles are now properly released to players when all AI inside are killed when an HC is connected. - -Version 1.80 Build 118 -Added: you can now determine whether objects spawned at dynamic missions have simulation or damage enabled. - See the medicalCamp.sqf mission for an example of how this is done. -Added: you can now spawn simple objects as part of your mission landscape. Useful for STATIC missions only. -Added: lists of armed vehicles from which you can choose those you wish to spawn at vehicles broken down by category (wheeled, traced APC, Tank, etc) -Added: Three constants that define how far away missions are from players when they spawn. - blck_minDistanceToBases = 900; Minimum distance from any freq jammer or flag - blck_minDistanceToPlayer = 900; Minimum distance from any player - blck_minDistanceFromTowns = 300; Minimum distance from cites or towns. - -Changed: Default missions reworked to support the above. - -Version 1.79, Build 116 -Added: Map-specific information for Lythium. -Added: New configuration setting: blck_showCountAliveAI = true; When = true, the number of alive AI at a mission will be displayed by the mission marker. -Added: You can now define the types of patrol vehicles spawned based on AI difficulty. - -Fixed: Setting blck_useTimeAcceleration = false; now disables the time acceleration module. -Fixed: several issues with dynamic UMS missions. -Fixed: AI Heli's at missions should now be released to players when all AI are dead. -Fixed: script errors when dynamic simulation off. - -Changed: Code for checking the state of AI vehicles and releasing them to players was re-written. -Changed: Eliminated useless files from the debug folder (mission.pbo). - Please replace the debug folder in your mission PBO with the updated one found on the github. - [removed all scripts for markers from mission\debug. These are now located in custom_server\compiles\functions.] - -Version 6.78 Build 107 -Fixed: blck_baseSkill is now used properly to set skill of units. -Added: Units assemble in formation when spawned. - -Version 6.78 build 106 -Changed how event handlers are handled. -bug fixes -Removed lines specific to GRG servers. - -Version 6.76 Build 104 -Added: A new timer that determines the time after which Vehicles are deleted once all AI are dead if no player has entered the driver's seat. -Added: an optional variable in the template for missions called _missionGroups by which you can define the parameters (position, skill level, number, patrol radius) for each group spawned. - See the default2.sqf mission under custom_server\Missions\blue for an example -Changed: The method by which the server handles AI damage was changed to use MPHit. -Added: an MPKilled event handler for vehicles. - -Fixed: Static Vehicles were being spawned repeatedly. -Fixed: _missionGroups parameters were not being handled correctly. -Fixed: sever FPS was not being logged by GMS_passToHCs -Fixed: crate marker was not shown when in debug mode. -Known Issues: Vehicles are not unlocked when released to players if an HC is connected. - -Version 6.74 Build 97 -Added Core Code for spawning dynamic underwater missions. -Added Core Code for spawning scuba units and surface and SDV patrols. -Added Code to spawn static underwater missions. -Note: support for scuba AI required a significant re-write of the code for spawning AI groups and units. - -Changed static missions so that AI are spawned only when players are within 2000 meter. -Added optional respawn to static AI groups, vehicles, emplaced weaps and aircraft. -Added four functions that support spawning of static AI with setting for difficulty, patrol radius, and respawn time. - For examples, see the updated static eample mission - and blck_custom_config.sqf and the examples below: - - position difficulty radius respawn - [[[22920.4,16887.3,3.19144],"red",[1,2], 75, 120]] call blck_fnc_sm_AddGroup; - - weapon position difficulty radius (not used) respawn time - [["B_G_Mortar_01_F",[22867.3,16809.1,3.17968],"red",0,0]] call blck_fnc_sm_AddEmplaced; - - vehicle position difficulty radius respawn - [["B_G_Offroad_01_armed_F",[22819.4,16929.5,3.17413],"red", 600, 0]] call blck_fnc_sm_AddVehicle; - - aircraft position difficulty radius respawn - [["Exile_Chopper_Huey_Armed_Green",[22923.4,16953,3.19],"red", 1000, 0]] call blck_fnc_sm_AddAircraft; -Re-did event handlers for compatability with Arma 1.78+, and moved most code into pre-compiled functions that execute on the server. - -====================== -Version 6.72 Build 81 -[Added] Support for headless clients. This functionality works for one HC regardless of the name used for HCs. -[Added] Added an optional variable for mission patrol vehicles: _missionPatrolVehicles - One can use this variable to defin the spawn position and types of vehicles spawned at missions. - note: one can still have the type of vehicle randomized by using selectRandom and pointing it to either the default list of patrol vehicles for the mission system or providing a custom array of vehicle class names. - I added this because on some of our GRG missions the vehicles were being destroyed at the time they were spawned. -[Changed] Crates can now be lifted only AFTER a mission is completed. -[Changed] The client is now activated using remoteExec instead of a public variable. - **** Please be sure to update the files in the debug folder on your client. - -===================== -Version 6.71 Build 77 -[Added] HandleDamage Event Handler for Armed Vehicles to increase their interaction with players. -[Fixed] Mission name was not displayed with start or end messages when the mission marker labels were disabled. -[Fixed] the mission system would hang in some situations due to an undefined global variable in SLS. - -============================ -8/13/17 Version 6.61 Build 71 -[Added] Most parameters for numbers of loot, AI, and vehicle patrols can be defined as either a scalar value or range. - Note that there is backwards compatability to prior versions so you need make no changes to your configs if you do not wish to. - The major reason to include this feature is so that players to do not go looking for that third static weapon at an orange mission. They have to scope out the situation. -[Added] options to have multiple aircraft spawn per mission. - [Note that if you spawn more than one aircraft I recommend that you disable the paratroop spawns to avoid spawning more than 124 groups]. -[Added] an optional militarized setting whereby missions use a full complement of Arma air and ground vehicles including fighter jets and tanks. This is OFF by default. - Uncomment #define blck_milServer in custom_server\Configs\blck_defines to enable this. - [ Note!!! There are both general and mod-specific configs for the militarized missions.] -[Added] Support for setting a range for certain configurations rather than setting a single value. -This should make missions a little more varied in that players will no longer be looking for the 4 statics that always spawn at an orange mission. -This pertains to: - Numbers of Emplaced Weapons - Numbers of Vehicles Patrols - Numbers of Air Patrols - AI Skills; for example you can now set ["aimingAccuracy",[0.08,16]],["aimingShake",[0.25,0.35]],["aimingSpeed",0.5],["endurance",0.50], .... ]; - Numbers of Items to load into Mission and Static loot crates; for example, for the orange level of difficulty item counts could be revised as follows: - blck_lootCountsOrange = [[6,8],[24,32],[5,10],[25,35],16,1]; - -7/27/17 Version 6.59 Build 60 -[added] AI units in mission vehicles and emplaced weapons are notified of the location of the shooter when an AI unit is hit or killed. Location of the unit is revealed gradually between 0.1 and 4 where 4 is precise. Increments increase with increasing mission difficulty. - -6/1/17 Version 6.59 Build 59 -[changed] Players are no longer given crypto for each AI kill. Crypto added to AI Bodies was increased. -[fixed] error in GMS_fnc_setupWaypoints wherein _arc was not defined early enough in the script. -[fixed] Exile Respect Loss bug (temporary fix only). - -5/21/17 Version 6.58 build 58 -[Fixed] typos for blck_epochValuables. -[Fixed] All loot was removed from AI vehicles at the time a mission was completed. -[Fixed] When mission completion criteria included killing all AI, missions could be completed with alive AI in vehicles. - -4/6/17 Version 6.58 Build 54 -[Added] A FAQ presenting an overview of the mission system and addons. -[Changed] Helicopter crew waypoint system reverted to that from Build 46. -[Fixed] Mission timouts would prevent new missions from spawning after a while. -[Fixed] blck_timeAcceleration now determines if time acceleration is activated. -[Fixed] Missions did not complete correctly under certain circumstances. -[Fixed] Mission vehicles were not properly deleted, unlocked or otherwise handled at misison end or when AI crew were killed. -[Fixed] Throws errors when evaluating errors related to certain disallowed types of kills. -Known errors: throws errors with certain loot crate setups (Exile) - -3/23/17 Verision 6.58 build 48 -Turned debugging off -Added some preprocessor commands to minimize the use of if()then for debugging purposes when running without any debugging settings on. -Teaks to heli patrol waypoint system. -bugfixes. - -3/21/17 Version 6.58 Build 44 -[Added] Each mission now has a setting for mines which is set to false. To use the global setting in blck_config for yoru mission just change this to read: - _useMines = blck_useMines; -[Fixed] Logging by the time acceleration module was disabled. -[Fixed] Emplaced weapons now spawn in the correct locations. -[Fixed] Missions end correctly when all AI are dead and _endCondition = "allKilledOrPlayerNear"; -[changed] Reverted to the waypoint system from build 42. - -3/18/17 Version 6.58 Build 44 -[Fixed] Time acceleration was not working. -[Fixed] blck_timeAcceleration now determines if time acceleration is activated. -[Fixed] The mission described by default2 in the blue missions folder now spawns correctly. - You can use this as a guide for how to place loot crates or static weapons at specific locations like inside or on top of structures. - Loot vehicles are now spawned correctly. - Loot crates positioned at specific locations are now spawned correctely. - static weapons to be spawned at specified positions are now spawned correctly. - That mission is disabled by default. -[Added] option to disable time acceleration (blck_timeAcceleration = true; line 30 of blck_config.sqf) -[Added] options to have armed heli's patrolling the missions and for them to drop AI. -[Added] options to have paratroops drop over missions as an alternative to the above. -[Added] Code optimization for GMS_fnc_spawnMissionAI.sqf and several other AI spawning scripts. -Added] Formalizing exception handling for the case in which a createGroup request returns grpNull. - If this happens during mission spawning the mission will be aborted and all mission objects and AI will be deleted. - This should prevent the mission system from crashing causing no further missions to spawn. -[Added] a new configuration that sets a cap on the maximum number of spawned missions. - blck_maxSpawnedMissions = 4; // Line 181 of blck_configs.sqf -[Added] a function blck_fnc_allPlayers which returns an array of allPlayers (as a temporizing fix till BIS patches the allPlayers function. - -[Changed] Coding improvements for waypoint generation. - Tried a new approach to generating waypoints to make AI more aggressive without the overhead of the last method. - -[Changed] Redid the mission spawner to spawn one random mission every 1 min for mission for which timers say they can be spoawned. - This will continue until the cap is reached then randomly select a mission from those that are ready to be respawned to be spawned next. - If you want the various missions to have an equal chance of being spawned at all times, give the the timers for blue, red, green and red timers the same values for Min and Max. -[Chaged] logic for detecting whether a player is near the mission center or loot crates to test if a player is near any of an array of location or objects. -[Added] a function blck_fnc_allPlayers which returns an array of allPlayers (as a temporizing fix till BIS patches the allPlayers function. - -To Do - consider moving back to storing AI in a group-based manner (doable easily, needs testing). - Build a template for static missions (planned for Ver 6.60). - Write a static mission spawning routine (planned for Ver 6.60). - -3/17/17 Version 6.58 Build 43 -Reverted back to v6.56 build 39 then: -[Added] a Hit event handler to make AI more responsive. All AI in the group to which the hit AI belongs are informed of the shooter's location. -[Changed] the Killed event handler as below. -[Added] New logic for informing AI of the location of players to give AI a more gradual ramp up from little knowledge about player location to full knowledge. -[Added] scripts and functions for reinforcements: a) heli patrols; b) paratroops. -[Added] ...\custom_server\Configs\blck_defines.hpp inside which you can disable APEX gear and other attributes. - -[Changed] Re-organized variables in the configs. -[Changed] Divided configs into tow basic parts: - - General configs for the mission system. - - Mod-specific configs. -[Changed] spawnMarker.sqf in the debug folder (mission.pbo) to reduce unneeded logging. - -3/13/17 Version 6.57 Build 41 -Changed the method of tracking live AI from an array of units to an array of groups which will aid in monitoring groups for a 'stuck' state. -Added Search and Destroy waypoints for each location in the waypoint cycle. -Change waypoint compbat mode to "COMBAT" -Added Group Waypoint Monitor that deals with the case wherein a group gets 'stuck' in a search and destroy waypoint without any nearby targets. -Updated spawnMarker.sqf in the debug folder (mission.pbo) to reduce unneeded logging. - -3/12/17 Version 6.57 Build 40 Reworked AI Event handlers -Added an event handler to make AI more responsive. -Revised logic for informing AI of the location of players to give AI a more gradual ramp up from little knowledge about player location to full knowledge. - -2/24/17 Version 6.56 Build 39. Reworked Mission End Criteria and timing of loading of loot chests -Added a check so that mission completion by players near loot crates was tripped only when players were on foot. -Added a setting that determines whether loot crates are loaded when the mission spawns or once the mission is complete. - see blck_loadCratesTiming = "atMissionCompletion"; (line 78) for this configuration setting. - -1/28/17 Version 6.55 Build 38 Bug Fixes -bug fixes -Commented out logging that is no longer needed -Removed a weapon from loot tables that could be used for dupping. - -1/24/17 Version 6.55 Build 35 Improved handling of static weapons with dead AI; added option to delete loot chests at some time after mission completion. -Added a new configuration blck_killEmptyStaticWeapons which determines if static weapons shoudl be disabled after the AI is killed. -Added a configuration blck_cleanUpLootChests that determines if loot crates are deleted when other mission objects are deleted. -Fixed an issue that prevented proper deletion of mission objects and live AI. - -1/23/17 Version 6.54 Build 33 Bug Fixes -Fixed typos in GMS_fnc_vehicleMonitor.sqf -Removed a few files that are not used or needed. -Removed some code that had been commented out from blck_functions.sqf. - -1/22/17 Version 6.54 build 32 Primarily performance-oriented improvements to switch from using timers and .sqf to a 'thread' that scans various arrays related to missions and mission objects using pre-compiled functions. -Changed code to test for conditions that trigger to spawn mission objects and AI completely -Rewrote the code for spawning emplaced weapons from scratch. -Fixed an error in how the waitTime till a mission was respawned after being updated to inactive status. -Added additional reporting as to the mission type for which AI, statics and vehicle patrols are being spawned. -Continued switching from blck_debugOn to blck_debugLevel. -Continued work to move much of the code from GMS_fnc_missionSpawner to precompiled functions. - - tested and working for all but the emplaced weapons module. -Removed old code that had been commented out from GMS_missionSpawner. -deactivated the 'fired' event handler -added an 'reloaded' event handler to units that adds a magazin of the type used to reload the weapon to prevent units running out of ammo. this also provides a break in firing and is more realistic. -Added a check to GMS_fnc_vehicleMonitor that addes ammo to vehicle cargo when stores are low. Removed the infinite ammo script for static and vehicle weapons, again for greater realism. -Increased number of rounds of ammo added to AI units for primary and secondary weapons. -Tweaked code in GMS_fnc_spawnUnit to increase efficiency. -Attempted a fix for occaisional issues with missions not triggering or ending by changing from distance to distance2D. -Tweaked code for deleting dead AI to also delete any weapons containers nearby. -Checked throughout for potential scope issues; ensured all private variables were declared as such. -Changed the method by which mission patrol vehicles and static weapons are deleted at the end of a mission. - -1/21/17 Build 29. Reverted to an older system for mission timers. -Went back to the timerless system for spawning missions. -Improved code for updating the array of pending/active missions - GMS_fnc_updateMissionQue.sqf re-written to take greater advantage of existing array commands: set and find. -Ensured that the array used to store the location(s) of active or recent missions is properly updated. - -1/13/17 Version 6.54 Build 27 -Rerverted back to the code that spawned a single instance of each mission until I can debug certain issues. - -1/7/17 Version 6.53 Build 24 AI difficulty updates; some performance improvements. -Added a setting blck_baseSkill = 0.7; // This defines the base skil of AI. Increase it to make AI more challenging. -Tweaked AI difficulty settings to make missions more difficult. -changed - GMS_EH_unitKilled - the event handler now uses precompiled rather than compiled on the fly code. -changed - several other minor performance tweaks were made server side. -changed - small changes were made the the loop in blck_client.sqf -Tweaked debugging information to reduced unnecessary logging when not in debug-mode. -Disabled the loop sending server fps client-side -fixed - GMS_fnc_updateMissionQue was not correctly updating mission information after mission completion. -fixed - GMS_fnc_mainThread was not deleted old AI and Vehicles from the arrays used to capture them after mission completion. -changed - calls to GMS_fnc_vehicleMonitor were moved inside the main loop. - -1/3/17 Version 6.51 Build 23 Added several new kinds of messaging to the UI. -Moved configuration for the client from debug\blckclient.sqf to debug\blckconfig.sqf. -Added a setting blck_useKillMessages = true/false; (line 60 of the config. when true, kill messages will be send to all players when a player kills an AI. The style of the message is controlled client-side (debug\blck_config.sqf) -Added a setting blck_useKillScoreMessage = true/false; // (line 61 of the config) when true a tile is displayed to the killer with the kill score information -Added a setting blck_useIEDMessages = true/false; // when true players will receive a message that their vehicle was damaged when AI are killed in a forbidden way (Run over Or Killed with vehicle-mounted weapons) -Fixed: Messages that a nearby IED was detonated are now properly displayed when players illegally kill AI. -Added a way to easily include / exclude APEX items. To exclude them comment out the line - #define useAPEX 1 - at approximately line 219 in the config. - -12/21/16 Version 6.50 Build 21 Added checks that delete empty groups. -Added a check for mod type to the routine that deletes empty groups as this is only needed for Epoch. -Added back the code that (a) eliminates the mission timers and (b) allows multiple instances of a mission to be spawned. - -12/20/16 Version 6.46 Buid 20 Tweaks to time acceleration module. -Moved Variables for time acceleration to the config files. -Reworked code for time acceleration to use timeDay and BIS_fnc_sunriseSunsetTime. - -11/20/16 Build 6.45 Build 19 UI-related additions and bug fixes. -Added Option to display mission information in Toasts (Exile Only). -Fixed an issue related to bugs in Arma 1.66 - -11/16/16 Version 6.44 Build 15 Added options for automated generation of location blacklists; added APEX gear; tweaks to the code that loads items into crates. -Added parameters - blck_blacklistTraderCities=true; // the locations of the Epoch/Exile trader cities will be pulled from the config and added to the location blacklist for the mission system. - blcklistConcreteMixerZones = true; // Locations of the concrete mixers will be pulled from the configs; no missions will be spawned within 1000 m of these locations. - blck_blacklistSpawns = true; // Locations of Exile spawns will be pulled from the config. No missions will spawn within 1000 m of these locations. -Added: the main thread now runs a function that checks for empty groups. -Fixed: The mission system would hang on epoch after a while because createGroup returned nullGroup. this appeared to occur because the maximum number of active groups had been reached. Deleting empty groups periodically solved the issue on a test machine. -Teaked: code to check whether a possible mission spawn location is near a flag or plot pole. Still needs work. -Added: Completed adding EDEN weapons, optics, bipods, optics to AI configurations and mission loot crates. -Added APEX headgear and uniforms. (Note, you would need to add any of these you wished for players to sell to Epoch\\epoch_config\CfgPricing.hpp on Epoch) -Changed: Definitions of blacklist locations such as spawns moved from GMS_findWorld.sqf to the blck_configs_(epoch|exile). -Changed: Divided rifles and optics into subcategories to better enable assigning weapons to AI difficulties in a sort of class-based way, e.g., 556, 6.5, or LMG are separate classes. -Changed: DLS crate loader (not publically available yet) now uses blck_fnc_loadLootItemsFromArray rather than the prior approach for which specific crate loading functions were called depending on the loadout type (weapons, building supplies, foord etc). -Fixed: You can now loot AI bodies in Epoch. - -11/12/16 Version 6.43 Build 12 Added MAP ADDONS and Loot Crate Spawners. -Added: MapAddons - use this to spawn AI strongholds or other compositions you generate with Eden editor at server startup. -Added: Loot Crate Spawner - Spawn loot crates at prespecified points. This is designed so that you can spawn crates inside buildings or other structures spawned through the map-addons. -Added: APEX weapons, sights and optics to AI and loot crates. - -11/12/16 Version 6.42 Build 11 Added code to fit weapons attachments. -Enhancements to code to equip weapons; pointrs, silencers and bipods are now attached. - -11/11/16 Version 6.42 build 10 Added code to fit weapons attachments. Improved code to spawn mission objects. -Redid the code that spawns the objects at missions to work properly with the new formats generated by M3Arma EDEN Editor whilc being backwards compatible with older formats used in the existing missions. -Added code to add scopes and other attachments to AI weapons. -Added new variable blck_blacklistedOptics which you can use to block spawning optics like TMS. -Added new parameter blck_removeNVG which when true will cause NVG to be deleted from AI bodies. -Fixed: launchers and rounds should now be deleted when blck_removeLaunchers = true; -Fixed: All AI should spawn with a uniform. -More bug fixes and correction of typos. - -11/2/16 Version 6.41 Build 9 Kill message improvements; added money to AI. -Added a parameter blck_useKilledAIName that, when true, changes the kill messages to show player name and AI unit name -Added message to players for killstreaks and a crypto/Tabs bonus for killstreaks. -Exile: AI spawn with a few tabs. -//Epoch: AI spawn with a few Crypto -Corrected an error that would spawn Epoch NVG on AI in Exile. - -10/25/16 Version 6.4 Build 8 Code improvements. -Reworked the code to spawn vehicle patrols and static weapons and clean them up. -Reworked the code that messages players to be sure that calling titleText does not hang the messaging function and delay hints or system chat notifications. - -10/22/16 v 6.3 Build 8-14-16 Code performance improvements. -Moved routines that delete dead AI, Alive AI and mission objects from individual loops to a single loop spawned by blck_init.sqf. -Added functions to cache these data with time stamps for later time-based deletion. - -10/21/16 Version 6.2 Build 7 Coding improvements -Redid system for markers which are now defined in the mission template reducing dependence on client side configurations for each mission or marker type. -Bug-fixes for helicrashes including ensuring that live AI are despawned after a certain time. - -10-1-16 Version 6.1.4 Build 6 Added a time acceleration function -1) Added back the time acceleration module - -9-25-16 Version 6.1.4 Build 6 bug fixes; added metadata. -1) Added metadata for Australia 5.0.1 -2) Fixed bugs with the IED notifications used when a player is penalized for illeagal AI Kills. _fnc_processIlegalKills (server side) and blckClient (client side) reworked. _this select 0 etc was replaced with params[] throughout. Many minor errors were corrected. - -9/24/16 Version 6.1.3 Build 5 Code optimization -1) Re-wrote the SLS crate spawning code which now relies on functions for crate spawning and generating a smoke source already used by the mission system. Replaced old functions with newer ones (e.g., params[] and selectRandom). Found a few bugs. Broke the script up into several discrete functions. Tested on Exile and Epoch, -2) Reworked the code for generating a smoke source. Added additional options with defaults set using params[]. - -9-19-16 Ver 6.1.2/11/16 Bug fixes. -Minor bug fixes to support Exile. -Corrected errors with scout and hunter missions trying to spawn using Epoch headgear. -Corrected error wherein AI were spawned as Epoch soldiers -Inactivated a call to an exile function that had no value - -9-15-16 vER 6.1.1 Bug fixes. -1) Reverted to the old spawnUnits routine because the new one was not spawning AI at Scouts and Hunters correctly. - -9-13-16 Ver 6.10 Improved vehicle patrols. -1) Added waypoints for spawned AI Vehicles. -2) Reworked the logic for generating the positions of these waypoints -3) Added loiter waypoints in addition to move wayponts. -4) Reworked the param/params for spawnUnits -5) several other minor optimizations. - -9-3-16 Ver 6.0 -1) Re-did the custom_server folder so the mod automatically starts. Blck_client.sqf no longer calls the mod from the server. -2) Added a variable blck_modType which presently can be either "Epoch" or "Exile" with the aim of having a single mission system for both mods. -3) Added a more intelligent method for loading key components (variables, functions, and map-specific parameters). -4) Re-did all code to automatically select correct parameters to run correctly on either exile or epoch servers. -5) Added the Exile Static Loot Crate Spawner; Re-did this to load either an exile or epoch version as needed since a lot of the variables and also the locations tables are unique. -6) Added the Dynamic Loot system from Exile again with Exile and Epoch specific configurations; here the difference is only in the location tables. -7) Pulled the map addons function from the Exile build and added a functionality to spawn addons appropriately for map and mod type. -8) Helicrashes redone to provide more variability in the types of wrecks, loot and challenge. These are spawned by a new file Crashes2.sqf -9) Added a setting to determine the number of crash sites spawned at any one time: blck_maxCrashSites. Set to -1 to disable altogether. -10) Added settings to enable / disable specific mission classes, e.g., blck_enableOrangeMissions. Set to 1 to enable, -1 to disable. - -8-14-16 -Added mission timout feature, set blck_MissionTimeout = -1 to disble; -Changed to use of params for all .sqf which also eliminated calls to BIS_fnc_params -changed to selectRandom for all .sqf - -some changes to client side functions to eliminate the public variable event handler (credits to IT07 for showing the way) -Added the armed powerler to the list of default mission vehicles. - -2/28/16 -1) Bug fixes completed. Cleanup of bodies is now properly separated from cleanup of live AI. Cleanup of vehicles with live AI is now working correctly. -2) Released to servers this morning. -3) Next step will be to add in the heli reinforcements for ver 5.2. - -2/20/16 -Bugfixes and enhancements. -1) added checks for nearby bases or nearby players when spawning missions. -2) Fixed typos in Medical Camp missions. -3) Added two new modes for completing mission: 1) mission is complete when all AI are killed; 2) mission is complete when player reaches the crate OR when all AI are killed. - -In Progress -1) Mission timouts -2) Added optional reinforcments via helicopters which can then patrol the mission area. - -2/11/16 -Major Update to Build 5.0 - -1) All missions but heli crashes are spawned using a single mission timer and mission spawner -2) The mission timer now calles a file containing the mission parameters. The mission spawner is included and run from that file. -3) A kill feed was added reporting each AI kill. -4) AI kills are now handled via an event handler run on the server for forward compatability with headless clients. -5) Multiple minor errors and bug fixes related to mission difficulty, AI loadouts, loot and other parameters were included. -6) The first phase of restructuring of the file structure has been completed. Most code for functions and units has been moved to a compiles directory in Compiles\Units and Compiles\Functions. -7) Some directionality and randomness was added where mission objects are spawned at random locations from an array of objects to give the missions more of a feeling of a perimeter defense where H-barrier and other objects were added. -8) As part of the restructuing, variables were moved from AIFunctions to a separate file. -9) Bugs in routines for cleanup of dead and live AI were fixed. A much simpler system for tracking live AI, dead AI, locations of active and recent missions, was implemented because of the centralization of the mission spawning to a single script diff --git a/@GMS/addons/custom_server/init/GMS_fnc_findWorld.sqf b/@GMS/addons/custom_server/init/GMS_fnc_findWorld.sqf index 9f5615a..ea86e51 100644 --- a/@GMS/addons/custom_server/init/GMS_fnc_findWorld.sqf +++ b/@GMS/addons/custom_server/init/GMS_fnc_findWorld.sqf @@ -15,57 +15,22 @@ 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"; - blck_mapCenter = [12000,10000,0]; - blck_mapRange = 25000; - }; - case "stratis":{ - diag_log "[blckeagls] Stratis-specific settings loaded"; - blck_mapCenter = [3900,4500,0]; - blck_mapRange = 4500; - }; - case "tanoa":{ - blck_mapCenter = [9000,9000,0]; - blck_mapRange = 10000; - }; - case "malden":{ - blck_mapCenter = [6000,7000,0]; - blck_mapRange = 6000; - }; - case "livonia":{ - blck_mapCenter = [6500,6500,0]; - blck_mapRange = 6100; - }; - case "gm_weferlingen_summer":{ - blck_mapCenter = [10000,10000,0]; - blck_mapRange = 10000; - }; - case "chernarus":{ - diag_log "[blckeagls] Chernarus-specific settings loaded"; - blck_mapCenter = [7100, 7750, 0]; - blck_mapRange = 5300; - }; - case "namalsk":{ - blck_mapCenter = [5700, 8700, 0]; - blck_mapRange = 10000; - }; + case "altis":{blck_mapCenter = [12000,10000,0]; blck_mapRange = 25000;}; + case "stratis":{blck_mapCenter = [3900,4500,0]; blck_mapRange = 4500;}; + case "tanoa":{blck_mapCenter = [9000,9000,0]; blck_mapRange = 10000;}; + case "malden":{ blck_mapCenter = [6000,7000,0]; blck_mapRange = 6000;}; + case "enoch":{blck_mapCenter = [6500,6000,0]; blck_mapRange = 5800;}; + case "gm_weferlingen_summer":{blck_mapCenter = [10000,10000,0]; blck_mapRange = 10000;}; + case "gm_weferlingen_winter":{blck_mapCenter = [10000,10000,0]; blck_mapRange = 10000;}; + case "chernarus":{blck_mapCenter = [7100, 7750, 0]; blck_mapRange = 5300;}; + case "namalsk":{blck_mapCenter = [5700, 8700, 0]; blck_mapRange = 10000;}; case "chernarus_summer":{blck_mapCenter = [7100, 7750, 0]; blck_mapRange = 6000;}; - case "bornholm":{ - blck_mapCenter = [11240, 11292, 0]; - blck_mapRange = 14400; - }; - case "esseker":{ - diag_log "Esseker-specific settings loaded"; - blck_mapCenter = [6049.26,6239.63,0]; //centerPosition = {7100, 7750, 300}; - blck_mapRange = 6000; - }; + case "chernarus_winter":{blck_mapCenter = [7100, 7750, 0]; blck_mapRange = 6000;}; + case "cup_chernarus_a3":{blck_mapCenter = [7100, 7750, 0]; blck_mapRange = 6000;}; + case "bornholm":{blck_mapCenter = [11240, 11292, 0];blck_mapRange = 14400;}; + case "esseker":{blck_mapCenter = [6049.26,6239.63,0]; blck_mapRange = 6000;}; case "taviana":{blck_mapCenter = [10370, 11510, 0];blck_mapRange = 14400;}; - - case "napf": { - blck_mapCenter = [10240,10240,0]; - blck_mapRange = 14000; - }; + case "napf": {blck_mapCenter = [10240,10240,0]; blck_mapRange = 14000;}; case "australia": {blck_mapCenter = [20480,20480, 150];blck_mapRange = 40960;}; case "panthera3":{blck_mapCenter = [4400, 4400, 0];blck_mapRange = 4400;}; case "isladuala":{blck_mapCenter = [4400, 4400, 0];blck_mapRange = 4400;}; diff --git a/@GMS/addons/custom_server/init/GMS_fnc_getTraderCites.sqf b/@GMS/addons/custom_server/init/GMS_fnc_getTraderCites.sqf index d019e5b..72f7a2a 100644 --- a/@GMS/addons/custom_server/init/GMS_fnc_getTraderCites.sqf +++ b/@GMS/addons/custom_server/init/GMS_fnc_getTraderCites.sqf @@ -1,4 +1,3 @@ -// pull trader cities from config /* By Ghostrider [GRG] -------------------------- @@ -16,7 +15,6 @@ if ((tolower blck_modType) isEqualTo "epoch") then private _config = configFile >> "CfgEpoch"; private _configWorld = _config >> worldname; private _telePos = getArray(configFile >> "CfgEpoch" >> worldName >> "telePos" ); - diag_log format["_fnc_getTraderCities: _telePos = %1",_telePos]; { blck_locationBlackList pushback [_x select 3, 1000]; } foreach _telePos; diff --git a/@GMS/addons/custom_server/init/blck_init_HC.sqf b/@GMS/addons/custom_server/init/blck_init_HC.sqf index 8cc671f..3302e53 100644 --- a/@GMS/addons/custom_server/init/blck_init_HC.sqf +++ b/@GMS/addons/custom_server/init/blck_init_HC.sqf @@ -15,10 +15,7 @@ if (hasInterface || isServer) exitWith{}; if !(isNil "blck_Initialized") exitWith{}; private _blck_loadingStartTime = diag_tickTime; #include "\q\addons\custom_server\init\build.sqf"; -//call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_variables.sqf"; call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_functions_HC.sqf"; -//call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_configs.sqf"; -//call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Configs\blck_custom_config.sqf"; diag_log format["[blckeagls] Loading Headless Client Version %2 | Build Date %1 | Build %3 | loaded in %4 seconds",blck_buildDate,blck_versionNumber,blck_buildNumber,diag_tickTime - _blck_loadingStartTime]; while {true} do { diff --git a/@GMS/addons/custom_server/init/blck_init_server.sqf b/@GMS/addons/custom_server/init/blck_init_server.sqf index 30927f8..50d8bd1 100644 --- a/@GMS/addons/custom_server/init/blck_init_server.sqf +++ b/@GMS/addons/custom_server/init/blck_init_server.sqf @@ -11,66 +11,58 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -diag_log format["[blckeagls] blck_init_server started"]; +/////////////////////////////////////////////// +// prevent the system from being started twice +////////////////////////////////////////////// +if !(isNil "blck_missionSystemRunning") exitWith {}; +blck_missionSystemRunning = true; // Only run this on a dedicated server if ( !(isServer) || hasInterface) exitWith{}; -// Only run this once -if !(isNil "blck_Initialized") exitWith{}; - -// This is just a flag so we know if blckeagls has been started or not. -blck_Initialized = true; - // find and set Mod blck_modType = ""; if (!isNull (configFile >> "CfgPatches" >> "exile_server")) then {blck_modType = "Exile"}; if (!isnull (configFile >> "CfgPatches" >> "a3_epoch_server")) then {blck_modType = "Epoch"}; if (!(blck_modType in ["Exile","Epoch"] )) then {blck_modType = "default"}; -diag_log format["[blckeagls] blck_modType = %1",blck_modtype]; publicVariable "blck_modType"; + +// Just some housekeeping for ghost. +private _blck_loadingStartTime = diag_tickTime; +#include "\q\addons\custom_server\init\build.sqf"; + +// compile functions +[] call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_functions.sqf"; + +// Load Configs +[] call compile preprocessfilelinenumbers "\q\addons\custom_server\Configs\blck_configs.sqf"; +waitUntil{(!isNil "blck_useHC") && (!isNil "blck_simulationManager") && (!isNil "blck_debugOn") && (!isNil "blck_AI_Side")}; +if (blck_debugOn) then {diag_log format["[blckeagls] blck_AI_Side = %1",blck_AI_Side]}; + // This block waits for the mod to start but is disabled for now if ((tolower blck_modType) isEqualto "epoch") then { diag_log "[blckeagls] Waiting until EpochMod is ready..."; - //waituntil {!isnil "EPOCH_SERVER_READY"}; + if !(blck_debugOn) then {waitUntil {!isnil "EPOCH_SERVER_READY"}}; diag_log "[blckeagls] EpochMod is ready...loading blckeagls"; }; if ((toLower blck_modType) isEqualTo "exile") then { diag_log "[blckeagls] Waiting until ExileMod is ready ..."; - //waitUntil {!PublicServerIsLoaded}; + if !(blck_debugOn) then {waitUntil {!isNil "PublicServerIsLoaded"}}; diag_log "[blckeagls] Exilemod is ready...loading blckeagls"; }; if ((toLower blck_modType) isEqualTo "default") then { diag_log "[blckeagls] Configuring Mission System for Default Settings..."; }; -// Just some housekeeping for ghost. -private _blck_loadingStartTime = diag_tickTime; -#include "\q\addons\custom_server\init\build.sqf"; -//diag_log format["[blckeagls] build information loaded at %1",diag_tickTime]; - - -// compile functions -[] call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_functions.sqf"; -//diag_log format["[blckeagls] functions compiled at %1",diag_tickTime]; - - -[] call compile preprocessfilelinenumbers "\q\addons\custom_server\Configs\blck_configs.sqf"; -if (blck_debugOn) then {diag_log format["[blckeagls] blck_configs.sqf run at %1",diag_tickTime]}; -waitUntil{(!isNil "blck_useHC") && (!isNil "blck_simulationManager") && (!isNil "blck_debugOn") && (!isNil "blck_AI_Side")}; -uiSleep 10; -if (blck_debugOn) then {diag_log format["[blckeagls] blck_AI_Side = %1",blck_AI_Side]}; // Load any user-defined specifications or overrides +// HINT: Use these for map-specific settings #include "\q\addons\custom_server\Configs\blck_custom_config.sqf"; -diag_log format["[blckeagls] Custom Configurations Loaded at %1",diag_tickTime]; -diag_log format["[blckeagls] debug mode settings:blck_debugON = %1 | blck_debugLevel = %2",blck_debugON,blck_debugLevel]; -// blck_customConfigsLoaded -diag_log format["[blckeagls] blck_customConfigsLoaded = %1",if(isNil "blck_customConfigsLoaded") then {"nil"} else {blck_customConfigsLoaded}]; -//diag_log format["[blckeagls] blck_CUPWeapons = %1",if(isNil "blck_CUPWeapons") then {"nil"} else {blck_CUPWeapons}]; +if (blck_debugOn) then {diag_log format["[blckeagls] Custom Configurations Loaded at %1",diag_tickTime]}; +if (blck_debugOn) then {diag_log format["[blckeagls] debug mode settings:blck_debugON = %1 | blck_debugLevel = %2",blck_debugON,blck_debugLevel]}; // Load vaariables used to store information for the mission system. [] call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\Compiles\blck_variables.sqf"; @@ -88,7 +80,7 @@ if (blck_spawnMapAddons) then { call compileFinal preprocessFileLineNumbers "\q\addons\custom_server\MapAddons\MapAddons_init.sqf"; }else{ - diag_log "[blckeagls] Map Addons disabled"; + ["Map Addons disabled"] call blck_fnc_log; }; // find and set Mapcenter and size @@ -98,35 +90,34 @@ if (blck_debugOn) then {diag_log "[blckeagls] Map-specific information defined"} // set up the lists of available missions for each mission category #include "\q\addons\custom_server\Missions\GMS_missionLists.sqf"; if (blck_debugOn) then {diag_log "[blckeagls] Mission Lists Loaded Successfully"}; - 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."; +if (blck_debugOn) then {diag_log "[blckeagls] blck_init_server: ->> Static and UMS systems initialized."}; switch (blck_simulationManager) do { - case 2: {diag_log "[blckeagls] dynamic simulation manager enabled"}; - case 1: {diag_log "[blckeagls] blckeagls simulation manager enabled"}; - case 0: {diag_log "[blckeagls] simulation management disabled"}; + case 2: {["dynamic simulation manager enabled"] call blck_fnc_log}; + case 1: {["blckeagls simulation manager enabled"] call blck_fnc_log}; + case 0: {["[blckeagls] simulation management disabled"] call blck_fnc_log}; }; -diag_log format["[blckeagls] version %1 Build %2 Loaded in %3 seconds",blck_versionNumber,blck_buildNumber,diag_tickTime - _blck_loadingStartTime]; //,blck_modType]; -diag_log format["[blckeagls] waiting for players to join ---- >>>>"]; +[format["Version %1 Build %2 Loaded in %3 seconds",blck_versionNumber,blck_buildNumber,diag_tickTime - _blck_loadingStartTime]] call blck_fnc_log; +[format["Waiting for players to join ---- >>>>"]] call blck_fnc_log; if ( !(blck_debugON) && (blck_debugLevel isEqualTo 0)) then { waitUntil{{isPlayer _x}count allPlayers > 0}; - diag_log "[blckeagls] Player Connected, spawning missions"; + ["]Player Connected, spawning missions"] call blck_fnc_log; } else { - diag_log "[blckeagls] Debug mode ON, proceding without players"; + ["Debug mode ON, proceding without players"] call blck_fnc_log; }; if (blck_spawnStaticLootCrates) then { [] spawn compile preprocessfilelinenumbers "\q\addons\custom_server\SLS\SLS_init.sqf"; - diag_log "[blckeagls] SLS:: -- >> Static Loot Spawner Done"; + ["SLS:: -- >> Static Loot Spawner Done"] call blck_fnc_log; }else{ - diag_log "[blckeagls] SLS:: -- >> Static Loot Spawner disabled"; + ["SLS:: -- >> Static Loot Spawner disabled"] call blck_fnc_log; }; if (blck_blacklistTraderCities) then @@ -139,7 +130,7 @@ if (blck_ai_offload_to_client) then if (blck_useHC) then { blck_useHC = false; - diag_log "[blckeagls] blck_useHC has been diabled to allow offloading to clients"; + ["blck_useHC has been diabled to allow offloading to clients",'warning'] call blck_fnc_log; }; // Broadcast some code to clients publicVariable "blck_fnc_setNextWaypoint"; @@ -162,6 +153,8 @@ _fn_setupLocationType = { _locations }; +if (isNil "blck_crateMoveAllowed") then {blck_crateMoveAllowed = false}; + private _villages = ["NameVillage"] call _fn_setupLocationType; private _cites = ["NameCity"] call _fn_setupLocationType; private _capitals = ["NameCityCapital"] call _fn_setupLocationType; @@ -174,29 +167,27 @@ blck_townLocations = _villages + _cites + _capitals + _marine + _other + _airpor blck_locationBlackList pushBack [locationPosition _x, blck_minDistanceFromTowns]; } forEach blck_townLocations; - //Start the mission timers if (blck_enableOrangeMissions > 0) then { - [_missionListOrange,_pathOrange,"OrangeMarker","orange",blck_TMin_Orange,blck_TMax_Orange,blck_enableOrangeMissions] call blck_fnc_addMissionToQue; }; if (blck_enableGreenMissions > 0) then { - [_missionListGreen,_pathGreen,"GreenMarker","green",blck_TMin_Green,blck_TMax_Green,blck_enableGreenMissions] call blck_fnc_addMissionToQue; }; if (blck_enableRedMissions > 0) then { - [_missionListRed,_pathRed,"RedMarker","red",blck_TMin_Red,blck_TMax_Red,blck_enableRedMissions] call blck_fnc_addMissionToQue; }; if (blck_enableBlueMissions > 0) then { - [_missionListBlue,_pathBlue,"BlueMarker","blue",blck_TMin_Blue,blck_TMax_Blue,blck_enableBlueMissions] call blck_fnc_addMissionToQue; }; - +if (blck_numberUnderwaterDynamicMissions > 0) then +{ + [_missionListUMS,_pathUMS,"UMSMarker","Red",blck_TMin_UMS,blck_TMax_UMS,blck_numberUnderwaterDynamicMissions] call blck_fnc_addMissionToQue; +}; // Setup a group for AI corpses @@ -208,22 +199,5 @@ blck_graveyardGroup setVariable ["blck_group",1]; [] spawn blck_fnc_mainThread; blck_pvs_version = blck_versionNumber; publicVariable "blck_pvs_version"; -diag_log format["[blckeagls] version %1 Build %2 Date %4 Loaded in %3 seconds",blck_versionNumber,blck_buildNumber,diag_tickTime - _blck_loadingStartTime,blck_buildDate]; //,blck_modType]; - -/* -if (blck_debugOn || (blck_debugLevel >= 1)) then -{ - private _pos = [] call blck_fnc_findSafePosn; - private _root = ""; - private _path = "Orange"; - private _mission = "officeComplex"; //"bunkerMission"; - private _compiledMission = compilefinal preprocessFileLineNumbers format["\q\addons\custom_server\Missions\%1\%2.sqf",_path,_mission]; - diag_log format["[blckeagls] mission test sequence run for mission path %1 name %2",_path,_mission]; - [_pos,"testMarkerGRG","blue"] spawn _compiledMission; - diag_log format["testmarker mission spawned at %1",diag_tickTime]; - { - diag_log format["> "CfgBlck3DEN" >> "configs" >> "defaultMissionDifficulty")]; +diag_log format["Initilization: blck_difficulty set to %1",blck_difficulty]; +missionNamespace setVariable["blck_lootTiming",getText(configFile >> "CfgBlck3DEN" >> "configs" >> "defaultLootcrateSpawnTiming")]; +missionNamespace setVariable["blck_loadTiming",getText(configFile >> "CfgBlck3DEN" >> "configs" >> "defaultLootcrateLoadTiming")]; +missionNamespace setVariable["blck_endState",getText(configFile >> "CfgBlck3DEN" >> "configs" >> "defaultMissionEndState")]; +missionNamespace setVariable["blck_startMessage","TODO: Add a start message"]; +missionNamespace setVariable["blck_endMessage","TODO: Add an end message"]; +missionNamespace setVariable["blck_missionLocations","random"]; + +diag_log format["Mission Attributes Initialized for blckeagls at time %1",diag_tickTime]; \ No newline at end of file diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_isInfantry.sqf b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_isInfantry.sqf new file mode 100644 index 0000000..72bf045 --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_isInfantry.sqf @@ -0,0 +1,12 @@ + +/* + blckeagls 3EDEN Editor Plugin + by Ghostrider-GRG- + Copyright 2020 + +*/ + + private _u = _this select 0; + private _isInfantry = if ((_u isKindOf "Man") && (vehicle _u) isEqualTo _u) then {true} else {false}; + //diag_log format["_fn_isInfantry: _isInfantry = %1",_isInfantry]; + _isInfantry \ No newline at end of file diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_isInside.sqf b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_isInside.sqf new file mode 100644 index 0000000..40594cc --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_isInside.sqf @@ -0,0 +1,38 @@ +/* + blckeagls 3EDEN Editor Plugin + by Ghostrider-GRG- + Copyright 2020 + +*/ + +params["_u",["_category","House"]]; + +private _pos = getPosASL _u; +private _above = lineIntersects [_pos, [_pos select 0, _pos select 1, (_pos select 2) + 100],_u]; +private _below = lineintersects [_pos, [_pos select 0, _pos select 1, (_pos select 2) - 2],_u]; +//diag_log format["_fn_isInside: _u %1 | _category = %5 | typeOf _u %4 | _above %2 | _below %3 ",_u,_above,_below,typeOf _u, _category]; + +// If there is something above or below the object do a quick double-check to make sure there is a building there and not something else. +if (_above) then // test if any surfaces above are from buildingPos +{ + private _surfacesAbove = lineInterSectsSurfaces [_pos, [_pos select 0, _pos select 1, (_pos select 2) + 100],_u,_u,true,100]; + _above = false; + { + //diag_log format["_fn_isInside: _x = %2 | typeOf _x = %3",_x,_x select 2,typeOf (_x select 2)]; + if ((_x select 2) isKindOf _category) then {_above = true}; + }forEach _surfacesAbove; +}; + +if (_below) then +{ + private _surfacesBelow = lineInterSectsSurfaces [_pos, [_pos select 0, _pos select 1, (_pos select 2) - 10],_u,_u,true,100]; + _above = false; + { + //diag_log format["_fn_isInside: _x = %2 | typeOf _x = %3",_x,_x select 2,typeOf (_x select 2)]; + if ((_x select 2) isKindOf _category) then {_above = true}; + }forEach _surfacesBelow; +}; + +private _isInside = if (_above || _below) then {true} else {false}; +//diag_log format["_fn_isInside: _isInside = %1",_isInside]; +_isInside \ No newline at end of file diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_loadCratesTiming.sqf b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_loadCratesTiming.sqf new file mode 100644 index 0000000..7ebc4f3 --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_loadCratesTiming.sqf @@ -0,0 +1,9 @@ +/* + blckeagls 3EDEN Editor Plugin + by Ghostrider-GRG- + Copyright 2020 + +*/ +params["_timing"]; +missionNamespace setVariable["blck_loadTiming",_timing]; +systemChat format["Mission Load Crates Timing set to %1",_timing]; \ No newline at end of file diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_setCompletionMode.sqf b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_setCompletionMode.sqf new file mode 100644 index 0000000..e9517db --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_setCompletionMode.sqf @@ -0,0 +1,10 @@ +/* + blckeagls 3EDEN Editor Plugin + by Ghostrider-GRG- + Copyright 2020 + +*/ + +params["_mode"]; +missionNamespace setVariable["blck_endState",_mode]; +systemChat format["Mission End State updated to %1",_mode]; \ No newline at end of file diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_setDifficulty.sqf b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_setDifficulty.sqf new file mode 100644 index 0000000..f2313cc --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_setDifficulty.sqf @@ -0,0 +1,13 @@ +/* + blckeagls 3EDEN Editor Plugin + by Ghostrider-GRG- + Copyright 2020 + +*/ + +params["_difficulty"]; +missionNamespace setVariable["blck_difficulty",_difficulty]; +private _m = format["Mission Difficulty updated to %1",_difficulty]; +systemChat _m; +diag_log _m; + diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_setGarrison.sqf b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_setGarrison.sqf new file mode 100644 index 0000000..268fb11 --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_setGarrison.sqf @@ -0,0 +1,26 @@ + + +params["_state"]; +private _objects = get3DENSelected "object" select {(typeOf _x) isKindOf "House"}; +if (_objects isEqualTo []) exitWith +{ + _m = "Select one or more buildings to configure"; + systemChat _m; +}; + +{ + if ([_x] call BIS_fnc_isBuildingEnterable) then + { + _x setVariable["garrisoned",_state]; + _m = format["building of type %1 had garrison state set to %2",typeOf _x,_state]; + systemChat _m; + diag_log _m; + } else { + _m = format["Object type %1 ignored: only enterable buildings can be garrisoned",typeOf _x]; + systemChat _x; + diag_log _x; + }; + +} forEach _objects; +_m = format["Garrison State of %1 buildings updated to %2",count _objects,_state]; +systemChat _m; \ No newline at end of file diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_setLootVehicle.sqf b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_setLootVehicle.sqf new file mode 100644 index 0000000..27f574a --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_setLootVehicle.sqf @@ -0,0 +1,22 @@ +params["_state"]; +private _objects = get3DENSelected "object" select {(typeOf _x) isKindOf "Car"}; +if (_objects isEqualTo []) exitWith +{ + _m = "Select one or more vehicles to configure"; + systemChat _m; +}; +{ + if ((typeOf _x) isKindOf "Car") then + { + _x setVariable["lootvehicle",_state]; + _m = format["Vehicle type %1 set to Loot Vehilce = %1",typeOf _x,_state]; + systemChat _m; + diag_log _m; + } else { + _m = format["Object with type %1 ignored:: only objects of type Car can be used as loot vehicles",typeOf _x]; + diag_log _m; + systemChat _m; + }; +} forEach _objects; +_m = format["Loot Vehicle State of %1 vehicles updated to %2",count _objects,_state]; +systemChat _m; \ No newline at end of file diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_setSpawnLocations.sqf b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_setSpawnLocations.sqf new file mode 100644 index 0000000..42e4a35 --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_setSpawnLocations.sqf @@ -0,0 +1,14 @@ +/* + blckeagls 3EDEN Editor Plugin + by Ghostrider-GRG- + Copyright 2020 + +*/ + +params["_mode"]; +switch (_mode) do +{ + case "random": {missionNamespace setVariable["blck_missionLocations","random"]}; + case "fixed": {missionNamespace setVariable["blck_missionLocations","fixed"]}; +}; +systemChat format["Mission Locations updated to %1",_mode]; \ No newline at end of file diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_spawnCratesTiming.sqf b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_spawnCratesTiming.sqf new file mode 100644 index 0000000..605f472 --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_spawnCratesTiming.sqf @@ -0,0 +1,10 @@ +/* + blckeagls 3EDEN Editor Plugin + by Ghostrider-GRG- + Copyright 2020 + +*/ + +params["_timing"]; +missionNamespace setVariable["blck_lootTiming",_timing]; +systemChat format["Loot Chest Spawn Timing updated to %1",_timing]; \ No newline at end of file diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_startMessage.sqf b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_startMessage.sqf new file mode 100644 index 0000000..207b6d7 --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_startMessage.sqf @@ -0,0 +1,10 @@ +/* + blckeagls 3EDEN Editor Plugin + by Ghostrider-GRG- + Copyright 2020 + +*/ + +params["_start"]; +missionNamespace setVariable["blck_startMessage",_start]; +systemChat format["Start Message set to %1",_start]; \ No newline at end of file diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_updateObjects.sqf b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_updateObjects.sqf new file mode 100644 index 0000000..dbdf17a --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_updateObjects.sqf @@ -0,0 +1,9 @@ + +private _objects = get3DENSelected "object"; +private _markers select {(typeOf _x) = _markerType}; +{ + +}; +_m = "Update Objects Called"; +diag_log _m; +systemChat _m; \ No newline at end of file diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_versionInfo.sqf b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_versionInfo.sqf new file mode 100644 index 0000000..c6e32c1 --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/Core/fn_versionInfo.sqf @@ -0,0 +1,18 @@ +/* + blckeagls 3EDEN Editor Plugin + by Ghostrider-GRG- + Copyright 2020 + +*/ + +params["_mode"]; + +private _header = format["%4Mission.sqf generated:: blckeagls 3DEN Plugin Version %1 : Build %2 : Build Date %3", + getNumber(configFile >> " CfgBlck3DEN" >> "CfgVersion" >> "version"), + getNumber(configFile >> "CfgBlck3DEN" >> "CfgVersion" >> "build"), + getText(configFile >> "CfgBlck3DEN" >> "CfgVersion" >> "date"), + _mode +]; +diag_log _header; +_header + diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/Export/Untitled-1.txt b/@blckeagls_EDEN/addons/3EDEN_plugin/Export/Untitled-1.txt new file mode 100644 index 0000000..d1d19da --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/Export/Untitled-1.txt @@ -0,0 +1,51 @@ + +class CfgVehicles +{ + class Object + { + class AttributeCategories + { + class LandVehicle; + class blckLandVehicle: LandVehicle; + { + class Attributes + { + class blckLootVehicle + { + // https://community.bistudio.com/wiki/Eden_Editor:_Configuring_Attributes#Scenario + displayName = "Loot Vehicle"; + toolTip = "Enable/Disable Use as Loot Vehicle"; + property = "blckLootVehicle"; + control = "Edit"; + expression = "_this setVariable['%s',_value];"; + defaultValue = 'false'; + unique = 0; + validate = "BOOL"; + typeName = "BOOL"; + }; + }; + }; + + class Static; + class blckHouse: Static + { + class Attributes + { + class blckGarison + { + // https://community.bistudio.com/wiki/Eden_Editor:_Configuring_Attributes#Scenario + displayName = "Garison Building"; + toolTip = "Enable/Disable ?Garisoned Building"; + property = "blckGarison"; + control = "Edit"; + expression = "_this setVariable['%s',_value];"; + defaultValue = 'false'; + unique = 0; + validate = "BOOL"; + typeName = "BOOL"; + }; + }; + }; + }; + }; +}; \ No newline at end of file diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/Export/Untitled-2.sqf b/@blckeagls_EDEN/addons/3EDEN_plugin/Export/Untitled-2.sqf new file mode 100644 index 0000000..414642e --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/Export/Untitled-2.sqf @@ -0,0 +1,6 @@ + + +_parameter = 0; +_ok = "Multiplayer" set3DENMissionAttribute ["respawn",15]; +_parameter = "Multiplayer" get3DENMissionAtrribute "respawn"; +systemChat format["_parameter = %1",_parameter]; \ No newline at end of file diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/Export/Untitled-2.txt b/@blckeagls_EDEN/addons/3EDEN_plugin/Export/Untitled-2.txt new file mode 100644 index 0000000..796924f --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/Export/Untitled-2.txt @@ -0,0 +1,129 @@ + + + +/* + Dynamic Mission Generated + Using 3DEN Plugin for blckeagls + dynamicMission.sqf generated:: blckeagls 3DEN Plugin Version 0 : Build 2 : Build Date 08/15/20 + By Ghostrider-GRG- +*/ + +#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\Missions\privateVars.sqf"; + +_defaultMissionLocations = []; +_markerType = ["mil_box",[1,1],""]; +_markerColor = "ColorRed"; +_startMsg = "TODO: Change approiately"; +_endMsg = "TODO: Change Appropriately"; +_markerMissionName = "Stay Away"; +_crateLoot = blck_BoxLoot_Blue; +_lootCounts = blck_lootCountsBlue; + +_garrisonedBuilding_ATLsystem = [ +["Land_Unfinished_Building_01_F",[0,0,0],0,true,true, + [["B_HMG_01_high_F",[-2.19922,0.837891,3.61188],0], + ["B_static_AA_F",[-2.34766,3.85352,6.80866],0]], + [ + [[0.96875,-1.99023,0.27216],0], + [[-3.74219,0.279297,0.136929],0]] + ], +["Land_Unfinished_Building_01_F",[0,0,0],0,true,true,[["B_HMG_01_F",[-1.87305,5.36523,3.86831],0]],[[[-2.46289,-1.18555,3.68233],0],[[-1.72656,3.4668,6.88683],0]]] +]; + +_missionLandscape = [ + ["Land_u_Shed_Ind_F",[-29.123,-8.11914,-33.866],0,true,true], + ["Land_Shed_08_brown_F",[-15.1465,25.9961,-33.871],0,true,true], + ["Land_Shed_02_F",[26.5762,78.6641,-33.8547],0,true,true], + ["Land_Wreck_AFV_Wheeled_01_F",[-5.21289,-20.9434,-33.8297],0,true,true] +]; + +_simpleObjects = [ + +]; + +_missionLootVehicles = [ + +]; + +_missionPatrolVehicles = [ + ["B_Truck_01_mover_F",[24.084,13.5703,-33.8635],0,75,75], + ["B_MRAP_01_hmg_F",[3.02539,16.2363,-33.8629],0,75,75], + ["B_HMG_01_F",[46.9961,45.3984,-29.9977],0,75,75], + ["B_GMG_01_F",[-5.16211,-5.00586,-33.8644],0,75,75], + ["B_Heli_Light_01_dynamicLoadout_F",[-6.61523,8.89844,-33.864],0,75,75], + ["B_T_Boat_Transport_01_F",[18.582,44.1055,-33.8654],0,75,75], + ["B_HMG_01_high_F",[30.6055,0.525391,-30.1961],0,75,75], + ["B_static_AA_F",[30.457,3.54102,-26.9993],0,75,75] +]; + +_submarinePatrolParameters = [ + +]; + +_airPatrols = [ + ["B_Heli_Light_01_dynamicLoadout_F",[-6.61523,8.89844,-33.864],0,1000,1000] +]; + +_missionEmplacedWeapons = [ + ["B_HMG_01_F",[46.9961,45.3984,-29.9977],0], + ["B_GMG_01_F",[-5.16211,-5.00586,-33.8644],0], + ["B_HMG_01_high_F",[30.6055,0.525391,-30.1961],0], + ["B_static_AA_F",[30.457,3.54102,-26.9993],0] +]; + +_missionGroups = [ + [[30.0605,46.2383,-33.8646],3,6,"Blue",30,45], + [[5.66602,-8.33398,-33.8665],3,6,"Blue",30,45], + [[47.1426,43.5,-26.9792],3,6,"Blue",30,45], + [[46.4063,38.8477,-30.1837],3,6,"Blue",30,45], + [[19.9512,-4.41797,-29.7975],3,6,"Blue",30,45], + [[29.0625,-0.0332031,-33.6711],3,6,"Blue",30,45], + [[33.7734,-2.30273,-33.5358],3,6,"Blue",30,45] +]; + +_scubaGroupParameters = [ + +]; + +_missionLootBoxes = [ + ["Box_IND_Wps_F",[10.7441,1.8418,-33.8658],_crateLoot,_lootCounts,0], + ["Box_AAF_Equip_F",[13.2188,7.31445,-33.8656],_crateLoot,_lootCounts,0], + ["Box_IND_AmmoOrd_F",[14.9844,13.168,-33.8657],_crateLoot,_lootCounts,0], + ["Box_IND_WpsLaunch_F",[10.1504,-2.12109,-33.8658],_crateLoot,_lootCounts,0] +]; + +/* + Use the parameters below to customize your mission - see the template or blck_configs.sqf for details about each them +*/ +_chanceHeliPatrol = blck_chanceHeliPatrolBlue; +_noChoppers = blck_noPatrolHelisBlue; +_missionHelis = blck_patrolHelisBlue; +_chancePara = blck_chanceParaBlue; +_noPara = blck_noParaBlue; +_paraTriggerDistance = 400; +_paraSkill = 'Blue'; +_chanceLoot = 0.0; +_paraLoot = blck_BoxLoot_Blue; +_paraLootCounts = blck_lootCountsBlue; +_missionLandscapeMode = "precise"; +_uniforms = blck_SkinList; +_headgear = blck_headgear; +_vests = blck_vests; +_backpacks = blck_backpacks; +_sideArms = blck_Pistols; +_spawnCratesTiming = "atMissionSpawnGround"; +_loadCratesTiming = "atMissionSpawn"; +_endCondition = "allKilledOrPlayerNear"; +_minNoAI = blck_MinAI_Blue; +_maxNoAI = blck_MaxAI_Blue; +_noAIGroups = blck_AIGrps_Blue; +_noVehiclePatrols = blck_SpawnVeh_Blue; +_noEmplacedWeapons = blck_SpawnEmplaced_Blue; +_minNoAI = blck_MinAI_Blue; +_maxNoAI = blck_MaxAI_Blue; +_noAIGroups = blck_AIGrps_Blue; +_noVehiclePatrols = blck_SpawnVeh_Blue; +_noEmplacedWeapons = blck_SpawnEmplaced_Blue; + +#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf"; \ No newline at end of file diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/Export/fn_exportDynamic.sqf b/@blckeagls_EDEN/addons/3EDEN_plugin/Export/fn_exportDynamic.sqf new file mode 100644 index 0000000..806d835 --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/Export/fn_exportDynamic.sqf @@ -0,0 +1,412 @@ +/* + blckeagls 3EDEN Editor Plugin + by Ghostrider-GRG- + Copyright 2020 + +*/ +#define oddsOfGarrison 0.67 +#define maxGarrisonUnits 4 + +objectAtMissionCenter = getText(configFile >> "CfgBlck3DEN" >> "configs" >> "objectAtMissionCenter"); +blck_minAI = getNumber(configFile >> "CfgBlck3DEN" >> "configs" >> "minAI"); +blck_maxAI = getNumber(configFile >> "CfgBlck3DEN" >> "configs" >> "maxAI"); +minPatrolRadius = getNumber(configFile >> "CfgBlck3DEN" >> "configs" >> "minPatroRadius"); +maxPatrolRadius = getNumber(configFile >> "CfgBlck3DEN" >> "configs" >> "maxPatrolRadius"); +maxVehiclePatrolRadius = getNumber(configFile >> "CfgBlck3DEN" >> "configs" >> "maxVehiclePatrolRadius"); +aircraftPatrolRadius = getNumber(configFile >> "CfgBlck3DEN" >> "configs" >> "aircraftPatrolRadius"); +garisonMarkerObject = "Sign_Sphere100cm_F"; +oddsOfGarison = getNumber(configFile >> "CfgBlck3DEN" >> "configs" >> "oddsOfGarison"); +maxGarrisonStatics = getNumber(configFile >> "CfgBlck3DEN" >> "configs" >> "maxGarrisonStatics"); +typesGarrisonStatics = getArray(configFile >> "CfgBlck3DEN" >> "configs" >> "typesGarrisonStatics"); +blck_MissionDifficulty = missionNamespace getVariable["blck_difficulty",getText(configFile >> "CfgBlck3DEN" >> "configs" >> "defaultMissionDifficulty")]; +lootVehicleVariableName = getText(configFile >> "CfgBlck3DEN" >> "configs" >> "lootVehicleVariableName"); +buildingPosGarrisonVariableName = getText(configFile >> "CfgBlck3DEN" >> "configs" >> "buildingPosGarrisonVariableName"); +buildingATLGarrisionVariableName = getText(configFile >> "CfgBlck3DEN" >> "configs" >> "buildingATLGarrisionVariableName"); + +/* +{ + diag_log format["param %1 = %2",_forEachIndex,_x]; +} forEach [ + objectAtMissionCenter, + blck_minAI, + blck_maxAI, + minPatrolRadius, + maxPatrolRadius, + maxVehiclePatrolRadius, + aircraftPatrolRadius, + oddsOfGarison, + maxGarrisonStatics, + typesGarrisonStatics, + blck_MissionDifficulty, + lootVehicleVariableName, + buildingPosGarrisonVariableName, + buildingATLGarrisionVariableName +];*/ + +CENTER = [0,0,0]; + +diag_log format["Dynamic Export called at %1",diag_tickTime]; +diag_log format["With blck_MissionDifficulty = %1",blck_MissionDifficulty]; + +/* + Set Default Values Where not Defined using Menu Commands +*/ +if (isNil "blck_dynamicStartMessage") then +{ + blck_dynamicStartMessage = "TODO: Change approiately"; +}; +if (isNil "blck_dynamicEndMessage") then +{ + blck_dynamicEndMessage = "TODO: Change Appropriately"; +}; +if (isNil "blck_dynamicCrateLoot") then +{ + blck_dynamicCrateLoot = format["_crateLoot = blck_BoxLoot_%1;",blck_MissionDifficulty]; +}; +if (isNil "blck_dynamicCrateLootCounts") then { + blck_dynamicCrateLootCounts = format["_lootCounts = blck_lootCounts%1;",blck_MissionDifficulty]; +}; +if (isNil "blck_dynamicmarkerMissionName") then +{ + blck_dynamicmarkerMissionName = "TODO: Update appropriately"; +}; +if (isNil "blck_spawnCratesTiming") then +{ + blck_spawnCratesTiming = missionNamespace getVariable["blck_lootTiming","atMissionStartGround"]; +}; +if (isNil "blck_loadCratesTiming") then +{ + blck_loadCratesTiming = missionNamespace getVariable["blck_loadTiming","atMissionStart"]; +}; +if (isNil "blck_missionEndCondition") then +{ + blck_missionEndCondition = missionNamespace getVariable["blck_endState","allUnitsKilled"]; +}; + +/* + Look for an object defined in CfgBlck3DEN \ configs \ that marks the center of the mission + and set the coords of the center if such an object is found +*/ + +private _centerMarkers = allMissionObjects objectAtMissionCenter; +diag_log format["_centerMarkers = %1",_centerMarkers]; +if !(_centerMarkers isEqualTo []) then +{ + CENTER = getPosATL (_centerMarkers select 0); + diag_log format["CENTER defined by object %1 typeOf %2",_centerMarker,typeOf (_centerMarkers select 0)]; +} else { + diag_log format[" No object marking the center of the mission was found: using a flashing road cone or flag is recommended",getText(configFile >> "CfgVehicles" >> objectAtMissionCenter >> "displayName")]; + diag_log format["Place such an object or a marker to ensure the mission is accurately stored and spawned"]; +}; + +all3DENEntities params ["_objects","_groups","_triggers","_systems","_waypoints","_markers","_layers","_comments"]; +private _units = []; +{ + { + if (vehicle _x isEqualTo _x) then {_units pushBack _x}; + } forEach (units _x); +} forEach _groups; + +private["_m1","_markerPos","_markerType","_markerShape","_markerColor","_markerText","_markerBrush","_markerSize","_markerAlpha"]; +/* + pull info on the first marker found +*/ +if !(_markers isEqualTo []) then +{ + _m1 = _markers select 0; + _markerType = (_m1 get3DENAttribute "itemClass") select 0; + _markerShape = (_m1 get3DENAttribute "markerType") select 0; + _markerColor = (_m1 get3DENAttribute "baseColor") select 0; + _markerText = (_m1 get3DENAttribute "text") select 0; + if !(_markerText isEqualTo "") then {blck_dynamicmarkerMissionName = _markerText}; + _markerBrush = (_m1 get3DENAttribute "markerBrush") select 0; + _markerPos = (_m1 get3DENAttribute "position") select 0; + _markerSize = (_m1 get3DENAttribute "size2") select 0; + _markerText = (_m1 get3DENAttribute "text") select 0; + + /* + use the coordinates of that marker as mission center of no object demarkating the center is found + */ + if ((isNil "CENTER") || (CENTER isEqualTo [0,0,0])) then { + CENTER = _markerPos; + diag_log format["Position of marker %1 used for position of CENTER = %2",_m1,CENTER]; + }; + if (count _markers > 1) then + { + diag_log format[" More than one marker was found; only the first marker was processed"]; + }; +} else { + _markerType = "mil_square"; + _markerShape = "null"; + _markerSize = "[0,0]"; + _markerColor = "COLORRED"; + _markerBrush = "null"; + if !(_objects isEqualTo []) then + { + CENTER = getPosATL (_objects select 0); + } else { + CENTER = getPos (_objects select 0); + }; + diag_log format[" No marker was found, using default values and position for mission center position"]; +}; +diag_log format["_m1 = %1 | _type = %2 | _shape = %3 | _size = %4 | _color = %5 | _brush = %6 | _text = %7",_m1,_markerType,_markerShape,_markerSize,_markerColor,_markerBrush,_markerText]; + +if (CENTER isEqualTo [0,0,0]) then +{ + CENTER = getPosATL (_staticObjects select 0); +}; +diag_log format["CENTER = %1",CENTER]; + +private _garisonedBuildings = []; +private _garisonedStatics = []; +private _garisonedUnits = []; + +private _landscape = _objects select{ + !(isSimpleObject _x) && + ((typeOf _x) isKindOf "Static") +}; +private _garisonedPos = []; +private _helpers = _objects select {((typeOf _x) isEqualTo garisonMarkerObject)}; +diag_log format["garisonMarkerObject = %1 | _helpers = %2",garisonMarkerObject,_helpers]; +{ + if ([_x] call blck3DEN_fnc_isInside) then + { + _building = [_x] call blck3DEN_fnc_buildingContainer; + _garisonedBuildings pushbackunique _building; + // data structure ["building Classname",[/*building pos*/],/*building dir*/,/*odds of garrison*/, /*Max Statics*/,/*types statics*/,/*max units*/], + // 1 2 3 4 5 6 7 8 9 + _garisonedPos pushBack format[' ["%1",%2,%3,%4,%5,%6,%7,%8,%9]',typeOf _building,(getPosATL _building) vectorDiff CENTER,getDir _building, 'true','true',oddsOfGarrison,maxGarrisonStatics,typesGarrisonStatics,maxGarrisonUnits]; + }; +} forEach _helpers; +//diag_log format["CENTER = %1 | _landscape = %2",CENTER,_landscape]; +private _garrisonATL = []; +{ + _atl = [_x,CENTER] call blck3DEN_fnc_configureGarrisonATL; + + // format["_fnc_exportDynamic: _building = %1 | _atl = %2",_x,_atl]; + //diag_log format["_fnc_exportDynamic: typeName _atl = %1",typeName _atl]; + if (typeName _atl isEqualTo "STRING") then {diag_log format["_fnc_exportDynamic: length _atl = %1 | _atl = '' is %2",count _atl, _atl isEqualTo ""]}; + if !(_atl isEqualTo []) then { + if !((_atl select 0) isEqualTo []) then + { + _garrisonATL pushBack (_atl select 0); + _garisonedBuildings pushBack _x; + _garisonedStatics append (_atl select 1); + _garisonedUnits append (_atl select 2) + //diag_log format["_fnc_exportDynamic: garrisoned building added: %1",_atl]; + }; + }; +} forEach _landscape; +diag_log format["_garrisonATL = %1",_garrisonATL]; + +private _missionLandscape = []; +{ + if !(_x in _garisonedBuildings) then + { + _missionLandscape pushBack format[' ["%1",%2,%3,%4,%5]',typeOf _x,(getPosATL _x) vectorDiff CENTER,getDir _x, 'true','true']; + }; +}forEach _landscape; + +private _simpleObjects = _objects select {isSimpleObject _x}; +diag_log format["_simpleObjects = %1",_simpleObjects]; +private _missionSimpleObjects = []; +{ + _missionSimpleObjects pushBack format[' ["%1",%2,%3,%4,%5]',typeOf _x,(getPosATL _x) vectorDiff CENTER,getDir _x, 'true','true']; +} forEach _simpleObjects; + +private _missionLootVehicles = []; +private _lootVehicles = _objects select { + ((typeOf _x) isKindOf "AllVehicles") && + !((typeOf _x) isKindOf "Man") && + (_x get3DENAttribute "name" isEqualTo lootVehicleVariableName) +}; +diag_log format["_lootVehicles = %1",_lootVehicles]; +{ + _missionLootVehicles pushBack format[' ["%1",%2,%3,%4,%5]',typeOf _x,(getPosATL _x) vectorDiff CENTER, '_crateLoot','_lootCounts',getDir _x]; +} forEach _lootVehicles; + +_missionPatrolVehicles = []; +private _patrolVehicles = _objects select { + (((typeOf _x) isKindOf "Car") || ((typeOf _x) isKindOf "Tank") || ((typeOf _x) isKindOf "Ship")) && + !((typeOf _x) isKindOf "SDV_01_base_F") && + !(_x in _lootVehicles) +}; +diag_log format["_patrolVehicles = %1",_patrolVehicles]; +{ + _missionPatrolVehicles pushBack format[' ["%1",%2,%3,%4,%5]',typeOf _x,(getPosATL _x) vectorDiff CENTER,getDir _x,maxVehiclePatrolRadius,maxVehiclePatrolRadius]; +}forEach _patrolVehicles; + +private _subPatrols = []; +private _subs = _objects select { + ((typeOf _x) isKindOf "SDV_01_base_F") && + !(_x in _lootVehicles) +}; +diag_log format["_subs = %1",_subs]; +{ + _subPatrols pushBack format[' ["%1",%2,%3,%4,%5]',typeOf _x,(getPosATL _x) vectorDiff CENTER,getDir _x,maxVehiclePatrolRadius,maxVehiclePatrolRadius]; +} forEach _subs; + +private _airPatrols = []; +private _airVehicles = _objects select { + ((typeOf _x) isKindOf "Air") +}; +diag_log format["_airVehicles = %1",_airvehicles]; +{ + _airPatrols pushBack format[' ["%1",%2,%3,%4,%5]',typeOf _x,(getPosATL _x) vectorDiff CENTER,getDir _x,aircraftPatrolRadius,aircraftPatrolRadius]; +} forEach _airVehicles; + + +private _staticWeapons = []; +private _statics = _objects select { + ((typeOf _x) isKindOf "StaticWeapon") && + !(_x in _garisonedStatics) +}; +diag_log format["_statics = %1",_statics]; +{ + _staticWeapons pushBack format[' ["%1",%2,%3]',typeOf _x,(getPosATL _x) vectorDiff CENTER,getDir _x]; +} forEach _statics; + +private _infantry = _units select { + !(surfaceIsWater (getPos _x)) && + !(_x in _garisonedUnits) +}; +diag_log format["_garisonedUnits = %1",_garisonedUnits]; +diag_log format["_infantry = %1",_infantry]; +_infantryGroups = []; +{ + _infantryGroups pushBack format[' [%1,%2,%3,"%4",%5,%6]',(getPosATL _x) vectorDiff CENTER,blck_minAI,blck_maxAI,blck_MissionDifficulty,minPatrolRadius,maxPatrolRadius]; +} forEach _units; + +private _scuba = _units select { + (surfaceIsWater (getPos _x)) && + !([_x] call blck3DEN_fnc_isInside) + // checck _x get3EDENAtribute "name" != "garrison"; +}; +diag_log format["_scuba = %1",_scuba]; +private _scubaGroups = []; +{ + _scubaGroups pushBack format[' [%1,%2,%3,"%4",%5,%6]',(getPosATL _x) vectorDiff CENTER,blck_minAI,blck_maxAI,blck_MissionDifficulty,minPatrolRadius,maxPatrolRadius]; +} forEach _scuba; + +private _lootContainers = []; +private _ammoBoxes = _objects select { + (((typeOf _x) isKindOf "ReammoBox") || ((typeOf _x) isKindOf "ReammoBox_F")) +}; +diag_log format["_ammoBoxes = %1",_ammoboxes]; +{ + _lootContainers pushBack format[' ["%1",%2,%3,%4,%5]',typeOf _x,(getPosATL _x) vectorDiff CENTER, '_crateLoot','_lootCounts',getDir _x]; +}forEach _ammoBoxes; +private _missionCoords = []; +if (toLower(missionNamespace getVariable["blck_missionLocations","random"]) isEqualTo "fixed") then +{ + _missionCoords pushBack CENTER; +}; +private _lines = []; +private _lineBreak = toString [10]; + +_lines pushBack "/*"; +_lines pushBack " Dynamic Mission Generated"; +_lines pushBack " Using 3DEN Plugin for blckeagls"; +_lines pushBack format[" %1",['dynamic'] call blck3DEN_fnc_versionInfo]; +_lines pushBack " By Ghostrider-GRG-"; +_lines pushBack "*/"; +_lines pushBack ""; +_lines pushBack '#include "\q\addons\custom_server\Configs\blck_defines.hpp";'; +_lines pushBack '#include "\q\addons\custom_server\Missions\privateVars.sqf";'; +_lines pushBack ""; +_lines pushBack format["_defaultMissionLocations = %1;",_missionCoords]; +_lines pushBack format["_markerType = %1",format['["%1",%2,"%3"];',_markerType,_markerSize,_markerBrush]]; +_lines pushBack format['_markerColor = "%1";',_markerColor]; +_lines pushBack format['_startMsg = "%1";',blck_dynamicStartMessage]; +_lines pushBack format['_endMsg = "%1";',blck_dynamicEndMessage]; +_lines pushBack format['_markerMissionName = "%1";',blck_dynamicmarkerMissionName]; +_lines pushBack format['_crateLoot = blck_BoxLoot_%1;',blck_MissionDifficulty]; +_lines pushBack format['_lootCounts = blck_lootCounts%1;',blck_MissionDifficulty]; +_lines pushBack ""; +_lines pushBack "_garrisonedBuildings_BuildingPosnSystem = ["; +_lines pushBack (_garisonedPos joinString (format[",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_garrisonedBuilding_ATLsystem = ["; +_lines pushBack (_garrisonATL joinString (format[",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_missionLandscape = ["; +_lines pushback (_missionLandscape joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_simpleObjects = ["; +_lines pushback (_simpleObjects joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_missionLootVehicles = ["; +_lines pushBack (_missionLootVehicles joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_missionPatrolVehicles = ["; +_lines pushback (_missionPatrolVehicles joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_submarinePatrolParameters = ["; +_lines pushback (_subPatrols joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_airPatrols = ["; +_lines pushback (_airPatrols joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_missionEmplacedWeapons = ["; +_lines pushback (_staticWeapons joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_missionGroups = ["; +_lines pushback (_infantryGroups joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_scubaGroupParameters = ["; +_lines pushback (_scubaGroups joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_missionLootBoxes = ["; +_lines pushback (_lootContainers joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "/*"; +_lines pushBack " Use the parameters below to customize your mission - see the template or blck_configs.sqf for details about each them"; +_lines pushBack "*/"; +_lines pushBack format["_chanceHeliPatrol = blck_chanceHeliPatrol%1;",blck_MissionDifficulty]; +_lines pushBack format["_noChoppers = blck_noPatrolHelis%1;",blck_MissionDifficulty]; +_lines pushBack format["_missionHelis = blck_patrolHelis%1;",blck_MissionDifficulty]; +_lines pushBack format["_chancePara = blck_chancePara%1;",blck_MissionDifficulty]; +_lines pushBack format["_noPara = blck_noPara%1;",blck_MissionDifficulty]; +_lines pushBack format["_paraTriggerDistance = 400;"]; +_lines pushBack format["_paraSkill = '%1';",blck_MissionDifficulty]; +_lines pushBack format["_chanceLoot = 0.0;"]; +_lines pushBack format["_paraLoot = blck_BoxLoot_%1;",blck_MissionDifficulty]; +_lines pushBack format["_paraLootCounts = blck_lootCounts%1;",blck_MissionDifficulty]; +_lines pushBack format['_missionLandscapeMode = "precise";']; +_linse pushBack "_useMines = blck_useMines;"; +_lines pushBack "_uniforms = blck_SkinList;"; +_lines pushBack "_headgear = blck_headgear;"; +_lines pushBack "_vests = blck_vests;"; +_lines pushBack "_backpacks = blck_backpacks;"; +_lines pushBack "_sideArms = blck_Pistols;"; +_lines pushBack format['_spawnCratesTiming = "%1";',blck_spawnCratesTiming]; +_lines pushBack format['_loadCratesTiming = "%1";',blck_loadCratesTiming]; +_lines pushBack format['_endCondition = "%1";',blck_missionEndCondition]; +_lines pushBack format["_minNoAI = blck_MinAI_%1;",blck_MissionDifficulty]; +_lines pushBack format["_maxNoAI = blck_MaxAI_%1;",blck_MissionDifficulty]; +_lines pushBack format["_noAIGroups = blck_AIGrps_%1;",blck_MissionDifficulty]; +_lines pushBack format["_noVehiclePatrols = blck_SpawnVeh_%1;",blck_MissionDifficulty]; +_lines pushBack format["_noEmplacedWeapons = blck_SpawnEmplaced_%1;",blck_MissionDifficulty]; +_lines pushBack format["_minNoAI = blck_MinAI_%1;",blck_MissionDifficulty]; +_lines pushBack format["_maxNoAI = blck_MaxAI_%1;",blck_MissionDifficulty]; +_lines pushBack format["_noAIGroups = blck_AIGrps_%1;",blck_MissionDifficulty]; +_lines pushBack format["_noVehiclePatrols = blck_SpawnVeh_%1;",blck_MissionDifficulty]; +_lines pushBack format["_noEmplacedWeapons = blck_SpawnEmplaced_%1;",blck_MissionDifficulty]; +_lines pushBack ""; +_lines pushBack '#include "\q\addons\custom_server\Compiles\Missions\GMS_fnc_missionSpawner.sqf";'; + +diag_log ["dynamic"] call blck3EDEN_fnc_versionInfo; +uiNameSpace setVariable ["Display3DENCopy_data", ["dynamicMission.sqf", _lines joinString _lineBreak]]; +(findDisplay 313) createdisplay "Display3DENCopy"; diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/Export/fn_exportStatic.sqf b/@blckeagls_EDEN/addons/3EDEN_plugin/Export/fn_exportStatic.sqf new file mode 100644 index 0000000..ca3dab0 --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/Export/fn_exportStatic.sqf @@ -0,0 +1,300 @@ +/* + blckeagls 3EDEN Editor Plugin + by Ghostrider-GRG- + Copyright 2020 + +*/ + +objectAtMissionCenter = getText(configFile >> "CfgBlck3DEN" >> "configs" >> "objectAtMissionCenter"); +blck_minAI = getNumber(configFile >> "CfgBlck3DEN" >> "configs" >> "minAI"); +blck_maxAI = getNumber(configFile >> "CfgBlck3DEN" >> "configs" >> "maxAI"); +minPatrolRadius = getNumber(configFile >> "CfgBlck3DEN" >> "configs" >> "minPatroRadius"); +maxPatrolRadius = getNumber(configFile >> "CfgBlck3DEN" >> "configs" >> "maxPatrolRadius"); +maxVehiclePatrolRadius = getNumber(configFile >> "CfgBlck3DEN" >> "configs" >> "maxVehiclePatrolRadius"); +aircraftPatrolRadius = getNumber(configFile >> "CfgBlck3DEN" >> "configs" >> "aircraftPatrolRadius"); +oddsOfGarison = getNumber(configFile >> "CfgBlck3DEN" >> "configs" >> "oddsOfGarison"); +maxGarrisonStatics = getNumber(configFile >> "CfgBlck3DEN" >> "configs" >> "maxGarrisonStatics"); +typesGarrisonStatics = getArray(configFile >> "CfgBlck3DEN" >> "configs" >> "typesGarrisonStatics"); +blck_MissionDifficulty = missionNamespace getVariable["blck_difficulty",getText(configFile >> "CfgBlck3DEN" >> "configs" >> "defaultMissionDifficulty")]; +lootVehicleVariableName = getText(configFile >> "CfgBlck3DEN" >> "configs" >> "lootVehicleVariableName"); +buildingPosGarrisonVariableName = getText(configFile >> "CfgBlck3DEN" >> "configs" >> "buildingPosGarrisonVariableName"); +buildingATLGarrisionVariableName = getText(configFile >> "CfgBlck3DEN" >> "configs" >> "buildingATLGarrisionVariableName"); + +{ + diag_log format["param %1 = %2",_forEachIndex,_x]; +} forEach [ + objectAtMissionCenter, + blck_minAI, + blck_maxAI, + minPatrolRadius, + maxPatrolRadius, + maxVehiclePatrolRadius, + aircraftPatrolRadius, + oddsOfGarison, + maxGarrisonStatics, + typesGarrisonStatics, + blck_MissionDifficulty, + lootVehicleVariableName, + buildingPosGarrisonVariableName, + buildingATLGarrisionVariableName +]; + +CENTER = [0,0,0]; + +diag_log format["Static Mission Export called at %1",diag_tickTime]; +diag_log format["With blck_MissionDifficulty = %1",blck_MissionDifficulty]; + +/* + Set Default Values Where not Defined using Menu Commands +*/ + +if (isNil "blck_dynamicCrateLoot") then +{ + blck_dynamicCrateLoot = format["_crateLoot = blck_BoxLoot_%1;",blck_MissionDifficulty]; +}; +if (isNil "blck_dynamicCrateLootCounts") then { + blck_dynamicCrateLootCounts = format["_lootCounts = blck_lootCounts%1;",blck_MissionDifficulty]; +}; + + +/* + Look for an object defined in CfgBlck3DEN \ configs \ that marks the center of the mission + and set the coords of the center if such an object is found +*/ + +private _centerMarkers = allMissionObjects objectAtMissionCenter; +diag_log format["_centerMarkers = %1",_centerMarkers]; +if !(_centerMarkers isEqualTo []) then +{ + CENTER = getPosATL (_centerMarkers select 0); + diag_log format["CENTER defined by object %1 typeOf %2",_centerMarker,typeOf (_centerMarkers select 0)]; +} else { + diag_log format[" No object marking the center of the mission was found: using a flashing road cone or flag is recommended",getText(configFile >> "CfgVehicles" >> objectAtMissionCenter >> "displayName")]; + diag_log format["Place such an object or a marker to ensure the mission is accurately stored and spawned"]; +}; + +all3DENEntities params ["_objects","_groups","_triggers","_systems","_waypoints","_markers","_layers","_comments"]; +private _units = []; +{ + { + if (vehicle _x isEqualTo _x) then {_units pushBack _x}; + } forEach (units _x); +} forEach _groups; + +private["_m1","_markerPos","_markerType","_markerShape","_markerColor","_markerText","_markerBrush","_markerSize","_markerAlpha","_missionCenter"]; +/* + pull info on the first marker found +*/ +if !(_markers isEqualTo []) then +{ + _m1 = _markers select 0; + _markerType = (_m1 get3DENAttribute "itemClass") select 0; + _markerShape = (_m1 get3DENAttribute "markerType") select 0; + _markerColor = (_m1 get3DENAttribute "baseColor") select 0; + _markerText = (_m1 get3DENAttribute "text") select 0; + if !(_markerText isEqualTo "") then {blck_dynamicmarkerMissionName = _markerText}; + _markerBrush = (_m1 get3DENAttribute "markerBrush") select 0; + _markerPos = (_m1 get3DENAttribute "position") select 0; + _markerSize = (_m1 get3DENAttribute "size2") select 0; + _markerText = (_m1 get3DENAttribute "text") select 0; + + /* + use the coordinates of that marker as mission center of no object demarkating the center is found + */ +} else { + _markerType = "mil_square"; + _markerShape = ""; + _markerSize = [0,0]; + _markerColor = "COLORRED"; + _markerBrush = ""; + diag_log format[" No marker was found, using default values and position for mission center position"]; +}; +diag_log format["_m1 = %1 | _type = %2 | _shape = %3 | _size = %4 | _color = %5 | _brush = %6 | _text = %7",_m1,_markerType,_markerShape,_markerSize,_markerColor,_markerBrush,_markerText]; + +private _garisonedBuildings = []; +private _garisonedStatics = []; +private _garisonedUnits = []; + +private _landscape = _objects select{ + !(isSimpleObject _x) && + ((typeOf _x) isKindOf "Static") && + !((typeOf _x) isKindOf "Helper") +}; + +diag_log format["CENTER = %1 | _landscape = %2","ignored",_landscape]; +private _missionLandscape = []; +{ + _missionLandscape pushBack format[' ["%1",%2,%3,%4]',typeOf _x,(getPosATL _x),[vectorDir _x,vectorUp _x], [true,true]]; +}forEach _landscape; + +private _simpleObjects = _objects select {isSimpleObject _x}; +diag_log format["_simpleObjects = %1",_simpleObjects]; +private _missionSimpleObjects = []; +{ + _missionSimpleObjects pushBack format[' ["%1",%2,%3,%4,%5]',typeOf _x,(getPosATL _x),[vectorDir _x,vectorUp _x], 'true','true']; +} forEach _simpleObjects; + +private _missionLootVehicles = []; +private _lootVehicles = _objects select { + ((typeOf _x) isKindOf "AllVehicles") && + !((typeOf _x) isKindOf "Man") && + (_x get3DENAttribute "name" isEqualTo lootVehicleVariableName) +}; +diag_log format["_lootVehicles = %1",_lootVehicles]; +{ + _missionLootVehicles pushBack format[' ["%1",%2,%3,%4,%5]',typeOf _x,(getPosATL _x), [vectorDir _x,vectorUp _x],'_crateLoot','_lootCounts']; +} forEach _lootVehicles; + +_missionPatrolVehicles = []; +private _patrolVehicles = _objects select { + (((typeOf _x) isKindOf "Car") || ((typeOf _x) isKindOf "Tank") || ((typeOf _x) isKindOf "Ship")) && + !((typeOf _x) isKindOf "SDV_01_base_F") && + !(_x in _lootVehicles) +}; +diag_log format["_patrolVehicles = %1",_patrolVehicles]; +{ + _missionPatrolVehicles pushBack format[' ["%1",%2,%3,%4,%5]',typeOf _x,(getPosATL _x) vectorDiff CENTER,getDir _x,maxVehiclePatrolRadius,600,-1]; +}forEach _patrolVehicles; + +private _subPatrols = []; +private _subs = _objects select { + ((typeOf _x) isKindOf "SDV_01_base_F") && + !(_x in _lootVehicles) +}; +diag_log format["_subs = %1",_subs]; +{ + _subPatrols pushBack format[' ["%1",%2,%3,%4,%5]',typeOf _x,(getPosATL _x),getDir _x,maxVehiclePatrolRadius,600,-1]; +} forEach _subs; + +private _airPatrols = []; +private _airVehicles = _objects select { + (typeOf _x) isKindOf "Air" +}; +diag_log format["_airVehicles = %1",_airvehicles]; +{ + _airPatrols pushBack format[' ["%1",%2,%3,%4,%5]',typeOf _x,(getPosATL _x),getDir _x,aircraftPatrolRadius,900,-1]; +} forEach _airVehicles; + + +private _staticWeapons = []; +private _statics = _objects select { + ((typeOf _x) isKindOf "StaticWeapon") && + !(_x in _garisonedStatics) +}; +diag_log format["_statics = %1",_statics]; +{ + _staticWeapons pushBack format[' ["%1",%2,%3]',typeOf _x,(getPosATL _x),getDir _x,0,-1]; +} forEach _statics; + +private _infantry = _units select { + !(surfaceIsWater (getPos _x)) && + !(_x in _garisonedUnits) +}; +diag_log format["_infantry = %1",_infantry]; +_infantryGroups = []; +{ + _infantryGroups pushBack format[' [%1,%2,%3,"%4",%5,%6]',(getPosATL _x),blck_minAI,blck_maxAI,blck_MissionDifficulty,maxPatrolRadius,600,-1]; +} forEach _units; + +private _scuba = _units select { + (surfaceIsWater (getPos _x)) && + !(_x in _garisonedUnits) + // checck _x get3EDENAtribute "name" != "garrison"; +}; +diag_log format["_scuba = %1",_scuba]; +private _scubaGroups = []; +{ + _scubaGroups pushBack format[' [%1,%2,%3,"%4",%5,%6]',(getPosATL _x),blck_minAI,blck_maxAI,blck_MissionDifficulty,maxPatrolRadius,600,-1]; +} forEach _scuba; + +private _lootContainers = []; +private _ammoBoxes = _objects select { + (((typeOf _x) isKindOf "ReammoBox") || ((typeOf _x) isKindOf "ReammoBox_F")) +}; +diag_log format["_ammoBoxes = %1",_ammoboxes]; +{ + _lootContainers pushBack format[' ["%1",%2,%3,%4,%5,%6]',typeOf _x,(getPosATL _x), [vectorDir _x,vectorUp _x],[true,true],'_crateLoot','_lootCounts']; +}forEach _ammoBoxes; + +private _lines = []; +private _lineBreak = toString [10]; + +_lines pushBack "/*"; +_lines pushBack " Static Mission Generated"; +_lines pushBack " Using 3DEN Plugin for blckeagls"; +_lines pushBack format[" %1",['dynamic'] call blck3DEN_fnc_versionInfo]; +_lines pushBack " By Ghostrider-GRG-"; +_lines pushBack "*/"; +_lines pushBack ""; +_lines pushBack '#include "\q\addons\custom_server\Configs\blck_defines.hpp";'; +_lines pushBack '#include "privateVars.sqf";'; +_lines pushBack ""; +_lines pushBack format["_missionCenter = %1;",_markerPos]; + +if !(_markerBrush isEqualTo "") then +{ + _lines pushBack format["_markerType = %1",format['["%1",%2,%3];',_markerType,_markerSize,_markerBrush]]; +} else { + _lines pushBack format["_markerType = %1",format['"%1",%2',_markerType,_markerSize]]; +}; +_lines pushBack format['_markerColor = "%1";',_markerColor]; +_lines pushBack format['_markerMissionName = "%1";',blck_dynamicmarkerMissionName]; +_lines pushBack format['_crateLoot = blck_BoxLoot_%1;',blck_MissionDifficulty]; +_lines pushBack format['_lootCounts = blck_lootCounts%1;',blck_MissionDifficulty]; +_lines pushBack ""; +_lines pushBack "_missionLandscape = ["; +_lines pushback (_missionLandscape joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_simpleObjects = ["; +_lines pushback (_simpleObjects joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_missionLootVehicles = ["; +_lines pushBack (_missionLootVehicles joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_vehiclePatrolParameters = ["; +_lines pushback (_missionPatrolVehicles joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_submarinePatrolParameters = ["; +_lines pushback (_subPatrols joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_airPatrols = ["; +_lines pushback (_airPatrols joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_missionEmplacedWeapons = ["; +_lines pushback (_staticWeapons joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_aiGroupParameters = ["; +_lines pushback (_infantryGroups joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_aiScubaGroupParameters = ["; +_lines pushback (_scubaGroups joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "_missionLootBoxes = ["; +_lines pushback (_lootContainers joinString (format [",%1", _lineBreak])); +_lines pushBack "];"; +_lines pushBack ""; +_lines pushBack "/*"; +_lines pushBack " Use the parameters below to customize your mission - see the template or blck_configs.sqf for details about each them"; +_lines pushBack "*/"; + +_linse pushBack "_useMines = blck_useMines;"; +_lines pushBack "_uniforms = blck_SkinList;"; +_lines pushBack "_headgear = blck_headgear;"; +_lines pushBack "_vests = blck_vests;"; +_lines pushBack "_backpacks = blck_backpacks;"; +_lines pushBack "_sideArms = blck_Pistols;"; +_lines pushBack ""; +_lines pushBack '#include "\q\addons\custom_server\Missions\Static\Code\GMS_fnc_sm_initializeMission.sqf"; '; + +diag_log ["static"] call blck3EDEN_fnc_versionInfo; +uiNameSpace setVariable ["Display3DENCopy_data", ["staticMission.sqf", _lines joinString _lineBreak]]; +(findDisplay 313) createdisplay "Display3DENCopy"; diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/Guidelines.txt b/@blckeagls_EDEN/addons/3EDEN_plugin/Guidelines.txt new file mode 100644 index 0000000..31f573d --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/Guidelines.txt @@ -0,0 +1,21 @@ +Variables to define +marker parameters +Marker Text + +Mission start message +Mission end message +Mission level + +To pull units: +private _units = allUnits; + + +To pull objects: +_center = allMissionObejcts "RoadCone_L_F"; +_buildings = allMissionObjects "Building"; +_things = allMissionObjects "ThingX"; +_baseObjects = _buildings append _things; + +_static = allMissionObejcts "StaticWeapon"; +_vehicles = allMissionObejcts "Car" + allMissionObejcts "Tank" + allMissionObejcts "Ship"; +_air = allMissionObejcts "Air"; diff --git a/Tools/Dynamic Missions/pullDynamicMission.VR/pullMarkerInfo.sqf b/@blckeagls_EDEN/addons/3EDEN_plugin/Static/pullMarkerInfo.sqf similarity index 100% rename from Tools/Dynamic Missions/pullDynamicMission.VR/pullMarkerInfo.sqf rename to @blckeagls_EDEN/addons/3EDEN_plugin/Static/pullMarkerInfo.sqf diff --git a/Tools/Dynamic Missions/pullDynamicMission.VR/setCenterAtPlayer.sqf b/@blckeagls_EDEN/addons/3EDEN_plugin/Static/setCenterAtPlayer.sqf similarity index 100% rename from Tools/Dynamic Missions/pullDynamicMission.VR/setCenterAtPlayer.sqf rename to @blckeagls_EDEN/addons/3EDEN_plugin/Static/setCenterAtPlayer.sqf diff --git a/Tools/Dynamic Missions/pullDynamicMission.VR/template.sqf b/@blckeagls_EDEN/addons/3EDEN_plugin/Static/template.sqf similarity index 100% rename from Tools/Dynamic Missions/pullDynamicMission.VR/template.sqf rename to @blckeagls_EDEN/addons/3EDEN_plugin/Static/template.sqf diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/config.cpp b/@blckeagls_EDEN/addons/3EDEN_plugin/config.cpp new file mode 100644 index 0000000..5c8ba4a --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/config.cpp @@ -0,0 +1,59 @@ +/* + blckeagls 3EDEN Editor Plugin + by Ghostrider-GRG- + + Parts of config.cpp were derived from the Exile_3EDEN editor plugin + * and is licensed as follows: + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. +*/ +#include "defines.h" +class CfgBlck3DEN +{ + class configs + { + objectAtMissionCenter = "RoadCone_L_F"; + minAI = 3; + maxAI = 6; + minPatroRadius = 30; + maxPatrolRadius = 45; + maxVehiclePatrolRadius = 75; + aircraftPatrolRadius = 1000; + oddsOfGarison = 0.67; + maxGarrisonStatics = 3; + typesGarrisonStatics = []; + defaultMissionDifficulty = "Blue"; + defaultLootcrateSpawnTiming = "atMissionSpawnGround"; + defaultLootcrateLoadTiming = "atMissionSpawn"; + defaultMissionEndState = "allKilledOrPlayerNear"; + + // Enter the string shown here under Atributes\Variable Name + // to demarcate this vehicle as a loot vehicle + lootVehicleVariableName = "lootVehicle"; + + // Enter the string shown here under Atributes\Variable Name + // To indicate that a garrison should be placed at standard Arma + // building positions + buildingPosGarrisonVariableName = "pos"; + + // Enter the string shown here under Atributes\Variable Name + // To indicate that a garrison should be placed using setPosATL + // relative to the spawn position of the building + buildingATLGarrisionVariableName = "atl"; + + aiRespawnTime = 600; // respawn time for infantry + vehicleRespawnTime = 900; // respawn time for vehicle patrols + aircraftRespawnTime = 1200; // respawn time for aircraft patrols + }; + + /**************************************** + DO NOT TOUCH ANYTHING BELOW THIS LINE + *****************************************/ + class CfgVersion + { + version = 1.0; + build = 3; + date = "08/23/20"; + }; +}; + diff --git a/@blckeagls_EDEN/addons/3EDEN_plugin/defines.h b/@blckeagls_EDEN/addons/3EDEN_plugin/defines.h new file mode 100644 index 0000000..034f2a8 --- /dev/null +++ b/@blckeagls_EDEN/addons/3EDEN_plugin/defines.h @@ -0,0 +1,571 @@ +// defines.h +/* + blckeagls 3EDEN Editor Plugin + by Ghostrider-GRG- + Copyright 2020 + Parts of defines.h were derived from the Exile_3EDEN editor plugin + * and is licensed as follows: + * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. + * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. +*/ + +/* + ************************************** + DO NOT CHANGE ANYTHING BELOW THIS LINE + ************************************** +*/ +class CfgPatches +{ + class blckeagls_3den + { + requiredVersion = 0.1; + requiredAddons[] = {3DEN}; + units[] = {}; + weapons[] = {}; + magazines[] = {}; + ammo[] = {}; + }; +}; + +/////////////////////////////////////////////////////////////////////////////// + +class CfgFunctions +{ + + class blck3DEN + { + class Export + { + file = "3EDEN_plugin\Export"; + class exportDynamic {}; + class exportStatic {}; + }; + + class Core + { + file = "3EDEN_plugin\Core"; + class help {}; + class about {}; + class getGarrisonInfo {}; + class getLootVehicleInfo {}; + class getMissionGarrisonInfo {}; + class getMissionLootVehicleInfo {}; + class initializeAttributes {}; + class isInfantry {}; + class isInside {}; + class buildingContainer {}; + class display {}; + class setDifficulty {}; + class setCompletionMode {} + class setGarrison {}; + class setLootVehicle {}; + class setSpawnLocations {}; + class spawnCratesTiming {}; + class loadCratesTiming {}; + class endMessage {}; + class startMessage {}; + class configureGarrisonATL {}; + class versionInfo {}; + }; + }; +}; + +/////////////////////////////////////////////////////////////////////////////// + +class ctrlCombo; +class ctrlCheckbox; +class ctrlCheckboxes; +class ctrlEdit; + +class cfg3DEN +{ + class EventHandlers + { + class blckeagls + { + OnMissionLoad = "call blck3DEN_fnc_initializeAttributes"; + OnMissionNew = "call blck3DEN_fnc_initializeAttributes"; + onHistoryChange = "call blck3DEN_fnc_updateObjects"; + }; + }; + + class Attributes + { + class Default; + + class Title: Default + { + class Controls + { + class Title; + }; + }; + + class Combo: Title + { + class Controls: Controls + { + class Title: Title {}; + class Value: ctrlCombo {}; + }; + }; + + class blck_garison: Combo + { + class Value + { + text = "Set Garison State"; + items[] = {"No_Garison","Has_garison"}; + }; + class no_garison + { + text = "No Garison"; + //action = "_this setVariable['garison',0];"; + }; + class has_garison + { + text = "Has Garison"; + //action = "_this setVariable['garison',1];"; + }; + }; + }; + + + class Mission + { + + }; + + class Object + { + class AttributeCategories + { + + }; + }; +}; + + +class CfgVehicles +{ + class House; + + class blck_House: House + { + class Attributes + { + class blck_garisoned + { + displayName = "Garrison"; + toolTip = "Define Garrisoned Buildings"; + control = "blck_garison"; + + expression = "_this setVariable ['garrisoned',_value];"; + defaultValue = false; + unique = 0; + }; + }; + }; +}; + +class ctrlMenuStrip; +class ctrlMenu; + +class display3DEN +{ + class Controls + { + /* + class ContextMenu: ctrlMenu + { + class Items + { + items[] += { + "blck_markLootVehicle", + "blck_markGarisonBuildingPos" + }; + class blck_markLootVehicle + { + text = "Designate Loot Vehicles"; + value = false; + //action = "systemChat 'value toggled'"; + conditionShow = "selectedObject"; + items[] = { + "blck_clearLootVehicle", + "blck_designateLootVehicle" + }; + }; + class blck_clearLootVehicle + { + text = "Clear Loot Vehicle Settings"; + value = false; + action = "[false] call blck3DEN_fnc_setLootVehicleStatus"; + }; + class blck_deisgnateLootVehicle + { + text = "Desinate Loot Vehicle"; + value = true; + action = "[true] call blck3DEN_fnc_setLootVehicleStatus"; + }; + + class blck_markGarisonBuildingPos + { + text = "Designate Garisoned Buildings"; + value = false; + conditionShow = "selectedObject"; + items[] = { + "blck_clearGarisonSettings", + "blck_designateGarisonedBuilding" + }; + }; + class blck_clearGarisonSettings + { + text = "Clear Garison Settings"; + value = false; + conditionShow = "selectedObject"; + action = "[false] call blck3DEN_fnc_setGarison"; + }; + class blck_designateGarisonedBuilding + { + text = "Set as Garisoned Building"; + value = true; + conditionShow = "SelectedObject"; + action = "[true] call blck3DEN_fnc_setGarison"; + }; + + }; + }; + */ + class MenuStrip: ctrlMenuStrip + { + + class Items + { + items[] += {"Blackeagls"}; + + class Blackeagls + { + text = "Blackeagls"; + items[] = { + "blckAbout3EDENPlugin", + "blckSeparator", + "blckMissionDifficulty", + "blckMissionCompletionMode", + "lootSpawnTiming", + "loadCratesTiming", + "blckSeparator", + //"blckMissionMessages", + "blckMissionLocation", + "blckSeparator", + "blck_setGarrison", + "blck_getGarrisonInfo", + "blck_getMissionGarrisonInfo", + "blckSeparator", + "blck_markLootVehicle", + "blck_getLootVehicleInfo", + "blck_getMissionLootVehicleInfo", + "blckSeparator", + "blckSaveStaticMission", + "blckSaveDynamicMission", + "blckSeparator", + "blck3EDENPluginHelp" + }; + }; + + class blckAbout3EDENPlugin + { + text = "3EDEN Plugin Version 1.0 for BlckEagls by Ghostrider-GRG-"; + action = "call blck3EDEN_fnc_about"; + }; + + class blckSeparator + { + value = 0; + }; + + class blck_setDifficulty + { + text = "Set Mission Difficulty"; + items[] = { + "difficulty_blue" + }; + }; + + class difficulty_blue + { + text = "Easy (Blue)"; + action = "['Blue'] call blck3DEN_fnc_setDifficulty"; + }; + + class blck_setLootSpawnTime + { + text = "Set Lootcrate Spawn Timing"; + action = "edit3DENMissionAttributes 'lootSpawnTime'"; + }; + + class blckMissionDifficulty + { + text = "Set Mission Difficulty"; + items[] = { + "blckDifficultyBlue", + "blckDifficultyRed", + "blckDifficutlyGreen", + "blckDifficultyOrange" + }; + }; + class blckDifficultyBlue + { + text = "Set Mission Difficutly to EASY (Blue)"; + action = "['Blue'] call blck3DEN_fnc_setDifficulty;"; + value = "Blue"; + }; + class blckDifficultyRed + { + text = "Set Mission Difficulty to MEDIUM (Red)"; + action = "['Red'] call blck3DEN_fnc_setDifficulty;"; + value = "Red"; + }; + class blckDifficutlyGreen + { + text = "Set Mission Difficult To HARD (Green)"; + action = "['Green'] call blck3DEN_fnc_setDifficulty;"; + value = "Green"; + }; + class blckDifficultyOrange + { + text = "Set Mission Difficulty to Very HARD (Orange)"; + action = "['Orange'] call blck3DEN_fnc_setDifficulty;"; + value = "Orange"; + }; + + + class blckMissionCompletionMode + { + text = "Set the Criterial for Mission Completion"; + items[] = { + "playerNear", + "allUnitsKilled", + "allKilledOrPlayerNear" + }; + }; + class allUnitsKilled + { + text = "All AI Dead"; + toolTip = "Mission is complete only when All AI are Dead"; + action = "['allUnitsKilled'] call blck3DEN_fnc_setCompletionMode;"; + value = "allUnitsKilled"; + }; + class playerNear + { + text = "Player near mission center"; + toolTip = "MIssion is Complete when a player reaches the mission center"; + action = "['playerNear'] call blck3DEN_fnc_setCompletionMode;"; + value = "playerNear"; + }; + class allKilledOrPlayerNear + { + text = "Units Dead / Player @ Center"; + toolTip = "Mission is Complete when all units are dead or a player reaches mission center"; + action = "['allKilledOrPlayerNear'] call blck3DEN_fnc_setCompletionMode;"; + value = "allKilledOrPlayerNear"; + }; + + class lootSpawnTiming + { + text = "Set timing for spawning loot chests"; + items[] = { + "atMissionSpawnGround", + "atMissionSpawnAir", + "atMissionEndGround", + "atMissionEndAir" + }; + }; + class atMissionSpawnGround + { + text = "Crates are spawned on the ground at mission startup"; + action = "['atMissionSpawnGround'] call blck3DEN_fnc_spawnCratesTiming;"; + }; + class atMissionSpawnAir + { + text = "Crates are spawned in the air at mission startup"; + action = "['atMissionSpawnAir'] call blck3DEN_fnc_spawnCratesTiming;"; + }; + class atMissionEndGround + { + text = "Crates are spawned on the ground at mission completion"; + action = "['atMissionEndGround'] call blck3DEN_fnc_spawnCratesTiming;"; + }; + class atMissionEndAir + { + text = "Crates are spawned in the air at mission completion"; + action = "['atMissionEndAir'] call blck3DEN_fnc_spawnCratesTiming;"; + }; + + class loadCratesTiming + { + text = "Set timing for loading crates"; + items[] = { + "atMissionSpawn", + "atMissionCompletion" + }; + }; + class atMissionSpawn + { + text = "Load crates when the mission spawns"; + action = "['atMissionSpawn'] call blck3DEN_fnc_loadCratesTiming"; + }; + class atMissionCompletion + { + text = "Load crates when the mission is complete"; + action = "['atMissionCompletion'] call blck3DEN_fnc_loadCratesTiming"; + }; + + /* + ///////////////////////////// + class blckMissionMessages + { + text = "Set timing for loading crates"; + items[] = { + "blckStartMessage", + "blckEndMessage" + }; + }; + // ["Title","Default","ctrlControlsGroupNoScrollbars","ctrlControlsGroup","ctrlDefault"] + class Edit; + class blckEdit: Edit + { + control = "Edit"; + value = ""; + }; + class blckStartMessage: blckEdit + { + text = "Misstion Start Message"; + action = "[_value] call blck3DEN_startMessage"; + }; + class blckEndMessage: blckEdit + { + text = "Mission End Message"; + action = "[_value] call blck3DEN_endMessage"; + }; + */ + + class blckMissionLocation + { + text = "Toggle Random or Fixed Location"; + toolTip = "Set whether mission spawns at random or fixed locations"; + items[] = { + "blck_randomLocation", + "blck_fixedLocation" + }; + }; + class blck_randomLocation + { + text = "Spawn at Random Locations (Default)"; + action = "['randm'] call blck3DEN_fnc_setSpawnLocations"; + }; + class blck_fixedLocation + { + text = "Always spawn at the same location"; + toolTip = "Use to have mission respawn at same location"; + action = "['fixed'] call blck3DEN_fnc_setSpawnLocations"; + }; + + class blck_setGarrison + { + text = "Set as Garrisoned Building"; + toolTip = "Set garrison status of selected buildings"; + items[] = { + "blck_isGarrisoned", + "blck_clearGarrisoned", + "blck_getGarrisonInfo" + }; + }; + class blck_isGarrisoned + { + text = "Garrison Building"; + toolTip = "Flag selected buildings to be garrisoned"; + value = true; + action = "[true] call blck3DEN_fnc_setGarrison"; + }; + class blck_clearGarrisoned + { + text = "Remove Garrison"; + toolTip = "Selected Buildings will Not be Garrisoned"; + value = false; + action = "[false] call blck3DEN_fnc_setGarrison"; + }; + class blck_getGarrisonInfo + { + text = "Get Building Garrisoned Setting"; + toolTip = "Get the selected buildings garrisoned flag"; + value = 0; + action = "call blck3DEN_fnc_getGarrisonInfo"; + }; + class getMissionGarrisonInfo + { + text = "Get garrison flag for selected buildings"; + toolTip = "The garrisoned flag state will be displayed for selected bulidings"; + value = 0; + action = "call blck3DEN_fnc_getMissionGarrisonInfo"; + }; + + class blck_markLootVehicle + { + text = "Designate Loot Vehicles"; + value = false; + //action = "systemChat 'value toggled'"; + conditionShow = "selectedObject"; + items[] = { + "blck_clearLootVehicle", + "blck_designateLootVehicle" + }; + }; + class blck_clearLootVehicle + { + text = "Clear Loot Vehicle Settings"; + value = false; + action = "[false] call blck3DEN_fnc_setLootVehicle"; + }; + class blck_designateLootVehicle + { + text = "Desinate Loot Vehicle"; + value = true; + action = "[true] call blck3DEN_fnc_setLootVehicle"; + }; + class blck_getLootVehicleInfo + { + text = "Get setting for selected vehicle"; + value = 0; + action = "call blck3DEN_fnc_getLootVehicleInfo"; + }; + ///////////////////////////// + class blckSaveStaticMission + { + text = "Save StaticMission"; + action = "call blck3DEN_fnc_exportStatic"; + picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\save_ca.paa"; + }; + + class blckSaveDynamicMission + { + text = "Save Dynamic Mission"; + action = "call blck3DEN_fnc_exportDynamic"; + picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\save_ca.paa"; + }; + + class Blck3EDENPluginHelp + { + text = "Help"; + action = "call blck3DEN_fnc_Help"; + //picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\save_ca.paa"; + }; + + }; + }; + }; +}; + + +/////////////////////////////////////////////////////////////////////////////// + + diff --git a/FAQ.txt b/FAQ.txt index ed51460..28e1f50 100644 --- a/FAQ.txt +++ b/FAQ.txt @@ -1,10 +1,10 @@ This addon includes several modules which will be discussed in the following order: 1. The core, dynamic mission system 2. A static mission system -3. A custom time acceleration module -4. A module to execute scripts for custom bases (map addons) and so forth. -5. A module to spawn loot crates in specific locations at server startup. -6. Tools to export mission layouts designed in the editor for use with mission templates. This allows you to quickly add content to your server. Tools are available for both static and dynamic missions. +3. A custom time acceleration module (disabled by default) +4. A module to execute scripts for custom bases (map addons) and so forth (disabled by default, probably no longer useful). +5. A module to spawn loot crates in specific locations at server startup (disabled by default, probably no longer useful). +6. A plugin for the 3DEN editor to help configure and export missions. 1. Core Mission System. @@ -42,8 +42,8 @@ General settings include: Where possible, I have tried group weapons based on desirability from low rank (5.56 ammo) to high rank (7.6 caliber or larger, large bore sniper, heavy LMG) then combine these groups to define parameters as needed. The missions themselves are spawned from templates which can be used to define most aspects of the missions including: - the messages sent to players; - Text used to label the mark + Messages sent to players; + Text used to label the marker Type of marker used to label the map Number of AI groups and number of AI or, alternatively desired their spawn locations. (optional) loot chest positions and loot to be loaded @@ -53,9 +53,9 @@ The missions themselves are spawned from templates which can be used to define m To create and run new missions simply: layout an AI base in the Arma 3 editor, - export the base as an .sqf using the tools provided. + define commonly adjusted setting using the editor plugin. + export the base as an .sqf using the editor plugin provided. Define the above parameters (nu. AI groups, No AI, etc) - add this information to the mission template and modify any messages accordingly Add the name of the file (e.g., "newAImission" to the list of missions to be spawned of that class in ...\custom)server\missions\GMS_missionLists.sqf Repack your custom_server.pbo diff --git a/INSTALLATION.txt b/INSTALLATION.txt index 9795e15..747ab01 100644 --- a/INSTALLATION.txt +++ b/INSTALLATION.txt @@ -1,8 +1,10 @@ Installation: +///////////////////////////// +CLIENT ///////////////////////////// // MPMissions - modify your mission pbo (epoch.Altis.pbo) as follows. -1) Unpack the Zip file you downloaded from the Github to a folder in a convenient location. +1) Unpack the Zip file you downloaded from the Github to a convenient location. 2) Unpack your mission pbo (epoch.Altis.pbo or Exile.Altis.pbo). 3) Open the folder containing the unpacked mission. 4) Copy the debug folder from your download (MPMissions\epoch.Altis or MPMissions\exile.Altis) @@ -21,6 +23,16 @@ Pack custom_server. Add the @GMS folder to the root directory of your server (the same location as your mods such as @Epoch or @Exile Add "@GMS;" to -servermods in the startup parameters for your server. +Alternative method: +Copy custom_server to either: +@epochhive\addons + +or + +@exileserver\addons + +as appropriate. + ///////////////////////// // Battleye Exceptions diff --git a/KnownIssues.txt b/KnownIssues.txt index 0deddf5..2d2e02d 100644 --- a/KnownIssues.txt +++ b/KnownIssues.txt @@ -1,10 +1,11 @@ Known issues -6.96 +7.00 There is no consistent check for the case in which the call to createGroup returns grpNull because the max number of groups on that side has been spawned. some AI vehicles may still wander some distance from the mission center. -The distribution of missions is a bit West-favored on Altis (Ghost will fix). +The distribution of missions is a bit West-favored on Altis. +Mission spawning is broken on Namalsk diff --git a/README.md b/README.md index fb4c8ff..34c2562 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,11 @@ Included is an updated version of blckeagls mission system. This began as an eff * Credits Epoch Mod developer team. + Exile Mod developer team. blckeagls - Mission system 2.0.2 + Thomas_TKO for new missions + porkeld for endless testing and feedback + Schalldampfer for bug reports and coding tips Grahame for suggestions for new features, coding improvements and updates to the Epoch-specific Configs. Narines - bug fixes and improvements. Bill (DBD Clan) for example compositions. @@ -27,7 +31,7 @@ Included is an updated version of blckeagls mission system. This began as an eff KiloSwiss (SEM) Hogscrapper (HC missions for A3) the Vampire (DZMS and VEMF) - The FUCHS (EMS) + The FUCHS lazylink (the original mission system) Matt11 (Wicked AI) Updates: Face (A3EAI/A3XAI) @@ -37,7 +41,7 @@ Included is an updated version of blckeagls mission system. This began as an eff * Compatability Works well with VEMF, SEM, and A3AI all running on the same server. -* Please see the change log for a full listing of the most current changes. +* Please see the change log for a full listing of the most recent changes. -------------------------- License diff --git a/StaticMissions-HowTo.txt b/StaticMissions-HowTo.txt deleted file mode 100644 index 2a15c85..0000000 --- a/StaticMissions-HowTo.txt +++ /dev/null @@ -1,46 +0,0 @@ - - -This update includes an optional ability to spawn static missions. -This can be done by laying out everything for your static mission in the editor, -then using a simple copy - paste - edit strategy. - -I have provided one example editor mission (staticMissionExamples.Altis) -which I have used to configure a static mission ( ). -My approach to doing this as follows: - -1) Start Arma with the following mods: - @epoch;@exile;@m3eden editor. - (adjust to meet your specific needs; obviously any additional mods such as those from CUP can be included). - -2) Start the Eden Editor. -3) Lay out your static mission. You should: - place a marker indicating where it will spawn (save your work) - Place all buldings, sandbags, etc (save your work) - Place any vehicle or air patrols - note that they will patrol using the postion at which you place them as the centerpoint of their patrol. - (save your work). - Place any static weapons. - (save your work). - Place a unit at each location you wish to have a group patrol. - Place some sort of ammo box, cardboard box, or other loot container. - Save your work. - - Note the postion of your marker. - Export all of the objects, units, and vehicles using the function supplied by M3EDEN Editor. - You want to use the export absolute position functions for this. - - Now, create a copy of one of the example missions. - Set the mission center to the position of your marker. - Carefully copy the data for your structures into the appropriate array. - Do the same for all other objects, vehicles, loot vehicles and so forth. - Note that you will need to edit the fields for AI, vehicle patrols etc to ensure that all require information is present. - - Once you have done this, add the file to the custom_server\Missions\Static\missions directory then - add an entry for your static mission to GMS_StaticMissionLists.sqf - -in order to specify additional options. Use the information provided in the example static missions to guide you. - -OPTIONAL - -Directly call functions to add units, vehicle patrols, air patrols etc. - -More to come on this. \ No newline at end of file diff --git a/Tools/Dynamic Missions/Dynamic Missions-How To.txt b/Tools/Dynamic Missions/Dynamic Missions-How To.txt deleted file mode 100644 index 68b6807..0000000 --- a/Tools/Dynamic Missions/Dynamic Missions-How To.txt +++ /dev/null @@ -1,47 +0,0 @@ -This tool formats most of the data required for dynamic missions based on what is present in your mission. -This include the layout of buildings, loot crates, markers, static weapons, and garrisons in buildings. -I recommend that you lay out dynamically spawned missions in the virtual reality map which minimizes confounding influences. - -A minimal mission would include: - A marker. - A way to define the mission center, which is a reference point relative to which everything is spawned. - The mission system will spawn AI, loot chests, emplaced weapons, vehicles and aircraft according to the defaults for the mission difficulty. - -The basic blckeagls missions have a bit more defined, usually some buildings to provide cover and make things more interesting. - -Now, you can add more detail including defining where infantry and statics spawn, where the one or more loot crates spawn, where vehicle patrols spawn and so forth. - To do this just place the representative objects where you want the mission to spawn them and the script should do the rest. - For infantry patrols, put one unit where you want the group to spawn. - Note: uniforms, weapons and other AI gear are not captured. You can however define _uniforms, _weapons and other AI gear for that mission. see the template and default2 missions for examples. - -You can also have infantry and/or static weapons garrison buildings using either of two approaches. - 1. place an object fo type garrisonMarkerObject inside the building you want to garrison. - I use a 100 cm sphere which is the default because it is easy to see and not used for much else. - The script will ensure that this building is identified for a garrison which will be spawned at the Arma pre-defined buildingPositions. - - 2. Manualy place statics and units inside buildings where you want them to spawn. - Infantry will change position (crouch, prone, stand) and turn but will not move which prevents their normal behavior to leave the buliding and look for players. - The position of statics (e.g., HMG, GMG) will be recorded accurately. - By default, the script looks for arrows. this is so that if you pull mission data as a player the locations are recorded acccurately (more on that below). - You can of course just place the units where you want them. - Regardless, be sure that unitMarkerObject is set to the classname of the object you use to demarcate the position of infantry units. - If you do use AI units to designate positions for your infantry, be sure to pull the data while in the editor rather than when playing the mission (see below). - - 3. You are now almost ready to pull the mission data. - I recommend that you use a road cone with a flashing light to define the mission center. - This is the approach I have taken for all blckeagles missions to date. - You could also use a loot crate. - The actual mission center will be offset 3 meters from this position for technical reasons. - -Once all that is done you are ready to pull the mission information. -To do that, from the EDEN Editor, - 1. go to tools\debug console. - 2. type execVM "pullDynamicMission.sqf"; in the box. - 3. hit Local exec - 4. hit Esc - 5. The script should run as indicated by text appearing in the lower left corner of your screen. - 6. When the text stops being updated, alt-tab out to your editor and paste the clipboard into it. - 7. You can now copy/past from that output into the relevant sections of the dynamic mission template, - after making a copy of course. - - diff --git a/Tools/Dynamic Missions/pullDynamicMission.VR/blck_defines.hpp b/Tools/Dynamic Missions/pullDynamicMission.VR/blck_defines.hpp deleted file mode 100644 index 00f0b7b..0000000 --- a/Tools/Dynamic Missions/pullDynamicMission.VR/blck_defines.hpp +++ /dev/null @@ -1,38 +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 GRGserver -#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 - - diff --git a/Tools/Dynamic Missions/pullDynamicMission.VR/directions.txt b/Tools/Dynamic Missions/pullDynamicMission.VR/directions.txt deleted file mode 100644 index bc896c2..0000000 --- a/Tools/Dynamic Missions/pullDynamicMission.VR/directions.txt +++ /dev/null @@ -1,61 +0,0 @@ -This tool formats most of the data required for dynamic missions based on what is present in your mission. -This include the layout of buildings, loot crates, markers, static weapons, and garrisons in buildings. -I recommend that you lay out dynamically spawned missions in the virtual reality map which minimizes confounding influences. - -A minimal mission would include: - A marker. You may use any marker you like. The new pullMarker script will format scripting needed to spawn that marker at the center of your mission. - A way to define the mission center, which is a reference point relative to which everything is spawned. - The mission system will spawn AI, loot chests, emplaced weapons, vehicles and aircraft according to the defaults for the mission difficulty. - -The basic blckeagls missions have a bit more defined, usually some buildings to provide cover and make things more interesting. - -Now, you can add more detail including defining where infantry and statics spawn, where the one or more loot crates spawn, where vehicle patrols spawn and so forth. -Loot crates, AI, static weapons or autonomous turrets can be spawned inside or on top of buildings. Even vehicles could be spawned on buildings in principle. - To do this just place the representative objects where you want the mission to spawn them and the script should do the rest. - For infantry patrols, put one unit where you want the group to spawn. - Note: uniforms, weapons and other AI gear are not captured. You can however define _uniforms, _weapons and other AI gear for that mission. see the template and default2 missions for examples. - -You can also have infantry and/or static weapons garrison buildings using either of two approaches. - 1. place an object fo type garrisonMarkerObject inside the building you want to garrison. - I use a 100 cm sphere which is the default because it is easy to see and not used for much else. - The script will ensure that this building is identified for a garrison which will be spawned at the Arma pre-defined buildingPositions. - - 2. Manualy place statics and units inside buildings where you want them to spawn. - Infantry will change position (crouch, prone, stand) and turn but will not move which prevents their normal behavior to leave the buliding and look for players. - The position of statics (e.g., HMG, GMG) will be recorded accurately. - By default, the script looks for arrows. this is so that if you pull mission data as a player the locations are recorded acccurately (more on that below). - You can of course just place the units where you want them. - Regardless, be sure that unitMarkerObject is set to the classname of the object you use to demarcate the position of infantry units. - If you do use AI units to designate positions for your infantry, be sure to pull the data while in the editor rather than when playing the mission (see below). - - 3. You are now almost ready to pull the mission data. - I recommend that you use a road cone with a flashing light to define the mission center. - This is the approach I have taken for all blckeagles missions to date. - You could also use a loot crate. - The actual mission center will be offset 3 meters from this position for technical reasons. - -Once all that is done you are ready to pull the mission information. -To do that, from the EDEN Editor, - - Preparation: copy all files from the tools\dynamicMissions\pullDynamicMissions folder into the folder containing the mission.sqm for your new mission. - Rename template.sqf to reflect the nature of your mission. - - Pulling Marker data. Start Arma, and select Editor. Load your new mission in the editor and hit Play. - Using the mouse wheel, select pull marker data. - Alt-tab out and paste into the appropriate spot in your new mission.sqf. - - Pulling all other mission data. - 1. go to tools\debug console. - 2. type execVM "pullDynamicMission.sqf"; in the box. - 3. hit Local exec - 4. hit Esc - 5. The script should run as indicated by text appearing in the lower left corner of your screen. - 6. When the text stops being updated, alt-tab out to your editor. - 7. You can now copy/past from that output into the relevant sections of the dynamic mission template. - - Final touchups. - The tools will pull all objects including any spheres, arrows or other aids. - Be sure to remove these or comment them out or they will show up in your final mission on your server. - Adjust the remaining settings in the template such as difficulty level to suit your needs. - Add the name of the mission to the list of missions to be spawned for that difficulty level. - Test everything to be sure diff --git a/Tools/Dynamic Missions/pullDynamicMission.VR/init.sqf b/Tools/Dynamic Missions/pullDynamicMission.VR/init.sqf deleted file mode 100644 index ae3be0e..0000000 --- a/Tools/Dynamic Missions/pullDynamicMission.VR/init.sqf +++ /dev/null @@ -1,4 +0,0 @@ - -player addAction["Pull MARKER Info","pullMarkerInfo.sqf"]; -player addAction["Set Mission Center @ Player Pos","setCenterAtPlayer.sqf"]; -player addAction["Pull DYNAMIC mission","pullDynamicMission.sqf"]; diff --git a/Tools/Dynamic Missions/pullDynamicMission.VR/mission.sqm b/Tools/Dynamic Missions/pullDynamicMission.VR/mission.sqm deleted file mode 100644 index 9b0c7c0..0000000 Binary files a/Tools/Dynamic Missions/pullDynamicMission.VR/mission.sqm and /dev/null differ diff --git a/Tools/Dynamic Missions/pullDynamicMission.VR/pullDynamicMission.sqf b/Tools/Dynamic Missions/pullDynamicMission.VR/pullDynamicMission.sqf deleted file mode 100644 index 6fd2134..0000000 --- a/Tools/Dynamic Missions/pullDynamicMission.VR/pullDynamicMission.sqf +++ /dev/null @@ -1,479 +0,0 @@ -_fn_isInside = { // returns true if an object is inside, underneath or on top of a building otherwise returns false. - ////////////////////// - // Determin if a unit is inside a building using two separate checkVisibility - ////////////////////// - // lineIntersects [ eyePos player, aimPos chopper, player, chopper] - params["_u",["_category","House"]]; - private ["_u","_pos","_above","_below"]; - _pos = getPosASL _u; - _above = lineIntersects [_pos, [_pos select 0, _pos select 1, (_pos select 2) + 100],_u]; - _below = lineintersects [_pos, [_pos select 0, _pos select 1, (_pos select 2) - 2],_u]; - diag_log format["_fn_isInside: _u %1 | _category = %5 | typeOf _u %4 | _above %2 | _below %3 ",_u,_above,_below,typeOf _u, _category]; - // If there is something above or below the object do a quick double-check to make sure there is a building there and not something else. - if (_above) then // test if any surfaces above are from buildingPos - { - _surfacesAbove = lineInterSectsSurfaces [_pos, [_pos select 0, _pos select 1, (_pos select 2) + 100],_u,_u,true,100]; - _above = false; - { - //diag_log format["_fn_isInside: _x-2 = %2 | typeOf _x = %3",_x,_x select 2,typeOf (_x select 2)]; - if ((_x select 2) isKindOf _category) then {_above = true}; - }forEach _surfacesAbove; - }; - if (_below) then - { - _surfacesBelow = lineInterSectsSurfaces [_pos, [_pos select 0, _pos select 1, (_pos select 2) - 10],_u,_u,true,100]; - _above = false; - { - //diag_log format["_fn_isInside: _x-2 = %2 | typeOf _x = %3",_x,_x select 2,typeOf (_x select 2)]; - if ((_x select 2) isKindOf _category) then {_above = true}; - }forEach _surfacesBelow; - }; - - _isInside = if (_above || _below) then {true} else {false}; - //diag_log format["_fn_isInside: _isInside = %1",_isInside]; - _isInside -}; - -_fn_buildingContainer = { // returns the builing containing an object or objNull - private["_u","_pos","_building","_surfacesAbove","_surfacesBelow"]; - params["_u",["_category","House"]]; - _pos = getPosASL _u; - private _building = objNull; - // lineIntersectsSurfaces [begPosASL, endPosASL, ignoreObj1, ignoreObj2, sortMode, maxResults, LOD1, LOD2, returnUnique] - _surfacesAbove = lineInterSectsSurfaces [_pos, [_pos select 0, _pos select 1, (_pos select 2) + 100],_u,_u,true,10]; - diag_log format["_surfacesAbove = %1",_surfacesAbove]; - { - if ((_x select 2) isKindOf _category && !(_x isEqualTo _u)) exitWith {_building = (_x select 2)}; - } forEach _surfacesAbove; - if (_building isEqualTo objNull) then - { - _surfacesBelow = lineInterSectsSurfaces [_pos, [_pos select 0, _pos select 1, (_pos select 2) - 10],_u,_u,true,100]; - diag_log format["_surfacesBelow = %1",_surfacesBelow]; - { - if ((_x select 2) isKindOf _category && !(_x isEqualTo _u)) exitWith {_building = (_x select 2)}; - } forEach _surfacesBelow; - }; - diag_log format["_fn_buildingContainer: _u = %1 | _building = %2",_u,_building]; - _building -}; - -_fn_isInfantry = { // returns true if a unit is on foot otherwise returns false. - ////////////////////// - // Determine if a unit isinfantry rather than a unit manning a turret or vehicle - ////////////////////// - _u = _this select 0; - private _isInfantry = if ((_u isKindOf "Man") && (vehicle _u) isEqualTo _u) then {true} else {false}; - //diag_log format["_fn_isInfantry: _isInfantry = %1",_isInfantry]; - _isInfantry -}; - -diag_log "========== =========================="; - -/////////////////// -// Define some values for our AI -// Change values of these variables to suit your needs -/////////////////// -#define aiDifficulty "Red" -#define minAI 3 -#define maxAI 6 -#define minPatrolRadius 30 -#define maxPatrolRadius 45 -#define AI_respawnTime 600 -#define aiVehiclePatrolRadius 75 -#define vehiclePatrolRespawnTime 600 -#define staticWeaponRespawnTime 600 -#define aiAircraftPatrolRespawnTime 600 -#define aiAircraftPatrolRadius 1700 -#define oddsOfGarrison 0.67 -#define maxGarrisonStatics 3 -#define maxGarrisonUnits 4 -#define typesGarrisonStatics [] // When empty a static will be randomly chosen from the defaults for blckeagls -#define garrisonMarkerObject "Sign_Sphere100cm_F" // This can be anything you like. I find this large sphere easy to see and convenient. -#define unitMarkerObject "Sign_Arrow_Direction_Green_F" // This can be anything. I chose this arrow type because it allows you to easily indicate direction. -#define objectAtMissionCenter "RoadCone_L_F" -#define lootVehicleMarker "Sign_Arrow_F" -#define landVehicles "LandVehicle" - -/////////////////// -// Define the coordinates of the center of the mission. -/////////////////// -if (isNil "CENTER") then -{ - CENTER = [0,0,0]; -}; -if (CENTER isEqualTo [0,0,0]) then -{ - hint "Please define a center point for your mission"; - _obj = allMissionObjects objectAtMissionCenter; - _obj1 = _obj select 0; - diag_log format["Determining position of first roadcone found which is located at %1 with player found at %2",getPos _obj1,position Player]; - if (count _obj > 0) then - { - CENTER = [3,3,0] vectorAdd (getPosATL _obj1); - }; - hint format["Position of Road Cone at %1 used to define mission center",CENTER]; - diag_log format["Position of Road Cone at %1 used to define mission center",CENTER]; - diag_log format["Player located at position %1",position player]; -}; -diag_log format["CENTER Set to %1",CENTER]; - -/////////////////// -// Identify any buildings in which a garrison should be spawned using the Arma building positions. -// Tell the script which buildings to garrison by placing an object inside that designates them as such. -// I use a large yellow sphere for this purpose. -// The function below assembles a list of such buildings for use in defining the data for mission buildings. -/////////////////// - -_cb = ""; - -////////////////// -// *** OPTIONAL **** -// Place a marker over your mission and configure it as you would like to to appear in the tame. -// The marker configuration will be included in the output of this script. -// Note ** Only the first marker placed will be processed ** -// Configure Marker -///////////////// - -diag_log format["<< ---- pullDynamicMision: START %1 ---- >>",diag_tickTime]; - -//////////////////////// -// Begin pulling data here -/////////////////////// - -_cb = _cb + format["_garrisonedBuildings_BuildingPosnSystem = [",endl]; -private _garrisonedBuildings = []; -private _allStatics = []; -_helpers = allMissionObjects garrisonMarkerObject; -//diag_log format["_helpers = %1",_helpers]; -{ - if ( (typeOf _x) isEqualTo garrisonMarkerObject) then - { - private _isInside = [_x] call _fn_isInside; - if (_isInside) then - { - _building = [_x] call _fn_buildingContainer; - _garrisonedBuildings pushbackunique _building; - _garrisonedBuildings pushbackunique _x; - // data structure ["building Classname",[/*building pos*/],/*building dir*/,/*odds of garrison*/, /*Max Statics*/,/*types statics*/,/*max units*/], - // 1 2 3 4 5 6 7 8 9 - _line = format[' ["%1",%2,%3,%4,%5,%6,%7,%8,%9]',typeOf _building,(getPosATL _building) vectorDiff CENTER,getDir _building, 'true','true',oddsOfGarrison,maxGarrisonStatics,typesGarrisonStatics,maxGarrisonUnits]; - systemChat _line; - //diag_log _line; - if (_forEachIndex == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; - }; - }; -} forEach _helpers; -_cb = _cb + format["%1];%1%1",endl]; - -_logging = format["_garrisonedBuildings = %1",_garrisonedBuildings]; -diag_log _logging; -systemChat _logging; -//diag_log format["_cb = %1%2",endl,_cb]; - -_configuredStatics = []; -_configuredStaticsPositions = []; -_configuredUnits = []; -/* - This bit will set up the garrison for each building having units and / or statics inside it or on top. - Coding must ensure that nothing is repeated but everything is captured. -*/ - -_fn_configureGarrisonForBuildingATL = { - private["_b","_staticsInBuilding","_unitsInBuilding","_staticsText","_unitsText","_buildingGarrisonATL","_staticsInBuilding","_unitsInBuilding","_count"]; - _b = _this select 0; - _count = 0; - if (_b in _garrisonedBuildings) exitWith {""}; - _staticsText = ""; - _unitsText = ""; - _buildingGarrisonATL = ""; - _staticsInBuilding = nearestObjects[getPosATL _building,["StaticWeapon"],sizeOf (typeOf _building)]; - { - if !(_x in _configuredStatics) then - { - _isInside = [_x] call _fn_isInside; - if (_isInside) then {_building = [_x] call _fn_buildingContainer}; - if (_b isEqualTo _building) then - { - _configuredStatics pushBackUnique _x; - //_configuredStaticsPositions pushBack (getPosATL _x) vectorDiff CENTER; - if (_staticsText isEqualTo "") then - { - _staticsText = format['["%1",%2,%3]',typeOf _x,(getPosATL _x) vectorDiff (getPosATL _b),getDir _x]; - } else { - _staticsText = _staticsText + format[',["%1",%2,%3]',typeOf _x,(getPosATL _x) vectorDiff (getPosATL _b),getDir _x]; - }; - }; - }; - } forEach _staticsInBuilding; - _unitsInBuilding = nearestObjects[getPosATL _building,[unitMarkerObject],sizeOf (typeOf _building)]; - - { - if !(_x in _configuredUnits) then - { - _isInside = [_x] call _fn_isInside; - if (_isInside) then {_building = [_x] call _fn_buildingContainer}; - if (_b isEqualTo _building) then - { - _configuredUnits pushBackUnique _x; - - if (_unitsText isEqualTo "") then - { - _unitsText = format["[%1,%2]",(getPosATL _x) vectorDiff (getPosATL _b),getDir _x]; - } else { - _unitsText = _unitsText + format[",[%1,%2]",(getPosATL _x) vectorDiff (getPosATL _b),getDir _x]; - }; - _count = _count + 1; - }; - }; - } forEach _unitsInBuilding; - if ( !(_staticsText isEqualTo "") || !(_unitsText isEqualTo "")) then - { - _buildingGarrisonATL = format[' ["%1",%2,%3,%4,%5,[%6],[%7]]',typeOf _b,(getPosATL _b) vectorDiff CENTER,getDir _b,'true','true',_staticsText,_unitsText]; - _garrisonedBuildings pushBackUnique _b; - }; - _buildingGarrisonATL -}; - -private _count = 0; -_cb = _cb + "_garrisonedBuilding_ATLsystem = ["; -{ - private _isInside = [_x] call _fn_isInside; - if (_isInside) then - { - private _building = [_x] call _fn_buildingContainer; - private _include = if ( !(_building in _garrisonedBuildings) && !((typeOf _building) isEqualTo unitMarkerObject) && !((typeOf _building) isEqualTo garrisonMarkerObject)) then {true} else {false}; - if (_include) then - { - //diag_log format["_x = %1 | _building = %1",_x,_building]; - private _buildingGarrisonInformation = [_building] call _fn_configureGarrisonForBuildingATL; - diag_log format["_buildingGarrisonInformation = %1",_buildingGarrisonInformation]; - if !(_buildingGarrisonInformation isEqualTo "") then - { - if (_count == 0) then - { - _cb = _cb + format["%1%2",endl,_buildingGarrisonInformation]; - } else { - _cb = _cb + format[",%1%2",endl,_buildingGarrisonInformation]; - }; - _count = _count + 1; - }; - }; - }; - -} forEach ((allMissionObjects "StaticWeapon") + (allMissionObjects "Man") + (allMissionObjects unitMarkerObject)); -_cb = _cb + format["%1];%1%1",endl]; - -/////////////////// -// Configure info remaining mission landscape -/////////////////// -_land = allMissionObjects "Static"; -_count = 0; -_cb = _cb + format["_missionLandscape = [",endl]; -{ - diag_log format["evaluating mission landscape: _x = %1 | typeOf _x = %1",_x, typeOf _x]; - //diag_log format["evaluating mission landscape: _x %1 | typeOf _x %1",_x, _x isKindOf "Helper_Base_F"]; - if !(_x in _garrisonedBuildings && !((typeOf _x) isEqualTo unitMarkerObject) && !((typeOf _x) isEqualTo garrisonMarkerObject)) then - { - _line = format[' ["%1",%2,%3,%4,%5]',typeOf _x,(getPosATL _x) vectorDiff CENTER,getDir _x, 'true','true']; - systemChat _line; - if (_count == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; - _count = _count + 1; - }; -}forEach allMissionObjects "Static"; -_cb = _cb + format["%1];%1%1",endl]; - -/////////////////// -// Configure loot boxes -/////////////////// -_cb = _cb + "_missionLootBoxes = ["; -{ - _line = format[' ["%1",%2,%3,%4,%5]',typeOf _x,(getPosATL _x) vectorDiff CENTER, '_crateLoot','_lootCounts',getDir _x]; - systemChat _line; - if (_forEachIndex == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; -}forEach ((allMissionObjects "ReammoBox") + (allMissionObjects "ReammoBox_F")); -_cb = _cb + format["%1];%1%1",endl]; - -/////////////////// -// Setup Info for loot vehicles -/////////////////// -_missionLootVehicles = []; -_missionVehicles = ((allMissionObjects "Car") + (allMissionObjects "Tank") + allMissionObjects "Ship"); -_lootVehicleMarkers = allMissionObjects lootVehicleMarker; -diag_log format["_lootVehicleMarkers = %1",_lootVehicleMarkers]; -_cb = _cb + format["_missionLootVehicles = ["]; -{ - _kindOf = "nothing"; - _isInside = [_x,"Car"] call _fn_isInside; - if (_isInside) then {_kindOf = "Car"}; - if !(_isInside) then {_isInside = [_x,"Ship"] call _fn_isInside}; - if (_isInside) then {_kindOf = "Ship"}; - if (_isInside) then - { - - _object = [_x,_kindOf] call _fn_buildingContainer; - diag_log format["object %1 is inside object %2",_x,_object]; - _missionLootVehicles pushBack _object; - _line = format[' ["%1",%2,%3,%4,%5]',typeOf _object,(getPosATL _x) vectorDiff CENTER, '_crateLoot','_lootCounts',getDir _x]; - systemChat _line; - if (_forEachIndex == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; - }; -} forEach allMissionObjects lootVehicleMarker; -_cb = _cb + format["%1];%1%1",endl]; - -/////////////////// -// Setup Info for vehicle patrols -/////////////////// -_cb = _cb + format["_missionPatrolVehicles = ["]; -{ - if ( !((typeOf _x) isKindOf "SDV_01_base_F") && !(_x in _missionLootVehicles) ) then - { - _line = format[' ["%1",%2,%3]',typeOf _x,(getPosATL _x) vectorDiff CENTER,getDir _x]; - systemChat _line; - if (_forEachIndex == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; - }; -}forEach ((allMissionObjects "Car") + (allMissionObjects "Tank") + allMissionObjects "Ship"); -_cb = _cb + format["%1];%1%1",endl]; - -_cb = _cb + "_submarinePatrolParameters = ["; -{ - if ((typeOf _x) isKindOf "SDV_01_base_F") then - { - _line = format[' ["%1",%2,%3]',typeOf _x,(getPosATL _x) vectorDiff CENTER,getDir _x]; - systemChat _line; - if (_forEachIndex == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; - }; -}forEach allMissionObjects "Ship"; -_cb = _cb + format["%1];%1%1",endl]; - -/////////////////// -// Configs for Air Patrols -/////////////////// -_cb = _cb + "_airPatrols = ["; - //[selectRandom _aircraftTypes,[22830.2,16618.1,11.4549],"blue",1000,60] -{ - _line = format[' ["%1",%2,%3]',typeOf _x,(getPosATL _x) vectorDiff CENTER,getDir _x, 'true','true']; - systemChat _line; - if (_forEachIndex == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; -}forEach allMissionObjects "Air"; -_cb = _cb + format["%1];%1%1",endl]; - -/////////////////// -// Setup info for remaining static/emplaced weapons -/////////////////// -_count = 0; -_cb = _cb + format["_missionEmplacedWeapons = ["]; -{ - - //if !(_x in _configuredStatics) then - private _isInside = [_x] call _fn_isInside; - if !(_isInside) then - { - // ["B_HMG_01_high_F",[22883.5,16757.6,6.31652],"blue",0,10] - _line = format[' ["%1",%2,%3]',typeOf _x,(getPosATL _x) vectorDiff CENTER,getDir _x, 'true','true']; - systemChat _line; - if (_count == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; - _count = _count + 1; - }; - -}forEach allMissionObjects "StaticWeapon"; -_cb = _cb + format["%1];%1%1",endl]; - -/////////////////// -// Setup information for infantry groups spawning outside buildings -/////////////////// -_cb = _cb + format["_missionGroups = ["]; -{ - //[[22920.4,16887.3,3.19144],"red",[1,2], 75,120], - _isInside = [_x] call _fn_isInside; - _isInfantry = [_x] call _fn_isInfantry; - //diag_log format["_missionGroups: _unit %1 | _isInside %2 _isInfantry %3",_x,_isInside,_isInfantry]; - if (_isInfantry) then - { - if (!(surfaceIsWater (getPos _x)) && !(_isInside) && !(isPlayer _x)) then - { - _line = format[' [%1,%2,%3,"%4",%5,%6]',(getPosATL _x) vectorDiff CENTER,minAI,maxAI,aiDifficulty,minPatrolRadius,maxPatrolRadius]; - systemChat _line; - if (_forEachIndex == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; - }; - }; -}forEach allMissionObjects "Man"; -_cb = _cb + format["%1];%1%1",endl]; - -_cb = _cb + "_scubaGroupParameters = ["; -{ - //[[22920.4,16887.3,3.19144],"red",[1,2], 75,120], - _isInside = [_x] call _fn_isInside; - _isInfantry = [_x] call _fn_isInfantry; - //diag_log format["_missionGroups: _unit %1 | _isInside %2 _isInfantry %3",_x,_isInside,_isInfantry]; - if (_isInfantry) then - { - if ((surfaceIsWater (getPos _x)) && !(_isInside) && !(isPlayer _x)) then - { - _line = format[' [%1,%2,%3,"%4",%5,%6]',(getPosATL _x) vectorDiff CENTER,minAI,maxAI,aiDifficulty,minPatrolRadius,maxPatrolRadius]; - systemChat _line; - if (_forEachIndex == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; - }; - }; -}forEach allMissionObjects "Man"; -_cb = _cb + format["%1];%1%1",endl]; - -/////////////////// -// All done, notify the user and copy the output to the clipboard -/////////////////// -_msg = "All Objects organzied, formated and copied to the Clipboard"; -hint _msg; -systemChat _msg; -systemChat format["_cb has %1 characters",count _cb]; -copyToClipboard _cb; -diag_log "DONE"; - diff --git a/Tools/Static Missions/StaticMissions-HowTo.txt b/Tools/Static Missions/StaticMissions-HowTo.txt deleted file mode 100644 index 5a9b5a9..0000000 --- a/Tools/Static Missions/StaticMissions-HowTo.txt +++ /dev/null @@ -1,38 +0,0 @@ - - -You can spawn static missions over land or on water. -This can be done by laying out everything for your static mission in the editor, -then exporting the data from your mission using a simple script and a copy - paste - edit strategy. - -My approach to doing this as follows: - -1) Start the Eden Editor. -2) Lay out your static mission. You should: - [Optional] place a marker indicating where it will spawn (save your work) - Place all buldings, sandbags, etc (save your work) - Place any vehicle, navel, sub or air patrols - note that they will patrol using the postion at which you place them as the centerpoint of their patrol. - (save your work). - Place any static weapons. These can be outside, on top of or inside buildings. - (save your work). - Place a unit at each location you wish to have a group patrol OUTSIDE buildings. These will spawn as infantry on land and scuba units over water. - Place a unit inside buildings as appropriate. - Place some sort of ammo box, cardboard box, or other loot container if you wish to have one. You can have as many as you like. - Save your work. - - ** NOTES ** - Uniforms, weapons and any other customization to units will not be preserved. - The defaults for blckeagls, or any specific definitions for _uniforms, _weapons, etc provided when the mission is spawned, will be used for these AI properties. - -3) Export the mission data using the tools provided. - In the EDEN editor, go to tools\debug console - in the box type execVM "pullStaticMission.sqf"; - Click 'local exec' - Hit Esc and wait for the script to run. You will see a notification in the lower left corner when it is done. - Alt-Tab out and past the output into your text editor. - Make a copy of the stati mission template. - Copy relevant information from the text you just grabbed with the clipboard to the template. - Make any edits or other adjustments needed. - - Once you have done this, add the file to the custom_server\Missions\Static\missions directory then - add an entry for your static mission to GMS_StaticMissionLists.sqf - diff --git a/Tools/Static Missions/pullStaticMissionInfo.Altis/blck_defines.hpp b/Tools/Static Missions/pullStaticMissionInfo.Altis/blck_defines.hpp deleted file mode 100644 index 00f0b7b..0000000 --- a/Tools/Static Missions/pullStaticMissionInfo.Altis/blck_defines.hpp +++ /dev/null @@ -1,38 +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 GRGserver -#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 - - diff --git a/Tools/Static Missions/pullStaticMissionInfo.Altis/directions.txt b/Tools/Static Missions/pullStaticMissionInfo.Altis/directions.txt deleted file mode 100644 index 2667f79..0000000 --- a/Tools/Static Missions/pullStaticMissionInfo.Altis/directions.txt +++ /dev/null @@ -1,60 +0,0 @@ -This tool formats most of the data required for STATIC missions based on what is present in your mission. -This include the layout of buildings, loot crates, markers, static weapons, and garrisons in buildings. - -A minimal mission would include: - A marker. You may use any marker you like. The new pullMarker script will format scripting needed to spawn that marker at the center of your mission. - The mission system will spawn AI, loot chests, emplaced weapons, vehicles and aircraft according to the defaults for the mission difficulty. - -The basic blckeagls static missions provided as examples have a bit more defined, usually some buildings to provide cover and make things more interesting. -I have added a new example mission, 'garrison.sqf', to illustrate technques you can use to tell the script which buildings to spawn AI in and where to spawn them. - -Note that you can add more detail including defining where infantry and statics spawn, where the one or more loot crates spawn, where vehicle patrols spawn and so forth. -Loot crates, AI, static weapons or autonomous turrets can be spawned inside or on top of buildings. Even vehicles could be spawned on buildings in principle. - To do this just place the representative objects where you want the mission to spawn them and the script should do the rest. - For infantry patrols, put one unit where you want the group to spawn. - Note: uniforms, weapons and other AI gear are not captured. You can however define _uniforms, _weapons and other AI gear for that mission. - See the template and default2 missions for examples. - -You can also have infantry and/or static weapons garrison buildings using either of two approaches. - 1. place an object of type garrisonMarkerObject inside the building you want to garrison. - I use a 100 cm sphere which is the default because it is easy to see and not used for much else. - The script will ensure that this building is identified for a garrison which will be spawned at the Arma pre-defined buildingPositions. - You can define the number of infantry and statics to spawn in these buildings. Their positions should be different each time the garrison is spawned. - Just like the other static AI, garrisons respawn. - - 2. Manualy place statics and units inside buildings where you want them to spawn. - Infantry will change position (crouch, prone, stand) and turn but will not move which prevents their normal behavior to leave the buliding and look for players. - The position of statics (e.g., HMG, GMG) will be recorded accurately. - To tell the script where you want units, turrets (HMG or anything else in the turret category) just place the units where you want them. - This can include some of the new, autonomous turrets. - -Once all that is done you are ready to pull the mission information. -To do that, from the EDEN Editor, - - 1. Preparation: copy all files from the tools\dynamicMissions\pullDynamicMissions folder into the folder containing the mission.sqm for your new mission. - Rename template.sqf to reflect the nature of your mission. - Open 'pullStaticMission.sqf' and check the preset definitions, all of which are set by #define. - Adjust these values as appropriate. - - 2. Pulling Marker data. Start Arma, and select Editor. Load your new mission in the editor and hit Play. - Using the mouse wheel, select pull marker data. - Alt-tab out and paste into the appropriate spot in your new mission.sqf. - - - 3. Pulling all other mission data. - Return to the editor. - Select 'tools' with then 'debug console'. - A window will pop up with a zone toward the center in which you can enter text. - 2. type execVM "pullDynamicMission.sqf"; in the box. - 3. hit Local exec - 4. hit Esc - 5. The script should run as indicated by text appearing in the lower left corner of your screen. - 6. When the text stops being updated, alt-tab out to your editor. - 7. You can now copy/past from that output into the relevant sections of the dynamic mission template. - - 4. Final touchups. - The tools will pull all objects including any spheres, arrows or other aids. - Be sure to remove these or comment them out or they will show up in your final mission on your server. - Adjust the remaining settings in the template such as difficulty level to suit your needs. - Add the name of the mission to the list of missions to be spawned for that difficulty level. - Test everything to be sure diff --git a/Tools/Static Missions/pullStaticMissionInfo.Altis/init.sqf b/Tools/Static Missions/pullStaticMissionInfo.Altis/init.sqf deleted file mode 100644 index 3240b7a..0000000 --- a/Tools/Static Missions/pullStaticMissionInfo.Altis/init.sqf +++ /dev/null @@ -1,3 +0,0 @@ - -player addAction["Pull MARKER Info","pullMarkerInfo.sqf"]; - diff --git a/Tools/Static Missions/pullStaticMissionInfo.Altis/mission.sqm b/Tools/Static Missions/pullStaticMissionInfo.Altis/mission.sqm deleted file mode 100644 index f490b1f..0000000 Binary files a/Tools/Static Missions/pullStaticMissionInfo.Altis/mission.sqm and /dev/null differ diff --git a/Tools/Static Missions/pullStaticMissionInfo.Altis/pullMarkerInfo.sqf b/Tools/Static Missions/pullStaticMissionInfo.Altis/pullMarkerInfo.sqf deleted file mode 100644 index da92aca..0000000 --- a/Tools/Static Missions/pullStaticMissionInfo.Altis/pullMarkerInfo.sqf +++ /dev/null @@ -1,60 +0,0 @@ - -_cb = ""; - -////////////////// -// *** OPTIONAL **** -// Place a marker over your mission and configure it as you would like to to appear in the tame. -// The marker configuration will be included in the output of this script. -// Note ** Only the first marker placed will be processed ** -// Configure Marker -///////////////// -/* - _markerType = ["ELIPSE",[175,175],"GRID"]; - _markerType = ["mil_triangle",[0,0]]; -*/ - -diag_log format["<< ---- START %1 ---- >>",diag_tickTime]; - -_allmkr = allMapMarkers; -diag_log format["_allmkr = %1",_allmkr]; -if (count _allmkr == 0) then -//if !(typeName _mk isEqualTo "STRING") then -{ - hint "No Marker Found, no Marker Definitions Will Be generated"; - uiSleep 5; -} else { - - _mk = _allmkr select 0; - diag_log format["_mk = %1",_mk]; - systemChat format["marker shape = %1",markerShape _mk]; - systemChat format["marker type = %1",markerType _mk]; - _cb = _cb + format['_missionCenter = %1;%2',MarkerPos _mk,endl]; - //systemChat - switch (markerShape _mk) do - { - case "ELLIPSE": { - _cb = _cb + format['_markerType = ["%1",%2,"%3"];%4',toUpper(MarkerShape _mk),getMarkerSize _mk,toUpper(markerBrush _mk),endl]; - }; - case "RECTANGLE": { - _cb = _cb + format['_markerType = ["%1",%2,"%3"];%4',toUpper(MarkerShape _mk),getMarkerSize _mk,toUpper(markerBrush _mk),endl]; - }; - case "ICON": { - _cb = _cb + format['_markerType = ["%1",[0,0]];%2',getMarkerType _mk,endl]; - }; - }; - _cb = _cb + format['_markerColor = "%1";%2',markerColor _mk,endl]; - _cb = _cb + format['_markerMissionName = "%1";%2',MarkerText _mk,endl]; - _cb = _cb + format['_markerLabel = "%1";%2',"",endl]; - _cb = _cb + format["%1%1",endl]; -}; - -/////////////////// -// All done, notify the user and copy the output to the clipboard -/////////////////// -_msg = "Marker Data organzied, formated and copied to the Clipboard"; -hint _msg; -systemChat _msg; -systemChat format["_cb has %1 characters",count _cb]; -copyToClipboard _cb; -diag_log "DONE"; - diff --git a/Tools/Static Missions/pullStaticMissionInfo.Altis/pullStaticMission.sqf b/Tools/Static Missions/pullStaticMissionInfo.Altis/pullStaticMission.sqf deleted file mode 100644 index 38487ab..0000000 --- a/Tools/Static Missions/pullStaticMissionInfo.Altis/pullStaticMission.sqf +++ /dev/null @@ -1,414 +0,0 @@ - -_fn_isInside = { // returns true if an object is inside, underneath or on top of a building otherwise returns false. - ////////////////////// - // Determine if a unit is inside a building using two separate checkVisibility - ////////////////////// - // lineIntersects [ eyePos player, aimPos chopper, player, chopper] - _u = _this select 0; - private ["_u","_pos","_above","_below"]; - _pos = getPosASL _u; - _above = lineIntersects [_pos, [_pos select 0, _pos select 1, (_pos select 2) + 100],_u]; - _below = lineintersects [_pos, [_pos select 0, _pos select 1, (_pos select 2) - 2],_u]; - //diag_log format["_fn_isInside: _u %1 (%8)| typeOf _u %4 | _above %2 | _below %3 ",_u,_above,_below,typeOf _u]; - // If there is something above or below the object do a quick double-check to make sure there is a building there and not something else. - if (_above) then // test if any surfaces above are from buildingPos - { - _surfacesAbove = lineInterSectsSurfaces [_pos, [_pos select 0, _pos select 1, (_pos select 2) + 100],_u,_u,true,100]; - _above = false; - { - //diag_log format["_fn_isInside: _x-2 = %2 | typeOf _x = %3",_x,_x select 2,typeOf (_x select 2)]; - if ((_x select 2) isKindOf "House") then {_above = true}; - }forEach _surfacesAbove; - }; - if (_below) then - { - _surfacesBelow = lineInterSectsSurfaces [_pos, [_pos select 0, _pos select 1, (_pos select 2) - 10],_u,_u,true,100]; - _above = false; - { - //diag_log format["_fn_isInside: _x-2 = %2 | typeOf _x = %3",_x,_x select 2,typeOf (_x select 2)]; - if ((_x select 2) isKindOf "House") then {_above = true}; - }forEach _surfacesBelow; - }; - - _isInside = if (_above || _below) then {true} else {false}; - //diag_log format["_fn_isInside: _isInside = %1",_isInside]; - _isInside -}; - -_fn_buildingContainer = { // returns the builing containing an object or objNull - private["_u","_pos","_building","_surfacesAbove","_surfacesBelow"]; - _u = _this select 0; - _pos = getPosASL _u; - private _building = objNull; - // lineIntersectsSurfaces [begPosASL, endPosASL, ignoreObj1, ignoreObj2, sortMode, maxResults, LOD1, LOD2, returnUnique] - _surfacesAbove = lineInterSectsSurfaces [_pos, [_pos select 0, _pos select 1, (_pos select 2) + 100],_u,_u,true,10]; - { - if ((_x select 2) isKindOf "House" && !(_x isEqualTo _u)) exitWith {_building = (_x select 2)}; - } forEach _surfacesAbove; - if (_building isEqualTo objNull) then - { - _surfacesBelow = lineInterSectsSurfaces [_pos, [_pos select 0, _pos select 1, (_pos select 2) - 10],_u,_u,true,100]; - { - if ((_x select 2) isKindOf "House" && !(_x isEqualTo _u)) exitWith {_building = (_x select 2)}; - } forEach _surfacesBelow; - }; - //diag_log format["_fn_buildingContainer: _u = %1 | _building = %2",_u,_building]; - _building -}; - -_fn_isInfantry = { // returns true if a unit is on foot otherwise returns false. - ////////////////////// - // Determine if a unit isinfantry rather than a unit manning a turret or vehicle - ////////////////////// - _u = _this select 0; - private _isInfantry = if ((_u isKindOf "Man") && (vehicle _u) isEqualTo _u) then {true} else {false}; - //diag_log format["_fn_isInfantry: _isInfantry = %1",_isInfantry]; - _isInfantry -}; - -diag_log "========== =========================="; -_msg = "starting script, please wait"; -systemChat _msg; -hint _msg; -/////////////////// -// Identify any buildings in which a garrison should be spawned using the Arma building positions. -// Tell the script which buildings to garrison by placing an object inside that designates them as such. -// I use a large yellow sphere for this purpose. -// The function below assembles a list of such buildings for use in defining the data for mission buildings. -/////////////////// - -private _cb = ""; - - -/////////////////// -// Change values of these constants to suit your needs -/////////////////// -#define aiDifficulty "Red" -#define minAI 3 -#define maxAI 6 -#define patrolRadius 45 -#define AI_respawnTime 600 -#define AI_timesToRespawn -1 -#define aiVehiclePatrolRadius 75 -#define vehiclePatrolRespawnTime 600 -#define vehiclePatrolTimesToRespawn -1 -#define staticWeaponRespawnTime 600 -#define staticWeaponTimesToRespawn -1 -#define aiAircraftPatrolRespawnTime 600 -#define aiAircraftPatrolRadius 1700 -#define aircraftPatrolTimesToRespawn -1 -#define oddsOfGarrison 0.67 -#define maxGarrisonStatics 3 -#define maxGarrisonUnits 4 -#define typesGarrisonStatics [] // When empty a static will be randomly chosen from the defaults for blckeagls -#define garrisionsTimesToRespawn -1 -#define garrisonMarkerObject "Sign_Sphere100cm_F" // This can be anything you like. I find this large sphere easy to see and convenient. -#define unitMarkerObject "Man" //"Sign_Arrow_Direction_Green_F" // This can be anything. I chose this arrow type because it allows you to easily indicate direction. - -//////////////////////// -// Begin pulling data here -/////////////////////// - -_cb = _cb + format["_garrisonedBuildings_BuildingPosnSystem = [",endl]; -private _garrisonedBuildings = []; -_helpers = allMissionObjects garrisonMarkerObject; -//diag_log format["_helpers = %1",_helpers]; -{ - if ( (typeOf _x) isEqualTo garrisonMarkerObject) then - { - private _isInside = [_x] call _fn_isInside; - if (_isInside) then - { - _building = [_x] call _fn_buildingContainer; - _garrisonedBuildings pushbackunique _building; - _garrisonedBuildings pushbackunique _x; - // data structure ["building Classname",[/*building pos*/],/*building dir*/,/*odds of garrison*/, /*Max Statics*/,/*types statics*/,/*max units*/], - // 1 2 3 4 5 6 7 8 9 10 11 12 13 - _line = format[' ["%1",%2,[%3,%4],[%5,%6],"%7",%8,%9,10,%11,%12,%13]',typeOf _building,getPosASL _building,vectorDir _building, vectorUp _building, 'true','true',aiDifficulty,oddsOfGarrison,maxGarrisonStatics,typesGarrisonStatics,maxGarrisonUnits,AI_respawnTime,garrisionsTimesToRespawn]; - systemChat _line; - //diag_log _line; - if (_forEachIndex == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; - }; - }; -} forEach _helpers; -_cb = _cb + format["%1];%1%1",endl]; -//diag_log format["line (165): _cb = %1",_cb]; -_configuredStatics = []; -_configuredUnits = []; - -_fn_configureGarrisonForBuildingASL = { - private["_b","_staticsInBuilding","_unitsInBuilding","_staticsText","_unitsText","_buildingGarrisonASL","_staticsInBuilding","_unitsInBuilding","_count"]; - _b = _this select 0; - _count = 0; - if (_b in _garrisonedBuildings) exitWith {""}; - _staticsText = ""; - _unitsText = ""; - _buildingGarrisonASL = ""; - _staticsInBuilding = nearestObjects[getPosASL _building,["StaticWeapon"],sizeOf (typeOf _building)]; - { - if !(_x in _configuredStatics) then - { - _isInside = [_x] call _fn_isInside; - if (_isInside) then {_building = [_x] call _fn_buildingContainer}; - if (_b isEqualTo _building) then - { - _configuredStatics pushBackUnique _x; - - if (_staticsText isEqualTo "") then - { - _staticsText = format['["%1",%2,%3]',typeOf _x,(getPosASL _x) vectorDiff (getPosASL _b),getDir _x]; - } else { - _staticsText = _staticsText + format[',["%1",%2,%3]',typeOf _x,(getPosASL _x) vectorDiff (getPosASL _b),getDir _x]; - }; - }; - }; - } forEach _staticsInBuilding; - _unitsInBuilding = nearestObjects[getPosASL _building,[unitMarkerObject],sizeOf (typeOf _building)]; - - { - if !(_x in _configuredUnits) then - { - _isInside = [_x] call _fn_isInside; - if (_isInside) then {_building = [_x] call _fn_buildingContainer}; - if (_b isEqualTo _building) then - { - _configuredUnits pushBackUnique _x; - - if (_unitsText isEqualTo "") then - { - _unitsText = format["[%1,%2]",(getPosASL _x) vectorDiff (getPosASL _b),getDir _x]; - } else { - _unitsText = _unitsText + format[",[%1,%2]",(getPosASL _x) vectorDiff (getPosASL _b),getDir _x]; - }; - _count = _count + 1; - }; - }; - } forEach _unitsInBuilding; - if ( !(_staticsText isEqualTo "") || !(_unitsText isEqualTo "")) then - { // 1 2 3 4 5 6 7 8 9 10 11 - _buildingGarrisonASL = format[' ["%1",%2,[%3,%4],[%5,%6],"%7",[%8],[%9],%10,%11]',typeOf _b,getPosASL _b,vectorDir _b,vectorUp _b,'true','true',aiDifficulty,_staticsText,_unitsText,AI_respawnTime,garrisionsTimesToRespawn]; - _garrisonedBuildings pushBackUnique _b; - }; - _buildingGarrisonASL -}; - -private _count = 0; -private _buildingCount = 0; -_cb = _cb + "_garrisonedBuilding_ASLsystem = ["; -{ - private _isInside = [_x] call _fn_isInside; - if (_isInside) then - { - private _building = [_x] call _fn_buildingContainer; - private _include = if ( !(_building in _garrisonedBuildings) && !((typeOf _building) isEqualTo unitMarkerObject) && !((typeOf _building) isEqualTo garrisonMarkerObject)) then {true} else {false}; - if (_include) then - { - //diag_log format["building info for garrisonedBuilding_ATL: _x = %1 | _building = %1",_x,_building]; - private _buildingGarrisonInformation = [_building] call _fn_configureGarrisonForBuildingASL; - //diag_log format["_buildingGarrisonInformation(ATL) = %1",_buildingGarrisonInformation]; - //diag_log format["_buildingGarrisonInformation(ATL) = %1",_buildingGarrisonInformation]; - //diag_log format["typeName _buildingGarrisonInformation(ATL) = %1",typeName _buildingGarrisonInformation]; - //if (typeName _buildingGarrisonInformation isEqualTo "STRING") then - //{ - //diag_log format["length _buildingGarrisonInformation(ATL) = %1",count (toArray(_buildingGarrisonInformation))]; - //}; - private _strLength = count(toArray(_buildingGarrisonInformation)); - if (_strLength > 0) then - { - if (_count == 0) then - { - _cb = _cb + format["%1%2",endl,_buildingGarrisonInformation]; - } else { - _cb = _cb + format[",%1%2",endl,_buildingGarrisonInformation]; - }; - - _count = _count + 1; - }; - }; - }; - -} forEach ((allMissionObjects "StaticWeapon") + (allMissionObjects unitMarkerObject)); -_cb = _cb + format["%1];%1%1",endl]; -diag_log format["line (227): _cb = %1",_cb]; -uiSleep 1; -/////////////////// -// Configure info remaining mission landscape -/////////////////// -_land = allMissionObjects "Static"; - -_count = 0; -_cb = _cb + format["_missionLandscape = [",endl]; -{ - diag_log format["evaluating mission landscape: _x = %1 | typeOf _x = %1",_x, typeOf _x]; - //diag_log format["evaluating mission landscape: _x %1 | typeOf _x %1",_x, _x isKindOf "Helper_Base_F"]; - if !(_x in _garrisonedBuildings && !((typeOf _x) isEqualTo unitMarkerObject) && !((typeOf _x) isEqualTo garrisonMarkerObject)) then - { - _line = format[' ["%1",%2,[%3,%4],[%5,%6]]',typeOf _x,getPosASL _x,vectorDir _x, vectorUp _x, 'true','true']; - - systemChat _line; - if (_count == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; - _count = _count + 1; - }; -}forEach allMissionObjects "Static"; -_cb = _cb + format["%1];%1%1",endl]; -diag_log format["line (276): _cb = %1",_cb]; - -/////////////////// -// Setup information for any remaining infantry groups -/////////////////// -_count = 0; -_cb = _cb + format["_aiGroupParameters = ["]; -{ - //[[22920.4,16887.3,3.19144],"red",[1,2], 75,120], - _isInside = [_x] call _fn_isInside; - _isInfantry = [_x] call _fn_isInfantry; - - diag_log format["_missionGroups: _unit %1 | _isInside %2 _isInfantry %3",_x,_isInside,_isInfantry]; - if (_isInfantry) then - { - if (!(surfaceIsWater (getPos _x)) && !(_isInside) && !(isPlayer _x) && !(_x in _configuredUnits)) then - { // 1 2 3 4 5 6 7 - _line = format[' [%1,"%2",[%3,%4],%5,%6,%7]',getPosASL _x,aiDifficulty,minAI,maxAI,patrolRadius,AI_respawnTime,AI_timesToRespawn]; - systemChat _line; - if (_count == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; - _count = _count + 1; - }; - }; -}forEach allMissionObjects "Man"; -_cb = _cb + format["%1];%1%1",endl]; -diag_log format["line (303): _cb = %1",_cb]; - -_count = 0; -_cb = _cb+ format["_aiScubaGroupParameters = ["]; -{ - //[[22920.4,16887.3,3.19144],"red",[1,2], 75,120], - if (surfaceIsWater (getPos _x)) then - { // 1 2 3 4 5 6 7 - _line = format[' [%1,"%2",[%3,%4],%5,%6,%7]',getPosASL _x,aiDifficulty,minAI,maxAI,patrolRadius,AI_respawnTime,AI_timesToRespawn]; - systemChat _line; - if (_count == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; - _count = _count + 1; - }; -}forEach allMissionObjects "Man"; -_cb = _cb + format["%1];%1%1",endl]; -diag_log format["line (321)): _cb = %1",_cb]; - -/////////////////// -// Setup Info for vehicle patrols -/////////////////// -_cb = _cb + format["_vehiclePatrolParameters = ["]; -{ - if !((typeOf _x) isKindOf "SDV_01_base_F") then - { - _line = format[' ["%1",%2,"%3",%4,%5,%6]',typeOf _x, getPosASL _x, aiDifficulty,aiVehiclePatrolRadius,vehiclePatrolRespawnTime,vehiclePatrolTimesToRespawn]; //["B_G_Offroad_01_armed_F",[22809.5,16699.2,0],"blue",600,10] - systemChat _line; - if (_forEachIndex == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; - }; -}forEach ((allMissionObjects "Car") + (allMissionObjects "Tank") + allMissionObjects "Ship"); -_cb = _cb + format["%1];%1%1",endl]; - -/////////////////// -// Configs for Air Patrols -/////////////////// -_cb = _cb + "_airPatrols = ["; - //[selectRandom _aircraftTypes,[22830.2,16618.1,11.4549],"blue",1000,60] -{ - _line = format[' ["%1",%2,"%3",%4,%5,%6]',typeOf _x, getPosASL _x, aiDifficulty,aiAircraftPatrolRadius,aiAircraftPatrolRespawnTime,aircraftPatrolTimesToRespawn]; - systemChat _line; - if (_forEachIndex == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; -}forEach allMissionObjects "Air"; -_cb = _cb + format["%1];%1%1",endl]; - -/////////////////// -// Setup info for static/emplaced weapons -/////////////////// -_count = 0; -_cb = _cb + format["_missionEmplacedWeapons = ["]; -{ - if !(_x in _configuredStatics) then - { - // ["B_HMG_01_high_F",[22883.5,16757.6,6.31652],"blue",0,10] - // 1 2 3 4 5 6 - _line = format[' ["%1",%2,"%3",%4,%5,%6]',typeOf _x,getPosASL _x,aiDifficulty,0,staticWeaponRespawnTime,staticWeaponTimesToRespawn]; - systemChat _line; - if (_count == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; - _count = _count + 1; - }; -}forEach allMissionObjects "StaticWeapon"; -_cb = _cb + format["%1];%1%1",endl]; - -_cb = _cb + "_submarinePatrolParameters = ["; -{ - if ((typeOf _x) isKindOf "SDV_01_base_F") then - { // 1 2 3 4 5 6 - _line = format[' ["%1",%2,"%3",%4,%5,%6]',typeOf _x, getPosASL _x, aiDifficulty,aiSubmarinePatrolRadius,vehicleSubmarineRespawnTime,vehiclePatrolTimesToRespawn]; //["B_G_Offroad_01_armed_F",[22809.5,16699.2,0],"blue",600,10] - systemChat _line; - if (_forEachIndex == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; - }; -}forEach allMissionObjects "Ship"; -_cb = _cb + format["%1];%1%1",endl]; - -_cb = _cb + "_missionLootBoxes = ["; -{ - // [selectRandom blck_crateTypes,[22904.8,16742.5,6.30195],[[0,1,0],[0,0,1]],[true,false], _crateLoot, _lootCounts] - _line = format[' ["%1",%2,%3,[true,false],_crateLoot,_lootCounts]',typeOf _x,getPosASL _x,[VectorDir _x, VectorUp _x]]; - systemChat _line; - if (_forEachIndex == 0) then - { - _cb = _cb + format["%1%2",endl,_line]; - } else { - _cb = _cb + format[",%1%2",endl,_line]; - }; -}forEach (allMissionObjects "ReammoBox") + (allMissionObjects "ReammoBox_F"); -_cb = _cb + format["%1];%1%1",endl]; - - -/////////////////// -// All done, notify the user and copy the output to the clipboard -/////////////////// -_msg = "All Objects organzied, formated and copied to the Clipboard"; -hint _msg; -systemChat _msg; -systemChat format["_cb has %1 characters",count _cb]; -copyToClipboard _cb; -//if (true) exitWith{diag_log _cb}; \ No newline at end of file diff --git a/Tools/Static Missions/pullStaticMissionInfo.Altis/template.sqf b/Tools/Static Missions/pullStaticMissionInfo.Altis/template.sqf deleted file mode 100644 index d719e41..0000000 --- a/Tools/Static Missions/pullStaticMissionInfo.Altis/template.sqf +++ /dev/null @@ -1,97 +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. -*/ - -#include "privateVars.sqf"; - -_mission = "static mission template"; // Included for additional documentation. Not intended to be spawned as a mission per se. - -_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 - -/**************************************************** - - PLACE MARKER DEFINITIONS PULLED FROM YOUR MISSION BELOW - -*****************************************************/ - - - -/**************************************************** - - PLACE THE DATA DEFININING THE BUILDINGS, VEHICLES ETC. PULLED FROM YOUR MISSION BELOW - -*****************************************************/ - - - -/**************************************************** - - ENABLE ANY SETTINGS YOU LIKE FROM THE LIST BELOW. - iF THESE ARE NOT ENABLED THEN THE DEFAULTS DEFINED IN BLCK_CONFIG.SQF - AND THE MOD-SPECIFIC CONFIGURATIONS WILL BE USED. - -*****************************************************/ - -/* -_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. - -_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. -// 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. -_vests = blck_vests; // You can replace this list with a custom list of vests. -_backpacks = blck_backpacks; // You can replace this list with a custom list of backpacks. -_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. -_sideArms = blck_pistols; // You can replace this list with a custom list of sidearms. -*/ - - -//******************************************************** -// Do not modify anything below this line. -//******************************************************** -#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]; \ No newline at end of file diff --git a/changeLog.sqf b/changeLog.sqf index c7cc4eb..8f7ceba 100644 --- a/changeLog.sqf +++ b/changeLog.sqf @@ -5,9 +5,40 @@ Contributions by Narines: bug fixes, testing, infinite ammo fix. Ideas or code from that by He-Man, Vampire and KiloSwiss have been used for certain functions. Many thanks for new Coding and ideas from Grahame. + + Significant Changes: + + ===================== -6.98 Build 205 +7.00 Build 218 +New: Option to drop crates on a parachute at mission spawn which adds some randomness to where crates end up. + blck_spawnCratesTiming = "atMissionSpawnAir"; + +New: You can now add money to crates at static missions by defining the following parameter in your .sqf for the mission. + _crateMoney = 10000; + // this can be a value or a range such as [1000,10000]; + a random amount of money from 0 to the maximum defined will be added. + +New: Added some basic error checking and logging for incorrect entries for some key settings. + +New: 3DEN Editor plugin exports missions as .sqf formated text ready to paste into a file. + See the instructions in the @blckeagls_3DEN folder of this download for more information. + +Fixed: Don and Hostage missions could not be completed +Fixed: Missions tended to spawn all at once +Fixed: vehicles are spawned at a safe spot which should reduce unintended explosions +Fixed: Missions sometimes spawned on steep hillsides. +Fixed: Vehicles sometimes blew up on spawn. +Fixed: Money was not added to crates at dynamic missions + +Changed: Timers for spawning missions adjusted a bit to space out spawn/timeouts a bit more. +Changed: The system has been upgreaded to a state-based system, meaning only one script (GMS_fnc_mainThread)is running once all missions are initialized. +Changed: a lot of debugging was removed. +Changed: List of missions for dynamic Underwater missions was moved to \Missions\GMS_missionLIsts.sqf + + +6.98 Build 206 FIXED: few minor bug fixes. FIXED: Static Mission Loot vehicles are no longer deleted by Epoch servers when players enter them. FIXED: an error in coordinates for some randomly spawned missions tha added an extra 0 to the array with the coordinaates. @@ -28,8 +59,11 @@ Removed: some debugging and map sepcific settings from blck_custom_config.sqf Changed: some code for finding locations for a new mission. Added: all blckeagls map markers have the same prefix: "blckeagls_marker" -Known Issues - - Live AI Counts are sometimes inaccurate at UMS Dynamic Missions + + + + + 6.96 Build 199 Added support for Arma servers not running Epoch or Exile