This commit is contained in:
second_coming
2016-07-19 01:51:25 +01:00
parent ab5ccd3a88
commit 9c04365330
10 changed files with 237 additions and 187 deletions

View File

@ -1,3 +1,16 @@
=================================================================================
V52 (16-07-2016)
=================================================================================
Trsders now use the new Exile format
Various tweaks and bug fixes
=================================================================================
V51 (27-06-2016)
=================================================================================
Added the option to specify fixed loot crate locations
=================================================================================
V50 (24-06-2016)
=================================================================================
@ -153,4 +166,4 @@ Added the option to set the maximum crew (crew count will be a random number bet
the max and min). The applies for all AI vehicles.
Added a separate SC_VehicleClassToUseRare list of vehicles which spawn 10% of the
time in place of the standard SC_VehicleClassToUse list.
time in place of the standard SC_VehicleClassToUse list.

View File

@ -4,7 +4,7 @@ class CfgPatches
units[] = {};
weapons[] = {};
requiredVersion = 0.1;
a3_exile_occupation_version = "v50 (24-06-2016)";
a3_exile_occupation_version = "v52 (19-07-2016)";
requiredAddons[] = {"a3_dms"};
author[]= {"second_coming"};
};

View File

@ -14,114 +14,114 @@
// Shared Config for each occupation monitor
SC_debug = false; // set to true to turn on debug features (not for live servers)
SC_useApexClasses = false; // true if you want to use the Apex class list over rides, false to use vanilla Arma gear
SC_useMapOverrides = true; // set to true to enable over riding options per map (see the bottom of this file for examples)
SC_extendedLogging = false; // set to true for additional logging
SC_processReporter = true; // log the a list of active server processes every 60 seconds (useful for debugging server problems)
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
SC_mapMarkers = false; // Place map markers at the occupied areas (occupyPlaces and occupyMilitary only) true/false
SC_minFPS = 5; // any lower than minFPS on the server and additional AI won't spawn
SC_scaleAI = 10; // any more than _scaleAI players on the server and _maxAIcount is reduced for each extra player
SC_debug = false; // set to true to turn on debug features (not for live servers)
SC_useApexClasses = true; // true if you want to use the Apex class list over rides, false to use vanilla Arma gear
SC_useMapOverrides = true; // set to true to enable over riding options per map (see the bottom of this file for examples)
SC_extendedLogging = false; // set to true for additional logging
SC_processReporter = true; // log the a list of active server processes every 60 seconds (useful for debugging server problems)
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
SC_mapMarkers = false; // Place map markers at the occupied areas (occupyPlaces and occupyMilitary only) true/false
SC_minFPS = 5; // any lower than minFPS on the server and additional AI won't spawn
SC_scaleAI = 10; // any more than _scaleAI players on the server and _maxAIcount is reduced for each extra player
SC_removeUserMapMarkers = true; // true to delete map markers placed by players every 10 seconds
SC_removeUserMapMarkers = true; // true to delete map markers placed by players every 10 seconds
SC_fastNights = true; // true if you want night time to go faster than daytime
SC_fastNightsStarts = 18; // Start fast nights at this hour (24 hour clock) eg. 18 for 6pm
SC_fastNightsMultiplierNight= 24; // the time multiplier to use at night (12 = 12x speed)
SC_fastNightsEnds = 6; // End fast nights at this hour (24 hour clock) eg. 6 for 6am
SC_fastNightsMultiplierDay = 4; // the time multiplier to use during daylight hours (4 = 4x speed)
SC_fastNights = true; // true if you want night time to go faster than daytime
SC_fastNightsStarts = 18; // Start fast nights at this hour (24 hour clock) eg. 18 for 6pm
SC_fastNightsMultiplierNight = 24; // the time multiplier to use at night (12 = 12x speed)
SC_fastNightsEnds = 6; // End fast nights at this hour (24 hour clock) eg. 6 for 6am
SC_fastNightsMultiplierDay = 4; // the time multiplier to use during daylight hours (4 = 4x speed)
SC_useWaypoints = true; // When spawning AI create waypoints to make them enter buildings (can affect performance when the AI is spawned and the waypoints are calculated)
SC_useWaypoints = true; // When spawning AI create waypoints to make them enter buildings (can affect performance when the AI is spawned and the waypoints are calculated)
// Distance limits for selecting safe places to spawn AI
SC_minDistanceToSpawnZones = 500; // Minimum distance in metres to the nearest spawn zone
SC_minDistanceToTraders = 500; // Minimum distance in metres to the nearest trader zone
SC_minDistanceToTerritory = 500; // Minimum distance in metres to the nearest player territory
SC_minDistanceToPlayer = 250; // Minimum distance in metres to the nearest player
// Distance limits for selecting safe places to spawn AI
SC_minDistanceToSpawnZones = 500; // Minimum distance in metres to the nearest spawn zone
SC_minDistanceToTraders = 500; // Minimum distance in metres to the nearest trader zone
SC_minDistanceToTerritory = 500; // Minimum distance in metres to the nearest player territory
SC_minDistanceToPlayer = 250; // Minimum distance in metres to the nearest player
SC_occupyRandomSpawn = false; // (WORK IN PROGRESS, NOT WORKING YET) true if you want random spawning AI that hunt for nearby players
SC_randomSpawnMinPlayers = 1; // Minimum number of players to be online before random spawning AI can spawn
SC_randomSpawnMaxAI = 5; // Maximum amount of random AI groups allowed at any time
SC_randomSpawnIgnoreCount = true; // true if you want spawn random AI groups regardless of overall AI count (they still count towards the total though)
SC_occupyRandomSpawn = false; // (WORK IN PROGRESS, NOT WORKING YET) true if you want random spawning AI that hunt for nearby players
SC_randomSpawnMinPlayers = 1; // Minimum number of players to be online before random spawning AI can spawn
SC_randomSpawnMaxAI = 5; // Maximum amount of random AI groups allowed at any time
SC_randomSpawnIgnoreCount = true; // true if you want spawn random AI groups regardless of overall AI count (they still count towards the total though)
SC_occupyPlaces = true; // true if you want villages,towns,cities patrolled by bandits
SC_occupyPlaces = true; // true if you want villages,towns,cities patrolled by bandits
SC_occupyVehicle = true; // true if you want to have roaming AI vehicles
SC_occupyVehicleIgnoreCount = true; // true if you want spawn vehicles regardless of overall AI count
SC_occupyVehiclesLocked = false; // true if AI vehicles to stay locked until all the linked AI are dead
SC_occupyVehicle = true; // true if you want to have roaming AI vehicles
SC_occupyVehicleIgnoreCount = true; // true if you want spawn vehicles regardless of overall AI count
SC_occupyVehiclesLocked = false; // true if AI vehicles to stay locked until all the linked AI are dead
SC_occupyTraders = true; // (WORK IN PROGRESS, NOT WORKING YET) true if you want to create trader camps at positions specified in SC_occupyTraderDetails
SC_occupyTraderDetails = [
SC_occupyTraders = true; // (WORK IN PROGRESS) true if you want to create trader camps at positions specified in SC_occupyTraderDetails
SC_occupyTraderDetails = [
["Tanoa","Lifou Traders",[7317,7217,0],"trader1.sqf",true],
["Tanoa","Lijnhaven Traders",[11580,2051,0],"trader1.sqf",true],
["Napf","Hafen Traders",[9286,17606,0],"trader1.sqf",true]
]; //["mapname","Name",[x,y,z],"filename",true] trader name, location, safezone true/false
SC_SurvivorsChance = 20; // chance in % to spawn survivors instead of bandits (for places and land vehicles)
SC_occupyPlacesSurvivors = true; // true if you want a chance to spawn survivor AI as well as bandits (SC_occupyPlaces must be true to use this option)
SC_occupyVehicleSurvivors = false; // true if you want a chance to spawn survivor AI as well as bandits (SC_occupyVehicle must be true to use this option)
SC_SurvivorsFriendly = true; // true if you want survivors to be friendly to players (until they are attacked by players)
// false if you want survivors to be aggressive to players
SC_SurvivorsChance = 20; // chance in % to spawn survivors instead of bandits (for places and land vehicles)
SC_occupyPlacesSurvivors = true; // true if you want a chance to spawn survivor AI as well as bandits (SC_occupyPlaces must be true to use this option)
SC_occupyVehicleSurvivors = false; // true if you want a chance to spawn survivor AI as well as bandits (SC_occupyVehicle must be true to use this option)
SC_SurvivorsFriendly = true; // true if you want survivors to be friendly to players (until they are attacked by players)
// false if you want survivors to be aggressive to players
// Possible equipment for survivor AI to spawn with
// spawning survivors without vests or backpacks will result in them having no ammunition
SC_SurvivorUniforms = ["Exile_Uniform_BambiOverall"];
SC_SurvivorVests = ["V_BandollierB_blk","V_BandollierB_cbr","V_BandollierB_khk","V_BandollierB_oli"];
SC_SurvivorHeadgear = [];
SC_SurvivorWeapon = ["arifle_MXC_F","arifle_TRG20_F"];
SC_SurvivorWeaponAttachments= [];
SC_SurvivorMagazines = ["Exile_Item_Vishpirin","Exile_Item_Bandage"];
SC_SurvivorPistol = ["hgun_Rook40_F"];
SC_SurvivorPistolAttachments= [];
SC_SurvivorAssignedItems = ["ItemMap","ItemCompass","ItemRadio","ItemWatch","Exile_Item_XM8"]; // all these items will be added
SC_SurvivorLauncher = [];
SC_SurvivorBackpack = [];
SC_SurvivorUniforms = ["Exile_Uniform_BambiOverall"];
SC_SurvivorVests = ["V_BandollierB_blk","V_BandollierB_cbr","V_BandollierB_khk","V_BandollierB_oli"];
SC_SurvivorHeadgear = [];
SC_SurvivorWeapon = ["arifle_MXC_F","arifle_TRG20_F"];
SC_SurvivorWeaponAttachments = [];
SC_SurvivorMagazines = ["Exile_Item_Vishpirin","Exile_Item_Bandage"];
SC_SurvivorPistol = ["hgun_Rook40_F"];
SC_SurvivorPistolAttachments = [];
SC_SurvivorAssignedItems = ["ItemMap","ItemCompass","ItemRadio","ItemWatch","Exile_Item_XM8"]; // all these items will be added
SC_SurvivorLauncher = [];
SC_SurvivorBackpack = [];
// Possible equipment for bandit AI to spawn with
// spawning bandits without vests or backpacks will result in them having no ammunition
SC_BanditUniforms = ["U_IG_Guerilla1_1","U_IG_Guerilla2_1","U_IG_Guerilla2_2","U_IG_Guerilla2_3","U_IG_Guerilla3_1","U_BG_Guerilla2_1","U_IG_Guerilla3_2","U_BG_Guerrilla_6_1","U_BG_Guerilla1_1","U_BG_Guerilla2_2","U_BG_Guerilla2_3","U_BG_Guerilla3_1"];
SC_BanditVests = ["V_BandollierB_blk","V_BandollierB_cbr","V_BandollierB_khk","V_BandollierB_oli"];
SC_BanditHeadgear = ["H_Shemag_khk","H_Shemag_olive","H_Shemag_olive_hs","H_Shemag_tan","H_ShemagOpen_khk","H_ShemagOpen_tan"];
SC_BanditWeapon = ["LMG_Zafir_F","arifle_Katiba_C_F","arifle_Katiba_F","arifle_Katiba_GL_F","arifle_MXC_Black_F","arifle_MXC_F","arifle_TRG20_F","arifle_TRG21_F","arifle_TRG21_GL_F"];
SC_BanditWeaponAttachments = [];
SC_BanditMagazines = ["Exile_Item_InstaDoc","Exile_Item_Vishpirin","Exile_Item_Bandage","Exile_Item_DuctTape","Exile_Item_PlasticBottleFreshWater","Exile_Item_Energydrink","Exile_Item_EMRE","Exile_Item_Cheathas","Exile_Item_Noodles","Exile_Item_BBQSandwich","Exile_Item_Catfood"];
SC_BanditPistol = ["hgun_ACPC2_F","hgun_P07_F","hgun_Pistol_heavy_01_F","hgun_Pistol_heavy_02_F","hgun_Rook40_F"];
SC_BanditPistolAttachments = [];
SC_BanditAssignedItems = ["ItemMap","ItemCompass","ItemRadio","ItemWatch"]; // all these items will be added
SC_BanditLauncher = [];
SC_BanditBackpack = ["B_HuntingBackpack","B_Kitbag_cbr","B_Kitbag_mcamo","B_Kitbag_sgg","B_OutdoorPack_blk","B_OutdoorPack_blu","B_OutdoorPack_tan","B_TacticalPack_blk","B_TacticalPack_mcamo","B_TacticalPack_ocamo","B_TacticalPack_oli","B_TacticalPack_rgr"];
SC_BanditUniforms = ["U_IG_Guerilla1_1","U_IG_Guerilla2_1","U_IG_Guerilla2_2","U_IG_Guerilla2_3","U_IG_Guerilla3_1","U_BG_Guerilla2_1","U_IG_Guerilla3_2","U_BG_Guerrilla_6_1","U_BG_Guerilla1_1","U_BG_Guerilla2_2","U_BG_Guerilla2_3","U_BG_Guerilla3_1"];
SC_BanditVests = ["V_BandollierB_blk","V_BandollierB_cbr","V_BandollierB_khk","V_BandollierB_oli"];
SC_BanditHeadgear = ["H_Shemag_khk","H_Shemag_olive","H_Shemag_olive_hs","H_Shemag_tan","H_ShemagOpen_khk","H_ShemagOpen_tan"];
SC_BanditWeapon = ["LMG_Zafir_F","arifle_Katiba_C_F","arifle_Katiba_F","arifle_Katiba_GL_F","arifle_MXC_Black_F","arifle_MXC_F","arifle_TRG20_F","arifle_TRG21_F","arifle_TRG21_GL_F"];
SC_BanditWeaponAttachments = [];
SC_BanditMagazines = ["Exile_Item_InstaDoc","Exile_Item_Vishpirin","Exile_Item_Bandage","Exile_Item_DuctTape","Exile_Item_PlasticBottleFreshWater","Exile_Item_Energydrink","Exile_Item_EMRE","Exile_Item_Cheathas","Exile_Item_Noodles","Exile_Item_BBQSandwich","Exile_Item_Catfood"];
SC_BanditPistol = ["hgun_ACPC2_F","hgun_P07_F","hgun_Pistol_heavy_01_F","hgun_Pistol_heavy_02_F","hgun_Rook40_F"];
SC_BanditPistolAttachments = [];
SC_BanditAssignedItems = ["ItemMap","ItemCompass","ItemRadio","ItemWatch"]; // all these items will be added
SC_BanditLauncher = [];
SC_BanditBackpack = ["B_HuntingBackpack","B_Kitbag_cbr","B_Kitbag_mcamo","B_Kitbag_sgg","B_OutdoorPack_blk","B_OutdoorPack_blu","B_OutdoorPack_tan","B_TacticalPack_blk","B_TacticalPack_mcamo","B_TacticalPack_ocamo","B_TacticalPack_oli","B_TacticalPack_rgr"];
SC_occupyStatic = false; // true if you want to add AI in specific locations
SC_staticBandits = [ //[[pos],ai count,radius,search buildings]
SC_occupyStatic = false; // true if you want to add AI in specific locations
SC_staticBandits = [ //[[pos],ai count,radius,search buildings]
];
SC_staticSurvivors = [ //[[pos],ai count,radius,search buildings]
SC_staticSurvivors = [ //[[pos],ai count,radius,search buildings]
//[[3770,8791,0],8,250,true]
];
SC_occupySky = true; // true if you want to have roaming AI helis
SC_occupySea = false; // true if you want to have roaming AI boats
SC_occupySky = true; // true if you want to have roaming AI helis
SC_occupySea = false; // true if you want to have roaming AI boats
SC_occupyTransport = true; // true if you want pubic transport (travels between traders)
SC_colourTransport = true; // true if you want the public transport coloured
SC_secureTransport = true; // true if you want the public transport and pilot to be indestructible
SC_occupyTransportClass = ["Exile_Chopper_Mohawk_FIA"]; // to always use the same vehicle, specify one option only
SC_occupyTransport = true; // true if you want pubic transport (travels between traders)
SC_colourTransport = true; // true if you want the public transport coloured
SC_secureTransport = true; // true if you want the public transport and pilot to be indestructible
SC_occupyTransportClass = ["Exile_Chopper_Mohawk_FIA"]; // to always use the same vehicle, specify one option only
SC_occupyTransportStartPos = []; // if empty defaults to map centre
SC_occupyTransportStartPos = []; // if empty defaults to map centre
SC_TransportAirFixed = false; // true if you want to use fixed waypoints for air transport, false to autodetect where trader zones are
SC_TransportAirWaypoints = [
SC_TransportAirFixed = false; // true if you want to use fixed waypoints for air transport, false to autodetect where trader zones are
SC_TransportAirWaypoints = [
[1000,1000,0],
[2000,2000,0],
[3000,3000,0],
[4000,4000,0]
];
SC_TransportLandFixed = false; // true if you want to use fixed waypoints for land transport, false to autodetect where trader zones are
SC_TransportLandWaypoints = [
SC_TransportLandFixed = false; // true if you want to use fixed waypoints for land transport, false to autodetect where trader zones are
SC_TransportLandWaypoints = [
[1000,1000,0],
[2000,2000,0],
[3000,3000,0],
@ -129,18 +129,25 @@ SC_TransportLandWaypoints = [
];
SC_occupyLootCrates = true; // true if you want to have random loot crates with guards
SC_numberofLootCrates = 6; // if SC_occupyLootCrates = true spawn this many loot crates (overrided below for Namalsk)
SC_LootCrateGuards = 3; // number of AI to spawn at each crate
SC_LootCrateGuardsRandomize = true; // Use a random number of guards up to a maximum = SC_LootCrateGuards (so between 1 and SC_LootCrateGuards)
SC_occupyLootCratesMarkers = true; // true if you want to have markers on the loot crate spawns
SC_occupyLootCrates = true; // true if you want to have random loot crates with guards
SC_occupyLootCratesStatic = false; // true if you want to have random loot crates spawn in pre-defined locations set in SC_occupyLootCratesLocations
SC_occupyLootCratesLocations = [
[1000,1000,0],
[2000,2000,0],
[3000,3000,0],
[4000,4000,0]
];
SC_numberofLootCrates = 6; // if SC_occupyLootCrates = true spawn this many loot crates (overrided below for Namalsk)
SC_LootCrateGuards = 3; // number of AI to spawn at each crate
SC_LootCrateGuardsRandomize = true; // Use a random number of guards up to a maximum = SC_LootCrateGuards (so between 1 and SC_LootCrateGuards)
SC_occupyLootCratesMarkers = true; // true if you want to have markers on the loot crate spawns
SC_ropeAttach = false; // Allow lootcrates to be airlifted (for SC_occupyLootCrates and SC_occupyHeliCrashes)
SC_ropeAttach = false; // Allow lootcrates to be airlifted (for SC_occupyLootCrates and SC_occupyHeliCrashes)
// Array of possible common items to go in loot crates ["classname",fixed amount,random amount]
// ["Exile_Item_Matches",1,2] this example would add between 1 and 3 Exile_Item_Matches to the crate (1 + 0 to 2 more)
// to add a fixed amount make the second number 0
SC_LootCrateItems = [
SC_LootCrateItems = [
["Exile_Melee_Axe",1,0],
["Exile_Item_GloriousKnakworst",1,2],
["Exile_Item_PlasticBottleFreshWater",1,2],
@ -163,22 +170,24 @@ SC_LootCrateItems = [
["Exile_Item_Sand",2,10]
];
SC_blackListedAreas = [
SC_blackListedAreas = [
[[3810,8887,0], 500, "Chernarus"], // Vybor Occupation DMS Static Mission
[[12571,14337,0], 500, "Altis"], // Neochori Occupation DMS Static Mission
[[3926,7523,0], 500, "Namalsk"], // Norinsk Occupation DMS Static Mission
[[3926,7523,0], 500, "Napf"] // Lenzburg Occupation DMS Static Mission
[[3926,7523,0], 500, "Napf"], // Lenzburg Occupation DMS Static Mission
[[11685,2666,0], 500, "Tanoa"], // Lijnhaven Occupation DMS Static Mission
[[11580,2051,0], 500, "Tanoa"] // Lijnhaven Traders
];
SC_occupyHeliCrashes = true; // true if you want to have Dayz style helicrashes
SC_numberofHeliCrashesFire = true; // true if you want the crash on fire, false if you just want smoke
SC_numberofHeliCrashes = 5; // if SC_occupyHeliCrashes = true spawn this many loot crates
SC_occupyHeliCrashes = true; // true if you want to have Dayz style helicrashes
SC_numberofHeliCrashesFire = true; // true if you want the crash on fire, false if you just want smoke
SC_numberofHeliCrashes = 5; // if SC_occupyHeliCrashes = true spawn this many loot crates
// 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)
// to add a fixed amount make the second number 0
SC_HeliCrashItems = [
SC_HeliCrashItems = [
["B_Parachute",1,1],
["H_CrewHelmetHeli_B",1,1],
["ItemGPS",0,1],
@ -187,37 +196,37 @@ SC_HeliCrashItems = [
["Exile_Item_EMRE",2,2]
];
SC_HeliCrashRareItems = [
SC_HeliCrashRareItems = [
["HandGrenade",0,2],
["APERSBoundingMine_Range_Mag",0,2]
];
SC_HeliCrashRareItemChance = 10; // percentage chance to spawn each SC_HeliCrashRareItems
SC_HeliCrashRareItemChance = 10; // percentage chance to spawn each SC_HeliCrashRareItems
// Array of possible weapons to place in the crate
SC_HeliCrashWeapons = [
SC_HeliCrashWeapons = [
"srifle_DMR_02_camo_F",
"srifle_DMR_03_woodland_F",
"srifle_DMR_04_F",
"srifle_DMR_05_hex_F"
];
SC_HeliCrashWeaponsAmount = [1,3]; // [fixed amount to add, random amount to add]
SC_HeliCrashMagazinesAmount = [2,2]; // [fixed amount to add, random amount to add]
SC_HeliCrashWeaponsAmount = [1,3]; // [fixed amount to add, random amount to add]
SC_HeliCrashMagazinesAmount = [2,2]; // [fixed amount to add, random amount to add]
SC_minimumCrewAmount = 2; // Maximum amount of AI allowed in a vehicle (applies to ground, air and sea vehicles)
SC_maximumCrewAmount = 6; // Maximum amount of AI allowed in a vehicle (applies to ground, air and sea vehicles)
SC_minimumCrewAmount = 2; // Maximum amount of AI allowed in a vehicle (applies to ground, air and sea vehicles)
SC_maximumCrewAmount = 6; // Maximum amount of AI allowed in a vehicle (applies to ground, air and sea vehicles)
// (essential crew like drivers and gunners will always spawn regardless of these settings)
// Settings for roaming ground vehicle AI
SC_maxNumberofVehicles = 4;
// Array of arrays of ground vehicles which can be used by AI patrols (the number next to next vehicle is the maximum amount of that class allowed, 0 for no limit)
SC_VehicleClassToUse = [
SC_VehicleClassToUse = [
["Exile_Car_LandRover_Green",0],
["Exile_Bike_QuadBike_Black",2],
["Exile_Car_UAZ_Open_Green",2]
];
SC_VehicleClassToUseRare = [
SC_VehicleClassToUseRare = [
["Exile_Car_Hunter",1],
["Exile_Car_HEMMT",1],
["Exile_Car_Zamak",1],
@ -243,19 +252,19 @@ SC_BoatClassToUse = [
["Exile_Boat_MotorBoat_Police",1]
];
SC_useRealNames = true;
SC_useRealNames = true;
// Arrays of names used to generate names for AI
SC_SurvivorFirstNames = ["John","Dave","Steve","Rob","Richard","Bob","Andrew","Nick","Adrian","Mark","Adam","Will","Graham"];
SC_SurvivorLastNames = ["Smith","Jones","Davids","Johnson","Jobs","Andrews","White","Brown","Taylor","Walker","Williams","Clarke","Jackson","Woods"];
SC_BanditFirstNames = ["Alex","Nikita","George","Daniel","Adam","Alexander","Sasha","Sergey","Dmitry","Anton","Jakub","Vlad","Maxim","Oleg","Denis","Wojtek"];
SC_BanditLastNames = ["Dimitrov","Petrov","Horvat","Novak","Dvorak","Vesely","Horak","Hansen","Larsen","Tamm","Ivanov","Pavlov","Virtanen"];
SC_SurvivorFirstNames = ["John","Dave","Steve","Rob","Richard","Bob","Andrew","Nick","Adrian","Mark","Adam","Will","Graham"];
SC_SurvivorLastNames = ["Smith","Jones","Davids","Johnson","Jobs","Andrews","White","Brown","Taylor","Walker","Williams","Clarke","Jackson","Woods"];
SC_BanditFirstNames = ["Alex","Nikita","George","Daniel","Adam","Alexander","Sasha","Sergey","Dmitry","Anton","Jakub","Vlad","Maxim","Oleg","Denis","Wojtek"];
SC_BanditLastNames = ["Dimitrov","Petrov","Horvat","Novak","Dvorak","Vesely","Horak","Hansen","Larsen","Tamm","Ivanov","Pavlov","Virtanen"];
SC_occupyMilitary = false; // true if you want military buildings patrolled
SC_occupyMilitary = false; // true if you want military buildings patrolled
// Array of buildings to add military patrols to
SC_buildings = [ "Land_TentHangar_V1_F","Land_Hangar_F",
SC_buildings = [ "Land_TentHangar_V1_F","Land_Hangar_F",
"Land_Airport_Tower_F","Land_Cargo_House_V1_F",
"Land_Cargo_House_V3_F","Land_Cargo_HQ_V1_F",
"Land_Cargo_HQ_V2_F","Land_Cargo_HQ_V3_F",
@ -288,31 +297,37 @@ SC_buildings = [ "Land_TentHangar_V1_F","Land_Hangar_F",
// namalsk specific settings (if you want to override settings for specific maps if you run multiple servers)
if (worldName == 'Namalsk' AND SC_useMapOverrides) then
{
SC_maxAIcount = 80;
SC_occupySky = false;
SC_maxNumberofVehicles = 2;
SC_numberofLootCrates = 3;
SC_numberofHeliCrashes = 2;
SC_maxNumberofBoats = 1;
SC_occupyTransportClass = "Exile_Car_LandRover_Urban"; // the ikarus bus gets stuck on Namalsk
SC_maxAIcount = 80;
SC_occupySky = false;
SC_maxNumberofVehicles = 2;
SC_numberofLootCrates = 3;
SC_numberofHeliCrashes = 2;
SC_maxNumberofBoats = 1;
SC_occupyTransportClass = "Exile_Car_LandRover_Urban"; // the ikarus bus gets stuck on Namalsk
};
// Tanoa specific settings (if you want to override settings for specific maps if you run multiple servers)
// Napf specific settings (if you want to override settings for specific maps if you run multiple servers)
if (worldName == 'Napf' AND SC_useMapOverrides) then
{
};
// Napf specific settings (if you want to override settings for specific maps if you run multiple servers)
if (worldName == 'Tanoa' AND SC_useMapOverrides) then
{
SC_useApexClasses = true;
SC_useApexClasses = true;
};
// Overrides to use Apex weapons, gear and vehicles if SC_useApexClasses = true
if(SC_useApexClasses) then
{
SC_BanditWeapon = [ "arifle_MX_khk_F","arifle_MX_GL_khk_F","arifle_MX_SW_khk_F","arifle_MXC_khk_F","arifle_MXM_khk_F","arifle_AK12_F","arifle_AK12_GL_F","arifle_AKM_F",
SC_BanditWeapon = [ "arifle_MX_khk_F","arifle_MX_GL_khk_F","arifle_MX_SW_khk_F","arifle_MXC_khk_F","arifle_MXM_khk_F","arifle_AK12_F","arifle_AK12_GL_F","arifle_AKM_F",
"arifle_AKS_F","arifle_ARX_blk_F","arifle_ARX_ghex_F","arifle_ARX_hex_F","arifle_CTAR_blk_F","arifle_CTAR_GL_blk_F","arifle_CTARS_blk_F","arifle_SPAR_01_blk_F","arifle_SPAR_01_khk_F",
"arifle_SPAR_01_snd_F","arifle_SPAR_01_GL_blk_F","arifle_SPAR_01_GL_khk_F","arifle_SPAR_01_GL_snd_F","arifle_SPAR_02_blk_F","arifle_SPAR_02_khk_F","arifle_SPAR_02_snd_F",
"arifle_SPAR_03_blk_F","arifle_SPAR_03_khk_F","arifle_SPAR_03_snd_F"];
SC_BanditUniforms = [ "U_I_C_Soldier_Para_1_F","U_I_C_Soldier_Para_2_F","U_I_C_Soldier_Para_3_F","U_I_C_Soldier_Para_4_F","U_I_C_Soldier_Para_5_F","U_I_C_Soldier_Bandit_1_F","U_I_C_Soldier_Bandit_2_F",
SC_BanditUniforms = [ "U_I_C_Soldier_Para_1_F","U_I_C_Soldier_Para_2_F","U_I_C_Soldier_Para_3_F","U_I_C_Soldier_Para_4_F","U_I_C_Soldier_Para_5_F","U_I_C_Soldier_Bandit_1_F","U_I_C_Soldier_Bandit_2_F",
"U_I_C_Soldier_Bandit_3_F","U_I_C_Soldier_Bandit_4_F","U_I_C_Soldier_Bandit_5_F","U_I_C_Soldier_Camo_F","U_B_CTRG_Soldier_urb_1_F","U_B_CTRG_Soldier_urb_2_F","U_B_CTRG_Soldier_urb_3_F"];
SC_VehicleClassToUse = [
SC_VehicleClassToUse = [
["B_GEN_Offroad_01_gen_F",0],
["C_Offroad_02_unarmed_F",0],
["I_C_Offroad_02_unarmed_F",0]
@ -322,29 +337,26 @@ if(SC_useApexClasses) then
["O_T_LSV_02_unarmed_black_F",1],
["O_T_Truck_03_device_ghex_F",1]
];
SC_occupyTransportClass = ["Exile_Chopper_Mohawk_FIA","C_Offroad_02_unarmed_black_F","B_LSV_01_unarmed_black_F"];
};
if (SC_debug) then
{
SC_extendedLogging = true;
SC_processReporter = true;
SC_extendedLogging = true;
SC_processReporter = true;
SC_mapMarkers = true;
SC_occupyPlaces = true;
SC_occupyVehicle = true;
SC_occupyMilitary = true;
SC_occupyStatic = true;
SC_occupyMilitary = true;
SC_occupyStatic = true;
SC_occupySky = true;
SC_occupySea = true;
SC_occupyTransport = true;
SC_occupyLootCrates = true;
SC_occupyLootCrates = true;
SC_occupyHeliCrashes = true;
SC_maxNumberofVehicles = 4;
SC_maxNumberofBoats = 1;
SC_maxNumberofHelis = 1;
SC_maxNumberofVehicles = 4;
SC_maxNumberofBoats = 1;
SC_maxNumberofHelis = 1;
};
// Don't alter anything below this point, unless you want your server to explode :)
@ -352,24 +364,24 @@ if(!SC_SurvivorsFriendly) then
{
CIVILIAN setFriend[RESISTANCE,0];
};
CIVILIAN setFriend [EAST,0];
CIVILIAN setFriend [WEST,0];
EAST setFriend [CIVILIAN,0];
WEST setFriend [CIVILIAN,0];
EAST setFriend [WEST,0];
WEST setFriend [EAST,0];
CIVILIAN setFriend [EAST,0];
CIVILIAN setFriend [WEST,0];
EAST setFriend [CIVILIAN,0];
WEST setFriend [CIVILIAN,0];
EAST setFriend [WEST,0];
WEST setFriend [EAST,0];
SC_SurvivorSide = CIVILIAN;
SC_BanditSide = EAST;
SC_liveVehicles = 0;
SC_liveVehiclesArray = [];
SC_liveHelis = 0;
SC_liveHelisArray = [];
SC_liveBoats = 0;
SC_liveBoatsArray = [];
SC_liveStaticGroups = [];
SC_transportArray = [];
SC_SurvivorSide = CIVILIAN;
SC_BanditSide = EAST;
SC_liveVehicles = 0;
SC_liveVehiclesArray = [];
SC_liveHelis = 0;
SC_liveHelisArray = [];
SC_liveBoats = 0;
SC_liveBoatsArray = [];
SC_liveStaticGroups = [];
SC_transportArray = [];
publicVariable "SC_liveVehicles";
publicVariable "SC_liveVehiclesArray";
@ -383,4 +395,4 @@ publicVariable "SC_transportArray";
publicVariable "SC_SurvivorSide";
publicVariable "SC_BanditSide";
SC_CompiledOkay = true;
SC_CompiledOkay = true;

View File

@ -74,5 +74,5 @@ SC_occupationVersion = getText (configFile >> "CfgPatches" >> "a3_exile_occupati
[_logDetail] call SC_fnc_log;
// Start Occupation
[] execVM "\x\addons\a3_exile_occupation\scripts\startOccupation.sqf";
[]execVM "\x\addons\a3_exile_occupation\scripts\startOccupation.sqf";
};

View File

@ -20,4 +20,4 @@ if (SC_occupyLootCratesMarkers) then
};
};
};
};

View File

@ -40,7 +40,7 @@ _damagedEssentials = 0;
} forEach _essentials;
if(_heliDamage > 0.2 && _damagedEssentials > 0 && !_crewEjected && _ejectChance > 100) then
if((_heliDamage > 0.2 OR _damagedEssentials) > 0 && !_crewEjected && _ejectChance > 100) then
{
_target = _this select 1;
[_heli, _target] spawn

View File

@ -14,11 +14,14 @@ private _validspot = true;
};
if (worldName == _blacklistMap) then
{
if(_position distance _blacklistPos < _blacklistRadius) exitWith
_distance = _position distance2D _blacklistPos;
if(_distance < _blacklistRadius) exitWith
{
_validspot = false;
_validspot = false;
diag_log format["%1 is %2m from blacklisted position %3 (blacklisted)",_position,_distance,_blacklistPos];
};
};
};
}forEach SC_blackListedAreas;
//Check if near player territory

View File

@ -13,7 +13,23 @@ for "_i" from 1 to SC_numberofLootCrates do
while{!_validspot} do
{
sleep 0.2;
_position = [ false, false ] call SC_fnc_findsafePos;
if(SC_occupyLootCratesStatic) then
{
_tempPosition = SC_occupyLootCratesLocations select 0;
_position = [_tempPosition select 0, _tempPosition select 1, _tempPosition select 2];
SC_occupyLootCratesLocations = SC_occupyLootCratesLocations deleteAt 0;
diag_log format["_tempPosition: %1 _position: %2",_tempPosition,_position];
if(isNil "_position") then
{
_position = [ false, false ] call SC_fnc_findsafePos;
};
}
else
{
_position = [ false, false ] call SC_fnc_findsafePos;
};
_validspot = true;
//Check if near another crate site
@ -24,8 +40,7 @@ for "_i" from 1 to SC_numberofLootCrates do
_mapMarkerName = format ["SC_loot_marker_%1", _i];
if (SC_occupyLootCratesMarkers) then
{
{
_event_marker = createMarker [ format ["SC_loot_marker_%1", _i], _position];
_event_marker setMarkerColor "ColorGreen";
_event_marker setMarkerAlpha 1;

View File

@ -15,13 +15,10 @@ _logDetail = format['[OCCUPATION:Traders] starting @ %1',time];
_traderName setmarkeralpha 0;
private _marker = createMarker [ format [" %1 ", _traderName], _traderPos];
_marker setMarkerText format ["%1", _traderName];
_marker setMarkerSize [3,3];
_marker setMarkerShape "ICON";
_marker setMarkerType "loc_Tree";
_marker setMarkerColor "ColorBlack";
_marker setMarkerBrush "Vertical";
_marker setMarkerText "";
_marker setMarkerShape "ICON";
_marker setMarkerType "ExileTraderZoneIcon";
if(_createSafezone) then
{
ExileTraderZoneMarkerPositions pushBack _traderPos;
@ -36,18 +33,19 @@ _logDetail = format['[OCCUPATION:Traders] starting @ %1',time];
// Place the traders randomly
private _traders = [
["Exile_Trader_AircraftCustoms", "Exile_Sign_AircraftCustoms", "GreekHead_A3_08", "HubStandingUC_idle1"],
["Exile_Trader_Aircraft", "Exile_Sign_Aircraft", "WhiteHead_10", "HubStandingUC_idle2"],
["Exile_Trader_Armory", "Exile_Sign_Armory", "WhiteHead_01", "HubStandingUC_idle3"],
["Exile_Trader_Hardware", "Exile_Sign_Hardware", "WhiteHead_14", "HubStandingUC_idle1"],
["Exile_Trader_Vehicle", "Exile_Sign_Vehicles", "AfricanHead_03", "HubStandingUC_idle2"],
["Exile_Trader_VehicleCustoms", "Exile_Sign_VehicleCustoms", "GreekHead_A3_05", "HubStandingUC_idle3"],
["Exile_Trader_WasteDump", "Exile_Sign_WasteDump", "WhiteHead_07", "HubStandingUC_idle2"],
["Exile_Trader_Food", "Exile_Sign_Food", "WhiteHead_15", "HubStandingUC_idle3"],
["Exile_Trader_SpecialOperations", "Exile_Sign_SpecialOperations", "WhiteHead_06", "HubStandingUC_idle1"],
["Exile_Trader_Equipment", "Exile_Sign_Equipment", "WhiteHead_15", "HubStandingUC_idle2"],
["Exile_Trader_Office", "Exile_Sign_Office", "WhiteHead_10", "HubStandingUC_idle1"]
["Exile_Trader_AircraftCustoms", "Exile_Sign_AircraftCustoms", "GreekHead_A3_08", ["HubBriefing_loop","HubBriefing_scratch","HubBriefing_stretch","HubBriefing_think"]],
["Exile_Trader_Aircraft", "Exile_Sign_Aircraft", "WhiteHead_10", ["LHD_krajPaluby"]],
["Exile_Trader_Armory", "Exile_Sign_Armory", "WhiteHead_01", ["InBaseMoves_HandsBehindBack1","InBaseMoves_HandsBehindBack2"]],
["Exile_Trader_Hardware", "Exile_Sign_Hardware", "WhiteHead_14", ["HubStandingUC_idle1"]],
["Exile_Trader_Vehicle", "Exile_Sign_Vehicles", "AfricanHead_03", ["HubStandingUC_idle2"]],
["Exile_Trader_VehicleCustoms", "Exile_Sign_VehicleCustoms", "GreekHead_A3_05", ["HubBriefing_loop","HubBriefing_scratch","HubBriefing_stretch","HubBriefing_think"]],
["Exile_Trader_WasteDump", "Exile_Sign_WasteDump", "WhiteHead_07", ["c4coming2cDf_genericstani1","c4coming2cDf_genericstani2","c4coming2cDf_genericstani3"]],
["Exile_Trader_Food", "Exile_Sign_Food", "WhiteHead_15", ["HubStandingUC_idle3"]],
["Exile_Trader_SpecialOperations", "Exile_Sign_SpecialOperations", "WhiteHead_06", ["HubStandingUC_idle1"]],
["Exile_Trader_Equipment", "Exile_Sign_Equipment", "WhiteHead_15", ["HubStandingUC_idle2"]],
["Exile_Trader_Office", "Exile_Sign_Office", "WhiteHead_10", ["HubBriefing_loop","HubBriefing_scratch","HubBriefing_stretch","HubBriefing_think"]]
];
private _group = createGroup SC_SurvivorSide;
_group setCombatMode "BLUE";
_group setVariable ["DMS_AllowFreezing",false,true];
@ -57,7 +55,8 @@ _logDetail = format['[OCCUPATION:Traders] starting @ %1',time];
enableSentences false;
enableRadio false;
enableRadio false;
{
private _traderType = _x select 0;
private _traderSign = _x select 1;
@ -70,15 +69,9 @@ _logDetail = format['[OCCUPATION:Traders] starting @ %1',time];
private _signDir = getDir _nearestSign;
_nearestSign setDir _signDir;
private _traderPosition = position _nearestSign;
_traderType createUnit [_traderPosition, _group, "trader = this;"];
trader disableAI "FSM";
trader disableAI "MOVE";
trader disableAI "TARGET";
trader disableAI "AUTOTARGET";
trader disableAI "AUTOCOMBAT";
trader disableAI "COVER";
trader disableAI "SUPPRESSION";
trader reveal _nearestSign;
_nearestSign disableCollisionWith trader;
trader disableCollisionWith _nearestSign;
@ -87,8 +80,19 @@ _logDetail = format['[OCCUPATION:Traders] starting @ %1',time];
private _traderDirection = _signDir-180;
trader setDir _traderDirection;
trader setVariable ["ExileTraderType", _traderType,true];
trader allowDamage false;
trader setVariable ["BIS_enableRandomization", false];
trader setVariable ["BIS_fnc_animalBehaviour_disable", true];
trader setVariable ["ExileAnimations", _traderAnimation];
trader setVariable ["ExileTraderType", _traderType,true];
trader disableAI "ANIM";
trader disableAI "MOVE";
trader disableAI "FSM";
trader disableAI "AUTOTARGET";
trader disableAI "TARGET";
trader disableAI "CHECKVISIBLE";
trader allowDamage false;
trader setFace _traderFace;
removeGoggles trader;
removeBackpack trader;
removeVest trader;
@ -98,8 +102,10 @@ _logDetail = format['[OCCUPATION:Traders] starting @ %1',time];
trader addVest (_loadOut select 9);
trader addBackpack (_loadOut select 10);
trader addHeadgear "H_Cap_blk";
//trader setCaptive true;
//trader switchMove _traderAnimation;
trader switchMove (_traderAnimation select 0);
trader addEventHandler ["AnimDone", {_this call ExileClient_object_trader_event_onAnimationDone}];
sleep 0.2;
diag_log format["[OCCUPATION:Traders] Created %1 with head %2 at %3 facing %4", _x select 0, _x select 2, _traderPosition, _traderDirection];
} forEach _traders;

View File

@ -144,8 +144,9 @@ while {true} do
if( _transportType == "land" && SC_colourTransport) then
{
//_transport setObjectTextureGlobal [0,"#(argb,8,8,3)color(0.518,0.519,0.7,0.2)"];
}
else
};
if( _transportType == "air" && SC_colourTransport) then
{
_transport setObjectTextureGlobal [0,"#(argb,8,8,3)color(0.518,0.519,0.7,0.2)"];
_transport setObjectTextureGlobal [1,"#(argb,8,8,3)color(0.518,0.519,0.7,0.2)"];
@ -303,7 +304,7 @@ while {true} do
};
deleteMarker _mk;
_transport setDamage 1;
_logDetail = format ["[OCCUPATION:transport]:: Transport destroyed @ %1 (%2)",_pos,time];
_logDetail = format ["[OCCUPATION:transport]:: Transport destroyed @ %1",time];
[_logDetail] call SC_fnc_log;
};
if(_markerCount < 2) exitWith {};