Merge branch 'Development' into Experimental

This commit is contained in:
Chris Cardozo 2020-10-01 11:53:13 -04:00
commit bb119d2808
5 changed files with 34 additions and 53 deletions

View File

@ -21,10 +21,11 @@ switch (toLower worldName) do
case "taviana": {_mapCenter = [12000,12000,0];_maxDistance = 12000}; case "taviana": {_mapCenter = [12000,12000,0];_maxDistance = 12000};
case "napf" : {_mapCenter = getArray(configFile >> "CfgWorlds" >> worldName >> "centerPosition");_maxDistance = 12000}; case "napf" : {_mapCenter = getArray(configFile >> "CfgWorlds" >> worldName >> "centerPosition");_maxDistance = 12000};
case "lythium": {_mapCenter = [10000,10000,0]; _maxDistance = 6000;}; case "lythium": {_mapCenter = [10000,10000,0]; _maxDistance = 6000;};
case "vt7": {_mapCenter = [9000,9000,0]; _maxDistance = 9000};
default {_mapCenter = [6000,6000,0]; _maxDistance = 6000;}; default {_mapCenter = [6000,6000,0]; _maxDistance = 6000;};
}; };
_evaluate = true; private _evaluate = true;
while {_evaluate} do while {_evaluate} do
{ {
_waterPos = [ _waterPos = [
@ -35,33 +36,14 @@ _evaluate = true;
2, // water mode [2 = water only] 2, // water mode [2 = water only]
25, // max gradient 25, // max gradient
0 // shoreMode [0 = anywhere] 0 // shoreMode [0 = anywhere]
] call BIS_fnc_findSafePos; ] call BIS_fnc_findSafePos;
/*
_priorUMSpositions = +blck_priorDynamicUMS_Missions; if (((getTerrainHeightASL _waterPos) < -4) && (getTerrainHeightASL _waterPos) > -10) then
{ {
if (diag_tickTime > ((_x select 1) + 1800) then _evaluate = false;
{
blck_priorDynamicUMS_Missions = blck_priorDynamicUMS_Missions - _x;
} else {
if (_waterPos distance2D (_x select 0) < 2000) exitWith {_evaluate = false};
};
} forEach _priorUMSpositions;
*/
if (_evaluate) then
{
if (abs(getTerrainHeightASL _waterPos) < 30) then
{
if (abs(getTerrainHeightASL _waterPos) > 1) then
{
//_waterMarker = createMarker [format["water mission %1",getTerrainHeightASL _waterPos],_waterPos];
//_waterMarker setMarkerColor "ColorRed";
//_waterMarker setMarkerType "mil_triangle";
//_waterMarker setMarkerText format["Depth %1",getTerrainHeightASL _waterPos];
_evaluate = false;
};
};
}; };
}; };
//diag_log format["_findShoreLocation: _waterPos = %1",_waterPos];
_waterPos _waterPos

View File

