Spearhead 1944 Indirect Fire Support (IFS): Difference between revisions
(15 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Feature|important|The content of this page was generated by script. Manual edits might get lost.}} | {{Feature|important|The content of this page was generated by script. Manual edits might get lost.}} | ||
{{TOC|side}} | {{TOC|side}} | ||
{{ | === Overview === | ||
The Indirect Fire Support system provides battlefield support in various forms: mortars, artillery, CAS, and even direct support from nearby tanks. | |||
The support occurs both by player call-in requests, as well as automatically, and is based on the available intel of enemy threats and capabilities in any given moment. | |||
=== Usage === | |||
When activated via module or functions, the system operates the autonomous form of fire support in the background, depending on indirect fire support assets present in the scenario and mission setup without any action required from the player. That said, by spotting enemy units and vehicles, players, as well as friendly AI forces, will effectively provide information about possible targets to the allied supporting assets, which may affect their decision-making and behavior. | |||
The called-in form of indirect fire support is under the player's direct control. What operations are available and any limits to the activities depend on the mission-specific setup. By using the action menu and hold actions, players can call in mortar, artillery, or CAS support or ask nearby allied tanks for direct fire support. Players can also send a request for emergency fire support that's provided by any available asset at a given moment. | |||
=== Detailed information === | |||
Autonomous fire support for all sides is based on the presence of the artillery assets in the scenario and CAS presence defined in the mission setup. Amongst known enemy units and vehicles, the most tempting targets are chosen when an allied unit is at the appropriate distance to serve as the forward operator (FO). Potential targets must also meet a few additional requirements - including low enough risk for friendly fire. | |||
When the target is accepted, the allocated artillery asset will start the aim procedure, which takes around 20 seconds, in order to take into account the target's movement vector with the assumption that it will continue to move. | |||
Autonomous artillery barrage is a subject of both general aim error and individual round spread. Depending on the mission setup, usually, the main firing action is preceded by a single spotting round - and in the case of players under threat, a few notifications about the incoming fire. | |||
Meanwhile the called-in artillery support is fired at the location requested by the original caller. However, each round is still subjected to a statistical spread, leading to certain inaccuracy. | |||
Via mission setup, certain areas or objects may be blacklisted. As a result, calling fire support to strike those will be impossible. The same applies to the immediate vicinity of the caller. | |||
CAS fire support, both autonomous and called-in, works in a similar way. Typically, though, it's much more precise against moving vehicles since the pilot can correct his aim till the last moment. | |||
Emergency support calls are meant as a desperate last resort. The first available support provider of any type will automatically pick a hostile target near the caller that seems the most threatening, without any friendly fire avoidance - so beware. It's also possible there will be no available support at all. | |||
In general, depending on mission setup and game difficulty, called-in fire support will have various usage conditions and limitations, including radio availability, amount of calls, time interval between the calls, or inability to call the same type of support many times simultaneously. The current status of support availability, if any is present at all, is shown directly in the action menu. | |||
Finally, if the player is close enough to an allied tank, it may be possible to point the tank gunner to a target and engage via the action menu. | |||
=== Configuration === | |||
Mission parameters may allow customization of certain elements of the system for the given play-session in multiplayer mode. | |||
=== Mission maker setup and use === | |||
The advanced customization of IFS is possible via the module to a large extent and even more so via scripting | |||
Detailed documentation is found on the [[Spearhead 1944]]. | |||
=== Indirect Fire Support === | |||
During the game, you may encounter or cause various indirect fire support events.<br/><br/>Soldiers present on the battlefield, AI and players alike, will automatically report spotted hostile targets to HQ. HQ, according to its own judgment, may issue orders to attack a worthy target with its own artillery or aerial asset if present and not busy elsewhere.<br/><br/>Sometimes, players also have the possibility to call in such support directly. | |||
{{Feature|informative|When caught by an incoming artillery barrage, your best friends are - hardcover, keeping your head down, and distance.}} | |||
=== Called-in Fire Support === | |||
Select and hold a support action to call in the chosen type of support to a position or target in the middle of the screen.<br/><br/>Avoid requesting support too close to your own or allied positions - ordnance has a considerable blast radius and spread. | |||
{{Feature|informative|Red aiming helpers visible on the screen while holding an action can also be displayed via the {{hl|"T"}} key.}} | |||
= MissionNamespace Variables = | = MissionNamespace Variables = | ||
== | == IFS == | ||
=== SPE_IFS_2PhWithoutFO === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 12: | Line 50: | ||
'''Default Value:'''<sqf inline>false</sqf> | '''Default Value:'''<sqf inline>false</sqf> | ||
'''Description:''' | '''Description:''' If SPE_IFS_FO is not empty, arty fire mission is divided into two phases. First phase is less accurate and less numerous (probing fire). If this variable is true, two-phase fire is used also without a "proper" FO from SPE_IFS_FO array | ||
If SPE_IFS_FO is not empty, arty fire mission is divided into two phases. First phase is less accurate and less numerous (probing fire). If this variable is true, two-phase fire is used also without a "proper" FO from SPE_IFS_FO array | |||
== SPE_IFS_aacapableassets == | === SPE_IFS_aacapableassets === | ||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 22: | Line 59: | ||
'''Default Value:'''<sqf inline>["spe_flak_30","spe_flak_38","spe_us_m16_halftrack","spe_m45_quadmount"]</sqf> | '''Default Value:'''<sqf inline>["spe_flak_30","spe_flak_38","spe_us_m16_halftrack","spe_m45_quadmount"]</sqf> | ||
'''Description:''' | '''Description:''' Assets that are capable of AA. | ||
== SPE_IFS_aadefaulttemptation == | <!-- | ||
=== SPE_IFS_aadefaulttemptation === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 31: | Line 69: | ||
'''Description:''' | '''Description:''' | ||
== SPE_IFS_acc == | Internal use. --> | ||
=== SPE_IFS_acc === | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 38: | Line 78: | ||
'''Default Value:'''<sqf inline>2</sqf> | '''Default Value:'''<sqf inline>2</sqf> | ||
'''Description:''' | '''Description:''' General accuracy multiplier. Aiming error is multiplied by this value. Set to 0 for spot-on salvo aim (but individual round spread still is present). | ||
General accuracy multiplier. Aiming error is multiplied by this value. Set to 0 for spot-on salvo aim (but individual round spread still is present) | |||
== | === SPE_IFS_acceptedRadioBackpacks === | ||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 47: | Line 87: | ||
'''Default Value:'''<sqf inline>["b_spe_ger_radio","b_spe_us_radio","b_spe_us_radio_alt","b_spe_us_radio_packboard","b_spe_us_radio_packboard_light"]</sqf> | '''Default Value:'''<sqf inline>["b_spe_ger_radio","b_spe_us_radio","b_spe_us_radio_alt","b_spe_us_radio_packboard","b_spe_us_radio_packboard_light"]</sqf> | ||
'''Description:''' | '''Description:''' Backpacks considered as proper radio backpack for requested support calls requirement (all lower case!). | ||
== SPE_IFS_active == | |||
=== SPE_IFS_active === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 55: | Line 96: | ||
'''Default Value:'''<sqf inline>true</sqf> | '''Default Value:'''<sqf inline>true</sqf> | ||
'''Description:''' | '''Description:''' If false, IFS main loop will exit permanently. | ||
If false, IFS main loop will exit permanently | |||
== SPE_IFS_add_mortar == | <!-- === SPE_IFS_add_mortar === | ||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 64: | Line 105: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Not in use. --> | ||
== SPE_IFS_add_other == | |||
<!-- === SPE_IFS_add_other === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 72: | Line 114: | ||
'''Default Value:'''<sqf inline>[[["spe_grw278_1"],["SPE_8Rnd_81mm_FA_Mle_1932_HE","","","SPE_8Rnd_81mm_FA_Mle_1932_Smoke","SPE_8Rnd_81mm_FA_Mle_1932_Illu"]],[["spe_lefh18"],["SPE_20x_Shell_105L28_Gr38_HE","","","SPE_20x_Shell_105L28_Gr38_NB",""]],[["spe_m1_81"],["SPE_8Rnd_81mmHE_M1_M43A1","SPE_8Rnd_81mmWP_M1_M57","","SPE_8rnd_81mm_M1_M57_SmokeShell",""]],[["spe_m4a1_t34_calliope"],["SPE_60Rnd_M8","","","",""]]]</sqf> | '''Default Value:'''<sqf inline>[[["spe_grw278_1"],["SPE_8Rnd_81mm_FA_Mle_1932_HE","","","SPE_8Rnd_81mm_FA_Mle_1932_Smoke","SPE_8Rnd_81mm_FA_Mle_1932_Illu"]],[["spe_lefh18"],["SPE_20x_Shell_105L28_Gr38_HE","","","SPE_20x_Shell_105L28_Gr38_NB",""]],[["spe_m1_81"],["SPE_8Rnd_81mmHE_M1_M43A1","SPE_8Rnd_81mmWP_M1_M57","","SPE_8rnd_81mm_M1_M57_SmokeShell",""]],[["spe_m4a1_t34_calliope"],["SPE_60Rnd_M8","","","",""]]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_add_rocket == | <!-- | ||
=== SPE_IFS_add_rocket === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 80: | Line 123: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' --> | ||
== SPE_IFS_add_spmortar == | <!-- | ||
=== SPE_IFS_add_spmortar === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 88: | Line 132: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_addammo == | <!-- | ||
=== SPE_IFS_addammo === | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 96: | Line 141: | ||
'''Default Value:'''<sqf inline>1</sqf> | '''Default Value:'''<sqf inline>1</sqf> | ||
'''Description:''' | '''Description:''' --> | ||
== SPE_IFS_advhintsallshown == | |||
<!-- === SPE_IFS_advhintsallshown === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 104: | Line 150: | ||
'''Default Value:'''<sqf inline>false</sqf> | '''Default Value:'''<sqf inline>false</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_ahint_basics_shown == | |||
<!-- === SPE_IFS_ahint_basics_shown === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 112: | Line 159: | ||
'''Default Value:'''<sqf inline>true</sqf> | '''Default Value:'''<sqf inline>true</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
=== SPE_IFS_AIBombHelper_disable === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 120: | Line 168: | ||
'''Default Value:'''<sqf inline>true</sqf> | '''Default Value:'''<sqf inline>true</sqf> | ||
'''Description:''' | '''Description:''' In the performance-friendly CAS mode, if false, Ai Bomb Helper will be responsible for guiding CAS bombs on target. If true - bombs will be guided by different code, which guides rockets and MG bullets. In the each frame CAS mode, bombs are not guided. | ||
== SPE_IFS_allarty == | <!-- | ||
=== SPE_IFS_allarty === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 129: | Line 178: | ||
'''Description:''' | '''Description:''' | ||
== SPE_IFS_allbullets == | Internal use. --> | ||
<!-- | |||
=== SPE_IFS_allbullets === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 137: | Line 188: | ||
'''Description:''' | '''Description:''' | ||
== | Internal use. --> | ||
=== SPE_IFS_allowAdvancedHints === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 144: | Line 197: | ||
'''Default Value:'''<sqf inline>true</sqf> | '''Default Value:'''<sqf inline>true</sqf> | ||
'''Description:''' | '''Description:''' Should IFS-specific advanced hints be displayed (switch false, when not, switch true, when allowed). | ||
== | |||
=== SPE_IFS_allowMortarsAgainstTanks === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 152: | Line 206: | ||
'''Default Value:'''<sqf inline>false</sqf> | '''Default Value:'''<sqf inline>false</sqf> | ||
'''Description:''' | '''Description:''' Should mortars be considered to fire at tanks. | ||
== SPE_IFS_allprojectiles == | <!-- | ||
=== SPE_IFS_allprojectiles === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 161: | Line 216: | ||
'''Description:''' | '''Description:''' | ||
== SPE_IFS_allprojectiles_ger == | Internal use. --> | ||
<!-- | |||
=== SPE_IFS_allprojectiles_ger === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 168: | Line 225: | ||
'''Default Value:'''<sqf inline>["","spe_sc250_timed_short_bomb","spe_sc250_timed_short_bomb_submunition","spe_sc50_timed_short_bomb","spe_sc50_timed_short_bomb_submunition","spe_s_105l28_gr38","spe_b_20x82_he","spe_b_13x64_hei","spe_sh_81_he","spe_sh_fa_mle_1932_he"]</sqf> | '''Default Value:'''<sqf inline>["","spe_sc250_timed_short_bomb","spe_sc250_timed_short_bomb_submunition","spe_sc50_timed_short_bomb","spe_sc50_timed_short_bomb_submunition","spe_s_105l28_gr38","spe_b_20x82_he","spe_b_13x64_hei","spe_sh_81_he","spe_sh_fa_mle_1932_he"]</sqf> | ||
'''Description:''' | '''Description:''' --> | ||
== SPE_IFS_allprojectiles_us == | <!-- | ||
=== SPE_IFS_allprojectiles_us === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 176: | Line 234: | ||
'''Default Value:'''<sqf inline>["","spe_r_m8","spe_r_m8_a3_module","spe_r_m8_a3","spe_r_m8_fly","spe_us_500lb_timed_short_bomb","spe_us_500lb_timed_short_bomb_submunition","spe_b_127x99_api_plane","spe_sh_m43a1_81_he","spe_sh_m43a1_81_he_submunition"]</sqf> | '''Default Value:'''<sqf inline>["","spe_r_m8","spe_r_m8_a3_module","spe_r_m8_a3","spe_r_m8_fly","spe_us_500lb_timed_short_bomb","spe_us_500lb_timed_short_bomb_submunition","spe_b_127x99_api_plane","spe_sh_m43a1_81_he","spe_sh_m43a1_81_he_submunition"]</sqf> | ||
'''Description:''' | '''Description:''' --> | ||
== SPE_IFS_amount == | |||
=== SPE_IFS_amount === | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 184: | Line 243: | ||
'''Default Value:'''<sqf inline>6</sqf> | '''Default Value:'''<sqf inline>6</sqf> | ||
'''Description:''' | '''Description:''' Default number of shells per arty fire mission. | ||
== | |||
=== SPE_IFS_amountMultiplier === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 192: | Line 252: | ||
'''Default Value:'''<sqf inline>[[1,1,1],[0.33,0.5,1]]</sqf> | '''Default Value:'''<sqf inline>[[1,1,1],[0.33,0.5,1]]</sqf> | ||
'''Description:''' | '''Description:''' Shells per arty fire mission amount multiplier [mortars,heavy arty] (final amount is rounded up) each for [infantry,soft,tank-or-artillery] targets. | ||
== | |||
=== SPE_IFS_areaBlacklist === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 200: | Line 261: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' No target within included areas will become a target of IFS. Also IFS will try to avoid any shells dropping inside those areas. No 100% warranty. Accepted are all entries handled by [[inArea]] command (trigger, marker, location or [center, a, b, angle, isRectangle, c] array). If object is given as a center, area will be each check updated depending on object's position. | ||
== | |||
=== SPE_IFS_art_spawnDirection === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 208: | Line 270: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' An azimuth direction in degrees/bearing, the requested heavy artillery fire will come from. Format [bearing,spread]. Formula used: ((_bearing - _spread) + (random (_spread * 2))). Leave empty array to spawn arty fire "from behind the requestor". | ||
== | |||
=== SPE_IFS_artyActive === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 216: | Line 279: | ||
'''Default Value:'''<sqf inline>true</sqf> | '''Default Value:'''<sqf inline>true</sqf> | ||
'''Description:''' | '''Description:''' Artillery component switch (pending fire missions will continue if turned off). | ||
Artillery component switch (pending fire missions will continue if turned off) | |||
== | === SPE_IFS_artyAvailability_side === | ||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 225: | Line 288: | ||
'''Default Value:'''<sqf inline>[WEST,EAST,GUER]</sqf> | '''Default Value:'''<sqf inline>[WEST,EAST,GUER]</sqf> | ||
'''Description:''' | '''Description:''' Players of which sides can request heavy artillery and mortar support. | ||
== | |||
=== SPE_IFS_artyAvailability_specific === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 242: | Line 306: | ||
"((crew (vehicle _unit)) findIf {((_x getVariable ['SPE_IFS_Transmitter',false]) or {((toLower (backpack _x)) in SPE_IFS_AcceptedRadioBackpacks) or {[_x] call SPE_fnc_IFS_hasRadio}})} >= 0)", | "((crew (vehicle _unit)) findIf {((_x getVariable ['SPE_IFS_Transmitter',false]) or {((toLower (backpack _x)) in SPE_IFS_AcceptedRadioBackpacks) or {[_x] call SPE_fnc_IFS_hasRadio}})} >= 0)", | ||
"((_unit nearEntities [['Tank_F'],((vehicle _unit) getVariable ['SPE_IFS_ArtyAvTransmitterDst',SPE_IFS_ArtyAvTransmitterDst]) select (missionNamespace getVariable ['SPE_CDA_currentDifficulty',difficulty])]) findIf {((side _unit) getFriend (side _x)) >= 0.6}) >= 0", | "((_unit nearEntities [['Tank_F'],((vehicle _unit) getVariable ['SPE_IFS_ArtyAvTransmitterDst',SPE_IFS_ArtyAvTransmitterDst]) select (missionNamespace getVariable ['SPE_CDA_currentDifficulty',difficulty])]) findIf {((side _unit) getFriend (side _x)) >= 0.6}) >= 0", | ||
"((_unit nearEntities [['CAManBase'],((vehicle _unit) getVariable ['SPE_IFS_ArtyAvTransmitterDst',SPE_IFS_ArtyAvTransmitterDst]) select (missionNamespace getVariable ['SPE_CDA_currentDifficulty',difficulty])]) findIf {(_x isEqualTo (leader _unit)) or (((toLower (backpack _x)) in SPE_IFS_AcceptedRadioBackpacks) and {(((side _unit) getFriend (side _x)) >= 0.6) and {not ((side _x) in [civilian,sideFriendly,sideLogic])}})}) >= 0","((_unit nearEntities [['CAManBase','LandVehicle'],((vehicle _unit) getVariable ['SPE_IFS_ArtyAvTransmitterDst',SPE_IFS_ArtyAvTransmitterDst]) select (missionNamespace getVariable ['SPE_CDA_currentDifficulty',difficulty])]) findIf {(_x getVariable ['SPE_IFS_Transmitter',false]) and {(((side _unit) getFriend (side _x)) >= 0.6) and {not ((side _x) in [civilian,sideFriendly,sideLogic])}}}) >= 0" | "((_unit nearEntities [['CAManBase'],((vehicle _unit) getVariable ['SPE_IFS_ArtyAvTransmitterDst',SPE_IFS_ArtyAvTransmitterDst]) select (missionNamespace getVariable ['SPE_CDA_currentDifficulty',difficulty])]) findIf {(_x isEqualTo (leader _unit)) or (((toLower (backpack _x)) in SPE_IFS_AcceptedRadioBackpacks) and {(((side _unit) getFriend (side _x)) >= 0.6) and {not ((side _x) in [civilian,sideFriendly,sideLogic])}})}) >= 0", | ||
"((_unit nearEntities [['CAManBase','LandVehicle'],((vehicle _unit) getVariable ['SPE_IFS_ArtyAvTransmitterDst',SPE_IFS_ArtyAvTransmitterDst]) select (missionNamespace getVariable ['SPE_CDA_currentDifficulty',difficulty])]) findIf {(_x getVariable ['SPE_IFS_Transmitter',false]) and {(((side _unit) getFriend (side _x)) >= 0.6) and {not ((side _x) in [civilian,sideFriendly,sideLogic])}}}) >= 0" | |||
] | ] | ||
</sqf> | </sqf> | ||
'''Description:''' | '''Description:''' | ||
Each entry in the array is a condition. If one of these conditions returns [[true]], the [[player]] has access to IFS. | Each entry in the array is a condition. If one of these conditions returns [[true]], the [[player]] has access to IFS. Inside each condition the special variable {{hl|_unit}} is available. | ||
'''Conditions:''' | |||
# Checks if the player is set to be a transmitter via scripting. | |||
# Checks if the player's vehicle is set to be a transmitter via scripting. | |||
# Checks if the player is group leader. | |||
# Checks if the player has a whitelisted radio backpack. | |||
# Checks if the player has a radio item. | |||
# Checks if the player is in a tank. Tanks always have radios. | |||
# Checks if one of the units that is in the same vehicle as the player either is a transmitter, has a radio backpack or has a radio item. | |||
# Checks if a friendly vehicle (not civilian) is in reach of the unit. Distance is based on difficulty. | |||
# Checks if a nearby friendly unit or vehicle (not civilian) can be used to relay a message. Distance is based on difficulty. | |||
'''Modification:''' | |||
{{hl|SPE_IFS_artyAvailability_specific}} can be modified to suit your needs. Just remove all entries that are not wanted, or add custom conditions to it. | |||
For performance reasons it's recommended to put less performance intense condition at the front of the array and vise versa. | |||
<sqf> | |||
// Make actions available if player has one of the radio backpacks set in the module | |||
missionNamespace setVariable | |||
[ | |||
"SPE_IFS_artyAvailability_specific", | |||
[ | |||
"((toLower (backpack _unit)) in SPE_IFS_AcceptedRadioBackpacks)" | |||
], | |||
true | |||
]; | |||
</sqf> | |||
<sqf> | |||
// Make actions available if player is in a specific vehicle | |||
missionNamespace setVariable | |||
[ | |||
"SPE_IFS_artyAvailability_specific", | |||
[ | |||
"vehicle player isEqualTo MHQ" | |||
], | |||
true | |||
]; | |||
</sqf> | |||
== | === SPE_IFS_artyAVTransmitterDst === | ||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 266: | Line 361: | ||
'''Default Value:'''<sqf inline>[50,25,5,5,5]</sqf> | '''Default Value:'''<sqf inline>[50,25,5,5,5]</sqf> | ||
'''Description:''' | '''Description:''' Transmitter proximity threshold in meters for support call availability per difficulty: [0 (recruit),1 (regular),2 (veteran),3 (hardcore),4 (custom)] | ||
== | |||
=== SPE_IFS_availableCalls === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 274: | Line 370: | ||
'''Default Value:'''<sqf inline>[[-1,-1,-1],[-1,-1,-1],[-1,-1,-1],[-1,-1,-1]]</sqf> | '''Default Value:'''<sqf inline>[[-1,-1,-1],[-1,-1,-1],[-1,-1,-1],[-1,-1,-1]]</sqf> | ||
'''Description:''' | '''Description:''' How many calls are available per side in format [east, west, independent, civilian] and [mortar, artillery, CAS]. | ||
== SPE_IFS_batterymarkers == | <!-- | ||
=== SPE_IFS_batterymarkers === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 283: | Line 380: | ||
'''Description:''' | '''Description:''' | ||
== | Internal use. --> | ||
<!-- === SPE_IFS_cadetDifficulty === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 290: | Line 389: | ||
'''Default Value:'''<sqf inline>true</sqf> | '''Default Value:'''<sqf inline>true</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_calledsupportproviders == | <!-- | ||
=== SPE_IFS_calledsupportproviders === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 299: | Line 399: | ||
'''Description:''' | '''Description:''' | ||
== | Internal use. --> | ||
=== SPE_IFS_calledSupportsPermanent === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 306: | Line 408: | ||
'''Default Value:'''<sqf inline>true</sqf> | '''Default Value:'''<sqf inline>true</sqf> | ||
'''Description:''' | '''Description:''' If SPE_IFS_calledSupportsUI is 1, this will make call actions always visible, instead of add-remove it will adjust the action's name and result of use depending on support availability status. | ||
== SPE_IFS_calledsupportsui == | <!-- | ||
=== SPE_IFS_calledsupportsui === | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 314: | Line 417: | ||
'''Default Value:'''<sqf inline>1</sqf> | '''Default Value:'''<sqf inline>1</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_cas_aimerror == | <!-- | ||
=== SPE_IFS_cas_aimerror === | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 323: | Line 427: | ||
'''Description:''' | '''Description:''' | ||
== SPE_IFS_cas_aimerrorspread == | Internal use. --> | ||
<!-- | |||
=== SPE_IFS_cas_aimerrorspread === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 331: | Line 437: | ||
'''Description:''' | '''Description:''' | ||
== SPE_IFS_cas_currentplanes == | Internal use. --> | ||
<!-- | |||
=== SPE_IFS_cas_currentplanes === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 339: | Line 447: | ||
'''Description:''' | '''Description:''' | ||
== | Internal use. --> | ||
=== SPE_IFS_cas_dontTrackPlayersInCadet === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 346: | Line 456: | ||
'''Default Value:'''<sqf inline>[EAST,WEST,GUER,CIV]</sqf> | '''Default Value:'''<sqf inline>[EAST,WEST,GUER,CIV]</sqf> | ||
'''Description:''' | '''Description:''' A CAS plane will not correct the aim against moving vehicles with players of included sides in cadet mode. | ||
== SPE_IFS_cas_efh == | <!-- | ||
=== SPE_IFS_cas_efh === | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 354: | Line 465: | ||
'''Default Value:'''<sqf inline>20</sqf> | '''Default Value:'''<sqf inline>20</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
=== SPE_IFS_cas_horribleMode === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 362: | Line 474: | ||
'''Default Value:'''<sqf inline>true</sqf> | '''Default Value:'''<sqf inline>true</sqf> | ||
'''Description:''' | '''Description:''' If [[true]], CAS will be performed using more performance-friendly function with limited weaponry and "homing" bombs | ||
If true, CAS will be performed using more performance-friendly function with limited weaponry and "homing" bombs | <!-- | ||
== SPE_IFS_cas_id == | === SPE_IFS_cas_id === | ||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 371: | Line 483: | ||
'''Default Value:'''<sqf inline>2</sqf> | '''Default Value:'''<sqf inline>2</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
=== SPE_IFS_cas_originObjects === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 379: | Line 492: | ||
'''Default Value:'''<sqf inline>[[],[],[],[]]</sqf> | '''Default Value:'''<sqf inline>[[],[],[],[]]</sqf> | ||
'''Description:''' | '''Description:''' Per side: [east,west,resistance,any other]. If a subarray holds any objects (for example "dummy" planes on airfields or invisible objects), their positions (distance) will define base requested CAS availability delay and overwrite SPE_IFS_EmergencyCASDelay value. Picked will be origin object closest to player or target. Added delay is 1 second per 100m of distance between the origin and the target. | ||
Per side: [east,west,resistance,any other]. If a subarray holds any objects (for example "dummy" planes on airfields or invisible objects), their positions (distance) will define base requested CAS availability delay and overwrite SPE_IFS_EmergencyCASDelay value. Picked will be origin object closest to player or target. Added delay is 1 second per 100m of distance between the origin and the target. | |||
== | === SPE_IFS_CAS_spawnDirection === | ||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 388: | Line 501: | ||
'''Default Value:'''<sqf inline>[180,180]</sqf> | '''Default Value:'''<sqf inline>[180,180]</sqf> | ||
'''Description:''' | '''Description:''' An azimuth direction in degrees/bearing, the CAS plane will come from. Format [bearing,spread]. Formula used: ((_bearing - _spread) + (random (_spread * 2))) | ||
An azimuth direction in degrees/bearing, the CAS plane will come from. Format [bearing,spread]. Formula used: ((_bearing - _spread) + (random (_spread * 2))) | |||
== | === SPE_IFS_CAS_spawnDistance === | ||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 397: | Line 510: | ||
'''Default Value:'''<sqf inline>[3000,3000,3000]</sqf> | '''Default Value:'''<sqf inline>[3000,3000,3000]</sqf> | ||
'''Description:''' | '''Description:''' Distance at which planes will spawn from target. How far from a target CAS plane will be spawned. Format: [min,average,max]. Values below 1000 will default to 1000. Closer means also lower - to keep constant approach pitch/incoming vertical angle, spawning altitude equals ~distance/3. | ||
How far from a target CAS plane will be spawned. Format: [min,average,max]. Values below 1000 will default to 1000. Closer means also lower - to keep constant approach pitch/incoming vertical angle, spawning altitude equals ~distance/3. | |||
== SPE_IFS_cas_speedlimit == | === SPE_IFS_cas_speedlimit === | ||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 406: | Line 519: | ||
'''Default Value:'''<sqf inline>400</sqf> | '''Default Value:'''<sqf inline>400</sqf> | ||
'''Description:''' | '''Description:''' Maximum speed in km/h of planes. | ||
== | |||
=== SPE_IFS_CASActive === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 414: | Line 528: | ||
'''Default Value:'''<sqf inline>true</sqf> | '''Default Value:'''<sqf inline>true</sqf> | ||
'''Description:''' | '''Description:''' CAS component switch (pending CAS missions will continue if turned off) | ||
CAS component switch (pending CAS missions will continue if turned off) | |||
== | === SPE_IFS_CASActivity === | ||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 423: | Line 537: | ||
'''Default Value:'''<sqf inline>[[0,60,300,0,0,[],[],0],[0.1,60,300,1,2,["SPE_FW190F8",1],[],0],[0.25,10,300,1,-1,["SPE_P47",1],[],0],[0,60,300,0,0,[],[],0]]</sqf> | '''Default Value:'''<sqf inline>[[0,60,300,0,0,[],[],0],[0.1,60,300,1,2,["SPE_FW190F8",1],[],0],[0.25,10,300,1,-1,["SPE_P47",1],[],0],[0,60,300,0,0,[],[],0]]</sqf> | ||
'''Description:''' | '''Description:''' Ambient CAS configuration. [[east],[west],[independent],[civilian]]: [new spawn probability, interval since last spawn, supporting time, max planes simultaneously, total planes limit (-1 for unlimited), planes pool, current planes, last spawn time]. Requested CAS doesn't count for any limits. | ||
== | |||
=== SPE_IFS_CASAvailability_side === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 431: | Line 546: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Players of which sides can request CAS support. | ||
== SPE_IFS_casweaponrytable_civ_ambient == | <!-- | ||
=== SPE_IFS_casweaponrytable_civ_ambient === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 439: | Line 555: | ||
'''Default Value:'''<sqf inline>[[0,1],[0,1],[0,1],[0,1],[0,1]]</sqf> | '''Default Value:'''<sqf inline>[[0,1],[0,1],[0,1],[0,1],[0,1]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_casweaponrytable_civ_emergency == | <!-- | ||
=== SPE_IFS_casweaponrytable_civ_emergency === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 447: | Line 564: | ||
'''Default Value:'''<sqf inline>[[0,1],[0,1]]</sqf> | '''Default Value:'''<sqf inline>[[0,1],[0,1]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_casweaponrytable_civ_requested == | <!-- | ||
=== SPE_IFS_casweaponrytable_civ_requested === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 455: | Line 573: | ||
'''Default Value:'''<sqf inline>[[0,1],[0,1],[0,1],[0,1],[0,1]]</sqf> | '''Default Value:'''<sqf inline>[[0,1],[0,1],[0,1],[0,1],[0,1]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_casweaponrytable_east_ambient == | <!-- | ||
=== SPE_IFS_casweaponrytable_east_ambient === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 463: | Line 582: | ||
'''Default Value:'''<sqf inline>[[0,1],[0,1],[0,1],[0,1],[0,1]]</sqf> | '''Default Value:'''<sqf inline>[[0,1],[0,1],[0,1],[0,1],[0,1]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_casweaponrytable_east_emergency == | <!-- | ||
=== SPE_IFS_casweaponrytable_east_emergency === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 471: | Line 591: | ||
'''Default Value:'''<sqf inline>[[0,1],[0,1]]</sqf> | '''Default Value:'''<sqf inline>[[0,1],[0,1]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_casweaponrytable_east_requested == | <!-- | ||
=== SPE_IFS_casweaponrytable_east_requested === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 479: | Line 600: | ||
'''Default Value:'''<sqf inline>[[0,1],[0,1],[0,1],[0,1],[0,1]]</sqf> | '''Default Value:'''<sqf inline>[[0,1],[0,1],[0,1],[0,1],[0,1]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_casweaponrytable_ind_ambient == | <!-- | ||
=== SPE_IFS_casweaponrytable_ind_ambient === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 487: | Line 609: | ||
'''Default Value:'''<sqf inline>[[1,0.25,3,0.75],[0,0.1,1,0.15,2,0.25,3,0.5],[0,0.15,1,0.2,2,0.25,3,0.4],[0,0.9,1,0.1,2,0,3,0]]</sqf> | '''Default Value:'''<sqf inline>[[1,0.25,3,0.75],[0,0.1,1,0.15,2,0.25,3,0.5],[0,0.15,1,0.2,2,0.25,3,0.4],[0,0.9,1,0.1,2,0,3,0]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_casweaponrytable_ind_emergency == | <!-- | ||
=== SPE_IFS_casweaponrytable_ind_emergency === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 495: | Line 618: | ||
'''Default Value:'''<sqf inline>[[1,0.25,3,0.75],[1,0.75,3,0.25]]</sqf> | '''Default Value:'''<sqf inline>[[1,0.25,3,0.75],[1,0.75,3,0.25]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_casweaponrytable_ind_requested == | <!-- | ||
=== SPE_IFS_casweaponrytable_ind_requested === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 503: | Line 627: | ||
'''Default Value:'''<sqf inline>[[0,0.15,1,0.2,2,0.25,3,0.4],[1,0.25,3,0.75],[0,0.1,1,0.15,2,0.25,3,0.5],[0,0.15,1,0.2,2,0.25,3,0.4],[0,0.9,1,0.1,2,0,3,0]]</sqf> | '''Default Value:'''<sqf inline>[[0,0.15,1,0.2,2,0.25,3,0.4],[1,0.25,3,0.75],[0,0.1,1,0.15,2,0.25,3,0.5],[0,0.15,1,0.2,2,0.25,3,0.4],[0,0.9,1,0.1,2,0,3,0]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_casweaponrytable_west_ambient == | <!-- | ||
=== SPE_IFS_casweaponrytable_west_ambient === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 511: | Line 636: | ||
'''Default Value:'''<sqf inline>[[2,0.1,3,0.9],[0,0.1,1,0.15,2,0.25,3,0.5],[0,0.15,1,0.2,2,0.25,3,0.4],[0,0.5,1,0.5,2,0,3,0]]</sqf> | '''Default Value:'''<sqf inline>[[2,0.1,3,0.9],[0,0.1,1,0.15,2,0.25,3,0.5],[0,0.15,1,0.2,2,0.25,3,0.4],[0,0.5,1,0.5,2,0,3,0]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_casweaponrytable_west_emergency == | <!-- | ||
=== SPE_IFS_casweaponrytable_west_emergency === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 519: | Line 645: | ||
'''Default Value:'''<sqf inline>[[3,1],[2,0.75,3,0.25]]</sqf> | '''Default Value:'''<sqf inline>[[3,1],[2,0.75,3,0.25]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_casweaponrytable_west_requested == | <!-- | ||
=== SPE_IFS_casweaponrytable_west_requested === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 527: | Line 654: | ||
'''Default Value:'''<sqf inline>[[0,0.15,1,0.2,2,0.25,3,0.4],[2,0.1,3,0.9],[0,0.1,1,0.15,2,0.25,3,0.5],[0,0.15,1,0.2,2,0.25,3,0.4],[0,0.5,1,0.5,2,0,3,0]]</sqf> | '''Default Value:'''<sqf inline>[[0,0.15,1,0.2,2,0.25,3,0.4],[2,0.1,3,0.9],[0,0.1,1,0.15,2,0.25,3,0.5],[0,0.15,1,0.2,2,0.25,3,0.4],[0,0.5,1,0.5,2,0,3,0]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_checkedpotentialartyclasses == | |||
<!-- === SPE_IFS_checkedpotentialartyclasses === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 535: | Line 663: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
=== SPE_IFS_counterBatteryFireisPriority === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 543: | Line 672: | ||
'''Default Value:'''<sqf inline>true</sqf> | '''Default Value:'''<sqf inline>true</sqf> | ||
'''Description:''' | '''Description:''' If there's known enemy artillery and this is [[true]], counter-battery fire takes priority over opportunity fire against other targets. | ||
== SPE_AIS_IFS_DebugSwitch == | |||
=== SPE_AIS_IFS_DebugSwitch === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 551: | Line 681: | ||
'''Default Value:'''<sqf inline>false</sqf> | '''Default Value:'''<sqf inline>false</sqf> | ||
'''Description:''' | '''Description:''' General debug switch. For any debugging to work, this needs to be [[true]]. | ||
General debug switch. For any debugging to work, this needs to be [[true]]. | |||
== | === SPE_IFS_Debug === | ||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 561: | Line 690: | ||
'''Default Value:'''<sqf inline>false</sqf> | '''Default Value:'''<sqf inline>false</sqf> | ||
'''Description:''' | '''Description:''' Enables basic debugging. SPE_AIS_IFS_DebugSwitch needs to be [true] as well. | ||
== | === SPE_IFS_DebugDeep === | ||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 570: | Line 699: | ||
'''Default Value:'''<sqf inline>false</sqf> | '''Default Value:'''<sqf inline>false</sqf> | ||
'''Description:''' | '''Description:''' Enables even more debugging data. SPE_AIS_IFS_DebugSwitch needs to be [true] as well. | ||
=== SPE_IFS_Debugswitch_Systemchat === | |||
== | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 586: | Line 708: | ||
'''Default Value:'''<sqf inline>false</sqf> | '''Default Value:'''<sqf inline>false</sqf> | ||
'''Description:''' | '''Description:''' Enables additional logging via [[systemChat| system chat]]. SPE_AIS_IFS_DebugSwitch needs to be [true] as well. | ||
<!-- | |||
=== SPE_IFS_efeh_localhandle === | |||
== | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
'''Locality:''' {{Icon|globalEffect|24}} | '''Locality:''' {{Icon|globalEffect|24}} | ||
'''Default Value:'''<sqf inline> | '''Default Value:'''<sqf inline>16</sqf> | ||
''' | '''Description:''' Internal use. --> | ||
<!-- === SPE_IFS_em_id === | |||
== | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
'''Locality:''' {{Icon|globalEffect|24}} | '''Locality:''' {{Icon|globalEffect|24}} | ||
'''Default Value:'''<sqf inline> | '''Default Value:'''<sqf inline>3</sqf> | ||
''' | '''Description:''' Internal use. --> | ||
=== SPE_IFS_emergencyArtyDelay === | |||
== | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
'''Locality:''' {{Icon|globalEffect|24}} | '''Locality:''' {{Icon|globalEffect|24}} | ||
'''Default Value:'''<sqf inline> | '''Default Value:'''<sqf inline>5</sqf> | ||
'''Description:''' | '''Description:''' Additional delay between emergency arty call and fire provided. | ||
=== SPE_IFS_emergencyCallBaseInterval === | |||
'''Data Type: '''[[Array]] | |||
== | |||
'''Data Type: '''[[ | |||
'''Locality:''' {{Icon|globalEffect|24}} | '''Locality:''' {{Icon|globalEffect|24}} | ||
'''Default Value:'''<sqf inline> | '''Default Value:'''<sqf inline>[[30,45,60,90,45],[30,45,60,90,45],[30,45,60,90,45],[30,45,60,90,45]]</sqf> | ||
'''Description:''' | '''Description:''' Delay before emergency call is available after each use per side: [east,west,resistance,any other], each difficulty: [recruit,regular,veteran,hardcore,custom]. | ||
=== SPE_IFS_emergencyCallOverUseInterval === | |||
== | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 682: | Line 753: | ||
'''Default Value:'''<sqf inline>[[30,45,60,90,45],[30,45,60,90,45],[30,45,60,90,45],[30,45,60,90,45]]</sqf> | '''Default Value:'''<sqf inline>[[30,45,60,90,45],[30,45,60,90,45],[30,45,60,90,45],[30,45,60,90,45]]</sqf> | ||
'''Description:''' | '''Description:''' Extra delay added to the SPE_IFS_EmergencyCallBaseInterval before emergency call is available after each use over the SPE_IFS_EmergencyCallsLimit per side: [east,west,resistance,any other], each difficulty: [recruit,regular,veteran,hardcore,custom]. | ||
=== SPE_IFS_emergencyCallsLimit === | |||
== | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 698: | Line 762: | ||
'''Default Value:'''<sqf inline>[[-1,5,3,1,3],[-1,5,3,1,3],[-1,5,3,1,3],[-1,5,3,1,3]]</sqf> | '''Default Value:'''<sqf inline>[[-1,5,3,1,3],[-1,5,3,1,3],[-1,5,3,1,3],[-1,5,3,1,3]]</sqf> | ||
'''Description:''' | '''Description:''' Emergency calls limit during the mission per side: [east,west,resistance,any other], each difficulty: [recruit,regular,veteran,hardcore,custom]. Set -1 for no limit. | ||
== | |||
=== SPE_IFS_emergencyCASDelay === | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 706: | Line 771: | ||
'''Default Value:'''<sqf inline>5</sqf> | '''Default Value:'''<sqf inline>5</sqf> | ||
'''Description:''' | '''Description:''' Additional delay between emergency CAS call and fire provided. | ||
== | |||
=== SPE_IFS_emergencyFireActive === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 714: | Line 780: | ||
'''Default Value:'''<sqf inline>true</sqf> | '''Default Value:'''<sqf inline>true</sqf> | ||
'''Description:''' | '''Description:''' Available emergency support call for players. | ||
== | |||
=== SPE_IFS_emergencyFireImmunity === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 722: | Line 789: | ||
'''Default Value:'''<sqf inline>true</sqf> | '''Default Value:'''<sqf inline>true</sqf> | ||
'''Description:''' | '''Description:''' If [[true]], the caller will be immune to damage from called emergency fire. | ||
== | |||
<!-- === SPE_IFS_enemiesEast === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 730: | Line 798: | ||
'''Default Value:'''<sqf inline>[1]</sqf> | '''Default Value:'''<sqf inline>[1]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
<!-- === SPE_IFS_enemiesOther === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 738: | Line 807: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
<!-- === SPE_IFS_enemiesResistance === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 746: | Line 816: | ||
'''Default Value:'''<sqf inline>[1]</sqf> | '''Default Value:'''<sqf inline>[1]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
<!-- === SPE_IFS_enemiesWest === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 754: | Line 825: | ||
'''Default Value:'''<sqf inline>[0,2]</sqf> | '''Default Value:'''<sqf inline>[0,2]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
<!-- === SPE_IFS_enemySides === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 762: | Line 834: | ||
'''Default Value:'''<sqf inline>[[1],[0,2],[1],[]]</sqf> | '''Default Value:'''<sqf inline>[[1],[0,2],[1],[]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_entered == | <!-- | ||
=== SPE_IFS_entered === | |||
'''Data Type: '''[[String]] | '''Data Type: '''[[String]] | ||
Line 770: | Line 844: | ||
'''Default Value:'''<sqf inline></sqf> | '''Default Value:'''<sqf inline></sqf> | ||
'''Description:''' | '''Description:''' Internal use. | ||
== SPE_IFS_firedshells == | --> | ||
<!-- | |||
=== SPE_IFS_firedshells === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 778: | Line 854: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
=== SPE_IFS_FO === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 786: | Line 863: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Units from groups put there can act as FOs for allied arty. If left empty, any unit can be a forward operator (FO). | ||
== SPE_IFS_foaccgain == | <!-- | ||
=== SPE_IFS_foaccgain === | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 794: | Line 872: | ||
'''Default Value:'''<sqf inline>0.2</sqf> | '''Default Value:'''<sqf inline>0.2</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
=== SPE_IFS_FOClass === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 802: | Line 881: | ||
'''Default Value:'''<sqf inline>["spe_us_rangers_radioman","spe_us_rangers_sniper","spe_us_radioman","spe_us_sniper","spe_fr_sniper","spe_fr_radioman","spe_ger_radioman","spe_ger_scout_assist_squadlead","spe_ger_scout_ober_grenadier","spe_ger_scout_lieutenant","spe_ger_scout_mgunner2","spe_ger_scout_mgunner","spe_ger_scout_ober_rifleman","spe_ger_scout_rifleman","spe_ger_scout_squadlead","spe_ger_scout_sniper","spe_sturmtrooper_radioman","spe_sturmtrooper_sniper"]</sqf> | '''Default Value:'''<sqf inline>["spe_us_rangers_radioman","spe_us_rangers_sniper","spe_us_radioman","spe_us_sniper","spe_fr_sniper","spe_fr_radioman","spe_ger_radioman","spe_ger_scout_assist_squadlead","spe_ger_scout_ober_grenadier","spe_ger_scout_lieutenant","spe_ger_scout_mgunner2","spe_ger_scout_mgunner","spe_ger_scout_ober_rifleman","spe_ger_scout_rifleman","spe_ger_scout_squadlead","spe_ger_scout_sniper","spe_sturmtrooper_radioman","spe_sturmtrooper_sniper"]</sqf> | ||
'''Description:''' | '''Description:''' If SPE_IFS_FO is not empty, groups including units of those classes will be added to SPE_IFS_FO. Matters group's knowledge, but actual FO becomes group member located close enough with bigges altitude advantage over the target. | ||
== | |||
=== SPE_IFS_FOToTargetMaxDistances === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 810: | Line 890: | ||
'''Default Value:'''<sqf inline>[50,150,250]</sqf> | '''Default Value:'''<sqf inline>[50,150,250]</sqf> | ||
'''Description:''' | '''Description:''' Maximal FO-to-potential target distances in meters for target to be validated, [when FO is >10m lower, than potential target, when both on similar ASL height,when FO is >10m higher, than potential target]. | ||
== | |||
<!-- === SPE_IFS_heavyArt_ID === | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 818: | Line 899: | ||
'''Default Value:'''<sqf inline>1</sqf> | '''Default Value:'''<sqf inline>1</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_heavyartillery == | |||
<!-- === SPE_IFS_heavyartillery === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 826: | Line 908: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_heavyartyclasses == | |||
<!-- === SPE_IFS_heavyartyclasses === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 834: | Line 917: | ||
'''Default Value:'''<sqf inline>["spe_lefh18","spe_m4a1_t34_calliope"]</sqf> | '''Default Value:'''<sqf inline>["spe_lefh18","spe_m4a1_t34_calliope"]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
=== SPE_IFS_immuneFX_ringing === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 842: | Line 926: | ||
'''Default Value:'''<sqf inline>false</sqf> | '''Default Value:'''<sqf inline>false</sqf> | ||
'''Description:''' | '''Description:''' if [[true]], ear ringing sound FX for harmless artillery hits is audible. | ||
== | |||
=== SPE_IFS_incomingMarkRange === | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 850: | Line 935: | ||
'''Default Value:'''<sqf inline>1000</sqf> | '''Default Value:'''<sqf inline>1000</sqf> | ||
'''Description:''' | '''Description:''' How far in meters 3D marks of incoming fire should be visible. Marks start to fade out at 90% of that distance. | ||
== | |||
=== SPE_IFS_incomingNotificationRange === | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 858: | Line 944: | ||
'''Default Value:'''<sqf inline>300</sqf> | '''Default Value:'''<sqf inline>300</sqf> | ||
'''Description:''' | '''Description:''' How far in meters on screen notifications about incoming ambient fire should be displayed. | ||
== SPE_IFS_infantrydefaulttemptation == | <!-- | ||
=== SPE_IFS_infantrydefaulttemptation === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 866: | Line 953: | ||
'''Default Value:'''<sqf inline>[[12,0,0],[12,0,0],[12,0,0],[12,0,0]]</sqf> | '''Default Value:'''<sqf inline>[[12,0,0],[12,0,0],[12,0,0],[12,0,0]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_initcomplete == | <!-- | ||
=== SPE_IFS_initcomplete === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 874: | Line 962: | ||
'''Default Value:'''<sqf inline>true</sqf> | '''Default Value:'''<sqf inline>true</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_interval == | |||
=== SPE_IFS_interval === | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 882: | Line 971: | ||
'''Default Value:'''<sqf inline>2</sqf> | '''Default Value:'''<sqf inline>2</sqf> | ||
'''Description:''' | '''Description:''' Interval in seconds between main IFS cycles. | ||
== | |||
<!-- === SPE_IFS_IowaMode === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 890: | Line 980: | ||
'''Default Value:'''<sqf inline>false</sqf> | '''Default Value:'''<sqf inline>false</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knownenemiesmarkers == | <!-- | ||
=== SPE_IFS_knownenemiesmarkers === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 898: | Line 989: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_aa == | <!-- | ||
=== SPE_IFS_knowntargets_aa === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 906: | Line 998: | ||
'''Default Value:'''<sqf inline>[[],[],[],[]]</sqf> | '''Default Value:'''<sqf inline>[[],[],[],[]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_aa_e == | <!-- | ||
=== SPE_IFS_knowntargets_aa_e === | |||
'''Data Type: '''[[HashMap]] | '''Data Type: '''[[HashMap]] | ||
Line 914: | Line 1,007: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_aa_o == | <!-- | ||
=== SPE_IFS_knowntargets_aa_o === | |||
'''Data Type: '''[[HashMap]] | '''Data Type: '''[[HashMap]] | ||
Line 922: | Line 1,016: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_aa_r == | <!-- | ||
=== SPE_IFS_knowntargets_aa_r === | |||
'''Data Type: '''[[HashMap]] | '''Data Type: '''[[HashMap]] | ||
Line 930: | Line 1,025: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_aa_w == | <!-- | ||
=== SPE_IFS_knowntargets_aa_w === | |||
'''Data Type: '''[[HashMap]] | '''Data Type: '''[[HashMap]] | ||
Line 938: | Line 1,034: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_armored == | <!-- | ||
=== SPE_IFS_knowntargets_armored === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 946: | Line 1,043: | ||
'''Default Value:'''<sqf inline>[[],[],[],[]]</sqf> | '''Default Value:'''<sqf inline>[[],[],[],[]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_armored_e == | <!-- | ||
=== SPE_IFS_knowntargets_armored_e === | |||
'''Data Type: '''[[HashMap]] | '''Data Type: '''[[HashMap]] | ||
Line 954: | Line 1,052: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_armored_o == | <!-- | ||
=== SPE_IFS_knowntargets_armored_o === | |||
'''Data Type: '''[[HashMap]] | '''Data Type: '''[[HashMap]] | ||
Line 962: | Line 1,061: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_armored_r == | <!-- | ||
=== SPE_IFS_knowntargets_armored_r === | |||
'''Data Type: '''[[HashMap]] | '''Data Type: '''[[HashMap]] | ||
Line 970: | Line 1,070: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_armored_w == | <!-- | ||
=== SPE_IFS_knowntargets_armored_w === | |||
'''Data Type: '''[[HashMap]] | '''Data Type: '''[[HashMap]] | ||
Line 978: | Line 1,079: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_arty == | <!-- | ||
=== SPE_IFS_knowntargets_arty === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 986: | Line 1,088: | ||
'''Default Value:'''<sqf inline>[[],[],[],[]]</sqf> | '''Default Value:'''<sqf inline>[[],[],[],[]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_infantry == | <!-- | ||
=== SPE_IFS_knowntargets_infantry === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 994: | Line 1,097: | ||
'''Default Value:'''<sqf inline>[[],[],[],[]]</sqf> | '''Default Value:'''<sqf inline>[[],[],[],[]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_infantry_e == | <!-- | ||
=== SPE_IFS_knowntargets_infantry_e === | |||
'''Data Type: '''[[HashMap]] | '''Data Type: '''[[HashMap]] | ||
Line 1,002: | Line 1,106: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_infantry_o == | <!-- | ||
=== SPE_IFS_knowntargets_infantry_o === | |||
'''Data Type: '''[[HashMap]] | '''Data Type: '''[[HashMap]] | ||
Line 1,010: | Line 1,115: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_infantry_r == | <!-- | ||
=== SPE_IFS_knowntargets_infantry_r === | |||
'''Data Type: '''[[HashMap]] | '''Data Type: '''[[HashMap]] | ||
Line 1,018: | Line 1,124: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_infantry_w == | <!-- | ||
=== SPE_IFS_knowntargets_infantry_w === | |||
'''Data Type: '''[[HashMap]] | '''Data Type: '''[[HashMap]] | ||
Line 1,026: | Line 1,133: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_soft == | <!-- | ||
=== SPE_IFS_knowntargets_soft === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,034: | Line 1,142: | ||
'''Default Value:'''<sqf inline>[[],[],[],[]]</sqf> | '''Default Value:'''<sqf inline>[[],[],[],[]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_soft_e == | <!-- | ||
=== SPE_IFS_knowntargets_soft_e === | |||
'''Data Type: '''[[HashMap]] | '''Data Type: '''[[HashMap]] | ||
Line 1,042: | Line 1,151: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_soft_o == | <!-- | ||
=== SPE_IFS_knowntargets_soft_o === | |||
'''Data Type: '''[[HashMap]] | '''Data Type: '''[[HashMap]] | ||
Line 1,050: | Line 1,160: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_soft_r == | <!-- | ||
=== SPE_IFS_knowntargets_soft_r === | |||
'''Data Type: '''[[HashMap]] | '''Data Type: '''[[HashMap]] | ||
Line 1,058: | Line 1,169: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_knowntargets_soft_w == | <!-- | ||
=== SPE_IFS_knowntargets_soft_w === | |||
'''Data Type: '''[[HashMap]] | '''Data Type: '''[[HashMap]] | ||
Line 1,066: | Line 1,178: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_lastadvhint == | <!-- | ||
=== SPE_IFS_lastadvhint === | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 1,074: | Line 1,187: | ||
'''Default Value:'''<sqf inline>9.506</sqf> | '''Default Value:'''<sqf inline>9.506</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
<!-- === SPE_IFS_lightArtillery === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,082: | Line 1,196: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
=== SPE_IFS_lightArtyClasses === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,090: | Line 1,205: | ||
'''Default Value:'''<sqf inline>["spe_m1_81","spe_grw278_1"]</sqf> | '''Default Value:'''<sqf inline>["spe_m1_81","spe_grw278_1"]</sqf> | ||
'''Description:''' | '''Description:''' Vehicles classes of light artillery assets. Lower-case only! | ||
== | |||
=== SPE_IFS_limitShotsToCurrentMagazineRounds === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 1,098: | Line 1,214: | ||
'''Default Value:'''<sqf inline>false</sqf> | '''Default Value:'''<sqf inline>false</sqf> | ||
'''Description:''' | '''Description:''' If [[true]], number of shells fired per arty mission will be capped to current magaizne ammo count. Otherwise, if magazine is emptied in the middle of fire mission, mission will be continued after reloading. | ||
== SPE_IFS_localhandle == | <!-- | ||
=== SPE_IFS_localhandle === | |||
'''Data Type: '''[[Script]] | '''Data Type: '''[[Script]] | ||
Line 1,106: | Line 1,223: | ||
'''Default Value:'''<sqf inline><NULL-script></sqf> | '''Default Value:'''<sqf inline><NULL-script></sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_magazinesammodata == | <!-- | ||
=== SPE_IFS_magazinesammodata === | |||
'''Data Type: '''[[HashMap]] | '''Data Type: '''[[HashMap]] | ||
Line 1,114: | Line 1,232: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_mainhandle == | <!-- | ||
=== SPE_IFS_mainhandle === | |||
'''Data Type: '''[[Script]] | '''Data Type: '''[[Script]] | ||
Line 1,122: | Line 1,241: | ||
'''Default Value:'''<sqf inline><NULL-script></sqf> | '''Default Value:'''<sqf inline><NULL-script></sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_mapcenter == | <!-- | ||
=== SPE_IFS_mapcenter === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,130: | Line 1,250: | ||
'''Default Value:'''<sqf inline>[4096,4096]</sqf> | '''Default Value:'''<sqf inline>[4096,4096]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_monogamy == | |||
=== SPE_IFS_monogamy === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 1,138: | Line 1,259: | ||
'''Default Value:'''<sqf inline>true</sqf> | '''Default Value:'''<sqf inline>true</sqf> | ||
'''Description:''' | '''Description:''' If [[true]], only one battery should aim at given target. | ||
== | |||
=== SPE_IFS_mort_spawnDirection === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,146: | Line 1,268: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' An azimuth direction in degrees/bearing, the requested mortar fire will come from. Format [bearing,spread]. Formula used: ((_bearing - _spread) + (random (_spread * 2))). Leave empty array to spawn arty fire "from behind the requestor" | ||
== SPE_IFS_mortar == | |||
<!-- === SPE_IFS_mortar === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,154: | Line 1,277: | ||
'''Default Value:'''<sqf inline>["i_mortar_01_f","o_mortar_01_f","b_g_mortar_01_f","b_mortar_01_f"]</sqf> | '''Default Value:'''<sqf inline>["i_mortar_01_f","o_mortar_01_f","b_g_mortar_01_f","b_mortar_01_f"]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_mortarart_id == | <!-- | ||
=== SPE_IFS_mortarart_id === | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 1,162: | Line 1,286: | ||
'''Default Value:'''<sqf inline>0</sqf> | '''Default Value:'''<sqf inline>0</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
=== SPE_IFS_mortarClasses === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,170: | Line 1,295: | ||
'''Default Value:'''<sqf inline>["spe_m1_81","spe_grw278_1"]</sqf> | '''Default Value:'''<sqf inline>["spe_m1_81","spe_grw278_1"]</sqf> | ||
'''Description:''' | '''Description:''' Vehicles classes that represent mortars. Lower-case only! | ||
== SPE_IFS_newpriorityartycalls == | <!-- | ||
=== SPE_IFS_newpriorityartycalls === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,178: | Line 1,304: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_newprioritycascalls == | <!-- | ||
=== SPE_IFS_newprioritycascalls === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,186: | Line 1,313: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_nocontrol == | <!-- | ||
=== SPE_IFS_nocontrol === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,194: | Line 1,322: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_onephase == | <!-- | ||
=== SPE_IFS_onephase === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 1,202: | Line 1,331: | ||
'''Default Value:'''<sqf inline>false</sqf> | '''Default Value:'''<sqf inline>false</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_other == | <!-- | ||
=== SPE_IFS_other === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,210: | Line 1,340: | ||
'''Default Value:'''<sqf inline>[[["spe_grw278_1"],["SPE_8Rnd_81mm_FA_Mle_1932_HE","","","SPE_8Rnd_81mm_FA_Mle_1932_Smoke","SPE_8Rnd_81mm_FA_Mle_1932_Illu"]],[["spe_lefh18"],["SPE_20x_Shell_105L28_Gr38_HE","","","SPE_20x_Shell_105L28_Gr38_NB",""]],[["spe_m1_81"],["SPE_8Rnd_81mmHE_M1_M43A1","SPE_8Rnd_81mmWP_M1_M57","","SPE_8rnd_81mm_M1_M57_SmokeShell",""]],[["spe_m4a1_t34_calliope"],["SPE_60Rnd_M8","","","",""]]]</sqf> | '''Default Value:'''<sqf inline>[[["spe_grw278_1"],["SPE_8Rnd_81mm_FA_Mle_1932_HE","","","SPE_8Rnd_81mm_FA_Mle_1932_Smoke","SPE_8Rnd_81mm_FA_Mle_1932_Illu"]],[["spe_lefh18"],["SPE_20x_Shell_105L28_Gr38_HE","","","SPE_20x_Shell_105L28_Gr38_NB",""]],[["spe_m1_81"],["SPE_8Rnd_81mmHE_M1_M43A1","SPE_8Rnd_81mmWP_M1_M57","","SPE_8rnd_81mm_M1_M57_SmokeShell",""]],[["spe_m4a1_t34_calliope"],["SPE_60Rnd_M8","","","",""]]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_pairingtriesperbattery == | <!-- | ||
=== SPE_IFS_pairingtriesperbattery === | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 1,218: | Line 1,349: | ||
'''Default Value:'''<sqf inline>5</sqf> | '''Default Value:'''<sqf inline>5</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_pause == | |||
=== SPE_IFS_pause === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 1,226: | Line 1,358: | ||
'''Default Value:'''<sqf inline>false</sqf> | '''Default Value:'''<sqf inline>false</sqf> | ||
'''Description:''' | '''Description:''' IFS will wait with initialization and next main loop cycle until this is [[false]]. | ||
IFS will wait with | <!-- | ||
== SPE_IFS_pendingartycalls == | === SPE_IFS_pendingartycalls === | ||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,235: | Line 1,367: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_pendingcalls_logging == | <!-- | ||
=== SPE_IFS_pendingcalls_logging === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 1,243: | Line 1,376: | ||
'''Default Value:'''<sqf inline>false</sqf> | '''Default Value:'''<sqf inline>false</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_pendingcascalls == | <!-- | ||
=== SPE_IFS_pendingcascalls === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,251: | Line 1,385: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_planedefaulttemptation == | <!-- | ||
=== SPE_IFS_planedefaulttemptation === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,259: | Line 1,394: | ||
'''Default Value:'''<sqf inline>[[15,15,15],[15,15,15],[15,15,15],[15,15,15]]</sqf> | '''Default Value:'''<sqf inline>[[15,15,15],[15,15,15],[15,15,15],[15,15,15]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_planes_civ == | |||
=== SPE_IFS_planes_civ === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,267: | Line 1,403: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Weighted randomization of civilian CAS planes. | ||
== SPE_IFS_planes_east == | |||
=== SPE_IFS_planes_east === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,275: | Line 1,412: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Weighted randomization of east CAS planes. | ||
== SPE_IFS_planes_ind == | |||
=== SPE_IFS_planes_ind === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,283: | Line 1,421: | ||
'''Default Value:'''<sqf inline>["SPE_P47",1]</sqf> | '''Default Value:'''<sqf inline>["SPE_P47",1]</sqf> | ||
'''Description:''' | '''Description:''' Weighted randomization of independent CAS planes. | ||
== SPE_IFS_planes_west == | |||
=== SPE_IFS_planes_west === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,291: | Line 1,430: | ||
'''Default Value:'''<sqf inline>["SPE_FW190F8",1]</sqf> | '''Default Value:'''<sqf inline>["SPE_FW190F8",1]</sqf> | ||
'''Description:''' | '''Description:''' Weighted randomization of west CAS planes. | ||
== SPE_IFS_priokeys == | <!-- | ||
=== SPE_IFS_priokeys === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,299: | Line 1,439: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_priorityartycalls == | <!-- | ||
=== SPE_IFS_priorityartycalls === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,307: | Line 1,448: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_prioritycastargets == | <!-- | ||
=== SPE_IFS_prioritycastargets === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,315: | Line 1,457: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
=== SPE_IFS_progressCallWhenInvalid === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 1,323: | Line 1,466: | ||
'''Default Value:'''<sqf inline>true</sqf> | '''Default Value:'''<sqf inline>true</sqf> | ||
'''Description:''' | '''Description:''' If [[true]], the call progress will be not paused if aimed position is invalid. | ||
== SPE_IFS_publicfunctions == | <!-- | ||
=== SPE_IFS_publicfunctions === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 1,331: | Line 1,475: | ||
'''Default Value:'''<sqf inline>false</sqf> | '''Default Value:'''<sqf inline>false</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== SPE_IFS_rdtable == | <!-- | ||
=== SPE_IFS_rdtable === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,339: | Line 1,484: | ||
'''Default Value:'''<sqf inline>[[["spe_grw278_1"],"spe_grw278_1",[["Single1",[[42,577],2]],["Single2",[[71,997],4]],["Single3",[[102,1425],6]],["Single4",[[142,1991],7]],["Single5",[[164,2309],8]],["Single6",[[194,2722],9]],["Single7",[[220,3092],10]]]],[["spe_lefh18"],"spe_lefh18_l28",[["Single1",[[344,1941],10]],["Single2",[[772,4369],15]],["Single3",[[1610,9116],20]]]],[["spe_sdkfz251_2","spe_st_sdkfz251_2"],"spe_grwr34",[["Single1",[[116,1263],6]],["Single2",[[170,1854],8]],["Single3",[[222,2421],10]]]],[["spe_sdkfz251_w40","spe_st_sdkfz251_w40"],"spe_wurfrahmen_40",[["Burst1",[[400,530],5]],["Burst2",[[530,670],6]],["Burst3",[[670,870],7]],["Burst4",[[870,1145],8]],["Burst5",[[1145,1490],10]],["Burst6",[[1490,1930],15]]]],[["spe_m1_81"],"spe_m1_81",[["Single1",[[42,577],2]],["Single2",[[71,997],4]],["Single3",[[102,1425],6]],["Single4",[[142,1991],7]],["Single5",[[164,2309],8]],["Single6",[[194,2722],9]],["Single7",[[220,3092],10]]]],[["spe_m4a1_t34_calliope"],"spe_t34_l60",[["Burst1",[[430,560],5]],["Burst2",[[560,730],6]],["Burst3",[[730,950],7]],["Burst4",[[950,1260],8]],["Burst5",[[1260,1650],9]],["Burst6",[[1650,2190],10]],["Burst7",[[2190,2910],12]],["Burst8",[[2910,3560],12]],["Burst9",[[3560,4230],15]]]]]</sqf> | '''Default Value:'''<sqf inline>[[["spe_grw278_1"],"spe_grw278_1",[["Single1",[[42,577],2]],["Single2",[[71,997],4]],["Single3",[[102,1425],6]],["Single4",[[142,1991],7]],["Single5",[[164,2309],8]],["Single6",[[194,2722],9]],["Single7",[[220,3092],10]]]],[["spe_lefh18"],"spe_lefh18_l28",[["Single1",[[344,1941],10]],["Single2",[[772,4369],15]],["Single3",[[1610,9116],20]]]],[["spe_sdkfz251_2","spe_st_sdkfz251_2"],"spe_grwr34",[["Single1",[[116,1263],6]],["Single2",[[170,1854],8]],["Single3",[[222,2421],10]]]],[["spe_sdkfz251_w40","spe_st_sdkfz251_w40"],"spe_wurfrahmen_40",[["Burst1",[[400,530],5]],["Burst2",[[530,670],6]],["Burst3",[[670,870],7]],["Burst4",[[870,1145],8]],["Burst5",[[1145,1490],10]],["Burst6",[[1490,1930],15]]]],[["spe_m1_81"],"spe_m1_81",[["Single1",[[42,577],2]],["Single2",[[71,997],4]],["Single3",[[102,1425],6]],["Single4",[[142,1991],7]],["Single5",[[164,2309],8]],["Single6",[[194,2722],9]],["Single7",[[220,3092],10]]]],[["spe_m4a1_t34_calliope"],"spe_t34_l60",[["Burst1",[[430,560],5]],["Burst2",[[560,730],6]],["Burst3",[[730,950],7]],["Burst4",[[950,1260],8]],["Burst5",[[1260,1650],9]],["Burst6",[[1650,2190],10]],["Burst7",[[2190,2910],12]],["Burst8",[[2910,3560],12]],["Burst9",[[3560,4230],15]]]]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
=== SPE_IFS_requestedHeavyArtyAmmo === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,347: | Line 1,493: | ||
'''Default Value:'''<sqf inline>["SPE_60Rnd_M8","SPE_20x_Shell_105L28_Gr38_HE","SPE_60Rnd_M8","SPE_60Rnd_M8"]</sqf> | '''Default Value:'''<sqf inline>["SPE_60Rnd_M8","SPE_20x_Shell_105L28_Gr38_HE","SPE_60Rnd_M8","SPE_60Rnd_M8"]</sqf> | ||
'''Description:''' | '''Description:''' Artillery magazine used for heavy artillery support request [east,west,resistance,any other]. | ||
Artillery magazine used for heavy artillery support request [east,west,resistance,any other] | |||
== | === SPE_IFS_requestedHeavyArtyAmount === | ||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 1,356: | Line 1,502: | ||
'''Default Value:'''<sqf inline>6</sqf> | '''Default Value:'''<sqf inline>6</sqf> | ||
'''Description:''' | '''Description:''' Heavy arty shells count per request. | ||
Heavy arty shells count per request | |||
== | === SPE_IFS_requestedHeavyArtyETA === | ||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 1,365: | Line 1,511: | ||
'''Default Value:'''<sqf inline>30</sqf> | '''Default Value:'''<sqf inline>30</sqf> | ||
'''Description:''' | '''Description:''' Heavy artillery ETA in seconds from request to shells appearance. | ||
Heavy artillery ETA in seconds from request to shells appearance | |||
== | === SPE_IFS_requestedHeavyArtyGunsAmount === | ||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,374: | Line 1,520: | ||
'''Default Value:'''<sqf inline>[1,3,1,1]</sqf> | '''Default Value:'''<sqf inline>[1,3,1,1]</sqf> | ||
'''Description:''' | '''Description:''' How many heavy arty assets will provide the requested support - determines intervals between shells [east,west,resistance,any other]. | ||
How many heavy arty assets will provide the requested support - determines intervals between shells [east,west,resistance,any other] | |||
== | === SPE_IFS_requestedHeavyArtyGunsROF === | ||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,383: | Line 1,529: | ||
'''Default Value:'''<sqf inline>[0.5,5,0.5,0.5]</sqf> | '''Default Value:'''<sqf inline>[0.5,5,0.5,0.5]</sqf> | ||
'''Description:''' | '''Description:''' How fast each heavy arty asset can shoot [east,west,resistance,any other]. | ||
How fast each heavy arty asset can shoot [east,west,resistance,any other] | |||
== | === SPE_IFS_requestedHeavyArtySpread === | ||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 1,392: | Line 1,538: | ||
'''Default Value:'''<sqf inline>150</sqf> | '''Default Value:'''<sqf inline>150</sqf> | ||
'''Description:''' | '''Description:''' Shells spread in meters of heavy arty type of requested support. | ||
Shells spread in meters of heavy arty type of requested support | |||
== | === SPE_IFS_requestedMortarAmmo === | ||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,401: | Line 1,547: | ||
'''Default Value:'''<sqf inline>["SPE_8Rnd_81mmHE_M1_M43A1","SPE_8Rnd_81mm_FA_Mle_1932_HE","SPE_8Rnd_81mmHE_M1_M43A1","SPE_8Rnd_81mmHE_M1_M43A1"]</sqf> | '''Default Value:'''<sqf inline>["SPE_8Rnd_81mmHE_M1_M43A1","SPE_8Rnd_81mm_FA_Mle_1932_HE","SPE_8Rnd_81mmHE_M1_M43A1","SPE_8Rnd_81mmHE_M1_M43A1"]</sqf> | ||
'''Description:''' | '''Description:''' Artillery magazine used for heavy artillery support request [east,west,resistance,any other]. | ||
Artillery magazine used for heavy artillery support request [east,west,resistance,any other] | |||
== | === SPE_IFS_requestedMortarAmount === | ||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 1,410: | Line 1,556: | ||
'''Default Value:'''<sqf inline>6</sqf> | '''Default Value:'''<sqf inline>6</sqf> | ||
'''Description:''' | '''Description:''' Mortar shells count per request. | ||
Mortar shells count per request | |||
== | === SPE_IFS_requestedMortarETA === | ||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 1,419: | Line 1,565: | ||
'''Default Value:'''<sqf inline>15</sqf> | '''Default Value:'''<sqf inline>15</sqf> | ||
'''Description:''' | '''Description:''' Mortar ETA in seconds from request to shells appearance. | ||
Mortar ETA in seconds from request to shells appearance | |||
== | === SPE_IFS_requestedMortarGunsAmount === | ||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,428: | Line 1,574: | ||
'''Default Value:'''<sqf inline>[3,3,3,3]</sqf> | '''Default Value:'''<sqf inline>[3,3,3,3]</sqf> | ||
'''Description:''' | '''Description:''' How many mortars will provide the requested support - determines shells grouping [east,west,resistance,any other]. | ||
How many mortars will provide the requested support - determines shells grouping [east,west,resistance,any other] | |||
== | === SPE_IFS_requestedMortarGunsROF === | ||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,437: | Line 1,583: | ||
'''Default Value:'''<sqf inline>[2,2,2,2]</sqf> | '''Default Value:'''<sqf inline>[2,2,2,2]</sqf> | ||
'''Description:''' | '''Description:''' How fast each heavy arty asset can shoot [east,west,resistance,any other]. | ||
How fast each heavy arty asset can shoot [east,west,resistance,any other] | |||
== | === SPE_IFS_requestedMortarSpread === | ||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 1,446: | Line 1,592: | ||
'''Default Value:'''<sqf inline>100</sqf> | '''Default Value:'''<sqf inline>100</sqf> | ||
'''Description:''' | '''Description:''' Mortar spread in meters of mortar type of requested support. | ||
Mortar spread in meters of mortar type of requested support | |||
== | === SPE_IFS_requestedSupportAvailabilityDelay === | ||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,455: | Line 1,601: | ||
'''Default Value:'''<sqf inline>[[60,180,60],[60,180,60],[60,180,60],[60,180,60]]</sqf> | '''Default Value:'''<sqf inline>[[60,180,60],[60,180,60],[60,180,60],[60,180,60]]</sqf> | ||
'''Description:''' | '''Description:''' Delay before each type of call is available for a player after last performed support, he called, per side: [east,west,resistance,any other] - each side entry: [mortars,heavy artillery,CAS]. This delay is added to some minimal base delay ("reloading"/"preparing", 5s for mortars, 10s for artillery, 15s for CAS). | ||
== SPE_IFS_rocket == | <!-- | ||
=== SPE_IFS_rocket === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,463: | Line 1,610: | ||
'''Default Value:'''<sqf inline>["b_mbt_01_mlrs_f"]</sqf> | '''Default Value:'''<sqf inline>["b_mbt_01_mlrs_f"]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
=== SPE_IFS_safetyDistance_cas === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,471: | Line 1,619: | ||
'''Default Value:'''<sqf inline>[50,50,50,50]</sqf> | '''Default Value:'''<sqf inline>[50,50,50,50]</sqf> | ||
'''Description:''' | '''Description:''' Friendly units closer than this value (in meters, reduced by target's value) will invalidate potential CAS target. Per side: [east,west,resistance,other]. | ||
== | |||
=== SPE_IFS_safetyDistance_heavyArty === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,479: | Line 1,628: | ||
'''Default Value:'''<sqf inline>[100,100,100,100]</sqf> | '''Default Value:'''<sqf inline>[100,100,100,100]</sqf> | ||
'''Description:''' | '''Description:''' Friendly units closer than this value (in meters, reduced by target's value) will invalidate potential non-mortar artillery target. Per side: [east,west,resistance,other]. | ||
== | |||
=== SPE_IFS_safetyDistance_mortarArty === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,487: | Line 1,637: | ||
'''Default Value:'''<sqf inline>[25,25,25,25]</sqf> | '''Default Value:'''<sqf inline>[25,25,25,25]</sqf> | ||
'''Description:''' | '''Description:''' Friendly units closer than this value (in meters, reduced by target's value) will invalidate potential mortar artillery target. Per side: [east,west,resistance,other]. | ||
== SPE_IFS_shellview == | |||
<!-- | |||
=== SPE_IFS_shellview === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 1,495: | Line 1,647: | ||
'''Default Value:'''<sqf inline>false</sqf> | '''Default Value:'''<sqf inline>false</sqf> | ||
'''Description:''' | '''Description:''' Not in use.--> | ||
== | |||
=== SPE_IFS_shouldBlacklistBlockRequestedSupport === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 1,503: | Line 1,656: | ||
'''Default Value:'''<sqf inline>false</sqf> | '''Default Value:'''<sqf inline>false</sqf> | ||
'''Description:''' | '''Description:''' If [[true]], players should be unable to call requested supports on blacklisted targets, too close to them or located inside blacklisted areas | ||
== SPE_IFS_sides == | |||
=== SPE_IFS_sides === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,511: | Line 1,665: | ||
'''Default Value:'''<sqf inline>[EAST,WEST,GUER]</sqf> | '''Default Value:'''<sqf inline>[EAST,WEST,GUER]</sqf> | ||
'''Description:''' | '''Description:''' Sides that have access to IFS. | ||
== SPE_IFS_spmortar == | <!-- | ||
=== SPE_IFS_spmortar === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,519: | Line 1,674: | ||
'''Default Value:'''<sqf inline>["o_mbt_02_arty_f","b_mbt_01_arty_f"]</sqf> | '''Default Value:'''<sqf inline>["o_mbt_02_arty_f","b_mbt_01_arty_f"]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
=== SPE_IFS_spottingRound === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,527: | Line 1,683: | ||
'''Default Value:'''<sqf inline>[EAST,WEST,GUER]</sqf> | '''Default Value:'''<sqf inline>[EAST,WEST,GUER]</sqf> | ||
'''Description:''' | '''Description:''' Spotting round preceeding artillery barrage per side. | ||
== | <!-- | ||
=== SPE_IFS_spottingRound_called === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 1,535: | Line 1,692: | ||
'''Default Value:'''<sqf inline>true</sqf> | '''Default Value:'''<sqf inline>true</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | <!-- | ||
=== SPE_IFS_staticDefaultTemptation === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,543: | Line 1,701: | ||
'''Default Value:'''<sqf inline>[[5,5,5],[5,5,5],[5,5,5],[5,5,5]]</sqf> | '''Default Value:'''<sqf inline>[[5,5,5],[5,5,5],[5,5,5],[5,5,5]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | <!-- | ||
=== SPE_IFS_supportLoop_Handle === | |||
'''Data Type: '''[[Number]] | '''Data Type: '''[[Number]] | ||
Line 1,551: | Line 1,710: | ||
'''Default Value:'''<sqf inline>22</sqf> | '''Default Value:'''<sqf inline>22</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | <!-- | ||
=== SPE_IFS_SVStart === | |||
'''Data Type: '''[[Boolean]] | '''Data Type: '''[[Boolean]] | ||
Line 1,559: | Line 1,719: | ||
'''Default Value:'''<sqf inline>true</sqf> | '''Default Value:'''<sqf inline>true</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | <!-- | ||
=== SPE_IFS_tankDefaultTemptation === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,567: | Line 1,728: | ||
'''Default Value:'''<sqf inline>[[0,6,12],[0,6,12],[0,6,12],[0,6,12]]</sqf> | '''Default Value:'''<sqf inline>[[0,6,12],[0,6,12],[0,6,12],[0,6,12]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
=== SPE_IFS_targetBlacklist === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,575: | Line 1,737: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' IFS will not target these entities and will try to not hit these objects. | ||
== | |||
=== SPE_IFS_targetMaxSpeeds === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,583: | Line 1,746: | ||
'''Default Value:'''<sqf inline>[10,30]</sqf> | '''Default Value:'''<sqf inline>[10,30]</sqf> | ||
'''Description:''' | '''Description:''' Maximal target speed to become a target and maintain artillery aim [(playabe/switchable units in the target's crew),otherwise] | ||
== | |||
=== SPE_IFS_targetReportingDelay === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,591: | Line 1,755: | ||
'''Default Value:'''<sqf inline>[[30,30,30,30],[30,30,30,30],[30,30,30,30],[30,30,30,30]]</sqf> | '''Default Value:'''<sqf inline>[[30,30,30,30],[30,30,30,30],[30,30,30,30],[30,30,30,30]]</sqf> | ||
'''Description:''' | '''Description:''' How long (in seconds) it takes from potential target detection until it may become a valid IFS target, per side ([east,west,resistance,any other]), each side per difficulty ([recruit,regular,veteran,hardcore,custom]); | ||
How long (in seconds) it takes from potential target detection until it may become a valid IFS target, per side ([east,west,resistance,any other]), each side per difficulty ([recruit,regular,veteran,hardcore,custom]); | |||
== | <!-- === SPE_IFS_temporaryDebugMarkers === | ||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,600: | Line 1,764: | ||
'''Default Value:'''<sqf inline>[]</sqf> | '''Default Value:'''<sqf inline>[]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
<!-- === SPE_IFS_vehicleDefaultTemptation === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,608: | Line 1,773: | ||
'''Default Value:'''<sqf inline>[[3,3,2],[3,3,2],[3,3,2],[3,3,2]]</sqf> | '''Default Value:'''<sqf inline>[[3,3,2],[3,3,2],[3,3,2],[3,3,2]]</sqf> | ||
'''Description:''' | '''Description:''' Internal use. --> | ||
== | |||
=== SPE_IFS_worthyInfantryRadius === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,616: | Line 1,782: | ||
'''Default Value:'''<sqf inline>[[100,150,25],[100,150,25],[100,150,25],[100,150,25]]</sqf> | '''Default Value:'''<sqf inline>[[100,150,25],[100,150,25],[100,150,25],[100,150,25]]</sqf> | ||
'''Description:''' | '''Description:''' How far around the infantry target to search for other targets to determine, if target is worthy; per side [east,west,resistance,any other (ignored by arty)], each per type [light arty,heavy arty,CAS]. | ||
== | |||
=== SPE_IFS_worthyInfantryTarget === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,624: | Line 1,791: | ||
'''Default Value:'''<sqf inline>[[2,4,0],[2,4,0],[2,4,0],[2,4,0]]</sqf> | '''Default Value:'''<sqf inline>[[2,4,0],[2,4,0],[2,4,0],[2,4,0]]</sqf> | ||
'''Description:''' | '''Description:''' How many allied combatant entities around infantry unit must be present to accept it as potential target for arty (150m radius) or CAS (25m radius); per side [east,west,resistance,any other (ignored by arty)], each per type [light arty,heavy arty,CAS]. | ||
== SPE_IFS_wpclasses == | |||
<!-- === SPE_IFS_wpclasses === | |||
'''Data Type: '''[[Array]] | '''Data Type: '''[[Array]] | ||
Line 1,632: | Line 1,800: | ||
'''Default Value:'''<sqf inline>["spe_m1_81"]</sqf> | '''Default Value:'''<sqf inline>["spe_m1_81"]</sqf> | ||
'''Description:''' | '''Description:''' Internal only. --> | ||
== Direct Support (DS) == | |||
=== SPE_IFS_DS_checkfriendlyfire === | |||
'''Data Type: '''[[Boolean]] | |||
'''Locality:''' {{Icon|globalEffect|24}} | |||
'''Default Value:'''<sqf inline>false</sqf> | |||
'''Description:''' Should friendly units presence stop direct support. | |||
=== SPE_IFS_DS_checkproviderlos === | |||
'''Data Type: '''[[Boolean]] | |||
'''Locality:''' {{Icon|globalEffect|24}} | |||
'''Default Value:'''<sqf inline>false</sqf> | |||
'''Description:''' Should direct support provider require not obstructed LOS 25m in front of the gunner in order to fire. | |||
<!-- | |||
=== SPE_IFS_DS_id === | |||
'''Data Type: '''[[Number]] | |||
'''Locality:''' {{Icon|globalEffect|24}} | |||
'''Default Value:'''<sqf inline>4</sqf> | |||
'''Description:''' Internal use. --> | |||
=== SPE_IFS_DS_interval === | |||
'''Data Type: '''[[Number]] | |||
'''Locality:''' {{Icon|globalEffect|24}} | |||
'''Default Value:'''<sqf inline>10</sqf> | |||
'''Description:''' How long a player has to wait to call direct support again in seconds. | |||
=== SPE_IFS_DS_providerBlacklist === | |||
'''Data Type: '''[[Array]] | |||
'''Locality:''' {{Icon|globalEffect|24}} | |||
'''Default Value:'''<sqf inline>["spe_m4a1_t34_calliope"]</sqf> | |||
'''Description:''' Vehicle classes that are blacklisted from being a direct support provider. Lower-case only! | |||
=== SPE_IFS_DS_providingTime === | |||
'''Data Type: '''[[Number]] | |||
'''Locality:''' {{Icon|globalEffect|24}} | |||
'''Default Value:'''<sqf inline>30</sqf> | |||
'''Description:''' How long provider will perform direct support in seconds. | |||
=== SPE_IFS_DSavailability_side === | |||
'''Data Type: '''[[Array]] | |||
'''Locality:''' {{Icon|globalEffect|24}} | |||
'''Default Value:'''<sqf inline>[WEST,EAST,GUER]</sqf> | |||
'''Description:''' To which sides should direct support be available. | |||
=== SPE_IFS_DSMaxRange === | |||
'''Data Type: '''[[Number]] | |||
'''Locality:''' {{Icon|globalEffect|24}} | |||
'''Default Value:'''<sqf inline>500</sqf> | |||
'''Description:''' How far tanks can provide direct support (tested up to 1000m). Will be reduced to objects draw distance, if draw distance is lesser. | |||
=== SPE_IFS_DSRadius === | |||
'''Data Type: '''[[Number]] | |||
'''Locality:''' {{Icon|globalEffect|24}} | |||
'''Default Value:'''<sqf inline>10</sqf> | |||
'''Description:''' Defines how close a player needs to be to a tank in meters to have the direct support action. | |||
= Entity Variables = | |||
=== SPE_IFSExcluded === | |||
'''Data Type: '''[[Boolean]] | |||
'''Default Value:'''<sqf inline>false</sqf> | |||
'''Description:''' Excludes given entity from IFS. | |||
'''Example:'''<sqf inline>_entity setVariable ["SPE_IFSExcluded", true];</sqf> | |||
= Example Scenario = | |||
* {{Link/External|link=https://drive.google.com/drive/folders/1A0gSMkaNi7Xx7FadH8D9TKrIbFC3UTaz|text=Download}} | |||
[[Category: Spearhead 1944]] | [[Category: Spearhead 1944]] |
Latest revision as of 11:50, 6 September 2024
Overview
The Indirect Fire Support system provides battlefield support in various forms: mortars, artillery, CAS, and even direct support from nearby tanks.
The support occurs both by player call-in requests, as well as automatically, and is based on the available intel of enemy threats and capabilities in any given moment.
Usage
When activated via module or functions, the system operates the autonomous form of fire support in the background, depending on indirect fire support assets present in the scenario and mission setup without any action required from the player. That said, by spotting enemy units and vehicles, players, as well as friendly AI forces, will effectively provide information about possible targets to the allied supporting assets, which may affect their decision-making and behavior.
The called-in form of indirect fire support is under the player's direct control. What operations are available and any limits to the activities depend on the mission-specific setup. By using the action menu and hold actions, players can call in mortar, artillery, or CAS support or ask nearby allied tanks for direct fire support. Players can also send a request for emergency fire support that's provided by any available asset at a given moment.
Detailed information
Autonomous fire support for all sides is based on the presence of the artillery assets in the scenario and CAS presence defined in the mission setup. Amongst known enemy units and vehicles, the most tempting targets are chosen when an allied unit is at the appropriate distance to serve as the forward operator (FO). Potential targets must also meet a few additional requirements - including low enough risk for friendly fire.
When the target is accepted, the allocated artillery asset will start the aim procedure, which takes around 20 seconds, in order to take into account the target's movement vector with the assumption that it will continue to move.
Autonomous artillery barrage is a subject of both general aim error and individual round spread. Depending on the mission setup, usually, the main firing action is preceded by a single spotting round - and in the case of players under threat, a few notifications about the incoming fire.
Meanwhile the called-in artillery support is fired at the location requested by the original caller. However, each round is still subjected to a statistical spread, leading to certain inaccuracy.
Via mission setup, certain areas or objects may be blacklisted. As a result, calling fire support to strike those will be impossible. The same applies to the immediate vicinity of the caller.
CAS fire support, both autonomous and called-in, works in a similar way. Typically, though, it's much more precise against moving vehicles since the pilot can correct his aim till the last moment.
Emergency support calls are meant as a desperate last resort. The first available support provider of any type will automatically pick a hostile target near the caller that seems the most threatening, without any friendly fire avoidance - so beware. It's also possible there will be no available support at all.
In general, depending on mission setup and game difficulty, called-in fire support will have various usage conditions and limitations, including radio availability, amount of calls, time interval between the calls, or inability to call the same type of support many times simultaneously. The current status of support availability, if any is present at all, is shown directly in the action menu.
Finally, if the player is close enough to an allied tank, it may be possible to point the tank gunner to a target and engage via the action menu.
Configuration
Mission parameters may allow customization of certain elements of the system for the given play-session in multiplayer mode.
Mission maker setup and use
The advanced customization of IFS is possible via the module to a large extent and even more so via scripting
Detailed documentation is found on the Spearhead 1944.
Indirect Fire Support
During the game, you may encounter or cause various indirect fire support events.
Soldiers present on the battlefield, AI and players alike, will automatically report spotted hostile targets to HQ. HQ, according to its own judgment, may issue orders to attack a worthy target with its own artillery or aerial asset if present and not busy elsewhere.
Sometimes, players also have the possibility to call in such support directly.
Called-in Fire Support
Select and hold a support action to call in the chosen type of support to a position or target in the middle of the screen.
Avoid requesting support too close to your own or allied positions - ordnance has a considerable blast radius and spread.
MissionNamespace Variables
IFS
SPE_IFS_2PhWithoutFO
Data Type: Boolean
Locality: GEGlobal
Default Value:false
Description: If SPE_IFS_FO is not empty, arty fire mission is divided into two phases. First phase is less accurate and less numerous (probing fire). If this variable is true, two-phase fire is used also without a "proper" FO from SPE_IFS_FO array
SPE_IFS_aacapableassets
Data Type: Array
Locality: GEGlobal
Default Value:["spe_flak_30","spe_flak_38","spe_us_m16_halftrack","spe_m45_quadmount"]
Description: Assets that are capable of AA.
SPE_IFS_acc
Data Type: Number
Locality: GEGlobal
Default Value:2
Description: General accuracy multiplier. Aiming error is multiplied by this value. Set to 0 for spot-on salvo aim (but individual round spread still is present).
SPE_IFS_acceptedRadioBackpacks
Data Type: Array
Locality: GEGlobal
Default Value:["b_spe_ger_radio","b_spe_us_radio","b_spe_us_radio_alt","b_spe_us_radio_packboard","b_spe_us_radio_packboard_light"]
Description: Backpacks considered as proper radio backpack for requested support calls requirement (all lower case!).
SPE_IFS_active
Data Type: Boolean
Locality: GEGlobal
Default Value:true
Description: If false, IFS main loop will exit permanently.
SPE_IFS_AIBombHelper_disable
Data Type: Boolean
Locality: GEGlobal
Default Value:true
Description: In the performance-friendly CAS mode, if false, Ai Bomb Helper will be responsible for guiding CAS bombs on target. If true - bombs will be guided by different code, which guides rockets and MG bullets. In the each frame CAS mode, bombs are not guided.
SPE_IFS_allowAdvancedHints
Data Type: Boolean
Locality: GEGlobal
Default Value:true
Description: Should IFS-specific advanced hints be displayed (switch false, when not, switch true, when allowed).
SPE_IFS_allowMortarsAgainstTanks
Data Type: Boolean
Locality: GEGlobal
Default Value:false
Description: Should mortars be considered to fire at tanks.
SPE_IFS_amount
Data Type: Number
Locality: GEGlobal
Default Value:6
Description: Default number of shells per arty fire mission.
SPE_IFS_amountMultiplier
Data Type: Array
Locality: GEGlobal
Default Value:[[1,1,1],[0.33,0.5,1]]
Description: Shells per arty fire mission amount multiplier [mortars,heavy arty] (final amount is rounded up) each for [infantry,soft,tank-or-artillery] targets.
SPE_IFS_areaBlacklist
Data Type: Array
Locality: GEGlobal
Default Value:[]
Description: No target within included areas will become a target of IFS. Also IFS will try to avoid any shells dropping inside those areas. No 100% warranty. Accepted are all entries handled by inArea command (trigger, marker, location or [center, a, b, angle, isRectangle, c] array). If object is given as a center, area will be each check updated depending on object's position.
SPE_IFS_art_spawnDirection
Data Type: Array
Locality: GEGlobal
Default Value:[]
Description: An azimuth direction in degrees/bearing, the requested heavy artillery fire will come from. Format [bearing,spread]. Formula used: ((_bearing - _spread) + (random (_spread * 2))). Leave empty array to spawn arty fire "from behind the requestor".
SPE_IFS_artyActive
Data Type: Boolean
Locality: GEGlobal
Default Value:true
Description: Artillery component switch (pending fire missions will continue if turned off).
SPE_IFS_artyAvailability_side
Data Type: Array
Locality: GEGlobal
Default Value:[WEST,EAST,GUER]
Description: Players of which sides can request heavy artillery and mortar support.
SPE_IFS_artyAvailability_specific
Data Type: Array
Locality: GEGlobal
Default Value:
Description: Each entry in the array is a condition. If one of these conditions returns true, the player has access to IFS. Inside each condition the special variable _unit is available.
Conditions:
- Checks if the player is set to be a transmitter via scripting.
- Checks if the player's vehicle is set to be a transmitter via scripting.
- Checks if the player is group leader.
- Checks if the player has a whitelisted radio backpack.
- Checks if the player has a radio item.
- Checks if the player is in a tank. Tanks always have radios.
- Checks if one of the units that is in the same vehicle as the player either is a transmitter, has a radio backpack or has a radio item.
- Checks if a friendly vehicle (not civilian) is in reach of the unit. Distance is based on difficulty.
- Checks if a nearby friendly unit or vehicle (not civilian) can be used to relay a message. Distance is based on difficulty.
Modification:
SPE_IFS_artyAvailability_specific can be modified to suit your needs. Just remove all entries that are not wanted, or add custom conditions to it. For performance reasons it's recommended to put less performance intense condition at the front of the array and vise versa.
SPE_IFS_artyAVTransmitterDst
Data Type: Array
Locality: GEGlobal
Default Value:[50,25,5,5,5]
Description: Transmitter proximity threshold in meters for support call availability per difficulty: [0 (recruit),1 (regular),2 (veteran),3 (hardcore),4 (custom)]
SPE_IFS_availableCalls
Data Type: Array
Locality: GEGlobal
Default Value:[[-1,-1,-1],[-1,-1,-1],[-1,-1,-1],[-1,-1,-1]]
Description: How many calls are available per side in format [east, west, independent, civilian] and [mortar, artillery, CAS].
SPE_IFS_calledSupportsPermanent
Data Type: Boolean
Locality: GEGlobal
Default Value:true
Description: If SPE_IFS_calledSupportsUI is 1, this will make call actions always visible, instead of add-remove it will adjust the action's name and result of use depending on support availability status.
SPE_IFS_cas_dontTrackPlayersInCadet
Data Type: Array
Locality: GEGlobal
Default Value:[EAST,WEST,GUER,CIV]
Description: A CAS plane will not correct the aim against moving vehicles with players of included sides in cadet mode.
SPE_IFS_cas_horribleMode
Data Type: Boolean
Locality: GEGlobal
Default Value:true
Description: If true, CAS will be performed using more performance-friendly function with limited weaponry and "homing" bombs
SPE_IFS_cas_originObjects
Data Type: Array
Locality: GEGlobal
Default Value:[[],[],[],[]]
Description: Per side: [east,west,resistance,any other]. If a subarray holds any objects (for example "dummy" planes on airfields or invisible objects), their positions (distance) will define base requested CAS availability delay and overwrite SPE_IFS_EmergencyCASDelay value. Picked will be origin object closest to player or target. Added delay is 1 second per 100m of distance between the origin and the target.
SPE_IFS_CAS_spawnDirection
Data Type: Array
Locality: GEGlobal
Default Value:[180,180]
Description: An azimuth direction in degrees/bearing, the CAS plane will come from. Format [bearing,spread]. Formula used: ((_bearing - _spread) + (random (_spread * 2)))
SPE_IFS_CAS_spawnDistance
Data Type: Array
Locality: GEGlobal
Default Value:[3000,3000,3000]
Description: Distance at which planes will spawn from target. How far from a target CAS plane will be spawned. Format: [min,average,max]. Values below 1000 will default to 1000. Closer means also lower - to keep constant approach pitch/incoming vertical angle, spawning altitude equals ~distance/3.
SPE_IFS_cas_speedlimit
Data Type: Number
Locality: GEGlobal
Default Value:400
Description: Maximum speed in km/h of planes.
SPE_IFS_CASActive
Data Type: Boolean
Locality: GEGlobal
Default Value:true
Description: CAS component switch (pending CAS missions will continue if turned off)
SPE_IFS_CASActivity
Data Type: Array
Locality: GEGlobal
Default Value:[[0,60,300,0,0,[],[],0],[0.1,60,300,1,2,["SPE_FW190F8",1],[],0],[0.25,10,300,1,-1,["SPE_P47",1],[],0],[0,60,300,0,0,[],[],0]]
Description: Ambient CAS configuration. [[east],[west],[independent],[civilian]]: [new spawn probability, interval since last spawn, supporting time, max planes simultaneously, total planes limit (-1 for unlimited), planes pool, current planes, last spawn time]. Requested CAS doesn't count for any limits.
SPE_IFS_CASAvailability_side
Data Type: Array
Locality: GEGlobal
Default Value:[]
Description: Players of which sides can request CAS support.
SPE_IFS_counterBatteryFireisPriority
Data Type: Boolean
Locality: GEGlobal
Default Value:true
Description: If there's known enemy artillery and this is true, counter-battery fire takes priority over opportunity fire against other targets.
SPE_AIS_IFS_DebugSwitch
Data Type: Boolean
Locality: GEGlobal
Default Value:false
Description: General debug switch. For any debugging to work, this needs to be true.
SPE_IFS_Debug
Data Type: Boolean
Locality: GEGlobal
Default Value:false
Description: Enables basic debugging. SPE_AIS_IFS_DebugSwitch needs to be [true] as well.
SPE_IFS_DebugDeep
Data Type: Boolean
Locality: GEGlobal
Default Value:false
Description: Enables even more debugging data. SPE_AIS_IFS_DebugSwitch needs to be [true] as well.
SPE_IFS_Debugswitch_Systemchat
Data Type: Boolean
Locality: GEGlobal
Default Value:false
Description: Enables additional logging via system chat. SPE_AIS_IFS_DebugSwitch needs to be [true] as well.
SPE_IFS_emergencyArtyDelay
Data Type: Number
Locality: GEGlobal
Default Value:5
Description: Additional delay between emergency arty call and fire provided.
SPE_IFS_emergencyCallBaseInterval
Data Type: Array
Locality: GEGlobal
Default Value:[[30,45,60,90,45],[30,45,60,90,45],[30,45,60,90,45],[30,45,60,90,45]]
Description: Delay before emergency call is available after each use per side: [east,west,resistance,any other], each difficulty: [recruit,regular,veteran,hardcore,custom].
SPE_IFS_emergencyCallOverUseInterval
Data Type: Array
Locality: GEGlobal
Default Value:[[30,45,60,90,45],[30,45,60,90,45],[30,45,60,90,45],[30,45,60,90,45]]
Description: Extra delay added to the SPE_IFS_EmergencyCallBaseInterval before emergency call is available after each use over the SPE_IFS_EmergencyCallsLimit per side: [east,west,resistance,any other], each difficulty: [recruit,regular,veteran,hardcore,custom].
SPE_IFS_emergencyCallsLimit
Data Type: Array
Locality: GEGlobal
Default Value:[[-1,5,3,1,3],[-1,5,3,1,3],[-1,5,3,1,3],[-1,5,3,1,3]]
Description: Emergency calls limit during the mission per side: [east,west,resistance,any other], each difficulty: [recruit,regular,veteran,hardcore,custom]. Set -1 for no limit.
SPE_IFS_emergencyCASDelay
Data Type: Number
Locality: GEGlobal
Default Value:5
Description: Additional delay between emergency CAS call and fire provided.
SPE_IFS_emergencyFireActive
Data Type: Boolean
Locality: GEGlobal
Default Value:true
Description: Available emergency support call for players.
SPE_IFS_emergencyFireImmunity
Data Type: Boolean
Locality: GEGlobal
Default Value:true
Description: If true, the caller will be immune to damage from called emergency fire.
SPE_IFS_FO
Data Type: Array
Locality: GEGlobal
Default Value:[]
Description: Units from groups put there can act as FOs for allied arty. If left empty, any unit can be a forward operator (FO).
SPE_IFS_FOClass
Data Type: Array
Locality: GEGlobal
Default Value:["spe_us_rangers_radioman","spe_us_rangers_sniper","spe_us_radioman","spe_us_sniper","spe_fr_sniper","spe_fr_radioman","spe_ger_radioman","spe_ger_scout_assist_squadlead","spe_ger_scout_ober_grenadier","spe_ger_scout_lieutenant","spe_ger_scout_mgunner2","spe_ger_scout_mgunner","spe_ger_scout_ober_rifleman","spe_ger_scout_rifleman","spe_ger_scout_squadlead","spe_ger_scout_sniper","spe_sturmtrooper_radioman","spe_sturmtrooper_sniper"]
Description: If SPE_IFS_FO is not empty, groups including units of those classes will be added to SPE_IFS_FO. Matters group's knowledge, but actual FO becomes group member located close enough with bigges altitude advantage over the target.
SPE_IFS_FOToTargetMaxDistances
Data Type: Array
Locality: GEGlobal
Default Value:[50,150,250]
Description: Maximal FO-to-potential target distances in meters for target to be validated, [when FO is >10m lower, than potential target, when both on similar ASL height,when FO is >10m higher, than potential target].
SPE_IFS_immuneFX_ringing
Data Type: Boolean
Locality: GEGlobal
Default Value:false
Description: if true, ear ringing sound FX for harmless artillery hits is audible.
SPE_IFS_incomingMarkRange
Data Type: Number
Locality: GEGlobal
Default Value:1000
Description: How far in meters 3D marks of incoming fire should be visible. Marks start to fade out at 90% of that distance.
SPE_IFS_incomingNotificationRange
Data Type: Number
Locality: GEGlobal
Default Value:300
Description: How far in meters on screen notifications about incoming ambient fire should be displayed.
SPE_IFS_interval
Data Type: Number
Locality: GEGlobal
Default Value:2
Description: Interval in seconds between main IFS cycles.
SPE_IFS_lightArtyClasses
Data Type: Array
Locality: GEGlobal
Default Value:["spe_m1_81","spe_grw278_1"]
Description: Vehicles classes of light artillery assets. Lower-case only!
SPE_IFS_limitShotsToCurrentMagazineRounds
Data Type: Boolean
Locality: GEGlobal
Default Value:false
Description: If true, number of shells fired per arty mission will be capped to current magaizne ammo count. Otherwise, if magazine is emptied in the middle of fire mission, mission will be continued after reloading.
SPE_IFS_monogamy
Data Type: Boolean
Locality: GEGlobal
Default Value:true
Description: If true, only one battery should aim at given target.
SPE_IFS_mort_spawnDirection
Data Type: Array
Locality: GEGlobal
Default Value:[]
Description: An azimuth direction in degrees/bearing, the requested mortar fire will come from. Format [bearing,spread]. Formula used: ((_bearing - _spread) + (random (_spread * 2))). Leave empty array to spawn arty fire "from behind the requestor"
SPE_IFS_mortarClasses
Data Type: Array
Locality: GEGlobal
Default Value:["spe_m1_81","spe_grw278_1"]
Description: Vehicles classes that represent mortars. Lower-case only!
SPE_IFS_pause
Data Type: Boolean
Locality: GEGlobal
Default Value:false
Description: IFS will wait with initialization and next main loop cycle until this is false.
SPE_IFS_planes_civ
Data Type: Array
Locality: GEGlobal
Default Value:[]
Description: Weighted randomization of civilian CAS planes.
SPE_IFS_planes_east
Data Type: Array
Locality: GEGlobal
Default Value:[]
Description: Weighted randomization of east CAS planes.
SPE_IFS_planes_ind
Data Type: Array
Locality: GEGlobal
Default Value:["SPE_P47",1]
Description: Weighted randomization of independent CAS planes.
SPE_IFS_planes_west
Data Type: Array
Locality: GEGlobal
Default Value:["SPE_FW190F8",1]
Description: Weighted randomization of west CAS planes.
SPE_IFS_progressCallWhenInvalid
Data Type: Boolean
Locality: GEGlobal
Default Value:true
Description: If true, the call progress will be not paused if aimed position is invalid.
SPE_IFS_requestedHeavyArtyAmmo
Data Type: Array
Locality: GEGlobal
Default Value:["SPE_60Rnd_M8","SPE_20x_Shell_105L28_Gr38_HE","SPE_60Rnd_M8","SPE_60Rnd_M8"]
Description: Artillery magazine used for heavy artillery support request [east,west,resistance,any other].
SPE_IFS_requestedHeavyArtyAmount
Data Type: Number
Locality: GEGlobal
Default Value:6
Description: Heavy arty shells count per request.
SPE_IFS_requestedHeavyArtyETA
Data Type: Number
Locality: GEGlobal
Default Value:30
Description: Heavy artillery ETA in seconds from request to shells appearance.
SPE_IFS_requestedHeavyArtyGunsAmount
Data Type: Array
Locality: GEGlobal
Default Value:[1,3,1,1]
Description: How many heavy arty assets will provide the requested support - determines intervals between shells [east,west,resistance,any other].
SPE_IFS_requestedHeavyArtyGunsROF
Data Type: Array
Locality: GEGlobal
Default Value:[0.5,5,0.5,0.5]
Description: How fast each heavy arty asset can shoot [east,west,resistance,any other].
SPE_IFS_requestedHeavyArtySpread
Data Type: Number
Locality: GEGlobal
Default Value:150
Description: Shells spread in meters of heavy arty type of requested support.
SPE_IFS_requestedMortarAmmo
Data Type: Array
Locality: GEGlobal
Default Value:["SPE_8Rnd_81mmHE_M1_M43A1","SPE_8Rnd_81mm_FA_Mle_1932_HE","SPE_8Rnd_81mmHE_M1_M43A1","SPE_8Rnd_81mmHE_M1_M43A1"]
Description: Artillery magazine used for heavy artillery support request [east,west,resistance,any other].
SPE_IFS_requestedMortarAmount
Data Type: Number
Locality: GEGlobal
Default Value:6
Description: Mortar shells count per request.
SPE_IFS_requestedMortarETA
Data Type: Number
Locality: GEGlobal
Default Value:15
Description: Mortar ETA in seconds from request to shells appearance.
SPE_IFS_requestedMortarGunsAmount
Data Type: Array
Locality: GEGlobal
Default Value:[3,3,3,3]
Description: How many mortars will provide the requested support - determines shells grouping [east,west,resistance,any other].
SPE_IFS_requestedMortarGunsROF
Data Type: Array
Locality: GEGlobal
Default Value:[2,2,2,2]
Description: How fast each heavy arty asset can shoot [east,west,resistance,any other].
SPE_IFS_requestedMortarSpread
Data Type: Number
Locality: GEGlobal
Default Value:100
Description: Mortar spread in meters of mortar type of requested support.
SPE_IFS_requestedSupportAvailabilityDelay
Data Type: Array
Locality: GEGlobal
Default Value:[[60,180,60],[60,180,60],[60,180,60],[60,180,60]]
Description: Delay before each type of call is available for a player after last performed support, he called, per side: [east,west,resistance,any other] - each side entry: [mortars,heavy artillery,CAS]. This delay is added to some minimal base delay ("reloading"/"preparing", 5s for mortars, 10s for artillery, 15s for CAS).
SPE_IFS_safetyDistance_cas
Data Type: Array
Locality: GEGlobal
Default Value:[50,50,50,50]
Description: Friendly units closer than this value (in meters, reduced by target's value) will invalidate potential CAS target. Per side: [east,west,resistance,other].
SPE_IFS_safetyDistance_heavyArty
Data Type: Array
Locality: GEGlobal
Default Value:[100,100,100,100]
Description: Friendly units closer than this value (in meters, reduced by target's value) will invalidate potential non-mortar artillery target. Per side: [east,west,resistance,other].
SPE_IFS_safetyDistance_mortarArty
Data Type: Array
Locality: GEGlobal
Default Value:[25,25,25,25]
Description: Friendly units closer than this value (in meters, reduced by target's value) will invalidate potential mortar artillery target. Per side: [east,west,resistance,other].
SPE_IFS_shouldBlacklistBlockRequestedSupport
Data Type: Boolean
Locality: GEGlobal
Default Value:false
Description: If true, players should be unable to call requested supports on blacklisted targets, too close to them or located inside blacklisted areas
SPE_IFS_sides
Data Type: Array
Locality: GEGlobal
Default Value:[EAST,WEST,GUER]
Description: Sides that have access to IFS.
SPE_IFS_spottingRound
Data Type: Array
Locality: GEGlobal
Default Value:[EAST,WEST,GUER]
Description: Spotting round preceeding artillery barrage per side.
SPE_IFS_targetBlacklist
Data Type: Array
Locality: GEGlobal
Default Value:[]
Description: IFS will not target these entities and will try to not hit these objects.
SPE_IFS_targetMaxSpeeds
Data Type: Array
Locality: GEGlobal
Default Value:[10,30]
Description: Maximal target speed to become a target and maintain artillery aim [(playabe/switchable units in the target's crew),otherwise]
SPE_IFS_targetReportingDelay
Data Type: Array
Locality: GEGlobal
Default Value:[[30,30,30,30],[30,30,30,30],[30,30,30,30],[30,30,30,30]]
Description: How long (in seconds) it takes from potential target detection until it may become a valid IFS target, per side ([east,west,resistance,any other]), each side per difficulty ([recruit,regular,veteran,hardcore,custom]);
SPE_IFS_worthyInfantryRadius
Data Type: Array
Locality: GEGlobal
Default Value:[[100,150,25],[100,150,25],[100,150,25],[100,150,25]]
Description: How far around the infantry target to search for other targets to determine, if target is worthy; per side [east,west,resistance,any other (ignored by arty)], each per type [light arty,heavy arty,CAS].
SPE_IFS_worthyInfantryTarget
Data Type: Array
Locality: GEGlobal
Default Value:[[2,4,0],[2,4,0],[2,4,0],[2,4,0]]
Description: How many allied combatant entities around infantry unit must be present to accept it as potential target for arty (150m radius) or CAS (25m radius); per side [east,west,resistance,any other (ignored by arty)], each per type [light arty,heavy arty,CAS].
Direct Support (DS)
SPE_IFS_DS_checkfriendlyfire
Data Type: Boolean
Locality: GEGlobal
Default Value:false
Description: Should friendly units presence stop direct support.
SPE_IFS_DS_checkproviderlos
Data Type: Boolean
Locality: GEGlobal
Default Value:false
Description: Should direct support provider require not obstructed LOS 25m in front of the gunner in order to fire.
SPE_IFS_DS_interval
Data Type: Number
Locality: GEGlobal
Default Value:10
Description: How long a player has to wait to call direct support again in seconds.
SPE_IFS_DS_providerBlacklist
Data Type: Array
Locality: GEGlobal
Default Value:["spe_m4a1_t34_calliope"]
Description: Vehicle classes that are blacklisted from being a direct support provider. Lower-case only!
SPE_IFS_DS_providingTime
Data Type: Number
Locality: GEGlobal
Default Value:30
Description: How long provider will perform direct support in seconds.
SPE_IFS_DSavailability_side
Data Type: Array
Locality: GEGlobal
Default Value:[WEST,EAST,GUER]
Description: To which sides should direct support be available.
SPE_IFS_DSMaxRange
Data Type: Number
Locality: GEGlobal
Default Value:500
Description: How far tanks can provide direct support (tested up to 1000m). Will be reduced to objects draw distance, if draw distance is lesser.
SPE_IFS_DSRadius
Data Type: Number
Locality: GEGlobal
Default Value:10
Description: Defines how close a player needs to be to a tank in meters to have the direct support action.
Entity Variables
SPE_IFSExcluded
Data Type: Boolean
Default Value:false
Description: Excludes given entity from IFS.
Example:_entity setVariable ["SPE_IFSExcluded", true];