Various updates..

This commit is contained in:
kuplion 2017-07-21 22:52:32 +01:00 committed by GitHub
parent 82b3dbaf93
commit a007d1378b
10 changed files with 93 additions and 29 deletions

View File

@ -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

View File

@ -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"};
};

View File

@ -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)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@ -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;

View File

@ -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];

View File

@ -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)];

View File

@ -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;
};

View File

@ -119,7 +119,7 @@ while {true} do
_transport setFuel 1;
_transport setDamage 0;
_transport engineOn true;
_transport flyInHeight 300;
_transport flyInHeight 500;
}
else
{

View File

@ -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];
}