mirror of
https://github.com/Defent/DMS_Exile.git
synced 2024-08-30 16:52:12 +00:00
0b0c290495
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
446 lines
18 KiB
Plaintext
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];
|
|
}; |