diff --git a/@epochhive/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread.sqf b/@epochhive/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread.sqf index a7764d6..9a26e55 100644 --- a/@epochhive/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread.sqf +++ b/@epochhive/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread.sqf @@ -29,7 +29,7 @@ while {true} do if ((diag_tickTime - _timer5sec) > 5) then { //diag_log format["_fnc_mainThread:: (30) diag_tickTime = %1", diag_tickTime]; - diag_log format["_fnc_mainThread:: (31) blck_liveMissionAI = %1", blck_liveMissionAI]; + //diag_log format["_fnc_mainThread:: (31) blck_liveMissionAI = %1", blck_liveMissionAI]; _ai = +blck_liveMissionAI; { //diag_log format["_fnc_mainThread:: (34) evaluating liveAIArray %1 with diag_tickTime %2", _x,diag_tickTime]; @@ -42,7 +42,7 @@ while {true} do if (blck_debugLevel > 1) then {diag_log format["_fnc_mainTread:: blck_liveMissionAI updated to %1",blck_liveMissionAI];}; }; }forEach _ai; - diag_log format["_fnc_mainThread:: (44) blck_oldMissionObjects = %1", blck_oldMissionObjects]; + //diag_log format["_fnc_mainThread:: (44) blck_oldMissionObjects = %1", blck_oldMissionObjects]; _obj = +blck_oldMissionObjects; { @@ -56,14 +56,14 @@ while {true} do if (blck_debugLevel > 1) then {diag_log format["_fnc_mainTread:: blck_oldMissionObjects updated to %1",blck_oldMissionObjects];}; }; }forEach _obj; - diag_log format["_fnc_mainThread:: (59) blck_fnc_cleanupDeadAI = %1", blck_deadAI]; + //diag_log format["_fnc_mainThread:: (59) blck_fnc_cleanupDeadAI = %1", blck_deadAI]; [] call blck_fnc_cleanupDeadAI; if (_modType isEqualTo "Epoch") then { [] call blck_fnc_cleanEmptyGroups; }; // Exile cleans up empty groups automatically so this should not be needed with that mod. - diag_log format["_fnc_mainThread:: (66) blck_pendingMissions = %1", blck_pendingMissions]; + //diag_log format["_fnc_mainThread:: (66) blck_pendingMissions = %1", blck_pendingMissions]; { if (blck_debugLevel > 2) then {diag_log format["_fnc_mainThread:: -- >> _x = %1 and _x select 6 = %2",_x, _x select 6];}; if (_x select 6 > 0) then // The mission is not running, check the time left till it is spawned diff --git a/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_endMission.sqf b/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_endMission.sqf index 34b62ff..5831cf2 100644 --- a/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_endMission.sqf +++ b/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_endMission.sqf @@ -10,7 +10,7 @@ if (blck_useSignalEnd) then { - diag_log format["**** Minor\SM1.sqf:: _crate = %1",_crates select 0]; + //diag_log format["**** Minor\SM1.sqf:: _crate = %1",_crates select 0]; [_crates select 0] spawn blck_fnc_signalEnd; if (blck_debugLevel > 1) then @@ -20,10 +20,10 @@ }; params["_mines","_objects","_blck_AllMissionAI","_endMsg","_blck_localMissionMarker","_coords","_mission"]; [_mines] spawn blck_fnc_clearMines; - diag_log format["_fnc_endMission: (23) _objects = %1",_objects]; + //diag_log format["_fnc_endMission: (23) _objects = %1",_objects]; uisleep 0.1; [_objects, blck_cleanupCompositionTimer] spawn blck_fnc_addObjToQue; - diag_log format["_fnc_endMission:: (26) _blck_AllMissionAI = %1",_blck_AllMissionAI]; + //diag_log format["_fnc_endMission:: (26) _blck_AllMissionAI = %1",_blck_AllMissionAI]; uisleep 0.1; [_blck_AllMissionAI,blck_AliveAICleanUpTimer] spawn blck_fnc_addLiveAItoQue; [["end",_endMsg,_blck_localMissionMarker select 2]] call blck_fnc_messageplayers; @@ -31,5 +31,5 @@ [_blck_localMissionMarker select 0] execVM "debug\deleteMarker.sqf"; blck_ActiveMissionCoords = blck_ActiveMissionCoords - [ _coords]; blck_recentMissionCoords pushback [_coords,diag_tickTime]; - diag_log format["_fnc_endMission:: (34) _mission = %1",_mission]; + //diag_log format["_fnc_endMission:: (34) _mission = %1",_mission]; [_mission,"inactive",[0,0,0]] call blck_fnc_updateMissionQue; \ No newline at end of file diff --git a/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionAI.sqf b/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionAI.sqf index c647f5a..bf0cd32 100644 --- a/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionAI.sqf +++ b/@epochhive/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionAI.sqf @@ -17,7 +17,7 @@ _unitsPerGroup = floor(_unitsToSpawn/_noAIGroups); _ResidualUnits = _unitsToSpawn - (_unitsPerGroup * _noAIGroups); _blck_AllMissionAI = []; - diag_log format["_fnc_spawnMissionAI :: _unitsToSpawn %1 ; _unitsPerGroup %2 _ResidualUnits %3",_unitsToSpawn,_unitsPerGroup,_ResidualUnits]; + //diag_log format["_fnc_spawnMissionAI :: _unitsToSpawn %1 ; _unitsPerGroup %2 _ResidualUnits %3",_unitsToSpawn,_unitsPerGroup,_ResidualUnits]; switch (_noAIGroups) do { case 1: { // spawn the group near the mission center diff --git a/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_callInReinforcements.sqf b/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_callInReinforcements.sqf index 9abbd8d..b682365 100644 --- a/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_callInReinforcements.sqf +++ b/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_callInReinforcements.sqf @@ -1,6 +1,6 @@ /* Author: Ghostrider-DbD- - Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP + Inspiration: WAI / A3EAI / VEMF / IgiLoad / SDROP License: Attribution-NonCommercial-ShareAlike 4.0 International call with [ @@ -14,6 +14,7 @@ _headgear, _patrol ] call blck_spawnReinforcements + 1/23/17 */ params["_pos","_numAI","_skillAI","_chanceLoot","_lootCounts","_weapons","_uniforms","_headgear","_patrol"]; @@ -22,6 +23,7 @@ diag_log format["reinforcements:: Called with parameters _pos %1 _numAI %2 _skil private["_chopperType","_chopperTypeArmed","_spawnPos","_spawnVector","_spawnDistance"]; + // spawn an unarmed heli _chopperType = selectRandom["B_Heli_Transport_03_unarmed_EPOCH","O_Heli_Light_02_unarmed_EPOCH","I_Heli_Transport_02_EPOCH"]; @@ -29,7 +31,7 @@ _chopperType = selectRandom["B_Heli_Transport_03_unarmed_EPOCH","O_Heli_Light_02 diag_log format["reinforcements:: _chopperType seleted = %1",_chopperType]; _spawnVector = round(random(360)); -_spawnDistance = 1000; // + floor(random(1500)); // We need the heli to be on-site quickly to minimize the chance that a small mission has been completed before the paratroops are deployed and added to the list of live AI for the mission +_spawnDistance = 10; //00; // + floor(random(1500)); // We need the heli to be on-site quickly to minimize the chance that a small mission has been completed before the paratroops are deployed and added to the list of live AI for the mission _dropLoot = (random(1) < _chanceLoot); // Use the new functionality of getPos @@ -48,12 +50,9 @@ _supplyHeli flyInHeight 250; _supplyHeli setVehicleLock "LOCKED"; _supplyHeli addEventHandler ["GetOut",{(_this select 0) setFuel 0;(_this select 0) setDamage 1;}]; -clearWeaponCargoGlobal _supplyHeli; -clearMagazineCargoGlobal _supplyHeli; -clearItemCargoGlobal _supplyHeli; -clearBackpackCargoGlobal _supplyHeli; +[_supplyHeli] call blck_fnc_emptyObject; -[_supplyHeli,blck_ModType] call blck_fnc_protectVehicle; +[_supplyHeli] call blck_fnc_protectVehicle; private["_grpPilot","_unitPilot"]; // add pilot to helicopter //add pilot (single group) to supply helicopter @@ -99,8 +98,7 @@ _message = "A Helicopter Carrying Reinforcements was Spotted Near You!"; diag_log "reinforcements:: helispawned and inbound, message sent"; -// add a loop here that waits until the paragroup has been spawned so that we can return it. -//waitUntil {!isNull (_supplyHeli getVariable["paraGroup",grpNull])}; -//_grp = _supplyHeli getVariable["paraGroup"]; +_supplyHeli setVariable["blck_DeleteAt", (diag_tickTime + 300)]; +blck_missionVehicles pushback _supplyHeli; -//_grp \ No newline at end of file +_supplyHeli \ No newline at end of file diff --git a/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_dropReinforcements.sqf b/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_dropReinforcements.sqf index b720fde..ee3fd12 100644 --- a/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_dropReinforcements.sqf +++ b/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_dropReinforcements.sqf @@ -3,6 +3,7 @@ Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP License: Attribution-NonCommercial-ShareAlike 4.0 International called upon completion of weapoint. + 1/23/17 */ _grpPilot = _this; @@ -24,4 +25,4 @@ if (_dropLoot) then uiSleep 10; -[_supplyHeli] call blck_fnc_sendHeliHome; \ No newline at end of file +[_supplyHeli] spawn blck_fnc_sendHeliHome; \ No newline at end of file diff --git a/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaCrate.sqf b/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaCrate.sqf index bd389bc..a7046e2 100644 --- a/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaCrate.sqf +++ b/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaCrate.sqf @@ -69,13 +69,9 @@ _fn_monitorCrate = { { 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) ) then + if ( (((velocity _crate) select 2) < 0.1) || ((getPosATL _crate select 2) < 0.1) ) exitWith { uiSleep 10; // give some time for everything to settle - _crateOnGround = true; - _spawnCrate = false; - - //delete the chute for clean-up purposes detach _crate; deleteVehicle _chute; if (surfaceIsWater (getPos _crate)) then @@ -89,4 +85,4 @@ _fn_monitorCrate = { }; }; -[_crate,_chute] spawn _fn_monitorCrate; +[_crate,_chute] call _fn_monitorCrate; diff --git a/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaUnits.sqf b/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaUnits.sqf index 9a3736c..29c4394 100644 --- a/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaUnits.sqf +++ b/@epochhive/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaUnits.sqf @@ -2,16 +2,7 @@ Author: Ghostrider-DbD- Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP License: Attribution-NonCommercial-ShareAlike 4.0 International - call with - [ - _pos, // the position which AI should patrol - _dropPos, // heli from which they should para - _numAI, // Number to spawn - _skillAI, // Skill [blue, red, green, orange] - _weapons, // array of weapons to select from - _uniforms, // array of uniform choices - _headgear // array of uniform choices - ] call blck_spawnHeliParaTroops + 1/23/17 */ params["_supplyHeli","_missionPos","_numAI","_skillAI","_weapons","_uniforms","_headGear"]; @@ -117,11 +108,7 @@ _fn_cleanupTroops = { if ( (getPosATL _x select 2) < 0.1) then { if (surfaceIsWater (position _x)) then { diag_log format["_fnc_spawnParaUnits:: unit %1 at %2 deleted",_x, getPos _x]; - private["_unit"]; - _unit = _x; - { - _unit removeAllEventHandlers _x; - }forEach ["Killed","Fired","HandleDamage","HandleHeal","FiredNear"] + [_x] call blck_fnc_deleteAI; }; } else @@ -129,8 +116,6 @@ _fn_cleanupTroops = { }forEach units _group; uiSleep 1; }; - - }; diag_log "_fnc_spawnParaUnits:: waiting for paratroops to land"; diff --git a/@epochhive/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehicle.sqf b/@epochhive/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehicle.sqf index 525bb63..748b77e 100644 --- a/@epochhive/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehicle.sqf +++ b/@epochhive/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehicle.sqf @@ -15,9 +15,8 @@ _veh = createVehicle[_vehType, _pos, [], 0, "NONE"]; _modType = call blck_fnc_getModType; if (_modType isEqualTo "Epoch") then { - //_veh call EPOCH_server_vehicleInit; _veh call EPOCH_server_setVToken; - diag_log format["_fnc_spawnVehicle:: (20) EPOCH_server_setVToken performed for vehicle %1",_veh]; + //diag_log format["_fnc_spawnVehicle:: (20) EPOCH_server_setVToken performed for vehicle %1",_veh]; }; // params["_veh",["_clearInventory",true]]; [_veh,_clearInventory] call blck_fnc_configureMissionVehicle; diff --git a/@epochhive/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehiclePatrol.sqf b/@epochhive/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehiclePatrol.sqf index 5d42f0a..297aa07 100644 --- a/@epochhive/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehiclePatrol.sqf +++ b/@epochhive/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehiclePatrol.sqf @@ -16,11 +16,11 @@ params["_center","_pos",["_vehType","I_G_Offroad_01_armed_F"],["_minDis",30],["_ //_groupForVehiclePatrol = The group with which to man the vehicle if (isNull _group) exitWith {diag_log "[blckeagls] ERROR CONDITION:-->> NULL-GROUP Provided to _fnc_spawnVehiclePatrol"; objNull;}; -diag_log format["_fnc_spawnVehiclePatrol::->> _group = %1",_group]; +//diag_log format["_fnc_spawnVehiclePatrol::->> _group = %1",_group]; _safepos = [_pos,0,25,0,0,20,0] call BIS_fnc_findSafePos; _veh = [_vehType,_safepos] call blck_fnc_spawnVehicle; -diag_log format["spawnVehiclePatrol:: vehicle spawned is %1 of typeof %2",_veh, typeOf _veh]; +//diag_log format["spawnVehiclePatrol:: vehicle spawned is %1 of typeof %2",_veh, typeOf _veh]; private["_unitNumber"]; _unitNumber = 0; diff --git a/@epochhive/addons/custom_server/Compiles/blck_variables.sqf b/@epochhive/addons/custom_server/Compiles/blck_variables.sqf index 1ac8a9d..285c5cb 100644 --- a/@epochhive/addons/custom_server/Compiles/blck_variables.sqf +++ b/@epochhive/addons/custom_server/Compiles/blck_variables.sqf @@ -6,8 +6,8 @@ Last modified 10/25/16 */ //blck_variablesLoaded = false; -blck_debugON = true; -blck_debugLevel = 2; // Sets level of detail for debugging info - WIP. +blck_debugON = false; +blck_debugLevel = 0; // Sets level of detail for debugging info - WIP. blck_minFPS = 10; //////////////////////////////////////////////// diff --git a/@epochhive/addons/custom_server/Configs/blck_configs_epoch.sqf b/@epochhive/addons/custom_server/Configs/blck_configs_epoch.sqf index dc9539d..95dffe8 100644 --- a/@epochhive/addons/custom_server/Configs/blck_configs_epoch.sqf +++ b/@epochhive/addons/custom_server/Configs/blck_configs_epoch.sqf @@ -134,7 +134,7 @@ Last modified 8/1/15 blck_TMax_Blue = 200; blck_TMax_Red = 250; - blck_MissionTimout = 40*60; // 40 min + blck_MissionTimout = 60*60; // 40 min /**************************************************************** diff --git a/@epochhive/addons/custom_server/Configs/blck_configs_exile.sqf b/@epochhive/addons/custom_server/Configs/blck_configs_exile.sqf index 71eb155..a4d62f3 100644 --- a/@epochhive/addons/custom_server/Configs/blck_configs_exile.sqf +++ b/@epochhive/addons/custom_server/Configs/blck_configs_exile.sqf @@ -131,7 +131,7 @@ Last modified 8/1/15 blck_TMax_Blue = 200; blck_TMax_Red = 250; - blck_MissionTimout = 40*60; // 40 min + blck_MissionTimout = 60*60; // 40 min /**************************************************************** diff --git a/@epochhive/addons/custom_server/Configs/blck_custom_config.sqf b/@epochhive/addons/custom_server/Configs/blck_custom_config.sqf index 1fc0611..04b2900 100644 --- a/@epochhive/addons/custom_server/Configs/blck_custom_config.sqf +++ b/@epochhive/addons/custom_server/Configs/blck_custom_config.sqf @@ -25,9 +25,9 @@ if (blck_debugON) then diag_log "[blckeagls] Debug seting is ON, Custom configurations used"; //blck_mainThreadUpdateInterval = 10; - blck_enableOrangeMissions = -1; - blck_enableGreenMissions = -1; - blck_enableRedMissions = -1; + blck_enableOrangeMissions = 1; + blck_enableGreenMissions = 1; + blck_enableRedMissions = 1; blck_enableBlueMissions = 1; @@ -35,8 +35,8 @@ if (blck_debugON) then blck_AliveAICleanUpTimer = 10; // Time after mission completion at which any remaining live AI are deleted. blck_bodyCleanUpTimer = 10; - blck_SpawnEmplaced_Orange = 0; // Number of static weapons at Orange Missions - blck_SpawnEmplaced_Green = 0; // Number of static weapons at Green Missions + blck_SpawnEmplaced_Orange = 3; // Number of static weapons at Orange Missions + blck_SpawnEmplaced_Green = 2; // Number of static weapons at Green Missions blck_SpawnEmplaced_Blue = 1; // Number of static weapons at Blue Missions blck_SpawnEmplaced_Red = 2; @@ -60,12 +60,12 @@ if (blck_debugON) then blck_TMax_Orange = 31; //blck_reinforceBlue = [0.999, 2, 0.001]; - //blck_MissionTimout = 60; // 40 min + //blck_MissionTimout = 10; // 40 min blck_SkillsBlue = [ - ["aimingAccuracy",0.1], + ["aimingAccuracy",0.01], ["aimingShake",0.3], - ["aimingSpeed",0.5], + ["aimingSpeed",0.01], ["endurance",0.5], ["spotDistance",0.7], ["spotTime",0.7], diff --git a/@epochhive/addons/custom_server/init/blck_init.sqf b/@epochhive/addons/custom_server/init/blck_init.sqf index 0439e3f..cbc2975 100644 --- a/@epochhive/addons/custom_server/init/blck_init.sqf +++ b/@epochhive/addons/custom_server/init/blck_init.sqf @@ -36,7 +36,7 @@ if (_modType isEqualTo "Epoch") then waitUntil{blck_configsLoaded}; blck_configsLoaded = nil; diag_log "[blckeagles] Running getTraderCitiesEpoch to get location of trader cities"; - execVM "\q\addons\custom_server\Compiles\Functions\getTraderCitesEpoch.sqf";; + execVM "\q\addons\custom_server\Compiles\Functions\GMS_fnc_getTraderCitesEpoch.sqf";; }; if (_modType isEqualTo "Exile") then { @@ -45,7 +45,7 @@ if (_modType isEqualTo "Exile") then waitUntil {(isNil "blck_configsLoaded") isEqualTo false;}; waitUntil{blck_configsLoaded}; blck_configsLoaded = nil; - if (blck_blacklistTraderCities || blck_blacklistSpawns || blcklistConcreteMixerZones) then {execVM "\q\addons\custom_server\Compiles\Functions\getTraderCitesExile.sqf";}; + if (blck_blacklistTraderCities || blck_blacklistSpawns || blcklistConcreteMixerZones) then {execVM "\q\addons\custom_server\Compiles\Functions\GMS_fnc_getTraderCitesExile.sqf";}; }; // spawn map addons to give the server time to position them before spawning in crates etc. diff --git a/@epochhive/addons/custom_server/init/build.sqf b/@epochhive/addons/custom_server/init/build.sqf index 497f77c..feed234 100644 --- a/@epochhive/addons/custom_server/init/build.sqf +++ b/@epochhive/addons/custom_server/init/build.sqf @@ -1,4 +1,3 @@ private ["_version","_versionDate"]; - -_blck_version = "6.54 Build 33"; -_blck_versionDate = "1-23-17 8:00 AM"; +_blck_version = "6.54 Build 34"; +_blck_versionDate = "1-23-17 8:00 PM"; diff --git a/README.md b/README.md index e7cfcc3..2418f5b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ Blckegls mission system Ver 6.54 -Build 33 -Included is an updated version of blckeagls mission system which I started in as an effort to fix bugs in and upgrade version 2.0.2 as updated by Narines. At this time the mission system is almost entirely comprised of new code and takes advantage of new functions introduced with Arma updates over the past 2 years wherever possible, particularly when performance testing has shown a benefit. + +Build 34 + +Included is an updated version of blckeagls mission system. This began as an effort to fix bugs in and upgrade version 2.0.2 as updated by Narines and has now evolved to a complete reworking of almost all code. + * Installation: Please refer to Installation.txt for a detailed description of installation and what you need to add to BE filters. infiSTAR Users: you may need to whitelist _MainMarker depending on your settings. diff --git a/changeLog.sqf b/changeLog.sqf index e0b9020..d410e20 100644 --- a/changeLog.sqf +++ b/changeLog.sqf @@ -4,6 +4,10 @@ Loosely based on the AI mission system by blckeagls ver 2.0.2 Contributions by Narines: bug fixes, testing, infinite ammo fix. Ideas or code from that by Vampire and KiloSwiss have been used for certain functions. +1/23/17 Version 6.54 Build 34 +De-activated debug settings. +Commented out some logging that was no longer required. + 1/23/17 Version 6.54 Build 33 Fixed typos in GMS_fnc_vehicleMonitor.sqf Removed a few files that are not used or needed.