Adding back lost settings; debugging spawns / respawns of static missions

there is a lot of logging - ignore that for now.
This commit is contained in:
Ghostrider [GRG] 2023-10-14 12:50:53 -04:00
parent 40f257b149
commit de9852e16c
10 changed files with 75 additions and 99 deletions

View File

@ -11,9 +11,9 @@
params[["_missionList",[]],["_path",""],["_marker",""],["_difficulty","Red"],["_tMin",60],["_tMax",120],["_noMissions",1],["_isStatic",false]]; params[["_missionList",[]],["_path",""],["_marker",""],["_difficulty","Red"],["_tMin",60],["_tMax",120],["_noMissions",1],["_isStatic",false]];
//diag_log format["_addMissionToQue: _this = %1",_this]; //diag_log format["_addMissionToQue: _this = %1",_this];
//{ {
// diag_log format["_addMissionToQue: _this %1 = %2",_forEachIndex, _this select _forEachIndex]; diag_log format["_addMissionToQue: _this %1 = %2",_forEachIndex, _this select _forEachIndex];
//} forEach _this; } forEach _this;
private "_waitTime"; private "_waitTime";
if (_isStatic) then { if (_isStatic) then {
@ -22,13 +22,13 @@ if (_isStatic) then {
_waitTime = diag_tickTime + (_tMin) + random((_tMax) - (_tMin)); _waitTime = diag_tickTime + (_tMin) + random((_tMax) - (_tMin));
}; };
//diag_log format["_addMissionToQue: _waitTime = %1",_waitTime]; diag_log format["_addMissionToQue: _waitTime = %1",_waitTime];
private _missionsData = []; // Parameters definine each of the missions for this difficulty are stored as arrays here. private _missionsData = []; // Parameters definine each of the missions for this difficulty are stored as arrays here.
{ {
private _missionFile = format["\GMS\Missions\%1\%2.sqf",_path,_x]; private _missionFile = format["\GMS\Missions\%1\%2.sqf",_path,_x];
//diag_log format["_addMissionToQue: _missionFile = %1",_missionFile]; diag_log format["_addMissionToQue: _missionFile = %1",_missionFile];
private _missionCode = compileFinal preprocessFileLinenumbers _missionFile;//return all of the values that define how the mission is spawned as an array of values 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 if !(isNil "_missionCode") then
{ {
@ -36,10 +36,10 @@ private _missionsData = []; // Parameters definine each of the missions for this
if !(isNil "_data") then if !(isNil "_data") then
{ {
_missionsData pushBack _data; _missionsData pushBack _data;
//diag_log format["_addMissionToQue: _data = %1",_data]; diag_log format["_addMissionToQue: _data = %1",_data];
}; };
} else { } else {
//diag_log format["bad path\mission combination %1",_missionFile]; diag_log format["bad path\mission combination %1",_missionFile];
}; };
} forEach _missionList; } forEach _missionList;
@ -56,7 +56,7 @@ private _missions = [
_missionsData, // Array of data about individual missions that could be spawned. The data table for each mission is defined in _missionSpawner _missionsData, // Array of data about individual missions that could be spawned. The data table for each mission is defined in _missionSpawner
_isStatic _isStatic
]; ];
//diag_log format["_addMissionToQue (55): _missions = %1",_missions]; diag_log format["_addMissionToQue (55): _missions = %1",_missions];
GMS_missionData pushBack _missions; GMS_missionData pushBack _missions;

View File

