diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_ai_offloadToClients.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_ai_offloadToClients.sqf index 6a05624..3a511be 100644 --- a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_ai_offloadToClients.sqf +++ b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_ai_offloadToClients.sqf @@ -68,4 +68,4 @@ diag_log format[ }; }; }; -} forEach _groups; +} forEach _groups; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_findRandomLocationWithinCircle.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_findRandomLocationWithinCircle.sqf new file mode 100644 index 0000000..477e5ea --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_findRandomLocationWithinCircle.sqf @@ -0,0 +1,15 @@ +/* + blck_fnc_findRandomLocationWithinCircle + Params["_center","_min","_max"]; + _center = center of the circle + _min = minimum distance from center of the position + _max = radius of the circle + private _pos + Return: _pos, the position generated +*/ + +params["_center","_min","_max"]; +private _vector = random(359); +private _radius = _min + (_min + random(_max - _min)); +private _pos = _center getPos[_radius,_vector]; +_pos \ 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 f916f3a..c5f52ab 100644 --- a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread.sqf +++ b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_mainThread.sqf @@ -75,7 +75,7 @@ while {true} do { if (_x select 2 /* isRunning */) then { - diag_log format["script name %1",_x select 0]; + //diag_log format["script name %1",_x select 0]; }; } forEach diag_activeSQFScripts; #endif diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_setAILocality.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_setAILocality.sqf index 60e529a..c5ca54a 100644 --- a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_setAILocality.sqf +++ b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_setAILocality.sqf @@ -74,4 +74,4 @@ else }; #endif false -}; \ No newline at end of file +}; diff --git a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_antiStickGroupy.sqf b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_antiStickGroupy.sqf new file mode 100644 index 0000000..b7a5ede --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_antiStickGroupy.sqf @@ -0,0 +1,98 @@ +// Changes type of waypont0 for the specified group to "MOVE" and updates time stamps, WP postion and Timout parameters accordinglyD. +/* + 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/ + + // 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; +_group setcombatmode "YELLOW"; +_group setBehaviour "COMBAT"; +_group setVariable["timeStamp",diag_tickTime]; +_wp = [_group, 0]; +_wpPos = getPos ((units _group) select 0); +_dir = _group getVariable["wpDir",0]; +_center = _group getVariable ["patrolCenter",_wpPos]; +if (_group getVariable["wpMode","random"] isEqualTo "random") then +{ + _dir = random(360); +} else { + _dir = (_group getVariable["wpDir",0]) + 70; + _group setVariable["wpDir",_dir]; +}; +_minDis = _group getVariable["minDis",25]; +_maxDis = _group getVariable["maxDis",30]; +_dis = (_minDis) + random( (_maxDis) - (_minDis) ); +_newPos = (_center) getPos[_dis,_dir]; +_wp setWPPos [_newPos select 0, _newPos select 1]; +_wp setWaypointCompletionRadius (_group getVariable["wpRadius",0]); +_wp setWaypointType "MOVE"; +_wp setWaypointName "move"; +_wp setWaypointBehaviour "COMBAT"; +_wp setWaypointCombatMode "RED"; +_wp setWaypointTimeout [10,15,20]; +_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 + if (blck_debugLevel > 2) then + { + diag_log format["_fnc_changeToMoveWaypoint: seting waypoint script for group %1 to SAD Mode",_group]; + }; + _wp setWaypointStatements ["true","this call blck_fnc_changeToSADWaypoint; diag_log format['====Updating timestamp for group %1 and changing its WP to a SAD Waypoint',group this];"]; + #else + _wp setWaypointStatements ["true","this call blck_fnc_changeToSADWaypoint;"]; + #endif +}; +if (_group getVariable["wpPatrolMode",""] isEqualTo "SENTRY") then +{ + #ifdef blck_debugMode + if (blck_debugLevel > 2) then + { + diag_log format["_fnc_changeToMoveWaypoint: seting waypoint script for group %1 to SENTRY Mode",_group]; + }; + _wp setWaypointStatements ["true","this call blck_fnc_changeToSentryWaypoint; diag_log format['====Updating timestamp for group %1 and changing its WP to a SENTRY Waypoint',group this];"]; + #else + _wp setWaypointStatements ["true","this call blck_fnc_changeToSentryWaypoint;"]; + #endif +}; +#ifdef blck_debugMode +if (blck_debugLevel > 2) then +{ + diag_log format["_fnc_changeToMoveWaypoint:: -- >> Waypoint statements for group %1 have been configured as %2",_group, waypointStatements _wp]; +}; +#endif diff --git a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_changeToMoveWaypoint.sqf b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_changeToMoveWaypoint.sqf index 6f653c4..b7a5ede 100644 --- a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_changeToMoveWaypoint.sqf +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_changeToMoveWaypoint.sqf @@ -10,6 +10,8 @@ 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/ + + // TODO: used for 'unstuck' cases */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; #ifdef blck_debugMode @@ -47,6 +49,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 { diff --git a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_changeToSADWaypoint.sqf b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_changeToSADWaypoint.sqf index b681760..6687c1e 100644 --- a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_changeToSADWaypoint.sqf +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_changeToSADWaypoint.sqf @@ -10,6 +10,8 @@ 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/ + + // TODO: Still needed? */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; @@ -30,7 +32,7 @@ _wp setWaypointName "sad"; _wp setWaypointBehaviour "COMBAT"; _wp setWaypointCombatMode "RED"; _wp setWaypointTimeout [10,15,20]; - +diag_log format['====Updating timestamp for group %1 and changing its WP to a Move Waypoint',group this]; #ifdef blck_debugMode if (blck_debugLevel > 2) then {_wp setWaypointStatements ["true","this call blck_fnc_changeToMoveWaypoint; diag_log format['====Updating timestamp for group %1 and changing its WP to a Move Waypoint',group this];"]}; #else diff --git a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_changeToSentryWaypoint.sqf b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_changeToSentryWaypoint.sqf index 6492552..48106d4 100644 --- a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_changeToSentryWaypoint.sqf +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_changeToSentryWaypoint.sqf @@ -1,5 +1,5 @@ // Sets the WP type for WP for the specified group and updates other atributes accordingly. -// TODO: Not used? How to use this? +// TODO: Not used? // Keep in for now. /* for ghostridergaming diff --git a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_create_AI_Group.sqf b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_create_AI_Group.sqf index dca73eb..aa13bc1 100644 --- a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_create_AI_Group.sqf +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_create_AI_Group.sqf @@ -29,4 +29,4 @@ _groupSpawned allowfleeing 0; _groupSpawned setspeedmode "FULL"; _groupSpawned setFormation blck_groupFormation; _groupSpawned setVariable ["blck_group",true]; -_groupSpawned +_groupSpawned \ No newline at end of file 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 60ec1ce..1311a7b 100644 --- a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_setNextWaypoint.sqf +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_setNextWaypoint.sqf @@ -36,23 +36,47 @@ private _arc = _group getVariable "wpArc"; // Increment in degrees to be use //_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]; -if (isNull _nearestEnemy) then -{ - // Use standard waypoint algorythms +// Extricate stuck group. +if (diag_tickTime > (_group getVariable "timeStamp") + _maxTime) exitWith +{ // try to get unit to move and do antiStuck actions + _group setBehaviour "CARELESS"; // We need them to forget about enemies and move + _group setCombatMode "BLUE"; // We need them to disengage and move private _vector = _wpDir + _arc + 180; // this should force units to cross back and forth across the zone being patrolled _group setVariable["wpDir",_vector,true]; private _newWPPos = _pos getPos[_patrolRadius,_vector]; _wp setWaypointPosition [_newWPPos,0]; - _group setBehaviour "SAFE"; // no enemies detected so lets put the group in a relaxed mode _wp setWaypointBehaviour "SAFE"; _wp setWaypointCompletionRadius 0; _wp setWaypointTimeout _wpTimeout; + _wp setWaypointType "MOVE"; + _group setCurrentWaypoint _wp; + //diag_log format["_fnc_setNextWaypoint[antiSticking]: _group = %1 | _newPos = %2 | waypointStatements = %3",_group,_newWPPos,waypointStatements _wp]; +}; + +// Move when no enemies are nearby +if (isNull _nearestEnemy) then +{ + // Use standard waypoint algorythms + /* + Have groups zig-zag back and forth their patrol area + Setting more relaxed criteria for movement and rules of engagement + */ + private _vector = _wpDir + _arc + 180; // this should force units to cross back and forth across the zone being patrolled + _group setVariable["wpDir",_vector,true]; + _group setCombatMode "YELLOW"; + private _newWPPos = _pos getPos[_patrolRadius,_vector]; + _wp setWaypointPosition [_newWPPos,0]; + _group setBehaviour "SAFE"; // no enemies detected so lets put the group in a relaxed mode + _wp setWaypointBehaviour "SAFE"; + _wp setWaypointCombatMode "YELLOW"; + _wp setWaypointCompletionRadius 0; + _wp setWaypointTimeout _wpTimeout; _group setCurrentWaypoint _wp; - //diag_log format["_fnc_setNextWaypoin[no enemies]t: _group = %1 | _newPos = %2 | waypointStatements = %3",_group,_newWPPos,waypointStatements _wp]; + //diag_log format["_fnc_setNextWaypoint[no enemies]: _group = %1 | _newPos = %2 | waypointStatements = %3",_group,_newWPPos,waypointStatements _wp]; } else { - // move toward that enemy using hunting logic - // possibly along patrol perimeter + // move toward nearest enemy using hunting logic // set mode to SAD / COMBAT /* _vector set to relative direction from leader to enemy +/- random adjustment of up to 33 degrees @@ -61,7 +85,7 @@ if (isNull _nearestEnemy) then when coupled with SAD behavior should cause interesting behaviors */ // [point1, point2] call BIS_fnc_relativeDirTo - private _vector = ([(leader _group),_nearestEnemy] call BIS_fnc_relativeDirTo) + (random(33)*selectRandom[-1,1]); + private _vector = ([_leader,_nearestEnemy] call BIS_fnc_relativeDirTo) + (random(33)*selectRandom[-1,1]); _group setVariable["wpDir",_vector]; private ["_huntDistance"]; @@ -81,13 +105,13 @@ if (isNull _nearestEnemy) then //diag_log format["_fnc_setextWaypoint: _pos = %1 | _patrolRadius = %5 | _newWPPos = %2 | _huntDistance = %3 | _vector = %4",_pos,_newWPPos,_huntDistance,_vector,_patrolRadius]; _wp setWaypointPosition [_newWPPos,0]; _wp setWaypointBehaviour "SAD"; - _group setBehaviour "AWARE"; + _group setBehaviour "COMBAT"; _wp setWaypointCombatMode "RED"; _wp setWaypointTimeout[30,45,60]; _wp setWaypointCompletionRadius 0; _group setCurrentWaypoint _wp; // Assume the same waypoint statement will be available - diag_log format["_fnc_setNextWaypoin[enemies]t: _group = %1 | _newPos = %2 | _nearestEnemy = 54 | waypointStatements = %3",_group,_newWPPos,waypointStatements _wp,_nearestEnemy]; + //diag_log format["_fnc_setNextWaypoint[enemies]t: _group = %1 | _newPos = %2 | _nearestEnemy = 54 | waypointStatements = %3",_group,_newWPPos,waypointStatements _wp,_nearestEnemy]; }; 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 9ffa735..a4958f8 100644 --- a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_simulationMonitor.sqf +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_simulationMonitor.sqf @@ -62,4 +62,4 @@ switch (toLower(blck_modType)) do }; } forEach blck_deadAI; // TODO: Add check for dead AI. -// TODO: Can this be run less often, say every 5 sec? +// TODO: Can this be run less often, say every 5 sec? \ No newline at end of file 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 d21e14e..02de51c 100644 --- a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_spawnGroup.sqf +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_spawnGroup.sqf @@ -13,7 +13,7 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; 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]]; +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]]; #ifdef blck_debugMode if (blck_debugLevel > 3) then @@ -57,8 +57,11 @@ if !(isNull _group) then } else { _launcherType = "none"; }; + private _unitPos = [_pos,3,6] call blck_fnc_findRandomLocationWithinCircle; //params["_pos","_aiGroup",_skillLevel,_uniforms, _headGear,_vests,_backpacks,_Launcher,_weaponList,_sideArms,_scuba]; - [_pos,_group,_skillLevel,_uniforms,_headGear,_vests,_backpacks,_launcherType, _weaponList, _sideArms, _scuba] call blck_fnc_spawnUnit; + [_unitPos,_group,_skillLevel,_uniforms,_headGear,_vests,_backpacks,_launcherType, _weaponList, _sideArms, _scuba] call blck_fnc_spawnUnit; + //private _unit = [_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); // params["_pos","_minDis","_maxDis","_group",["_mode","random"],["_pattern",["MOVE","SAD"]]]; @@ -68,7 +71,7 @@ if !(isNull _group) then // params["_pos","_minDis","_maxDis","_group",["_mode","random"],["_wpPatrolMode","SAFE"],["_soldierType","null"],["_patrolRadius",30],["_wpTimeout",[5.0,7.5,10]]]; #define infantryPatrolRadius 30 #define infantryWaypointTimeout [5,7.5,10] - [_pos,_minDist,_maxDist,_group,"random","SAD",_infantryType,infantryPatrolRadius,infantryWaypointTimeout] spawn blck_fnc_setupWaypoints; + [_pos,_minDist,_maxDist,_group,"random","SAD",_infantryType,_patrolRadius,infantryWaypointTimeout] spawn blck_fnc_setupWaypoints; }; } else { diff --git a/@GMS/addons/custom_server/Compiles/HC/GMS_fnc_HC_XferGroup.sqf b/@GMS/addons/custom_server/Compiles/HC/GMS_fnc_HC_XferGroup.sqf index 0afb336..b0bd5c9 100644 --- a/@GMS/addons/custom_server/Compiles/HC/GMS_fnc_HC_XferGroup.sqf +++ b/@GMS/addons/custom_server/Compiles/HC/GMS_fnc_HC_XferGroup.sqf @@ -18,4 +18,4 @@ _group = _this select 0; _tempEH = _unit addEventHandler ["Reloaded", {_this call blck_EH_unitWeaponReloaded;}]; //Fires locally so add this again. diag_log format["blckHC:: reloaded EH added to unit %1 after transfer to HC %2",_x,clientOwner]; }forEach (units _group); -diag_log format["blckHC:: group %1 transferred to HC %2",_group,clientOwner]; +diag_log format["blckHC:: group %1 transferred to HC %2",_group,clientOwner]; \ No newline at end of file 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 0c69b8f..89ec9ef 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_endMission.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_endMission.sqf @@ -133,4 +133,4 @@ _fn_missionCleanup = { diag_log format["_fnc_endMission: after to running mission end functions -> blck_missionsRunning = %1 | blck_dynamicUMS_MissionsRuning = %2",blck_missionsRunning,blck_dynamicUMS_MissionsRuning]; #endif //diag_log format["_fnc_endMission (138): after to running mission end functions -> blck_missionsRunning = %1 | blck_dynamicUMS_MissionsRuning = %2",blck_missionsRunning,blck_dynamicUMS_MissionsRuning]; - _endCondition + _endCondition \ No newline at end of file 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 0c732cf..b31b6e3 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_missionSpawner.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_missionSpawner.sqf @@ -312,8 +312,9 @@ if (blck_debugLevel > 2) then {diag_log "_fnc_missionSpawner (309) emplaced weap _vehToSpawn = [_noVehiclePatrols] call blck_fnc_getNumberFromRange; if (blck_useVehiclePatrols && ((_vehToSpawn > 0) || count _missionPatrolVehicles > 0)) then { + //diag_log format["_missionSpawner(315): _vehToSpawn = %1 | _missionPatrolVehicles = %2",_vehToSpawn,_missionPatrolVehicles]; _temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_missionPatrolVehicles,useRelativePos,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms,false,_vehicleCrewCount] call blck_fnc_spawnMissionVehiclePatrols; - + //diag_log format["_missionSpawner(317): _temp = %1",_temp]; if (typeName _temp isEqualTo "ARRAY") then { _abort = _temp select 2; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_monitorInfantry.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_monitorInfantry.sqf index 2f4c5a3..fba5798 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_monitorInfantry.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_monitorInfantry.sqf @@ -111,4 +111,4 @@ for "_i" from 0 to (count blck_sm_Infantry) do }; }; }; -}; +}; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnAirPatrol.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnAirPatrol.sqf index 02dc685..cfdd084 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnAirPatrol.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnAirPatrol.sqf @@ -8,6 +8,8 @@ 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/ + + TODO: Still used? Questionable. */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; diag_log format["_fnc_sm_spawnAirPatrols: _this = %1",_this]; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnAirPatrols.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnAirPatrols.sqf index 9aaf64e..e3856d8 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnAirPatrols.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnAirPatrols.sqf @@ -35,15 +35,18 @@ if (_airPatrols isEqualTo []) then _headGear = _this select 4; _helis = _this select 5; */ + // params["_coords","_skillAI","_helis",["_uniforms",[]], ["_headGear",[]],["_vests",[]],["_backpacks",[]],["_weaponList",[]],["_sideArms",[]],["_Launcher","none"],["_crewCount",4]]; [_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; + _x params["_aircraft","_pos","_difficulty"]; + //_aircraft = _x select 0; + //_pos = _x select 1; + //_difficulty = _x select 2; + //params["_coords","_skillAI","_helis",["_uniforms",[]], ["_headGear",[]],["_vests",[]],["_backpacks",[]],["_weaponList",[]],["_sideArms",[]],["_Launcher","none"],["_crewCount",4]]; [_pos,_difficulty,_weapons,_uniforms,_headGear,_aircraft] call blck_fnc_spawnMissionHeli; }forEach _airPatrols; }; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnBuildingGarrison_relPos.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnBuildingGarrison_relPos.sqf index fdca521..36db6ec 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnBuildingGarrison_relPos.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_sm_spawnBuildingGarrison_relPos.sqf @@ -8,4 +8,4 @@ if !(isNull _group) then // ["_building","_group","_noStatics","_typesStatics","_noUnits",["_aiDifficultyLevel","Red"], [_building,_group,_noStatics,[],_noUnits,_skillLevel] call blck_fnc_spawnGarrisonInsideBuilding_relPos; }; -_group +_group \ No newline at end of file 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 97bb0e0..a9cf3ef 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 @@ -1,4 +1,6 @@ /* + GMS_fnc_sm_spawnInfantryPatrols + by Ghostrider [GRG] for ghostridergaming 12/5/17 @@ -12,29 +14,35 @@ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; // TODO: Used? // 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]; +params["_patrols","_coords",["_minNoAI",3],["_maxNoAI",6],["_aiDifficultyLevel","red"]]; +private ["_weaponList","_sideArms","_uniforms","_headgear","_vests","_backpacks"]; + +_weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout; +_sideArms = [_aiDifficultyLevel] call blck_fnc_selectAISidearms; +_uniforms = [_aiDifficultyLevel] call blck_fnc_selectAIUniforms; +_headGear = [_aiDifficultyLevel] call blck_fnc_selectAIHeadgear; +_vests = [_aiDifficultyLevel] call blck_fnc_selectAIVests; +_backpacks = [_aiDifficultyLevel] call blck_fnc_selectAIBackpacks; + 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 + [_coords,_minNoAI,_maxNoAI,_aiDifficultyLevel,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sidearms,false] 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 + _x params ["_pos","_difficulty","_noAI","_patrolRadius"]; private _group = [blck_AI_Side,true] call blck_fnc_createGroup; - // params["_pos", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], "_center", ["_minDist",20], ["_maxDist",35], ["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_configureWaypoints",true] ]; + // 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 { - [_group,_pos,_pos,_noAI,_noAI,_difficulty,_patrolRadius,_patrolRadius,true,_uniforms,_headGear] call blck_fnc_spawnGroup; + [_group,_pos,_pos,_noAI,_noAI,_difficulty,_patrolRadius - 2,_patrolRadius,setupWaypoints,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms,_scuba,_patrolRadius] call blck_fnc_spawnGroup; + blck_monitoredMissionAIGroups pushback _group; }; }forEach _patrols; }; 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 54304b4..8438ade 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 @@ -11,38 +11,45 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -params["_coords","_noVehiclePatrols","_vehiclePatrolSpawns","_aiDifficultyLevel","_uniforms","_headGear",["_missionType","unspecified"]]; +params["_coords","_noVehiclePatrols","_vehiclePatrolSpawns","_aiDifficultyLevel"]; //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}; +private ["_weaponList","_sideArms","_uniforms","_headgear","_vests","_backpacks"]; + 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]; + // ["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; + _vehiclePatrolSpawns pushBack [_vehType, _x, _aiDifficultyLevel, vehiclePatrolRadius,vehicleRespawnTime]; } forEach _spawnPoints; }; { private _patrolVehicle = objNull; - _x params["_vehicle","_spawnPos","_difficulty","_patrolRadius"]; - diag_log format["_fnc_sm_spawnVehiclePatrols:"]; - //_newGroup = [_x,_unitsPerGroup,_unitsPerGroup,_aiDifficultyLevel,_coords,_minDist,_maxDist,_uniforms,_headGear,true,_weapons,_vests,_isScubaGroup] call blck_fnc_spawnGroup; + _x params["_vehicle","_spawnPos","_aiDifficultyLevel","_patrolRadius","_respawnTime"]; private _vehGroup = [blck_AI_Side,true] call blck_fnc_createGroup; - _vehGroup setVariable["soldierType","vehicle"]; if !(isNull _vehGroup) then { - [_vehGroup,_spawnPos,_spawnPos,3,3,_difficulty,1,2,_uniforms,_headGear,false] call blck_fnc_spawnGroup; + _vehGroup setVariable["soldierType","vehicle"]; + _weaponList = [_aiDifficultyLevel] call blck_fnc_selectAILoadout; + _sideArms = [_aiDifficultyLevel] call blck_fnc_selectAISidearms; + _uniforms = [_aiDifficultyLevel] call blck_fnc_selectAIUniforms; + _headGear = [_aiDifficultyLevel] call blck_fnc_selectAIHeadgear; + _vests = [_aiDifficultyLevel] call blck_fnc_selectAIVests; + _backpacks = [_aiDifficultyLevel] call blck_fnc_selectAIBackpacks; + + [_vehGroup,_spawnPos,_spawnPos,3,3,_difficulty,1,2,_uniforms,_headGear,false] call blck_fnc_spawnGroup; + blck_monitoredMissionAIGroups pushback _vehGroup; + #define useWaypoints true + // 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]]; + _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. - //params["_center","_pos",["_vehType","I_G_Offroad_01_armed_F"],["_minDis",30],["_maxDis",45],["_group",grpNull]]; - _patrolVehicle = [_spawnPos,_spawnPos,_vehicle,_patrolRadius,_patrolRadius,_vehGroup] call blck_fnc_spawnVehiclePatrol; // Check whether we should pass the group; looks like we should. - //if !(isNull _patrolVehicle) then - //{ - //_patrolVehicle setVariable["vehicleGroup",_vehGroup]; - //}; }; } forEach _vehiclePatrolSpawns; 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 9cadb7b..e74a417 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionLootVehicles.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionLootVehicles.sqf @@ -15,9 +15,9 @@ params["_coords","_missionLootVehicles",["_loadCrateTiming","atMissionSpawn"],[" if (count _coords == 2) then {_coords pushBack 0}; private _vehs = []; { - diag_log format["spawnMissionCVehicles.sqf _x = %1",_x]; + //diag_log format["spawnMissionCVehicles.sqf _x = %1",_x]; _x params["_vehType","_vehOffset","_lootArray","_lootCounts",["_dir",0]]; - diag_log format["spawnMissionCVehicles: _vehType = %1 | _vehOffset = %2 | _lootArray = %3 | _lootCounts = %4",_vehType,_vehOffset,_lootArray,_lootCounts]; + //diag_log format["spawnMissionCVehicles: _vehType = %1 | _vehOffset = %2 | _lootArray = %3 | _lootCounts = %4",_vehType,_vehOffset,_lootArray,_lootCounts]; _pos = _coords vectorAdd _vehOffset; _veh = [_vehType, _pos] call blck_fnc_spawnVehicle; _veh setDir _dir; 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 791f6af..26876e1 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionVehiclePatrols.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionVehiclePatrols.sqf @@ -12,9 +12,9 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -// 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] ]; + params["_coords","_noVehiclePatrols","_skillAI","_missionPatrolVehicles",["_useRelativePos",true],["_uniforms",[]], ["_headGear",[]],["_vests",[]],["_backpacks",[]],["_weaponList",[]],["_sideArms",[]], ["_isScubaGroup",false],["_crewCount",4]]; -//diag_log format["_fnc_spawnMissionVehiclePatrols: _this = %1",_this]; + if (_uniforms isEqualTo []) then {_uniforms = [_skillAI] call blck_fnc_selectAIUniforms}; if (_headGear isEqualTo []) then {_headGear = [_skillAI] call blck_fnc_selectAIHeadgear}; if (_vests isEqualTo []) then {_vests = [_skillAI] call blck_fnc_selectAIVests}; @@ -22,10 +22,11 @@ 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}; -private["_vehGroup","_patrolVehicle","_vehiclePatrolSpawns","_missionAI","_missiongroups","_vehicles","_return","_vehiclePatrolSpawns","_vehicle","_return","_abort","_spawnPos","_v"]; +private["_vehGroup","_vehiclePatrolSpawns","_missionAI","_missiongroups","_vehicles","_return","_vehiclePatrolSpawns","_vehicle","_return","_abort","_spawnPos","_v"]; _vehicles = []; _missionAI = []; _abort = false; +//diag_log format["fnc_spawnMissionVehiclePatrols(29): _missionPatrolVehicles = %1",_missionPatrolVehicles]; if (_missionPatrolVehicles isEqualTo []) then { _useRelativePos = false; @@ -34,16 +35,10 @@ 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 { - #ifdef blck_debugMode - if (blck_debugLevel > 1) then - { - diag_log format["_fnc_spawnMissionVehiclePatrols:: _x = %1 and _coords = %2",_x,_coords]; - }; - #endif - if (_useRelativePos) then { _spawnPos = _coords vectorAdd (_x select 1) @@ -51,10 +46,9 @@ if (_missionPatrolVehicles isEqualTo []) then _spawnPos = _x select 1; }; _vehicle = _x select 0; - _vehGroup = [blck_AI_Side,true] call blck_fnc_createGroup; _patrolVehicle = objNull; - diag_log format["fnc_spawnMissionVehiclePatrols(50): _vehicle = %1 | _spawnPos = %2 | _vehGroup = %3",_vehicle,_spawnPos,_vehGroup]; + //diag_log format["fnc_spawnMissionVehiclePatrols(50): _vehicle = %1 | _spawnPos = %2 | _vehGroup = %3",_vehicle,_spawnPos,_vehGroup]; if !(isNull _vehGroup) then { _vehGroup setVariable["soldierType","vehicle"]; @@ -62,14 +56,21 @@ if (_missionPatrolVehicles isEqualTo []) then _missionAI append (units _vehGroup); blck_monitoredMissionAIGroups pushBack _vehGroup; //params["_center","_pos",["_vehType","I_G_Offroad_01_armed_F"],["_minDis",40],["_maxDis",60],["_group",grpNull],["_setWaypoints",true],["_crewCount",4]]; - _patrolVehicle = [_coords,_spawnPos,_vehicle,40,60,_vehGroup,true,_crewCount] call blck_fnc_spawnVehiclePatrol; - + //diag_log format["fnc_spawnMissionVehiclePatrols(59): _vehicle = %1 | _vehGroup = %2 | units _vehGroup",_vehicle,_vehGroup, units _vehGroup]; + #define useWaypoints true + _patrolVehicle = [_coords,_spawnPos,_vehicle,40,60,_vehGroup,useWaypoints,_crewCount] call blck_fnc_spawnVehiclePatrol; + /* + if (isNil "_patrolVehicle") then + { + diag_log format["_fnc_spawnMissionVehiclePatrols: nil value returned for _patrolVehicle"]; + _patrolVehicle = objNull; + }; + */ + //diag_log format["fnc_spawnMissionVehiclePatrols(68): _vehGroup = %1 | units _vehGroup = %2",_vehGroup, units _vehGroup]; if !(isNull _patrolVehicle) then { //_patrolVehicle setVariable["vehicleGroup",_vehGroup]; _vehicles pushback _patrolVehicle; - //blck_monitoredVehicles pushBack _patrolVehicle; - _missionAI append (units _vehGroup); }; }; } forEach _missionPatrolVehicles; diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnSDVPatrol.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnSDVPatrol.sqf index 6ffa16f..7b158b4 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnSDVPatrol.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnSDVPatrol.sqf @@ -21,4 +21,4 @@ if !(isNull _group) then _diveDepth = 0.5 * [_pos] call blck_fnc_findWaterDepth; (driver _vehicle) swiminDepth (_diveDepth select 2); }; -_group +_group \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_AddAircraft.sqf b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_AddAircraft.sqf new file mode 100644 index 0000000..2aed2f4 --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_AddAircraft.sqf @@ -0,0 +1,17 @@ +/* + 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/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_AddEmplaced.sqf b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_AddEmplaced.sqf new file mode 100644 index 0000000..01d7722 --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_AddEmplaced.sqf @@ -0,0 +1,16 @@ +/* + 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/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_AddGroup.sqf b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_AddGroup.sqf new file mode 100644 index 0000000..49abe09 --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_AddGroup.sqf @@ -0,0 +1,16 @@ +/* + 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/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_AddVehicle.sqf b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_AddVehicle.sqf new file mode 100644 index 0000000..47dd046 --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_AddVehicle.sqf @@ -0,0 +1,16 @@ +/* + 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/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnAirPatrol.sqf b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnAirPatrol.sqf new file mode 100644 index 0000000..02dc685 --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnAirPatrol.sqf @@ -0,0 +1,31 @@ +/* + 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/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnAirPatrols.sqf b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnAirPatrols.sqf new file mode 100644 index 0000000..9aaf64e --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnAirPatrols.sqf @@ -0,0 +1,50 @@ +/* + 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/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnEmplaced.sqf b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnEmplaced.sqf new file mode 100644 index 0000000..365f0a6 --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnEmplaced.sqf @@ -0,0 +1,62 @@ +/* + 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] ]; + private _empGroup = [] 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"; + [_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/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnEmplaceds.sqf b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnEmplaceds.sqf new file mode 100644 index 0000000..7bef936 --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnEmplaceds.sqf @@ -0,0 +1,58 @@ +/* + 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"; + [_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/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnInfantryPatrols.sqf b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnInfantryPatrols.sqf new file mode 100644 index 0000000..16c5c9e --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnInfantryPatrols.sqf @@ -0,0 +1,41 @@ +/* + 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"; +// TODO: Used? +// 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 + private _group = [] call blck_fnc_createGroup; + // params["_pos", ["_numai1",5], ["_numai2",10], ["_skillLevel","red"], "_center", ["_minDist",20], ["_maxDist",35], ["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_configureWaypoints",true] ]; + if !(isNull _group) then + { + [_group,_pos,_pos,_noAI,_noAI,_difficulty,_patrolRadius,_patrolRadius,true,_uniforms,_headGear] call blck_fnc_spawnGroup; + }; + }forEach _patrols; +}; + diff --git a/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnMission.sqf b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnMission.sqf new file mode 100644 index 0000000..e359772 --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnMission.sqf @@ -0,0 +1,51 @@ +/* + 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/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnVehiclePatrols.sqf b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnVehiclePatrols.sqf new file mode 100644 index 0000000..7b90c61 --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Missions/Old_Or_Unused_Code/GMS_fnc_sm_spawnVehiclePatrols.sqf @@ -0,0 +1,56 @@ +/* + 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; +}; + +{ + private ["_vehicle","_spawnPos","_difficulty","_patrolRadius"]; + _vehicle = _x select 0; + _spawnPos = _x select 1; + _difficulty = _x select 2; + _patrolRadius = _x select 3; + //_newGroup = [_x,_unitsPerGroup,_unitsPerGroup,_aiDifficultyLevel,_coords,_minDist,_maxDist,_uniforms,_headGear,true,_weapons,_vests,_isScubaGroup] call blck_fnc_spawnGroup; + private _vehGroup = [] call blck_fnc_createGroup; + _vehGroup setVariable["soldierType","vehicle"]; + if !(isNull _vehGroup) then + { + [_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",30],["_maxDis",45],["_group",grpNull]]; + _patrolVehicle = [_spawnPos,_spawnPos,_vehicle,_patrolRadius,_patrolRadius,_vehGroup] call blck_fnc_spawnVehiclePatrol; // Check whether we should pass the group; looks like we should. + // Nope, not necessary + //_vehGroup setVariable["groupVehicle",_vehicle]; + + if !(isNull _patrolVehicle) then + { + _patrolVehicle setVariable["vehicleGroup",_vehGroup]; + }; + }; +} forEach _vehiclePatrolSpawns; + +true + + 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 735b8fc..c348954 100644 --- a/@GMS/addons/custom_server/Compiles/TimeAccel/GMS_fnc_Time.sqf +++ b/@GMS/addons/custom_server/Compiles/TimeAccel/GMS_fnc_Time.sqf @@ -50,3 +50,4 @@ 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_AIKilled.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_EH_AIKilled.sqf index a80e183..43678f3 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_EH_AIKilled.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_EH_AIKilled.sqf @@ -11,4 +11,6 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ //#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -if (isServer) then {_this remoteExec ["blck_fnc_processAIKill",2]}; +#define unit _this select 0 +if (isServer) then {_this call blck_fnc_processAIKill}; +if (local (unit)) then {_this call blck_fnc_processAIKill}; diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_EH_AIfiredNear.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_EH_AIfiredNear.sqf new file mode 100644 index 0000000..a9cc62c --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_EH_AIfiredNear.sqf @@ -0,0 +1,33 @@ + +/* + blck_EH_AIfiredNear + firedNear event handler for _units + 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/ + + 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"; +//if (isServer) then {_this remoteExec ["blck_fnc_processAIKill",2]}; +//if (local (_this select 0)) then {_this call blck_fnc_processAIFiredNear}; +_this call blck_fnc_processAIFiredNear \ No newline at end of file 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 771695d..7f8093f 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_EH_unitWeaponReloaded.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_EH_unitWeaponReloaded.sqf @@ -6,16 +6,9 @@ https://community.bistudio.com/wiki/Arma_3:_Event_Handlers/Reloaded - The EH returns array in _this variable of the following format [entity, weapon, muzzle, newMagazine, (oldMagazine)], where: - - entity: Object - unit or vehicle to which EH is assigned - weapon: String - weapon that got reloaded - muzzle: String - weapons muzzle that got reloaded - newMagazine: Array - new magazine info in format [magazineClass, ammoCount, magazineID, magazineCreator], where: - magazineClass: String - class name of the magazine - ammoCount: Number - amount of ammo in magazine - magazineID: Number - global magazine id - magazineCreator: Number - owner of the magazine creator + this addEventHandler ["Reloaded", { + params ["_unit", "_weapon", "_muzzle", "_newMagazine", "_oldMagazine"]; + }]; -------------------------- License @@ -25,8 +18,9 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -(_this select 0) addMagazine (_this select 3 select 0); +#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:: unit %1 reloaded weapon %2 with magazine %3",_this select 0, (_this select 3 select 0)]; 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 c2cb8b1..dc95cb8 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIHit.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIHit.sqf @@ -15,8 +15,7 @@ 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]; -//if (true) exitWith {}; +diag_log format["_fnc_processAIHit:(19): _units = %1 and _instigator = %2 units damage is %3",_unit,_instigator, damage _unit]; //diag_log format["_fnc_processAIHit: evaluating case of ai not alive"]; if (!(alive _unit)) exitWith { 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 b597aaa..f768a98 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIKill.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIKill.sqf @@ -12,8 +12,22 @@ // 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"; -if !(isServer) exitWith {}; + params["_unit","_killer","_instigator"]; +if (hasInterface || !(hasInterface || isDedicated)) exitWith // Only run this on HC or clients +{ + if (local _unit) then + { + + // soldierOne action ["Eject", vehicle soldierOne]; + if !((vehicle _unit) isKindOf "Man") then + { + _unit action["Eject", vehicle _unit]; + [vehicle _unit] call blck_fnc_checkForEmptyVehicle; + }; + }; +}; + //diag_log format["_fnc_processAIKill: _unit = %1 | _killer = %2",_unit,_killer]; if (_unit getVariable["blck_cleanupAt",-1] > 0) exitWith {}; // this is here so that the script is not accidently run more than once for each MPKilled occurrence. _unit setVariable ["blck_cleanupAt", (diag_tickTime) + blck_bodyCleanUpTimer]; @@ -21,15 +35,20 @@ _unit disableAI "ALL"; { _unit removeAllMPEventHandlers _x; }forEach["MPHit","MPKilled"]; +{ + _unit removeAllEventHandlers _x; +}forEach["FiredNear","Reloaded"]; + blck_deadAI pushback _unit; if (count(units (group _unit)) isEqualTo 0) then { deleteGroup _group; }; [_unit] joinSilent grpNull; -if !(_unit isKindOf "Man") then + +//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 { - //diag_log format["_fnc_processAIKill: unit linked to crew of vehicle %1 | typeOf (vehicle _unit = %2)",vehicle _unit,typeOf (vehicle _unit)]; [_unit, ["Eject", vehicle _unit]] remoteExec ["action",(owner _unit)]; }; @@ -52,4 +71,4 @@ if (blck_showCountAliveAI) then if ([_unit,_killer] call blck_fnc_processIlleagalAIKills) then { [_unit,_killer] call GMS_fnc_handlePlayerUpdates; -}; +}; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIfiredNear.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIfiredNear.sqf new file mode 100644 index 0000000..d3894e2 --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_processAIfiredNear.sqf @@ -0,0 +1,38 @@ + +/* + blck_fnc_processAIfiredNear + firedNear event handler for _units + 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/ + + 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"; + +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_spawnUnit.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnUnit.sqf index 6b295ab..8a1de7d 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnUnit.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_spawnUnit.sqf @@ -200,6 +200,7 @@ if (blck_debugLevel > 2) then }; #endif +_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;}]; _unit addMPEventHandler ["MPHit",{[_this] call blck_EH_AIHit;}]; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_checkForEmptyVehicle.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_checkForEmptyVehicle.sqf index b0191e8..2dcd641 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_checkForEmptyVehicle.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_checkForEmptyVehicle.sqf @@ -10,7 +10,7 @@ */ if !(isServer) exitWith {}; params["_veh"]; -//diag_log format["_fnc_checkForEmptyVehicle: _veh = %1 | typeOf _veh = %2 | count (crew _veh) = %3",_veh, typeOf _veh, count(crew _veh)]; +//diag_log format["_fnc_checkForEmptyVehicle: _veh = %1 | typeOf _veh = %2 | count (crew _veh) = %3 | alive crew = %4",_veh, typeOf _veh, count(crew _veh),{alive _x} count crew _veh]; if (crew(_veh) isEqualTo []) then { [_veh] call blck_fnc_handleEmptyVehicle; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_configureMissionVehicle.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_configureMissionVehicle.sqf index 50c8314..c6bf26e 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_configureMissionVehicle.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_configureMissionVehicle.sqf @@ -18,18 +18,22 @@ params["_veh",["_locked",0]]; private["_unit"]; //_veh setVehicleLock "LOCKEDPLAYER"; _veh lock _locked; -_veh addMPEventHandler["MPHit",{ _this call blck_EH_AIVehicle_HandleHit}]; -_veh addMPEventHandler["MPKilled",{_this call blck_EH_vehicleKilled}]; -_veh addEventHandler["GetOut",{_this remoteExec["blck_EH_vehicleGetOut",2]}]; -//_veh addEventHandler["Local", {if (isServer) then {_this call blck_EH_changeLocality}}]; + +_veh addMPEventHandler["MPHit",{if (isServer) then {_this call blck_fnc_AIVehicle_HandleHit}}]; +_veh addMPEventHandler["MPKilled",{if (isServer) then {_this call blck_fnc_processAIVehicleKill}}]; +#define vehicleAffected _this select 0 +_veh addEventHandler["GetOut",{if (isServer || local (vehicleAffected)) then {_this call blck_fnc_handleVehicleGetOut}}]; +//_veh addEventHandler["Local", {if (isServer) then {_this call blck_EH_changeLocality}}]; // Not used at present blck_monitoredVehicles pushBackUnique _veh; if (blck_modType isEqualTo "Epoch") then { + // Adds compatability with Halv's black market traders if (blck_allowSalesAtBlackMktTraders) then {_veh setVariable["HSHALFPRICE",1,true]}; }; if (blck_modType isEqualTo "Exile") then { + // Adds compatability with claim vehicle scripts if (blck_allowClaimVehicle) then { _veh setVariable ["ExileIsPersistent", false]; 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 1983946..5d700c7 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_handleEmptyVehicle.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_handleEmptyVehicle.sqf @@ -12,36 +12,39 @@ //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 ({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 +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: 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]; + //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 { - //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; + 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 31ad131..9fc6b09 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_handleVehicleGetOut.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_handleVehicleGetOut.sqf @@ -21,7 +21,6 @@ this addEventHandler ["GetOut", { turret: Array - turret path */ -//diag_log format["_fnc_handleAIgetOut: _this = %1",_this]; -private _veh = _this select 0; -//private _unit = _this select 2; -[_veh] call blck_fnc_checkForEmptyVehicle; \ No newline at end of file +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_releaseVehicleToPlayers.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_releaseVehicleToPlayers.sqf index 1f8c35f..babbc55 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_releaseVehicleToPlayers.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_releaseVehicleToPlayers.sqf @@ -14,7 +14,7 @@ params["_veh"]; //diag_log format["_fnc_releaseVehicleToPlayers: _veh = %1",_veh]; -[_veh] call GMS_fnc_unlockServerVehicle; +[_veh] call blck_fnc_unlockVehicle; { _veh removealleventhandlers _x; } forEach ["Local","GetIn","GetOut","fired","hit","hitpart","reloaded","dammaged","HandleDamage"]; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_unlockServerVehicle.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_unlockVehicle.sqf similarity index 52% rename from @GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_unlockServerVehicle.sqf rename to @GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_unlockVehicle.sqf index c509107..9609c47 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_unlockServerVehicle.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_unlockVehicle.sqf @@ -11,13 +11,16 @@ */ // assumptions: there are no crew in vehicle. there are no players in vehicle. thus we can just be sure the owner is the server then set the lock locally #include "\q\addons\custom_server\Configs\blck_defines.hpp"; -params["_vehicle"]; +params["_veh"]; -if (local _vehicle) then +if (local _veh) then { - _vehicle lock 1; + //diag_log format["blck_fnc_unlockVehicle: handling case of local vehicle %2 that is local to owner %1",owner _veh, _veh]; + _veh lock 1; } else { - [_vehicle, 1] remoteExecCall ["lock", _vehicle]; + //diag_log format["blck_fnc_unlockVehicle: handling case of non-local vehicle %2 that is local to owner %1",owner _veh, _veh]; + [_veh, 1] remoteExecCall ["lock", _veh]; }; +///diag_log format["blck_fnc_unlockVehicle: _vehcle %1 of typeOf %3 locked set to %2",_veh, locked _veh,typeOf _veh]; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_EH_AIVehicle_Hit.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/Old_Or_Unused_Code/GMS_EH_AIVehicle_Hit.sqf similarity index 89% rename from @GMS/addons/custom_server/Compiles/Vehicles/GMS_EH_AIVehicle_Hit.sqf rename to @GMS/addons/custom_server/Compiles/Vehicles/Old_Or_Unused_Code/GMS_EH_AIVehicle_Hit.sqf index c95a329..073c61f 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_EH_AIVehicle_Hit.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/Old_Or_Unused_Code/GMS_EH_AIVehicle_Hit.sqf @@ -11,6 +11,7 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ //#include "\q\addons\custom_server\Configs\blck_defines.hpp"; +// TODO: No longer needed; move this to old code folder if (isServer) then {_this call blck_fnc_HandleAIVehicleHit}; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_EH_VehicleKilled.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/Old_Or_Unused_Code/GMS_EH_VehicleKilled.sqf similarity index 100% rename from @GMS/addons/custom_server/Compiles/Vehicles/GMS_EH_VehicleKilled.sqf rename to @GMS/addons/custom_server/Compiles/Vehicles/Old_Or_Unused_Code/GMS_EH_VehicleKilled.sqf diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_EH_changeLocality.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/Old_Or_Unused_Code/GMS_EH_changeLocality.sqf similarity index 100% rename from @GMS/addons/custom_server/Compiles/Vehicles/GMS_EH_changeLocality.sqf rename to @GMS/addons/custom_server/Compiles/Vehicles/Old_Or_Unused_Code/GMS_EH_changeLocality.sqf diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_EH_vehicleGetOut.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/Old_Or_Unused_Code/GMS_EH_vehicleGetOut.sqf similarity index 64% rename from @GMS/addons/custom_server/Compiles/Vehicles/GMS_EH_vehicleGetOut.sqf rename to @GMS/addons/custom_server/Compiles/Vehicles/Old_Or_Unused_Code/GMS_EH_vehicleGetOut.sqf index f76faac..d246f10 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_EH_vehicleGetOut.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/Old_Or_Unused_Code/GMS_EH_vehicleGetOut.sqf @@ -2,7 +2,7 @@ _EH_vehicleGetOut By Ghostrider [GRG] Handles the case where a unit gets out of a vehiclet. - + // TODO: Not presently used -------------------------- License -------------------------- @@ -11,10 +11,9 @@ http://creativecommons.org/licenses/by-nc-sa/4.0/ */ //diag_log format["_EH_vehicleGetOut: _this = %1",_this]; -if (isServer) then -{ - _this call blck_fnc_handleVehicleGetOut -}; +// params ["_vehicle", "_role", "_unit", "_turret"]; +#define affectedvehicle (_this select 0) +if (isServer || local affectedvehicle) then {affectedvehicle call blck_fnc_handleVehicleGetOut}; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_EH_vehicleManGetOut.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/Old_Or_Unused_Code/GMS_EH_vehicleManGetOut.sqf similarity index 80% rename from @GMS/addons/custom_server/Compiles/Vehicles/GMS_EH_vehicleManGetOut.sqf rename to @GMS/addons/custom_server/Compiles/Vehicles/Old_Or_Unused_Code/GMS_EH_vehicleManGetOut.sqf index 46682ca..97be1de 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_EH_vehicleManGetOut.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/Old_Or_Unused_Code/GMS_EH_vehicleManGetOut.sqf @@ -12,8 +12,9 @@ this addEventHandler ["GetOutMan", { */ //diag_log format["EH_vehicleManGetOut: _this = %1",_this]; -params["_unit","_role","_veh"]; -[_veh,_unit] remoteExec["blck_fnc_handleAIgetOut",2]; +//params["_unit","_role","_veh"]; +#define veh _this select 3 +[veh] call blck_fnc_handleAIgetOut; diff --git a/@GMS/addons/custom_server/Compiles/blck_functions.sqf b/@GMS/addons/custom_server/Compiles/blck_functions.sqf index 0013079..53f9292 100644 --- a/@GMS/addons/custom_server/Compiles/blck_functions.sqf +++ b/@GMS/addons/custom_server/Compiles/blck_functions.sqf @@ -44,6 +44,7 @@ private _functions = [ ["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"], + ["blck_fnc_findRandomLocationWithinCircle","\q\addons\custom_server\Compiles\Functions\GMS_fnc_findRandomLocationWithinCircle.sqf"], // Player-related functions ["GMS_fnc_handlePlayerUpdates","\q\addons\custom_server\Compiles\Units\GMS_fnc_handlePlayerUpdates.sqf"], @@ -148,10 +149,10 @@ 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_EH_AIVehicle_HandleHit","\q\addons\custom_server\Compiles\Vehicles\GMS_EH_AIVehicle_Hit.sqf"], + //["blck_EH_AIVehicle_HandleHit","\q\addons\custom_server\Compiles\Vehicles\GMS_EH_AIVehicle_Hit.sqf"], // Not needed, we can just call the function directly from the EH ["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_EH_VehicleKilled","\q\addons\custom_server\Compiles\Vehicles\GMS_EH_VehicleKilled.sqf"], // Not needed, we can just call the function directly from the EH + // ["blck_EH_changeLocality","\q\addons\custom_server\Compiles\Vehicles\GMS_EH_changeLocality.sqf"], // Not used at present ["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,11 +161,11 @@ private _functions = [ ["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"], + ["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"], //["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_EH_vehicleGetOut","\q\addons\custom_server\Compiles\Vehicles\GMS_EH_vehicleGetOut.sqf"], // Just call the function directly ["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"], @@ -177,6 +178,7 @@ private _functions = [ ["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_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"], @@ -211,7 +213,11 @@ 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";}; +diag_log "blck_functions loaded using GRGserver settings ---- >>>> "; +#endif + +//onPlayerDisconnected {[_name,_owner] call blck_fnc_onPlayerDisconnected;}; diff --git a/@GMS/addons/custom_server/Compiles/blck_functions_HC.sqf b/@GMS/addons/custom_server/Compiles/blck_functions_HC.sqf new file mode 100644 index 0000000..6b88e8f --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/blck_functions_HC.sqf @@ -0,0 +1,228 @@ +/* + AI Mission for Epoch Mod for Arma 3 + By Ghostrider + Functions and global variables used by the mission system. + + -------------------------- + 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 _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"] + [] +]; + +{ + if !(_x isEqualto []) then + { + _x params ["_name","_path"]; + missionnamespace setvariable [_name,compileFinal preprocessFileLineNumbers _path]; + }; +} foreach _functions; + +diag_log format["[blckeagles] Functions for Headless Clients compiled"]; + +