DMS_Exile/@ExileServer/addons/a3_dms/config.sqf
eraser1 0b0c290495 Function Changes + Fixes + Comments + Logs
Added configurable distance to when cleanup will be aborted for an
object with a player nearby.

Created TargetsKilled function

Rewrite BroadCastMissionStatus (the function was doing the same thing
for each switch case except one, so I just put that in a select
statement)

Created function information for CleanUp.

CleanUp was using "_this" instead of "_x"

Created more/better debug info for CleanUp

Changed calling parameters for FillCrate.

Increased robustness of FillCrate.

Made FillCrate prettier

Created function information for FindSafePos

Created function information for IsPlayerNearByARRAY (deprecated)

Tweaks to MissionStatusCheck:
Created debug log for empty "DMS_Mission_Arr"
Fixed placement of index increase (otherwise deleteAt would remove
incorrect element if it existed)

Created MissionSuccessState

Created logs for RemoveMarkers

Created function information for RemoveMarkers + made it prettier

Created function information for SelectMagazine

Created TargetsKilled
2015-08-28 16:52:56 -05:00

446 lines
18 KiB
Plaintext

/*
Most of this stuff is stolen from WAI :P
https://github.com/nerdalertdk/WICKED-AI
Created by eraser1
*/
DMS_DEBUG = false;
/* Mission System Settings */
DMS_DynamicMission = true; // Enable/disable dynamic mission system
DMS_MaxBanditMissions = 1; // Maximum number of Bandit Missions
DMS_StaticMission = false; // Enable/disable static missions
DMS_TimeBetweenMissions = [600,900]; // [Minimum,Maximum] time between missions (if mission limit is not reached) | DEFAULT: 10-15 mins
DMS_MissionTimeOut = [900,1800]; // [Minimum,Maximum] time it will take for a mission to timeout | Default: 15-30 mins
DMS_MissionMarkerWinDot = true; // Keep the mission marker dot with a "win" message after mission is over
DMS_MissionMarkerLoseDot = true; // Keep the mission marker dot with a "lose" message after mission is over
DMS_MissionMarkerWinDotTime = 30; // How many seconds the "win" mission dot will remain on the map
DMS_MissionMarkerLoseDotTime = 30; // How many seconds the "lose" mission dot will remain on the map
DMS_MissionMarkerWinDotColor = "ColorBlue"; // The color of the "win" marker dot
DMS_MissionMarkerLoseDotColor = "ColorRed"; // The color of the "lose" marker dot
DMS_CompletedMissionCleanup = true; // Cleanup mission-spawned buildings and AI bodies after some time
DMS_CompletedMissionCleanupTime = 3600; // Minimum time until mission-spawned buildings and AI are cleaned up
DMS_CleanUp_PlayerNearLimit = 20; // Cleanup of an object is aborted if a player is this many meters close to the object
DMS_MissionTimeoutReset = true; // Enable mission timeout timer reset if a player is close
DMS_MissionTimeoutResetRange = 1000; // If a player is this close to a mission then it won't time-out
DMS_PlayerNearBlacklist = 2000; // Missions won't spawn in a position this many meters close to a player
DMS_SpawnZoneNearBlacklist = 2500; // Missions won't spawn in a position this many meters close to a spawn zone
DMS_TraderZoneNearBlacklist = 3000; // Missions won't spawn in a position this many meters close to a trader zone
DMS_MissionNearBlacklist = 4000; // Missions won't spawn in a position this many meters close to another mission
DMS_WaterNearBlacklist = 750; // Missions won't spawn in a position this many meters close to water
DMS_SpawnBoxSmoke = true; // Spawn a smoke grenade on mission box upon misson completion
DMS_SpawnBoxIRGrenade = true; // Spawn an IR grenade on mission box upon misson completion
DMS_MinPlayerCount = 0; // Minimum number of players until mission start
DMS_MinServerFPS = 10; // Minimum server FPS for missions to start
//Mission notification settings
DMS_PlayerNotificationTypes = ["standardHintRequest"]; // Notification types. Supported values are: ["advancedHintRequest","dynamicTextRequest","standardHintRequest","systemChatRequest"]
DMS_dynamicText_Size = 0.55; // Dynamic Text size for "dynamicTextRequest" notification type.
DMS_dynamicText_Color = "#FFCC00"; // Dynamic Text color for "dynamicTextRequest" notification type.
DMS_MissionTypes = [ // List of missions with spawn chances. If they add up to 100%, they represent the percentage chance each one will spawn
["mission1",25],
["mission2",50],
["mission3",15],
["mission4",10]
];
DMS_findSafePosBlacklist = [ // For BIS_fnc_findSafePos position blacklist info refer to: https://community.bistudio.com/wiki/BIS_fnc_findSafePos
];
/* Mission System Settings */
/* AI Settings */
DMS_ai_wep_accessories = ["acc_pointer_IR","acc_flashlight"];
DMS_ai_wep_suppressors = [
"muzzle_snds_H",
"muzzle_snds_L",
"muzzle_snds_M",
"muzzle_snds_B",
"muzzle_snds_H_MG",
"muzzle_snds_acp"
];
DMS_banditSide = EAST; // The side (team) that AI Bandits will spawn on
DMS_clear_AI_body = false; // Clear AI body when they die
DMS_remove_roadkill = false; // Delete AI bodies that are roadkill
DMS_remove_roadkill_chance = 0; // Percentage chance that roadkilled AI bodies will be deleted
DMS_ai_share_info = true; // Share info about killer
DMS_ai_share_info_distance = 300; // The distance killer's info will be shared to other AI
DMS_ai_use_launchers = true; // Enable/disable spawning an AI in a group with a launcher
DMS_ai_use_launchers_chance = 0.5; // Percentage chance to actually spawn the launcher (per-group)
DMS_ai_remove_launchers = false; // Remove rocket launchers on AI death
DMS_ai_enable_water_equipment = true; // Enable/disable overriding default weapons of an AI if it spawns on/in water
// https://community.bistudio.com/wiki/AI_Sub-skills#general
DMS_ai_static_skills = true; // Use "DMS_ai_skill_static" for AI on static guns
DMS_ai_skill_static = [["aimingAccuracy",0.20],["aimingShake",0.70],["aimingSpeed",0.75],["spotDistance",0.70],["spotTime",0.50],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]]; // Static AI Skills
DMS_ai_skill_easy = [["aimingAccuracy",0.30],["aimingShake",0.50],["aimingSpeed",0.50],["spotDistance",0.50],["spotTime",0.50],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",0.50]]; // Easy
DMS_ai_skill_moderate = [["aimingAccuracy",0.60],["aimingShake",0.60],["aimingSpeed",0.60],["spotDistance",0.60],["spotTime",0.60],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",0.60]]; // Moderate
DMS_ai_skill_difficult = [["aimingAccuracy",0.70],["aimingShake",0.70],["aimingSpeed",0.70],["spotDistance",0.70],["spotTime",0.80],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",0.70]]; // Difficult
DMS_ai_skill_hardcore = [["aimingAccuracy",1.00],["aimingShake",1.00],["aimingSpeed",1.00],["spotDistance",1.00],["spotTime",1.00],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]]; // Hardcore
DMS_ai_skill_random = ["hardcore","difficult","difficult","difficult","moderate","moderate","moderate","moderate","easy","easy"]; // Skill frequencies for "random" AI skills | Default: 10% hardcore, 30% difficult, 40% moderate, and 20% easy
DMS_static_weapons = [ // Static weapons for AI
"O_HMG_01_F",
"O_HMG_01_high_F"
];
//Assault Class
DMS_assault_weps = [ // Assault Rifles
"arifle_Katiba_GL_F",
"arifle_MX_GL_Black_F",
"arifle_Mk20_GL_F",
"arifle_TRG21_GL_F",
"arifle_Katiba_F",
"arifle_MX_Black_F",
"arifle_TRG21_F",
"arifle_TRG20_F",
"arifle_Mk20_plain_F",
"arifle_Mk20_F"
];
DMS_assault_pistols = [ // Pistols for Assault Class
"hgun_PDW2000_F",
"hgun_ACPC2_F",
"hgun_Rook40_F",
"hgun_P07_F",
"hgun_Pistol_heavy_01_F",
"hgun_Pistol_heavy_02_F"
];
DMS_assault_optics = [ // Optics for Assault Class
"optic_Arco",
"optic_Hamr",
"optic_Aco",
"optic_Holosight",
"optic_MRCO",
"optic_DMS"
];
DMS_assault_scope_chance = 0.75; // Percentage chance that Assault class AI will get an optic on their weapons
DMS_assault_items = ["ItemGPS"];
DMS_assault_helmets = [ // Helmets for Assault Class
"H_HelmetSpecB_paint1",
"H_HelmetIA_camo",
"H_HelmetLeaderO_ocamo",
"H_HelmetLeaderO_oucamo"
];
DMS_assault_clothes = [ // Uniforms for Assault Class
"U_O_CombatUniform_ocamo",
"U_O_PilotCoveralls",
"U_B_Wetsuit",
"U_BG_Guerilla3_1",
"U_BG_Guerilla2_3",
"U_BG_Guerilla2_2",
"U_BG_Guerilla1_1",
"U_BG_Guerrilla_6_1",
"U_IG_Guerilla3_2",
"U_B_SpecopsUniform_sgg",
"U_I_OfficerUniform",
"U_B_CTRG_3",
"U_I_G_resistanceLeader_F"
];
DMS_assault_vests = [ // Vests for Assault Class
"V_PlateCarrierH_CTRG",
"V_PlateCarrierSpec_rgr",
"V_PlateCarrierGL_blk",
"V_PlateCarrierGL_mtp",
"V_PlateCarrierGL_rgr",
"V_PlateCarrierSpec_blk",
"V_PlateCarrierSpec_mtp",
"V_PlateCarrierL_CTRG",
"V_TacVest_blk_POLICE",
"V_PlateCarrierIA2_dgtl"
];
DMS_assault_backpacks = [ // Backpacks for Assault Class
"B_Bergen_rgr",
"B_Carryall_oli",
"B_Kitbag_mcamo",
"B_Carryall_cbr",
"B_FieldPack_oucamo",
"B_FieldPack_cbr",
"B_Bergen_blk"
];
//Machine Gun Class
DMS_MG_weps = [ // Machine Guns
"LMG_Zafir_F",
"LMG_Mk200_F",
"arifle_MX_SW_Black_F",
"MMG_01_hex_F"
];
DMS_MG_pistols = [ // Pistols for MG Class
"hgun_PDW2000_F",
"hgun_ACPC2_F",
"hgun_Rook40_F",
"hgun_P07_F",
"hgun_Pistol_heavy_01_F",
"hgun_Pistol_heavy_02_F"
];
DMS_MG_optics = [ // Optics for MG Class
"optic_Hamr",
"optic_Aco",
"optic_Holosight",
"optic_MRCO"
];
DMS_MG_scope_chance = 0.5; // Percentage chance that MG Class AI will get an optic on their weapons
DMS_MG_items = ["ItemWatch","ItemMap","ItemCompass","Binocular"];
DMS_MG_helmets = [ // Helmets for MG Class
"H_PilotHelmetHeli_I",
"H_PilotHelmetHeli_O",
"H_PilotHelmetFighter_I",
"H_PilotHelmetFighter_O",
"H_HelmetCrew_O",
"H_CrewHelmetHeli_I",
"H_HelmetSpecB_paint1",
"H_HelmetIA_camo",
"H_HelmetLeaderO_ocamo",
"H_HelmetLeaderO_oucamo"
];
DMS_MG_clothes = [ // Uniforms for MG Class
"U_O_CombatUniform_ocamo",
"U_O_PilotCoveralls",
"U_B_Wetsuit",
"U_BG_Guerilla3_1",
"U_BG_Guerilla2_3",
"U_BG_Guerilla2_2",
"U_BG_Guerilla1_1",
"U_BG_Guerrilla_6_1",
"U_IG_Guerilla3_2",
"U_B_SpecopsUniform_sgg",
"U_I_OfficerUniform",
"U_B_CTRG_3",
"U_I_G_resistanceLeader_F"
];
DMS_MG_vests = [ // Vests for MG Class
"V_PlateCarrierH_CTRG",
"V_PlateCarrierSpec_rgr",
"V_PlateCarrierGL_blk",
"V_PlateCarrierGL_mtp",
"V_PlateCarrierGL_rgr",
"V_PlateCarrierSpec_blk",
"V_PlateCarrierSpec_mtp",
"V_PlateCarrierL_CTRG",
"V_TacVest_blk_POLICE",
"V_PlateCarrierIA2_dgtl",
"V_HarnessO_brn",
"V_HarnessO_gry"
];
DMS_MG_backpacks = [ // Backpacks for MG Class
"B_Bergen_rgr",
"B_Carryall_oli",
"B_Kitbag_mcamo",
"B_Carryall_cbr",
"B_Bergen_blk"
];
//Sniper Class
DMS_sniper_weps = [ // Sniper Rifles
"srifle_EBR_F",
"srifle_DMR_01_F",
"srifle_GM6_F",
"srifle_LRR_F",
"arifle_MXM_F",
"arifle_MXM_Black_F",
"srifle_DMR_02_F"
];
DMS_sniper_pistols = [ // Pistols for Sniper Class
"hgun_PDW2000_F",
"hgun_ACPC2_F",
"hgun_Rook40_F",
"hgun_P07_F",
"hgun_Pistol_heavy_01_F",
"hgun_Pistol_heavy_02_F"
];
DMS_sniper_optics = [ // Optics for Sniper Class
"optic_SOS",
"optic_DMS",
"optic_LRPS"
];
DMS_sniper_scope_chance = 1; // Percentage chance that Sniper Class AI will get an optic on their weapons
DMS_sniper_items = ["Rangefinder","ItemGPS"];
DMS_sniper_helmets = [ // Helmets for Sniper Class
"H_HelmetSpecB_paint1",
"H_HelmetIA_camo",
"H_HelmetLeaderO_ocamo",
"H_HelmetLeaderO_oucamo"
];
DMS_sniper_clothes = [ // Uniforms for Sniper Class
"U_O_GhillieSuit",
"U_B_FullGhillie_ard",
"U_B_FullGhillie_lsh",
"U_B_FullGhillie_sard",
"U_B_GhillieSuit",
"U_I_FullGhillie_ard",
"U_I_FullGhillie_lsh",
"U_I_FullGhillie_sard",
"U_I_GhillieSuit",
"U_O_FullGhillie_ard",
"U_O_FullGhillie_lsh",
"U_O_FullGhillie_sard"
];
DMS_sniper_vests = [ // Vests for Sniper Class
"V_PlateCarrierH_CTRG",
"V_PlateCarrierSpec_rgr",
"V_PlateCarrierGL_blk",
"V_PlateCarrierGL_mtp",
"V_PlateCarrierGL_rgr",
"V_PlateCarrierSpec_blk",
"V_PlateCarrierSpec_mtp",
"V_PlateCarrierL_CTRG",
"V_TacVest_blk_POLICE",
"V_PlateCarrierIA2_dgtl",
"V_HarnessO_brn",
"V_HarnessO_gry"
];
DMS_sniper_backpacks = [ // Backpacks for Sniper Class
"B_Bergen_rgr",
"B_Carryall_oli",
"B_Kitbag_mcamo",
"B_Carryall_cbr",
"B_Bergen_blk"
];
DMS_random_AI = [ // The classes that a "random" AI can spawn as | DEFAULT: 60% Assault, 20% MG, 20% Sniper
"assault",
"assault",
"assault",
"machine",
"sniper"
];
DMS_AI_wep_launchers = ["Exile_Melee_Axe"];
/* AI Settings */
/* Loot Settings */
DMS_BoxWeapons = [ //List of weapons that can potentially spawn in a crate
"Exile_Melee_Axe",
"arifle_Katiba_GL_F",
"arifle_MX_GL_Black_F",
"arifle_Mk20_GL_F",
"arifle_TRG21_GL_F",
"arifle_Katiba_F",
"arifle_MX_Black_F",
"arifle_TRG21_F",
"arifle_TRG20_F",
"arifle_Mk20_plain_F",
"arifle_Mk20_F",
"LMG_Zafir_F",
"LMG_Mk200_F",
"arifle_MX_SW_Black_F",
"MMG_01_hex_F",
"srifle_EBR_F",
"srifle_DMR_01_F",
"srifle_GM6_F",
"srifle_LRR_F",
"arifle_MXM_F",
"arifle_MXM_Black_F",
"srifle_DMR_02_F"
];
DMS_BoxSurvivalSupplies = [ //List of survival supplies (food/drink/meds)
"Exile_Item_Catfood_Cooked",
"Exile_Item_SausageGravy_Cooked",
"Exile_Item_BBQSandwich_Cooked",
"Exile_Item_PlasticBottleFreshWater",
"Exile_Item_PlasticBottleFreshWater",
"Exile_Item_Matches",
"Exile_Item_CookingPot"
];
DMS_BoxBuildingSupplies = [ //List of building supplies
"Exile_Item_CamoTentKit",
"Exile_Item_MetalPole",
"Exile_Item_MetalBoard",
"Exile_Item_LightBulb",
"Exile_Item_JunkMetal",
"Exile_Item_ExtensionCord",
"Exile_Item_DuctTape"
];
DMS_BoxOptics = [
"optic_Arco",
"optic_Hamr",
"optic_Aco",
"optic_Holosight",
"optic_MRCO",
"optic_SOS",
"optic_DMS",
"optic_LRPS",
"optic_Nightstalker"
];
DMS_BoxBackpacks = [ //List of backpacks that can potentially spawn in a crate
"B_Bergen_rgr",
"B_Carryall_oli",
"B_Kitbag_mcamo",
"B_Carryall_cbr",
"B_FieldPack_oucamo",
"B_FieldPack_cbr",
"B_Bergen_blk"
];
DMS_BoxItems = DMS_BoxSurvivalSupplies+DMS_BoxBuildingSupplies+DMS_BoxOptics; // Random "items" can spawn optics, survival supplies, or building supplies
DMS_RareLoot = true; // Potential chance to spawn rare loot in any crate.
DMS_RareLootList = [ // List of rare loot to spawn
"Exile_Item_SafeKit",
"Exile_Item_CodeLock"
];
DMS_RareLootChance = 0.1; // Chance to spawn rare loot in any crate | Default: 10%
// Vehicles
DMS_ArmedVehicles = [ // List of armed vehicles that can spawn
"Exile_Car_Offroad_Armed_Guerilla01"
];
DMS_MilitaryVehicles = [ // List of military vehicles that can spawn
"Exile_Car_Strider",
"Exile_Car_Hunter",
"Exile_Car_Ifrit"
];
DMS_TransportTrucks = [ // List of transport trucks that can spawn
"Exile_Car_Van_Guerilla01",
"Exile_Car_Van_Black"
];
DMS_RefuelTrucks = [ // List of refuel trucks that can spawn
"Exile_Car_Van_Fuel_Black",
"Exile_Car_Van_Fuel_White",
"Exile_Car_Van_Fuel_Red",
"Exile_Car_Van_Fuel_Guerilla01",
"Exile_Car_Van_Fuel_Guerilla02",
"Exile_Car_Van_Fuel_Guerilla03"
];
DMS_CivilianVehicles = [ // List of civilian vehicles that can spawn
"Exile_Car_SUV_Red",
"Exile_Car_Hatchback_Rusty1",
"Exile_Car_Hatchback_Rusty2",
"Exile_Car_Hatchback_Sport_Red",
"Exile_Car_SUV_Red",
"Exile_Car_Offroad_Rusty2",
"Exile_Bike_QuadBike_Fia"
];
DMS_TransportHelis = [ // List of transport helis that can spawn
"Exile_Chopper_Hummingbird_Green",
"Exile_Chopper_Orca_BlackCustom",
"Exile_Chopper_Mohawk_FIA",
"Exile_Chopper_Huron_Black",
"Exile_Chopper_Hellcat_Green",
"Exile_Chopper_Taru_Transport_Black"
];
/* Loot Settings */
// Debug Overwrites
if(DMS_DEBUG) then {
DMS_TimeBetweenMissions = [60,60];
DMS_MissionTimeOut = [300,300];
};