@ -25,7 +25,8 @@ params[
["_markerData",[]], ["_markerData",[]],
["_missionLootConfigs",[]], ["_missionLootConfigs",[]],
["_isScuba",false], ["_isScuba",false],
["_endCode",-1] ["_endCode",-1],
["_isStatic",false]
]; ];
//[format["_endMission: _endCode %1 | _markerData %2 | _endMsg %3",_endCode, _markerData, _endMsg]] call GMS_fnc_log; //[format["_endMission: _endCode %1 | _markerData %2 | _endMsg %3",_endCode, _markerData, _endMsg]] call GMS_fnc_log;
_missionData params [ _missionData params [
@ -95,20 +96,21 @@ switch (_endCode) do
[_coords, _markerName] spawn GMS_fnc_missionCompleteMarker; [_coords, _markerName] spawn GMS_fnc_missionCompleteMarker;
{ {
private ["_v","_posnVeh"]; //private ["_v","_posnVeh"];
_posnVeh = GMS_monitoredVehicles find _x; // returns -1 if the vehicle is not in the array else returns 0-(count GMS_monitoredVehicles -1) //_posnVeh = GMS_monitoredVehicles find _x; // returns -1 if the vehicle is not in the array else returns 0-(count GMS_monitoredVehicles -1)
if (_posnVeh >= 0) then //if (_posnVeh >= 0) then
{ //{
(GMS_monitoredVehicles select _posnVeh) setVariable ["missionCompleted", diag_tickTime]; // (GMS_monitoredVehicles select _posnVeh) setVariable ["missionCompleted", diag_tickTime];
} else { //} else {
_x setVariable ["missionCompleted", diag_tickTime]; _x setVariable ["missionCompleted", diag_tickTime];
GMS_monitoredVehicles pushback _x; GMS_monitoredVehicles pushBackUnique _x;
}; //};
} forEach _aiVehicles; } forEach _aiVehicles;
[_mines, 0] call GMSCore_fnc_deleteObjectsMethod; [_mines, 0] call GMSCore_fnc_deleteObjectsMethod;
[_objects, (diag_tickTime + GMS_cleanupCompositionTimer)] call GMSCore_fnc_addToDeletionCue; [_objects, (diag_tickTime + GMS_cleanupCompositionTimer)] call GMSCore_fnc_addToDeletionCue;
GMS_hiddenTerrainObjects pushBack[_hiddenObjects,(diag_tickTime + GMS_cleanupCompositionTimer)]; GMS_hiddenTerrainObjects pushBack[_hiddenObjects,(diag_tickTime + GMS_cleanupCompositionTimer)];
[_missionAI, (diag_tickTime + GMS_AliveAICleanUpTimer)] call GMSCore_fnc_addToDeletionCue; [_missionAI, (diag_tickTime + GMS_AliveAICleanUpTimer)] call GMSCore_fnc_addToDeletionCue;
if (_isStatic) then {[_crates, diag_tickTime + GMS_cleanupCompositionTimer] call GMSCore_fnc_addToDeletionCue};
[format["Mission Completed | _coords %1 : _markerClass %2 : _markerMissionName %3",_coords,_markerName,_markerName]] call GMS_fnc_log; [format["Mission Completed | _coords %1 : _markerClass %2 : _markerMissionName %3",_coords,_markerName,_markerName]] call GMS_fnc_log;
}; };
case 2: { // Aborted for moving a crate case 2: { // Aborted for moving a crate

View File

@ -201,6 +201,6 @@ private _missionData = [
]; ];
#define spawnPara -1 #define spawnPara -1
GMS_initializedMissionsList pushBack [_key, missionTimeoutAt, triggered, _missionData, _missionConfigs, spawnPara,_isStatic]; GMS_initializedMissionsList pushBack [_key, missionTimeoutAt, triggered, _missionData, _missionConfigs, spawnPara,_isStatic];
//[format["_initializeMission (163): count GMS_initializedMissionsList = %1",count GMS_initializedMissionsList]] call GMS_fnc_log; [format["_initializeMission (163): count GMS_initializedMissionsList = %1",count GMS_initializedMissionsList]] call GMS_fnc_log;
_initialized = 1; _initialized = 1;
_initialized _initialized

View File

