Mitharg

THE ROUND TABLE -CORE - Gulf

May 13th, 2021
653
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --[[
  2.         ████████╗██╗  ██╗███████╗    ██████╗  ██████╗ ██╗   ██╗███╗   ██╗██████╗     ████████╗ █████╗ ██████╗ ██╗     ███████╗
  3.         ╚══██╔══╝██║  ██║██╔════╝    ██╔══██╗██╔═══██╗██║   ██║████╗  ██║██╔══██╗    ╚══██╔══╝██╔══██╗██╔══██╗██║     ██╔════╝
  4.            ██║   ███████║█████╗      ██████╔╝██║   ██║██║   ██║██╔██╗ ██║██║  ██║       ██║   ███████║██████╔╝██║     █████╗  
  5.            ██║   ██╔══██║██╔══╝      ██╔══██╗██║   ██║██║   ██║██║╚██╗██║██║  ██║       ██║   ██╔══██║██╔══██╗██║     ██╔══╝  
  6.            ██║   ██║  ██║███████╗    ██║  ██║╚██████╔╝╚██████╔╝██║ ╚████║██████╔╝       ██║   ██║  ██║██████╔╝███████╗███████╗
  7.            ╚═╝   ╚═╝  ╚═╝╚══════╝    ╚═╝  ╚═╝ ╚═════╝  ╚═════╝ ╚═╝  ╚═══╝╚═════╝        ╚═╝   ╚═╝  ╚═╝╚═════╝ ╚══════╝╚══════╝
  8.                                                                                                                              
  9.                                                     ██████╗ ██╗   ██╗                                                        
  10.                                                     ██╔══██╗╚██╗ ██╔╝                                                        
  11.                                                     ██████╔╝ ╚████╔╝                                                          
  12.                                                     ██╔══██╗  ╚██╔╝                                                          
  13.                                                     ██████╔╝   ██║                                                            
  14.                                                     ╚═════╝    ╚═╝                                                            
  15.                                                                                                                              
  16.                                 ███╗   ███╗██╗████████╗██╗  ██╗            █████╗ ██████╗  ██████╗                            
  17.                                 ████╗ ████║██║╚══██╔══╝██║  ██║           ██╔══██╗██╔══██╗██╔════╝                            
  18.                                 ██╔████╔██║██║   ██║   ███████║           ███████║██████╔╝██║  ███╗                          
  19.                                 ██║╚██╔╝██║██║   ██║   ██╔══██║           ██╔══██║██╔══██╗██║   ██║                          
  20.                                 ██║ ╚═╝ ██║██║   ██║   ██║  ██║    ██╗    ██║  ██║██║  ██║╚██████╔╝                          
  21.                                 ╚═╝     ╚═╝╚═╝   ╚═╝   ╚═╝  ╚═╝    ╚═╝    ╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝                            
  22.                                                                                                                              
  23.                                                                                                                              
  24.                                                                                                                              
  25.                                                                                                                              
  26.                                                                                                                              
  27.                                                                                                                              
  28.                                                                                                                              
  29.                                                                                                                              
  30.                      ██████╗ ██╗   ██╗██╗     ███████╗    ███████╗██████╗ ██╗████████╗██╗ ██████╗ ███╗   ██╗                  
  31.                     ██╔════╝ ██║   ██║██║     ██╔════╝    ██╔════╝██╔══██╗██║╚══██╔══╝██║██╔═══██╗████╗  ██║                  
  32.                     ██║  ███╗██║   ██║██║     █████╗      █████╗  ██║  ██║██║   ██║   ██║██║   ██║██╔██╗ ██║                  
  33.                     ██║   ██║██║   ██║██║     ██╔══╝      ██╔══╝  ██║  ██║██║   ██║   ██║██║   ██║██║╚██╗██║                  
  34.                     ╚██████╔╝╚██████╔╝███████╗██║         ███████╗██████╔╝██║   ██║   ██║╚██████╔╝██║ ╚████║                  
  35.                      ╚═════╝  ╚═════╝ ╚══════╝╚═╝         ╚══════╝╚═════╝ ╚═╝   ╚═╝   ╚═╝ ╚═════╝ ╚═╝  ╚═══╝                  
  36.  
  37. --]]
  38.  
  39. --↓↓ ZONES ↓↓-----------------------------------------------------------------------------------------------------------
  40. zone1 = ZONE:New("Zona 001")
  41. zone2 = ZONE:New("Zona 002")
  42. zone3 = ZONE:New("Zona 003")
  43. zone4 = ZONE:New("Zona 004")
  44. zone5 = ZONE:New("Zona 005")
  45. zone6 = ZONE:New("Zona 006")
  46. zone7 = ZONE:New("Zona 007")
  47. zone8 = ZONE:New("Zona 008")
  48. zone9 = ZONE:New("Zona 009")
  49. zone10 = ZONE:New("Zona 010")
  50. zone11 = ZONE:New("Zona 011")
  51. zone12 = ZONE:New("Zona 012")
  52. zone13 = ZONE:New("Zona 013")
  53. zone14 = ZONE:New("Zona 014")
  54. zone15 = ZONE:New("Zona 015")
  55. zone16 = ZONE:New("Zona 016")
  56. zone17 = ZONE:New("Zona 017")
  57. zone18 = ZONE:New("Zona 018")
  58. zone19 = ZONE:New("Zona 019")
  59. zone20 = ZONE:New("Zona 020")
  60. zone21 = ZONE:New("Zona 021")
  61. zone22 = ZONE:New("Zona 022")
  62. zone23 = ZONE:New("Zona 023")
  63. zone24 = ZONE:New("Zona 024")
  64. zone25 = ZONE:New("Zona 025")
  65. zone26 = ZONE:New("Zona 026")
  66. zone27 = ZONE:New("Zona 027")
  67. zone28 = ZONE:New("Zona 028")
  68. zone29 = ZONE:New("Zona 029")
  69. zone30 = ZONE:New("Zona 030")
  70. zone31 = ZONE:New("Zona 031")
  71. zone32 = ZONE:New("Zona 032")
  72. zone33 = ZONE:New("Zona 033")
  73. zone34 = ZONE:New("Zona 034")
  74. zone35 = ZONE:New("Zona 035")
  75. zone36 = ZONE:New("Zona 036")
  76. zone37 = ZONE:New("Zona 037")
  77. zone38 = ZONE:New("Zona 038")
  78. zone39 = ZONE:New("Zona 039")
  79. zone40 = ZONE:New("Zona 040")
  80. zone41 = ZONE:New("Zona 041")
  81. zone42 = ZONE:New("Zona 042")
  82. zone43 = ZONE:New("Zona 043")
  83. zone44 = ZONE:New("Zona 044")
  84. zone45 = ZONE:New("Zona 045")
  85. zone46 = ZONE:New("Zona 046")
  86. zone47 = ZONE:New("Zona 047")
  87. zone48 = ZONE:New("Zona 048")
  88. zone49 = ZONE:New("Zona 049")
  89. zone50 = ZONE:New("Zona 050")
  90. zone51 = ZONE:New("Zona 051")
  91. zone52 = ZONE:New("Zona 052")
  92. zone53 = ZONE:New("Zona 053")
  93. zone54 = ZONE:New("Zona 054")
  94. zone55 = ZONE:New("Zona 055")
  95. zone56 = ZONE:New("Zona 056")
  96. zone57 = ZONE:New("Zona 057")
  97. zone58 = ZONE:New("Zona 058")
  98. zone59 = ZONE:New("Zona 059")
  99. zone60 = ZONE:New("Zona 060")
  100. zone61 = ZONE:New("Zona 061")
  101. zone62 = ZONE:New("Zona 062")
  102. zone63 = ZONE:New("Zona 063")
  103. zone64 = ZONE:New("Zona 064")
  104. zone65 = ZONE:New("Zona 065")
  105. zone66 = ZONE:New("Zona 066")
  106. zone67 = ZONE:New("Zona 067")
  107. zone68 = ZONE:New("Zona 068")
  108. zone69 = ZONE:New("Zona 069")
  109. zone70 = ZONE:New("Zona 070")
  110. zone71 = ZONE:New("Zona 071")
  111. zone72 = ZONE:New("Zona 072")
  112. zone73 = ZONE:New("Zona 073")
  113. zone74 = ZONE:New("Zona 074")
  114. zone75 = ZONE:New("Zona 075")
  115. zone76 = ZONE:New("Zona 076")
  116. zone77 = ZONE:New("Zona 077")
  117. zone78 = ZONE:New("Zona 078")
  118. zone79 = ZONE:New("Zona 079")
  119. zone80 = ZONE:New("Zona 080")
  120. zone81 = ZONE:New("Zona 081")
  121. zone82 = ZONE:New("Zona 082")
  122. zone83 = ZONE:New("Zona 083")
  123. zone84 = ZONE:New("Zona 084")
  124. zone85 = ZONE:New("Zona 085")
  125. zone86 = ZONE:New("Zona 086")
  126. zone87 = ZONE:New("Zona 087")
  127. zone88 = ZONE:New("Zona 088")
  128. zone89 = ZONE:New("Zona 089")
  129. zone90 = ZONE:New("Zona 090")
  130. zone91 = ZONE:New("Zona 091")
  131. zone92 = ZONE:New("Zona 092")
  132. zone93 = ZONE:New("Zona 093")
  133. zone94 = ZONE:New("Zona 094")
  134. zone95 = ZONE:New("Zona 095")
  135. zone96 = ZONE:New("Zona 096")
  136. zone97 = ZONE:New("Zona 097")
  137. zone98 = ZONE:New("Zona 098")
  138. zone99 = ZONE:New("Zona 099")
  139. zone100 = ZONE:New("Zona 100")
  140. zone101 = ZONE:New("Zona 101")
  141. zone102 = ZONE:New("Zona 102")
  142. zone103 = ZONE:New("Zona 103")
  143. zone104 = ZONE:New("Zona 104")
  144. zone105 = ZONE:New("Zona 105")
  145. zone106 = ZONE:New("Zona 106")
  146. zone107 = ZONE:New("Zona 107")
  147. zone108 = ZONE:New("Zona 108")
  148. zone109 = ZONE:New("Zona 109")
  149. zone110 = ZONE:New("Zona 110")
  150. zone111 = ZONE:New("Zona 111")
  151. zone112 = ZONE:New("Zona 112")
  152. zone113 = ZONE:New("Zona 113")
  153. zone114 = ZONE:New("Zona 114")
  154. zone115 = ZONE:New("Zona 115")
  155. zone116 = ZONE:New("Zona 116")
  156. zone117 = ZONE:New("Zona 117")
  157. zone118 = ZONE:New("Zona 118")
  158. zone119 = ZONE:New("Zona 119")
  159. zone120 = ZONE:New("Zona 120")
  160. zone121 = ZONE:New("Zona 121")
  161. zone122 = ZONE:New("Zona 122")
  162. zone123 = ZONE:New("Zona 123")
  163. zone124 = ZONE:New("Zona 124")
  164. zone125 = ZONE:New("Zona 125")
  165. zone126 = ZONE:New("Zona 126")
  166. zone127 = ZONE:New("Zona 127")
  167. zone128 = ZONE:New("Zona 128")
  168. zone129 = ZONE:New("Zona 129")
  169. zone130 = ZONE:New("Zona 130")
  170. zone131 = ZONE:New("Zona 131")
  171. zone132 = ZONE:New("Zona 132")
  172. zone133 = ZONE:New("Zona 133")
  173. zone134 = ZONE:New("Zona 134")
  174. zone135 = ZONE:New("Zona 135")
  175. zone136 = ZONE:New("Zona 136")
  176. zone137 = ZONE:New("Zona 137")
  177. zone138 = ZONE:New("Zona 138")
  178. zone139 = ZONE:New("Zona 139")
  179. zone140 = ZONE:New("Zona 140")
  180. zone141 = ZONE:New("Zona 141")
  181. zone142 = ZONE:New("Zona 142")
  182. zone143 = ZONE:New("Zona 143")
  183. zone144 = ZONE:New("Zona 144")
  184. zone145 = ZONE:New("Zona 145")
  185. zone146 = ZONE:New("Zona 146")
  186. zone147 = ZONE:New("Zona 147")
  187. zone148 = ZONE:New("Zona 148")
  188. zone149 = ZONE:New("Zona 149")
  189. zone150 = ZONE:New("Zona 150")
  190.  
  191. HeliZone1 = ZONE:New("ZonaHELI 001")
  192. HeliZone2 = ZONE:New("ZonaHELI 002")
  193. HeliZone3 = ZONE:New("ZonaHELI 003")
  194. HeliZone4 = ZONE:New("ZonaHELI 004")
  195. HeliZone5 = ZONE:New("ZonaHELI 005")
  196. HeliZone6 = ZONE:New("ZonaHELI 006")
  197. HeliZone7 = ZONE:New("ZonaHELI 007")
  198. HeliZone8 = ZONE:New("ZonaHELI 008")
  199. HeliZone9 = ZONE:New("ZonaHELI 009")
  200. HeliZone10 = ZONE:New("ZonaHELI 010")
  201. HeliZone11 = ZONE:New("ZonaHELI 011")
  202. HeliZone12 = ZONE:New("ZonaHELI 012")
  203. HeliZone13 = ZONE:New("ZonaHELI 013")
  204. HeliZone14 = ZONE:New("ZonaHELI 014")
  205. HeliZone15 = ZONE:New("ZonaHELI 015")
  206. HeliZone16 = ZONE:New("ZonaHELI 016")
  207. HeliZone17 = ZONE:New("ZonaHELI 017")
  208. HeliZone18 = ZONE:New("ZonaHELI 018")
  209. HeliZone19 = ZONE:New("ZonaHELI 019")
  210. HeliZone20 = ZONE:New("ZonaHELI 020")
  211. HeliZone21 = ZONE:New("ZonaHELI 021")
  212. HeliZone22 = ZONE:New("ZonaHELI 022")
  213. HeliZone23 = ZONE:New("ZonaHELI 023")
  214. HeliZone24 = ZONE:New("ZonaHELI 024")
  215. HeliZone25 = ZONE:New("ZonaHELI 025")
  216. HeliZone26 = ZONE:New("ZonaHELI 026")
  217. HeliZone27 = ZONE:New("ZonaHELI 027")
  218. HeliZone28 = ZONE:New("ZonaHELI 028")
  219. HeliZone29 = ZONE:New("ZonaHELI 029")
  220. HeliZone30 = ZONE:New("ZonaHELI 030")
  221. HeliZone31 = ZONE:New("ZonaHELI 031")
  222. HeliZone32 = ZONE:New("ZonaHELI 032")
  223. HeliZone33 = ZONE:New("ZonaHELI 033")
  224. HeliZone34 = ZONE:New("ZonaHELI 034")
  225. HeliZone35 = ZONE:New("ZonaHELI 035")
  226. HeliZone36 = ZONE:New("ZonaHELI 036")
  227. HeliZone37 = ZONE:New("ZonaHELI 037")
  228. HeliZone38 = ZONE:New("ZonaHELI 038")
  229. HeliZone39 = ZONE:New("ZonaHELI 039")
  230. HeliZone40 = ZONE:New("ZonaHELI 040")
  231.  
  232.  
  233. navzone1 = ZONE:New("ZONA NAVAL 01")
  234. navzone2 = ZONE:New("ZONA NAVAL 02")
  235. navzone3 = ZONE:New("ZONA NAVAL 03")
  236. navzone4 = ZONE:New("ZONA NAVAL 04")
  237. navzone5 = ZONE:New("ZONA NAVAL 05")
  238. navzone6 = ZONE:New("ZONA NAVAL 06")
  239. navzone7 = ZONE:New("ZONA NAVAL 07")
  240. navzone8 = ZONE:New("ZONA NAVAL 08")
  241. navzone9 = ZONE:New("ZONA NAVAL 09")
  242. navzone10 = ZONE:New("ZONA NAVAL 10")
  243.  
  244. --↓↓ TABLES ↓↓---------------------------------------------------------------------------------------------------------
  245. BriefingBAITable = {
  246.     "Our Navy Seals have seen Enemy troops using this facility. Command has authorised and immediate Strike.",
  247.     "Command has observed this target from satellite reconnaisance and ordered an airstrike.",
  248.     "Previous airstrikes on this target have missed, the target is now available for replanning.",
  249.     "This is a key Opfor strategic target. Command has designated it for immediate destruction.",
  250.     "One package has marked a new area with enemy targets. Command has designated them for immediate destruction .",
  251.     }
  252.    
  253.     BriefingSEADTable = {
  254.     "The enemy air defenses begin to be really dangerous in the target area. The high command has ordered a SEAD strike",
  255.     "Several packages were lost in the target zone, we must reduce the enemy's defensive capacity as soon as possible.",
  256.     "Our recon teams managed to spot a SAM site. The high command orders a SEAD in that area",
  257.     "We have marked a new SAM site. HQ wants those radars disabled as soon as possible",
  258.     }
  259.    
  260.     BriefingNAVTable = {
  261.     "Enemy ship in the area. The High Command orders its neutralization",
  262.     "The presence of a new enemy vessel was detected in the area. Destroy it",
  263.     "This ship escaped several times from our attempts to destroy it, hunt it once and for all",
  264.     }
  265.    
  266.  
  267.  
  268. TemplateZones = {zone1,zone2,zone3,zone4, zone5, zone6, zone7, zone8, zone9, zone10, zone11, zone12, zone13, zone14, zone15, zone16, zone17, zone18, zone19, zone20, zone21, zone22, zone23, zone24, zone25, zone26, zone27, zone28, zone29, zone30, zone31, zone32, zone33,zone34, zone35, zone36, zone37, zone38, zone39, zone40, zone41, zone42, zone43, zone44, zone45, zone46, zone47, zone48, zone49, zone50, zone51, zone52, zone53, zone54, zone55, zone56, zone57, zone58, zone59, zone60, zone61, zone62, zone63, zone64, zone65, zone66, zone67, zone68, zone69, zone70, zone71, zone72, zone73, zone74, zone75, zone76, zone77, zone78, zone79, zone80, zone81, zone82, zone83, zone84, zone85, zone86, zone87, zone88, zone89, zone90, zone91, zone92, zone93, zone94, zone95, zone96, zone97, zone98, zone99, zone100, zone101, zone102, zone103, zone104, zone105, zone106, zone107, zone108, zone109, zone110, zone111, zone112, zone113, zone114, zone115, zone116, zone117, zone118, zone119, zone120, zone121, zone122, zone123, zone124, zone125, zone126, zone127, zone128, zone129, zone130, zone131, zone132, zone133, zone134, zone135, zone136, zone137, zone138, zone139, zone140, zone141, zone142, zone143, zone144, zone145, zone146, zone147, zone148, zone149, zone150}
  269. TemplateHELOZones = {HeliZone1, HeliZone2, HeliZone3, HeliZone4, HeliZone5, HeliZone6, HeliZone7, HeliZone8, HeliZone9, HeliZone10, HeliZone11, HeliZone12, HeliZone13, HeliZone14, HeliZone15, HeliZone16, HeliZone17, HeliZone18, HeliZone19, HeliZone20, HeliZone21, HeliZone22, HeliZone23, HeliZone24, HeliZone25, HeliZone26, HeliZone27, HeliZone28, HeliZone29, HeliZone30, HeliZone31, HeliZone32, HeliZone33, HeliZone34, HeliZone35, HeliZone36, HeliZone37, HeliZone38, HeliZone39, HeliZone40}
  270. TemplateNavalZones = {navzone1, navzone2, navzone3, navzone4, navzone5, navzone6,navzone7,navzone8,navzone9,navzone10}
  271. TemplateBAI = {"Template0001","Template0002","Template0003","Template0004","Template0005","Template0006","Template0007","Template0008","Template0009","Template0010","Template0011","fob1_red","fob2_red","fob3_red","fob5_red","fob6_red", "Template0012", "Template0013", "Template0014", "Template0015", "Template0016", "Template0017"}
  272. TemplateHELOBAI = {"Template0001", "Template0003", "Template0005", "Template0006", "Template0008", "Template0010", "Template0012", "HELI_Template0001", "HELI_Template0002", "HELI_Template0003", "HELI_Template0004", "HELI_Template0005", "HELI_Template0006"}
  273. TemplateNavBAI = {"Navtgt 0001","Navtgt 0002","Navtgt 0003", "Navtgt 0004", "Navtgt 0005", "Navtgt 0006"}
  274. TemplateSEAD = {"s3_red", "s2_red", "s6_red", "buk_red", "s11_red", "s10_red", "osa_red", "strela_red", "tunguska_red", "tor_red"}
  275. ColourTable = {"Red","White","Black","Yellow","Green","Blue","Purple","Orange","Grey","Ivory","Jade","Scarlet","Silver","Deadly","Lively","Rough","Smooth","Bright","Insane","Cheap","Cruel","Dirty","Exhausted","Fat","Hollow","Hot","Huge","Loud","Messy","Quick","Quiet","Serious","Sharp","Solid","Spicy","Strange","Sudden","Tight","Violent","Wet","Ugly","Wise"}
  276. NounTable = {"Scorpion","Leopard","Dog","Tiger","Pig","Wolf","Warlock","Shaman","Paladin","Warrior","Druid","Rogue","Samurai","Assassin","Sniper","Marksman","Frost","Fire","Tornado","Affliction","Fury","Hands","Windwalker","Retribution","Blood","Cat","Cow","Hole","Snake","Rain","Sand","Sister","Soldier","War","Solution","Star"}
  277.  
  278. --↓↓ TABLES / ARRAYS ↓↓------------------------------------------------------------------------------------------------
  279. BAI={}
  280. BAIHARD={}
  281. NavBAI={}
  282. SEAD={}
  283. HELOBAI = {}
  284. TargetSetUnitBAI={}
  285. TargetSetUnitBAIHARD={}
  286. TargetSetUnitNavBAI={}
  287. TargetSetUnitSEAD={}
  288. TargetSetUnitHELO_BAI = {}
  289. TaskBAI={}
  290. TaskBAIHARD={}
  291. TaskNavBAI={}
  292. TaskSEAD={}
  293. TaskHELOBAI = {}
  294. TaskTableBAI={}
  295. TaskTableBAIHARD={}
  296. TaskTableSEAD={}
  297. TaskTableNavBAI={}
  298. TaskTable_CSAR={}
  299. TaskTable_HELO_BAI = {}
  300. BAIJTAC={}
  301. BAIHARDJTAC={}
  302. SEADJTAC={}
  303. ClientSet={}
  304. --↓↓ CUSTOM FUNCTIONS ↓↓-----------------------------------------------------------------------------------------------
  305. function RandOpName()
  306. local Colour = ColourTable[math.random(1,table.getn(ColourTable))]
  307. local Noun = NounTable[math.random(1,table.getn(NounTable))]
  308. return Colour .." ".. Noun
  309. end
  310.  
  311. function RandSQDN_name()
  312.   local Colour = ColourTable[math.random(1,table.getn(ColourTable))]
  313.   local Noun = NounTable[math.random(1,table.getn(NounTable))]
  314.   return Colour .." ".. Noun
  315.   end
  316.  
  317. function MissionTextBAI()
  318. local Briefing = BriefingBAITable[math.random(1,table.getn(BriefingBAITable))]
  319. return Briefing
  320. end
  321.  
  322. function MissionTextNAV()
  323. local Briefing = BriefingNAVTable[math.random(1,table.getn(BriefingNAVTable))]
  324. return Briefing
  325. end
  326.  
  327. function MissionTextSEAD()
  328. local Briefing = BriefingSEADTable[math.random(1,table.getn(BriefingSEADTable))]
  329. return Briefing
  330. end
  331.  
  332. function randomnumber()
  333. local rng = math.random(1,100000)
  334. return rng
  335. end
  336.  
  337. function randomcolor()
  338. local color = math.random(0,4)
  339. return color
  340. end
  341.  
  342. function Serialise(object)
  343. local Resulttable = routines.utils.oneLineSerialize(object)
  344. return Resulttable
  345. end
  346. function Fun_LocX()
  347.     local LocX = math.random(100,500)
  348.     return LocX
  349.     end
  350.  
  351. function Fun_LocY()
  352.     local LocY = math.random(100,500)
  353.     return LocY
  354. end
  355.  
  356. --↓↓ INIT ↓↓------------------------------------------------------------------------------------------------------------------------------------------------------
  357. _SETTINGS:SetPlayerMenuOff()
  358. RadioAmbienteActivada_AA = 1
  359. RadioAmbienteActivada_AG = 1
  360. SoundLockout = 0
  361. ActiveTasksbai = false
  362. ActiveTasksbai_HARD = false
  363. ActiveTasksNAVbai = false
  364. ActiveTasksSead = false
  365. ActiveTasks_heliBAI = false
  366. enable_jtac_drones = true
  367.  
  368.  
  369. local SamSet = SET_GROUP:New():FilterPrefixes("✦ SEAD"):FilterCoalitions("red"):FilterStart()
  370. myshorad = SHORAD:New("RED_Shorad", "Red SHORAD", SamSet, 22000, 120, "red")
  371.  
  372. MenuCoalition_BLUE_TASK = MENU_COALITION:New(coalition.side.BLUE, '➣[ACTIVE TASKS]')
  373. --↓↓ BAI TASK ↓↓----------------------------------------------------------------------------------------------------------------------------------------------------
  374. if enable_BAI_tasks == true then
  375.     function MakeTaskBAI()
  376.         local RngNum = randomnumber()
  377.         local RngCol = randomcolor()
  378.         local Rng_OP_NAME1 = RandOpName()
  379.         local Rng_OP_Brief_BAI = MissionTextBAI()
  380.         local RNGzone1 = math.random(1, #(TemplateZones))
  381.         local tempRandGroup1 = math.random(1, #(TemplateBAI))
  382.         local tempGrpAlias1 = '✧ BAI' .. RngNum
  383.         local LocX = Fun_LocX()
  384.         local LocY = Fun_LocY()
  385.  
  386.         BAI_task =
  387.             SPAWN:NewWithAlias(TemplateBAI[tempRandGroup1], tempGrpAlias1):OnSpawnGroup(
  388.             function(SpawnGroup)
  389.                 location1 = SpawnGroup:GetCoordinate()
  390.                 BAI_Marker_Loc = SpawnGroup:GetCoordinate()
  391.                 BAI_Amenaza = SpawnGroup:GetThreatLevel()
  392.                 newlocation1 = location1:GetRandomVec2InRadius(10, 50)
  393.                 FLAKlocation1 = location1:GetRandomVec2InRadius(2000, 3500)
  394.                 FLAKlocation2 = location1:GetRandomVec2InRadius(2000, 3500)
  395.                 FLAK_FAW_location1 = location1:GetRandomVec2InRadius(LocX, LocY)
  396.                 FLAK_FAW_location2 = location1:GetRandomVec2InRadius(LocX, LocY)
  397.  
  398.                 BAIMAPMARKER =
  399.                     MARKER:New(
  400.                     BAI_Marker_Loc,
  401.                     '⇨ Op: ' ..
  402.                         Rng_OP_NAME1 ..
  403.                             ' ⇦ ☾ BAI ☽ :' ..
  404.                                 '\n' ..
  405.                                     BAI_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  406.                                         '\n' .. BAI_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy())
  407.                 ):ToAll():ReadOnly()
  408.                 function BAI_INFO_MENU(SpawnGroup)
  409.                     BAI_INFO =
  410.                         trigger.action.outText(
  411.                         '⇨ Operation: ' ..
  412.                             Rng_OP_NAME1 ..
  413.                                 ' ⇦ ☾ BAI ☽' ..
  414.                                     '\n \n' ..
  415.                                         Rng_OP_Brief_BAI ..
  416.                                             '\n \n' ..
  417.                                                 BAI_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  418.                                                     '\n' ..
  419.                                                         BAI_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  420.                                                             '\n' ..
  421.                                                                 BAI_Marker_Loc:ToStringMGRS(SETTINGS:SetLL_Accuracy()),
  422.                         60
  423.                     )
  424.                 end
  425.  
  426.                 MenuCoalition_BLUE_TASK_BAI =
  427.                     MENU_COALITION_COMMAND:New(
  428.                     coalition.side.BLUE,
  429.                     '⇨ ' .. Rng_OP_NAME1 .. ' ⇦ ☾ BAI ☽',
  430.                     MenuCoalition_BLUE_TASK,
  431.                     BAI_INFO_MENU
  432.                 )
  433.  
  434.                 trigger.action.outText(
  435.                     '⇨ Operation: ' ..
  436.                         Rng_OP_NAME1 ..
  437.                             ' ⇦ ☾ BAI ☽' ..
  438.                                 '\n \n' ..
  439.                                     Rng_OP_Brief_BAI ..
  440.                                         '\n \n' ..
  441.                                             BAI_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  442.                                                 '\n' ..
  443.                                                     BAI_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  444.                                                         '\n' .. BAI_Marker_Loc:ToStringMGRS(SETTINGS:SetLL_Accuracy()),
  445.                     60
  446.                 )
  447.  
  448.                 NEWBAI = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  449.                 NEWBAI:ToCoalition(coalition.side.BLUE)
  450.  
  451.                 BAIJTAC = SPAWN:NewWithAlias('jtac', 'jtac  BAI-' .. RngNum):SpawnFromVec2(newlocation1)
  452.                 BAIJTACName = BAIJTAC:GetName()
  453.                 JTACAutoLase(BAIJTACName, 1688, Enable_JTAC_Smoke, 'all', RngCol)
  454.                 BAIFLAK1 = SPAWN:NewWithAlias('FLAK_Combo', 'FLAK1 -' .. RngNum):SpawnFromVec2(FLAKlocation1)
  455.                 BAIFLAK2 = SPAWN:NewWithAlias('FLAK_Combo', 'FLAK2 -' .. RngNum):SpawnFromVec2(FLAKlocation2)
  456.                 BAIFLAK_Ammo1 = SPAWN:NewWithAlias('AMMO_Vehicle', 'FLAK Ammo1 -' .. RngNum):SpawnFromVec2(FLAKlocation1)
  457.                 BAIFLAK_Ammo2 = SPAWN:NewWithAlias('AMMO_Vehicle', 'FLAK Ammo2 -' .. RngNum):SpawnFromVec2(FLAKlocation2)
  458.  
  459. --[[ ---
  460.                 Flak_Tasks1 = {}
  461.                 BAIFLAK_FAW1 = BAIFLAK1:GetName()
  462.                 BAIFLAK_FAW1_grp = GROUP:FindByName(BAIFLAK_FAW1)
  463.                 BAIFLAK_FAW1_units = BAIFLAK_FAW1_grp:GetUnits()
  464.                 for i = 1, #BAIFLAK_FAW1_units do
  465.                 local BAIFLAK_FAW1_units = BAIFLAK_FAW1_grp:GetUnit( i )
  466.                 Flak_Tasks1[#Flak_Tasks1+1] = BAIFLAK_FAW1_grp:TaskFireAtPoint(FLAK_FAW_location1, 1000, nil, nil, 3000, 1)   --:TaskFireAtPoint(Vec2, Radius, AmmoCount, WeaponType, Altitude, ASL)
  467.                 end
  468.                 BAIFLAK_FAW1_grp:PushTask(BAIFLAK_FAW1_grp:TaskCombo(Flak_Tasks1), 5 )
  469.  
  470.                 Flak_Tasks2 = {}
  471.                 BAIFLAK_FAW2 = BAIFLAK2:GetName()
  472.                 BAIFLAK_FAW2_grp = GROUP:FindByName(BAIFLAK_FAW2)
  473.                 BAIFLAK_FAW2_units = BAIFLAK_FAW2_grp:GetUnits()
  474.                 for i = 1, #BAIFLAK_FAW2_units do
  475.                 local BAIFLAK_FAW2_units = BAIFLAK_FAW2_grp:GetUnit( i )
  476.                 Flak_Tasks2[#Flak_Tasks2+1] = BAIFLAK_FAW2_grp:TaskFireAtPoint(FLAK_FAW_location2, 1000, nil, nil, 3000, 1)   --:TaskFireAtPoint(Vec2, Radius, AmmoCount, WeaponType, Altitude, ASL)
  477.                 end
  478.                 BAIFLAK_FAW2_grp:PushTask(BAIFLAK_FAW2_grp:TaskCombo(Flak_Tasks2), 5 )
  479.  --]]---
  480.                 SpawnGroup:HandleEvent(EVENTS.Dead)
  481.                 function SpawnGroup:OnEventDead(EventData)
  482.                     if SpawnGroup:GetSize() <= 1 then
  483.                         trigger.action.outText('⇨ Operation: ' .. Rng_OP_NAME1 .. ' ⇦ ☾ BAI ☽ SUCCESSFUL ', 15)
  484.                         BAIMAPMARKER:Remove(1)
  485.                         SNDTAKEOFF = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  486.                         SNDTAKEOFF:ToCoalition(coalition.side.BLUE)
  487.                         BAIJTACName1 = BAIJTAC:GetName()
  488.                         BAIFLAKName1 = BAIFLAK1:GetName()
  489.                         BAIFLAKName2 = BAIFLAK2:GetName()
  490.                         BAIFLAK_AmmoName1 = BAIFLAK_Ammo1:GetName()
  491.                         BAIFLAK_AmmoName2 = BAIFLAK_Ammo2:GetName()
  492.                         Group.getByName(BAIJTACName1):destroy()
  493.                         --Group.getByName(BAIFLAKName1):ClearTasks()
  494.                         --Group.getByName(BAIFLAKName2):ClearTasks()
  495.                         Group.getByName(BAIFLAKName1):destroy()
  496.                         Group.getByName(BAIFLAKName2):destroy()
  497.                         Group.getByName(BAIFLAK_AmmoName1):destroy()
  498.                         Group.getByName(BAIFLAK_AmmoName2):destroy()
  499.                         MenuCoalition_BLUE_TASK_BAI:Remove()
  500.                         ActiveTasksbai = false
  501.                     end
  502.                 end
  503.             end
  504.         ):SpawnInZone(TemplateZones[RNGzone1], true)
  505.     end
  506.  
  507.     --↓↓ SCHEDULER BAI ↓↓
  508.     SCHEDULER:New(
  509.         nil,
  510.         function()
  511.             if ActiveTasksbai == false then
  512.                 LastTask = MakeTaskBAI()
  513.                 ActiveTasksbai = true
  514.             elseif ActiveTasksbai == true then
  515.             -- no hagas nada
  516.             end
  517.         end,
  518.         {},
  519.         60,
  520.         120,
  521.         0.5
  522.     )
  523. end
  524.  
  525.     --↓↓ BAI HARD TASK ↓↓-----------------------------------------------------------------------------------------------------------------------------------------------
  526.     if enable_BAI_HARD_tasks == true then
  527.         function MakeTaskBAIHARD()
  528.             local RngNum = randomnumber()
  529.             local RngCol = randomcolor()
  530.             local Rng_OP_NAME2 = RandOpName()
  531.             local Rng_OP_Brief_BAIHARD = MissionTextBAI()
  532.             local RNGzone4 = math.random(1, #(TemplateZones))
  533.             local tempRandGroup4 = math.random(1, #(TemplateBAI))
  534.             local tempRandGroup_SEAD = math.random(1, #(TemplateSEAD))
  535.             local tempGrpAlias4 = '☠ BAI ' .. RngNum
  536.             local LocX = Fun_LocX()
  537.             local LocY = Fun_LocY()
  538.    
  539.             BAI_HARD_task =
  540.                 SPAWN:NewWithAlias(TemplateBAI[tempRandGroup4], tempGrpAlias4):OnSpawnGroup(
  541.                 function(SpawnGroup)
  542.                     location2 = SpawnGroup:GetCoordinate()
  543.                     BAI_HARD_Marker_Loc = SpawnGroup:GetCoordinate()
  544.                     newlocation2 = location2:GetRandomVec2InRadius(10, 50)
  545.                     SEADlocation = location2:GetRandomVec2InRadius(500, 750)
  546.                     FLAKlocation3 = location2:GetRandomVec2InRadius(2000, 3500)
  547.                     FLAKlocation4 = location2:GetRandomVec2InRadius(2000, 3500)
  548.                     FLAK_FAW_location3 = location2:GetRandomVec2InRadius(LocX, LocY)
  549.                     FLAK_FAW_location4 = location2:GetRandomVec2InRadius(LocX, LocY)
  550.                     BAI_HARD_MAPMARKER =
  551.                         MARKER:New(
  552.                         BAI_HARD_Marker_Loc,
  553.                         '⇨ Op: ' ..
  554.                             Rng_OP_NAME2 ..
  555.                                 ' ⇦ ☾ BAI Hard ☽' ..
  556.                                     '\n' ..
  557.                                         BAI_HARD_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  558.                                             '\n' .. BAI_HARD_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy())
  559.                     ):ToAll():ReadOnly()
  560.                     function BAI_HARD_INFO_MENU(SpawnGroup)
  561.                         BAI_HARD_INFO =
  562.                             trigger.action.outText(
  563.                             '⇨ Operation: ' ..
  564.                                 Rng_OP_NAME2 ..
  565.                                     ' ⇦ ☾ BAI Hard  ☽' ..
  566.                                         '\n \n' ..
  567.                                             Rng_OP_Brief_BAIHARD ..
  568.                                                 '\n \n' ..
  569.                                                     BAI_HARD_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  570.                                                         '\n' ..
  571.                                                             BAI_HARD_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  572.                                                                 '\n' ..
  573.                                                                     BAI_HARD_Marker_Loc:ToStringMGRS(
  574.                                                                         SETTINGS:SetLL_Accuracy()
  575.                                                                     ),
  576.                             60
  577.                         )
  578.                     end
  579.    
  580.                     MenuCoalition_BLUE_TASK_BAIHARD =
  581.                         MENU_COALITION_COMMAND:New(
  582.                         coalition.side.BLUE,
  583.                         '⇨ ' .. Rng_OP_NAME2 .. ' ⇦ ☾ BAI Hard ☽',
  584.                         MenuCoalition_BLUE_TASK,
  585.                         BAI_HARD_INFO_MENU
  586.                     )
  587.    
  588.                     trigger.action.outText(
  589.                         '⇨ Operation: ' ..
  590.                             Rng_OP_NAME2 ..
  591.                                 ' ⇦ ☾ BAI Hard  ☽' ..
  592.                                     '\n \n' ..
  593.                                         Rng_OP_Brief_BAIHARD ..
  594.                                             '\n \n' ..
  595.                                                 BAI_HARD_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  596.                                                     '\n' ..
  597.                                                         BAI_HARD_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  598.                                                             '\n' ..
  599.                                                                 BAI_HARD_Marker_Loc:ToStringMGRS(SETTINGS:SetLL_Accuracy()),
  600.                         60
  601.                     )
  602.                     NEWBAIHARD = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  603.                     NEWBAIHARD:ToCoalition(coalition.side.BLUE)
  604.    
  605.                     BAIHARDJTAC = SPAWN:NewWithAlias('jtac', 'jtac  BAI-' .. RngNum):SpawnFromVec2(newlocation2)
  606.                     BAIHARDJTACName = BAIHARDJTAC:GetName()
  607.                     JTACAutoLase(BAIHARDJTACName, 1688, Enable_JTAC_Smoke, 'all', RngCol)
  608.                     BAIHARDSEAD =
  609.                         SPAWN:NewWithAlias(TemplateSEAD[tempRandGroup_SEAD], '✦ SEAD -' .. RngNum):SpawnFromVec2(
  610.                         SEADlocation
  611.                     )
  612.    
  613.                     BAIFLAK3 = SPAWN:NewWithAlias('FLAK_Combo', 'FLAK1 -' .. RngNum):SpawnFromVec2(FLAKlocation3)
  614.                     BAIFLAK4 = SPAWN:NewWithAlias('FLAK_Combo', 'FLAK2 -' .. RngNum):SpawnFromVec2(FLAKlocation4)
  615.                     BAIFLAK_Ammo3 =
  616.                         SPAWN:NewWithAlias('AMMO_Vehicle', 'FLAK Ammo1 -' .. RngNum):SpawnFromVec2(FLAKlocation3)
  617.                     BAIFLAK_Ammo4 =
  618.                         SPAWN:NewWithAlias('AMMO_Vehicle', 'FLAK Ammo2 -' .. RngNum):SpawnFromVec2(FLAKlocation4)
  619. --[[ ---    
  620.                     Flak_Tasks3 = {}
  621.                     BAIFLAK_FAW3 = BAIFLAK3:GetName()
  622.                     BAIFLAK_FAW3_grp = GROUP:FindByName(BAIFLAK_FAW3)
  623.                     BAIFLAK_FAW3_units = BAIFLAK_FAW3_grp:GetUnits()
  624.                     for i = 1, #BAIFLAK_FAW3_units do
  625.                         local BAIFLAK_FAW3_units = BAIFLAK_FAW3_grp:GetUnit(i)
  626.                         Flak_Tasks3[#Flak_Tasks3 + 1] =
  627.                             BAIFLAK_FAW3_grp:TaskFireAtPoint(FLAK_FAW_location3, 1000, nil, nil, 3000, 1)
  628.                     end
  629.                     BAIFLAK_FAW3_grp:PushTask(BAIFLAK_FAW3_grp:TaskCombo(Flak_Tasks3), 5)
  630.    
  631.                     Flak_Tasks4 = {}
  632.                     BAIFLAK_FAW4 = BAIFLAK4:GetName()
  633.                     BAIFLAK_FAW4_grp = GROUP:FindByName(BAIFLAK_FAW4)
  634.                     BAIFLAK_FAW4_units = BAIFLAK_FAW4_grp:GetUnits()
  635.                     for i = 1, #BAIFLAK_FAW4_units do
  636.                         local BAIFLAK_FAW4_units = BAIFLAK_FAW4_grp:GetUnit(i)
  637.                         Flak_Tasks4[#Flak_Tasks4 + 1] =
  638.                             BAIFLAK_FAW4_grp:TaskFireAtPoint(FLAK_FAW_location4, 1000, nil, nil, 3000, 1)
  639.                     end
  640.                     BAIFLAK_FAW4_grp:PushTask(BAIFLAK_FAW4_grp:TaskCombo(Flak_Tasks4), 5)
  641.  --]]---
  642.                     SpawnGroup:HandleEvent(EVENTS.Dead)
  643.                     function SpawnGroup:OnEventDead(EventData)
  644.                         if SpawnGroup:GetSize() <= 1 then
  645.                             trigger.action.outText('⇨ Operation: ' .. Rng_OP_NAME2 .. ' ⇦ ☾ BAI Hard ☽ SUCCESSFUL', 15)
  646.                             BAI_HARD_MAPMARKER:Remove(1)
  647.                             SNDTAKEOFF = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  648.                             SNDTAKEOFF:ToCoalition(coalition.side.BLUE)
  649.                             BAI_HARD_JTACName1 = BAIHARDJTAC:GetName()
  650.                             BAIHARDSEADName = BAIHARDSEAD:GetName()
  651.                             BAIHARDFLAKName1 = BAIFLAK3:GetName()
  652.                             BAIHARDFLAKName2 = BAIFLAK4:GetName()
  653.                             BAIFLAK_Ammo3Name = BAIFLAK_Ammo3:GetName()
  654.                             BAIFLAK_Ammo4Name = BAIFLAK_Ammo4:GetName()
  655.                             Group.getByName(BAI_HARD_JTACName1):destroy()
  656.                             Group.getByName(BAIHARDSEADName):destroy()
  657.                             --Group.getByName(BAIHARDFLAKName1):ClearTasks()
  658.                             --Group.getByName(BAIHARDFLAKName2):ClearTasks()
  659.                             Group.getByName(BAIHARDFLAKName1):destroy()
  660.                             Group.getByName(BAIHARDFLAKName2):destroy()
  661.                             Group.getByName(BAIFLAK_Ammo3Name):destroy()
  662.                             Group.getByName(BAIFLAK_Ammo4Name):destroy()
  663.                             MenuCoalition_BLUE_TASK_BAIHARD:Remove()
  664.                             ActiveTasksbai_HARD = false
  665.                         end
  666.                     end
  667.                 end
  668.             ):SpawnInZone(TemplateZones[RNGzone4], true)
  669.         end
  670.    
  671.         --↓↓ SCHEDULER BAI HARD↓↓
  672.         SCHEDULER:New(
  673.             nil,
  674.             function()
  675.                 if ActiveTasksbai_HARD == false then
  676.                     LastTask = MakeTaskBAIHARD()
  677.                     ActiveTasksbai_HARD = true
  678.                 elseif ActiveTasksbai_HARD == true then
  679.                 -- no hagas nada
  680.                 end
  681.             end,
  682.             {},
  683.             90,
  684.             120,
  685.             0.5
  686.         )
  687.     end
  688.    
  689.     --↓↓ ANTISHIP TASK ↓↓-----------------------------------------------------------------------------------------------------------------------------------------------
  690.     if enable_AntiShip_tasks == true then
  691.         function MakeTaskNavBAI()
  692.             local RngNum = randomnumber()
  693.             local Rng_OP_NAME3 = RandOpName()
  694.             local Rng_OP_Brief_NAVBAI = MissionTextNAV()
  695.             local RNGzone2 = math.random(1, #(TemplateNavalZones))
  696.             local tempRandGroup3 = math.random(1, #(TemplateNavBAI))
  697.             local tempGrpAlias3 = '⚓ NAVAL ' .. RngNum
  698.    
  699.             NavBAI_task =
  700.                 SPAWN:NewWithAlias(TemplateNavBAI[tempRandGroup3], tempGrpAlias3):OnSpawnGroup(
  701.                 function(SpawnGroup)
  702.                     NAVBAI_Marker_Loc = SpawnGroup:GetCoordinate()
  703.                     NAVBAI_MAPMARKER =
  704.                         MARKER:New(
  705.                         NAVBAI_Marker_Loc,
  706.                         '⇨ Op: ' ..
  707.                             Rng_OP_NAME3 ..
  708.                                 ' ⇦ ☾ NAV Strike ☽ :' ..
  709.                                     '\n' ..
  710.                                         NAVBAI_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  711.                                             '\n' .. NAVBAI_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy())
  712.                     ):ToAll():ReadOnly()
  713.    
  714.                     function BAI_NAV_INFO_MENU(SpawnGroup)
  715.                         NAVBAI_HARD_INFO =
  716.                             trigger.action.outText(
  717.                             '⇨ Operation: ' ..
  718.                                 Rng_OP_NAME3 ..
  719.                                     ' ⇦ ☾ NAV Strike ☽' ..
  720.                                         '\n \n' ..
  721.                                             Rng_OP_Brief_NAVBAI ..
  722.                                                 '\n \n' ..
  723.                                                     NAVBAI_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  724.                                                         '\n' ..
  725.                                                             NAVBAI_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  726.                                                                 '\n' ..
  727.                                                                     NAVBAI_Marker_Loc:ToStringMGRS(
  728.                                                                         SETTINGS:SetLL_Accuracy()
  729.                                                                     ),
  730.                             60
  731.                         )
  732.                     end
  733.    
  734.                     MenuCoalition_BLUE_TASK_NAVBAI =
  735.                         MENU_COALITION_COMMAND:New(
  736.                         coalition.side.BLUE,
  737.                         '⇨ ' .. Rng_OP_NAME3 .. ' ⇦ ☾ NAV Strike ☽',
  738.                         MenuCoalition_BLUE_TASK,
  739.                         BAI_NAV_INFO_MENU
  740.                     )
  741.    
  742.                     trigger.action.outText(
  743.                         '⇨ Operation: ' ..
  744.                             Rng_OP_NAME3 ..
  745.                                 ' ⇦ ☾ Naval Strike  ☽' ..
  746.                                     '\n \n' ..
  747.                                         Rng_OP_Brief_NAVBAI ..
  748.                                             '\n \n' ..
  749.                                                 NAVBAI_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  750.                                                     '\n' ..
  751.                                                         NAVBAI_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  752.                                                             '\n' ..
  753.                                                                 NAVBAI_Marker_Loc:ToStringMGRS(SETTINGS:SetLL_Accuracy()),
  754.                         60
  755.                     )
  756.    
  757.                     NEWBAIHARD = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  758.                     NEWBAIHARD:ToCoalition(coalition.side.BLUE)
  759.    
  760.                     SpawnGroup:HandleEvent(EVENTS.Dead)
  761.                     function SpawnGroup:OnEventDead(EventData)
  762.                         if SpawnGroup:GetSize() <= 1 then
  763.                             trigger.action.outText('⇨ Operation: ' .. Rng_OP_NAME3 .. ' ⇦ ☾ NAV Strike ☽ SUCCESSFUL', 15)
  764.                             NAVBAI_MAPMARKER:Remove(1)
  765.                             SNDTAKEOFF = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  766.                             SNDTAKEOFF:ToCoalition(coalition.side.BLUE)
  767.                             MenuCoalition_BLUE_TASK_NAVBAI:Remove()
  768.                             ActiveTasksNAVbai = false
  769.                         end
  770.                     end
  771.                 end
  772.             ):SpawnInZone(TemplateNavalZones[RNGzone2], true)
  773.         end
  774.    
  775.         --↓↓ SCHEDULER ANTISHIP ↓↓
  776.         SCHEDULER:New(
  777.             nil,
  778.             function()
  779.                 if ActiveTasksNAVbai == false then
  780.                     LastTask = MakeTaskNavBAI()
  781.                     ActiveTasksNAVbai = true
  782.                 elseif ActiveTasksNAVbai == true then
  783.                 -- no hagas nada
  784.                 end
  785.             end,
  786.             {},
  787.             150,
  788.             120,
  789.             0.5
  790.         )
  791.     end
  792.    
  793.     --↓↓ SEAD TASK ↓↓----------------------------------------------------------------------------------------------------------------------------------------------------
  794.     if enable_SEAD_tasks == true then
  795.         function MakeTaskSEAD()
  796.             local RngNum = randomnumber()
  797.             local RngCol = randomcolor()
  798.             local Rng_OP_NAME4 = RandOpName()
  799.             local Rng_OP_Brief_SEAD = MissionTextSEAD()
  800.             local RNGzone3 = math.random(1, #(TemplateZones))
  801.             local tempRandGroup2 = math.random(1, #(SEAD_GROUPS))
  802.             local tempGrpAlias2 = '✦ SEAD' .. RngNum
  803.             local LocX = Fun_LocX()
  804.             local LocY = Fun_LocY()
  805.    
  806.             SEAD_task =
  807.                 SPAWN:NewWithAlias(SEAD_GROUPS[tempRandGroup2], tempGrpAlias2):OnSpawnGroup(
  808.                 function(SpawnGroup)
  809.                     location3 = SpawnGroup:GetCoordinate()
  810.                     SEAD_Marker_Loc = SpawnGroup:GetCoordinate()
  811.                     newlocation3 = location3:GetRandomVec2InRadius(10, 50)
  812.                     FLAKlocation5 = location3:GetRandomVec2InRadius(2000, 3500)
  813.                     FLAKlocation6 = location3:GetRandomVec2InRadius(2000, 3500)
  814.                     FLAK_FAW_location5 = location3:GetRandomVec2InRadius(LocX, LocY)
  815.                     FLAK_FAW_location6 = location3:GetRandomVec2InRadius(LocX, LocY)
  816.                     SEADMAPMARKER =
  817.                         MARKER:New(
  818.                         SEAD_Marker_Loc,
  819.                         '⇨ Op: ' ..
  820.                             Rng_OP_NAME4 ..
  821.                                 ' ⇦ ☾ SEAD ☽ :' ..
  822.                                     '\n' ..
  823.                                         SEAD_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  824.                                             '\n' .. SEAD_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy())
  825.                     ):ToAll():ReadOnly()
  826.                     function SEAD_INFO_MENU(SpawnGroup)
  827.                         SEAD_INFO =
  828.                             trigger.action.outText(
  829.                             '⇨ Operation: ' ..
  830.                                 Rng_OP_NAME4 ..
  831.                                     ' ⇦ ☾ SEAD ☽' ..
  832.                                         '\n \n' ..
  833.                                             Rng_OP_Brief_SEAD ..
  834.                                                 '\n \n' ..
  835.                                                     SEAD_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  836.                                                         '\n' ..
  837.                                                             SEAD_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  838.                                                                 '\n' ..
  839.                                                                     SEAD_Marker_Loc:ToStringMGRS(SETTINGS:SetLL_Accuracy()),
  840.                             60
  841.                         )
  842.                     end
  843.    
  844.                     MenuCoalition_BLUE_TASK_SEAD =
  845.                         MENU_COALITION_COMMAND:New(
  846.                         coalition.side.BLUE,
  847.                         '⇨ ' .. Rng_OP_NAME4 .. ' ⇦ ☾ SEAD ☽',
  848.                         MenuCoalition_BLUE_TASK,
  849.                         SEAD_INFO_MENU
  850.                     )
  851.    
  852.                     trigger.action.outText(
  853.                         '⇨ Operation: ' ..
  854.                             Rng_OP_NAME4 ..
  855.                                 ' ⇦ ☾ SEAD ☽' ..
  856.                                     '\n \n' ..
  857.                                         Rng_OP_Brief_SEAD ..
  858.                                             '\n \n' ..
  859.                                                 SEAD_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  860.                                                     '\n' ..
  861.                                                         SEAD_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  862.                                                             '\n' .. SEAD_Marker_Loc:ToStringMGRS(SETTINGS:SetLL_Accuracy()),
  863.                         60
  864.                     )
  865.    
  866.                     NEWBAIHARD = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  867.                     NEWBAIHARD:ToCoalition(coalition.side.BLUE)
  868.    
  869.                     SEADJTAC = SPAWN:NewWithAlias('jtac', 'jtac  SEAD-' .. RngNum):SpawnFromVec2(newlocation3)
  870.                     SEADJTACName = SEADJTAC:GetName()
  871.                     JTACAutoLase(SEADJTACName, 1688, Enable_JTAC_Smoke, 'all', RngCol)
  872.                     BAIFLAK5 = SPAWN:NewWithAlias('FLAK_Combo', 'FLAK1 -' .. RngNum):SpawnFromVec2(FLAKlocation5)
  873.                     BAIFLAK6 = SPAWN:NewWithAlias('FLAK_Combo', 'FLAK2 -' .. RngNum):SpawnFromVec2(FLAKlocation6)
  874.                     BAIFLAK_Ammo5 =
  875.                         SPAWN:NewWithAlias('AMMO_Vehicle', 'FLAK Ammo1 -' .. RngNum):SpawnFromVec2(FLAKlocation5)
  876.                     BAIFLAK_Ammo6 =
  877.                         SPAWN:NewWithAlias('AMMO_Vehicle', 'FLAK Ammo2 -' .. RngNum):SpawnFromVec2(FLAKlocation6)
  878. --[[ ---
  879.                     Flak_Tasks5 = {}
  880.                     BAIFLAK_FAW5 = BAIFLAK5:GetName()
  881.                     BAIFLAK_FAW5_grp = GROUP:FindByName(BAIFLAK_FAW5)
  882.                     BAIFLAK_FAW5_units = BAIFLAK_FAW5_grp:GetUnits()
  883.                     for i = 1, #BAIFLAK_FAW5_units do
  884.                         local BAIFLAK_FAW5_units = BAIFLAK_FAW5_grp:GetUnit(i)
  885.                         Flak_Tasks5[#Flak_Tasks5 + 1] =
  886.                             BAIFLAK_FAW5_grp:TaskFireAtPoint(FLAK_FAW_location5, 1000, nil, nil, 3000, 1)
  887.                     end
  888.                     BAIFLAK_FAW5_grp:PushTask(BAIFLAK_FAW5_grp:TaskCombo(Flak_Tasks5), 5)
  889.    
  890.                     Flak_Tasks6 = {}
  891.                     BAIFLAK_FAW6 = BAIFLAK6:GetName()
  892.                     BAIFLAK_FAW6_grp = GROUP:FindByName(BAIFLAK_FAW6)
  893.                     BAIFLAK_FAW6_units = BAIFLAK_FAW6_grp:GetUnits()
  894.                     for i = 1, #BAIFLAK_FAW6_units do
  895.                         local BAIFLAK_FAW6_units = BAIFLAK_FAW6_grp:GetUnit(i)
  896.                         Flak_Tasks6[#Flak_Tasks6 + 1] =
  897.                             BAIFLAK_FAW6_grp:TaskFireAtPoint(FLAK_FAW_location6, 1000, nil, nil, 3000, 1)
  898.                     end
  899.                     BAIFLAK_FAW6_grp:PushTask(BAIFLAK_FAW6_grp:TaskCombo(Flak_Tasks6), 5)
  900.  --]]---
  901.                     SpawnGroup:HandleEvent(EVENTS.Dead)
  902.                     function SpawnGroup:OnEventDead(EventData)
  903.                         if SpawnGroup:GetSize() <= 1 then
  904.                             trigger.action.outText('⇨ Operation: ' .. Rng_OP_NAME4 .. ' ⇦ ☾ SEAD ☽ SUCCESSFUL', 15)
  905.                             SEADMAPMARKER:Remove(1)
  906.                             SNDTAKEOFF = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  907.                             SNDTAKEOFF:ToCoalition(coalition.side.BLUE)
  908.                             SEADJTACName1 = SEADJTAC:GetName()
  909.                             BAIFLAK5name = BAIFLAK5:GetName()
  910.                             BAIFLAK6name = BAIFLAK6:GetName()
  911.                             BAIFLAK_Ammo5Name = BAIFLAK_Ammo5:GetName()
  912.                             BAIFLAK_Ammo6Name = BAIFLAK_Ammo6:GetName()
  913.                             --Group.getByName(BAIFLAK_Ammo5Name):ClearTasks()
  914.                             --Group.getByName(BAIFLAK_Ammo6Name):ClearTasks()
  915.                             Group.getByName(SEADJTACName1):destroy()
  916.                             Group.getByName(BAIFLAK5name):destroy()
  917.                             Group.getByName(BAIFLAK6name):destroy()
  918.                             Group.getByName(BAIFLAK_Ammo5Name):destroy()
  919.                             Group.getByName(BAIFLAK_Ammo6Name):destroy()
  920.                             MenuCoalition_BLUE_TASK_SEAD:Remove()
  921.                             ActiveTasksSead = false
  922.                         end
  923.                     end
  924.                 end
  925.             ):SpawnInZone(TemplateZones[RNGzone3], true)
  926.         end
  927.    
  928.         --↓↓ SCHEDULER SEAD ↓↓
  929.         SCHEDULER:New(
  930.             nil,
  931.             function()
  932.                 if ActiveTasksSead == false then
  933.                     LastTask = MakeTaskSEAD()
  934.                     ActiveTasksSead = true
  935.                 elseif ActiveTasksSead == true then
  936.                 -- no hagas nada
  937.                 end
  938.             end,
  939.             {},
  940.             120,
  941.             120,
  942.             0.5
  943.         )
  944.     end
  945.    
  946. --↓↓ HELO BAI TASK ↓↓----------------------------------------------------------------------------------------------------------------------------------------------------
  947. if enable_Helo_tasking == true then
  948.     function MakeTask_HELO_BAI()
  949.         local RngNum = randomnumber()
  950.         local RngCol = randomcolor()
  951.         local Rng_OP_NAME5 = RandOpName()
  952.         local Rng_OP_Brief_HELIBAI = MissionTextBAI()
  953.         local RNGHELIzone1 = math.random(1, #(TemplateHELOZones))
  954.         local tempRandGroup7 = math.random(1, #(TemplateHELOBAI))
  955.         local tempGrpAlias7 = '✧ Heli BAI' .. RngNum
  956.  
  957.         BAI_task =
  958.             SPAWN:NewWithAlias(TemplateHELOBAI[tempRandGroup7], tempGrpAlias7):OnSpawnGroup(
  959.             function(SpawnGroup)
  960.                 location4 = SpawnGroup:GetCoordinate()
  961.                 HELI_BAI_Marker_Loc = SpawnGroup:GetCoordinate()
  962.                 newlocation4 = location4:GetRandomVec2InRadius(10, 50)
  963.                 HELI_BAIMAPMARKER =
  964.                     MARKER:New(
  965.                     HELI_BAI_Marker_Loc,
  966.                     '⇨ Op: ' ..
  967.                         Rng_OP_NAME5 ..
  968.                             ' ⇦ ☾ HELI BAI ☽ :' ..
  969.                                 '\n' ..
  970.                                     HELI_BAI_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  971.                                         '\n' .. HELI_BAI_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy())
  972.                 ):ToAll():ReadOnly()
  973.  
  974.                 function HELIBAI_INFO_MENU(SpawnGroup)
  975.                     HELIBAI_INFO =
  976.                         trigger.action.outText(
  977.                         '⇨ Operation: ' ..
  978.                             Rng_OP_NAME5 ..
  979.                                 ' ⇦ ☾ HELI BAI ☽' ..
  980.                                     '\n \n' ..
  981.                                         Rng_OP_Brief_HELIBAI ..
  982.                                             '\n \n' ..
  983.                                                 HELI_BAI_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  984.                                                     '\n' ..
  985.                                                         HELI_BAI_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  986.                                                             '\n' ..
  987.                                                                 HELI_BAI_Marker_Loc:ToStringMGRS(
  988.                                                                     SETTINGS:SetLL_Accuracy()
  989.                                                                 ),
  990.                         60
  991.                     )
  992.                 end
  993.  
  994.                 MenuCoalition_BLUE_TASK_HELIBAI =
  995.                     MENU_COALITION_COMMAND:New(
  996.                     coalition.side.BLUE,
  997.                     '⇨ ' .. Rng_OP_NAME5 .. ' ⇦ ☾ HELI BAI ☽',
  998.                     MenuCoalition_BLUE_TASK,
  999.                     HELIBAI_INFO_MENU
  1000.                 )
  1001.  
  1002.                 trigger.action.outText(
  1003.                     '⇨ Operation: ' ..
  1004.                         Rng_OP_NAME5 ..
  1005.                             ' ⇦ ☾ HELI BAI ☽' ..
  1006.                                 '\n \n' ..
  1007.                                     Rng_OP_Brief_HELIBAI ..
  1008.                                         '\n \n' ..
  1009.                                             HELI_BAI_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  1010.                                                 '\n' ..
  1011.                                                     HELI_BAI_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  1012.                                                         '\n' ..
  1013.                                                             HELI_BAI_Marker_Loc:ToStringMGRS(SETTINGS:SetLL_Accuracy()),
  1014.                     60
  1015.                 )
  1016.  
  1017.                 NEWBAIHARD = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  1018.                 NEWBAIHARD:ToCoalition(coalition.side.BLUE)
  1019.  
  1020.                 HELI_BAIJTAC = SPAWN:NewWithAlias('jtac', 'jtac  BAI-' .. RngNum):SpawnFromVec2(newlocation4)
  1021.                 HELI_BAIJTACName = HELI_BAIJTAC:GetName()
  1022.                 JTACAutoLase(HELI_BAIJTACName, 1688, Enable_JTAC_Smoke, 'all', RngCol)
  1023.  
  1024.                 SpawnGroup:HandleEvent(EVENTS.Dead)
  1025.                 function SpawnGroup:OnEventDead(EventData)
  1026.                     if SpawnGroup:GetSize() <= 1 then
  1027.                         trigger.action.outText('⇨ Operation: ' .. Rng_OP_NAME5 .. ' ⇦ ☾ HELI BAI ☽ SUCCESSFUL', 15)
  1028.                         HELI_BAIMAPMARKER:Remove(1)
  1029.                         SNDTAKEOFF = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  1030.                         SNDTAKEOFF:ToCoalition(coalition.side.BLUE)
  1031.                         HELI_BAIJTACName1 = HELI_BAIJTAC:GetName()
  1032.                         Group.getByName(HELI_BAIJTACName1):destroy()
  1033.                         MenuCoalition_BLUE_TASK_HELIBAI:Remove()
  1034.                         ActiveTasks_heliBAI = false
  1035.                     end
  1036.                 end
  1037.             end
  1038.         ):SpawnInZone(TemplateHELOZones[RNGHELIzone1], true)
  1039.     end
  1040.  
  1041.     --↓↓ SCHEDULER HELO BAI ↓↓
  1042.     SCHEDULER:New(
  1043.         nil,
  1044.         function()
  1045.             if ActiveTasks_heliBAI == false then
  1046.                 LastTask = MakeTask_HELO_BAI()
  1047.                 ActiveTasks_heliBAI = true
  1048.             elseif ActiveTasks_heliBAI == true then
  1049.             -- no hagas nada
  1050.             end
  1051.         end,
  1052.         {},
  1053.         75,
  1054.         120,
  1055.         0.5
  1056.     )
  1057. end
  1058.  
  1059. --FIN-----------------------------------------------------------------------------------------------------------------------------------------------
  1060. --↓↓ BAI TASK (MENU) ↓↓----------------------------------------------------------------------------------------------------------------------------------------------------
  1061. function MakeTaskBAI_menucmd()
  1062.     local RngNum = randomnumber()
  1063.     local RngCol = randomcolor()
  1064.     local Rng_OP_NAME_BAICMD = RandOpName()
  1065.     local Rng_OP_Brief_BAICMD = MissionTextBAI()
  1066.     local RNGzone1 = math.random(1, #(TemplateZones))
  1067.     local tempRandGroup1 = math.random(1, #(TemplateBAI))
  1068.     local tempGrpAlias1 = '✧ BAI' .. RngNum
  1069.     local LocX = Fun_LocX()
  1070.     local LocY = Fun_LocY()
  1071.  
  1072.     BAI_task =
  1073.         SPAWN:NewWithAlias(TemplateBAI[tempRandGroup1], tempGrpAlias1):OnSpawnGroup(
  1074.         function(SpawnGroup)
  1075.             location1m = SpawnGroup:GetCoordinate()
  1076.             BAI_Marker_Loc = SpawnGroup:GetCoordinate()
  1077.             BAI_Amenaza = SpawnGroup:GetThreatLevel()
  1078.             newlocation1m = location1m:GetRandomVec2InRadius(10, 50)
  1079.             FLAKlocation1m = location1m:GetRandomVec2InRadius(2000, 3500)
  1080.             FLAKlocation2m = location1m:GetRandomVec2InRadius(2000, 3500)
  1081.             FLAK_FAW_location1m = location1m:GetRandomVec2InRadius(LocX, LocY)
  1082.             FLAK_FAW_location2m = location1m:GetRandomVec2InRadius(LocX, LocY)
  1083.  
  1084.             BAIMAPMARKER =
  1085.                 MARKER:New(
  1086.                 BAI_Marker_Loc,
  1087.                 '⇨ Op: ' ..
  1088.                     Rng_OP_NAME_BAICMD ..
  1089.                         ' ⇦ ☾ BAI ☽ :' ..
  1090.                             '\n' ..
  1091.                                 BAI_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  1092.                                     '\n' .. BAI_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy())
  1093.             ):ToAll():ReadOnly()
  1094.             function BAI_INFO_MENU(SpawnGroup)
  1095.                 BAI_INFO =
  1096.                     trigger.action.outText(
  1097.                     '⇨ Operation: ' ..
  1098.                         Rng_OP_NAME_BAICMD ..
  1099.                             ' ⇦ ☾ BAI ☽' ..
  1100.                                 '\n \n' ..
  1101.                                     Rng_OP_Brief_BAICMD ..
  1102.                                         '\n \n' ..
  1103.                                             BAI_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  1104.                                                 '\n' ..
  1105.                                                     BAI_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  1106.                                                         '\n' .. BAI_Marker_Loc:ToStringMGRS(SETTINGS:SetLL_Accuracy()),
  1107.                     60
  1108.                 )
  1109.             end
  1110.  
  1111.             MenuCoalition_BLUE_TASK_BAI =
  1112.                 MENU_COALITION_COMMAND:New(
  1113.                 coalition.side.BLUE,
  1114.                 '⇨ ' .. Rng_OP_NAME_BAICMD .. ' ⇦ ☾ BAI ☽',
  1115.                 MenuCoalition_BLUE_TASK,
  1116.                 BAI_INFO_MENU
  1117.             )
  1118.  
  1119.             trigger.action.outText(
  1120.                 '⇨ Operation: ' ..
  1121.                     Rng_OP_NAME_BAICMD ..
  1122.                         ' ⇦ ☾ BAI ☽' ..
  1123.                             '\n \n' ..
  1124.                                 Rng_OP_Brief_BAICMD ..
  1125.                                     '\n \n' ..
  1126.                                         BAI_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  1127.                                             '\n' ..
  1128.                                                 BAI_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  1129.                                                     '\n' .. BAI_Marker_Loc:ToStringMGRS(SETTINGS:SetLL_Accuracy()),
  1130.                 60
  1131.             )
  1132.  
  1133.             NEWBAI = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  1134.             NEWBAI:ToCoalition(coalition.side.BLUE)
  1135.  
  1136.             BAIJTAC4 = SPAWN:NewWithAlias('jtac', 'jtac  BAI-' .. RngNum):SpawnFromVec2(newlocation1m)
  1137.             BAIJTACName4 = BAIJTAC4:GetName()
  1138.             JTACAutoLase(BAIJTACName4, 1688, Enable_JTAC_Smoke, 'all', RngCol)
  1139.             BAIFLAK1m = SPAWN:NewWithAlias('FLAK_Combo', 'FLAK1 -' .. RngNum):SpawnFromVec2(FLAKlocation1m)
  1140.             BAIFLAK2m = SPAWN:NewWithAlias('FLAK_Combo', 'FLAK2 -' .. RngNum):SpawnFromVec2(FLAKlocation2m)
  1141.             BAIFLAK_Ammo1m = SPAWN:NewWithAlias('AMMO_Vehicle', 'FLAK Ammo1 -' .. RngNum):SpawnFromVec2(FLAKlocation1m)
  1142.             BAIFLAK_Ammo2m = SPAWN:NewWithAlias('AMMO_Vehicle', 'FLAK Ammo2 -' .. RngNum):SpawnFromVec2(FLAKlocation2m)
  1143. --[[ ---
  1144.             Flak_Tasks1m = {}
  1145.             BAIFLAK_FAW1m = BAIFLAK1m:GetName()
  1146.             BAIFLAK_FAW1m_grp = GROUP:FindByName(BAIFLAK_FAW1m)
  1147.             BAIFLAK_FAW1m_units = BAIFLAK_FAW1m_grp:GetUnits()
  1148.             for i = 1, #BAIFLAK_FAW1m_units do
  1149.                 local BAIFLAK_FAW1m_units = BAIFLAK_FAW1m_grp:GetUnit(i)
  1150.                 Flak_Tasks1m[#Flak_Tasks1m + 1] =
  1151.                     BAIFLAK_FAW1m_grp:TaskFireAtPoint(FLAK_FAW_location1m, 1000, nil, nil, 3000, 1)
  1152.             end
  1153.             BAIFLAK_FAW1m_grp:PushTask(BAIFLAK_FAW1m_grp:TaskCombo(Flak_Tasks1m), 5)
  1154.  
  1155.             Flak_Tasks2m = {}
  1156.             BAIFLAK_FAW2m = BAIFLAK2m:GetName()
  1157.             BAIFLAK_FAW2m_grp = GROUP:FindByName(BAIFLAK_FAW2m)
  1158.             BAIFLAK_FAW2m_units = BAIFLAK_FAW2m_grp:GetUnits()
  1159.             for i = 1, #BAIFLAK_FAW2m_units do
  1160.                 local BAIFLAK_FAW2m_units = BAIFLAK_FAW2m_grp:GetUnit(i)
  1161.                 Flak_Tasks2m[#Flak_Tasks2m + 1] =
  1162.                     BAIFLAK_FAW2m_grp:TaskFireAtPoint(FLAK_FAW_location2m, 1000, nil, nil, 3000, 1)
  1163.             end
  1164.             BAIFLAK_FAW2m_grp:PushTask(BAIFLAK_FAW2m_grp:TaskCombo(Flak_Tasks2m), 5)
  1165.  --]]---
  1166.             SpawnGroup:HandleEvent(EVENTS.Dead)
  1167.             function SpawnGroup:OnEventDead(EventData)
  1168.                 if SpawnGroup:GetSize() <= 1 then
  1169.                     trigger.action.outText('⇨ Operation: ' .. Rng_OP_NAME_BAICMD .. ' ⇦ ☾ BAI ☽ SUCCESSFUL ', 15)
  1170.                     BAIMAPMARKER:Remove(1)
  1171.                     SNDTAKEOFF = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  1172.                     SNDTAKEOFF:ToCoalition(coalition.side.BLUE)
  1173.                     BAIJTACName5 = BAIJTAC4:GetName()
  1174.  
  1175.                     BAIFLAKName1m = BAIFLAK1m:GetName()
  1176.                     BAIFLAKName2m = BAIFLAK2m:GetName()
  1177.                     BAIFLAK_AmmoName1m = BAIFLAK_Ammo1m:GetName()
  1178.                     BAIFLAK_AmmoName2m = BAIFLAK_Ammo2m:GetName()
  1179.                     --Group.getByName(BAIFLAKName1m):ClearTasks()
  1180.                     --Group.getByName(BAIFLAKName2m):ClearTasks()
  1181.                     Group.getByName(BAIJTACName5):destroy()
  1182.                     Group.getByName(BAIFLAKName1m):destroy()
  1183.                     Group.getByName(BAIFLAKName2m):destroy()
  1184.                     Group.getByName(BAIFLAK_AmmoName1m):destroy()
  1185.                     Group.getByName(BAIFLAK_AmmoName2m):destroy()
  1186.                     MenuCoalition_BLUE_TASK_BAI:Remove()
  1187.                 end
  1188.             end
  1189.         end
  1190.     ):SpawnInZone(TemplateZones[RNGzone1], true)
  1191. end
  1192.  
  1193. --↓↓ BAI HARD TASK (MENU) ↓↓-----------------------------------------------------------------------------------------------------------------------------------------------
  1194. function MakeTaskBAIHARD_menucmd()
  1195.     local RngNum = randomnumber()
  1196.     local RngCol = randomcolor()
  1197.     local Rng_OP_BAIHARDCMD = RandOpName()
  1198.     local Rng_OP_Brief_BAIHARDCMD = MissionTextBAI()
  1199.     local RNGzone4 = math.random(1, #(TemplateZones))
  1200.     local tempRandGroup4m = math.random(1, #(TemplateBAI))
  1201.     local tempRandGroup_SEAD = math.random(1, #(TemplateSEAD))
  1202.     local tempGrpAlias4m = '☠ BAI ' .. RngNum
  1203.     local LocX = Fun_LocX()
  1204.     local LocY = Fun_LocY()
  1205.  
  1206.     BAI_HARD_task =
  1207.         SPAWN:NewWithAlias(TemplateBAI[tempRandGroup4m], tempGrpAlias4m):OnSpawnGroup(
  1208.         function(SpawnGroup)
  1209.             location2m = SpawnGroup:GetCoordinate()
  1210.             BAI_HARD_Marker_Loc = SpawnGroup:GetCoordinate()
  1211.             newlocation2m = location2m:GetRandomVec2InRadius(10, 50)
  1212.             SEADlocationm = location2m:GetRandomVec2InRadius(500, 750)
  1213.             FLAKlocation3m = location2m:GetRandomVec2InRadius(2000, 3500)
  1214.             FLAKlocation4m = location2m:GetRandomVec2InRadius(2000, 3500)
  1215.             FLAK_FAW_location3m = location2m:GetRandomVec2InRadius(LocX, LocY)
  1216.             FLAK_FAW_location4m = location2m:GetRandomVec2InRadius(LocX, LocY)
  1217.  
  1218.             BAI_HARD_MAPMARKER =
  1219.                 MARKER:New(
  1220.                 BAI_HARD_Marker_Loc,
  1221.                 '⇨ Op: ' ..
  1222.                     Rng_OP_BAIHARDCMD ..
  1223.                         ' ⇦ ☾ BAI Hard ☽ :' ..
  1224.                             '\n' ..
  1225.                                 BAI_HARD_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  1226.                                     '\n' .. BAI_HARD_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy())
  1227.             ):ToAll():ReadOnly()
  1228.             function BAI_HARD_INFO_MENU(SpawnGroup)
  1229.                 BAI_HARD_INFO =
  1230.                     trigger.action.outText(
  1231.                     '⇨ Operation: ' ..
  1232.                         Rng_OP_BAIHARDCMD ..
  1233.                             ' ⇦ ☾ BAI Hard  ☽' ..
  1234.                                 '\n \n' ..
  1235.                                     Rng_OP_Brief_BAIHARDCMD ..
  1236.                                         '\n \n' ..
  1237.                                             BAI_HARD_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  1238.                                                 '\n' ..
  1239.                                                     BAI_HARD_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  1240.                                                         '\n' ..
  1241.                                                             BAI_HARD_Marker_Loc:ToStringMGRS(SETTINGS:SetLL_Accuracy()),
  1242.                     60
  1243.                 )
  1244.             end
  1245.  
  1246.             MenuCoalition_BLUE_TASK_BAIHARD =
  1247.                 MENU_COALITION_COMMAND:New(
  1248.                 coalition.side.BLUE,
  1249.                 '⇨ ' .. Rng_OP_BAIHARDCMD .. ' ⇦ ☾ BAI Hard ☽',
  1250.                 MenuCoalition_BLUE_TASK,
  1251.                 BAI_HARD_INFO_MENU
  1252.             )
  1253.  
  1254.             trigger.action.outText(
  1255.                 '⇨ Operation: ' ..
  1256.                     Rng_OP_BAIHARDCMD ..
  1257.                         ' ⇦ ☾ BAI Hard  ☽' ..
  1258.                             '\n \n' ..
  1259.                                 Rng_OP_Brief_BAIHARDCMD ..
  1260.                                     '\n \n' ..
  1261.                                         BAI_HARD_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  1262.                                             '\n' ..
  1263.                                                 BAI_HARD_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  1264.                                                     '\n' .. BAI_HARD_Marker_Loc:ToStringMGRS(SETTINGS:SetLL_Accuracy()),
  1265.                 60
  1266.             )
  1267.  
  1268.             NEWBAIHARD = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  1269.             NEWBAIHARD:ToCoalition(coalition.side.BLUE)
  1270.  
  1271.             BAIHARDJTACm = SPAWN:NewWithAlias('jtac', 'jtac  BAI-' .. RngNum):SpawnFromVec2(newlocation2m)
  1272.             BAIHARDJTACNamem = BAIHARDJTACm:GetName()
  1273.             JTACAutoLase(BAIHARDJTACNamem, 1688, Enable_JTAC_Smoke, 'all', RngCol)
  1274.             BAIHARDSEADm = SPAWN:NewWithAlias(TemplateSEAD[tempRandGroup_SEAD], '✦ SEAD -' .. RngNum):SpawnFromVec2(SEADlocationm)
  1275.             BAIFLAK3m = SPAWN:NewWithAlias('FLAK_Combo', 'FLAK1 -' .. RngNum):SpawnFromVec2(FLAKlocation3m)
  1276.             BAIFLAK4m = SPAWN:NewWithAlias('FLAK_Combo', 'FLAK2 -' .. RngNum):SpawnFromVec2(FLAKlocation4m)
  1277.             BAIFLAK_Ammo3m = SPAWN:NewWithAlias('AMMO_Vehicle', 'FLAK Ammo1 -' .. RngNum):SpawnFromVec2(FLAKlocation3m)
  1278.             BAIFLAK_Ammo4m = SPAWN:NewWithAlias('AMMO_Vehicle', 'FLAK Ammo2 -' .. RngNum):SpawnFromVec2(FLAKlocation4m)
  1279. --[[ ---
  1280.             Flak_Tasks3m = {}
  1281.             BAIFLAK_FAW3m = BAIFLAK3m:GetName()
  1282.             BAIFLAK_FAW3_grp = GROUP:FindByName(BAIFLAK_FAW3m)
  1283.             BAIFLAK_FAW3m_units = BAIFLAK_FAW3_grp:GetUnits()
  1284.             for i = 1, #BAIFLAK_FAW3m_units do
  1285.                 local BAIFLAK_FAW3m_units = BAIFLAK_FAW3_grp:GetUnit(i)
  1286.                 Flak_Tasks3m[#Flak_Tasks3m + 1] =
  1287.                     BAIFLAK_FAW3_grp:TaskFireAtPoint(FLAK_FAW_location3m, 1000, nil, nil, 3000, 1)
  1288.             end
  1289.             BAIFLAK_FAW3_grp:PushTask(BAIFLAK_FAW3_grp:TaskCombo(Flak_Tasks3m), 5)
  1290.  
  1291.             Flak_Tasks4m = {}
  1292.             BAIFLAK_FAW4m = BAIFLAK4m:GetName()
  1293.             BAIFLAK_FAW4m_grp = GROUP:FindByName(BAIFLAK_FAW4m)
  1294.             BAIFLAK_FAW4m_units = BAIFLAK_FAW4m_grp:GetUnits()
  1295.             for i = 1, #BAIFLAK_FAW4m_units do
  1296.                 local BAIFLAK_FAW4m_units = BAIFLAK_FAW4m_grp:GetUnit(i)
  1297.                 Flak_Tasks4m[#Flak_Tasks4m + 1] =
  1298.                     BAIFLAK_FAW4m_grp:TaskFireAtPoint(FLAK_FAW_location4m, 1000, nil, nil, 3000, 1)
  1299.             end
  1300.             BAIFLAK_FAW4m_grp:PushTask(BAIFLAK_FAW4m_grp:TaskCombo(Flak_Tasks4m), 5)
  1301.  --]]---
  1302.             SpawnGroup:HandleEvent(EVENTS.Dead)
  1303.             function SpawnGroup:OnEventDead(EventData)
  1304.                 if SpawnGroup:GetSize() <= 1 then
  1305.                     trigger.action.outText('⇨ Operation: ' .. Rng_OP_BAIHARDCMD .. ' ⇦ ☾ BAI Hard ☽ SUCCESSFUL', 15)
  1306.                     BAI_HARD_MAPMARKER:Remove(1)
  1307.                     SNDTAKEOFF = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  1308.                     SNDTAKEOFF:ToCoalition(coalition.side.BLUE)
  1309.                     BAI_HARD_JTACName1m = BAIHARDJTACm:GetName()
  1310.                     BAIHARDSEADNamem = BAIHARDSEADm:GetName()
  1311.                     BAIHARDFLAKName1m = BAIFLAK3m:GetName()
  1312.                     BAIHARDFLAKName2m = BAIFLAK4m:GetName()
  1313.                     BAIFLAK_Ammo3Namem = BAIFLAK_Ammo3m:GetName()
  1314.                     BAIFLAK_Ammo4Namem = BAIFLAK_Ammo4m:GetName()
  1315.                     Group.getByName(BAI_HARD_JTACName1m):destroy()
  1316.                     Group.getByName(BAIHARDSEADNamem):destroy()
  1317.                     --Group.getByName(BAIHARDFLAKName1m):ClearTasks()
  1318.                     --Group.getByName(BAIHARDFLAKName2m):ClearTasks()
  1319.                     Group.getByName(BAIHARDFLAKName1m):destroy()
  1320.                     Group.getByName(BAIHARDFLAKName2m):destroy()
  1321.                     Group.getByName(BAIFLAK_Ammo3Namem):destroy()
  1322.                     Group.getByName(BAIFLAK_Ammo4Namem):destroy()
  1323.                     MenuCoalition_BLUE_TASK_BAIHARD:Remove()
  1324.                 end
  1325.             end
  1326.         end
  1327.     ):SpawnInZone(TemplateZones[RNGzone4], true)
  1328. end
  1329. --↓↓ ANTISHIP TASK (MENU) ↓↓-----------------------------------------------------------------------------------------------------------------------------------------------
  1330. function MakeTaskNavBAI_menucmd()
  1331.     local RngNum = randomnumber()
  1332.     local Rng_OP_NAVBAICMD = RandOpName()
  1333.     local Rng_OP_Brief_NAVBAICMD = MissionTextNAV()
  1334.     local RNGzone2 = math.random(1, #(TemplateNavalZones))
  1335.     local tempRandGroup3 = math.random(1, #(TemplateNavBAI))
  1336.     local tempGrpAlias3 = '⚓ NAVAL ' .. RngNum
  1337.  
  1338.     NavBAI_task =
  1339.         SPAWN:NewWithAlias(TemplateNavBAI[tempRandGroup3], tempGrpAlias3):OnSpawnGroup(
  1340.         function(SpawnGroup)
  1341.             NAVBAI_Marker_Loc = SpawnGroup:GetCoordinate()
  1342.             NAVBAI_MAPMARKER =
  1343.                 MARKER:New(
  1344.                 NAVBAI_Marker_Loc,
  1345.                 '⇨ Op: ' ..
  1346.                     Rng_OP_NAVBAICMD ..
  1347.                         ' ⇦ ☾ NAV Strike ☽ :' ..
  1348.                             '\n' ..
  1349.                                 NAVBAI_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  1350.                                     '\n' .. NAVBAI_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy())
  1351.             ):ToAll():ReadOnly()
  1352.  
  1353.             function BAI_NAV_INFO_MENU(SpawnGroup)
  1354.                 NAVBAI_HARD_INFO =
  1355.                     trigger.action.outText(
  1356.                     '⇨ Operation: ' ..
  1357.                         Rng_OP_NAVBAICMD ..
  1358.                             ' ⇦ ☾ NAV Strike ☽' ..
  1359.                                 '\n \n' ..
  1360.                                     Rng_OP_Brief_NAVBAICMD ..
  1361.                                         '\n \n' ..
  1362.                                             NAVBAI_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  1363.                                                 '\n' ..
  1364.                                                     NAVBAI_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  1365.                                                         '\n' ..
  1366.                                                             NAVBAI_Marker_Loc:ToStringMGRS(SETTINGS:SetLL_Accuracy()),
  1367.                     60
  1368.                 )
  1369.             end
  1370.  
  1371.             MenuCoalition_BLUE_TASK_NAVBAI =
  1372.                 MENU_COALITION_COMMAND:New(
  1373.                 coalition.side.BLUE,
  1374.                 '⇨ ' .. Rng_OP_NAVBAICMD .. ' ⇦ ☾ NAV Strike ☽',
  1375.                 MenuCoalition_BLUE_TASK,
  1376.                 BAI_NAV_INFO_MENU
  1377.             )
  1378.  
  1379.             trigger.action.outText(
  1380.                 '⇨ Operation: ' ..
  1381.                     Rng_OP_NAVBAICMD ..
  1382.                         ' ⇦ ☾ NAV Strike ☽' ..
  1383.                             '\n \n' ..
  1384.                                 Rng_OP_Brief_NAVBAICMD ..
  1385.                                     '\n \n' ..
  1386.                                         NAVBAI_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  1387.                                             '\n' ..
  1388.                                                 NAVBAI_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  1389.                                                     '\n' .. NAVBAI_Marker_Loc:ToStringMGRS(SETTINGS:SetLL_Accuracy()),
  1390.                 60
  1391.             )
  1392.  
  1393.             NEWBAIHARD = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  1394.             NEWBAIHARD:ToCoalition(coalition.side.BLUE)
  1395.  
  1396.             SpawnGroup:HandleEvent(EVENTS.Dead)
  1397.             function SpawnGroup:OnEventDead(EventData)
  1398.                 if SpawnGroup:GetSize() <= 1 then
  1399.                     trigger.action.outText('⇨ Operation: ' .. Rng_OP_NAVBAICMD .. ' ⇦ ☾ NAV Strike ☽ SUCCESSFUL', 15)
  1400.                     NAVBAI_MAPMARKER:Remove(1)
  1401.                     SNDTAKEOFF = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  1402.                     SNDTAKEOFF:ToCoalition(coalition.side.BLUE)
  1403.                     MenuCoalition_BLUE_TASK_NAVBAI:Remove()
  1404.                 end
  1405.             end
  1406.         end
  1407.     ):SpawnInZone(TemplateNavalZones[RNGzone2], true)
  1408. end
  1409. --↓↓ SEAD TASK (MENU) ↓↓---------------------------------------------------------------------------------------------------------------------------------------------------
  1410. function MakeTaskSEAD_menucmd()
  1411.     local RngNum = randomnumber()
  1412.     local RngCol = randomcolor()
  1413.     local Rng_OP_SEADCMD = RandOpName()
  1414.     local Rng_OP_Brief_SEADCMD = MissionTextSEAD()
  1415.     local RNGzone3 = math.random(1, #(TemplateZones))
  1416.     local tempRandGroup2 = math.random(1, #(SEAD_GROUPS))
  1417.     local tempGrpAlias2 = '✦ SEAD' .. RngNum
  1418.     local LocX = Fun_LocX()
  1419.     local LocY = Fun_LocY()
  1420.  
  1421.  
  1422.     SEAD_task =
  1423.         SPAWN:NewWithAlias(SEAD_GROUPS[tempRandGroup2], tempGrpAlias2):OnSpawnGroup(
  1424.         function(SpawnGroup)
  1425.             location3m = SpawnGroup:GetCoordinate()
  1426.             SEAD_Marker_Loc = SpawnGroup:GetCoordinate()
  1427.             newlocation3m = location3m:GetRandomVec2InRadius(10, 50)
  1428.             FLAKlocation5m = location3m:GetRandomVec2InRadius(2000, 3500)
  1429.             FLAKlocation6m = location3m:GetRandomVec2InRadius(2000, 3500)
  1430.             FLAK_FAW_location5m = location3m:GetRandomVec2InRadius(LocX, LocY)
  1431.             FLAK_FAW_location6m = location3m:GetRandomVec2InRadius(LocX, LocY)
  1432.  
  1433.  
  1434.             SEADMAPMARKER =
  1435.                 MARKER:New(
  1436.                 SEAD_Marker_Loc,
  1437.                 '⇨ Op: ' ..
  1438.                     Rng_OP_SEADCMD ..
  1439.                         ' ⇦ ☾ SEAD ☽ :' ..
  1440.                             '\n' ..
  1441.                                 SEAD_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  1442.                                     '\n' .. SEAD_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy())
  1443.             ):ToAll():ReadOnly()
  1444.             function SEAD_INFO_MENU(SpawnGroup)
  1445.                 SEAD_INFO =
  1446.                     trigger.action.outText(
  1447.                     '⇨ Operation: ' ..
  1448.                         Rng_OP_SEADCMD ..
  1449.                             ' ⇦ ☾ SEAD ☽' ..
  1450.                                 '\n \n' ..
  1451.                                     Rng_OP_Brief_SEADCMD ..
  1452.                                         '\n \n' ..
  1453.                                             SEAD_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  1454.                                                 '\n' ..
  1455.                                                     SEAD_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  1456.                                                         '\n' .. SEAD_Marker_Loc:ToStringMGRS(SETTINGS:SetLL_Accuracy()),
  1457.                     60
  1458.                 )
  1459.             end
  1460.  
  1461.             MenuCoalition_BLUE_TASK_SEAD =
  1462.                 MENU_COALITION_COMMAND:New(
  1463.                 coalition.side.BLUE,
  1464.                 '⇨ ' .. Rng_OP_SEADCMD .. ' ⇦ ☾ SEAD ☽',
  1465.                 MenuCoalition_BLUE_TASK,
  1466.                 SEAD_INFO_MENU
  1467.             )
  1468.  
  1469.             trigger.action.outText(
  1470.                 '⇨ Operation: ' ..
  1471.                     Rng_OP_SEADCMD ..
  1472.                         ' ⇦ ☾ SEAD ☽' ..
  1473.                             '\n \n' ..
  1474.                                 Rng_OP_Brief_SEADCMD ..
  1475.                                     '\n \n' ..
  1476.                                         SEAD_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  1477.                                             '\n' ..
  1478.                                                 SEAD_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  1479.                                                     '\n' .. SEAD_Marker_Loc:ToStringMGRS(SETTINGS:SetLL_Accuracy()),
  1480.                 60
  1481.             )
  1482.  
  1483.             NEWBAIHARD = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  1484.             NEWBAIHARD:ToCoalition(coalition.side.BLUE)
  1485.  
  1486.             SEADJTAC = SPAWN:NewWithAlias('jtac', 'jtac  SEAD-' .. RngNum):SpawnFromVec2(newlocation3m)
  1487.             SEADJTACName = SEADJTAC:GetName()
  1488.             JTACAutoLase(SEADJTACName, 1688, Enable_JTAC_Smoke, 'all', RngCol)
  1489.             BAIFLAK5m = SPAWN:NewWithAlias('FLAK_Combo', 'FLAK1 -' .. RngNum):SpawnFromVec2(FLAKlocation5m)
  1490.             BAIFLAK6m = SPAWN:NewWithAlias('FLAK_Combo', 'FLAK2 -' .. RngNum):SpawnFromVec2(FLAKlocation6m)
  1491.             BAIFLAK_Ammo5m = SPAWN:NewWithAlias('AMMO_Vehicle', 'FLAK Ammo1 -' .. RngNum):SpawnFromVec2(FLAKlocation5m)
  1492.             BAIFLAK_Ammo6m = SPAWN:NewWithAlias('AMMO_Vehicle', 'FLAK Ammo2 -' .. RngNum):SpawnFromVec2(FLAKlocation6m)
  1493. --[[ ---
  1494.             Flak_Tasks5m = {}
  1495.             BAIFLAK_FAW5m = BAIFLAK5m:GetName()
  1496.             BAIFLAK_FAW5m_grp = GROUP:FindByName(BAIFLAK_FAW5m)
  1497.             BAIFLAK_FAW5m_units = BAIFLAK_FAW5m_grp:GetUnits()
  1498.             for i = 1, #BAIFLAK_FAW5m_units do
  1499.                 local BAIFLAK_FAW5m_units = BAIFLAK_FAW5m_grp:GetUnit(i)
  1500.                 Flak_Tasks5m[#Flak_Tasks5m + 1] =
  1501.                     BAIFLAK_FAW5m_grp:TaskFireAtPoint(FLAK_FAW_location5, 1000, nil, nil, 3000, 1)
  1502.             end
  1503.             BAIFLAK_FAW5m_grp:PushTask(BAIFLAK_FAW5m_grp:TaskCombo(Flak_Tasks5m), 5)
  1504.  
  1505.             Flak_Tasks6m = {}
  1506.             BAIFLAK_FAW6m = BAIFLAK6m:GetName()
  1507.             BAIFLAK_FAW6m_grp = GROUP:FindByName(BAIFLAK_FAW6m)
  1508.             BAIFLAK_FAW6m_units = BAIFLAK_FAW6m_grp:GetUnits()
  1509.             for i = 1, #BAIFLAK_FAW6m_units do
  1510.                 local BAIFLAK_FAW6m_units = BAIFLAK_FAW6m_grp:GetUnit(i)
  1511.                 Flak_Tasks6m[#Flak_Tasks6m + 1] =
  1512.                     BAIFLAK_FAW6m_grp:TaskFireAtPoint(FLAK_FAW_location6, 1000, nil, nil, 3000, 1)
  1513.             end
  1514.             BAIFLAK_FAW6m_grp:PushTask(BAIFLAK_FAW6m_grp:TaskCombo(Flak_Tasks6m), 5)
  1515.  --]]---
  1516.  
  1517.             SpawnGroup:HandleEvent(EVENTS.Dead)
  1518.             function SpawnGroup:OnEventDead(EventData)
  1519.                 if SpawnGroup:GetSize() <= 1 then
  1520.                     trigger.action.outText('⇨ Operation: ' .. Rng_OP_SEADCMD .. ' ⇦ ☾ SEAD ☽ SUCCESSFUL', 15)
  1521.                     SEADMAPMARKER:Remove(1)
  1522.                     SNDTAKEOFF = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  1523.                     SNDTAKEOFF:ToCoalition(coalition.side.BLUE)
  1524.                     SEADJTACName1m = SEADJTAC:GetName()
  1525.                     BAIFLAK5namem = BAIFLAK5m:GetName()
  1526.                     BAIFLAK6namem = BAIFLAK6m:GetName()
  1527.                     BAIFLAK_Ammo5Namem = BAIFLAK_Ammo5m:GetName()
  1528.                     BAIFLAK_Ammo6Namem = BAIFLAK_Ammo6m:GetName()
  1529.                     --Group.getByName(BAIFLAK_Ammo5Namem):ClearTasks()
  1530.                     --Group.getByName(BAIFLAK_Ammo6Namem):ClearTasks()
  1531.                     Group.getByName(SEADJTACName1mm):destroy()
  1532.                     Group.getByName(BAIFLAK5namem):destroy()
  1533.                     Group.getByName(BAIFLAK6namem):destroy()
  1534.                     Group.getByName(BAIFLAK_Ammo5Namem):destroy()
  1535.                     Group.getByName(BAIFLAK_Ammo6Namem):destroy()
  1536.                     MenuCoalition_BLUE_TASK_SEAD:Remove()
  1537.                 end
  1538.             end
  1539.         end
  1540.     ):SpawnInZone(TemplateZones[RNGzone3], true)
  1541. end
  1542. --↓↓ HELI BAI (MENU) ↓↓---------------------------------------------------------------------------------------------------------------------------------------------
  1543. function MakeTask_HELO_BAIcmd()
  1544.     local RngNum = randomnumber()
  1545.     local RngCol = randomcolor()
  1546.     local Rng_OP_NAME5CMD = RandOpName()
  1547.     local Rng_OP_Brief_HELIBAICMD = MissionTextBAI()
  1548.     local RNGHELIzone1 = math.random(1, #(TemplateHELOZones))
  1549.     local tempRandGroup7 = math.random(1, #(TemplateHELOBAI))
  1550.     local tempGrpAlias7 = '✧ Heli BAI' .. RngNum
  1551.  
  1552.     BAI_task =
  1553.         SPAWN:NewWithAlias(TemplateHELOBAI[tempRandGroup7], tempGrpAlias7):OnSpawnGroup(
  1554.         function(SpawnGroup)
  1555.             location4 = SpawnGroup:GetCoordinate()
  1556.             HELI_BAI_Marker_Loc = SpawnGroup:GetCoordinate()
  1557.             newlocation4 = location4:GetRandomVec2InRadius(10, 50)
  1558.             HELI_BAIMAPMARKER =
  1559.                 MARKER:New(
  1560.                 HELI_BAI_Marker_Loc,
  1561.                 '⇨ Op: ' ..
  1562.                     Rng_OP_NAME5CMD ..
  1563.                         ' ⇦ ☾ HELI BAI ☽ :' ..
  1564.                             '\n' ..
  1565.                                 HELI_BAI_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  1566.                                     '\n' .. HELI_BAI_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy())
  1567.             ):ToAll():ReadOnly()
  1568.  
  1569.             function HELIBAI_INFO_MENU(SpawnGroup)
  1570.                 HELIBAI_INFO =
  1571.                     trigger.action.outText(
  1572.                     '⇨ Operation: ' ..
  1573.                         Rng_OP_NAME5CMD ..
  1574.                             ' ⇦ ☾ HELI BAI ☽' ..
  1575.                                 '\n \n' ..
  1576.                                     Rng_OP_Brief_HELIBAICMD ..
  1577.                                         '\n \n' ..
  1578.                                             HELI_BAI_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  1579.                                                 '\n' ..
  1580.                                                     HELI_BAI_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  1581.                                                         '\n' ..
  1582.                                                             HELI_BAI_Marker_Loc:ToStringMGRS(SETTINGS:SetLL_Accuracy()),
  1583.                     60
  1584.                 )
  1585.             end
  1586.  
  1587.             MenuCoalition_BLUE_TASK_HELIBAI =
  1588.                 MENU_COALITION_COMMAND:New(
  1589.                 coalition.side.BLUE,
  1590.                 '⇨ ' .. Rng_OP_NAME5CMD .. ' ⇦ ☾ HELI BAI ☽',
  1591.                 MenuCoalition_BLUE_TASK,
  1592.                 HELIBAI_INFO_MENU
  1593.             )
  1594.  
  1595.             trigger.action.outText(
  1596.                 '⇨ Operation: ' ..
  1597.                     Rng_OP_NAME5CMD ..
  1598.                         ' ⇦ ☾ HELI BAI ☽' ..
  1599.                             '\n \n' ..
  1600.                                 Rng_OP_Brief_HELIBAICMD ..
  1601.                                     '\n \n' ..
  1602.                                         HELI_BAI_Marker_Loc:ToStringLLDDM(SETTINGS:SetLL_Accuracy()) ..
  1603.                                             '\n' ..
  1604.                                                 HELI_BAI_Marker_Loc:ToStringLLDMS(SETTINGS:SetLL_Accuracy()) ..
  1605.                                                     '\n' .. HELI_BAI_Marker_Loc:ToStringMGRS(SETTINGS:SetLL_Accuracy()),
  1606.                 60
  1607.             )
  1608.  
  1609.             NEWBAIHARD = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  1610.             NEWBAIHARD:ToCoalition(coalition.side.BLUE)
  1611.  
  1612.             HELI_BAIJTAC = SPAWN:NewWithAlias('jtac', 'jtac  BAI-' .. RngNum):SpawnFromVec2(newlocation4)
  1613.             HELI_BAIJTACName = HELI_BAIJTAC:GetName()
  1614.             JTACAutoLase(HELI_BAIJTACName, 1688, Enable_JTAC_Smoke, 'all', RngCol)
  1615.  
  1616.             SpawnGroup:HandleEvent(EVENTS.Dead)
  1617.             function SpawnGroup:OnEventDead(EventData)
  1618.                 if SpawnGroup:GetSize() <= 1 then
  1619.                     trigger.action.outText('⇨ Operation: ' .. Rng_OP_NAME5CMD .. ' ⇦ ☾ HELI BAI ☽ SUCCESSFUL', 15)
  1620.                     HELI_BAIMAPMARKER:Remove(1)
  1621.                     SNDTAKEOFF = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  1622.                     SNDTAKEOFF:ToCoalition(coalition.side.BLUE)
  1623.                     HELI_BAIJTACName1 = HELI_BAIJTAC:GetName()
  1624.                     Group.getByName(HELI_BAIJTACName1):destroy()
  1625.                     MenuCoalition_BLUE_TASK_HELIBAI:Remove()
  1626.                 end
  1627.             end
  1628.         end
  1629.     ):SpawnInZone(TemplateHELOZones[RNGHELIzone1], true)
  1630. end
  1631.  
  1632. --↓↓ AIRBOSS ↓↓-----------------------------------------------------------------------------------------------------------------------------------------------------
  1633. local tanker =
  1634.     RECOVERYTANKER:New(UNIT:FindByName('⚓ Battleship Battle Group-1'), '☮ YPF'):SetTakeoffAir():SetAltitude(
  1635.     Tanker_BOOM_Altitude
  1636. ):SetSpeed(Tanker_BOOM_Speed):SetHomeBase(AIRBASE.PersianGulf.Dubai_Intl):SetRadio(255):SetModex(511):SetTACAN(
  1637.     24,
  1638.     'YPF'
  1639. ):SetRacetrackDistances(50, 5):Start()
  1640.  
  1641. local tanker2 =
  1642.     RECOVERYTANKER:New(UNIT:FindByName('⚓ Battleship Battle Group-1'), '☮ ARCO'):SetTakeoffAir():SetAltitude(
  1643.     Tanker_BASKET_Altitude
  1644. ):SetSpeed(Tanker_BASKET_Speed):SetHomeBase(AIRBASE.PersianGulf.Dubai_Intl):SetRadio(257):SetModex(512):SetTACAN(
  1645.     25,
  1646.     'ARC'
  1647. ):SetRacetrackDistances(50, 5):Start()
  1648.  
  1649. local awacs =
  1650.     RECOVERYTANKER:New(UNIT:FindByName('⚓ Battleship Battle Group-1'), '☮ Wizard'):SetAWACS():SetTakeoffAir():SetRadio(
  1651.     251
  1652. ):SetAltitude(20000):SetHomeBase(AIRBASE.PersianGulf.Dubai_Intl):SetCallsign(CALLSIGN.AWACS.Wizard):SetRacetrackDistances(
  1653.     40,
  1654.     5
  1655. ):SetTACAN(26, 'WIZ'):SetModex(611):__Start(1)
  1656.  
  1657. if enable_RescueHelos == true then
  1658.     local rescuehelo =
  1659.         RESCUEHELO:New(UNIT:FindByName('⚓ CVN-74 Stennis'), '☮ Rescate'):SetHomeBase(AIRBASE:FindByName('Tico_A')):SetTakeoffAir(
  1660.  
  1661.     ):SetRespawnInAir():SetRescueDuration(1):SetModex(42):Start()
  1662.  
  1663.     local rescueheloB =
  1664.         RESCUEHELO:New(UNIT:FindByName('⚓ LHA-1 Tarawa'), '☮ Rescate'):SetHomeBase(AIRBASE:FindByName('Tico_B')):SetTakeoffAir(
  1665.  
  1666.     ):SetRespawnInAir():SetRescueDuration(1):SetModex(43):Start()
  1667.  
  1668.     local rescueheloC =
  1669.         RESCUEHELO:New(UNIT:FindByName('⚓ CVN-73 George Washington'), '☮ Rescate'):SetHomeBase(
  1670.         AIRBASE:FindByName('Tico_C')
  1671.     ):SetTakeoffAir():SetRespawnInAir():SetRescueDuration(1):SetModex(44):Start()
  1672. end
  1673.  
  1674. BARCO01 = GROUP:FindByName('⚓ Admiral Kuznetsov'):PatrolRoute()
  1675. BARCO02 = GROUP:FindByName('⚓ LHA-1 Tarawa'):PatrolRoute()
  1676. local TarawaTCNU = UNIT:FindByName('⚓ LHA-1 Tarawa')
  1677. local TarawaBeacon = TarawaTCNU:GetBeacon():ActivateTACAN(75, 'X', 'LHA', true):ActivateICLS(2, 'LHA')
  1678. BARCO03 = GROUP:FindByName('⚓ CVN-74 Stennis'):PatrolRoute()
  1679. local StennisTCNU = UNIT:FindByName('⚓ CVN-74 Stennis')
  1680. local StennisBeacon = StennisTCNU:GetBeacon():ActivateTACAN(74, 'X', 'STN', true):ActivateICLS(1, 'STN')
  1681. BARCO04 = GROUP:FindByName('⚓ CVN-73 George Washington'):PatrolRoute()
  1682. local WashingtonTCNU = UNIT:FindByName('⚓ CVN-73 George Washington')
  1683. local WashingtonBeacon = WashingtonTCNU:GetBeacon():ActivateTACAN(73, 'X', 'WSN', true):ActivateICLS(3, 'WSN')
  1684. BARCO05 = GROUP:FindByName('⚓ Battleship Battle Group'):PatrolRoute()
  1685.  
  1686. --FIN---------------------------------------------------------------------------------------------------------------------------------------------------------------
  1687. --↓↓ A2A ↓↓---------------------------------------------------------------------------------------------------------------------------------------------------------
  1688. EnemySpawnSector1 = ZONE:New('ZONA_REDA2A_SPAWN01')
  1689. EnemySpawnSector2 = ZONE:New('ZONA_REDA2A_SPAWN02')
  1690. EnemySpawnSector3 = ZONE:New('ZONA_REDA2A_SPAWN03')
  1691. EnemySpawnSector4 = ZONE:New('ZONA_REDA2A_SPAWN04')
  1692. EnemySpawnSector5 = ZONE:New('ZONA_REDA2A_SPAWN05')
  1693. EnemySpawnSector6 = ZONE:New('ZONA_REDA2A_SPAWN06')
  1694. AlliedSpawnSector1 = ZONE:New('ZONA_BLUEA2A_SPAWN01')
  1695. AlliedSpawnSector2 = ZONE:New('ZONA_BLUEA2A_SPAWN02')
  1696. AlliedSpawnSector3 = ZONE:New('ZONA_BLUEA2A_SPAWN03')
  1697. AlliedSpawnSector4 = ZONE:New('ZONA_BLUEA2A_SPAWN04')
  1698. EnemyCAPZoneList = {EnemySpawnSector1, EnemySpawnSector2, EnemySpawnSector3, EnemySpawnSector4, EnemySpawnSector5, EnemySpawnSector6}
  1699. AlliedCAPZoneList = {AlliedSpawnSector1, AlliedSpawnSector2, AlliedSpawnSector3, AlliedSpawnSector4}
  1700.  
  1701. local RngIDred = randomnumber()
  1702. local RngIDblue = randomnumber()
  1703. local RngIDBOMBRED = randomnumber()
  1704. local RedCatSQDN = '☢ CAT SQN' .. RngIDred
  1705. local RedBearSQDN = '☢ BEAR SQN' .. RngIDred
  1706. local RedTigerSQDN = '☢ TIGER SQN' .. RngIDred
  1707. local BlueShieldA2ASQDN = '☮ SHIELD SQN A2A' .. RngIDblue
  1708. local BlueShieldA2GSQDN = '☮ SHIELD SQN A2G' .. RngIDblue
  1709. local BlueFalconSQDN = '☮ FALCON SQN' .. RngIDblue
  1710. local BlueHawkSQDN = '☮ HAWK SQN' .. RngIDblue
  1711. local BlueEagleSQDN = '☮ EAGLE SQN' .. RngIDblue
  1712. local RedBOMBSQDN = '☢ BOMBER ' .. RngIDBOMBRED
  1713.  
  1714. -----------------------------------------CAT SQN-----------------------------------------
  1715. if Enable_CAT_Squadron == true then
  1716.     CATSQDN_CAP =
  1717.         SPAWN:NewWithAlias('A2A_REDCAP_TEMPLATE', RedCatSQDN):InitRandomizeTemplate(RedCapPlanesLIST):InitRandomizeRoute(
  1718.         1,
  1719.         2,
  1720.         20000
  1721.     ):InitCleanUp(60):InitHeading(330, 40):InitSkill(CAT_SQDN_Skill):InitLimit(TotalAliveRedPlanes, 0)
  1722.  
  1723.     function CATSQDN_CAP_start()
  1724.         local REDRNG_CAP_ZONE = math.random(1, #(EnemyCAPZoneList))
  1725.         CATSQDN_CAP:SpawnInZone(EnemyCAPZoneList[REDRNG_CAP_ZONE], true, 5000, 10000)
  1726.     end
  1727.  
  1728.     function CATSQDN_CAP_Timer()
  1729.         timer.scheduleFunction(CATSQDN_CAP_Timer, {}, timer.getTime() + math.random(Cap_interval_min, Cap_interval_max))
  1730.         CATSQDN_CAP_start()
  1731.     end
  1732.  
  1733.     timer.scheduleFunction(
  1734.         function()
  1735.             CATSQDN_CAP_Timer()
  1736.         end,
  1737.         nil,
  1738.         timer.getTime() + math.random(300, 600)
  1739.     )
  1740. end
  1741. if Enable_CAT_Squadron == false then
  1742. --nothing
  1743. end
  1744. -----------------------------------------BEAR SQN-----------------------------------------
  1745. if Enable_BEAR_Squadron == true then
  1746.     BEARSQDN_CAP_Timer =
  1747.         SPAWN:NewWithAlias('A2A_REDCAP_TEMPLATE', RedBearSQDN):InitRandomizeTemplate(RedCapPlanesLIST):InitRandomizeRoute(
  1748.         1,
  1749.         2,
  1750.         20000
  1751.     ):InitCleanUp(60):InitHeading(330, 40):InitSkill(BEAR_SQDN_Skill):InitLimit(TotalAliveRedPlanes, 0)
  1752.  
  1753.     function BEARSQDN_CAP_Timer_start()
  1754.         local REDRNG_CAP_ZONE = math.random(1, #(EnemyCAPZoneList))
  1755.         BEARSQDN_CAP_Timer:SpawnInZone(EnemyCAPZoneList[REDRNG_CAP_ZONE], true, 5000, 10000)
  1756.     end
  1757.  
  1758.     function BEARSQDN_CAP_Timer_Timer()
  1759.         timer.scheduleFunction(
  1760.             BEARSQDN_CAP_Timer_Timer,
  1761.             {},
  1762.             timer.getTime() + math.random(Cap_interval_min, Cap_interval_max)
  1763.         )
  1764.         BEARSQDN_CAP_Timer_start()
  1765.     end
  1766.  
  1767.     timer.scheduleFunction(
  1768.         function()
  1769.             BEARSQDN_CAP_Timer_Timer()
  1770.         end,
  1771.         nil,
  1772.         timer.getTime() + math.random(300, 600)
  1773.     )
  1774. end
  1775. if Enable_BEAR_Squadron == false then
  1776. --nothing
  1777. end
  1778. -----------------------------------------TIGER SQN-----------------------------------------
  1779. if Enable_TIGER_Squadron == true then
  1780.     TIGERSQDN_CAP_Timer =
  1781.         SPAWN:NewWithAlias('A2A_REDCAP_TEMPLATE', RedTigerSQDN):InitRandomizeTemplate(RedCapPlanesLIST):InitRandomizeRoute(
  1782.         1,
  1783.         2,
  1784.         20000
  1785.     ):InitCleanUp(60):InitHeading(330, 40):InitSkill(TIGER_SQDN_Skill):InitLimit(TotalAliveRedPlanes, 0)
  1786.  
  1787.     function TIGERSQDN_CAP_Timer_start()
  1788.         local REDRNG_CAP_ZONE = math.random(1, #(EnemyCAPZoneList))
  1789.         TIGERSQDN_CAP_Timer:SpawnInZone(EnemyCAPZoneList[REDRNG_CAP_ZONE], true, 5000, 10000)
  1790.     end
  1791.  
  1792.     function TIGERSQDN_CAP_Timer_Timer()
  1793.         timer.scheduleFunction(
  1794.             TIGERSQDN_CAP_Timer_Timer,
  1795.             {},
  1796.             timer.getTime() + math.random(Cap_interval_min, Cap_interval_max)
  1797.         )
  1798.         TIGERSQDN_CAP_Timer_start()
  1799.     end
  1800.  
  1801.     timer.scheduleFunction(
  1802.         function()
  1803.             TIGERSQDN_CAP_Timer_Timer()
  1804.         end,
  1805.         nil,
  1806.         timer.getTime() + math.random(300, 600)
  1807.     )
  1808. end
  1809. if Enable_TIGER_Squadron == false then
  1810. --nothing
  1811. end
  1812. -----------------------------------------BOMB SQUADS----------------------------------------------------------------------------------------------------------------
  1813. if Enable_BOMBER_Squadrons == true then
  1814.     BomberSquadron =
  1815.         SPAWN:NewWithAlias('A2A_BOMBSQUADTEMPLATE', RedBOMBSQDN):InitRandomizeTemplate(RedBombPlanesLIST):InitRandomizeRoute(
  1816.         1,
  1817.         2,
  1818.         20000
  1819.     ):InitCleanUp(240):InitHeading(330, 40):InitLimit(4, 0)
  1820.  
  1821.     function BomberSquadron_start()
  1822.         local REDRNG_CAP_ZONE = math.random(1, #(EnemyCAPZoneList))
  1823.         BomberSquadron:SpawnInZone(EnemyCAPZoneList[REDRNG_CAP_ZONE], true, 5000, 10000)
  1824.         --trigger.action.outSound('TRT OGGs/TransmisionEntrante.ogg')
  1825.     end
  1826.  
  1827.     function BomberSquadron_Timer()
  1828.         timer.scheduleFunction(
  1829.             BomberSquadron_Timer,
  1830.             {},
  1831.             timer.getTime() + math.random(Bomber_interval_min, Bomber_interval_max)
  1832.         )
  1833.         BomberSquadron_start()
  1834.     end
  1835.  
  1836.     timer.scheduleFunction(
  1837.         function()
  1838.             BomberSquadron_Timer()
  1839.         end,
  1840.         nil,
  1841.         timer.getTime() + math.random(600, 900)
  1842.     )
  1843. end
  1844. if Enable_BOMBER_Squadrons == false then
  1845. --nothing
  1846. end
  1847. --FIN---------------------------------------------------------------------------------------------------------------------------------------------------------------
  1848. -----------------------------------------FALCON SQN-----------------------------------------
  1849. if Enable_FALCON_Squadron == true then
  1850.     FALCONSQDN_CAP_Timer =
  1851.         SPAWN:NewWithAlias('A2A_BLUECAP_TEMPLATE', BlueFalconSQDN):InitRandomizeTemplate(BlueCapPlanesLIST):InitRandomizeRoute(
  1852.         1,
  1853.         2,
  1854.         20000
  1855.     ):InitCleanUp(60):InitHeading(0, 50):InitSkill(FALCON_SQDN_Skill):InitLimit(TotalAliveBluePlanes, 0)
  1856.  
  1857.     function FALCONSQDN_CAP_Timer_start()
  1858.         local BLUERNG_CAP_ZONE = math.random(1, #(AlliedCAPZoneList))
  1859.         FALCONSQDN_CAP_Timer:SpawnInZone(AlliedCAPZoneList[BLUERNG_CAP_ZONE], true, 5000, 10000)
  1860.     end
  1861.  
  1862.     function FALCONSQDN_CAP_Timer_Timer()
  1863.         timer.scheduleFunction(
  1864.             FALCONSQDN_CAP_Timer_Timer,
  1865.             {},
  1866.             timer.getTime() + math.random(Cap_interval_min, Cap_interval_max)
  1867.         )
  1868.         FALCONSQDN_CAP_Timer_start()
  1869.     end
  1870.  
  1871.     timer.scheduleFunction(
  1872.         function()
  1873.             FALCONSQDN_CAP_Timer_Timer()
  1874.         end,
  1875.         nil,
  1876.         timer.getTime() + math.random(300, 600)
  1877.     )
  1878. end
  1879. if Enable_FALCON_Squadron == false then
  1880. --nothing
  1881. end
  1882. -----------------------------------------HAWK SQN-----------------------------------------
  1883. if Enable_HAWK_Squadron == true then
  1884.     HAWKSQDN_CAP_Timer =
  1885.         SPAWN:NewWithAlias('A2A_BLUECAP_TEMPLATE', BlueHawkSQDN):InitRandomizeTemplate(BlueCapPlanesLIST):InitRandomizeRoute(
  1886.         1,
  1887.         2,
  1888.         20000
  1889.     ):InitCleanUp(60):InitHeading(0, 50):InitSkill(HAWK_SQDN_Skill):InitLimit(TotalAliveBluePlanes, 0)
  1890.  
  1891.     function HAWKSQDN_CAP_Timer_start()
  1892.         local BLUERNG_CAP_ZONE = math.random(1, #(AlliedCAPZoneList))
  1893.         HAWKSQDN_CAP_Timer:SpawnInZone(AlliedCAPZoneList[BLUERNG_CAP_ZONE], true, 5000, 10000)
  1894.     end
  1895.  
  1896.     function HAWKSQDN_CAP_Timer_Timer()
  1897.         timer.scheduleFunction(
  1898.             HAWKSQDN_CAP_Timer_Timer,
  1899.             {},
  1900.             timer.getTime() + math.random(Cap_interval_min, Cap_interval_max)
  1901.         )
  1902.         HAWKSQDN_CAP_Timer_start()
  1903.     end
  1904.  
  1905.     timer.scheduleFunction(
  1906.         function()
  1907.             HAWKSQDN_CAP_Timer_Timer()
  1908.         end,
  1909.         nil,
  1910.         timer.getTime() + math.random(300, 600)
  1911.     )
  1912. end
  1913. if Enable_HAWK_Squadron == false then
  1914. --nothing
  1915. end
  1916. -----------------------------------------EAGLE SQN-----------------------------------------
  1917. if Enable_EAGLE_Squadron == true then
  1918.     EAGLESQDN_CAP_Timer =
  1919.         SPAWN:NewWithAlias('A2A_BLUECAP_TEMPLATE', BlueEagleSQDN):InitRandomizeTemplate(BlueCapPlanesLIST):InitRandomizeRoute(
  1920.         1,
  1921.         2,
  1922.         20000
  1923.     ):InitCleanUp(60):InitHeading(0, 50):InitSkill(EAGLE_SQDN_Skill):InitLimit(TotalAliveBluePlanes, 0)
  1924.  
  1925.     function EAGLESQDN_CAP_Timer_start()
  1926.         local BLUERNG_CAP_ZONE = math.random(1, #(AlliedCAPZoneList))
  1927.         EAGLESQDN_CAP_Timer:SpawnInZone(AlliedCAPZoneList[BLUERNG_CAP_ZONE], true, 5000, 10000)
  1928.     end
  1929.  
  1930.     function EAGLESQDN_CAP_Timer_Timer()
  1931.         timer.scheduleFunction(
  1932.             EAGLESQDN_CAP_Timer_Timer,
  1933.             {},
  1934.             timer.getTime() + math.random(Cap_interval_min, Cap_interval_max)
  1935.         )
  1936.         EAGLESQDN_CAP_Timer_start()
  1937.     end
  1938.  
  1939.     timer.scheduleFunction(
  1940.         function()
  1941.             EAGLESQDN_CAP_Timer_Timer()
  1942.         end,
  1943.         nil,
  1944.         timer.getTime() + math.random(300, 600)
  1945.     )
  1946. end
  1947. if Enable_EAGLE_Squadron == false then
  1948. --nothing
  1949. end
  1950. --FIN---------------------------------------------------------------------------------------------------------------------------------------------------------------
  1951. -----------------------------------------FAKE CSAR-----------------------------------------
  1952. FAKE_CSAR_Planes_LIST = {
  1953.     '☮ F14B',
  1954.     --'☮ F16C'
  1955.   }
  1956.  
  1957.   if enable_CSAR == true then
  1958.     FAKE_CSAR_Timer =
  1959.         SPAWN:NewWithAlias('A2A_BLUECAP_CSAR', "Allied Plane"):InitRandomizeTemplate(FAKE_CSAR_Planes_LIST):InitRandomizeRoute(
  1960.         1,
  1961.         2,
  1962.         20000
  1963.     ):InitHeading(0, 360):InitLimit(1, 0)
  1964.  
  1965.     function FAKE_CSAR_Timer_start()
  1966.         local FAKE_CSAR_Zone = math.random(1, #(TemplateHELOZones))
  1967.         FAKE_CSAR_Timer:SpawnInZone(TemplateHELOZones[FAKE_CSAR_Zone], true, 5000, 10000)
  1968.     end
  1969.  
  1970.     function FAKE_CSAR_Timer_Timer()
  1971.         timer.scheduleFunction(FAKE_CSAR_Timer_Timer, {}, timer.getTime() + math.random(CSAR_Time_Min, CSAR_Time_Max))
  1972.         FAKE_CSAR_Timer_start()
  1973.     end
  1974.  
  1975.     timer.scheduleFunction(
  1976.         function()
  1977.             FAKE_CSAR_Timer_Timer()
  1978.         end,
  1979.         nil,
  1980.         timer.getTime() + math.random(30, 60)
  1981.     )
  1982.   end
  1983.   --FIN-------------------------------------------------------------------------------------------------------------------------------------------------------------
  1984.   Escorts_A2A = {}
  1985. Escorts_A2G = {}
  1986.  
  1987. BlueESCORTPlanesLIST = {
  1988.     '☮ F15_A2A_Escort',
  1989.     '☮ F16_A2A_Escort',
  1990.     '☮ F18_A2A_Escort',
  1991.     '☮ F14_A2A_Escort'
  1992.   }
  1993. BlueESCORTPlanesLISTA2G = {
  1994.     '☮ F16_A2G_Escort'
  1995.  }
  1996.  
  1997. local Blue_Client_CarrierSet = SET_GROUP:New():FilterPrefixes('✈'):FilterStart()
  1998. local Blue_A2A_Airbase_Escort = AIRBASE:FindByName(AIRBASE.PersianGulf.Kish_International_Airport)
  1999. local Blue_Escort_Planes = SPAWN:NewWithAlias('A2A_BLUE_ESCORT_TEMPLATE', BlueShieldA2ASQDN):InitRandomizeTemplate(BlueESCORTPlanesLIST):InitCleanUp(60):InitSkill("Random"):InitLimit(10,0)
  2000. local Blue_Client_CarrierSetA2G = SET_GROUP:New():FilterPrefixes('✈'):FilterStart()
  2001. local Blue_A2G_Airbase_Escort = AIRBASE:FindByName(AIRBASE.PersianGulf.Kish_International_Airport)
  2002. local Blue_A2GEscort_Planes = SPAWN:NewWithAlias('A2G_BLUE_ESCORT_TEMPLATE', BlueShieldA2GSQDN):InitRandomizeTemplate(BlueESCORTPlanesLISTA2G):InitCleanUp(60):InitSkill("Random"):InitLimit(10,0)
  2003.  
  2004. Blue_A2A_Escort_Dispatcher = AI_ESCORT_DISPATCHER_REQUEST:New(Blue_Client_CarrierSet,Blue_Escort_Planes,Blue_A2A_Airbase_Escort,'➣[A2A ESCORT]','')
  2005. Blue_A2G_Escort_Dispatcher =AI_ESCORT_DISPATCHER_REQUEST:New(Blue_Client_CarrierSetA2G,Blue_A2GEscort_Planes,Blue_A2G_Airbase_Escort,'➣[A2G ESCORT]','')
  2006.  
  2007. Blue_A2A_Escort_Dispatcher:Start()
  2008. Blue_A2G_Escort_Dispatcher:Start()
  2009.  
  2010.   --↓↓ FOX MISSILE TRAINER ↓↓-----------------------------------------------------------------------------------------------------------------------------------------
  2011. if enable_MissileTrainer == true then
  2012.   fox = FOX:New()
  2013.   fox:AddSafeZone(ZONE:New('SAFE01'))
  2014.   fox:AddSafeZone(ZONE:New('SAFE02'))
  2015.   fox:AddSafeZone(ZONE:New('SAFE03'))
  2016.   fox:AddSafeZone(ZONE:New('SAFE04'))
  2017.   fox:AddProtectedGroup(GROUP:FindByName('⚓ CVN-74 Stennis'))
  2018.   fox:AddProtectedGroup(GROUP:FindByName('⚓ CVN-73 George Washington'))
  2019.   fox:AddProtectedGroup(GROUP:FindByName('⚓ LHA-1 Tarawa'))
  2020.   fox:AddProtectedGroup(GROUP:FindByName('⚓ Admiral Kuznetsov'))
  2021.   fox:AddSafeZone(ZONE_UNIT:New('⚓ CVN-74 Stennis', UNIT:FindByName('⚓ CVN-74 Stennis'), 9260))
  2022.   fox:AddSafeZone(ZONE_UNIT:New('⚓ CVN-73 George Washington', UNIT:FindByName('⚓ CVN-73 George Washington'), 9260))
  2023.   fox:AddSafeZone(ZONE_UNIT:New('⚓ LHA-1 Tarawa', UNIT:FindByName('⚓ LHA-1 Tarawa'), 9260))
  2024.   fox:AddSafeZone(ZONE_UNIT:New('⚓ Admiral Kuznetsov', UNIT:FindByName('⚓ Admiral Kuznetsov'), 9260))
  2025.   fox:AddLaunchZone(ZONE:New('Lanzamientos'))
  2026.   fox:SetDefaultLaunchMarks(false)
  2027.   fox:SetDisableF10Menu(true)
  2028.  
  2029.   function fox:OnAfterEnterSafeZone(From, Event, To, _player)
  2030.       local player = _player --Functional.Fox2#FOX.PlayerData
  2031.       --    MESSAGE:New("✠ You are in a safe area ✠"):ToClient(player.client)
  2032.       trigger.action.outSound('TRT OGGs/ISA.ogg')
  2033.   end
  2034.  
  2035.   function fox:OnAfterExitSafeZone(From, Event, To, _player)
  2036.       local player = _player --Functional.Fox2#FOX.PlayerData
  2037.       --    MESSAGE:New("✠ You are leaving a safe area ✠"):ToClient(player.client)
  2038.       trigger.action.outSound('TRT OGGs/LSA.ogg')
  2039.   end
  2040.  
  2041.   fox:Start()
  2042. end
  2043.  
  2044. --FIN---------------------------------------------------------------------------------------------------------------------------------------------------------------
  2045. --↓↓ MOOSE SOUND LIB ↓↓---------------------------------------------------------------------------------------------------------------------------------------------
  2046. BajasAA1 = USERSOUND:New( "TRT OGGs/Baja AA 1.ogg" )
  2047. BajasAA2 = USERSOUND:New( "TRT OGGs/Baja AA 2.ogg" )
  2048. BajasAA3 = USERSOUND:New( "TRT OGGs/Baja AA 3.ogg" )
  2049. BajasAA4 = USERSOUND:New( "TRT OGGs/Baja AA 4.ogg" )
  2050. BajasAA5 = USERSOUND:New( "TRT OGGs/Baja AA 5.ogg" )
  2051. BajasAA6 = USERSOUND:New( "TRT OGGs/Baja AA 6.ogg" )
  2052. BajasAA7 = USERSOUND:New( "TRT OGGs/Baja AA 7.ogg" )
  2053. BajasAA8 = USERSOUND:New( "TRT OGGs/Baja AA 8.ogg" )
  2054. BajasAA9 = USERSOUND:New( "TRT OGGs/Baja AA 9.ogg" )
  2055. BajasAA10 = USERSOUND:New( "TRT OGGs/Baja AA 10.ogg" )
  2056. BajasAA11 = USERSOUND:New( "TRT OGGs/Baja AA 11.ogg" )
  2057. BajasAA12 = USERSOUND:New( "TRT OGGs/Baja AA 12.ogg" )
  2058. BajasAA13 = USERSOUND:New( "TRT OGGs/Baja AA 13.ogg" )
  2059. BajasAA14 = USERSOUND:New( "TRT OGGs/Baja AA 14.ogg" )
  2060. BajasAA15 = USERSOUND:New( "TRT OGGs/Baja AA 15.ogg" )
  2061. BajasAA16 = USERSOUND:New( "TRT OGGs/Baja AA 16.ogg" )
  2062.  
  2063. BajasAL1 = USERSOUND:New( "TRT OGGs/PISO 1.ogg" )
  2064. BajasAL2 = USERSOUND:New( "TRT OGGs/PISO 2.ogg" )
  2065. BajasAL3 = USERSOUND:New( "TRT OGGs/PISO 3.ogg" )
  2066. BajasAL4 = USERSOUND:New( "TRT OGGs/PISO 4.ogg" )
  2067. BajasAL5 = USERSOUND:New( "TRT OGGs/PISO 5.ogg" )
  2068. BajasAL6 = USERSOUND:New( "TRT OGGs/PISO 6.ogg" )
  2069. BajasAL7 = USERSOUND:New( "TRT OGGs/PISO 7.ogg" )
  2070. BajasAL8 = USERSOUND:New( "TRT OGGs/PISO 8.ogg" )
  2071. BajasAL9 = USERSOUND:New( "TRT OGGs/PISO 9.ogg" )
  2072. BajasAL10 = USERSOUND:New( "TRT OGGs/PISO 10.ogg" )
  2073. BajasAL11 = USERSOUND:New( "TRT OGGs/PISO 11.ogg" )
  2074. BajasAL12 = USERSOUND:New( "TRT OGGs/PISO 12.ogg" )
  2075. BajasAL13 = USERSOUND:New( "TRT OGGs/PISO 13.ogg" )
  2076. BajasAL14 = USERSOUND:New( "TRT OGGs/PISO 14.ogg" )
  2077. BajasAL15 = USERSOUND:New( "TRT OGGs/PISO 15.ogg" )
  2078. BajasAL16 = USERSOUND:New( "TRT OGGs/PISO 16.ogg" )
  2079.  
  2080. BajasAG1 = USERSOUND:New( "TRT OGGs/Baja AG 1.ogg" )
  2081. BajasAG2 = USERSOUND:New( "TRT OGGs/Baja AG 2.ogg" )
  2082. BajasAG3 = USERSOUND:New( "TRT OGGs/Baja AG 3.ogg" )
  2083. BajasAG4 = USERSOUND:New( "TRT OGGs/Baja AG 4.ogg" )
  2084. BajasAG5 = USERSOUND:New( "TRT OGGs/Baja AG 5.ogg" )
  2085. BajasAG6 = USERSOUND:New( "TRT OGGs/Baja AG 6.ogg" )
  2086. BajasAG7 = USERSOUND:New( "TRT OGGs/Baja AG 7.ogg" )
  2087. BajasAG8 = USERSOUND:New( "TRT OGGs/Baja AG 8.ogg" )
  2088. BajasAG9 = USERSOUND:New( "TRT OGGs/Baja AG 9.ogg" )
  2089.  
  2090. TempBAJASAA = {BajasAA1, BajasAA2, BajasAA3, BajasAA4, BajasAA5, BajasAA6,BajasAA7,BajasAA8,BajasAA9,BajasAA10,BajasAA11,BajasAA12,BajasAA13,BajasAA14,BajasAA15,BajasAA16}
  2091. TempBAJASAL = {BajasAL1, BajasAL2, BajasAL3, BajasAL4, BajasAL5, BajasAL6,BajasAL7,BajasAL8,BajasAL9,BajasAL10,BajasAL11,BajasAL12,BajasAL13,BajasAL14,BajasAL15,BajasAL16}
  2092. TempBAJASAG = {BajasAG1, BajasAG2, BajasAG3, BajasAG4, BajasAG5, BajasAG6,BajasAG7,BajasAG8,BajasAG9}
  2093.  
  2094. Contadorde_BajasAA = SET_UNIT:New():FilterPrefixes( { "☢" } ):FilterCoalitions( "Red" ):FilterStart()
  2095. Contadorde_BajasAA:HandleEvent(EVENTS.Crash)
  2096.  
  2097. function SonidoBajaAA()
  2098. local Sound = TempBAJASAA[math.random(1,table.getn(TempBAJASAA))]
  2099. return Sound
  2100. end
  2101.  
  2102. function SonidoBajaAL()
  2103. local Sound = TempBAJASAL[math.random(1,table.getn(TempBAJASAL))]
  2104. return Sound
  2105. end
  2106.  
  2107. function SonidoBajaAG()
  2108. local Sound = TempBAJASAG[math.random(1,table.getn(TempBAJASAG))]
  2109. return Sound
  2110. end
  2111.  
  2112. function Contadorde_BajasAA:OnEventCrash(EventData)
  2113.   local CrashedUnitCoalition = EventData.IniCoalition
  2114.   local CrashedUnitType = EventData.IniTypeName
  2115.  
  2116.   if (RadioAmbienteActivada_AA == 1) then
  2117.       if (CrashedUnitCoalition == 1) then
  2118.           trigger.action.outText('✗ Enemy ' .. CrashedUnitType .. '  shot down!', 5)
  2119.           SNDBAJAEN = SonidoBajaAA()
  2120.           SNDBAJAEN:ToCoalition(coalition.side.BLUE)
  2121.       elseif (CrashedUnitCoalition == 2) then
  2122.           trigger.action.outText('✝ Allied ' .. CrashedUnitType .. '  shot down!', 5)
  2123.           SNDBAJAAL = SonidoBajaAL()
  2124.           SNDBAJAAL:ToCoalition(coalition.side.BLUE)
  2125.       else
  2126.           --NADA
  2127.       end
  2128.   else
  2129.       --NADA
  2130.   end
  2131. end
  2132.  
  2133. Contadorde_BajasAG = SET_UNIT:New():FilterCoalitions('Red'):FilterStart()
  2134. Contadorde_BajasAG:HandleEvent(EVENTS.Dead)
  2135.  
  2136. function Contadorde_BajasAG:OnEventDead(EventData)
  2137.     local A2Gdestroyedcoalition = EventData.IniCoalition
  2138.     local A2GdestroyedType = EventData.IniTypeName
  2139.  
  2140.     if (RadioAmbienteActivada_AG == 1) then
  2141.         if (A2Gdestroyedcoalition == 1) then
  2142.             if (timer.getAbsTime() >= SoundLockout + 7) then
  2143.                 --trigger.action.outText("✗ A " .. A2GdestroyedType .. " has been destroyed! ",15)
  2144.                 SNDBAJAAG = SonidoBajaAG()
  2145.                 SNDBAJAAG:ToCoalition(coalition.side.BLUE)
  2146.                 SoundLockout = timer.getAbsTime()
  2147.             end
  2148.         end
  2149.     else
  2150.         --NADA
  2151.     end
  2152. end
  2153.  
  2154. SET_Despegues = SET_UNIT:New():FilterPrefixes('✈'):FilterCoalitions('Blue'):FilterStart()
  2155. SET_Despegues:HandleEvent(EVENTS.Takeoff)
  2156.  
  2157. function SET_Despegues:OnEventTakeoff(EventData)
  2158.   local GRUPODEJUGADOR = EventData.IniDCSGroupName
  2159.   local LUGARDEDESPEGUE = EventData.PlaceName
  2160.   local NOMBREDEJUGADOR1 = EventData.IniPlayerName
  2161.  
  2162.   if string.find(GRUPODEJUGADOR, '✈') then
  2163.       trigger.action.outText(NOMBREDEJUGADOR1 .. ' took off from ' .. LUGARDEDESPEGUE, 15)
  2164.       SNDTAKEOFF = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  2165.       SNDTAKEOFF:ToCoalition(coalition.side.BLUE)
  2166.   else
  2167.       --NADA
  2168.   end
  2169. end
  2170.  
  2171. DeleteLanding = EVENTHANDLER:New()
  2172. DeleteLanding:HandleEvent(EVENTS.Land)
  2173. function DeleteLanding:OnEventLand(EventData)
  2174.     ThisGroup = GROUP:FindByName(EventData.IniGroupName)
  2175.     GroupUnit = ThisGroup:GetDCSUnit(1)
  2176.     FirstUnit = UNIT:Find(GroupUnit)
  2177.     if FirstUnit:GetPlayerName() then
  2178.         PlayerName = FirstUnit:GetPlayerName()
  2179.         trigger.action.outText(PlayerName .. ' has landed', 15)
  2180.         SNDLANDING = USERSOUND:New('TRT OGGs/TransmisionEntrante.ogg')
  2181.         SNDLANDING:ToCoalition(coalition.side.BLUE)
  2182.         env.info(PlayerName .. ' has landed')
  2183.     else
  2184.         --env.info('Not a player landed, deleting')
  2185.         ScheduleDelete(ThisGroup)
  2186.      -- custom schedule to delete a group
  2187.     end
  2188. end
  2189.  
  2190. function ScheduleDelete(group)
  2191.     SCHEDULER:New(
  2192.         nil,
  2193.         function()
  2194.             env.info('Cleaning up: Destroying landed group')
  2195.             --trigger.action.outText('Cleaning up: Destroying landed AI groups', 15)
  2196.             group:Destroy()
  2197.         end,
  2198.         {},
  2199.         240
  2200.     )
  2201. end
  2202.  
  2203. SET_CLIENTJOIN = SET_UNIT:New():FilterPrefixes('✈'):FilterStart()
  2204. SET_CLIENTJOIN:HandleEvent(EVENTS.PlayerEnterUnit)
  2205.  
  2206. function SET_CLIENTJOIN:OnEventPlayerEnterUnit(EventData)
  2207.   local Playerenter = EventData.IniPlayerName
  2208.   local PlayerPlaneType = EventData.IniTypeName
  2209.  
  2210.   trigger.action.outText('Pilot ' .. Playerenter .. ' is in a ' .. PlayerPlaneType .. ' cockpit.', 15)
  2211.   trigger.action.outSound('TRT OGGs/CFTO.ogg')
  2212. end
  2213. --FIN---------------------------------------------------------------------------------------------------------------------------------------------------------------
  2214. -------------------------
  2215. --   Menu / Funciones  --
  2216. -------------------------
  2217. TRTOpciones = missionCommands.addSubMenuForCoalition(coalition.side.BLUE, "➣[MISSION OPTIONS]", nil)
  2218. TRTOpcionesSonido = missionCommands.addSubMenuForCoalition(coalition.side.BLUE, "➣[SOUND OPTIONS]", TRTOpciones, nil)
  2219. TRTCurrentMissionSettings = missionCommands.addCommandForCoalition(coalition.side.BLUE, "➣[CURRENT SETTINGS]", TRTOpciones, function() CurrentMissionSettings() end, nil)
  2220. TRTCurrentSQDN = missionCommands.addCommandForCoalition(coalition.side.BLUE, "➣[ACTIVE SQDNS LIST", TRTOpciones, function() CurrentCAPSettings() end, nil)
  2221.  
  2222. if allow_EndMissionViaRadio == true then
  2223. TRTOpcionesENDMISSION = missionCommands.addSubMenuForCoalition(coalition.side.BLUE, "➣[END MISSION]", TRTOpciones, nil)
  2224. TRTOpcionesENDMISSIONconfirm1 = missionCommands.addSubMenuForCoalition(coalition.side.BLUE, "✱ [ARE YOU SURE???]", TRTOpcionesENDMISSION, nil)
  2225. TRTOpcionesENDMISSION2 = missionCommands.addCommandForCoalition(coalition.side.BLUE, "✱ [YES! get me outta here]", TRTOpcionesENDMISSIONconfirm1, function() ENDMISSIONTRIGGER() end, nil)
  2226. TRTOpcionesENDMISSION3 = missionCommands.addCommandForCoalition(coalition.side.BLUE, "✱ [NO!, changed my mind]", TRTOpcionesENDMISSIONconfirm1, function() ENDMISSIONTRIGGERNO() end, nil)
  2227. end
  2228.  
  2229. TRTOpcionesRadioChatA2A = missionCommands.addCommandForCoalition(coalition.side.BLUE, "➣[TOGGLE A2A COMMS]", TRTOpcionesSonido, function() DesactivarRadioAmbienteAA() end, nil)
  2230. TRTOpcionesRadioChatA2G = missionCommands.addCommandForCoalition(coalition.side.BLUE, "➣[TOGGLE A2G COMMS]", TRTOpcionesSonido, function() DesactivarRadioAmbienteAG() end, nil)
  2231.  
  2232. if allow_CallSupportViaRadio == true then
  2233. TRTOpcionesSoporte = missionCommands.addSubMenuForCoalition(coalition.side.BLUE, "➣[CALL SUPPORT]", TRTOpciones, nil)
  2234. TRTOpcionesSoporteBAI = missionCommands.addCommandForCoalition(coalition.side.BLUE, "✱ [BAI]", TRTOpcionesSoporte, function() BLUE_BAI() end, nil)
  2235. TRTOpcionesSoporteSEAD = missionCommands.addCommandForCoalition(coalition.side.BLUE, "✱ [SEAD]", TRTOpcionesSoporte, function() BLUE_SEAD() end, nil)
  2236. TRTOpcionesSoporteANTISHIP = missionCommands.addCommandForCoalition(coalition.side.BLUE, "✱ [ANTI-SHIP]", TRTOpcionesSoporte, function() BLUE_AS() end, nil)
  2237. end
  2238.  
  2239. if allow_SpawnRedCAPs == true then
  2240. TRTOpcionesREDCAPS = missionCommands.addSubMenuForCoalition(coalition.side.BLUE, "➣[ENEMY CAP SPAWN]", TRTOpciones, nil)
  2241. TRTOpcionesEASYCAP = missionCommands.addCommandForCoalition(coalition.side.BLUE, "✱ [EASY - ✈x2]", TRTOpcionesREDCAPS, function() EASYCAP() end, nil)
  2242. TRTOpcionesMEDCAP = missionCommands.addCommandForCoalition(coalition.side.BLUE, "✱ [MEDIUM - ✈x3]", TRTOpcionesREDCAPS, function() MEDCAP() end, nil)
  2243. TRTOpcionesHARDCAP = missionCommands.addCommandForCoalition(coalition.side.BLUE, "✱ [HARD - ✈x4]", TRTOpcionesREDCAPS, function() HARDCAP() end, nil)
  2244. end
  2245.  
  2246. if allow_ManualTaskCreation == true then
  2247. TRTOpcionesTASKSMAIN = missionCommands.addSubMenuForCoalition(coalition.side.BLUE, "➣[MANUAL TASK CREATION]", TRTOpciones, nil)
  2248. TRTOpcionesMakeBAI = missionCommands.addCommandForCoalition(coalition.side.BLUE, "✱ [BAI TASK]", TRTOpcionesTASKSMAIN, function() MakeTaskBAI_menucmd() end, nil)
  2249. TRTOpcionesMakeBAIHard = missionCommands.addCommandForCoalition(coalition.side.BLUE, "✱ [BAI (HARD) TASK]", TRTOpcionesTASKSMAIN, function() MakeTaskBAIHARD_menucmd() end, nil)
  2250. TRTOpcionesMakeSEAD = missionCommands.addCommandForCoalition(coalition.side.BLUE, "✱ [SEAD TASK]", TRTOpcionesTASKSMAIN, function() MakeTaskSEAD_menucmd() end, nil)
  2251. TRTOpcionesMakeAship = missionCommands.addCommandForCoalition(coalition.side.BLUE, "✱ [ANTI SHIP TASK]", TRTOpcionesTASKSMAIN, function() MakeTaskNavBAI_menucmd() end, nil)
  2252. TRTOpcionesMakeHeliBAI = missionCommands.addCommandForCoalition(coalition.side.BLUE, "✱ [HELI BAI TASK]", TRTOpcionesTASKSMAIN, function() MakeTask_HELO_BAIcmd() end, nil)
  2253. end
  2254. --FIN---------------------------------------------------------------------------------------------------------------------------------------------------------------
  2255. --↓↓ ENEMY CAP SPAWN ↓↓---------------------------------------------------------------------------------------------------------------------------------------------
  2256. EASY_CapPlanesLIST = {
  2257.     '☢ MiG-31',
  2258.     '☢ MiG-29S',
  2259.     '☢ MiG-21Bis',
  2260.     '☢ Su-27',
  2261.     '☢ Su-33',
  2262.     '☢ MiG-19P',
  2263.     '☢ MiG-23MLD',
  2264.     '☢ MiG-25PD',
  2265.     '☢ Su-34',
  2266.     '☢ F5E3',
  2267.     '☢ F-15C',
  2268.     '☢ F-18C',
  2269.     '☢ F-14B',
  2270.     '☢ JF-17',
  2271.     '☢ J-11',
  2272.     '☢ Mirage 2000'
  2273. }
  2274.  
  2275. MEDIUM_CapPlanesLIST = {
  2276.     '☢ MiG-31_Med',
  2277.     '☢ MiG-29S_Med',
  2278.     '☢ MiG-21Bis_Med',
  2279.     '☢ Su-27_Med',
  2280.     '☢ Su-33_Med',
  2281.     '☢ MiG-19P_Med',
  2282.     '☢ MiG-23MLD_Med',
  2283.     '☢ MiG-25PD_Med',
  2284.     '☢ Su-34_Med',
  2285.     '☢ F5E3_Med',
  2286.     '☢ F-15C_Med',
  2287.     '☢ F-18C_Med',
  2288.     '☢ F-14B_Med',
  2289.     '☢ JF-17_Med',
  2290.     '☢ J-11_Med',
  2291.     '☢ Mirage 2000_Med'
  2292. }
  2293.  
  2294. HARD_CapPlanesLIST = {
  2295.     '☢ MiG-31_Hard',
  2296.     '☢ MiG-29S_Hard',
  2297.     '☢ MiG-21Bis_Hard',
  2298.     '☢ Su-27_Hard',
  2299.     '☢ Su-33_Hard',
  2300.     '☢ MiG-19P_Hard',
  2301.     '☢ MiG-23MLD_Hard',
  2302.     '☢ MiG-25PD_Hard',
  2303.     '☢ Su-34_Hard',
  2304.     '☢ F5E3_Hard',
  2305.     '☢ F-15C_Hard',
  2306.     '☢ F-18C_Hard',
  2307.     '☢ F-14B_Hard',
  2308.     '☢ JF-17_Hard',
  2309.     '☢ J-11_Hard',
  2310.     '☢ Mirage 2000_Hard'
  2311. }
  2312.  
  2313. function EASYCAP()
  2314.     EASY_CapSpawn =
  2315.         SPAWN:NewWithAlias('A2A_REDCAP_TEMPLATE', 'EASY CAP'):InitRandomizeTemplate(EASY_CapPlanesLIST):InitSkill(
  2316.         'Average'
  2317.     ):InitRandomizeRoute(1, 2, 20000):InitCleanUp(60):InitHeading(120, 180):InitLimit(4, 0)
  2318.     local REDRNG_CAP_ZONE = math.random(1, #(EnemyCAPZoneList))
  2319.     EASY_CapSpawn:SpawnInZone(EnemyCAPZoneList[REDRNG_CAP_ZONE], true, 5000, 10000)
  2320. end
  2321.  
  2322. function MEDCAP()
  2323.     MEDIUM_CapSpawn =
  2324.         SPAWN:NewWithAlias('A2A_REDCAP_TEMPLATE', 'MEDIUM CAP'):InitRandomizeTemplate(MEDIUM_CapPlanesLIST):InitSkill(
  2325.         'Good'
  2326.     ):InitRandomizeRoute(1, 2, 20000):InitCleanUp(60):InitHeading(120, 180):InitLimit(6, 0)
  2327.     local REDRNG_CAP_ZONE = math.random(1, #(EnemyCAPZoneList))
  2328.     MEDIUM_CapSpawn:SpawnInZone(EnemyCAPZoneList[REDRNG_CAP_ZONE], true, 5000, 10000)
  2329. end
  2330.  
  2331. function HARDCAP()
  2332.     HARDCapSpawn =
  2333.         SPAWN:NewWithAlias('A2A_REDCAP_TEMPLATE', 'HARD CAP'):InitRandomizeTemplate(HARD_CapPlanesLIST):InitSkill(
  2334.         'Excellent'
  2335.     ):InitRandomizeRoute(1, 2, 20000):InitCleanUp(60):InitHeading(120, 180):InitLimit(8, 0)
  2336.     local REDRNG_CAP_ZONE = math.random(1, #(EnemyCAPZoneList))
  2337.     HARDCapSpawn:SpawnInZone(EnemyCAPZoneList[REDRNG_CAP_ZONE], true, 5000, 10000)
  2338. end
  2339. --FIN-------------------------------------------------------------------------------------------------------------------------------------------------------------
  2340. --↓↓ SUPPORT SPAWN ↓↓---------------------------------------------------------------------------------------------------------------------------------------------
  2341. BAI_PlanesLIST = {
  2342.     'BAI_F14',
  2343.     'BAI_AV8B',
  2344.     'BAI_F15',
  2345.     'BAI_A10',
  2346.     'BAI_F18',
  2347.     'BAI_M2000',
  2348.     'BAI_F16'
  2349. }
  2350.  
  2351. SEAD_PlanesLIST = {
  2352.     'SEAD_AV8B',
  2353.     'SEAD_F18',
  2354.     'SEAD_JF17',
  2355.     'SEAD_F16'
  2356. }
  2357.  
  2358. AS_PlanesLIST = {
  2359.     'AS_F18',
  2360.     'AS_JF17',
  2361.     'AS_JAS37',
  2362.     'AS_SU34'
  2363. }
  2364.  
  2365. function BLUE_BAI()
  2366.     BAI_PLANESSPAWN =
  2367.         SPAWN:NewWithAlias('BLUE_CAS_TMP', 'ALLIED BAI PATROL'):InitRandomizeTemplate(BAI_PlanesLIST):InitRandomizeRoute(
  2368.         1,
  2369.         2,
  2370.         20000
  2371.     ):InitCleanUp(60):InitHeading(120, 180):InitSkill('Random'):InitLimit(2, 0)
  2372.  
  2373.     local BLUERNG_CAP_ZONE = math.random(1, #(AlliedCAPZoneList))
  2374.     BAI_PLANESSPAWN:SpawnInZone(AlliedCAPZoneList[BLUERNG_CAP_ZONE], true, 5000, 10000)
  2375. end
  2376.  
  2377.  
  2378. function BLUE_SEAD()
  2379.     SEAD_PLANESSPAWN =
  2380.         SPAWN:NewWithAlias('BLUE_SEAD_TMP', 'ALLIED SEAD PATROL'):InitRandomizeTemplate(SEAD_PlanesLIST):InitRandomizeRoute(
  2381.         1,
  2382.         2,
  2383.         20000
  2384.     ):InitCleanUp(60):InitHeading(120, 180):InitSkill('Random'):InitLimit(2, 0)
  2385.  
  2386.     local BLUERNG_CAP_ZONE = math.random(1, #(AlliedCAPZoneList))
  2387.     SEAD_PLANESSPAWN:SpawnInZone(AlliedCAPZoneList[BLUERNG_CAP_ZONE], true, 5000, 10000)
  2388. end
  2389.  
  2390. function BLUE_AS()
  2391.     AS_PLANESSPAWN =
  2392.         SPAWN:NewWithAlias('BLUE_AS_TMP', 'ALLIED ANTI SHIP PATROL'):InitRandomizeTemplate(AS_PlanesLIST):InitRandomizeRoute(
  2393.         1,
  2394.         2,
  2395.         20000
  2396.     ):InitCleanUp(60):InitHeading(120, 180):InitSkill('Random'):InitLimit(2, 0)
  2397.  
  2398.     local BLUERNG_CAP_ZONE = math.random(1, #(AlliedCAPZoneList))
  2399.     AS_PLANESSPAWN:SpawnInZone(AlliedCAPZoneList[BLUERNG_CAP_ZONE], true, 5000, 10000)
  2400. end
  2401. --FIN---------------------------------------------------------------------------------------------------------------------------------------------------------------
  2402.  
  2403. function DesactivarRadioAmbienteAA()
  2404.   if (RadioAmbienteActivada_AA == 0) then
  2405.       RadioAmbienteActivada_AA = 1
  2406.       trigger.action.outText('A2A kills comms are now Enabled', 15)
  2407.   elseif (RadioAmbienteActivada_AA == 1) then
  2408.       RadioAmbienteActivada_AA = 0
  2409.       trigger.action.outText('A2A kills comms are now Disabled', 15)
  2410.   else
  2411.   end
  2412. end
  2413.  
  2414. function DesactivarRadioAmbienteAG()
  2415.   if (RadioAmbienteActivada_AG == 0) then
  2416.       RadioAmbienteActivada_AG = 1
  2417.       trigger.action.outText('A2G kills comms are now Enabled', 15)
  2418.   elseif (RadioAmbienteActivada_AG == 1) then
  2419.       RadioAmbienteActivada_AG = 0
  2420.       trigger.action.outText('A2G kills comms are now Disabled', 15)
  2421.   else
  2422.   end
  2423. end
  2424.  
  2425. function CurrentMissionSettings()
  2426.     if (enable_BAI_tasks == true) then
  2427.         trigger.action.outText('BAI tasks: ✔', 20)
  2428.     end
  2429.     if (enable_BAI_HARD_tasks == true) then
  2430.       trigger.action.outText('BAI (HARD) tasks: ✔', 20)
  2431.   end
  2432.   if (enable_AntiShip_tasks == true) then
  2433.       trigger.action.outText('Anti Ship tasks: ✔', 20)
  2434.   end
  2435.   if (enable_SEAD_tasks == true) then
  2436.       trigger.action.outText('SEAD tasks: ✔', 20)
  2437.   end
  2438.   if (enable_MissileTrainer == true) then
  2439.       trigger.action.outText('FOX Missile trainer: ✔', 20)
  2440.   end
  2441.   if (enable_ExtraDamage == true) then
  2442.       trigger.action.outText('Extra Damage: ✔', 20)
  2443.   end
  2444.   if (enable_AirTraffic == true) then
  2445.     trigger.action.outText('Random Air Traffic: ✔', 20)
  2446. end
  2447.   if (enable_CTDL == true) then
  2448.       trigger.action.outText('CTDL: ✔', 20)
  2449.   end
  2450.   if (enable_CSAR == true) then
  2451.       trigger.action.outText('CSAR: ✔', 20)
  2452.   end
  2453.   if (enable_ZEUS == true) then
  2454.       trigger.action.outText('Enhanced Gamemaster Script: ✔', 20)
  2455.   end
  2456.   if (enable_RescueHelos == true) then
  2457.       trigger.action.outText('Rescue Helos: ✔', 20)
  2458.   end
  2459.   if (allow_EndMissionViaRadio == true) then
  2460.       trigger.action.outText('You can finish the mission with the radio', 20)
  2461.   end
  2462.   if (allow_CallSupportViaRadio == true) then
  2463.       trigger.action.outText('You can spawn support planes via radio', 20)
  2464.   end
  2465.   if (allow_SpawnRedCAPs == true) then
  2466.     trigger.action.outText('You can spawn enemy CAPs via radio', 20)
  2467.   end
  2468.   if (allow_ManualTaskCreation == true) then
  2469.       trigger.action.outText('You can create A2G tasks manually via radio', 20)
  2470.   end
  2471. end
  2472.  
  2473. function CurrentCAPSettings()
  2474.   if (Enable_CAT_Squadron == true) then
  2475.       trigger.action.outText('Enemy CAT Squadron: ✔', 20)
  2476.   end
  2477.   if (Enable_BEAR_Squadron == true) then
  2478.       trigger.action.outText('Enemy BEAR Squadron: ✔', 20)
  2479.   end
  2480.   if (Enable_TIGER_Squadron == true) then
  2481.       trigger.action.outText('Enemy TIGER Squadron: ✔', 20)
  2482.   end
  2483.   if (Enable_BOMBER_Squadrons == true) then
  2484.     trigger.action.outText('Enemy Bomber SQUADRON: ✔', 20)
  2485. end
  2486.   if (Enable_FALCON_Squadron == true) then
  2487.       trigger.action.outText('Allied FALCON Squadron: ✔', 20)
  2488.   end
  2489.   if (Enable_HAWK_Squadron == true) then
  2490.       trigger.action.outText('Allied HAWK Squadron: ✔', 20)
  2491.   end
  2492.   if (Enable_EAGLE_Squadron == true) then
  2493.       trigger.action.outText('Allied EAGLE Squadron: ✔', 20)
  2494.   end
  2495.   if (Enable_CAT_Squadron == false) and (Enable_BEAR_Squadron == false) and (Enable_TIGER_Squadron == false) then
  2496.     trigger.action.outText('Enemy CAPs are turned OFF', 20)
  2497.   end
  2498.   if (Enable_FALCON_Squadron == false) and (Enable_HAWK_Squadron == false) and (Enable_EAGLE_Squadron == false) then
  2499.     trigger.action.outText('Allied CAPs are turned OFF', 20)
  2500.   end
  2501. end
  2502.  
  2503.  
  2504.  
  2505. function ENDMISSIONTRIGGER()
  2506.   trigger.action.setUserFlag(50, 5)
  2507. end
  2508.  
  2509. function ENDMISSIONTRIGGERNO()
  2510.   trigger.action.outText('Ok then...', 15)
  2511. end
  2512.  
  2513.  
  2514. trigger.action.outText("▁ ▂ ▄ ▅ ▆ ▇ █ THE ROUND TABLE █ ▇ ▆ ▅ ▄ ▂ ▁", 20)
  2515. trigger.action.outText("EN: CHECK YOUR MISSION CONFIG VIA RADIO MENU: Mission Options > Current Mission Settings & Mission Options > Active SQN List -", 15)
  2516. trigger.action.outText("ES: REVISA TU CONFIGURACION CON EL MENÚ DE RADIO: Mission Options > Current Mission Settings & Mission Options > Active SQN List -", 13)
  2517.  
RAW Paste Data