diff --git a/config.sqf b/config.sqf index 710b6f7..86dffcf 100644 --- a/config.sqf +++ b/config.sqf @@ -12,7 +12,7 @@ // Shared Config for each occupation monitor -SC_debug = false; // set to true to turn on debug features (not for live servers) +SC_debug = true; // set to true to turn on debug features (not for live servers) SC_extendedLogging = false; // set to true for additional logging SC_infiSTAR_log = true; // true Use infiSTAR logging, false logs to server rpt SC_maxAIcount = 100; // the maximum amount of AI, if the AI count is above this then additional AI won't spawn @@ -70,7 +70,7 @@ SC_buildings = [ "Land_TentHangar_V1_F","Land_Hangar_F", ]; -SC_occupyStatic = false; // true if you want to garrison AI in specific locations +SC_occupyStatic = true; // true if you want to garrison AI in specific locations diff --git a/initServer.sqf b/initServer.sqf index ba53ec2..6677bba 100644 --- a/initServer.sqf +++ b/initServer.sqf @@ -2,7 +2,7 @@ // // Server Occupation script by second_coming // -SC_occupationVersion = "v15 (14-04-2016)"; +SC_occupationVersion = "v16 (14-04-2016)"; // // http://www.exilemod.com/profile/60-second_coming/ // diff --git a/scripts/occupationStatic.sqf b/scripts/occupationStatic.sqf index 49bcc30..a9225c8 100644 --- a/scripts/occupationStatic.sqf +++ b/scripts/occupationStatic.sqf @@ -39,9 +39,9 @@ if(_aiActive > _maxAIcount) exitWith [_logDetail] call SC_fnc_log; }; -for [{_i = 0},{_i < (count _statics)},{_i =_i + 1}] do + { - _currentStatic = _statics select _i; + _currentStatic = _x; _spawnPosition = _currentStatic select 0; _aiCount = _currentStatic select 1; _radius = _currentStatic select 2; @@ -57,8 +57,8 @@ for [{_i = 0},{_i < (count _statics)},{_i =_i + 1}] do { // Don't spawn additional AI if there are already AI in range - _aiNear = count(_spawnPosition nearEntities ["O_recon_F", 250]); - if(_aiNear > 0) exitwith + _nearEastAI = { side _x == EAST AND _x distance _pos < 250 } count allUnits; + if(_nearEastAI > 0) exitwith { _okToSpawn = false; if(_debug) then @@ -69,7 +69,7 @@ for [{_i = 0},{_i < (count _statics)},{_i =_i + 1}] do }; // Don't spawn additional AI if there are players in range - if([_spawnPosition, 400] call ExileClient_util_world_isAlivePlayerInRange) exitwith + if([_spawnPosition, 250] call ExileClient_util_world_isAlivePlayerInRange) exitwith { _okToSpawn = false; if(_debug) then @@ -89,23 +89,32 @@ for [{_i = 0},{_i < (count _statics)},{_i =_i + 1}] do _side = "bandit"; DMS_ai_use_launchers = false; - _group = [_spawnPosition, _aiCount, _difficulty, "assault", _side] call DMS_fnc_SpawnAIGroup; + _initialGroup = [_spawnPosition, _aiCount, _difficulty, "assault", _side] call DMS_fnc_SpawnAIGroup; + DMS_ai_use_launchers = _useLaunchers; + _initialGroup setCombatMode "BLUE"; + _initialGroup setBehaviour "SAFE"; + + _group = createGroup EAST; + _group setVariable ["DMS_LockLocality",nil]; + _group setVariable ["DMS_SpawnedGroup",true]; + _group setVariable ["DMS_Group_Side", _side]; { - _unit = _x; + _unit = _x; [_unit] joinSilent grpNull; [_unit] joinSilent _group; - }foreach units _group; - - [ _group,_spawnPosition,_difficulty,"AWARE" ] call DMS_fnc_SetGroupBehavior; - DMS_ai_use_launchers = true; + if(SC_debug) then + { + _tag = createVehicle ["Sign_Arrow_F", position _unit, [], 0, "CAN_COLLIDE"]; + _tag attachTo [_unit,[0,0,0.6],"Head"]; + }; + }foreach units _initialGroup; + // Get the AI to shut the fuck up :) enableSentences false; enableRadio false; - - - + if(!_staticSearch) then { [_group, _spawnPosition, _groupRadius] call bis_fnc_taskPatrol; @@ -170,6 +179,7 @@ for [{_i = 0},{_i < (count _statics)},{_i =_i + 1}] do }; }; -}; +}forEach _statics; + _logDetail = "[OCCUPATION Static]: Ended"; [_logDetail] call SC_fnc_log; \ No newline at end of file diff --git a/scripts/occupationVehicle.sqf b/scripts/occupationVehicle.sqf index 6ecaf02..52430bb 100644 --- a/scripts/occupationVehicle.sqf +++ b/scripts/occupationVehicle.sqf @@ -164,7 +164,8 @@ if(_vehiclesToSpawn >= 1) then _vehicleSeat = _x select 1; if(_vehicleRole == "Driver") then { - _unit = [_group,_spawnLocation,"assault","random",_side,"Vehicle"] call DMS_fnc_SpawnAISoldier; + _unit = [_group,_spawnLocation,"assault","random",_side,"Vehicle"] call DMS_fnc_SpawnAISoldier; + _unit disableAI "FSM"; if(_side == "survivor") then { removeUniform _unit; @@ -233,6 +234,11 @@ if(_vehiclesToSpawn >= 1) then _logDetail = format['[OCCUPATION:Vehicle] %3 vehicle %1 spawned @ %2',_VehicleClassToUse,_spawnLocation,_side]; [_logDetail] call SC_fnc_log; sleep 15; + + { + _x enableAI "FSM"; + }forEach units _group; + [_group, _spawnLocation, 2000] call bis_fnc_taskPatrol; _group setBehaviour "SAFE"; _group setCombatMode "RED";