diff --git a/@GMS/addons/custom_server/Changelog 6.90.txt b/@GMS/addons/custom_server/Changelog 6.90.txt index 63a181b..c965eb3 100644 --- a/@GMS/addons/custom_server/Changelog 6.90.txt +++ b/@GMS/addons/custom_server/Changelog 6.90.txt @@ -1,6 +1,5 @@ -Added new settings to blck_config.sqf and blck_config_mil.sqf - -1. +1. Added new settings to specify the number of crew per vehhicle to blck_config.sqf and blck_config_mil.sqf + // global settings for this parameters // Determine the number of crew plus driver per vehicle; excess crew are ignored. // This can be a value or array of [_min, _max]; @@ -13,8 +12,9 @@ Added new settings to blck_config.sqf and blck_config_mil.sqf _vehicleCrewCount = 3 // -2. - lists of items to be excluded from dynamically generated loadouts has been moved to: +2. Lists of items to be excluded from dynamically generated loadouts has been moved to: blck_config.sqf blck_config_mil.sqf - \ No newline at end of file + +3. Added a new setting that specifies whether logging of blacklisted items is done (handy for debugging) + blck_logBlacklistedItems = true; // set to false to disable logging \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_isClass.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_isClass.sqf new file mode 100644 index 0000000..b48bae2 --- /dev/null +++ b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_isClass.sqf @@ -0,0 +1,11 @@ +/* + GMS_fnc_isClass + + Purpose: determine if a string is a valid className + Parameters: _item, a string to be interrogated. + Returns: true if the string is a valid classname. +*/ +//#include "GMSCore\init\GMS_defines.hpp" "\addons\GMSCore\init\GMS_defines.hpp" +params["_item"]; +private _result = if ([_item] call GMS_fnc_getCfgType isEqualTo "") then {false} else {true}; +_result \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_spawnMissionEmplacedRelative.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_spawnMissionEmplacedRelative.sqf deleted file mode 100644 index be606c9..0000000 --- a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_spawnMissionEmplacedRelative.sqf +++ /dev/null @@ -1,31 +0,0 @@ - -/* - By Ghostrider [GRG] - -------------------------- - License - -------------------------- - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - - params["_center","_emplaced","_garrisonGroup"]; - private["_obj","_objects"]; - private _group = call blck_fnc_create_AI_Group; - _objects = []; - { - _x params["_objClassName","_objRelPos","_objDir"]; - _obj = [_objClassName, [0,0,0],0] call blck_fnc_spawnSingleObject; - _objects pushBack _obj; - _obj setPosATL (_objRelPos vectorAdd _center); - _obj setDir _objDir; - private _unit = [_group] call blck_fnc_spawnUnit; - _unit moveInGunner _unit; - private _wep addMPEventHandler["MPHit",{[_this] call blck_EH_AIVehicle_HandleDamage}]; - _wep setVariable["GRG_vehType","emplaced"]; - [_wep,false] call blck_fnc_configureMissionVehicle; - }forEach _emplaced; - blck_monitoredVehicles append _emplacedWeps; - private _return = [_emplacedWeps,_group,_abort]; - _return \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_spawnMissionLandscapeRelative.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_spawnMissionLandscapeRelative.sqf deleted file mode 100644 index 3b6c620..0000000 --- a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_spawnMissionLandscapeRelative.sqf +++ /dev/null @@ -1,21 +0,0 @@ - -/* - By Ghostrider [GRG] - -------------------------- - License - -------------------------- - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -params["_center","_landscape"]; -// diag_log format["fnc_spawnMissionLandscapeRelative: _center = %1",_center]; -private["_obj","_objects"]; -_objects = []; -{ - _x params["_objClassName","_objRelPos","_objDir"]; - _obj = [_objClassName, _objRelPos vectorAdd _center, _objDir,enableSimulationForObject,enableDamageForObject,enableRopesforObject,"CAN_COLLIDE"] call blck_fnc_spawnSingleObject; - _objects pushBack _obj; -}forEach _landscape; -_objects \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_spawnMissionLootBoxesRelative.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_spawnMissionLootBoxesRelative.sqf deleted file mode 100644 index ef75795..0000000 --- a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_spawnMissionLootBoxesRelative.sqf +++ /dev/null @@ -1,26 +0,0 @@ - -/* - By Ghostrider [GRG] - -------------------------- - License - -------------------------- - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -params["_center","_crates"]; -private["_crate","_cratesSpawned"]; - -_cratesSpawned = []; -{ - _x params["_objClassName","_objRelPos","_crateLoot","_lootCounts","_objDir"]; - _crate = [_objClassName, _objRelPos vectorAdd _center, _objDir] call blck_fnc_spawn_lootCrate; - //_crate setPosATL _objRelPos vectorAdd _center; - _cratesSpawned pushBack _crate; - _crate allowDamage false; - _crate enableRopeAttach false; - _crate -}forEach _crates; -_cratesSpawned \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_spawnSingleObject.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_spawnSingleObject.sqf deleted file mode 100644 index 55167b2..0000000 --- a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_spawnSingleObject.sqf +++ /dev/null @@ -1,17 +0,0 @@ -/* - By Ghostrider [GRG] - -------------------------- - License - -------------------------- - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -params["_objClassName","_objPosn",["_objDir",0],["_enableSimulation",true],["_enableDamage",true],["_enableRopes",true],["_mode","NONE"]]; -private _obj = createVehicle[_objClassName,_objPosn,[],0,_mode]; -_obj setDir _objDir; -_obj allowDamage _enableDamage; -_obj enableDynamicSimulation _enableSimulation; -_obj \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_updateAllMarkerAliveCounts.sqf b/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_updateAllMarkerAliveCounts.sqf deleted file mode 100644 index 7597e6b..0000000 --- a/@GMS/addons/custom_server/Compiles/Functions/GMS_fnc_updateAllMarkerAliveCounts.sqf +++ /dev/null @@ -1,16 +0,0 @@ -/* - by Ghostrider [GRG] - -------------------------- - License - -------------------------- - All the code and information provided here is provided under an Attribution Non-Commercial ShareAlike 4.0 Commons License. - - http://creativecommons.org/licenses/by-nc-sa/4.0/ -*/ -#include "\q\addons\custom_server\Configs\blck_defines.hpp"; -diag_log "_fnc_updateAllMarkerAliveCounts called"; -/* -{ - diag_log format["_fnc_updateAllMarkerAliveCounts: _x = %1",_x]; - [_x select 0, _x select 1, _x select 2] call blck_fnc_updateMarkerAliveCount; -}forEach blck_missionMarkers; diff --git a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_checkGroupWaypointStatus.sqf b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_checkGroupWaypointStatus.sqf index 5558a79..422d216 100644 --- a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_checkGroupWaypointStatus.sqf +++ b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_checkGroupWaypointStatus.sqf @@ -18,6 +18,6 @@ if ((diag_tickTime > (_group getVariable "timeStamp") + _maxTime) || ( (getPos ( { (leader _group) call blck_fnc_changeToMoveWaypoint; #ifdef blck_debugMode - if (blck_debugLevel > 2) then {diag_log format["_fnc_missionGroupMonitor: infantry group %1 stuck, waypoint reset",_group];}; + if (blck_debugLevel > 2) then {diag_log format["_fnc_checkGroupWaypointStatus: infantry group %1 stuck, waypoint reset",_group];}; #endif }; diff --git a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_missionGroupMonitor.sqf b/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_missionGroupMonitor.sqf deleted file mode 100644 index b6e2e8e..0000000 --- a/@GMS/addons/custom_server/Compiles/Groups/GMS_fnc_missionGroupMonitor.sqf +++ /dev/null @@ -1,20 +0,0 @@ -/* - [] call blck_fnc_waypointMonitor; - - Scans all groups in for those that have been stuck in a particular waypoint for an excessive time and checks if they are in combat. - If not it directs them to the next waypoint. - It uses a timestamp attached to the group that is cleared upon waypoint completion. - - 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"; - - - diff --git a/@GMS/addons/custom_server/Compiles/HC/GMS_fnc_HC_getListConnected.sqf b/@GMS/addons/custom_server/Compiles/HC/GMS_fnc_HC_getListConnected.sqf deleted file mode 100644 index fa0e980..0000000 --- a/@GMS/addons/custom_server/Compiles/HC/GMS_fnc_HC_getListConnected.sqf +++ /dev/null @@ -1,18 +0,0 @@ -/* - Killed 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/ -*/ -//#include "\q\addons\custom_server\Configs\blck_defines.hpp"; - -//blck_fnc_HC_getListConnected = -private _hcs = entities "HeadlessClient_F"; -//diag_log format["_fnc_HC_getListConected: _hcs = %1",_hcs]; -_hcs - 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 d83b3ce..41c819e 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_missionSpawner.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_missionSpawner.sqf @@ -289,7 +289,7 @@ if (blck_useStatic && (_noEmplacedToSpawn > 0)) then _vehToSpawn = [_noVehiclePatrols] call blck_fnc_getNumberFromRange; if (blck_useVehiclePatrols && ((_vehToSpawn > 0) || count _missionPatrolVehicles > 0)) then { - _temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_missionPatrolVehicles,useRelativePos,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms] call blck_fnc_spawnMissionVehiclePatrols; + _temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_missionPatrolVehicles,useRelativePos,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms,false,_vehicleCrewCount] call blck_fnc_spawnMissionVehiclePatrols; if (typeName _temp isEqualTo "ARRAY") then { diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_selectVehicleCrewCount.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_selectVehicleCrewCount.sqf index f44673a..c132b89 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_selectVehicleCrewCount.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_selectVehicleCrewCount.sqf @@ -1,4 +1,15 @@ +/* + 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["_diff"]; private ["_count"]; switch (toLower(_diff)) do @@ -8,4 +19,5 @@ switch (toLower(_diff)) do case "green": {_count = blck_vehCrew_green}; case "orange": {_count = blck_vehCrew_orange}; }; +diag_log format["_fnc_selectVehicleCrewCount: _count set to %1",_count]; _count diff --git a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionVehiclePatrols.sqf b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionVehiclePatrols.sqf index 2e81528..68de71b 100644 --- a/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionVehiclePatrols.sqf +++ b/@GMS/addons/custom_server/Compiles/Missions/GMS_fnc_spawnMissionVehiclePatrols.sqf @@ -14,7 +14,7 @@ */ #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]]; +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}; @@ -52,8 +52,9 @@ if (_missionPatrolVehicles isEqualTo []) then _spawnPos = _x select 1; }; _vehicle = _x select 0; + //private _crewCount = [skillAI] call GMS_fnc_selectVehicleCrewCount; // params["_pos", "_center", _numai1, _numai2, _skillLevel, _minDist, _maxDist, _configureWaypoints, _uniforms, _headGear,_vests,_backpacks,_weaponList,_sideArms, _scuba ]; - _vehGroup = [_spawnPos,_coords,3,3,_skillAI,1,2,false,_uniforms, _headGear,_vests,_backpacks,_weaponList,_sideArms,_isScubaGroup] call blck_fnc_spawnGroup; + _vehGroup = [_spawnPos,_coords,_crewCount,_crewCount,_skillAI,1,2,false,_uniforms, _headGear,_vests,_backpacks,_weaponList,_sideArms,_isScubaGroup] call blck_fnc_spawnGroup; if (isNull _vehGroup) exitWith { _abort = true; diff --git a/@GMS/addons/custom_server/Compiles/Reinforcements/GMS_fnc_sendHeliHome.sqf b/@GMS/addons/custom_server/Compiles/Reinforcements/GMS_fnc_sendHeliHome.sqf deleted file mode 100644 index ac6fe7f..0000000 --- a/@GMS/addons/custom_server/Compiles/Reinforcements/GMS_fnc_sendHeliHome.sqf +++ /dev/null @@ -1,36 +0,0 @@ -/* - Author: Ghostrider [GRG] - Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP - License: Attribution-NonCommercial-ShareAlike 4.0 International - Last Modified 1/23/17 -*/ -params["_grpPilot"]; -private["_heli","_pilot"]; -_pilot = (units _grpPilot) select 0; -_heli = vehicle _pilot; -diag_log "reinforcements deployed:: send heli back to spawn"; -[[_heli], 300 /* 5 min*/] spawn blck_fnc_addObjToQue; -// select a random location abotu 2K from the mission -_spawnVector = round(random(360)); -_spawnDistance = 2000; -_pos = getPos _heli; - -// Use the new functionality of getPos -// https://community.bistudio.com/wiki/getPos -_home = _pos getPos [_spawnDistance,_spawnVector]; - -// Send the heli back to base -_grpPilot = group this; -[_grpPilot, 0] setWPPos _pos; -[_grpPilot, 0] setWaypointType "MOVE"; -[_grpPilot, 0] setWaypointSpeed "FULL"; -[_grpPilot, 0] setWaypointBehaviour "CARELESS"; -[_grpPilot, 0] setWaypointCompletionRadius 200; -[_grpPilot, 0] setWaypointStatements ["true", "{deleteVehicle _x} forEach units group this;deleteVehicle (vehicle this);diag_log ""helicopter and crew deleted"""]; -[_grpPilot, 0] setWaypointName "GoHome"; -[_grpPilot,0] setWaypointTimeout [0.5,0.5,0.5]; - - -diag_log "reinforcements:: sending Heli Home"; - - diff --git a/@GMS/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaCrate.sqf b/@GMS/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaCrate.sqf deleted file mode 100644 index 8681e55..0000000 --- a/@GMS/addons/custom_server/Compiles/Reinforcements/GMS_fnc_spawnParaCrate.sqf +++ /dev/null @@ -1,82 +0,0 @@ -/* - Author: Ghostrider [GRG] - Inspiration: blckeagls / A3EAI / VEMF / IgiLoad / SDROP - License: Attribution-NonCommercial-ShareAlike 4.0 International - call with - [ - _supplyHeli, // heli from which they should para - _lootCounts, - _lootSetting // [blue, red, green, orange] - ] call blck_spawnHeliParaCrate -*/ - -params["_supplyHeli","_lootCounts"]; - -private ["_chute","_crate","_crateSelected","_dir","_offset"]; -_crate = ""; -_chute = ""; - -diag_log "_fnc_spawnParaCrate:: spawning crate"; - - -_dir = getDir _supplyHeli; -_dir = if (_dir < 180) then {_dir + 210} else {_dir - 210}; -_offset = _supplyHeli getPos [10, _dir]; - -//open parachute and attach to crate -_chute = createVehicle ["I_Parachute_02_F", [100, 100, 100], [], 0, "FLY"]; -[_chute] call blck_fnc_protectVehicle; -_chute setPos [_offset select 0, _offset select 1, 100 ]; //(_offset select 2) - 10]; - -diag_log format["_fnc_spawnParaCrate:: chute spawned yielding object %1 at postion %2", _chute, getPos _chute]; - -//create the parachute and crate -_crateSelected = selectRandom["Box_FIA_Ammo_F","Box_FIA_Support_F","Box_FIA_Wps_F","I_SupplyCrate_F","Box_IND_AmmoVeh_F","Box_NATO_AmmoVeh_F","Box_East_AmmoVeh_F","IG_supplyCrate_F"]; -_crate = [getPos _chute, _crateSelected] call blck_fnc_spawnCrate; -//_crate = createVehicle [_crateSelected, position _chute, [], 0, "CAN_COLLIDE"]; -_crate setPos [position _supplyHeli select 0, position _supplyHeli select 1, 250]; //(position _supplyHeli select 2) - 10]; -_crate attachTo [_chute, [0, 0, -1.3]]; -_crate allowdamage false; -_crate enableRopeAttach true; // allow slingloading where possible - -diag_log format["_fnc_spawnParaCrate:: crate spawned %1 at position %2 and attached to %3",_crate, getPos _crate, attachedTo _crate]; - - -switch (_lootSetting) do -{ - case "orange": {[_crate, blck_BoxLoot_Orange, _lootCounts] call blck_fnc_fillBoxes;}; - case "green": {[_crate, blck_BoxLoot_Green, _lootCounts] call blck_fnc_fillBoxes;}; - case "red": {[_crate, blck_BoxLoot_Red, _lootCounts] call blck_fnc_fillBoxes;}; - case "blue": {[_crate, blck_BoxLoot_Blue, _lootCounts] call blck_fnc_fillBoxes;}; - default {[_crate, blck_BoxLoot_Red, _lootCounts] call blck_fnc_fillBoxes;}; -}; - -diag_log format["_fnc_spawnParaCrate:: crate loaded and now at position %1 and attached to %2", getPos _crate, attachedTo _crate]; - -_fn_monitorCrate = { - params["_crate","_chute"]; - uiSleep 30; - private["_crateOnGround"]; - _crateOnGround = false; - while {!_crateOnGround} do - { - uiSleep 1; - diag_log format["_fnc_spawnParaCrate:: Crate Altitude: %1 Crate Velocity: %2 Crate Position: %3 Crate attachedTo %4", getPos _crate select 2, velocityModelSpace _crate select 2, getPosATL _crate, attachedTo _crate]; - if ( (((velocity _crate) select 2) < 0.1) || ((getPosATL _crate select 2) < 0.1) ) exitWith - { - uiSleep 10; // give some time for everything to settle - detach _crate; - deleteVehicle _chute; - if (surfaceIsWater (getPos _crate)) then - { - deleteVehicle _crate; - } else - { - [_crate] call blck_fnc_signalEnd; - }; - }; - }; -}; - -[_crate,_chute] call _fn_monitorCrate; -[[_crate], 1200 /* 20 min*/] spawn blck_fnc_addObjToQue; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertGroupUnits.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertGroupUnits.sqf index d53cd27..97faeb5 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertGroupUnits.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertGroupUnits.sqf @@ -1,6 +1,5 @@ /* by Ghostrider - 7-27-17 Alerts the leader of a group of the location of an enemy. -------------------------- diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertNearbyVehicles.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertNearbyVehicles.sqf index 37805b8..7880cfa 100644 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertNearbyVehicles.sqf +++ b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_alertNearbyVehicles.sqf @@ -14,7 +14,7 @@ params["_target"]; private["_vehGroup"]; { _vehGroup = _x getVariable["vehicleGroup",grpNull]; - if (_target distance2D (leader _vehGroup) < 1000) then {[_vehGroup,_target] call GMS_fnc_alertGroupUnits;}; + if (_target distance2D (leader _vehGroup) < 1000) then {[_vehGroup,_target] call blck_fnc_alertGroupUnits;}; }forEach blck_monitoredVehicles; diff --git a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_rewardKiller.sqf b/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_rewardKiller.sqf deleted file mode 100644 index 6677ea7..0000000 --- a/@GMS/addons/custom_server/Compiles/Units/GMS_fnc_rewardKiller.sqf +++ /dev/null @@ -1,63 +0,0 @@ - -/* - calculate a reward player for AI Kills in crypto. - Code fragment adapted from VEMF - call as [_unit,_killer] call blck_fnc_rewardKiller; - Last modified 6/3/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["_unit","_killer"]; -private["_reward","_maxReward","_dist","_killstreakReward","_distanceBonus","_newKillerScore","_newKillerFrags","_money"]; -if (toLower(blck_modType) isEqualTo "epoch") then -{ - if ( (vehicle _killer) in blck_forbidenVehicles || (currentWeapon _killer) in blck_forbidenVehicleGuns ) then - { - _reward = 0; - } - else - { - _maxReward = 50; - _dist = _unit distance _killer; - _reward = 0; - _distanceBonus = floor((_unit distance _killer)/100); - _killstreakBonus = 3 * (_killer getVariable["blck_kills",0]); - _reward = 25 + _distanceBonus + _killstreakBonus; - private _killstreakReward=+(_kills*2); - [_killer,_reward + _killstreakReward] call blck_fnc_giveTakeCrypto; - if (blck_useKillScoreMessage) then - { - [["showScore",[_reward,"",_kills],""],[_killer]] call blck_fnc_messageplayers; - }; - }; -}; - -if (toLower(blck_modType) isEqualTo "exile") then -{ - private["_distanceBonus","_overallRespectChange","_newKillerScore","_newKillerFrags","_maxReward","_money","_message"]; - if ( (isPlayer _killer) && (_killer getVariable["ExileHunger",0] > 0) && (_killer getVariable["ExileThirst",0] > 0) ) then - { - _distanceBonus = floor((_unit distance _killer)/100); - _killstreakBonus = 3 * (_killer getVariable["blck_kills",0]); - _respectGained = 25 + _distanceBonus + _killstreakBonus; - _score = _killer getVariable ["ExileScore", 0]; - _score = _score + (_respectGained); - _killer setVariable ["ExileScore", _score]; - format["setAccountScore:%1:%2", _score,getPlayerUID _killer] call ExileServer_system_database_query_fireAndForget; - _newKillerFrags = _killer getVariable ["ExileKills", 0]; - _newKillerFrags = _newKillerFrags + 1; - _killer setVariable ["ExileKills", _newKillerFrags]; - format["addAccountKill:%1", getPlayerUID _killer] call ExileServer_system_database_query_fireAndForget; - _killer call ExileServer_object_player_sendStatsUpdate; - if (blck_useKillScoreMessage) then - { - [["showScore",[_respectGained,_distanceBonus,_kills]], [_killer]] call blck_fnc_messageplayers; - }; - }; -}; diff --git a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehiclePatrol.sqf b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehiclePatrol.sqf index c8d4454..ed202b3 100644 --- a/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehiclePatrol.sqf +++ b/@GMS/addons/custom_server/Compiles/Vehicles/GMS_fnc_spawnVehiclePatrol.sqf @@ -16,15 +16,6 @@ private["_vehType","_safepos","_veh","_unitNumber"]; params["_center","_pos",["_vehType","I_G_Offroad_01_armed_F"],["_minDis",40],["_maxDis",60],["_group",grpNull],["_setWaypoints",true]]; -#ifdef blck_debugMode -if (blck_debugLevel > 1) then -{ - private _params = ["_center","_pos","_vehType","_minDis","_maxDis","_group","_setWaypoints"]; - { - diag_log format["_fnc_spawnMissionVehiclePatrol:: param %1 | isEqualTo %2 | _forEachIndex %3",_params select _forEachIndex,_this select _forEachIndex, _forEachIndex]; - }forEach _this; -}; -#endif //_center Center of the mission area - this is usuall the position treated as the center by the mission spawner. Vehicles will patrol the perimeter of the mission area. // _pos the approximate spawn point for the vehicle @@ -33,8 +24,6 @@ if (blck_debugLevel > 1) then //_maxDis = maximum distance from the center of the mission for vehicle waypoints //_groupForVehiclePatrol = The group with which to man the vehicle - - if !(isNull _group) then { _veh = [_vehType,_pos] call blck_fnc_spawnVehicle; // _veh addEventHandler["HandleDamage",{ [_this] call blck_EH_AIVehicle_HandleDamage}]; @@ -43,12 +32,6 @@ if !(isNull _group) then { _veh setVariable["blck_vehiclePlayerDetectionOdds",blck_vehiclePlayerDetectionOdds]; //_group setVariable["groupVehicle",_veh]; - #ifdef blck_debugMode - if (blck_debugLevel > 1) then - { - diag_log format["spawnVehiclePatrol:: vehicle spawned is %1 of typeof %2",_veh, typeOf _veh]; - }; - #endif _unitNumber = 0; @@ -60,7 +43,7 @@ if !(isNull _group) then { default {_x moveInCargo _veh;}; }; _unitNumber = _unitNumber + 1; - }forEach (units _group); + }forEach (units _group); // TODO: add check for empty crew slots and delete excess crew // params["_pos","_minDis","_maxDis","_group",["_mode","random"],["_wpPatrolMode","SAD"],["_soldierType","null"] ]; _group setcombatmode "RED"; diff --git a/@GMS/addons/custom_server/Compiles/blck_functions.sqf b/@GMS/addons/custom_server/Compiles/blck_functions.sqf index fb9b46d..6b0c747 100644 --- a/@GMS/addons/custom_server/Compiles/blck_functions.sqf +++ b/@GMS/addons/custom_server/Compiles/blck_functions.sqf @@ -39,6 +39,7 @@ private _functions = [ ["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"], // Player-related functions ["GMS_fnc_handlePlayerUpdates","\q\addons\custom_server\Compiles\Units\GMS_fnc_handlePlayerUpdates.sqf"], @@ -89,7 +90,7 @@ private _functions = [ // Group-related functions ["blck_fnc_spawnGroup","\q\addons\custom_server\Compiles\Groups\GMS_fnc_spawnGroup.sqf"], // Spawn a single group and populate it with AI units] ["blck_fnc_setupWaypoints","\q\addons\custom_server\Compiles\Groups\GMS_fnc_setupWaypoints.sqf"], // Set default waypoints for a group - ["blck_fnc_missionGroupMonitor","\q\addons\custom_server\Compiles\Groups\GMS_fnc_missionGroupMonitor.sqf"], // Monitors active groups for those that are stuck in an SAD waypoint but not in combat + //["blck_fnc_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"], @@ -150,8 +151,7 @@ private _functions = [ ["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"], - ["GMS_fnc_alertGroupUnits","\q\addons\custom_server\Compiles\Functions\GMS_fnc_alertGroupUnits.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"], diff --git a/@GMS/addons/custom_server/Configs/blck_configs.sqf b/@GMS/addons/custom_server/Configs/blck_configs.sqf index cccd2cb..b82890a 100644 --- a/@GMS/addons/custom_server/Configs/blck_configs.sqf +++ b/@GMS/addons/custom_server/Configs/blck_configs.sqf @@ -18,7 +18,7 @@ */ blck_locationBlackList = []; // Do not touch ... blck_debugON = true; // Do not touch ... - blck_debugLevel = 0; // Do not touch ... + blck_debugLevel = 3; // Do not touch ... #ifdef blck_milServer if (true) exitWith { @@ -292,29 +292,35 @@ ****************************************************************/ // When true, AI loadouts will be set from the class names in CfgPricing rather than the settings in the mod-specific configuration files blck_useConfigsGeneratedLoadouts = true; + blck_logBlacklistedItems = true; + //blck_maximumitempriceinai_loadouts = 1000; // lists of black-listed items to be excluded from dynamic loadouts blck_blacklistedVests = [ - + "V_Press_F" ]; blck_blacklistedUniforms = [ - + "U_I_Protagonist_VR", + "U_C_Protagonist_VR", + "U_O_Protagonist_VR", + "U_B_Protagonist_VR" ]; blck_blacklistedBackpacks = [ - + "B_ViperLightHarness_blk_F" ]; blck_blacklistedHeadgear = [ - + "H_HelmotO_ViperSP_ghex_F", + "H_HelmetO_VierSP_hex" ]; blck_blacklistedPrimaryWeapons = [ - + "srifle_LRR_tna_F" ]; blck_blacklistedSecondaryWeapons = [ - + "hgun_Pistol_heav_02_F" ]; blck_blacklistedLaunchersAndSwingWeapons = [ @@ -322,7 +328,7 @@ ]; blck_blacklistedOptics = [ - + "optic_tws" ]; blck_blacklistedAttachments = [ @@ -419,12 +425,20 @@ diag_log format["[blckeagls] Loading Mission System using Parameters for %1",blck_modType]; execVM "\q\addons\custom_server\Configs\blck_configs_exile.sqf"; }; - waitUntil{!isNil "blck_useConfigsGeneratedLoadouts"}; - waitUntil {!isNil "blck_maximumItemPriceInAI_Loadouts"}; + uiSleep 10; + //waitUntil{!isNil "blck_useConfigsGeneratedLoadouts"}; + //diag_log format["blck_maximumItemPriceInAI_Loadouts defined as %1",blck_maximumItemPriceInAI_Loadouts]; + //waitUntil {!isNil "blck_maximumItemPriceInAI_Loadouts"}; if (blck_useConfigsGeneratedLoadouts) then { diag_log format["[blckeagls] Dynamic Configs Enabled"]; execVM "\q\addons\custom_server\Configs\blck_dynamicConfigs.sqf"; + } else { + if (blck_verifyClassNames) then + { + + }; }; blck_configsLoaded = true; + diag_log format["<--- blck_configs loaded at %1 --->",diag_tickTime]; \ No newline at end of file diff --git a/@GMS/addons/custom_server/Configs/blck_configs_epoch.sqf b/@GMS/addons/custom_server/Configs/blck_configs_epoch.sqf index 7ba3b50..6c95da3 100644 --- a/@GMS/addons/custom_server/Configs/blck_configs_epoch.sqf +++ b/@GMS/addons/custom_server/Configs/blck_configs_epoch.sqf @@ -11,6 +11,7 @@ */ #include "\q\addons\custom_server\Configs\blck_defines.hpp"; +#include "\q\addons\custom_server\init\build.sqf"; diag_log format["[blckeagls] loading configurations for Epoch for blckeagls build %1",blck_buildNumber]; //////////// // Epoch-specific settings diff --git a/@GMS/addons/custom_server/Configs/blck_configs_epoch_mil.sqf b/@GMS/addons/custom_server/Configs/blck_configs_epoch_mil.sqf index ee24ee4..2c58634 100644 --- a/@GMS/addons/custom_server/Configs/blck_configs_epoch_mil.sqf +++ b/@GMS/addons/custom_server/Configs/blck_configs_epoch_mil.sqf @@ -46,6 +46,8 @@ AI WEAPONS, UNIFORMS, VESTS AND GEAR blck_crateMoneyGreen = [300, 500]; blck_crateMoneyOrange = [500, 750]; + blck_maximumItemPriceInAI_Loadouts = 100; + blck_allowSalesAtBlackMktTraders = true; // Allow vehicles to be sold at Halvjes black market traders. _blck_lightlyArmed_ARMA3 = [ diff --git a/@GMS/addons/custom_server/Configs/blck_configs_mil.sqf b/@GMS/addons/custom_server/Configs/blck_configs_mil.sqf index 47b52d0..4b6f5c2 100644 --- a/@GMS/addons/custom_server/Configs/blck_configs_mil.sqf +++ b/@GMS/addons/custom_server/Configs/blck_configs_mil.sqf @@ -276,6 +276,8 @@ ****************************************************************/ // When true, AI loadouts will be set from the class names in CfgPricing rather than the settings in the mod-specific configuration files blck_useConfigsGeneratedLoadouts = true; + blck_logblacklisteditems = true; + //blck_maximumitempriceinai_loadouts = 1000; // lists of black-listed items to be excluded from dynamic loadouts blck_blacklistedVests = [ @@ -404,8 +406,9 @@ diag_log format["[blckeagls] Loading Mission System using Parameters for %1 for militarized servers",blck_modType]; execVM "\q\addons\custom_server\Configs\blck_configs_exile_mil.sqf"; }; - waitUntil{!isNil "blck_useConfigsGeneratedLoadouts"}; - waitUntil {!isNil "blck_maximumItemPriceInAI_Loadouts"}; + //waitUntil{!isNil "blck_useConfigsGeneratedLoadouts"}; + //waitUntil {!isNil "blck_maximumItemPriceInAI_Loadouts"}; + uiSleep 10; if (blck_useConfigsGeneratedLoadouts) then { diag_log format["[blckeagls] Dynamic Configs Enabled"]; diff --git a/@GMS/addons/custom_server/Configs/blck_custom_config.sqf b/@GMS/addons/custom_server/Configs/blck_custom_config.sqf index 1d9f854..b52ab78 100644 --- a/@GMS/addons/custom_server/Configs/blck_custom_config.sqf +++ b/@GMS/addons/custom_server/Configs/blck_custom_config.sqf @@ -152,7 +152,7 @@ if (blck_debugON || (blck_debugLevel > 0)) then // These variables are found in blck_enableGreenMissions = -1; blck_enableRedMissions = -1; blck_enableBlueMissions = 1; - blck_numberUnderwaterDynamicMissions = 3; + blck_numberUnderwaterDynamicMissions = 1; blck_enableHunterMissions = -1; blck_enableScoutsMissions = -1; blck_maxCrashSites = -3; diff --git a/@GMS/addons/custom_server/Configs/blck_defines.hpp b/@GMS/addons/custom_server/Configs/blck_defines.hpp index c5e03e9..418422f 100644 --- a/@GMS/addons/custom_server/Configs/blck_defines.hpp +++ b/@GMS/addons/custom_server/Configs/blck_defines.hpp @@ -13,7 +13,7 @@ #define useAPEX #define blck_milServer -#define blck_useCUP +//#define blck_useCUP //#define blck_useRHS //////////////////////////// diff --git a/@GMS/addons/custom_server/Configs/blck_dynamicConfigs.sqf b/@GMS/addons/custom_server/Configs/blck_dynamicConfigs.sqf index d813e0a..43ea0fc 100644 --- a/@GMS/addons/custom_server/Configs/blck_dynamicConfigs.sqf +++ b/@GMS/addons/custom_server/Configs/blck_dynamicConfigs.sqf @@ -65,6 +65,7 @@ if (toLower(blck_modType) isEqualTo "exile") then }; //diag_log format["_fnc_dynamicConfigsConfigurator: count _classnameList = %1",count _classnameList]; { + private _temp = [_x] call bis_fnc_itemType; //diag_log _temp; _itemCategory = _temp select 0; @@ -80,51 +81,51 @@ if (toLower(blck_modType) isEqualTo "exile") then }; if (_price < blck_maximumItemPriceInAI_Loadouts) then { - if (_itemCategory isEqualTo "Weapon") then - { - switch (_itemType) do + if (_itemCategory isEqualTo "Weapon") then { - case "AssaultRifle": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnAR pushBack _x}}; - case "MachineGun": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnLMG pushBack _x}}; - case "SubmachineGun": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnSMG pushBack _x}}; - case "Shotgun": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnShotGun pushBack _x}}; - case "Rifle": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnAR pushBack _x}}; - case "SniperRifle": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnSniper pushBack _x}}; - case "Handgun": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnHandGun pushBack _x}}; - case "Launcher": {if !(_x in blck_blacklistedLaunchersAndSwingWeapons) then {_wpnLauncher pushBack _x}}; - case "RocketLauncher": {if !(_x in blck_blacklistedLaunchersAndSwingWeapons) then {_wpnLauncher pushBack _x}}; - case "Throw": {if !(_x in blck_blacklistedItems) then {_wpnThrow pushBack _x}}; + switch (_itemType) do + { + case "AssaultRifle": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnAR pushBack _x} else {if (blck_logBlacklistedItems) then {diag_log format["Assualt Rifle %1 Excluded: blacklisted Item",_x]}}}; + case "MachineGun": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnLMG pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Machine Gun %1 Excluded: blacklisted Item",_x]}}}; + case "SubmachineGun": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnSMG pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Submachinegun %1 Excluded: blacklisted Item",_x]}}}; + case "Shotgun": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnShotGun pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Shotgun %1 Excluded: blacklisted Item",_x]}}}; + case "Rifle": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnAR pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Rifle %1 Excluded: blacklisted Item",_x]}}}; + case "SniperRifle": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnSniper pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Sniper Rifle %1 Excluded: blacklisted Item",_x]}}}; + case "Handgun": {if !(_x in blck_blacklistedSecondaryWeapons) then {_wpnHandGun pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Handgun %1 Excluded: blacklisted Item",_x]}}}; + case "Launcher": {if !(_x in blck_blacklistedLaunchersAndSwingWeapons) then {_wpnLauncher pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Launcher %1 Excluded: blacklisted Item",_x]}}}; + case "RocketLauncher": {if !(_x in blck_blacklistedLaunchersAndSwingWeapons) then {_wpnLauncher pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Rocket Launcer %1 Excluded: blacklisted Item",_x]}}}; + case "Throw": {if !(_x in blck_blacklistedItems) then {_wpnThrow pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Throw %1 Excluded: blacklisted Item",_x]}}}; + }; }; - }; - - if (_itemCategory isEqualTo "Item") then - { - switch (_itemType) do + + if (_itemCategory isEqualTo "Item") then { - case "AccessoryMuzzle": {if !(_x in blck_blacklistedAttachments) then {_wpnMuzzles pushBack _x}}; - case "AccessoryPointer": {if !(_x in blck_blacklistedAttachments) then {_wpnPointers pushBack _x}}; - case "AccessorySights": {if !(_x in blck_blacklistedOptics) then {_wpnOptics pushBack _x}}; - case "AccessoryBipod": {if !(_x in blck_blacklistedAttachments) then {_wpnUnderbarrel pushBack _x}}; - case "Binocular": {if !(_x in blck_blacklistedItems) then {_misc pushBack _x}}; - case "Compass": {if !(_x in blck_blacklistedItems) then {_misc pushBack _x}}; - case "GPS": {if !(_x in blck_blacklistedItems) then {_misc pushBack _x}}; - case "NVGoggles": {if !(_x in blck_blacklistedItems) then {_NVG pushBack _x}}; + switch (_itemType) do + { + case "AccessoryMuzzle": {if !(_x in blck_blacklistedAttachments) then {_wpnMuzzles pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Muzzle %1 Excluded: blacklisted Item",_x]}}}; + case "AccessoryPointer": {if !(_x in blck_blacklistedAttachments) then {_wpnPointers pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Pointer %1 Excluded: blacklisted Item",_x]}}}; + case "AccessorySights": {if !(_x in blck_blacklistedOptics) then {_wpnOptics pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Optic %1 Excluded: blacklisted Item",_x]}}}; + case "AccessoryBipod": {if !(_x in blck_blacklistedAttachments) then {_wpnUnderbarrel pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Bipod %1 Excluded: blacklisted Item",_x]}}}; + case "Binocular": {if !(_x in blck_blacklistedItems) then {_misc pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Binocular/Rangefinder/Binocular %1 Excluded: blacklisted Item",_x]}}}; + case "Compass": {if !(_x in blck_blacklistedItems) then {_misc pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Compass %1 Excluded: blacklisted Item",_x]}}}; + case "GPS": {if !(_x in blck_blacklistedItems) then {_misc pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["GPS %1 Excluded: blacklisted Item",_x]}}}; + case "NVGoggles": {if !(_x in blck_blacklistedItems) then {_NVG pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["NVG %1 Excluded: blacklisted Item",_x]}}}; + }; }; - }; - - - if (_itemCategory isEqualTo "Equipment") then - { - switch (_itemType) do + + + if (_itemCategory isEqualTo "Equipment") then { - case "Glasses": {if !(_x in blck_blacklistedItems) then {_glasses pushBack _x}}; - case "Headgear": {if !(_x in blck_blacklistedHeadgear) then {_headgear pushBack _x}}; - case "Vest": {if !(_x in blck_blacklistedVests) then {_vests pushBack _x}}; - case "Uniform": {if !(_x in blck_blacklistedUniforms) then {_uniforms pushBack _x}}; - case "Backpack": {if !(_x in blck_blacklistedBackpacks) then {_backpacks pushBack _x}}; + switch (_itemType) do + { + case "Glasses": {if !(_x in blck_blacklistedItems) then {_glasses pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Glasses %1 Excluded: blacklisted Item",_x]}}}; + case "Headgear": {if !(_x in blck_blacklistedHeadgear) then {_headgear pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Headgear %1 Excluded: blacklisted Item",_x]}}}; + case "Vest": {if !(_x in blck_blacklistedVests) then {_vests pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Vest %1 Excluded: blacklisted Item",_x]}}}; + case "Uniform": {if !(_x in blck_blacklistedUniforms) then {_uniforms pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Uniform %1 Excluded: blacklisted Item",_x]}}}; + case "Backpack": {if !(_x in blck_blacklistedBackpacks) then {_backpacks pushBack _x}else {if (blck_logBlacklistedItems) then {diag_log format["Backpack %1 Excluded: blacklisted Item",_x]}}}; + }; }; }; - }; } forEach _classnameList; blck_primaryWeapons = _wpnAR + _wpnLMG + _wpnSMG + _wpnShotGun + _wpnSniper; diff --git a/@GMS/addons/custom_server/Missions/Static/GMS_StaticMissions_Lists.sqf b/@GMS/addons/custom_server/Missions/Static/GMS_StaticMissions_Lists.sqf index 267856d..7ba591f 100644 --- a/@GMS/addons/custom_server/Missions/Static/GMS_StaticMissions_Lists.sqf +++ b/@GMS/addons/custom_server/Missions/Static/GMS_StaticMissions_Lists.sqf @@ -16,10 +16,10 @@ private ["_staticMissions"]; _staticMissions = [ // [mod (Epoch, Exile), map (Altis, Tanoa etc), mission center, eg [10445,2014,0], filename.sqf (name of static mission template for that mission)]; //["Epoch","Altis","template.sqf"], - ["Epoch","Altis","staticMissionExample2_Epoch.sqf"], + //["Epoch","Altis","staticMissionExample2_Epoch.sqf"], //["Epoch","Altis","destroyer.sqf"], //["Exile","Altis","template.sqf"], - ["Exile","Altis","staticMissionExample2_Exile.sqf"] + //["Exile","Altis","staticMissionExample2_Exile.sqf"] ]; diag_log "[blckeagls] GMS_StaticMissions_Lists.sqf <Loaded>"; diff --git a/@GMS/addons/custom_server/Missions/UMS/code/GMS_fnc_spawnDynamicUMSMission.sqf b/@GMS/addons/custom_server/Missions/UMS/code/GMS_fnc_spawnDynamicUMSMission.sqf index dea9cf6..e452748 100644 --- a/@GMS/addons/custom_server/Missions/UMS/code/GMS_fnc_spawnDynamicUMSMission.sqf +++ b/@GMS/addons/custom_server/Missions/UMS/code/GMS_fnc_spawnDynamicUMSMission.sqf @@ -51,6 +51,7 @@ if (isNil "_chanceLoot") then {_chanceLoot = 0}; if (isNil "_paraTriggerDistance") then {_paraTriggerDistance = 400;}; if (isNil "_paraLoot") then {_paraLoot = blck_BoxLoot_Blue}; if (isNil "_paraLootCounts") then {_paraLootCounts = blck_lootCountsRed}; +if (isNil "_vehicleCrewCount") then {_vehicleCrewCount = [_aiDifficultyLevel] call GMS_fnc_selectVehicleCrewCount}; _objects = []; _mines = []; @@ -259,7 +260,7 @@ _vehToSpawn = 0; if (blck_useVehiclePatrols && count _vehiclePatrolParameters > 0) then { // params["_coords","_noVehiclePatrols","_aiDifficultyLevel","_missionPatrolVehicles",["_useRelativePos",true],["_uniforms",blck_SkinList], ["_headGear",blck_headgear],["_vests",blck_vests],["_backpacks",blck_backpacks],["_weaponList",[]],["_sideArms",blck_Pistols], ["_isScubaGroup",false]]; - _temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_vehiclePatrolParameters,true,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms,false /*,blck_UMS_weapons,blck_UMS_vests,isScubaMission*/ ] call blck_fnc_spawnMissionVehiclePatrols; + _temp = [_coords,_vehToSpawn,_aiDifficultyLevel,_vehiclePatrolParameters,true,_uniforms,_headGear,_vests,_backpacks,_weaponList,_sideArms,false,_vehicleCrewCount /*,blck_UMS_weapons,blck_UMS_vests,isScubaMission*/ ] call blck_fnc_spawnMissionVehiclePatrols; #ifdef blck_debugMode if (blck_debugLevel > 1) then { diag_log format["dynamicUMSspawner :: (251) blck_fnc_spawnMissionVehiclePatrols returned _temp = %1",_temp]; diff --git a/@GMS/addons/custom_server/Missions/privateVars.sqf b/@GMS/addons/custom_server/Missions/privateVars.sqf index 809d007..13c9e03 100644 --- a/@GMS/addons/custom_server/Missions/privateVars.sqf +++ b/@GMS/addons/custom_server/Missions/privateVars.sqf @@ -4,4 +4,4 @@ private ["_markerLabel","_endMsg","_startMsg","_lootCounts","_crateLoot","_marke "_uniforms","_headgear","_weaponList","_sideArms","_vests","_backpacks","_chancePara","_noPara","_chanceHeliPatrol","_noChoppers","_missionHelis", "__noChoppers","_endCondition","_chanceHeliLootDropped","_chanceLoot","_paraTriggerDistance","_paraLootCounts","_paraLoot","_markerColor","_loadCratesTiming", "_markerType","_useMines","_assetKilledMsg","_enemyLeaderConfig","_hostageConfig","_garrisonedBuildings_BuildingPosnSystem","_garrisonedBuilding_ATLsystem", - "_submarinePatrolParameters","_scubaGroupParameters"]; \ No newline at end of file + "_submarinePatrolParameters","_scubaGroupParameters","_vehicleCrewCount"]; \ No newline at end of file diff --git a/@GMS/addons/custom_server/TODO b/@GMS/addons/custom_server/TODO index 3a6e6e7..b32e2e2 100644 --- a/@GMS/addons/custom_server/TODO +++ b/@GMS/addons/custom_server/TODO @@ -1,16 +1,16 @@ For V 6.90: - 1. Sort out the issue with the handling of unit kills not separating killer from the killer's vehicle. + 1. Sort out the issue with the handling of unit kills not separating killer from the killer's vehicle. DONE 2. Test new unlock fix on HC 3. Write a claim vehicle function. 4. End of development most likely. 5. be sure AI do heal when wounded but not killed. 6. test that ai toss smoke when healing - 7. Set up queue for markers needing to be deleted. + 7. Set up queue for markers needing to be deleted. DONE need to call something that quickly scans for markers that need to be deleted - need to push temp markers to the cue with delete times. + need to push temp markers to the cue with delete times. DONE 8. add a quick thing for refreshing flares on crates to replace all those uisleeps - do this in _signalEnd and _crateMarker - replace _crateMarker with calls to signalEnd. + do this in _signalEnd and _crateMarker DONE + replace _crateMarker with calls to signalEnd. DONE 9. Check that trader zones are detected properly in Exile. Todo: - ☐ Item + ☐ Item: add check for empty crew slots and delete excess crew