diff --git a/changeLog.txt b/changeLog.txt index b82d6f9..9d945c1 100644 --- a/changeLog.txt +++ b/changeLog.txt @@ -1,9 +1,18 @@ +================================================================================= +V55 (27-07-2016) +================================================================================= +Tweaked military AI +Added _vehicleObject setVariable ["ExileIsPersistent", false]; to vehicle spawns +to allow them to be claimed using: +http://www.exilemod.com/topic/13283-updated-claim-non-persistent-vehicles/ + ================================================================================= V54 (26-07-2016) ================================================================================= -Reworked military spawning to include the entire map rather than a small area -Tweaked the spawning of AI in an attempt to stop groups of AI randomly murdering -each other when spawning (thanks to Zupa for the pointers) +Reworked military spawning to include the entire map rather than a small area +(including the new military buildings on Tanoa). Tweaked the spawning of AI in an +attempt to stop groups of AI randomly murdering each other when spawning +(thanks to Zupa for the pointers) ================================================================================= V53 (20-07-2016) diff --git a/config.cpp b/config.cpp index 72959c2..ebf3ed8 100644 --- a/config.cpp +++ b/config.cpp @@ -4,7 +4,7 @@ class CfgPatches units[] = {}; weapons[] = {}; requiredVersion = 0.1; - a3_exile_occupation_version = "v54 (26-07-2016)"; + a3_exile_occupation_version = "v55 (27-07-2016)"; requiredAddons[] = {"a3_dms"}; author[]= {"second_coming"}; }; diff --git a/scripts/functions/fnc_isSafePos.sqf b/scripts/functions/fnc_isSafePos.sqf index af667b8..9af776c 100644 --- a/scripts/functions/fnc_isSafePos.sqf +++ b/scripts/functions/fnc_isSafePos.sqf @@ -41,6 +41,14 @@ if(_validspot) then // is position in range of a player? if([_position, SC_minDistanceToPlayer] call ExileClient_util_world_isAlivePlayerInRange) exitwith { _validspot = false; }; + + // is position in range of a map marker? + { + _markerPos = getMarkerPos _x; + if ((_markerPos distance2D _position) < 350) exitWith { _validspot = false; }; + } + forEach allMapMarkers; + }; _validspot \ No newline at end of file diff --git a/scripts/occupationMilitary.sqf b/scripts/occupationMilitary.sqf index 7308d33..6cef502 100644 --- a/scripts/occupationMilitary.sqf +++ b/scripts/occupationMilitary.sqf @@ -95,7 +95,7 @@ if(_aiActive > _maxAIcount) exitWith // Get AI to patrol the area ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// _aiCount = 2 + (round (random 1)); - _groupRadius = 100; + _groupRadius = 200; _difficulty = "random"; _side = SC_BanditSide; _spawnPosition = _pos; @@ -125,7 +125,7 @@ if(_aiActive > _maxAIcount) exitWith }foreach units _group; [_group, _pos, _groupRadius] call bis_fnc_taskPatrol; - _group setBehaviour "AWARE"; + _group setBehaviour "STEALTH"; _group setCombatMode "RED"; } else @@ -148,7 +148,7 @@ if(_aiActive > _maxAIcount) exitWith }; }foreach units _group; - [ _group,_pos,_difficulty,"AWARE" ] call DMS_fnc_SetGroupBehavior; + [ _group,_pos,_difficulty,"STEALTH" ] call DMS_fnc_SetGroupBehavior; _buildings = _pos nearObjects ["house", _groupRadius]; { @@ -170,13 +170,12 @@ if(_aiActive > _maxAIcount) exitWith _i = _buildingPositions find _spawnPosition; _wp = _group addWaypoint [_spawnPosition, 0] ; - _wp setWaypointFormation "Column"; _wp setWaypointBehaviour "AWARE"; _wp setWaypointCombatMode "RED"; _wp setWaypointCompletionRadius 1; _wp waypointAttachObject _y; _wp setwaypointHousePosition _i; - _wp setWaypointType "SAD"; + _wp setWaypointType "MOVE"; }; } foreach _buildings; diff --git a/scripts/occupationSea.sqf b/scripts/occupationSea.sqf index eaba2e1..c2dc96e 100644 --- a/scripts/occupationSea.sqf +++ b/scripts/occupationSea.sqf @@ -88,6 +88,7 @@ for "_i" from 1 to _vehiclesToSpawn do _vehicle lock 0; _vehicle setVehicleLock "UNLOCKED"; _vehicle setVariable ["ExileIsLocked", 0, true]; + _vehicle setVariable ["ExileIsPersistent", false]; _vehicle action ["LightOn", _vehicle]; sleep 0.2; _group addVehicle _vehicle; diff --git a/scripts/occupationSky.sqf b/scripts/occupationSky.sqf index d57fb31..d8eb201 100644 --- a/scripts/occupationSky.sqf +++ b/scripts/occupationSky.sqf @@ -109,6 +109,7 @@ for "_i" from 1 to _vehiclesToSpawn do _vehicle lock 0; _vehicle setVehicleLock "UNLOCKED"; _vehicle setVariable ["ExileIsLocked", 0, true]; + _vehicle setVariable ["ExileIsPersistent", false]; _vehicle action ["LightOn", _vehicle]; // Calculate the number of seats in the vehicle and fill the required amount diff --git a/scripts/occupationVehicle.sqf b/scripts/occupationVehicle.sqf index c3f43e1..ee0aebb 100644 --- a/scripts/occupationVehicle.sqf +++ b/scripts/occupationVehicle.sqf @@ -156,7 +156,8 @@ if(_vehiclesToSpawn >= 1) then _vehicle setVehicleLock "UNLOCKED"; _vehicle setVariable ["ExileIsLocked", 0, true]; }; - + + _vehicle setVariable ["ExileIsPersistent", false]; _vehicle setSpeedMode "LIMITED"; _vehicle limitSpeed 60; _vehicle action ["LightOn", _vehicle];