====== ArmA 3 Hcpookie Artillery Manual ====== [[https://www.pmctactical.org/forum/viewforum.php?f=68|ArmA 3 Forum]], [[:arma3|ArmA 3]], [[arma3:config|ArmA 3 Config]], [[arma3:missions|ArmA 3 Missions]], [[arma3:modeling|ArmA 3 3D Modeling]], [[arma3:scripting|ArmA 3 Scripting]], [[arma3:terrain|ArmA 3 Terrain]], [[arma3:texturing|ArmA 3 Texturing]], [[arma3:tools|ArmA 3 Tools]] Short: just use bis support module? ====== Artillery Fire Mission Function ====== 2021-07-31 pook_ARTY Artillery Fire Mission Function [[https://steamcommunity.com/workshop/filedetails/discussion/1312457117/3491891042505110380/|hcpookie's Workshop link]]. Initiates player-requested artillery fire mission for friendly AI-controlled arty units. This can be scripted for mission-driven artillery support fire missions by "real" units on the map. The use of in-mission active AI artillery units makes the counter-artillery strike mission a real possibility. Enemy guns can be eliminated; friendly artillery has the potential to be destroyed. Consider a scripted mission with enemy AI calling in artillery strikes and you and your SF squad is tasked with finding and neutralizing the artillery units! The function can be assigned to a forward observer, spotter, or other "control" unit, and enemy artillery may become active by careful use of triggers or condition scripts to dynamically change mission parameters. All these possibilities exist due to "real" units on the map making use of this function, which turns artillery into a dynamic aspect for any SP or MP mission! This function currently supports: - POOK_ARTY: 2S19, 2S1, 2S3, 2S5, A-222, 9K58, TOS-1A - POOK_AFV: Pandur M-121 Mortar carrier - CUP: M270, BM-21, M1129 mortar carrier, 2B14 mortar, D30, M119 - VME_PLA: PLZ-05, PLZ-07, PL-96 (aka Type 86 - D30 copy), PP87 mortar, PHZ-10, PHZ-81, PHL-03, PLL-05 - RHS: M119, D30, M109, 2S3, M252 mortar, 2B14 mortar, BM-21, M142 (HIMARS) - BIS vanilla artillery SRBM and SCUD fire missions are provided in their respective functions contained in the pook_Arty pack. Please comment in the BIS forum topic if other units should be considered for addition to this list. Author: hcpookie Arguments: ========== 0: The player calling the mission 1: TYPE: The artillery ammo type being requested (default = "HE") "HE", "SMOKE", "ILLUM", and "CBU" types are available. 2: OPTIONAL: Range (in km) to check for friendly launchers (default = 20km) 3: OPTIONAL: Map grid coordinates. Uses standard coordinate format (ex. [0,0,0]). USAGE: ====== 1. Place an AI artillery unit via editor, or spawn within mission. 2. Add the function to any forward observer, fire controller, recon vehicle, specops radio, etc. depending on your mission needs. The Fire Controller should be a Commander/Spotter/Radio operator, etc. or a forward observer vehicle operator. The controller could even be a scout plane, helicopter, etc. that would be in a position to request the artillery missions. The controller assignment is added either via "addAction" or via a trigger/script to assign the desired ammo type to an Artillery Fire Controller. Note that the ammo type values are CASE-SENSITIVE! Supported types are: "HE","SMOKE","ILLUM","CBU". The function will default to "HE" if no value is passed: this addAction ["Arty Mission", {[player] spawn pook_ARTY_FNC_ARTYMISSION},"",1,false,true]; - or - _arty = [this] spawn pook_ARTY_FNC_ARTYMISSION; ---- HE: ---- Using the HE value will launch a conventional high explosive arty fire mission. You may replace "player" with the object's "Variable Name" (in the editor) depending on your scripting needs: this addAction ["Arty Mission", {[player, "HE", 20] spawn pook_ARTY_FNC_ARTYMISSION},"",1,false,true]; ALTERNATIVE USAGE: You may also use a trigger/script in place of the artillery controller: _arty = [this, "HE"] spawn pook_ARTY_FNC_ARTYMISSION; ------- SMOKE: ------- Using the SMOKE value will launch a covering smoke barrage fire mission. You may replace "player" with the object's "Variable Name" (in the editor) depending on your scripting needs: this addAction ["Arty Mission", {[player, "SMOKE", 20] spawn pook_ARTY_FNC_ARTYMISSION},"",1,false,true]; ALTERNATIVE USAGE: You may also use a trigger/script in place of the artillery controller: _arty = [this, "SMOKE"] spawn pook_ARTY_FNC_ARTYMISSION; ------- ILLUM: ------- Using the ILLUM value will launch a flare illumination fire mission. You may replace "player" with the object's "Variable Name" (in the editor) depending on your scripting needs: this addAction ["Arty Mission", {[player, "ILLUM", 20] spawn pook_ARTY_FNC_ARTYMISSION},"",1,false,true]; ALTERNATIVE USAGE: You may also use a trigger/script in place of the artillery controller: _arty = [this, "ILLUM"] spawn pook_ARTY_FNC_ARTYMISSION; ----- CBU: ----- Using the CBU value will launch a cluster munition fire mission. You may replace "player" with the object's "Variable Name" (in the editor) depending on your scripting needs: this addAction ["Arty Mission", {[player, "CBU", 20] spawn pook_ARTY_FNC_ARTYMISSION},"",1,false,true]; ALTERNATIVE USAGE: You may also use a trigger/script in place of the artillery controller: _arty = [this, "CBU"] spawn pook_ARTY_FNC_ARTYMISSION; 3. OPTIONAL: The third input parameter defines the search radius to seek friendly AI artillery units. Default search is 20km. This can be adjusted to accommodate multiple forward observers in the same mission. Example - to narrow the search for friendly units to 4km, change the input as follows: this addAction ["Arty Mission", {[player, "HE", 4] spawn pook_ARTY_FNC_ARTYMISSION},"",1,false,true]; - or - _arty = [this,"HE",4] spawn pook_ARTY_FNC_ARTYMISSION; 4. OPTIONAL: Map grid Coordinates. Uses standard coordinate format (ex. [0,0,0]). May be used for scripting purposes. If no value is passed, the fire mission operator will prompted for map-click coordinates. Example - to create a fire mission for a fixed position such as an enemy camp at map grid 150256, change the input as follows: this addAction ["Arty Mission", {[player, "HE",,[150,256,0]] spawn pook_ARTY_FNC_ARTYMISSION},"",1,false,true]; - or - _arty = [this,"HE",,[150,256,0]] spawn pook_ARTY_FNC_ARTYMISSION; 5. Once the inputs are provided, the function will only select artillery units that meet the following criteria: - Only AI units are considered - Stationary - vehicles that are moving or in transit (either in a convoy or being airlifted) are ignored - Friendly AI units on the side (will not select neutral units) - Units in range of fire mission coordinates - Units with available ammo for the selected type of fire mission - Only alive units are selected; if the unit is destroyed, dead, or captured, the unit will not be tasked 6. The AI gunner will first fire a spotter smoke round, and within 45 seconds all units within the battery will begin the main artillery barrage. 7. Each AI unit will fire a random amount of artillery, anywhere between 3-8 rounds. 8. If AI is in a group, all similar units in that group will fire a salvo. Different artillery types in the same group may not participate in the fire mission. RETURN: ======= - AI will send sideRadio and sideChat notices confirming fire mission or reporting status if out of ammo, or no friendly artillery units are in the area (default 20km zone). NOTES: ====== - Cannot be used for human-controlled artillery units. - Fire Mission command cannot be aborted! - The artillery in the pook_Arty mod is calibrated to Real World values, and can launch anywhere between 1-40km depending on specific unit's capabilities. - Time on Target may vary greatly depending on distance, AI skill, and the specific arty unit's reload times (which are adjusted to Real World values in the pook_Arty pack). ====== SCUD Function ====== 2021-07-31 SCUD Function - call SCUD strikes (or script them on enemy AI) [[https://steamcommunity.com/workshop/filedetails/discussion/1312457117/1642038749314566440/|hcpookie's Workshop link]]. pook_ARTY SSBM AI Fire Mission Function Initiates player-requested SSBM fire mission for friendly pook_SCUD launchers. Can be scripted for mission-driven "RED DAWN" or "SEARCH AND DESTROY" SCUD fire missions (e.g. "Stop General Guba before he launches the SCUD" type missions). Author: hcpookie Arguments: ========== 0: The player calling the mission 1: The SSBM ammo type being requested (OPTIONAL: default = HE) 2: Range (in km) to check for friendly launchers (OPTIONAL: default = 20) 3: OPTIONAL: Map grid coordinates. Uses standard coordinate format (ex. [0,0,0]). USAGE: ====== 1. Place AI SCUD launcher via editor, or spawn within mission. The function supports types: - pook_SCUD - PLA_DF15 2. Either "addAction" for desired ammo type to a Commander/Spotter/Radio operator, etc: HE: ---- this addAction ["SSBM Mission", {[player, "HE", 20] spawn pook_ARTY_FNC_SCUDMISSION},"",1,false,true]; - or - this addAction ["SSBM Mission", {[player] spawn pook_ARTY_FNC_SCUDMISSION},"",1,false,true]; CBU: ---- this addAction ["SSBM Mission", {[player, "CBU", 15] spawn pook_ARTY_FNC_SCUDMISSION},"",1,false,true]; 5kt: ---- this addAction ["SSBM Mission", {[player, "5kt", 5] spawn pook_ARTY_FNC_SCUDMISSION},"",1,false,true]; ... You may replace "player" with the object's "Variable Name" (in the editor) depending on your scripting needs. ... Or via trigger/script for the artillery vehicle: _launch = [this, "HE"] spawn pook_ARTY_FNC_SCUDMISSION; 3. OPTIONAL: The third input parameter defines the search radius to seek friendly launch-capable SCUD launchers. Default is 20km. This can be adjusted to accommodate multiple launchers in the same mission. 4. OPTIONAL: Map grid Coordinates. Uses standard coordinate format (ex. [0,0,0]). May be used for scripting purposes. If not found, operator will prompted for map-click coordinates. 5. AI will select and arm the appropriate warhead. 6. Script will disable consecutive reloads to prevent "infinite ammo" loops 7. Rearm can only be achieved either via player-based launches, and only for launchers with their "ScudLoadStatus" variable > 0. RETURN: ======= - AI will send sideRadio and sideChat notices confirming fire mission or reporting status if out of ammo, or no friendly SCUD launchers are in the area (default 20km zone) NOTES: ====== - Cannot be used for human-controlled launchers. - Launch command cannot be aborted! - The SCUD launcher is calibrated to Real World values, and can launch anywhere between 1-300km ====== SRBM Function ====== 2021-07-31 SRBM Function - call in precision missile strike [[https://steamcommunity.com/workshop/filedetails/discussion/1312457117/1642038749314565023/|hcpookie's Workshop link]]. pook_ARTY SRBM AI Fire Mission Function Initiates player-requested SRBM fire mission for friendly SRBM launchers. Can be scripted for mission-driven "RED DAWN" or "SEARCH AND DESTROY" SRBM fire missions (e.g. "Stop General Guba before he launches the missiles" type missions). Author: hcpookie Arguments: ========== 0: The player calling the mission 1: The SRBM ammo type being requested (OPTIONAL: default = HE) 2: Range (in km) to check for friendly launchers (OPTIONAL: default = 20) 3: OPTIONAL: Map grid coordinates for first salvo. Uses standard coordinate format (ex. [0,0,0]). 4: OPTIONAL: Map grid coordinates for second salvo. Uses standard coordinate format (ex. [0,0,0]). USAGE: ====== 1. Place AI SRBM launcher via editor, or spawn within mission. The function supports types: - pook_9K720 - pook_9K720K - pook_K300P - pook_4K51 - pook_3K60 - pook_9K52 - pook_BGM109_VLS 2. Either "addAction" for desired ammo type to a Commander/Spotter/Radio operator, etc. Note that the ammo type values are CASE-SENSITIVE: you must use "HE" and not "he" HE: ---- this addAction ["SRBM Mission", {[player, "HE", 20] spawn pook_ARTY_FNC_SRBMMISSION},"",1,false,true]; - or - this addAction ["SRBM Mission", {[player] spawn pook_ARTY_FNC_SRBMMISSION},"",1,false,true]; - or - this addAction ["SRBM Mission", {[player, "HE, 20, [7088.1,3146.17,0]] spawn pook_ARTY_FNC_SRBMMISSION},"",1,false,true]; CBU: ---- this addAction ["SRBM Mission", {[player, "CBU", 15] spawn pook_ARTY_FNC_SRBMMISSION},"",1,false,true]; 5KT: (use either "5KT" or "NUK") ---- this addAction ["SRBM Mission", {[player, "5KT", 5] spawn pook_ARTY_FNC_SRBMMISSION},"",1,false,true]; ... You may replace "player" with the object's "Variable Name" (in the editor) depending on your scripting needs. ... Or via trigger/script for the artillery vehicle: _launch = [this, "HE"] spawn pook_ARTY_FNC_SRBMMISSION; 3. OPTIONAL: The third input parameter defines the search radius to seek friendly launch-capable SRBM launchers. Default is 20km. This can be adjusted to accommodate multiple launchers in the same mission. For example, if a specific artillery unit must be used by a specific team, they can be placed so that the search only finds them vs. any other artillery units that may be planned for use in the mission at a later point. 4. OPTIONAL: Map grid Coordinates for first salvo. Uses standard coordinate format (ex. [0,0,0]). May be used for scripting purposes. If not found, operator will prompted for map-click coordinates (for both salvos). 5. OPTIONAL: Map grid Coordinates for second salvo. Uses standard coordinate format (ex. [0,0,0]). May be used for scripting purposes. 6. AI will ready the launcher (raise launch tubes), arm and launch the missile. 7. This script has no Rearm option! Launcher rearm can only be achieved via rearm vehicles. RETURN: ======= - AI will send sideRadio and sideChat notices confirming fire mission or reporting status if out of ammo, or no friendly SRBM launchers are in the area (default 20km zone) NOTES: ====== - Cannot be used for human-controlled launchers. - Launch command cannot be aborted! - The SRBM launcher is calibrated to Real World values, and can launch anywhere between 1-300km - Assumes multi-silo launcher is in use, and therefore employs a 2-missile launch procedure. Single-silo launchers or launchers with partially depleted magazines may cause non-critical in-game errors if there are no missiles to fire at the 2nd target coordinate.