Advertisement
Mitharg

THE ROUND TABLE -CORE - Caucasus

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