Various updates..
This commit is contained in:
parent
82b3dbaf93
commit
a007d1378b
@ -1,6 +1,6 @@
|
||||
# Exile Occupation (a3_exile_occupation)
|
||||
|
||||
![v68 New Features](https://img.shields.io/badge/v68-New%20Features-red.svg) ![Arma 1.70](https://img.shields.io/badge/Arma-1.70-blue.svg) ![Exile 1.0.2 Kohlrabi](https://img.shields.io/badge/Exile-1.0.2%20Kohlrabi-C72651.svg)
|
||||
![v69 New Features](https://img.shields.io/badge/v69-New%20Features-red.svg) ![Arma 1.72](https://img.shields.io/badge/Arma-1.72-blue.svg) ![Exile 1.0.3 Lemon](https://img.shields.io/badge/Exile-1.0.3%20Lemon-C72651.svg)
|
||||
|
||||
WTF is Occupation?
|
||||
An AI spawner and monitor to be used in conjunction with DMS and will not work without it:
|
||||
@ -16,13 +16,13 @@ http://www.armaholic.com/page.php?id=16369 - (Please note, only use the x64 vers
|
||||
For more info:
|
||||
http://www.exilemod.com/topic/12517-release-exile-occupation-roaming-ai
|
||||
|
||||
###License Overview:
|
||||
## License Overview:
|
||||
This work is protected by [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)](http://creativecommons.org/licenses/by-nc-sa/4.0/). By using, downloading, or copying any of the work contained, you agree to the license included.
|
||||
|
||||
<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br /><span xmlns:dct="http://purl.org/dc/terms/" href="http://purl.org/dc/dcmitype/Text" property="dct:title" rel="dct:type">Exile Occupation</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="https://github.com/secondcoming/a3_exile_occupation" property="cc:attributionName" rel="cc:attributionURL">second_coming</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.
|
||||
|
||||
### Donations:
|
||||
## Donations:
|
||||
Anyone wishing to donate can do so here http://exileyorkshire.co.uk/
|
||||
All donations go towards coffee to keep me awake :)
|
||||
|
||||
###Updated and modified by [FPS]kuplion
|
||||
### Updated and modified by [FPS]kuplion
|
Binary file not shown.
@ -5,7 +5,7 @@ class CfgPatches
|
||||
units[] = {};
|
||||
weapons[] = {};
|
||||
requiredVersion = 0.1;
|
||||
a3_exile_occupation_version = "V68 (16-05-2017)";
|
||||
a3_exile_occupation_version = "V69 (21-07-2017)";
|
||||
requiredAddons[] = {"a3_dms"};
|
||||
author[]= {"second_coming - updated/modified by [FPS]kuplion"};
|
||||
};
|
||||
|
@ -210,6 +210,7 @@ SC_SpawnHeliCrashGuards = true; // true if you want to enable AI guards
|
||||
SC_numberofHeliCrashes = 5; // if SC_occupyHeliCrashes = true spawn this many Heli Crashes
|
||||
SC_HeliCrashGuards = 6; // number of AI to spawn at each crate
|
||||
SC_HeliCrashGuardsRandomize = true; // Use a random number of guards up to a maximum = SC_HeliCrashGuards (so between 1 and SC_HeliCrashGuards)
|
||||
SC_HeliCrashMarkers = true; // true if you want to have markers on the Heli Crashes
|
||||
|
||||
// Array of possible common items to go in heli crash crates ["classname",fixed amount,random amount] NOT INCLUDING WEAPONS
|
||||
// ["HandGrenade",0,2] this example would add between 0 and 2 HandGrenade to the crate (fixed 0 plus 0-2 random)
|
||||
@ -455,11 +456,18 @@ if (worldName == 'Chernarus' AND SC_useMapOverrides) then
|
||||
|
||||
if (worldName == 'Tanoa' AND SC_useMapOverrides) then
|
||||
{
|
||||
SC_useApexClasses = true;
|
||||
SC_maxAIcount = 80;
|
||||
SC_maxAIcount = 80;
|
||||
SC_useApexClasses = true;
|
||||
|
||||
};
|
||||
|
||||
if (worldName == 'Malden' AND SC_useMapOverrides) then
|
||||
{
|
||||
SC_maxAIcount = 70;
|
||||
SC_useApexClasses = false;
|
||||
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Apex Specific Settings (only used if SC_useApexClasses = true)
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -57,7 +57,7 @@ while{!_validspot} do
|
||||
{
|
||||
_nearestRoad = _nearRoads select 0;
|
||||
_position = position _nearestRoad;
|
||||
_isEmpty = !(_position isFlatEmpty [15, -1, -1, -1, -1, false, player] isEqualTo []); // Check if there is 15m space around the road position to try and stop vehicles spawning on dirt tracks on Tanoa
|
||||
_isEmpty = !(_position isFlatEmpty [10, -1, -1, -1, -1, false, player] isEqualTo []); // Check if there is 15m space around the road position to try and stop vehicles spawning on dirt tracks on Tanoa
|
||||
if(!_isEmpty) then
|
||||
{
|
||||
_validspot = false;
|
||||
|
@ -9,13 +9,13 @@ if(SC_useRealNames) then
|
||||
{
|
||||
case "survivor":
|
||||
{
|
||||
_firstName = SC_SurvivorFirstNames call BIS_fnc_selectRandom;
|
||||
_lastName = SC_SurvivorLastNames call BIS_fnc_selectRandom;
|
||||
_firstName = selectRandom SC_SurvivorFirstNames;
|
||||
_lastName = selectRandom SC_SurvivorLastNames;
|
||||
};
|
||||
case "bandit":
|
||||
{
|
||||
_firstName = SC_BanditFirstNames call BIS_fnc_selectRandom;
|
||||
_lastName = SC_BanditLastNames call BIS_fnc_selectRandom;
|
||||
_firstName = selectRandom SC_BanditFirstNames;
|
||||
_lastName = selectRandom SC_BanditLastNames;
|
||||
};
|
||||
};
|
||||
_name = format["%1 %2",_firstName,_lastName];
|
||||
|
@ -35,11 +35,23 @@ for "_i" from 1 to SC_numberofHeliCrashes do
|
||||
_validspot = true;
|
||||
|
||||
//Check if near another heli crash site
|
||||
_nearOtherCrash = (nearestObjects [_position,["Land_UWreck_MV22_F"],750]) select 0;
|
||||
_nearOtherCrash = (nearestObjects [_position,[
|
||||
// Trucks
|
||||
"Land_Wreck_BMP2_F",
|
||||
"Land_Wreck_HMMWV_F",
|
||||
"Land_Wreck_BRDM2_F",
|
||||
"Land_Wreck_Ural_F",
|
||||
// Tanks
|
||||
"Land_Wreck_Slammer_F",
|
||||
// Helis
|
||||
"Land_Wreck_Heli_Attack_02_F",
|
||||
"Land_UWreck_Heli_Attack_02_F",
|
||||
// VTOL
|
||||
"Land_UWreck_MV22_F"],750]) select 0;
|
||||
if (!isNil "_nearOtherCrash") then { _validspot = false; };
|
||||
|
||||
//Check if near another loot crate site
|
||||
_nearOtherCrate = (nearestObjects [_position,["CargoNet_01_box_F"],500]) select 0;
|
||||
_nearOtherCrate = (nearestObjects [_position,["Exile_Container_SupplyBox"],500]) select 0;
|
||||
if (!isNil "_nearOtherCrate") then { _validspot = false; };
|
||||
|
||||
};
|
||||
@ -47,7 +59,20 @@ for "_i" from 1 to SC_numberofHeliCrashes do
|
||||
_logDetail = format['[OCCUPATION:HeliCrashes] Crash %1 : Location %2',_i,_position];
|
||||
[_logDetail] call SC_fnc_log;
|
||||
|
||||
_helicopter = "Land_UWreck_MV22_F";
|
||||
_helicopter = selectRandom [
|
||||
// Trucks
|
||||
"Land_Wreck_BMP2_F",
|
||||
"Land_Wreck_HMMWV_F",
|
||||
"Land_Wreck_BRDM2_F",
|
||||
"Land_Wreck_Ural_F",
|
||||
// Tanks
|
||||
"Land_Wreck_Slammer_F",
|
||||
// Helis
|
||||
"Land_Wreck_Heli_Attack_02_F",
|
||||
"Land_UWreck_Heli_Attack_02_F",
|
||||
// VTOL
|
||||
"Land_UWreck_MV22_F"
|
||||
];
|
||||
_vehHeli = _helicopter createVehicle [0,0,0];
|
||||
|
||||
_effect = "test_EmptyObjectForSmoke";
|
||||
@ -60,6 +85,7 @@ for "_i" from 1 to SC_numberofHeliCrashes do
|
||||
_heliFire = _effect createVehicle (position _vehHeli);
|
||||
_heliFire attachto [_vehHeli, [0,0,-1]];
|
||||
_vehHeli setPos _position;
|
||||
_vehHeli setVectorUp surfaceNormal position _vehHeli;
|
||||
|
||||
if (SC_SpawnHeliCrashGuards) then
|
||||
{
|
||||
@ -106,7 +132,7 @@ for "_i" from 1 to SC_numberofHeliCrashes do
|
||||
}foreach units _initialGroup;
|
||||
deleteGroup _initialGroup;
|
||||
|
||||
[_group, _spawnPosition, 100] call bis_fnc_taskPatrol;
|
||||
[_group, _spawnPosition, 25] call bis_fnc_taskPatrol;
|
||||
_group setBehaviour "STEALTH";
|
||||
_group setCombatMode "RED";
|
||||
|
||||
@ -122,12 +148,12 @@ for "_i" from 1 to SC_numberofHeliCrashes do
|
||||
|
||||
_mapMarkerName = format ["SC_helicrash_marker_%1", _i];
|
||||
|
||||
if (SC_occupyLootCratesMarkers) then
|
||||
if (SC_HeliCrashMarkers) then
|
||||
{
|
||||
_heli_marker = createMarker [ format ["SC_helicrash_marker_%1", _i], _position];
|
||||
_heli_marker setMarkerColor "ColorOrange";
|
||||
_heli_marker setMarkerAlpha 1;
|
||||
_heli_marker setMarkerText "Helicrash";
|
||||
_heli_marker setMarkerText "Heli Crash";
|
||||
_heli_marker setMarkerType "c_air";
|
||||
_heli_marker setMarkerBrush "Vertical";
|
||||
_heli_marker setMarkerSize [(1), (1)];
|
||||
|
@ -32,7 +32,7 @@ for "_i" from 1 to SC_numberofLootCrates do
|
||||
_validspot = true;
|
||||
|
||||
//Check if near another crate site
|
||||
_nearOtherCrate = (nearestObjects [_position,["CargoNet_01_box_F"],500]) select 0;
|
||||
_nearOtherCrate = (nearestObjects [_position,["Exile_Container_SupplyBox"],500]) select 0;
|
||||
if (!isNil "_nearOtherCrate") then { _validspot = false; };
|
||||
};
|
||||
|
||||
@ -41,12 +41,10 @@ for "_i" from 1 to SC_numberofLootCrates do
|
||||
if (SC_occupyLootCratesMarkers) then
|
||||
{
|
||||
_event_marker = createMarker [ format ["SC_loot_marker_%1", _i], _position];
|
||||
_event_marker setMarkerColor "ColorGreen";
|
||||
_event_marker setMarkerColor "ColorWhite";
|
||||
_event_marker setMarkerAlpha 1;
|
||||
_event_marker setMarkerText "Gear Crate";
|
||||
_event_marker setMarkerType "loc_Tree";
|
||||
_event_marker setMarkerBrush "Vertical";
|
||||
_event_marker setMarkerSize [(3), (3)];
|
||||
_event_marker setMarkerType "ExileMissionStrongholdIcon";
|
||||
};
|
||||
|
||||
if (SC_SpawnLootCrateGuards) then
|
||||
@ -94,7 +92,7 @@ for "_i" from 1 to SC_numberofLootCrates do
|
||||
}foreach units _initialGroup;
|
||||
deleteGroup _initialGroup;
|
||||
|
||||
[_group, _spawnPosition, 100] call bis_fnc_taskPatrol;
|
||||
[_group, _spawnPosition, 25] call bis_fnc_taskPatrol;
|
||||
_group setBehaviour "STEALTH";
|
||||
_group setCombatMode "RED";
|
||||
|
||||
@ -110,7 +108,7 @@ for "_i" from 1 to SC_numberofLootCrates do
|
||||
|
||||
|
||||
|
||||
_box = "CargoNet_01_box_F" createvehicle _position;
|
||||
_box = "Exile_Container_SupplyBox" createvehicle _position;
|
||||
clearMagazineCargoGlobal _box;
|
||||
clearWeaponCargoGlobal _box;
|
||||
clearItemCargoGlobal _box;
|
||||
@ -147,6 +145,38 @@ for "_i" from 1 to SC_numberofLootCrates do
|
||||
{
|
||||
_box addBackpackCargoGlobal [_item, _amount];
|
||||
};
|
||||
}forEach SC_LootCrateItems;
|
||||
}forEach SC_LootCrateItems;
|
||||
|
||||
// Add a wreck for defensive purposes
|
||||
_wrecks = selectRandom [
|
||||
// Trucks
|
||||
"Land_Wreck_BMP2_F",
|
||||
"Land_Wreck_HMMWV_F",
|
||||
"Land_Wreck_BRDM2_F",
|
||||
"Land_Wreck_Ural_F",
|
||||
// Tanks
|
||||
"Land_Wreck_Slammer_F",
|
||||
// Helis
|
||||
"Land_Wreck_Heli_Attack_02_F",
|
||||
"Land_UWreck_Heli_Attack_02_F",
|
||||
// VTOL
|
||||
"Land_UWreck_MV22_F"
|
||||
];
|
||||
|
||||
_vehWreck = _wrecks createVehicle [0,0,0];
|
||||
|
||||
/*
|
||||
_effect = "test_EmptyObjectForSmoke";
|
||||
if(SC_HeliCrashesOnFire) then
|
||||
{
|
||||
_effect = "test_EmptyObjectForFireBig";
|
||||
};
|
||||
_wreckFire = _effect createVehicle (position _vehWreck);
|
||||
_wreckFire attachto [_vehWreck, [0,0,-1]];
|
||||
*/
|
||||
|
||||
_vehWreckRelPos = _box getRelPos [(10 + (ceil random 15)), (random 360)];
|
||||
_vehWreck setPos _vehWreckRelPos;
|
||||
_vehWreck setDir (random 360);
|
||||
_vehWreck setVectorUp surfaceNormal position _vehWreck;
|
||||
};
|
@ -119,7 +119,7 @@ while {true} do
|
||||
_transport setFuel 1;
|
||||
_transport setDamage 0;
|
||||
_transport engineOn true;
|
||||
_transport flyInHeight 300;
|
||||
_transport flyInHeight 500;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -30,7 +30,7 @@ if((_aiActive > _maxAIcount) && !SC_occupyLandVehicleIgnoreCount) exitWith
|
||||
|
||||
SC_liveVehicles = count(SC_liveVehiclesArray);
|
||||
|
||||
if(SC_liveVehicles >= SC_maxNumberofVehicles) exitWith
|
||||
if (SC_liveVehicles >= SC_maxNumberofVehicles) exitWith
|
||||
{
|
||||
_logDetail = format['[OCCUPATION:Vehicle] End check %1 currently active (max %2) @ %3',SC_liveVehicles,SC_maxNumberofVehicles,time];
|
||||
[_logDetail] call SC_fnc_log;
|
||||
@ -186,7 +186,7 @@ if(_vehiclesToSpawn > 0) then
|
||||
|
||||
if(SC_occupyVehiclesLocked) then
|
||||
{
|
||||
_vehicle lock 2;
|
||||
_vehicle lock 3;
|
||||
_vehicle setVehicleLock "LOCKED";
|
||||
_vehicle setVariable ["ExileIsLocked", 1, true];
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user