@ -27,14 +27,15 @@ _units = [];
_abort = false; _abort = false;
_pos = []; _pos = [];
// Define _missionEmplacedWeapons if not already configured. private _emplacedWepData = +_missionEmplacedWeapons;
if (_missionEmplacedWeapons isEqualTo []) then // Define _emplacedWepData if not already configured.
if (_emplacedWepData isEqualTo []) then
{ {
_missionEmplacedWeaponPositions = [_coords,_noEmplacedWeapons,35,50] call blck_fnc_findPositionsAlongARadius; _missionEmplacedWeaponPositions = [_coords,_noEmplacedWeapons,35,50] call blck_fnc_findPositionsAlongARadius;
{ {
_static = selectRandom blck_staticWeapons; _static = selectRandom blck_staticWeapons;
_missionEmplacedWeapons pushback [_static,_x]; _emplacedWepData pushback [_static,_x];
} forEach _missionEmplacedWeaponPositions; } forEach _missionEmplacedWeaponPositions;
_useRelativePos = false; _useRelativePos = false;
}; };
@ -77,7 +78,7 @@ if (_missionEmplacedWeapons isEqualTo []) then
_return = grpNull; _return = grpNull;
["createGroup returned grpNull","warning"] call blck_fnc_log; ["createGroup returned grpNull","warning"] call blck_fnc_log;
}; };
} forEach _missionEmplacedWeapons; } forEach _emplacedWepData;
if !(_abort) then if !(_abort) then
{ {
blck_monitoredVehicles append _emplacedWeps; blck_monitoredVehicles append _emplacedWeps;

View File

@ -22,22 +22,22 @@ if (_backpacks isEqualTo []) then {_backpacks = [_skillAI] call blck_fnc_sele
if (_weaponList isEqualTo []) then {_weaponList = [_skillAI] call blck_fnc_selectAILoadout}; if (_weaponList isEqualTo []) then {_weaponList = [_skillAI] call blck_fnc_selectAILoadout};
if (_sideArms isEqualTo []) then {[_skillAI] call blck_fnc_selectAISidearms}; if (_sideArms isEqualTo []) then {[_skillAI] call blck_fnc_selectAISidearms};
private["_vehGroup","_vehiclePatrolSpawns""_missiongroups","_vehiclePatrolSpawns","_vehicle","_spawnPos","_return"];
private _vehicles = [];
private _missionAI = [];
private _abort = false;
private _patrolsThisMission = +_missionPatrolVehicles;
if (_patrolsThisMission isEqualTo []) then
private["_vehGroup","_vehiclePatrolSpawns","_missionAI","_missiongroups","_vehicles","_return","_vehiclePatrolSpawns","_vehicle","_return","_abort","_spawnPos","_v"];
_vehicles = [];
_missionAI = [];
_abort = false;
if (_missionPatrolVehicles isEqualTo []) then
{ {
_useRelativePos = false; _useRelativePos = false;
_vehiclePatrolSpawns = [_coords,_noVehiclePatrols,45,60] call blck_fnc_findPositionsAlongARadius; _vehiclePatrolSpawns = [_coords,_noVehiclePatrols,45,60] call blck_fnc_findPositionsAlongARadius;
{ {
_v = [_skillAI] call blck_fnc_selectPatrolVehicle; private _v = [_skillAI] call blck_fnc_selectPatrolVehicle;
_missionPatrolVehicles pushBack [_v, _x]; _patrolsThisMission pushBack [_v, _x];
}forEach _vehiclePatrolSpawns; }forEach _vehiclePatrolSpawns;
}; };
#define configureWaypoints false #define configureWaypoints false
{ {
if (_useRelativePos) then if (_useRelativePos) then
@ -46,7 +46,7 @@ if (_missionPatrolVehicles isEqualTo []) then
} else { } else {
_spawnPos = _x select 1; _spawnPos = _x select 1;
}; };
_vehicle = _x select 0; private _vehicle = _x select 0;
_vehGroup = [blck_AI_Side,true] call blck_fnc_createGroup; _vehGroup = [blck_AI_Side,true] call blck_fnc_createGroup;
_patrolVehicle = objNull; _patrolVehicle = objNull;
@ -67,7 +67,8 @@ if (_missionPatrolVehicles isEqualTo []) then
} else { } else {
_abort = true; _abort = true;
}; };
} forEach _missionPatrolVehicles; } forEach _patrolsThisMission;
if !(_abort) then if !(_abort) then
{ {
blck_monitoredVehicles append _vehicles; blck_monitoredVehicles append _vehicles;

View File

@ -12,7 +12,7 @@
*/ */
#include "\q\addons\custom_server\Configs\blck_defines.hpp"; #include "\q\addons\custom_server\Configs\blck_defines.hpp";
private ["_i","_weap","_skin","_unit","_skillLevel","_aiSkills","_launcherRound","_index","_ammoChoices","_optics","_pointers","_muzzles","_underbarrel","_legalOptics"]; private ["_i","_weap","_unit","_skillLevel","_aiSkills","_launcherRound","_index","_ammoChoices","_optics","_pointers","_muzzles","_underbarrel","_legalOptics"];
params["_pos","_aiGroup",["_skillLevel","red"],["_uniforms", []],["_headGear",[]],["_vests",[]],["_backpacks",[]],["_Launcher","none"],["_weaponList",[]],["_sideArms",[]],["_scuba",false],["_garrison",false]]; params["_pos","_aiGroup",["_skillLevel","red"],["_uniforms", []],["_headGear",[]],["_vests",[]],["_backpacks",[]],["_Launcher","none"],["_weaponList",[]],["_sideArms",[]],["_scuba",false],["_garrison",false]];
if (_weaponList isEqualTo []) then {_weaponList = [_skillLevel] call blck_fnc_selectAILoadout}; if (_weaponList isEqualTo []) then {_weaponList = [_skillLevel] call blck_fnc_selectAILoadout};
@ -60,17 +60,6 @@ if (_scuba) then
_unit swiminDepth (([_pos] call blck_fnc_findWaterDepth) / 2); _unit swiminDepth (([_pos] call blck_fnc_findWaterDepth) / 2);
}; };
_skin = "";
_counter = 1;
if (surfaceIsWater (getPos _unit)) then
{
_uniforms = blck_UMS_uniforms;
_headGear = blck_UMS_headgear;
_weaponList = blck_UMS_weapons;
_vests = blck_UMS_vests;
};
//Sets AI Tactics //Sets AI Tactics
_unit enableAI "ALL"; _unit enableAI "ALL";
if(_garrison) then if(_garrison) then
@ -81,6 +70,14 @@ _unit allowDammage true;
_unit setBehaviour "COMBAT"; _unit setBehaviour "COMBAT";
_unit setunitpos "AUTO"; _unit setunitpos "AUTO";
if (surfaceIsWater (getPos _unit)) then
{
_uniforms = blck_UMS_uniforms;
_headGear = blck_UMS_headgear;
_weaponList = blck_UMS_weapons;
_vests = blck_UMS_vests;
};
_unit forceAddUniform (selectRandom _uniforms);
if !(_headGear isEqualTo []) then if !(_headGear isEqualTo []) then
{ {
_unit addHeadgear (selectRandom _headGear); _unit addHeadgear (selectRandom _headGear);

View File

@ -52,7 +52,7 @@ blck_missionData = [];
blck_activeMissionsList = []; blck_activeMissionsList = [];
blck_initializedMissionsList = []; blck_initializedMissionsList = [];
blck_blackListedLocations = []; // [ [marker, time]] blck_blackListedLocations = []; // [ [marker, time]]
blck_activeMonitorThreads = 0;
blck_validEndStates = ["allUnitsKilled", "playerNear", "allKilledOrPlayerNear","assetSecured"]; blck_validEndStates = ["allUnitsKilled", "playerNear", "allKilledOrPlayerNear","assetSecured"];
blck_validLootSpawnTimings = ["atMissionSpawnGround","atMissionSpawnAir","atMissionEndGround","atMissionEndAir"]; blck_validLootSpawnTimings = ["atMissionSpawnGround","atMissionSpawnAir","atMissionEndGround","atMissionEndAir"];
blck_validLootLoadTimings = ["atMissionCompletion", "atMissionSpawn"]; blck_validLootLoadTimings = ["atMissionCompletion", "atMissionSpawn"];