@ -299,7 +299,7 @@ for "_i" from 1 to (count _missionsList) do
["_endCode",-1] ["_endCode",-1]
*/ */
//[format["_monitorSpawnedMissions: Catch case 1 - normal mission waypointCompletionRadius - at %1",diag_tickTime]] call GMS_fnc_log; //[format["_monitorSpawnedMissions: Catch case 1 - normal mission waypointCompletionRadius - at %1",diag_tickTime]] call GMS_fnc_log;
[_key, _missionData, _endMsg, _markerConfigs, _missionLootConfigs,_isscubamission, 1] call GMS_fnc_endMission; [_key, _missionData, _endMsg, _markerConfigs, _missionLootConfigs,_isscubamission, 1, _isStatic] call GMS_fnc_endMission;
// _missionConfigs is configured as: // _missionConfigs is configured as:
/* /*
@ -320,8 +320,12 @@ for "_i" from 1 to (count _missionsList) do
_spawnedAt // index 13 _spawnedAt // index 13
]; ];
*/ */
//_missionConfigs set[isSpawned,false]; _missionConfigs set[isSpawned,false];
//[format["_monitorSpawnedMissions (265): _markerMissionName %1: end of case 1 for mission completion",_markerMissionName]] call GMS_fnc_log; _missionConfigs set[spawnedAt,-1];
[format["_monitorSpawnedMissions (325): _markerMissionName %1: end of case 1 for mission completion",_markerMissionName]] call GMS_fnc_log;
[format["_monitorSpawnedMissions (326): _isSpawned %1 | _spawnedAt %2",_isSpawned,_spawnedAt]] call GMS_fnc_log;
[format["_monitorSpawnedMissions (327): #isSpawned %1 | #spawnAt %2",isSpawned,spawnedAt]] call GMS_fnc_log;
[format["_monitorSpawneMissions (328): _missionConfigs select %1 = %2 | _missionConfigs select %3 = %4",spawnedAt,_missionConfigs select spawnedAt, isSpawned, _missionConfigs select isSpawned]] call GMS_fnc_log;
}; };
case 2: { // Abort, crate moved. case 2: { // Abort, crate moved.
@ -339,8 +343,8 @@ for "_i" from 1 to (count _missionsList) do
]; ];
*/ */
[format["_monitorSpawnedMissions: Catch case 2 - crate moved - at %1",diag_tickTime]] call GMS_fnc_log; [format["_monitorSpawnedMissions: Catch case 2 - crate moved - at %1",diag_tickTime]] call GMS_fnc_log;
[_key, _missionData, _endMsg, _markerConfigs, _missionLootConfigs, _isscubamission, 2] call GMS_fnc_endMission; [_key, _missionData, _endMsg, _markerConfigs, _missionLootConfigs, _isscubamission, 2, _isStatic] call GMS_fnc_endMission;
//_missionConfigs set [isSpawned,false]; _missionConfigs set [isSpawned,false];
}; };
case 3: { // Abort, key asset killed case 3: { // Abort, key asset killed
@ -354,13 +358,13 @@ for "_i" from 1 to (count _missionsList) do
["_endCode",-1] ["_endCode",-1]
*/ */
[format["_monitorSpawnedMissions: Catch case 3 - key asset killed - at %1",diag_tickTime]] call GMS_fnc_log; [format["_monitorSpawnedMissions: Catch case 3 - key asset killed - at %1",diag_tickTime]] call GMS_fnc_log;
[_key, _missionData, _assetKilledMsg, _markerConfigs, _missionLootConfigs,_isscubamission, 3] call GMS_fnc_endMission; [_key, _missionData, _assetKilledMsg, _markerConfigs, _missionLootConfigs,_isscubamission, 3, _isStatic] call GMS_fnc_endMission;
//_missionConfigs set [isSpawned,false]; _missionConfigs set [isSpawned,false];
}; };
case 4: { case 4: {
// Used for testing purposes only // Used for testing purposes only
//[format["Programed mission abort, debug level >= 4"]] call GMS_fnc_log; [format["Programed mission abort, debug level >= 4"]] call GMS_fnc_log;
/* /*
["_key",-1], ["_key",-1],
["_missionData",[]], ["_missionData",[]],
@ -371,8 +375,8 @@ for "_i" from 1 to (count _missionsList) do
["_endCode",-1] ["_endCode",-1]
*/ */
//diag_log format["_monitorSpawnedMissions: (286): _crates = %1 | _mines = %2",_crates,_mines]; //diag_log format["_monitorSpawnedMissions: (286): _crates = %1 | _mines = %2",_crates,_mines];
[_key, _missionData, "DEBUG SETTING >= 4", _markerConfigs, _missionLootConfigs, _isscubamission, 4] call GMS_fnc_endMission; [_key, _missionData, "DEBUG SETTING >= 4", _markerConfigs, _missionLootConfigs, _isscubamission, 4, _isStatic] call GMS_fnc_endMission;
//_missionConfigs set [isSpawned,false]; _missionConfigs set [isSpawned,false];
}; };
case 5: { // SIMULATED Normal Mission End case 5: { // SIMULATED Normal Mission End
@ -440,9 +444,9 @@ for "_i" from 1 to (count _missionsList) do
}; };
//diag_log format["_monitorSpawnedMissions: (360):_crates = %1",_crates]; //diag_log format["_monitorSpawnedMissions: (360):_crates = %1",_crates];
[_key, _missionData, _endMsg, _markerConfigs, _missionLootConfigs,_isscubamission, 5] call GMS_fnc_endMission; [_key, _missionData, _endMsg, _markerConfigs, _missionLootConfigs,_isscubamission, 5, _isStatic] call GMS_fnc_endMission;
//_missionConfigs set [isSpawned,false]; _missionConfigs set [isSpawned,false];
//[format["_monitorSpawnedMissions (363): _markerMissionName %1: end of case 1 for mission completion",_markerMissionName]] call GMS_fnc_log; [format["_monitorSpawnedMissions (363): _markerMissionName %1: end of case 1 for mission completion",_markerMissionName]] call GMS_fnc_log;
}; };
case 6: { case 6: {
// Mission not fully spawned yet for some reason. This should never happen but this case is included for completeness. // Mission not fully spawned yet for some reason. This should never happen but this case is included for completeness.
@ -451,7 +455,7 @@ for "_i" from 1 to (count _missionsList) do
}; };
case 7: { case 7: {
// The mission only just spawned - lets give it 60 sec to settle. // The mission only just spawned - lets give it 60 sec to settle.
//[format["_monitorSpawnedMissions: Catch case 7 - wating for mission to settle - at %1",diag_tickTime]] call GMS_fnc_log; [format["_monitorSpawnedMissions: Catch case 7 - wating for mission to settle - at %1",diag_tickTime]] call GMS_fnc_log;
_missionsList pushBack _el; _missionsList pushBack _el;
}; };
}; };

View File

@ -86,7 +86,7 @@ private _emplacedWepData = +_missionEmplacedWeapons; // So we dont overwrite t
[_wep,_empGroup] call GMSCore_fnc_loadVehicleCrew; [_wep,_empGroup] call GMSCore_fnc_loadVehicleCrew;
//diag_log format["_spawnEmplacedWeaponArray(91): _wep = %1 | getPos _wep = %2 | _static = %3",_wep, getPosATL _wep, _static]; //diag_log format["_spawnEmplacedWeaponArray(91): _wep = %1 | getPos _wep = %2 | _static = %3",_wep, getPosATL _wep, _static];
//_gunner setVariable["GRG_vehType","emplaced"]; //_gunner setVariable["GRG_vehType","emplaced"];
_emplacedAI append _units; _emplacedAI append (units _empGroup);
} else { } else {
[format["GMS_fnc_spawnEmplacedWeaponArray: Invalid classname %1 used in _missionEmplacedWeapons", _static],"warning"] call GMS_fnc_log; [format["GMS_fnc_spawnEmplacedWeaponArray: Invalid classname %1 used in _missionEmplacedWeapons", _static],"warning"] call GMS_fnc_log;
}; };

View File

@ -133,32 +133,20 @@ uiSleep delayTime;
_temp = [_coords,_simpleObjects,true] call GMS_fnc_spawnSimpleObjects; _temp = [_coords,_simpleObjects,true] call GMS_fnc_spawnSimpleObjects;
_objects append _temp; _objects append _temp;
[format["_spawnMissionAssets (136): _noAIGroups = %1 | _missionGroups = %2",_noAIGroups,_missionGroups]] call GMS_fnc_Log;
if (!(_missionGroups isEqualTo []) || _noAIGroups > 0) then // The idea is that defining groups in _missionGroups overrides the _noAIGroups setting if (!(_missionGroups isEqualTo []) || _noAIGroups > 0) then // The idea is that defining groups in _missionGroups overrides the _noAIGroups setting
{ {
_ai = [_coords, _minNoAI,_maxNoAI,_noAIGroups,_missionGroups,_difficulty,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms,_isScubaMission] call GMS_fnc_spawnMissionAI; _ai = [_coords, _minNoAI,_maxNoAI,_noAIGroups,_missionGroups,_difficulty,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms,_isScubaMission] call GMS_fnc_spawnMissionAI;
//[format["_spawnMissionAssets (_ai): count _ai = %1",count _ai]] call GMS_fnc_log;
_missionInfantry append _ai; _missionInfantry append _ai;
_unitsAdded = count _ai;
uiSleep delayTime; uiSleep delayTime;
}; };
//[format["_spawnMissionAssets (after spawning _missionGroups): _countUnits = %1 before / _unitsAdded = %2 | count _missionInfantry = %3",_countUnits,_unitsAdded,count _missionInfantry]] call GMS_fnc_log;
_countUnits = count _missionInfantry; _countUnits = count _missionInfantry;
if (!(_scubaGroupParameters isEqualTo []) || {_scubaPatrols > 0}) then if (!(_scubaGroupParameters isEqualTo []) || {_scubaPatrols > 0}) then
{ {
_ai = [_coords, _minNoAI,_maxNoAI,_scubaPatrols,_scubaGroupParameters,_difficulty,GMS_UMS_uniforms,GMS_UMS_headgear,GMS_UMS_vests,_backpacks,GMS_UMS_weapons,_sideArms,true] call GMS_fnc_spawnMissionAI; _ai = [_coords, _minNoAI,_maxNoAI,_scubaPatrols,_scubaGroupParameters,_difficulty,GMS_UMS_uniforms,GMS_UMS_headgear,GMS_UMS_vests,_backpacks,GMS_UMS_weapons,_sideArms,true] call GMS_fnc_spawnMissionAI;
_missionInfantry append _ai; _missionInfantry append _ai;
_unitsAdded = count _ai;
uiSleep delayTime; uiSleep delayTime;
}; };
//[format["_spawnMissionAssets (after spawning _scubaGroupParameters): _countUnits before = %1 | _unitsAdded = %2 | count _missionInfantry = %3",_countUnits,_unitsAdded,count _missionInfantry]] call GMS_fnc_log;
_countUnits = count _missionInfantry;
/*
No longer supported *****************************
*/
//if !(_missionGarrisonedGroups isEqualTo []) then {[_coords, _missionGarrisonedGroups,_difficulty,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call GMS_fnc_spawnGarrisonedUnits};
// TODO: 05/08/22 -> redo code to handle this // TODO: 05/08/22 -> redo code to handle this
if !(_hostageConfig isEqualTo []) then if !(_hostageConfig isEqualTo []) then
@ -182,7 +170,7 @@ if !(_enemyLeaderConfig isEqualTo []) then
uiSleep delayTime; uiSleep delayTime;
}; };
// TODO: 05/08/22 -> redo code to handle this
/* /*
No longer needed as of Build 270 No longer needed as of Build 270
Kept for backwards compatibility with existing missions. Kept for backwards compatibility with existing missions.
@ -198,8 +186,7 @@ if !(_garrisonedBuilding_ATLsystem isEqualTo []) then // Note that there is no
uiSleep delayTime; uiSleep delayTime;
//diag_log format["_fnc_spawnMissionAssets (after GMS_fnc_garrisonBuilding_ATLsystem): _unitsAdded = %1",_unitsAdded]; //diag_log format["_fnc_spawnMissionAssets (after GMS_fnc_garrisonBuilding_ATLsystem): _unitsAdded = %1",_unitsAdded];
}; };
//[format["_spawnMissionAssets (after spawning _garrisonedBuilding_ATLsystem): _countUnits before = %1 | _unitsAdded = %2 | count _missionInfantry = %3",_countUnits,count _missionInfantry]] call GMS_fnc_log;
_countUnits = count _missionInfantry;
/* /*
if !(_garrisonedBuildings_BuildingPosnSystem isEqualTo []) then if !(_garrisonedBuildings_BuildingPosnSystem isEqualTo []) then
{ {
@ -228,36 +215,27 @@ private _userelativepos = true;
if (GMS_useStatic && !(_missionEmplacedWeapons isEqualTo [])) then if (GMS_useStatic && !(_missionEmplacedWeapons isEqualTo [])) then
{ {
[format["_spawnMissionAssets (231): GMS_useStatic = %1 | _missionEmplacedWeapons = %2",GMS_useStatic,_missionEmplacedWeapons]] call GMS_fnc_log;
_temp = [_coords,_missionEmplacedWeapons,_userelativepos,_difficulty,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call GMS_fnc_spawnEmplacedWeaponArray; _temp = [_coords,_missionEmplacedWeapons,_userelativepos,_difficulty,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call GMS_fnc_spawnEmplacedWeaponArray;
_temp params["_statics","_units"]; _temp params["_statics","_units"];
_objects append _statics; _objects append _statics;
_missionInfantry append _units; _missionInfantry append _units;
_unitsAdded = count _units;
//[format["_monitorInitializedMissions (288): spawned emplaced weapons for _iconMarker %1 at %2 | with count _missionInfantry = %3 | with _statics = %4",_iconMarker,diag_tickTime,count _missionInfantry, _statics]];
uisleep delayTime; uisleep delayTime;
} else { } else {
if (([_noEmplacedWeapons] call GMSCore_fnc_getNumberFromRange) > 0) then { if (([_noEmplacedWeapons] call GMSCore_fnc_getNumberFromRange) > 0) then {
private _wepPositions = [_coords,_noEmplacedWeapons,35,50] call GMS_fnc_findPositionsAlongARadius; private _wepPositions = [_coords,_noEmplacedWeapons,35,50] call GMS_fnc_findPositionsAlongARadius;
[format["_spawnMissionAssests (242): _noEmplacedWeapons = %1 | _wepPositions = %2",_noEmplacedWeapons, _wepPositions]] call GMS_fnc_log;
private _emplacedWeaponsRandom = []; private _emplacedWeaponsRandom = [];
{ {
_static = selectRandom GMS_staticWeapons; _static = selectRandom GMS_staticWeapons;
//diag_log format["_spawnMissionAssets: _wepPositions %1 = %2",_foreachIndex, _x];
_emplacedWeaponsRandom pushBack [_static,_x,0]; _emplacedWeaponsRandom pushBack [_static,_x,0];
} forEach _wepPositions; } forEach _wepPositions;
//_useRelativePos = false;
_temp = [_coords,_emplacedWeaponsRandom,_userelativepos,_difficulty,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call GMS_fnc_spawnEmplacedWeaponArray; _temp = [_coords,_emplacedWeaponsRandom,_userelativepos,_difficulty,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call GMS_fnc_spawnEmplacedWeaponArray;
_temp params["_statics","_units"]; _temp params["_statics","_units"];
_objects append _statics; _objects append _statics;
_missionInfantry append _units; _missionInfantry append _units;
_unitsAdded = count _units;
//[format["_monitorInitializedMissions (233788): spawned emplaced weapons for _iconMarker %1 at %2 | with count _missionInfantry = %3 | with _statics = %4",_iconMarker,diag_tickTime,count _missionInfantry, _statics]];
uisleep delayTime; uisleep delayTime;
}; };
}; };
//[format["_spawnMissionAssets (after spawning _missionEmplacedWeapons): _countUnits before = %1 | _unitsAdded = %2 | count _missionInfantry = %2",_countUnits,_unitsAdded,count _missionInfantry]] call GMS_fnc_log;
_countUnits = count _missionInfantry;
if !(_missionLootVehicles isEqualTo []) then if !(_missionLootVehicles isEqualTo []) then
{ {
_lootVehicles = [_coords,_missionLootVehicles,_spawnCratesTiming] call GMS_fnc_spawnMissionLootVehicles; _lootVehicles = [_coords,_missionLootVehicles,_spawnCratesTiming] call GMS_fnc_spawnMissionLootVehicles;
@ -284,24 +262,18 @@ private _noPatrols = [_noVehiclePatrols] call GMSCore_fnc_getNumberFromRange;
if (GMS_useVehiclePatrols && {!(_missionPatrolVehicles isEqualTo [])}) then if (GMS_useVehiclePatrols && {!(_missionPatrolVehicles isEqualTo [])}) then
{ {
[format["_spawnMissionAssets (286): _noPatrols = %1 | _missionPatrolVehicles = %2",_noPatrols,_missionPatrolVehicles]] call GMS_fnc_log;
_temp = [_coords,_difficulty,_missionPatrolVehicles,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms,false,_vehicleCrewCount] call GMS_fnc_spawnMissionVehiclePatrols; _temp = [_coords,_difficulty,_missionPatrolVehicles,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms,false,_vehicleCrewCount] call GMS_fnc_spawnMissionVehiclePatrols;
_temp params["_vehs","_units"]; _temp params["_vehs","_units"];
_aiVehicles append _vehs; _aiVehicles append _vehs;
_missionInfantry append _units; _missionInfantry append _units;
_unitsAdded = count _units;
uiSleep delayTime; uiSleep delayTime;
} else { } else {
if (GMS_useVehiclePatrols && {(_noPatrols > 0)}) then if (GMS_useVehiclePatrols && {(_noPatrols > 0)}) then
{ {
private _spawnLocations = [_coords,_noVehiclePatrols,60,100] call GMS_fnc_findPositionsAlongARadius;
private _spawnLocations = [_coords,_noVehiclePatrols,60,100] call GMS_fnc_findPositionsAlongARadius;
[format["_spawnMissionAssets (286): _noPatrols = %1 | _spawnLocations = %2",_noPatrols,_spawnLocations]] call GMS_fnc_log;
private _vicsToSpawn = []; private _vicsToSpawn = [];
{ {
private _veh = [_difficulty] call GMS_fnc_selectPatrolVehicle; private _veh = [_difficulty] call GMS_fnc_selectPatrolVehicle;
//[format["GMS_fnc_spawnMissionVehiclePatrols: _veh %1 = %2",_forEachIndex,_veh]] call GMS_fnc_log;
_vicsToSpawn pushBack [_veh, _x vectorDiff _coords]; _vicsToSpawn pushBack [_veh, _x vectorDiff _coords];
}forEach _spawnLocations; }forEach _spawnLocations;
#define useRelativePos true #define useRelativePos true
@ -309,12 +281,10 @@ if (GMS_useVehiclePatrols && {!(_missionPatrolVehicles isEqualTo [])}) then
_temp params["_vehs","_units"]; _temp params["_vehs","_units"];
_aiVehicles append _vehs; _aiVehicles append _vehs;
_missionInfantry append _units; _missionInfantry append _units;
_unitsAdded = count _units;
uiSleep delayTime; uiSleep delayTime;
}; };
}; };
//[format["_spawnMissionAssets (after spawning _missionPatrolVehicles): _countUnits before = %1 | _unitsAdded = %2 | count _missionInfantry = %3",_countUnits,_unitsAdded,count _missionInfantry]] call GMS_fnc_log;
_countUnits = count _missionInfantry;
if (GMS_useVehiclePatrols && {((_submarinePatrols > 0) || {!(_submarinePatrolParameters isEqualTo [])} )} ) then if (GMS_useVehiclePatrols && {((_submarinePatrols > 0) || {!(_submarinePatrolParameters isEqualTo [])} )} ) then
{ {
_temp = [_coords,_noPatrols,_difficulty,_submarinePatrolParameters,_userelativepos,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms,_isScubaMission,_vehicleCrewCount] call GMS_fnc_spawnMissionVehiclePatrols; _temp = [_coords,_noPatrols,_difficulty,_submarinePatrolParameters,_userelativepos,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms,_isScubaMission,_vehicleCrewCount] call GMS_fnc_spawnMissionVehiclePatrols;
@ -340,10 +310,8 @@ if (GMS_useVehiclePatrols && {((_submarinePatrols > 0) || {!(_submarinePatrolPar
]; ];
*/ */
private _noChoppers = [_noChoppers] call GMSCore_fnc_getNumberFromRange; private _noChoppers = [_noChoppers] call GMSCore_fnc_getNumberFromRange;
[format["_spawnMissionAssets (340) _noChoppers = %1 | _airPatrols = %2",_noChoppers,_airPatrols]] call GMS_fnc_log;
if !(_airPatrols isEqualTo [] && {random(1) < _chanceHeliPatrol}) then // Spawn any choppers defined in the array if !(_airPatrols isEqualTo [] && {random(1) < _chanceHeliPatrol}) then // Spawn any choppers defined in the array
{ {
[format["_spawnMissionAssets (343) Spawning Helis according to mission specifications: %1",_airPatrols]] call GMS_fnc_log;
_temp = [_coords, _airPatrols,_difficulty,_uniforms,_headgear,_vests,_backpacks,_weaponList,_sidearms] call GMS_fnc_spawnMissionHelis; _temp = [_coords, _airPatrols,_difficulty,_uniforms,_headgear,_vests,_backpacks,_weaponList,_sidearms] call GMS_fnc_spawnMissionHelis;
_temp params["_helisSpawned","_unitsSpawned"]; _temp params["_helisSpawned","_unitsSpawned"];
GMS_monitoredVehicles append _helisSpawned; GMS_monitoredVehicles append _helisSpawned;
@ -356,7 +324,6 @@ if !(_airPatrols isEqualTo [] && {random(1) < _chanceHeliPatrol}) then // Spawn
{ {
// GMS_fnc_findPositionsAlongARadius: params["_center","_num","_minDistance","_maxDistance"]; // GMS_fnc_findPositionsAlongARadius: params["_center","_num","_minDistance","_maxDistance"];
private _spawnLocations = [_coords,_noChoppers,100,120] call GMS_fnc_findPositionsAlongARadius; private _spawnLocations = [_coords,_noChoppers,100,120] call GMS_fnc_findPositionsAlongARadius;
[format["_spawnMissionAssets:(355): Spawning Helis at Random Locations _spawnLocations = %1",_spawnLocations]] call GMS_fnc_log;
private _helisToSpawn = []; private _helisToSpawn = [];
private _availableHelis = [_difficulty] call GMS_fnc_selectMissionHelis; private _availableHelis = [_difficulty] call GMS_fnc_selectMissionHelis;
{ {
@ -369,11 +336,10 @@ if !(_airPatrols isEqualTo [] && {random(1) < _chanceHeliPatrol}) then // Spawn
GMS_aircraftPatrols append _helisSpawned; // Used to find nearest heli ... GMS_aircraftPatrols append _helisSpawned; // Used to find nearest heli ...
_aiVehicles append _helisSpawned; _aiVehicles append _helisSpawned;
_missionInfantry append _unitsSpawned; _missionInfantry append _unitsSpawned;
_unitsAdded = count _unitsSpawned;
uisleep delayTime; uisleep delayTime;
}; };
}; };
//[format["_spawnMissionAssets (after spawning _airPatrols): _countUnits before = %1 | _unitsAdded,count _missionInfantry = %3",_countUnits,_unitsAdded,count _missionInfantry]] call GMS_fnc_log;
if (_spawnCratesTiming in ["atMissionSpawnGround","atMissionSpawnAir"]) then if (_spawnCratesTiming in ["atMissionSpawnGround","atMissionSpawnAir"]) then
{ {
if (_missionLootBoxes isEqualTo []) then if (_missionLootBoxes isEqualTo []) then

View File

@ -38,11 +38,11 @@ if (GMS_missionsRunning >= GMS_maxSpawnedMissions) exitWith
*/ */
_missionDescriptors params["_key","_difficulty","_maxMissions","_activeMissions","_tMin","_tMax","_waitTime","_missionsData","_isStatic"]; _missionDescriptors params["_key","_difficulty","_maxMissions","_activeMissions","_tMin","_tMax","_waitTime","_missionsData","_isStatic"];
//{/ {
//diag_log format["_spawnNewMission: _this %1 = %2",_forEachIndex, _x]; diag_log format["_spawnNewMission: _this %1 = %2",_forEachIndex, _x];
//} forEach _missionDescriptors; } forEach _missionDescriptors;
//diag_log format["_spawnNewMission: _missionsData = %1",_missionsData]; diag_log format["_spawnNewMission: _missionsData = %1",_missionsData];
if (_missionsData isEqualTo []) exitWith {-1}; if (_missionsData isEqualTo []) exitWith {-1};
if (_activeMissions < _maxMissions && {diag_tickTime > _waitTime && {GMS_missionsRunning < GMS_maxSpawnedMissions}}) then if (_activeMissions < _maxMissions && {diag_tickTime > _waitTime && {GMS_missionsRunning < GMS_maxSpawnedMissions}}) then
@ -68,9 +68,9 @@ if (GMS_missionsRunning >= GMS_maxSpawnedMissions) exitWith
_spawnedAt // index 14 _spawnedAt // index 14
]; ];
*/ */
//{ {
// diag_log format["_spawnNewMission:_missionSelected: _this %1 = %2",_forEachIndex,_x]; diag_log format["_spawnNewMission:_missionSelected: _this %1 = %2",_forEachIndex,_x];
//} forEach _missionSelected; } forEach _missionSelected;
/* /*
params[ // for GMS_fnc_initialiZeMission are params[ // for GMS_fnc_initialiZeMission are
@ -80,7 +80,7 @@ if (GMS_missionsRunning >= GMS_maxSpawnedMissions) exitWith
"_isStatic" "_isStatic"
]; ];
*/ */
//diag_log format["_spawnNewMissions: _missionSelected = %1",_missionSelected]; diag_log format["_spawnNewMissions: _missionSelected = %1",_missionSelected];
private _missionInitialized = [_key,_missionSelected,GMS_dynamicMissionsSpawned,_isStatic] call GMS_fnc_initializeMission; private _missionInitialized = [_key,_missionSelected,GMS_dynamicMissionsSpawned,_isStatic] call GMS_fnc_initializeMission;
if (_missionInitialized == 1) then { // This is a dynamic mission s see if we can spawn another instance of this categore (blue, red, green, orange) if (_missionInitialized == 1) then { // This is a dynamic mission s see if we can spawn another instance of this categore (blue, red, green, orange)

View File

@ -17,7 +17,7 @@
changing any of these variables may break the mission system changing any of these variables may break the mission system
*/ */
GMS_locationBlackList = []; // Do not touch ... GMS_locationBlackList = []; // Do not touch ...
GMS_debugLevel = 1; // should be set to 0 ... GMS_debugLevel = 3; // should be set to 0 ...
[format["Loading configurations for Non-militarized servers"]] call GMS_fnc_log; [format["Loading configurations for Non-militarized servers"]] call GMS_fnc_log;
/* /*
@ -332,6 +332,7 @@ switch (GMSCore_modType) do
GMS_enableBlueMissions = 1; GMS_enableBlueMissions = 1;
GMS_numberUnderwaterDynamicMissions = 0; // Values from -1 (no UMS) to N (N Underwater missions will be spawned; static UMS units and subs will be spawned. GMS_numberUnderwaterDynamicMissions = 0; // Values from -1 (no UMS) to N (N Underwater missions will be spawned; static UMS units and subs will be spawned.
GMS_enableStaticMissions = 3; GMS_enableStaticMissions = 3;
#ifdef GRGserver #ifdef GRGserver
GMS_enableHunterMissions = 1; GMS_enableHunterMissions = 1;
GMS_enableScoutsMissions = 2; GMS_enableScoutsMissions = 2;
@ -348,7 +349,8 @@ switch (GMSCore_modType) do
GMS_TMin_Blue = 120; //3; GMS_TMin_Blue = 120; //3;
GMS_TMin_Red = 110; //4; GMS_TMin_Red = 110; //4;
GMS_TMin_UMS = 105; //5; GMS_TMin_UMS = 105; //5;
GMS_TMin_Statics = 60 * 35; // minimum time for RESPAWN of static missions
#ifdef GRGserver #ifdef GRGserver
GMS_TMin_Hunter = 100; //6; GMS_TMin_Hunter = 100; //6;
GMS_TMin_Scouts = 95; //7; GMS_TMin_Scouts = 95; //7;
@ -361,7 +363,9 @@ switch (GMSCore_modType) do
GMS_TMax_Blue = 160; //11; GMS_TMax_Blue = 160; //11;
GMS_TMax_Red = 150; //12; GMS_TMax_Red = 150; //12;
GMS_TMax_UMS = 13; GMS_TMax_UMS = 13;
GMS_TMax_Statics = GMS_TMin_Statics + 60; // Maximum time for RESAPWN of static missions
// Be sure the minimum is > than the time at which objects from the previous instance of a static mission are deleted
// That is set in GMS_cleanupCompositionTimer
#ifdef GRGserver #ifdef GRGserver
GMS_TMax_Hunter = 140; //14; GMS_TMax_Hunter = 140; //14;
GMS_TMax_Scouts = 130; //15; GMS_TMax_Scouts = 130; //15;

View File

@ -138,11 +138,11 @@ if (GMS_debugLevel > 0) then {
//GMS_minDistanceToPlayer = 1000; //GMS_minDistanceToPlayer = 1000;
//GMS_minDistanceFromTowns = 100; //GMS_minDistanceFromTowns = 100;
//GMS_preciseMapMarkers = true; //GMS_preciseMapMarkers = true;
//GMS_MissionTimeout = 300; //GMS_MissionTimeout = 60;
//GMS_cleanupCompositionTimer = 30; GMS_cleanupCompositionTimer = 30;
//GMS_AliveAICleanUpTimer = 30; GMS_AliveAICleanUpTimer = 30;
//GMS_bodyCleanUpTimer = 30; GMS_bodyCleanUpTimer = 30;
//GMS_vehicleDeleteTimer = 30; GMS_vehicleDeleteTimer = 30;
//GMS_maxSpawnedMissions = 15; //GMS_maxSpawnedMissions = 15;
//GMS_mainThreadUpdateInterval = 10; //GMS_mainThreadUpdateInterval = 10;
GMS_launchersPerGroup = 1; GMS_launchersPerGroup = 1;
@ -150,14 +150,14 @@ if (GMS_debugLevel > 0) then {
GMS_enableOrangeMissions = 0; GMS_enableOrangeMissions = 0;
GMS_enableGreenMissions = 0; // 10-02-2023 Tested with mission list= "FieldCamp", "FieldHQ", "factory", "fortification", "Camp_Moreell", "lager" GMS_enableGreenMissions = 0; // 10-02-2023 Tested with mission list= "FieldCamp", "FieldHQ", "factory", "fortification", "Camp_Moreell", "lager"
GMS_enableRedMissions = 0; // 10-2-2023 Tested with mission list= "fuelDepot", "junkyardWilly", "TraderBoss", "carThieves", "Ammunition_depot", "IDAP", "Outpost", "Service_Point" GMS_enableRedMissions = 0; // 10-2-2023 Tested with mission list= "fuelDepot", "junkyardWilly", "TraderBoss", "carThieves", "Ammunition_depot", "IDAP", "Outpost", "Service_Point"
GMS_enableBlueMissions = 1; // 10-2-2023 Tested with mission list= "sniperBase", "survivalSupplies", "Service_point", and "default" GMS_enableBlueMissions = 0; // 10-2-2023 Tested with mission list= "sniperBase", "survivalSupplies", "Service_point", and "default"
GMS_numberUnderwaterDynamicMissions = 0; GMS_numberUnderwaterDynamicMissions = 0;
GMS_enableHunterMissions = 0; GMS_enableHunterMissions = 0;
GMS_enableScoutsMissions = 1; GMS_enableScoutsMissions = 1;
GMS_enableStaticMissions = 0; GMS_enableStaticMissions = 1;
GMS_maxCrashSites = 1; GMS_maxCrashSites = 1;
GMS_noPatrolHelisBlue = 1; GMS_noPatrolHelisBlue = 0;
GMS_noPatrolHelisRed = 1; GMS_noPatrolHelisRed = 1;
GMS_noPatrolHelisGreen = 1; GMS_noPatrolHelisGreen = 1;
GMS_noPatrolHelisOrange = 1; GMS_noPatrolHelisOrange = 1;
@ -168,7 +168,7 @@ if (GMS_debugLevel > 0) then {
GMS_SpawnVeh_Orange = 2; // Number of static weapons at Orange Missions GMS_SpawnVeh_Orange = 2; // Number of static weapons at Orange Missions
GMS_SpawnVeh_Green = 2; // Number of static weapons at Green Missions GMS_SpawnVeh_Green = 2; // Number of static weapons at Green Missions
GMS_SpawnVeh_Blue = 1; // Number of static weapons at Blue Missions GMS_SpawnVeh_Blue = 1; // Number of static weapons at Blue Missions
GMS_SpawnVeh_Red = 1; // Number of static weapons at Red Missions GMS_SpawnVeh_Red = 0; // Number of static weapons at Red Missions
GMS_SpawnEmplaced_Orange = 2; // Number of static weapons at Orange Missions GMS_SpawnEmplaced_Orange = 2; // Number of static weapons at Orange Missions
GMS_SpawnEmplaced_Green = 2; // Number of static weapons at Green Missions GMS_SpawnEmplaced_Green = 2; // Number of static weapons at Green Missions
@ -199,7 +199,7 @@ if (GMS_debugLevel > 0) then {
GMS_TMin_Scouts = 45; GMS_TMin_Scouts = 45;
GMS_TMin_Crashes = 5; GMS_TMin_Crashes = 5;
GMS_TMin_UMS = 20; GMS_TMin_UMS = 20;
GMS_TMin_Statics = 60; // minimum time for RESPAWN of static missions GMS_TMin_Statics = 120; // minimum time for RESPAWN of static missions
//Maximum Spawn time between missions in seconds //Maximum Spawn time between missions in seconds
GMS_TMax_Blue = 12; GMS_TMax_Blue = 12;
GMS_TMax_Red = 15; GMS_TMax_Red = 15;

View File

@ -12,9 +12,9 @@
*/ */
class GMSBuild { class GMSBuild {
Version = "7.164"; Version = "7.165";
Build = "269"; Build = "270";
Date = "10-12-2023"; Date = "10-14-2023";
}; };
class CfgPatches { class CfgPatches {