@jtff/miztemplate-lib 3.1.0 → 3.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/mizlib.js +21 -4
- package/lua/lib/Moose_.lua +1923 -94
- package/package.json +1 -1
- package/scripts/inject-scripts.js +6 -0
package/lua/lib/Moose_.lua
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
env.info('*** MOOSE GITHUB Commit Hash ID: 2023-
|
|
1
|
+
env.info('*** MOOSE GITHUB Commit Hash ID: 2023-09-01T06:52:46.0000000Z-d7b87b63d8b9ec7fe737bc2aef7bd73817e7cea4 ***')
|
|
2
2
|
env.info('*** MOOSE STATIC INCLUDE START *** ')
|
|
3
3
|
ENUMS={}
|
|
4
4
|
ENUMS.ROE={
|
|
@@ -415,6 +415,574 @@ Reaper="MQ-9",
|
|
|
415
415
|
Predator="MQ-1A",
|
|
416
416
|
}
|
|
417
417
|
}
|
|
418
|
+
ENUMS.Storage={
|
|
419
|
+
weapons={
|
|
420
|
+
missiles={},
|
|
421
|
+
bombs={},
|
|
422
|
+
nurs={},
|
|
423
|
+
containers={},
|
|
424
|
+
droptanks={},
|
|
425
|
+
adapters={},
|
|
426
|
+
torpedoes={},
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE253_F1B="weapons.nurs.SNEB_TYPE253_F1B"
|
|
430
|
+
ENUMS.Storage.weapons.missiles.P_24T="weapons.missiles.P_24T"
|
|
431
|
+
ENUMS.Storage.weapons.bombs.BLU_3B_OLD="weapons.bombs.BLU-3B_OLD"
|
|
432
|
+
ENUMS.Storage.weapons.missiles.AGM_154="weapons.missiles.AGM_154"
|
|
433
|
+
ENUMS.Storage.weapons.nurs.HYDRA_70_M151_M433="weapons.nurs.HYDRA_70_M151_M433"
|
|
434
|
+
ENUMS.Storage.weapons.bombs.SAM_Avenger_M1097_Skid_7090lb="weapons.bombs.SAM Avenger M1097 Skid [7090lb]"
|
|
435
|
+
ENUMS.Storage.weapons.bombs.British_GP_250LB_Bomb_Mk5="weapons.bombs.British_GP_250LB_Bomb_Mk5"
|
|
436
|
+
ENUMS.Storage.weapons.containers.OV10_SMOKE="weapons.containers.{OV10_SMOKE}"
|
|
437
|
+
ENUMS.Storage.weapons.bombs.BLU_4B_OLD="weapons.bombs.BLU-4B_OLD"
|
|
438
|
+
ENUMS.Storage.weapons.bombs.FAB_500M54="weapons.bombs.FAB-500M54"
|
|
439
|
+
ENUMS.Storage.weapons.bombs.GBU_38="weapons.bombs.GBU_38"
|
|
440
|
+
ENUMS.Storage.weapons.containers.F_15E_AXQ_14_DATALINK="weapons.containers.F-15E_AXQ-14_DATALINK"
|
|
441
|
+
ENUMS.Storage.weapons.bombs.BEER_BOMB="weapons.bombs.BEER_BOMB"
|
|
442
|
+
ENUMS.Storage.weapons.bombs.P_50T="weapons.bombs.P-50T"
|
|
443
|
+
ENUMS.Storage.weapons.nurs.C_8CM_GN="weapons.nurs.C_8CM_GN"
|
|
444
|
+
ENUMS.Storage.weapons.bombs.FAB_500SL="weapons.bombs.FAB-500SL"
|
|
445
|
+
ENUMS.Storage.weapons.bombs.KAB_1500Kr="weapons.bombs.KAB_1500Kr"
|
|
446
|
+
ENUMS.Storage.weapons.bombs.two50_2="weapons.bombs.250-2"
|
|
447
|
+
ENUMS.Storage.weapons.droptanks.Spitfire_tank_1="weapons.droptanks.Spitfire_tank_1"
|
|
448
|
+
ENUMS.Storage.weapons.missiles.AGM_65G="weapons.missiles.AGM_65G"
|
|
449
|
+
ENUMS.Storage.weapons.missiles.AGM_65A="weapons.missiles.AGM_65A"
|
|
450
|
+
ENUMS.Storage.weapons.containers.Hercules_JATO="weapons.containers.Hercules_JATO"
|
|
451
|
+
ENUMS.Storage.weapons.nurs.HYDRA_70_M259="weapons.nurs.HYDRA_70_M259"
|
|
452
|
+
ENUMS.Storage.weapons.missiles.AGM_84E="weapons.missiles.AGM_84E"
|
|
453
|
+
ENUMS.Storage.weapons.bombs.AN_M30A1="weapons.bombs.AN_M30A1"
|
|
454
|
+
ENUMS.Storage.weapons.nurs.C_25="weapons.nurs.C_25"
|
|
455
|
+
ENUMS.Storage.weapons.containers.AV8BNA_ALQ164="weapons.containers.AV8BNA_ALQ164"
|
|
456
|
+
ENUMS.Storage.weapons.containers.lav_25="weapons.containers.lav-25"
|
|
457
|
+
ENUMS.Storage.weapons.missiles.P_60="weapons.missiles.P_60"
|
|
458
|
+
ENUMS.Storage.weapons.bombs.FAB_1500="weapons.bombs.FAB_1500"
|
|
459
|
+
ENUMS.Storage.weapons.droptanks.FuelTank_350L="weapons.droptanks.FuelTank_350L"
|
|
460
|
+
ENUMS.Storage.weapons.bombs.AAA_Vulcan_M163_Skid_21577lb="weapons.bombs.AAA Vulcan M163 Skid [21577lb]"
|
|
461
|
+
ENUMS.Storage.weapons.missiles.Kormoran="weapons.missiles.Kormoran"
|
|
462
|
+
ENUMS.Storage.weapons.droptanks.HB_F14_EXT_DROPTANK_EMPTY="weapons.droptanks.HB_F14_EXT_DROPTANK_EMPTY"
|
|
463
|
+
ENUMS.Storage.weapons.droptanks.FuelTank_150L="weapons.droptanks.FuelTank_150L"
|
|
464
|
+
ENUMS.Storage.weapons.missiles.Rb_15F_for_A_I="weapons.missiles.Rb 15F (for A.I.)"
|
|
465
|
+
ENUMS.Storage.weapons.missiles.RB75T="weapons.missiles.RB75T"
|
|
466
|
+
ENUMS.Storage.weapons.missiles.Vikhr_M="weapons.missiles.Vikhr_M"
|
|
467
|
+
ENUMS.Storage.weapons.nurs.FFAR_M156_WP="weapons.nurs.FFAR M156 WP"
|
|
468
|
+
ENUMS.Storage.weapons.nurs.British_HE_60LBSAPNo2_3INCHNo1="weapons.nurs.British_HE_60LBSAPNo2_3INCHNo1"
|
|
469
|
+
ENUMS.Storage.weapons.missiles.DWS39_MJ2="weapons.missiles.DWS39_MJ2"
|
|
470
|
+
ENUMS.Storage.weapons.bombs.HEBOMBD="weapons.bombs.HEBOMBD"
|
|
471
|
+
ENUMS.Storage.weapons.missiles.CATM_9M="weapons.missiles.CATM_9M"
|
|
472
|
+
ENUMS.Storage.weapons.bombs.Mk_81="weapons.bombs.Mk_81"
|
|
473
|
+
ENUMS.Storage.weapons.droptanks.Drop_Tank_300_Liter="weapons.droptanks.Drop_Tank_300_Liter"
|
|
474
|
+
ENUMS.Storage.weapons.containers.HMMWV_M1025="weapons.containers.HMMWV_M1025"
|
|
475
|
+
ENUMS.Storage.weapons.bombs.SAM_CHAPARRAL_Air_21624lb="weapons.bombs.SAM CHAPARRAL Air [21624lb]"
|
|
476
|
+
ENUMS.Storage.weapons.missiles.AGM_154A="weapons.missiles.AGM_154A"
|
|
477
|
+
ENUMS.Storage.weapons.bombs.Mk_84AIR_TP="weapons.bombs.Mk_84AIR_TP"
|
|
478
|
+
ENUMS.Storage.weapons.bombs.GBU_31_V_3B="weapons.bombs.GBU_31_V_3B"
|
|
479
|
+
ENUMS.Storage.weapons.nurs.C_8CM_WH="weapons.nurs.C_8CM_WH"
|
|
480
|
+
ENUMS.Storage.weapons.missiles.Matra_Super_530D="weapons.missiles.Matra Super 530D"
|
|
481
|
+
ENUMS.Storage.weapons.nurs.ARF8M3TPSM="weapons.nurs.ARF8M3TPSM"
|
|
482
|
+
ENUMS.Storage.weapons.missiles.TGM_65H="weapons.missiles.TGM_65H"
|
|
483
|
+
ENUMS.Storage.weapons.nurs.M8rocket="weapons.nurs.M8rocket"
|
|
484
|
+
ENUMS.Storage.weapons.bombs.GBU_27="weapons.bombs.GBU_27"
|
|
485
|
+
ENUMS.Storage.weapons.missiles.AGR_20A="weapons.missiles.AGR_20A"
|
|
486
|
+
ENUMS.Storage.weapons.missiles.LS_6_250="weapons.missiles.LS-6-250"
|
|
487
|
+
ENUMS.Storage.weapons.droptanks.M2KC_RPL_522_EMPTY="weapons.droptanks.M2KC_RPL_522_EMPTY"
|
|
488
|
+
ENUMS.Storage.weapons.droptanks.M2KC_02_RPL541="weapons.droptanks.M2KC_02_RPL541"
|
|
489
|
+
ENUMS.Storage.weapons.missiles.AGM_45="weapons.missiles.AGM_45"
|
|
490
|
+
ENUMS.Storage.weapons.missiles.AGM_84A="weapons.missiles.AGM_84A"
|
|
491
|
+
ENUMS.Storage.weapons.bombs.APC_BTR_80_Air_23936lb="weapons.bombs.APC BTR-80 Air [23936lb]"
|
|
492
|
+
ENUMS.Storage.weapons.missiles.P_33E="weapons.missiles.P_33E"
|
|
493
|
+
ENUMS.Storage.weapons.missiles.Ataka_9M120="weapons.missiles.Ataka_9M120"
|
|
494
|
+
ENUMS.Storage.weapons.bombs.MK76="weapons.bombs.MK76"
|
|
495
|
+
ENUMS.Storage.weapons.bombs.AB_250_2_SD_2="weapons.bombs.AB_250_2_SD_2"
|
|
496
|
+
ENUMS.Storage.weapons.missiles.Rb_05A="weapons.missiles.Rb 05A"
|
|
497
|
+
ENUMS.Storage.weapons.bombs.ART_GVOZDIKA_34720lb="weapons.bombs.ART GVOZDIKA [34720lb]"
|
|
498
|
+
ENUMS.Storage.weapons.bombs.Generic_Crate_20000lb="weapons.bombs.Generic Crate [20000lb]"
|
|
499
|
+
ENUMS.Storage.weapons.bombs.FAB_100SV="weapons.bombs.FAB_100SV"
|
|
500
|
+
ENUMS.Storage.weapons.bombs.BetAB_500="weapons.bombs.BetAB_500"
|
|
501
|
+
ENUMS.Storage.weapons.droptanks.M2KC_02_RPL541_EMPTY="weapons.droptanks.M2KC_02_RPL541_EMPTY"
|
|
502
|
+
ENUMS.Storage.weapons.droptanks.PTB600_MIG15="weapons.droptanks.PTB600_MIG15"
|
|
503
|
+
ENUMS.Storage.weapons.missiles.Rb_24J="weapons.missiles.Rb 24J"
|
|
504
|
+
ENUMS.Storage.weapons.nurs.C_8CM_BU="weapons.nurs.C_8CM_BU"
|
|
505
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE259E_F1B="weapons.nurs.SNEB_TYPE259E_F1B"
|
|
506
|
+
ENUMS.Storage.weapons.nurs.WGr21="weapons.nurs.WGr21"
|
|
507
|
+
ENUMS.Storage.weapons.bombs.SAMP250HD="weapons.bombs.SAMP250HD"
|
|
508
|
+
ENUMS.Storage.weapons.containers.alq_184long="weapons.containers.alq-184long"
|
|
509
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE259E_H1="weapons.nurs.SNEB_TYPE259E_H1"
|
|
510
|
+
ENUMS.Storage.weapons.bombs.British_SAP_250LB_Bomb_Mk5="weapons.bombs.British_SAP_250LB_Bomb_Mk5"
|
|
511
|
+
ENUMS.Storage.weapons.bombs.Transport_UAZ_469_Air_3747lb="weapons.bombs.Transport UAZ-469 Air [3747lb]"
|
|
512
|
+
ENUMS.Storage.weapons.bombs.Mk_83CT="weapons.bombs.Mk_83CT"
|
|
513
|
+
ENUMS.Storage.weapons.missiles.AIM_7P="weapons.missiles.AIM-7P"
|
|
514
|
+
ENUMS.Storage.weapons.missiles.AT_6="weapons.missiles.AT_6"
|
|
515
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE254_H1_GREEN="weapons.nurs.SNEB_TYPE254_H1_GREEN"
|
|
516
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE250_F1B="weapons.nurs.SNEB_TYPE250_F1B"
|
|
517
|
+
ENUMS.Storage.weapons.containers.U22A="weapons.containers.U22A"
|
|
518
|
+
ENUMS.Storage.weapons.bombs.British_GP_250LB_Bomb_Mk1="weapons.bombs.British_GP_250LB_Bomb_Mk1"
|
|
519
|
+
ENUMS.Storage.weapons.bombs.CBU_105="weapons.bombs.CBU_105"
|
|
520
|
+
ENUMS.Storage.weapons.droptanks.FW_190_Fuel_Tank="weapons.droptanks.FW-190_Fuel-Tank"
|
|
521
|
+
ENUMS.Storage.weapons.missiles.X_58="weapons.missiles.X_58"
|
|
522
|
+
ENUMS.Storage.weapons.missiles.BK90_MJ1_MJ2="weapons.missiles.BK90_MJ1_MJ2"
|
|
523
|
+
ENUMS.Storage.weapons.missiles.TGM_65D="weapons.missiles.TGM_65D"
|
|
524
|
+
ENUMS.Storage.weapons.containers.BRD_4_250="weapons.containers.BRD-4-250"
|
|
525
|
+
ENUMS.Storage.weapons.missiles.P_73="weapons.missiles.P_73"
|
|
526
|
+
ENUMS.Storage.weapons.bombs.AN_M66="weapons.bombs.AN_M66"
|
|
527
|
+
ENUMS.Storage.weapons.bombs.APC_LAV_25_Air_22520lb="weapons.bombs.APC LAV-25 Air [22520lb]"
|
|
528
|
+
ENUMS.Storage.weapons.missiles.AIM_7MH="weapons.missiles.AIM-7MH"
|
|
529
|
+
ENUMS.Storage.weapons.containers.MB339_TravelPod="weapons.containers.MB339_TravelPod"
|
|
530
|
+
ENUMS.Storage.weapons.bombs.GBU_12="weapons.bombs.GBU_12"
|
|
531
|
+
ENUMS.Storage.weapons.bombs.SC_250_T3_J="weapons.bombs.SC_250_T3_J"
|
|
532
|
+
ENUMS.Storage.weapons.missiles.KD_20="weapons.missiles.KD-20"
|
|
533
|
+
ENUMS.Storage.weapons.missiles.AGM_86C="weapons.missiles.AGM_86C"
|
|
534
|
+
ENUMS.Storage.weapons.missiles.X_35="weapons.missiles.X_35"
|
|
535
|
+
ENUMS.Storage.weapons.bombs.MK106="weapons.bombs.MK106"
|
|
536
|
+
ENUMS.Storage.weapons.bombs.BETAB_500S="weapons.bombs.BETAB-500S"
|
|
537
|
+
ENUMS.Storage.weapons.nurs.C_5="weapons.nurs.C_5"
|
|
538
|
+
ENUMS.Storage.weapons.nurs.S_24B="weapons.nurs.S-24B"
|
|
539
|
+
ENUMS.Storage.weapons.bombs.British_MC_500LB_Bomb_Mk2="weapons.bombs.British_MC_500LB_Bomb_Mk2"
|
|
540
|
+
ENUMS.Storage.weapons.containers.ANAWW_13="weapons.containers.ANAWW_13"
|
|
541
|
+
ENUMS.Storage.weapons.droptanks.droptank_108_gal="weapons.droptanks.droptank_108_gal"
|
|
542
|
+
ENUMS.Storage.weapons.droptanks.DFT_300_GAL_A4E_LR="weapons.droptanks.DFT_300_GAL_A4E_LR"
|
|
543
|
+
ENUMS.Storage.weapons.bombs.CBU_87="weapons.bombs.CBU_87"
|
|
544
|
+
ENUMS.Storage.weapons.missiles.GAR_8="weapons.missiles.GAR-8"
|
|
545
|
+
ENUMS.Storage.weapons.bombs.BELOUGA="weapons.bombs.BELOUGA"
|
|
546
|
+
ENUMS.Storage.weapons.containers.EclairM_33="weapons.containers.{EclairM_33}"
|
|
547
|
+
ENUMS.Storage.weapons.bombs.ART_2S9_NONA_Air_19140lb="weapons.bombs.ART 2S9 NONA Air [19140lb]"
|
|
548
|
+
ENUMS.Storage.weapons.bombs.BR_250="weapons.bombs.BR_250"
|
|
549
|
+
ENUMS.Storage.weapons.bombs.IAB_500="weapons.bombs.IAB-500"
|
|
550
|
+
ENUMS.Storage.weapons.containers.AN_ASQ_228="weapons.containers.AN_ASQ_228"
|
|
551
|
+
ENUMS.Storage.weapons.missiles.P_27P="weapons.missiles.P_27P"
|
|
552
|
+
ENUMS.Storage.weapons.bombs.SD_250_Stg="weapons.bombs.SD_250_Stg"
|
|
553
|
+
ENUMS.Storage.weapons.missiles.R_530F_IR="weapons.missiles.R_530F_IR"
|
|
554
|
+
ENUMS.Storage.weapons.bombs.British_SAP_500LB_Bomb_Mk5="weapons.bombs.British_SAP_500LB_Bomb_Mk5"
|
|
555
|
+
ENUMS.Storage.weapons.bombs.FAB_250M54="weapons.bombs.FAB-250M54"
|
|
556
|
+
ENUMS.Storage.weapons.containers.M2KC_AAF="weapons.containers.{M2KC_AAF}"
|
|
557
|
+
ENUMS.Storage.weapons.missiles.CM_802AKG_AI="weapons.missiles.CM-802AKG_AI"
|
|
558
|
+
ENUMS.Storage.weapons.bombs.CBU_103="weapons.bombs.CBU_103"
|
|
559
|
+
ENUMS.Storage.weapons.containers.US_M10_SMOKE_TANK_RED="weapons.containers.{US_M10_SMOKE_TANK_RED}"
|
|
560
|
+
ENUMS.Storage.weapons.missiles.X_29T="weapons.missiles.X_29T"
|
|
561
|
+
ENUMS.Storage.weapons.bombs.HEMTT_TFFT_34400lb="weapons.bombs.HEMTT TFFT [34400lb]"
|
|
562
|
+
ENUMS.Storage.weapons.missiles.C_701IR="weapons.missiles.C-701IR"
|
|
563
|
+
ENUMS.Storage.weapons.containers.fullCargoSeats="weapons.containers.fullCargoSeats"
|
|
564
|
+
ENUMS.Storage.weapons.bombs.GBU_15_V_31_B="weapons.bombs.GBU_15_V_31_B"
|
|
565
|
+
ENUMS.Storage.weapons.bombs.APC_M1043_HMMWV_Armament_Air_7023lb="weapons.bombs.APC M1043 HMMWV Armament Air [7023lb]"
|
|
566
|
+
ENUMS.Storage.weapons.missiles.PL_5EII="weapons.missiles.PL-5EII"
|
|
567
|
+
ENUMS.Storage.weapons.bombs.SC_250_T1_L2="weapons.bombs.SC_250_T1_L2"
|
|
568
|
+
ENUMS.Storage.weapons.torpedoes.mk46torp_name="weapons.torpedoes.mk46torp_name"
|
|
569
|
+
ENUMS.Storage.weapons.containers.F_15E_AAQ_33_XR_ATP_SE="weapons.containers.F-15E_AAQ-33_XR_ATP-SE"
|
|
570
|
+
ENUMS.Storage.weapons.missiles.AIM_7="weapons.missiles.AIM_7"
|
|
571
|
+
ENUMS.Storage.weapons.missiles.AGM_122="weapons.missiles.AGM_122"
|
|
572
|
+
ENUMS.Storage.weapons.bombs.HEBOMB="weapons.bombs.HEBOMB"
|
|
573
|
+
ENUMS.Storage.weapons.bombs.CBU_97="weapons.bombs.CBU_97"
|
|
574
|
+
ENUMS.Storage.weapons.bombs.MK_81SE="weapons.bombs.MK-81SE"
|
|
575
|
+
ENUMS.Storage.weapons.nurs.Zuni_127="weapons.nurs.Zuni_127"
|
|
576
|
+
ENUMS.Storage.weapons.containers.M2KC_AGF="weapons.containers.{M2KC_AGF}"
|
|
577
|
+
ENUMS.Storage.weapons.droptanks.Hercules_ExtFuelTank="weapons.droptanks.Hercules_ExtFuelTank"
|
|
578
|
+
ENUMS.Storage.weapons.containers.SMOKE_WHITE="weapons.containers.{SMOKE_WHITE}"
|
|
579
|
+
ENUMS.Storage.weapons.droptanks.droptank_150_gal="weapons.droptanks.droptank_150_gal"
|
|
580
|
+
ENUMS.Storage.weapons.nurs.HYDRA_70_WTU1B="weapons.nurs.HYDRA_70_WTU1B"
|
|
581
|
+
ENUMS.Storage.weapons.missiles.GB_6_SFW="weapons.missiles.GB-6-SFW"
|
|
582
|
+
ENUMS.Storage.weapons.missiles.KD_63="weapons.missiles.KD-63"
|
|
583
|
+
ENUMS.Storage.weapons.bombs.GBU_28="weapons.bombs.GBU_28"
|
|
584
|
+
ENUMS.Storage.weapons.nurs.C_8CM_YE="weapons.nurs.C_8CM_YE"
|
|
585
|
+
ENUMS.Storage.weapons.droptanks.HB_F14_EXT_DROPTANK="weapons.droptanks.HB_F14_EXT_DROPTANK"
|
|
586
|
+
ENUMS.Storage.weapons.missiles.Super_530F="weapons.missiles.Super_530F"
|
|
587
|
+
ENUMS.Storage.weapons.missiles.Ataka_9M220="weapons.missiles.Ataka_9M220"
|
|
588
|
+
ENUMS.Storage.weapons.bombs.BDU_33="weapons.bombs.BDU_33"
|
|
589
|
+
ENUMS.Storage.weapons.bombs.British_GP_250LB_Bomb_Mk4="weapons.bombs.British_GP_250LB_Bomb_Mk4"
|
|
590
|
+
ENUMS.Storage.weapons.missiles.TOW="weapons.missiles.TOW"
|
|
591
|
+
ENUMS.Storage.weapons.bombs.ATGM_M1045_HMMWV_TOW_Air_7183lb="weapons.bombs.ATGM M1045 HMMWV TOW Air [7183lb]"
|
|
592
|
+
ENUMS.Storage.weapons.missiles.X_25MR="weapons.missiles.X_25MR"
|
|
593
|
+
ENUMS.Storage.weapons.droptanks.fueltank230="weapons.droptanks.fueltank230"
|
|
594
|
+
ENUMS.Storage.weapons.droptanks.PTB_490C_MIG21="weapons.droptanks.PTB-490C-MIG21"
|
|
595
|
+
ENUMS.Storage.weapons.bombs.M1025_HMMWV_Air_6160lb="weapons.bombs.M1025 HMMWV Air [6160lb]"
|
|
596
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE254_F1B_GREEN="weapons.nurs.SNEB_TYPE254_F1B_GREEN"
|
|
597
|
+
ENUMS.Storage.weapons.missiles.R_550="weapons.missiles.R_550"
|
|
598
|
+
ENUMS.Storage.weapons.bombs.KAB_1500LG="weapons.bombs.KAB_1500LG"
|
|
599
|
+
ENUMS.Storage.weapons.missiles.AGM_84D="weapons.missiles.AGM_84D"
|
|
600
|
+
ENUMS.Storage.weapons.missiles.YJ_83K="weapons.missiles.YJ-83K"
|
|
601
|
+
ENUMS.Storage.weapons.missiles.AIM_54C_Mk47="weapons.missiles.AIM_54C_Mk47"
|
|
602
|
+
ENUMS.Storage.weapons.missiles.BRM_1_90MM="weapons.missiles.BRM-1_90MM"
|
|
603
|
+
ENUMS.Storage.weapons.missiles.Ataka_9M120F="weapons.missiles.Ataka_9M120F"
|
|
604
|
+
ENUMS.Storage.weapons.droptanks.Eleven00L_Tank="weapons.droptanks.1100L Tank"
|
|
605
|
+
ENUMS.Storage.weapons.bombs.BAP_100="weapons.bombs.BAP_100"
|
|
606
|
+
ENUMS.Storage.weapons.adapters.lau_88="weapons.adapters.lau-88"
|
|
607
|
+
ENUMS.Storage.weapons.missiles.P_40T="weapons.missiles.P_40T"
|
|
608
|
+
ENUMS.Storage.weapons.missiles.GB_6="weapons.missiles.GB-6"
|
|
609
|
+
ENUMS.Storage.weapons.bombs.FAB_250M54TU="weapons.bombs.FAB-250M54TU"
|
|
610
|
+
ENUMS.Storage.weapons.missiles.DWS39_MJ1="weapons.missiles.DWS39_MJ1"
|
|
611
|
+
ENUMS.Storage.weapons.missiles.CM_802AKG="weapons.missiles.CM-802AKG"
|
|
612
|
+
ENUMS.Storage.weapons.bombs.FAB_250="weapons.bombs.FAB_250"
|
|
613
|
+
ENUMS.Storage.weapons.missiles.C_802AK="weapons.missiles.C_802AK"
|
|
614
|
+
ENUMS.Storage.weapons.bombs.SD_500_A="weapons.bombs.SD_500_A"
|
|
615
|
+
ENUMS.Storage.weapons.bombs.GBU_32_V_2B="weapons.bombs.GBU_32_V_2B"
|
|
616
|
+
ENUMS.Storage.weapons.containers.marder="weapons.containers.marder"
|
|
617
|
+
ENUMS.Storage.weapons.missiles.ADM_141B="weapons.missiles.ADM_141B"
|
|
618
|
+
ENUMS.Storage.weapons.bombs.ROCKEYE="weapons.bombs.ROCKEYE"
|
|
619
|
+
ENUMS.Storage.weapons.missiles.BK90_MJ1="weapons.missiles.BK90_MJ1"
|
|
620
|
+
ENUMS.Storage.weapons.containers.BTR_80="weapons.containers.BTR-80"
|
|
621
|
+
ENUMS.Storage.weapons.bombs.SAM_ROLAND_ADS_34720lb="weapons.bombs.SAM ROLAND ADS [34720lb]"
|
|
622
|
+
ENUMS.Storage.weapons.containers.wmd7="weapons.containers.wmd7"
|
|
623
|
+
ENUMS.Storage.weapons.missiles.C_701T="weapons.missiles.C-701T"
|
|
624
|
+
ENUMS.Storage.weapons.missiles.AIM_7E_2="weapons.missiles.AIM-7E-2"
|
|
625
|
+
ENUMS.Storage.weapons.nurs.HVAR="weapons.nurs.HVAR"
|
|
626
|
+
ENUMS.Storage.weapons.containers.HMMWV_M1043="weapons.containers.HMMWV_M1043"
|
|
627
|
+
ENUMS.Storage.weapons.droptanks.PTB_800_MIG21="weapons.droptanks.PTB-800-MIG21"
|
|
628
|
+
ENUMS.Storage.weapons.missiles.AGM_114="weapons.missiles.AGM_114"
|
|
629
|
+
ENUMS.Storage.weapons.bombs.APC_M1126_Stryker_ICV_29542lb="weapons.bombs.APC M1126 Stryker ICV [29542lb]"
|
|
630
|
+
ENUMS.Storage.weapons.bombs.APC_M113_Air_21624lb="weapons.bombs.APC M113 Air [21624lb]"
|
|
631
|
+
ENUMS.Storage.weapons.bombs.M_117="weapons.bombs.M_117"
|
|
632
|
+
ENUMS.Storage.weapons.missiles.AGM_65D="weapons.missiles.AGM_65D"
|
|
633
|
+
ENUMS.Storage.weapons.droptanks.MB339_TT320_L="weapons.droptanks.MB339_TT320_L"
|
|
634
|
+
ENUMS.Storage.weapons.missiles.AGM_86="weapons.missiles.AGM_86"
|
|
635
|
+
ENUMS.Storage.weapons.bombs.BDU_45LGB="weapons.bombs.BDU_45LGB"
|
|
636
|
+
ENUMS.Storage.weapons.missiles.AGM_65H="weapons.missiles.AGM_65H"
|
|
637
|
+
ENUMS.Storage.weapons.nurs.RS_82="weapons.nurs.RS-82"
|
|
638
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE252_F1B="weapons.nurs.SNEB_TYPE252_F1B"
|
|
639
|
+
ENUMS.Storage.weapons.bombs.BL_755="weapons.bombs.BL_755"
|
|
640
|
+
ENUMS.Storage.weapons.containers.F_15E_AAQ_28_LITENING="weapons.containers.F-15E_AAQ-28_LITENING"
|
|
641
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE256_F1B="weapons.nurs.SNEB_TYPE256_F1B"
|
|
642
|
+
ENUMS.Storage.weapons.missiles.AGM_84H="weapons.missiles.AGM_84H"
|
|
643
|
+
ENUMS.Storage.weapons.missiles.AIM_54="weapons.missiles.AIM_54"
|
|
644
|
+
ENUMS.Storage.weapons.missiles.X_31A="weapons.missiles.X_31A"
|
|
645
|
+
ENUMS.Storage.weapons.bombs.KAB_500Kr="weapons.bombs.KAB_500Kr"
|
|
646
|
+
ENUMS.Storage.weapons.containers.SPS_141_100="weapons.containers.SPS-141-100"
|
|
647
|
+
ENUMS.Storage.weapons.missiles.BK90_MJ2="weapons.missiles.BK90_MJ2"
|
|
648
|
+
ENUMS.Storage.weapons.missiles.Super_530D="weapons.missiles.Super_530D"
|
|
649
|
+
ENUMS.Storage.weapons.bombs.CBU_52B="weapons.bombs.CBU_52B"
|
|
650
|
+
ENUMS.Storage.weapons.droptanks.PTB_450="weapons.droptanks.PTB-450"
|
|
651
|
+
ENUMS.Storage.weapons.bombs.IFV_MCV_80_34720lb="weapons.bombs.IFV MCV-80 [34720lb]"
|
|
652
|
+
ENUMS.Storage.weapons.containers.Two_c9="weapons.containers.2-c9"
|
|
653
|
+
ENUMS.Storage.weapons.missiles.AIM_9JULI="weapons.missiles.AIM-9JULI"
|
|
654
|
+
ENUMS.Storage.weapons.droptanks.MB339_TT500_R="weapons.droptanks.MB339_TT500_R"
|
|
655
|
+
ENUMS.Storage.weapons.nurs.C_8CM="weapons.nurs.C_8CM"
|
|
656
|
+
ENUMS.Storage.weapons.containers.BARAX="weapons.containers.BARAX"
|
|
657
|
+
ENUMS.Storage.weapons.missiles.P_40R="weapons.missiles.P_40R"
|
|
658
|
+
ENUMS.Storage.weapons.missiles.YJ_12="weapons.missiles.YJ-12"
|
|
659
|
+
ENUMS.Storage.weapons.missiles.CM_802AKG="weapons.missiles.CM_802AKG"
|
|
660
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE254_H1_YELLOW="weapons.nurs.SNEB_TYPE254_H1_YELLOW"
|
|
661
|
+
ENUMS.Storage.weapons.bombs.Durandal="weapons.bombs.Durandal"
|
|
662
|
+
ENUMS.Storage.weapons.droptanks.i16_eft="weapons.droptanks.i16_eft"
|
|
663
|
+
ENUMS.Storage.weapons.droptanks.AV8BNA_AERO1D_EMPTY="weapons.droptanks.AV8BNA_AERO1D_EMPTY"
|
|
664
|
+
ENUMS.Storage.weapons.containers.Hercules_Battle_Station_TGP="weapons.containers.Hercules_Battle_Station_TGP"
|
|
665
|
+
ENUMS.Storage.weapons.nurs.C_8CM_VT="weapons.nurs.C_8CM_VT"
|
|
666
|
+
ENUMS.Storage.weapons.missiles.PL_12="weapons.missiles.PL-12"
|
|
667
|
+
ENUMS.Storage.weapons.missiles.R_3R="weapons.missiles.R-3R"
|
|
668
|
+
ENUMS.Storage.weapons.bombs.GBU_54_V_1B="weapons.bombs.GBU_54_V_1B"
|
|
669
|
+
ENUMS.Storage.weapons.droptanks.MB339_TT320_R="weapons.droptanks.MB339_TT320_R"
|
|
670
|
+
ENUMS.Storage.weapons.bombs.RN_24="weapons.bombs.RN-24"
|
|
671
|
+
ENUMS.Storage.weapons.containers.Twoc6m="weapons.containers.2c6m"
|
|
672
|
+
ENUMS.Storage.weapons.bombs.ARV_BRDM_2_Air_12320lb="weapons.bombs.ARV BRDM-2 Air [12320lb]"
|
|
673
|
+
ENUMS.Storage.weapons.bombs.ARV_BRDM_2_Skid_12210lb="weapons.bombs.ARV BRDM-2 Skid [12210lb]"
|
|
674
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE251_F1B="weapons.nurs.SNEB_TYPE251_F1B"
|
|
675
|
+
ENUMS.Storage.weapons.missiles.X_41="weapons.missiles.X_41"
|
|
676
|
+
ENUMS.Storage.weapons.containers.MIG21_SMOKE_WHITE="weapons.containers.{MIG21_SMOKE_WHITE}"
|
|
677
|
+
ENUMS.Storage.weapons.bombs.MK_82AIR="weapons.bombs.MK_82AIR"
|
|
678
|
+
ENUMS.Storage.weapons.missiles.R_530F_EM="weapons.missiles.R_530F_EM"
|
|
679
|
+
ENUMS.Storage.weapons.bombs.SAMP400LD="weapons.bombs.SAMP400LD"
|
|
680
|
+
ENUMS.Storage.weapons.bombs.FAB_50="weapons.bombs.FAB_50"
|
|
681
|
+
ENUMS.Storage.weapons.bombs.AB_250_2_SD_10A="weapons.bombs.AB_250_2_SD_10A"
|
|
682
|
+
ENUMS.Storage.weapons.missiles.ADM_141A="weapons.missiles.ADM_141A"
|
|
683
|
+
ENUMS.Storage.weapons.containers.KBpod="weapons.containers.KBpod"
|
|
684
|
+
ENUMS.Storage.weapons.bombs.British_GP_500LB_Bomb_Mk4="weapons.bombs.British_GP_500LB_Bomb_Mk4"
|
|
685
|
+
ENUMS.Storage.weapons.missiles.AGM_65E="weapons.missiles.AGM_65E"
|
|
686
|
+
ENUMS.Storage.weapons.containers.sa342_dipole_antenna="weapons.containers.sa342_dipole_antenna"
|
|
687
|
+
ENUMS.Storage.weapons.bombs.OFAB_100_Jupiter="weapons.bombs.OFAB-100 Jupiter"
|
|
688
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE257_F1B="weapons.nurs.SNEB_TYPE257_F1B"
|
|
689
|
+
ENUMS.Storage.weapons.missiles.Rb_04E_for_A_I="weapons.missiles.Rb 04E (for A.I.)"
|
|
690
|
+
ENUMS.Storage.weapons.bombs.AN_M66A2="weapons.bombs.AN-M66A2"
|
|
691
|
+
ENUMS.Storage.weapons.missiles.P_27T="weapons.missiles.P_27T"
|
|
692
|
+
ENUMS.Storage.weapons.droptanks.LNS_VIG_XTANK="weapons.droptanks.LNS_VIG_XTANK"
|
|
693
|
+
ENUMS.Storage.weapons.missiles.R_55="weapons.missiles.R-55"
|
|
694
|
+
ENUMS.Storage.weapons.torpedoes.YU_6="weapons.torpedoes.YU-6"
|
|
695
|
+
ENUMS.Storage.weapons.bombs.British_MC_250LB_Bomb_Mk2="weapons.bombs.British_MC_250LB_Bomb_Mk2"
|
|
696
|
+
ENUMS.Storage.weapons.droptanks.PTB_120_F86F35="weapons.droptanks.PTB_120_F86F35"
|
|
697
|
+
ENUMS.Storage.weapons.missiles.PL_8B="weapons.missiles.PL-8B"
|
|
698
|
+
ENUMS.Storage.weapons.droptanks.F_15E_Drop_Tank_Empty="weapons.droptanks.F-15E_Drop_Tank_Empty"
|
|
699
|
+
ENUMS.Storage.weapons.nurs.British_HE_60LBFNo1_3INCHNo1="weapons.nurs.British_HE_60LBFNo1_3INCHNo1"
|
|
700
|
+
ENUMS.Storage.weapons.missiles.P_77="weapons.missiles.P_77"
|
|
701
|
+
ENUMS.Storage.weapons.torpedoes.LTF_5B="weapons.torpedoes.LTF_5B"
|
|
702
|
+
ENUMS.Storage.weapons.missiles.R_3S="weapons.missiles.R-3S"
|
|
703
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE253_H1="weapons.nurs.SNEB_TYPE253_H1"
|
|
704
|
+
ENUMS.Storage.weapons.missiles.PL_8A="weapons.missiles.PL-8A"
|
|
705
|
+
ENUMS.Storage.weapons.bombs.APC_BTR_82A_Skid_24888lb="weapons.bombs.APC BTR-82A Skid [24888lb]"
|
|
706
|
+
ENUMS.Storage.weapons.containers.Sborka="weapons.containers.Sborka"
|
|
707
|
+
ENUMS.Storage.weapons.missiles.AGM_65L="weapons.missiles.AGM_65L"
|
|
708
|
+
ENUMS.Storage.weapons.missiles.X_28="weapons.missiles.X_28"
|
|
709
|
+
ENUMS.Storage.weapons.missiles.TGM_65G="weapons.missiles.TGM_65G"
|
|
710
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE257_H1="weapons.nurs.SNEB_TYPE257_H1"
|
|
711
|
+
ENUMS.Storage.weapons.missiles.RB75B="weapons.missiles.RB75B"
|
|
712
|
+
ENUMS.Storage.weapons.missiles.X_25ML="weapons.missiles.X_25ML"
|
|
713
|
+
ENUMS.Storage.weapons.droptanks.FPU_8A="weapons.droptanks.FPU_8A"
|
|
714
|
+
ENUMS.Storage.weapons.bombs.BLG66="weapons.bombs.BLG66"
|
|
715
|
+
ENUMS.Storage.weapons.nurs.C_8CM_RD="weapons.nurs.C_8CM_RD"
|
|
716
|
+
ENUMS.Storage.weapons.containers.EclairM_06="weapons.containers.{EclairM_06}"
|
|
717
|
+
ENUMS.Storage.weapons.bombs.RBK_500AO="weapons.bombs.RBK_500AO"
|
|
718
|
+
ENUMS.Storage.weapons.missiles.AIM_9P="weapons.missiles.AIM-9P"
|
|
719
|
+
ENUMS.Storage.weapons.bombs.British_GP_500LB_Bomb_Mk4_Short="weapons.bombs.British_GP_500LB_Bomb_Mk4_Short"
|
|
720
|
+
ENUMS.Storage.weapons.containers.MB339_Vinten="weapons.containers.MB339_Vinten"
|
|
721
|
+
ENUMS.Storage.weapons.missiles.Rb_15F="weapons.missiles.Rb 15F"
|
|
722
|
+
ENUMS.Storage.weapons.nurs.ARAKM70BHE="weapons.nurs.ARAKM70BHE"
|
|
723
|
+
ENUMS.Storage.weapons.bombs.AAA_Vulcan_M163_Air_21666lb="weapons.bombs.AAA Vulcan M163 Air [21666lb]"
|
|
724
|
+
ENUMS.Storage.weapons.missiles.X_29L="weapons.missiles.X_29L"
|
|
725
|
+
ENUMS.Storage.weapons.containers.F14_LANTIRN_TP="weapons.containers.{F14-LANTIRN-TP}"
|
|
726
|
+
ENUMS.Storage.weapons.bombs.FAB_250_M62="weapons.bombs.FAB-250-M62"
|
|
727
|
+
ENUMS.Storage.weapons.missiles.AIM_120C="weapons.missiles.AIM_120C"
|
|
728
|
+
ENUMS.Storage.weapons.bombs.EWR_SBORKA_Air_21624lb="weapons.bombs.EWR SBORKA Air [21624lb]"
|
|
729
|
+
ENUMS.Storage.weapons.bombs.SAMP250LD="weapons.bombs.SAMP250LD"
|
|
730
|
+
ENUMS.Storage.weapons.droptanks.Spitfire_slipper_tank="weapons.droptanks.Spitfire_slipper_tank"
|
|
731
|
+
ENUMS.Storage.weapons.missiles.LS_6_500="weapons.missiles.LS-6-500"
|
|
732
|
+
ENUMS.Storage.weapons.bombs.GBU_31_V_4B="weapons.bombs.GBU_31_V_4B"
|
|
733
|
+
ENUMS.Storage.weapons.droptanks.PTB400_MIG15="weapons.droptanks.PTB400_MIG15"
|
|
734
|
+
ENUMS.Storage.weapons.containers.m_113="weapons.containers.m-113"
|
|
735
|
+
ENUMS.Storage.weapons.bombs.SPG_M1128_Stryker_MGS_33036lb="weapons.bombs.SPG M1128 Stryker MGS [33036lb]"
|
|
736
|
+
ENUMS.Storage.weapons.missiles.AIM_9L="weapons.missiles.AIM-9L"
|
|
737
|
+
ENUMS.Storage.weapons.missiles.AIM_9X="weapons.missiles.AIM_9X"
|
|
738
|
+
ENUMS.Storage.weapons.nurs.C_8="weapons.nurs.C_8"
|
|
739
|
+
ENUMS.Storage.weapons.bombs.SAM_CHAPARRAL_Skid_21516lb="weapons.bombs.SAM CHAPARRAL Skid [21516lb]"
|
|
740
|
+
ENUMS.Storage.weapons.missiles.P_27TE="weapons.missiles.P_27TE"
|
|
741
|
+
ENUMS.Storage.weapons.bombs.ODAB_500PM="weapons.bombs.ODAB-500PM"
|
|
742
|
+
ENUMS.Storage.weapons.bombs.MK77mod1_WPN="weapons.bombs.MK77mod1-WPN"
|
|
743
|
+
ENUMS.Storage.weapons.droptanks.PTB400_MIG19="weapons.droptanks.PTB400_MIG19"
|
|
744
|
+
ENUMS.Storage.weapons.torpedoes.Mark_46="weapons.torpedoes.Mark_46"
|
|
745
|
+
ENUMS.Storage.weapons.containers.rightSeat="weapons.containers.rightSeat"
|
|
746
|
+
ENUMS.Storage.weapons.containers.US_M10_SMOKE_TANK_ORANGE="weapons.containers.{US_M10_SMOKE_TANK_ORANGE}"
|
|
747
|
+
ENUMS.Storage.weapons.bombs.SAB_100MN="weapons.bombs.SAB_100MN"
|
|
748
|
+
ENUMS.Storage.weapons.nurs.FFAR_Mk5_HEAT="weapons.nurs.FFAR Mk5 HEAT"
|
|
749
|
+
ENUMS.Storage.weapons.bombs.IFV_TPZ_FUCH_33440lb="weapons.bombs.IFV TPZ FUCH [33440lb]"
|
|
750
|
+
ENUMS.Storage.weapons.bombs.IFV_M2A2_Bradley_34720lb="weapons.bombs.IFV M2A2 Bradley [34720lb]"
|
|
751
|
+
ENUMS.Storage.weapons.bombs.MK77mod0_WPN="weapons.bombs.MK77mod0-WPN"
|
|
752
|
+
ENUMS.Storage.weapons.containers.ASO_2="weapons.containers.ASO-2"
|
|
753
|
+
ENUMS.Storage.weapons.bombs.Mk_84AIR_GP="weapons.bombs.Mk_84AIR_GP"
|
|
754
|
+
ENUMS.Storage.weapons.nurs.S_24A="weapons.nurs.S-24A"
|
|
755
|
+
ENUMS.Storage.weapons.bombs.RBK_250_275_AO_1SCH="weapons.bombs.RBK_250_275_AO_1SCH"
|
|
756
|
+
ENUMS.Storage.weapons.bombs.Transport_Tigr_Skid_15730lb="weapons.bombs.Transport Tigr Skid [15730lb]"
|
|
757
|
+
ENUMS.Storage.weapons.missiles.AIM_7F="weapons.missiles.AIM-7F"
|
|
758
|
+
ENUMS.Storage.weapons.bombs.CBU_99="weapons.bombs.CBU_99"
|
|
759
|
+
ENUMS.Storage.weapons.bombs.LUU_2B="weapons.bombs.LUU_2B"
|
|
760
|
+
ENUMS.Storage.weapons.bombs.FAB_500TA="weapons.bombs.FAB-500TA"
|
|
761
|
+
ENUMS.Storage.weapons.missiles.AGR_20_M282="weapons.missiles.AGR_20_M282"
|
|
762
|
+
ENUMS.Storage.weapons.droptanks.MB339_FT330="weapons.droptanks.MB339_FT330"
|
|
763
|
+
ENUMS.Storage.weapons.bombs.SAMP125LD="weapons.bombs.SAMP125LD"
|
|
764
|
+
ENUMS.Storage.weapons.missiles.X_25MP="weapons.missiles.X_25MP"
|
|
765
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE252_H1="weapons.nurs.SNEB_TYPE252_H1"
|
|
766
|
+
ENUMS.Storage.weapons.missiles.AGM_65F="weapons.missiles.AGM_65F"
|
|
767
|
+
ENUMS.Storage.weapons.missiles.AIM_9P5="weapons.missiles.AIM-9P5"
|
|
768
|
+
ENUMS.Storage.weapons.bombs.Transport_Tigr_Air_15900lb="weapons.bombs.Transport Tigr Air [15900lb]"
|
|
769
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE254_H1_RED="weapons.nurs.SNEB_TYPE254_H1_RED"
|
|
770
|
+
ENUMS.Storage.weapons.nurs.FFAR_Mk1_HE="weapons.nurs.FFAR Mk1 HE"
|
|
771
|
+
ENUMS.Storage.weapons.nurs.SPRD_99="weapons.nurs.SPRD-99"
|
|
772
|
+
ENUMS.Storage.weapons.bombs.BIN_200="weapons.bombs.BIN_200"
|
|
773
|
+
ENUMS.Storage.weapons.bombs.BLU_4B_GROUP="weapons.bombs.BLU_4B_GROUP"
|
|
774
|
+
ENUMS.Storage.weapons.bombs.GBU_24="weapons.bombs.GBU_24"
|
|
775
|
+
ENUMS.Storage.weapons.missiles.Rb_04E="weapons.missiles.Rb 04E"
|
|
776
|
+
ENUMS.Storage.weapons.missiles.Rb_74="weapons.missiles.Rb 74"
|
|
777
|
+
ENUMS.Storage.weapons.containers.leftSeat="weapons.containers.leftSeat"
|
|
778
|
+
ENUMS.Storage.weapons.bombs.LS_6_100="weapons.bombs.LS-6-100"
|
|
779
|
+
ENUMS.Storage.weapons.bombs.Transport_URAL_375_14815lb="weapons.bombs.Transport URAL-375 [14815lb]"
|
|
780
|
+
ENUMS.Storage.weapons.containers.US_M10_SMOKE_TANK_GREEN="weapons.containers.{US_M10_SMOKE_TANK_GREEN}"
|
|
781
|
+
ENUMS.Storage.weapons.missiles.X_22="weapons.missiles.X_22"
|
|
782
|
+
ENUMS.Storage.weapons.containers.FAS="weapons.containers.FAS"
|
|
783
|
+
ENUMS.Storage.weapons.nurs.S_25_O="weapons.nurs.S-25-O"
|
|
784
|
+
ENUMS.Storage.weapons.droptanks.para="weapons.droptanks.para"
|
|
785
|
+
ENUMS.Storage.weapons.droptanks.F_15E_Drop_Tank="weapons.droptanks.F-15E_Drop_Tank"
|
|
786
|
+
ENUMS.Storage.weapons.droptanks.M2KC_08_RPL541_EMPTY="weapons.droptanks.M2KC_08_RPL541_EMPTY"
|
|
787
|
+
ENUMS.Storage.weapons.missiles.X_31P="weapons.missiles.X_31P"
|
|
788
|
+
ENUMS.Storage.weapons.bombs.RBK_500U="weapons.bombs.RBK_500U"
|
|
789
|
+
ENUMS.Storage.weapons.missiles.AIM_54A_Mk47="weapons.missiles.AIM_54A_Mk47"
|
|
790
|
+
ENUMS.Storage.weapons.droptanks.oiltank="weapons.droptanks.oiltank"
|
|
791
|
+
ENUMS.Storage.weapons.missiles.AGM_154B="weapons.missiles.AGM_154B"
|
|
792
|
+
ENUMS.Storage.weapons.containers.MB339_SMOKE_POD="weapons.containers.MB339_SMOKE-POD"
|
|
793
|
+
ENUMS.Storage.weapons.containers.ECM_POD_L_175V="weapons.containers.{ECM_POD_L_175V}"
|
|
794
|
+
ENUMS.Storage.weapons.droptanks.PTB_580G_F1="weapons.droptanks.PTB_580G_F1"
|
|
795
|
+
ENUMS.Storage.weapons.containers.EclairM_15="weapons.containers.{EclairM_15}"
|
|
796
|
+
ENUMS.Storage.weapons.containers.F_15E_AAQ_13_LANTIRN="weapons.containers.F-15E_AAQ-13_LANTIRN"
|
|
797
|
+
ENUMS.Storage.weapons.droptanks.Eight00L_Tank_Empty="weapons.droptanks.800L Tank Empty"
|
|
798
|
+
ENUMS.Storage.weapons.containers.One6c_hts_pod="weapons.containers.16c_hts_pod"
|
|
799
|
+
ENUMS.Storage.weapons.bombs.AN_M81="weapons.bombs.AN-M81"
|
|
800
|
+
ENUMS.Storage.weapons.droptanks.Mosquito_Drop_Tank_100gal="weapons.droptanks.Mosquito_Drop_Tank_100gal"
|
|
801
|
+
ENUMS.Storage.weapons.droptanks.Mosquito_Drop_Tank_50gal="weapons.droptanks.Mosquito_Drop_Tank_50gal"
|
|
802
|
+
ENUMS.Storage.weapons.droptanks.DFT_150_GAL_A4E="weapons.droptanks.DFT_150_GAL_A4E"
|
|
803
|
+
ENUMS.Storage.weapons.missiles.AIM_9="weapons.missiles.AIM_9"
|
|
804
|
+
ENUMS.Storage.weapons.bombs.IFV_BTR_D_Air_18040lb="weapons.bombs.IFV BTR-D Air [18040lb]"
|
|
805
|
+
ENUMS.Storage.weapons.containers.EclairM_42="weapons.containers.{EclairM_42}"
|
|
806
|
+
ENUMS.Storage.weapons.bombs.KAB_1500T="weapons.bombs.KAB_1500T"
|
|
807
|
+
ENUMS.Storage.weapons.droptanks.PTB_490_MIG21="weapons.droptanks.PTB-490-MIG21"
|
|
808
|
+
ENUMS.Storage.weapons.droptanks.PTB_200_F86F35="weapons.droptanks.PTB_200_F86F35"
|
|
809
|
+
ENUMS.Storage.weapons.droptanks.PTB760_MIG19="weapons.droptanks.PTB760_MIG19"
|
|
810
|
+
ENUMS.Storage.weapons.bombs.GBU_43_B_MOAB="weapons.bombs.GBU-43/B(MOAB)"
|
|
811
|
+
ENUMS.Storage.weapons.torpedoes.G7A_T1="weapons.torpedoes.G7A_T1"
|
|
812
|
+
ENUMS.Storage.weapons.bombs.IFV_BMD_1_Air_18040lb="weapons.bombs.IFV BMD-1 Air [18040lb]"
|
|
813
|
+
ENUMS.Storage.weapons.bombs.SAM_LINEBACKER_34720lb="weapons.bombs.SAM LINEBACKER [34720lb]"
|
|
814
|
+
ENUMS.Storage.weapons.containers.ais_pod_t50_r="weapons.containers.ais-pod-t50_r"
|
|
815
|
+
ENUMS.Storage.weapons.containers.CE2_SMOKE_WHITE="weapons.containers.{CE2_SMOKE_WHITE}"
|
|
816
|
+
ENUMS.Storage.weapons.droptanks.fuel_tank_230="weapons.droptanks.fuel_tank_230"
|
|
817
|
+
ENUMS.Storage.weapons.droptanks.M2KC_RPL_522="weapons.droptanks.M2KC_RPL_522"
|
|
818
|
+
ENUMS.Storage.weapons.missiles.AGM_130="weapons.missiles.AGM_130"
|
|
819
|
+
ENUMS.Storage.weapons.droptanks.Eight00L_Tank="weapons.droptanks.800L Tank"
|
|
820
|
+
ENUMS.Storage.weapons.bombs.IFV_BTR_D_Skid_17930lb="weapons.bombs.IFV BTR-D Skid [17930lb]"
|
|
821
|
+
ENUMS.Storage.weapons.containers.bmp_1="weapons.containers.bmp-1"
|
|
822
|
+
ENUMS.Storage.weapons.bombs.GBU_31="weapons.bombs.GBU_31"
|
|
823
|
+
ENUMS.Storage.weapons.containers.aaq_28LEFT_litening="weapons.containers.aaq-28LEFT litening"
|
|
824
|
+
ENUMS.Storage.weapons.missiles.Kh_66_Grom="weapons.missiles.Kh-66_Grom"
|
|
825
|
+
ENUMS.Storage.weapons.containers.MIG21_SMOKE_RED="weapons.containers.{MIG21_SMOKE_RED}"
|
|
826
|
+
ENUMS.Storage.weapons.containers.U22="weapons.containers.U22"
|
|
827
|
+
ENUMS.Storage.weapons.bombs.IFV_BMD_1_Skid_17930lb="weapons.bombs.IFV BMD-1 Skid [17930lb]"
|
|
828
|
+
ENUMS.Storage.weapons.droptanks.Bidon="weapons.droptanks.Bidon"
|
|
829
|
+
ENUMS.Storage.weapons.bombs.GBU_31_V_2B="weapons.bombs.GBU_31_V_2B"
|
|
830
|
+
ENUMS.Storage.weapons.bombs.Mk_82Y="weapons.bombs.Mk_82Y"
|
|
831
|
+
ENUMS.Storage.weapons.containers.pl5eii="weapons.containers.pl5eii"
|
|
832
|
+
ENUMS.Storage.weapons.bombs.RBK_500U_OAB_2_5RT="weapons.bombs.RBK_500U_OAB_2_5RT"
|
|
833
|
+
ENUMS.Storage.weapons.bombs.British_GP_500LB_Bomb_Mk5="weapons.bombs.British_GP_500LB_Bomb_Mk5"
|
|
834
|
+
ENUMS.Storage.weapons.containers.Eclair="weapons.containers.{Eclair}"
|
|
835
|
+
ENUMS.Storage.weapons.nurs.S5MO_HEFRAG_FFAR="weapons.nurs.S5MO_HEFRAG_FFAR"
|
|
836
|
+
ENUMS.Storage.weapons.bombs.BETAB_500M="weapons.bombs.BETAB-500M"
|
|
837
|
+
ENUMS.Storage.weapons.bombs.Transport_M818_16000lb="weapons.bombs.Transport M818 [16000lb]"
|
|
838
|
+
ENUMS.Storage.weapons.bombs.British_MC_250LB_Bomb_Mk1="weapons.bombs.British_MC_250LB_Bomb_Mk1"
|
|
839
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE251_H1="weapons.nurs.SNEB_TYPE251_H1"
|
|
840
|
+
ENUMS.Storage.weapons.bombs.TYPE_200A="weapons.bombs.TYPE-200A"
|
|
841
|
+
ENUMS.Storage.weapons.nurs.HYDRA_70_M151="weapons.nurs.HYDRA_70_M151"
|
|
842
|
+
ENUMS.Storage.weapons.bombs.IFV_BMP_3_32912lb="weapons.bombs.IFV BMP-3 [32912lb]"
|
|
843
|
+
ENUMS.Storage.weapons.bombs.APC_MTLB_Air_26400lb="weapons.bombs.APC MTLB Air [26400lb]"
|
|
844
|
+
ENUMS.Storage.weapons.nurs.HYDRA_70_M229="weapons.nurs.HYDRA_70_M229"
|
|
845
|
+
ENUMS.Storage.weapons.bombs.BDU_45="weapons.bombs.BDU_45"
|
|
846
|
+
ENUMS.Storage.weapons.bombs.OFAB_100_120TU="weapons.bombs.OFAB-100-120TU"
|
|
847
|
+
ENUMS.Storage.weapons.missiles.AIM_9J="weapons.missiles.AIM-9J"
|
|
848
|
+
ENUMS.Storage.weapons.nurs.ARF8M3API="weapons.nurs.ARF8M3API"
|
|
849
|
+
ENUMS.Storage.weapons.bombs.BetAB_500ShP="weapons.bombs.BetAB_500ShP"
|
|
850
|
+
ENUMS.Storage.weapons.nurs.C_8OFP2="weapons.nurs.C_8OFP2"
|
|
851
|
+
ENUMS.Storage.weapons.bombs.GBU_10="weapons.bombs.GBU_10"
|
|
852
|
+
ENUMS.Storage.weapons.bombs.APC_MTLB_Skid_26290lb="weapons.bombs.APC MTLB Skid [26290lb]"
|
|
853
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE254_F1B_RED="weapons.nurs.SNEB_TYPE254_F1B_RED"
|
|
854
|
+
ENUMS.Storage.weapons.missiles.X_65="weapons.missiles.X_65"
|
|
855
|
+
ENUMS.Storage.weapons.missiles.R_550_M1="weapons.missiles.R_550_M1"
|
|
856
|
+
ENUMS.Storage.weapons.missiles.AGM_65K="weapons.missiles.AGM_65K"
|
|
857
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE254_F1B_YELLOW="weapons.nurs.SNEB_TYPE254_F1B_YELLOW"
|
|
858
|
+
ENUMS.Storage.weapons.missiles.AGM_88="weapons.missiles.AGM_88"
|
|
859
|
+
ENUMS.Storage.weapons.nurs.C_8OM="weapons.nurs.C_8OM"
|
|
860
|
+
ENUMS.Storage.weapons.bombs.SAM_ROLAND_LN_34720b="weapons.bombs.SAM ROLAND LN [34720b]"
|
|
861
|
+
ENUMS.Storage.weapons.missiles.AIM_120="weapons.missiles.AIM_120"
|
|
862
|
+
ENUMS.Storage.weapons.missiles.HOT3_MBDA="weapons.missiles.HOT3_MBDA"
|
|
863
|
+
ENUMS.Storage.weapons.missiles.R_13M="weapons.missiles.R-13M"
|
|
864
|
+
ENUMS.Storage.weapons.missiles.AIM_54C_Mk60="weapons.missiles.AIM_54C_Mk60"
|
|
865
|
+
ENUMS.Storage.weapons.bombs.AAA_GEPARD_34720lb="weapons.bombs.AAA GEPARD [34720lb]"
|
|
866
|
+
ENUMS.Storage.weapons.missiles.R_13M1="weapons.missiles.R-13M1"
|
|
867
|
+
ENUMS.Storage.weapons.bombs.APC_Cobra_Air_10912lb="weapons.bombs.APC Cobra Air [10912lb]"
|
|
868
|
+
ENUMS.Storage.weapons.bombs.RBK_250="weapons.bombs.RBK_250"
|
|
869
|
+
ENUMS.Storage.weapons.bombs.SC_500_J="weapons.bombs.SC_500_J"
|
|
870
|
+
ENUMS.Storage.weapons.missiles.AGM_114K="weapons.missiles.AGM_114K"
|
|
871
|
+
ENUMS.Storage.weapons.missiles.ALARM="weapons.missiles.ALARM"
|
|
872
|
+
ENUMS.Storage.weapons.bombs.Mk_83="weapons.bombs.Mk_83"
|
|
873
|
+
ENUMS.Storage.weapons.missiles.AGM_65B="weapons.missiles.AGM_65B"
|
|
874
|
+
ENUMS.Storage.weapons.bombs.MK_82SNAKEYE="weapons.bombs.MK_82SNAKEYE"
|
|
875
|
+
ENUMS.Storage.weapons.nurs.HYDRA_70_MK1="weapons.nurs.HYDRA_70_MK1"
|
|
876
|
+
ENUMS.Storage.weapons.bombs.BLG66_BELOUGA="weapons.bombs.BLG66_BELOUGA"
|
|
877
|
+
ENUMS.Storage.weapons.containers.EclairM_51="weapons.containers.{EclairM_51}"
|
|
878
|
+
ENUMS.Storage.weapons.missiles.AIM_54A_Mk60="weapons.missiles.AIM_54A_Mk60"
|
|
879
|
+
ENUMS.Storage.weapons.droptanks.DFT_300_GAL_A4E="weapons.droptanks.DFT_300_GAL_A4E"
|
|
880
|
+
ENUMS.Storage.weapons.bombs.ATGM_M1134_Stryker_30337lb="weapons.bombs.ATGM M1134 Stryker [30337lb]"
|
|
881
|
+
ENUMS.Storage.weapons.bombs.BAT_120="weapons.bombs.BAT-120"
|
|
882
|
+
ENUMS.Storage.weapons.missiles.DWS39_MJ1_MJ2="weapons.missiles.DWS39_MJ1_MJ2"
|
|
883
|
+
ENUMS.Storage.weapons.containers.SPRD="weapons.containers.SPRD"
|
|
884
|
+
ENUMS.Storage.weapons.bombs.BR_500="weapons.bombs.BR_500"
|
|
885
|
+
ENUMS.Storage.weapons.bombs.British_GP_500LB_Bomb_Mk1="weapons.bombs.British_GP_500LB_Bomb_Mk1"
|
|
886
|
+
ENUMS.Storage.weapons.bombs.BDU_50HD="weapons.bombs.BDU_50HD"
|
|
887
|
+
ENUMS.Storage.weapons.missiles.RS2US="weapons.missiles.RS2US"
|
|
888
|
+
ENUMS.Storage.weapons.bombs.IFV_BMP_2_25168lb="weapons.bombs.IFV BMP-2 [25168lb]"
|
|
889
|
+
ENUMS.Storage.weapons.bombs.SAMP400HD="weapons.bombs.SAMP400HD"
|
|
890
|
+
ENUMS.Storage.weapons.containers.Hercules_Battle_Station="weapons.containers.Hercules_Battle_Station"
|
|
891
|
+
ENUMS.Storage.weapons.bombs.AN_M64="weapons.bombs.AN_M64"
|
|
892
|
+
ENUMS.Storage.weapons.containers.rearCargoSeats="weapons.containers.rearCargoSeats"
|
|
893
|
+
ENUMS.Storage.weapons.bombs.Mk_82="weapons.bombs.Mk_82"
|
|
894
|
+
ENUMS.Storage.weapons.missiles.AKD_10="weapons.missiles.AKD-10"
|
|
895
|
+
ENUMS.Storage.weapons.bombs.BDU_50LGB="weapons.bombs.BDU_50LGB"
|
|
896
|
+
ENUMS.Storage.weapons.missiles.SD_10="weapons.missiles.SD-10"
|
|
897
|
+
ENUMS.Storage.weapons.containers.IRDeflector="weapons.containers.IRDeflector"
|
|
898
|
+
ENUMS.Storage.weapons.bombs.FAB_500="weapons.bombs.FAB_500"
|
|
899
|
+
ENUMS.Storage.weapons.bombs.KAB_500="weapons.bombs.KAB_500"
|
|
900
|
+
ENUMS.Storage.weapons.nurs.S_5M="weapons.nurs.S-5M"
|
|
901
|
+
ENUMS.Storage.weapons.missiles.MICA_R="weapons.missiles.MICA_R"
|
|
902
|
+
ENUMS.Storage.weapons.missiles.X_59M="weapons.missiles.X_59M"
|
|
903
|
+
ENUMS.Storage.weapons.nurs.UG_90MM="weapons.nurs.UG_90MM"
|
|
904
|
+
ENUMS.Storage.weapons.bombs.LYSBOMB="weapons.bombs.LYSBOMB"
|
|
905
|
+
ENUMS.Storage.weapons.nurs.R4M="weapons.nurs.R4M"
|
|
906
|
+
ENUMS.Storage.weapons.containers.dlpod_akg="weapons.containers.dlpod_akg"
|
|
907
|
+
ENUMS.Storage.weapons.missiles.LD_10="weapons.missiles.LD-10"
|
|
908
|
+
ENUMS.Storage.weapons.bombs.SC_50="weapons.bombs.SC_50"
|
|
909
|
+
ENUMS.Storage.weapons.nurs.HYDRA_70_MK5="weapons.nurs.HYDRA_70_MK5"
|
|
910
|
+
ENUMS.Storage.weapons.bombs.FAB_100M="weapons.bombs.FAB_100M"
|
|
911
|
+
ENUMS.Storage.weapons.missiles.Rb_24="weapons.missiles.Rb 24"
|
|
912
|
+
ENUMS.Storage.weapons.bombs.BDU_45B="weapons.bombs.BDU_45B"
|
|
913
|
+
ENUMS.Storage.weapons.missiles.GB_6_HE="weapons.missiles.GB-6-HE"
|
|
914
|
+
ENUMS.Storage.weapons.missiles.KD_63B="weapons.missiles.KD-63B"
|
|
915
|
+
ENUMS.Storage.weapons.missiles.P_27PE="weapons.missiles.P_27PE"
|
|
916
|
+
ENUMS.Storage.weapons.droptanks.PTB300_MIG15="weapons.droptanks.PTB300_MIG15"
|
|
917
|
+
ENUMS.Storage.weapons.bombs.Two50_3="weapons.bombs.250-3"
|
|
918
|
+
ENUMS.Storage.weapons.bombs.SC_500_L2="weapons.bombs.SC_500_L2"
|
|
919
|
+
ENUMS.Storage.weapons.containers.HMMWV_M1045="weapons.containers.HMMWV_M1045"
|
|
920
|
+
ENUMS.Storage.weapons.bombs.FAB_500M54TU="weapons.bombs.FAB-500M54TU"
|
|
921
|
+
ENUMS.Storage.weapons.containers.US_M10_SMOKE_TANK_YELLOW="weapons.containers.{US_M10_SMOKE_TANK_YELLOW}"
|
|
922
|
+
ENUMS.Storage.weapons.containers.EclairM_60="weapons.containers.{EclairM_60}"
|
|
923
|
+
ENUMS.Storage.weapons.bombs.SAB_250_200="weapons.bombs.SAB_250_200"
|
|
924
|
+
ENUMS.Storage.weapons.bombs.FAB_100="weapons.bombs.FAB_100"
|
|
925
|
+
ENUMS.Storage.weapons.bombs.KAB_500S="weapons.bombs.KAB_500S"
|
|
926
|
+
ENUMS.Storage.weapons.missiles.AGM_45A="weapons.missiles.AGM_45A"
|
|
927
|
+
ENUMS.Storage.weapons.missiles.Kh25MP_PRGS1VP="weapons.missiles.Kh25MP_PRGS1VP"
|
|
928
|
+
ENUMS.Storage.weapons.nurs.S5M1_HEFRAG_FFAR="weapons.nurs.S5M1_HEFRAG_FFAR"
|
|
929
|
+
ENUMS.Storage.weapons.containers.kg600="weapons.containers.kg600"
|
|
930
|
+
ENUMS.Storage.weapons.bombs.AN_M65="weapons.bombs.AN_M65"
|
|
931
|
+
ENUMS.Storage.weapons.bombs.AN_M57="weapons.bombs.AN_M57"
|
|
932
|
+
ENUMS.Storage.weapons.bombs.BLU_3B_GROUP="weapons.bombs.BLU_3B_GROUP"
|
|
933
|
+
ENUMS.Storage.weapons.bombs.BAP_100="weapons.bombs.BAP-100"
|
|
934
|
+
ENUMS.Storage.weapons.containers.HEMTT="weapons.containers.HEMTT"
|
|
935
|
+
ENUMS.Storage.weapons.bombs.British_MC_500LB_Bomb_Mk1_Short="weapons.bombs.British_MC_500LB_Bomb_Mk1_Short"
|
|
936
|
+
ENUMS.Storage.weapons.nurs.ARAKM70BAP="weapons.nurs.ARAKM70BAP"
|
|
937
|
+
ENUMS.Storage.weapons.missiles.AGM_119="weapons.missiles.AGM_119"
|
|
938
|
+
ENUMS.Storage.weapons.missiles.MMagicII="weapons.missiles.MMagicII"
|
|
939
|
+
ENUMS.Storage.weapons.bombs.AB_500_1_SD_10A="weapons.bombs.AB_500_1_SD_10A"
|
|
940
|
+
ENUMS.Storage.weapons.nurs.HYDRA_70_M282="weapons.nurs.HYDRA_70_M282"
|
|
941
|
+
ENUMS.Storage.weapons.droptanks.DFT_400_GAL_A4E="weapons.droptanks.DFT_400_GAL_A4E"
|
|
942
|
+
ENUMS.Storage.weapons.nurs.HYDRA_70_M257="weapons.nurs.HYDRA_70_M257"
|
|
943
|
+
ENUMS.Storage.weapons.droptanks.AV8BNA_AERO1D="weapons.droptanks.AV8BNA_AERO1D"
|
|
944
|
+
ENUMS.Storage.weapons.containers.US_M10_SMOKE_TANK_BLUE="weapons.containers.{US_M10_SMOKE_TANK_BLUE}"
|
|
945
|
+
ENUMS.Storage.weapons.nurs.ARF8M3HEI="weapons.nurs.ARF8M3HEI"
|
|
946
|
+
ENUMS.Storage.weapons.bombs.RN_28="weapons.bombs.RN-28"
|
|
947
|
+
ENUMS.Storage.weapons.bombs.Squad_30_x_Soldier_7950lb="weapons.bombs.Squad 30 x Soldier [7950lb]"
|
|
948
|
+
ENUMS.Storage.weapons.containers.uaz_469="weapons.containers.uaz-469"
|
|
949
|
+
ENUMS.Storage.weapons.containers.Otokar_Cobra="weapons.containers.Otokar_Cobra"
|
|
950
|
+
ENUMS.Storage.weapons.bombs.APC_BTR_82A_Air_24998lb="weapons.bombs.APC BTR-82A Air [24998lb]"
|
|
951
|
+
ENUMS.Storage.weapons.nurs.HYDRA_70_M274="weapons.nurs.HYDRA_70_M274"
|
|
952
|
+
ENUMS.Storage.weapons.missiles.P_24R="weapons.missiles.P_24R"
|
|
953
|
+
ENUMS.Storage.weapons.nurs.HYDRA_70_MK61="weapons.nurs.HYDRA_70_MK61"
|
|
954
|
+
ENUMS.Storage.weapons.missiles.Igla_1E="weapons.missiles.Igla_1E"
|
|
955
|
+
ENUMS.Storage.weapons.missiles.C_802AK="weapons.missiles.C-802AK"
|
|
956
|
+
ENUMS.Storage.weapons.nurs.C_24="weapons.nurs.C_24"
|
|
957
|
+
ENUMS.Storage.weapons.droptanks.M2KC_08_RPL541="weapons.droptanks.M2KC_08_RPL541"
|
|
958
|
+
ENUMS.Storage.weapons.nurs.C_13="weapons.nurs.C_13"
|
|
959
|
+
ENUMS.Storage.weapons.droptanks.droptank_110_gal="weapons.droptanks.droptank_110_gal"
|
|
960
|
+
ENUMS.Storage.weapons.bombs.Mk_84="weapons.bombs.Mk_84"
|
|
961
|
+
ENUMS.Storage.weapons.missiles.Sea_Eagle="weapons.missiles.Sea_Eagle"
|
|
962
|
+
ENUMS.Storage.weapons.droptanks.PTB_1200_F1="weapons.droptanks.PTB_1200_F1"
|
|
963
|
+
ENUMS.Storage.weapons.nurs.SNEB_TYPE256_H1="weapons.nurs.SNEB_TYPE256_H1"
|
|
964
|
+
ENUMS.Storage.weapons.containers.MATRA_PHIMAT="weapons.containers.MATRA-PHIMAT"
|
|
965
|
+
ENUMS.Storage.weapons.containers.smoke_pod="weapons.containers.smoke_pod"
|
|
966
|
+
ENUMS.Storage.weapons.containers.F_15E_AAQ_14_LANTIRN="weapons.containers.F-15E_AAQ-14_LANTIRN"
|
|
967
|
+
ENUMS.Storage.weapons.containers.EclairM_24="weapons.containers.{EclairM_24}"
|
|
968
|
+
ENUMS.Storage.weapons.bombs.GBU_16="weapons.bombs.GBU_16"
|
|
969
|
+
ENUMS.Storage.weapons.nurs.HYDRA_70_M156="weapons.nurs.HYDRA_70_M156"
|
|
970
|
+
ENUMS.Storage.weapons.missiles.R_60="weapons.missiles.R-60"
|
|
971
|
+
ENUMS.Storage.weapons.containers.zsu_23_4="weapons.containers.zsu-23-4"
|
|
972
|
+
ENUMS.Storage.weapons.missiles.RB75="weapons.missiles.RB75"
|
|
973
|
+
ENUMS.Storage.weapons.missiles.Mistral="weapons.missiles.Mistral"
|
|
974
|
+
ENUMS.Storage.weapons.droptanks.MB339_TT500_L="weapons.droptanks.MB339_TT500_L"
|
|
975
|
+
ENUMS.Storage.weapons.bombs.SAM_SA_13_STRELA_21624lb="weapons.bombs.SAM SA-13 STRELA [21624lb]"
|
|
976
|
+
ENUMS.Storage.weapons.bombs.SAM_Avenger_M1097_Air_7200lb="weapons.bombs.SAM Avenger M1097 Air [7200lb]"
|
|
977
|
+
ENUMS.Storage.weapons.droptanks.Eleven00L_Tank_Empty="weapons.droptanks.1100L Tank Empty"
|
|
978
|
+
ENUMS.Storage.weapons.bombs.AN_M88="weapons.bombs.AN-M88"
|
|
979
|
+
ENUMS.Storage.weapons.missiles.S_25L="weapons.missiles.S_25L"
|
|
980
|
+
ENUMS.Storage.weapons.nurs.British_AP_25LBNo1_3INCHNo1="weapons.nurs.British_AP_25LBNo1_3INCHNo1"
|
|
981
|
+
ENUMS.Storage.weapons.bombs.BDU_50LD="weapons.bombs.BDU_50LD"
|
|
982
|
+
ENUMS.Storage.weapons.bombs.AGM_62="weapons.bombs.AGM_62"
|
|
983
|
+
ENUMS.Storage.weapons.containers.US_M10_SMOKE_TANK_WHITE="weapons.containers.{US_M10_SMOKE_TANK_WHITE}"
|
|
984
|
+
ENUMS.Storage.weapons.missiles.MICA_T="weapons.missiles.MICA_T"
|
|
985
|
+
ENUMS.Storage.weapons.containers.HVAR_rocket="weapons.containers.HVAR_rocket"
|
|
418
986
|
do
|
|
419
987
|
FIFO={
|
|
420
988
|
ClassName="FIFO",
|
|
@@ -24721,6 +25289,842 @@ end
|
|
|
24721
25289
|
end
|
|
24722
25290
|
return self
|
|
24723
25291
|
end
|
|
25292
|
+
function CONTROLLABLE:TaskAerobatics()
|
|
25293
|
+
local DCSTaskAerobatics={
|
|
25294
|
+
id="Aerobatics",
|
|
25295
|
+
params={
|
|
25296
|
+
["maneuversSequency"]={},
|
|
25297
|
+
},
|
|
25298
|
+
["enabled"]=true,
|
|
25299
|
+
["auto"]=false,
|
|
25300
|
+
}
|
|
25301
|
+
return DCSTaskAerobatics
|
|
25302
|
+
end
|
|
25303
|
+
function CONTROLLABLE:TaskAerobaticsCandle(TaskAerobatics,Repeats,InitAltitude,InitSpeed,UseSmoke,StartImmediately)
|
|
25304
|
+
local maxrepeats=10
|
|
25305
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25306
|
+
local usesmoke=UseSmoke and 1 or 0
|
|
25307
|
+
local startimmediately=StartImmediately and 1 or 0
|
|
25308
|
+
local CandleTask={
|
|
25309
|
+
["name"]="CANDLE",
|
|
25310
|
+
["params"]={
|
|
25311
|
+
["RepeatQty"]={
|
|
25312
|
+
["max_v"]=maxrepeats,
|
|
25313
|
+
["min_v"]=1,
|
|
25314
|
+
["order"]=1,
|
|
25315
|
+
["value"]=Repeats or 1,
|
|
25316
|
+
},
|
|
25317
|
+
["InitAltitude"]={
|
|
25318
|
+
["order"]=2,
|
|
25319
|
+
["value"]=InitAltitude or 0,
|
|
25320
|
+
},
|
|
25321
|
+
["InitSpeed"]={
|
|
25322
|
+
["order"]=3,
|
|
25323
|
+
["value"]=InitSpeed or 0,
|
|
25324
|
+
},
|
|
25325
|
+
["UseSmoke"]={
|
|
25326
|
+
["order"]=4,
|
|
25327
|
+
["value"]=usesmoke,
|
|
25328
|
+
},
|
|
25329
|
+
["StartImmediatly"]={
|
|
25330
|
+
["order"]=5,
|
|
25331
|
+
["value"]=startimmediately,
|
|
25332
|
+
}
|
|
25333
|
+
}
|
|
25334
|
+
}
|
|
25335
|
+
table.insert(TaskAerobatics.params["maneuversSequency"],CandleTask)
|
|
25336
|
+
return TaskAerobatics
|
|
25337
|
+
end
|
|
25338
|
+
function CONTROLLABLE:TaskAerobaticsEdgeFlight(TaskAerobatics,Repeats,InitAltitude,InitSpeed,UseSmoke,StartImmediately,FlightTime,Side)
|
|
25339
|
+
local maxrepeats=10
|
|
25340
|
+
local maxflight=200
|
|
25341
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25342
|
+
local usesmoke=UseSmoke and 1 or 0
|
|
25343
|
+
local startimmediately=StartImmediately and 1 or 0
|
|
25344
|
+
local flighttime=FlightTime or 10
|
|
25345
|
+
if flighttime>200 then maxflight=flighttime end
|
|
25346
|
+
local EdgeTask={
|
|
25347
|
+
["name"]="EDGE_FLIGHT",
|
|
25348
|
+
["params"]={
|
|
25349
|
+
["RepeatQty"]={
|
|
25350
|
+
["max_v"]=maxrepeats,
|
|
25351
|
+
["min_v"]=1,
|
|
25352
|
+
["order"]=1,
|
|
25353
|
+
["value"]=Repeats or 1,
|
|
25354
|
+
},
|
|
25355
|
+
["InitAltitude"]={
|
|
25356
|
+
["order"]=2,
|
|
25357
|
+
["value"]=InitAltitude or 0,
|
|
25358
|
+
},
|
|
25359
|
+
["InitSpeed"]={
|
|
25360
|
+
["order"]=3,
|
|
25361
|
+
["value"]=InitSpeed or 0,
|
|
25362
|
+
},
|
|
25363
|
+
["UseSmoke"]={
|
|
25364
|
+
["order"]=4,
|
|
25365
|
+
["value"]=usesmoke,
|
|
25366
|
+
},
|
|
25367
|
+
["StartImmediatly"]={
|
|
25368
|
+
["order"]=5,
|
|
25369
|
+
["value"]=startimmediately,
|
|
25370
|
+
},
|
|
25371
|
+
["FlightTime"]={
|
|
25372
|
+
["max_v"]=maxflight,
|
|
25373
|
+
["min_v"]=1,
|
|
25374
|
+
["order"]=6,
|
|
25375
|
+
["step"]=0.1,
|
|
25376
|
+
["value"]=flighttime or 10,
|
|
25377
|
+
},
|
|
25378
|
+
["SIDE"]={
|
|
25379
|
+
["order"]=7,
|
|
25380
|
+
["value"]=Side or 0,
|
|
25381
|
+
},
|
|
25382
|
+
}
|
|
25383
|
+
}
|
|
25384
|
+
table.insert(TaskAerobatics.params["maneuversSequency"],EdgeTask)
|
|
25385
|
+
return TaskAerobatics
|
|
25386
|
+
end
|
|
25387
|
+
function CONTROLLABLE:TaskAerobaticsWingoverFlight(TaskAerobatics,Repeats,InitAltitude,InitSpeed,UseSmoke,StartImmediately,FlightTime)
|
|
25388
|
+
local maxrepeats=10
|
|
25389
|
+
local maxflight=200
|
|
25390
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25391
|
+
local usesmoke=UseSmoke and 1 or 0
|
|
25392
|
+
local startimmediately=StartImmediately and 1 or 0
|
|
25393
|
+
local flighttime=FlightTime or 10
|
|
25394
|
+
if flighttime>200 then maxflight=flighttime end
|
|
25395
|
+
local WingoverTask={
|
|
25396
|
+
["name"]="WINGOVER_FLIGHT",
|
|
25397
|
+
["params"]={
|
|
25398
|
+
["RepeatQty"]={
|
|
25399
|
+
["max_v"]=maxrepeats,
|
|
25400
|
+
["min_v"]=1,
|
|
25401
|
+
["order"]=1,
|
|
25402
|
+
["value"]=Repeats or 1,
|
|
25403
|
+
},
|
|
25404
|
+
["InitAltitude"]={
|
|
25405
|
+
["order"]=2,
|
|
25406
|
+
["value"]=InitAltitude or 0,
|
|
25407
|
+
},
|
|
25408
|
+
["InitSpeed"]={
|
|
25409
|
+
["order"]=3,
|
|
25410
|
+
["value"]=InitSpeed or 0,
|
|
25411
|
+
},
|
|
25412
|
+
["UseSmoke"]={
|
|
25413
|
+
["order"]=4,
|
|
25414
|
+
["value"]=usesmoke,
|
|
25415
|
+
},
|
|
25416
|
+
["StartImmediatly"]={
|
|
25417
|
+
["order"]=5,
|
|
25418
|
+
["value"]=startimmediately,
|
|
25419
|
+
},
|
|
25420
|
+
["FlightTime"]={
|
|
25421
|
+
["max_v"]=maxflight,
|
|
25422
|
+
["min_v"]=1,
|
|
25423
|
+
["order"]=6,
|
|
25424
|
+
["step"]=0.1,
|
|
25425
|
+
["value"]=flighttime or 10,
|
|
25426
|
+
},
|
|
25427
|
+
}
|
|
25428
|
+
}
|
|
25429
|
+
table.insert(TaskAerobatics.params["maneuversSequency"],WingoverTask)
|
|
25430
|
+
return TaskAerobatics
|
|
25431
|
+
end
|
|
25432
|
+
function CONTROLLABLE:TaskAerobaticsLoop(TaskAerobatics,Repeats,InitAltitude,InitSpeed,UseSmoke,StartImmediately)
|
|
25433
|
+
local maxrepeats=10
|
|
25434
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25435
|
+
local usesmoke=UseSmoke and 1 or 0
|
|
25436
|
+
local startimmediately=StartImmediately and 1 or 0
|
|
25437
|
+
local LoopTask={
|
|
25438
|
+
["name"]="LOOP",
|
|
25439
|
+
["params"]={
|
|
25440
|
+
["RepeatQty"]={
|
|
25441
|
+
["max_v"]=maxrepeats,
|
|
25442
|
+
["min_v"]=1,
|
|
25443
|
+
["order"]=1,
|
|
25444
|
+
["value"]=Repeats or 1,
|
|
25445
|
+
},
|
|
25446
|
+
["InitAltitude"]={
|
|
25447
|
+
["order"]=2,
|
|
25448
|
+
["value"]=InitAltitude or 0,
|
|
25449
|
+
},
|
|
25450
|
+
["InitSpeed"]={
|
|
25451
|
+
["order"]=3,
|
|
25452
|
+
["value"]=InitSpeed or 0,
|
|
25453
|
+
},
|
|
25454
|
+
["UseSmoke"]={
|
|
25455
|
+
["order"]=4,
|
|
25456
|
+
["value"]=usesmoke,
|
|
25457
|
+
},
|
|
25458
|
+
["StartImmediatly"]={
|
|
25459
|
+
["order"]=5,
|
|
25460
|
+
["value"]=startimmediately,
|
|
25461
|
+
}
|
|
25462
|
+
}
|
|
25463
|
+
}
|
|
25464
|
+
table.insert(TaskAerobatics.params["maneuversSequency"],LoopTask)
|
|
25465
|
+
return TaskAerobatics
|
|
25466
|
+
end
|
|
25467
|
+
function CONTROLLABLE:TaskAerobaticsHorizontalEight(TaskAerobatics,Repeats,InitAltitude,InitSpeed,UseSmoke,StartImmediately,Side,RollDeg)
|
|
25468
|
+
local maxrepeats=10
|
|
25469
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25470
|
+
local usesmoke=UseSmoke and 1 or 0
|
|
25471
|
+
local startimmediately=StartImmediately and 1 or 0
|
|
25472
|
+
local LoopTask={
|
|
25473
|
+
["name"]="HORIZONTAL_EIGHT",
|
|
25474
|
+
["params"]={
|
|
25475
|
+
["RepeatQty"]={
|
|
25476
|
+
["max_v"]=maxrepeats,
|
|
25477
|
+
["min_v"]=1,
|
|
25478
|
+
["order"]=1,
|
|
25479
|
+
["value"]=Repeats or 1,
|
|
25480
|
+
},
|
|
25481
|
+
["InitAltitude"]={
|
|
25482
|
+
["order"]=2,
|
|
25483
|
+
["value"]=InitAltitude or 0,
|
|
25484
|
+
},
|
|
25485
|
+
["InitSpeed"]={
|
|
25486
|
+
["order"]=3,
|
|
25487
|
+
["value"]=InitSpeed or 0,
|
|
25488
|
+
},
|
|
25489
|
+
["UseSmoke"]={
|
|
25490
|
+
["order"]=4,
|
|
25491
|
+
["value"]=usesmoke,
|
|
25492
|
+
},
|
|
25493
|
+
["StartImmediatly"]={
|
|
25494
|
+
["order"]=5,
|
|
25495
|
+
["value"]=startimmediately,
|
|
25496
|
+
},
|
|
25497
|
+
["SIDE"]={
|
|
25498
|
+
["order"]=6,
|
|
25499
|
+
["value"]=Side or 0,
|
|
25500
|
+
},
|
|
25501
|
+
["ROLL1"]={
|
|
25502
|
+
["order"]=7,
|
|
25503
|
+
["value"]=RollDeg or 60,
|
|
25504
|
+
},
|
|
25505
|
+
["ROLL2"]={
|
|
25506
|
+
["order"]=8,
|
|
25507
|
+
["value"]=RollDeg or 60,
|
|
25508
|
+
},
|
|
25509
|
+
}
|
|
25510
|
+
}
|
|
25511
|
+
table.insert(TaskAerobatics.params["maneuversSequency"],LoopTask)
|
|
25512
|
+
return TaskAerobatics
|
|
25513
|
+
end
|
|
25514
|
+
function CONTROLLABLE:TaskAerobaticsHammerhead(TaskAerobatics,Repeats,InitAltitude,InitSpeed,UseSmoke,StartImmediately,Side)
|
|
25515
|
+
local maxrepeats=10
|
|
25516
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25517
|
+
local usesmoke=UseSmoke and 1 or 0
|
|
25518
|
+
local startimmediately=StartImmediately and 1 or 0
|
|
25519
|
+
local Task={
|
|
25520
|
+
["name"]="HUMMERHEAD",
|
|
25521
|
+
["params"]={
|
|
25522
|
+
["RepeatQty"]={
|
|
25523
|
+
["max_v"]=maxrepeats,
|
|
25524
|
+
["min_v"]=1,
|
|
25525
|
+
["order"]=1,
|
|
25526
|
+
["value"]=Repeats or 1,
|
|
25527
|
+
},
|
|
25528
|
+
["InitAltitude"]={
|
|
25529
|
+
["order"]=2,
|
|
25530
|
+
["value"]=InitAltitude or 0,
|
|
25531
|
+
},
|
|
25532
|
+
["InitSpeed"]={
|
|
25533
|
+
["order"]=3,
|
|
25534
|
+
["value"]=InitSpeed or 0,
|
|
25535
|
+
},
|
|
25536
|
+
["UseSmoke"]={
|
|
25537
|
+
["order"]=4,
|
|
25538
|
+
["value"]=usesmoke,
|
|
25539
|
+
},
|
|
25540
|
+
["StartImmediatly"]={
|
|
25541
|
+
["order"]=5,
|
|
25542
|
+
["value"]=startimmediately,
|
|
25543
|
+
},
|
|
25544
|
+
["SIDE"]={
|
|
25545
|
+
["order"]=6,
|
|
25546
|
+
["value"]=Side or 0,
|
|
25547
|
+
},
|
|
25548
|
+
}
|
|
25549
|
+
}
|
|
25550
|
+
table.insert(TaskAerobatics.params["maneuversSequency"],Task)
|
|
25551
|
+
return TaskAerobatics
|
|
25552
|
+
end
|
|
25553
|
+
function CONTROLLABLE:TaskAerobaticsSkewedLoop(TaskAerobatics,Repeats,InitAltitude,InitSpeed,UseSmoke,StartImmediately,Side,RollDeg)
|
|
25554
|
+
local maxrepeats=10
|
|
25555
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25556
|
+
local usesmoke=UseSmoke and 1 or 0
|
|
25557
|
+
local startimmediately=StartImmediately and 1 or 0
|
|
25558
|
+
local Task={
|
|
25559
|
+
["name"]="SKEWED_LOOP",
|
|
25560
|
+
["params"]={
|
|
25561
|
+
["RepeatQty"]={
|
|
25562
|
+
["max_v"]=maxrepeats,
|
|
25563
|
+
["min_v"]=1,
|
|
25564
|
+
["order"]=1,
|
|
25565
|
+
["value"]=Repeats or 1,
|
|
25566
|
+
},
|
|
25567
|
+
["InitAltitude"]={
|
|
25568
|
+
["order"]=2,
|
|
25569
|
+
["value"]=InitAltitude or 0,
|
|
25570
|
+
},
|
|
25571
|
+
["InitSpeed"]={
|
|
25572
|
+
["order"]=3,
|
|
25573
|
+
["value"]=InitSpeed or 0,
|
|
25574
|
+
},
|
|
25575
|
+
["UseSmoke"]={
|
|
25576
|
+
["order"]=4,
|
|
25577
|
+
["value"]=usesmoke,
|
|
25578
|
+
},
|
|
25579
|
+
["StartImmediatly"]={
|
|
25580
|
+
["order"]=5,
|
|
25581
|
+
["value"]=startimmediately,
|
|
25582
|
+
},
|
|
25583
|
+
["ROLL"]={
|
|
25584
|
+
["order"]=6,
|
|
25585
|
+
["value"]=RollDeg or 60,
|
|
25586
|
+
},
|
|
25587
|
+
["SIDE"]={
|
|
25588
|
+
["order"]=7,
|
|
25589
|
+
["value"]=Side or 0,
|
|
25590
|
+
},
|
|
25591
|
+
}
|
|
25592
|
+
}
|
|
25593
|
+
table.insert(TaskAerobatics.params["maneuversSequency"],Task)
|
|
25594
|
+
return TaskAerobatics
|
|
25595
|
+
end
|
|
25596
|
+
function CONTROLLABLE:TaskAerobaticsTurn(TaskAerobatics,Repeats,InitAltitude,InitSpeed,UseSmoke,StartImmediately,Side,RollDeg,Pull,Angle)
|
|
25597
|
+
local maxrepeats=10
|
|
25598
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25599
|
+
local usesmoke=UseSmoke and 1 or 0
|
|
25600
|
+
local startimmediately=StartImmediately and 1 or 0
|
|
25601
|
+
local Task={
|
|
25602
|
+
["name"]="TURN",
|
|
25603
|
+
["params"]={
|
|
25604
|
+
["RepeatQty"]={
|
|
25605
|
+
["max_v"]=maxrepeats,
|
|
25606
|
+
["min_v"]=1,
|
|
25607
|
+
["order"]=1,
|
|
25608
|
+
["value"]=Repeats or 1,
|
|
25609
|
+
},
|
|
25610
|
+
["InitAltitude"]={
|
|
25611
|
+
["order"]=2,
|
|
25612
|
+
["value"]=InitAltitude or 0,
|
|
25613
|
+
},
|
|
25614
|
+
["InitSpeed"]={
|
|
25615
|
+
["order"]=3,
|
|
25616
|
+
["value"]=InitSpeed or 0,
|
|
25617
|
+
},
|
|
25618
|
+
["UseSmoke"]={
|
|
25619
|
+
["order"]=4,
|
|
25620
|
+
["value"]=usesmoke,
|
|
25621
|
+
},
|
|
25622
|
+
["StartImmediatly"]={
|
|
25623
|
+
["order"]=5,
|
|
25624
|
+
["value"]=startimmediately,
|
|
25625
|
+
},
|
|
25626
|
+
["Ny_req"]={
|
|
25627
|
+
["order"]=6,
|
|
25628
|
+
["value"]=Pull or 2,
|
|
25629
|
+
},
|
|
25630
|
+
["ROLL"]={
|
|
25631
|
+
["order"]=7,
|
|
25632
|
+
["value"]=RollDeg or 60,
|
|
25633
|
+
},
|
|
25634
|
+
["SECTOR"]={
|
|
25635
|
+
["order"]=8,
|
|
25636
|
+
["value"]=Angle or 180,
|
|
25637
|
+
},
|
|
25638
|
+
["SIDE"]={
|
|
25639
|
+
["order"]=9,
|
|
25640
|
+
["value"]=Side or 0,
|
|
25641
|
+
},
|
|
25642
|
+
}
|
|
25643
|
+
}
|
|
25644
|
+
table.insert(TaskAerobatics.params["maneuversSequency"],Task)
|
|
25645
|
+
return TaskAerobatics
|
|
25646
|
+
end
|
|
25647
|
+
function CONTROLLABLE:TaskAerobaticsDive(TaskAerobatics,Repeats,InitAltitude,InitSpeed,UseSmoke,StartImmediately,Angle,FinalAltitude)
|
|
25648
|
+
local maxrepeats=10
|
|
25649
|
+
local angle=Angle
|
|
25650
|
+
if angle<15 then angle=15 elseif angle>90 then angle=90 end
|
|
25651
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25652
|
+
local usesmoke=UseSmoke and 1 or 0
|
|
25653
|
+
local startimmediately=StartImmediately and 1 or 0
|
|
25654
|
+
local Task={
|
|
25655
|
+
["name"]="DIVE",
|
|
25656
|
+
["params"]={
|
|
25657
|
+
["RepeatQty"]={
|
|
25658
|
+
["max_v"]=maxrepeats,
|
|
25659
|
+
["min_v"]=1,
|
|
25660
|
+
["order"]=1,
|
|
25661
|
+
["value"]=Repeats or 1,
|
|
25662
|
+
},
|
|
25663
|
+
["InitAltitude"]={
|
|
25664
|
+
["order"]=2,
|
|
25665
|
+
["value"]=InitAltitude or 5000,
|
|
25666
|
+
},
|
|
25667
|
+
["InitSpeed"]={
|
|
25668
|
+
["order"]=3,
|
|
25669
|
+
["value"]=InitSpeed or 0,
|
|
25670
|
+
},
|
|
25671
|
+
["UseSmoke"]={
|
|
25672
|
+
["order"]=4,
|
|
25673
|
+
["value"]=usesmoke,
|
|
25674
|
+
},
|
|
25675
|
+
["StartImmediatly"]={
|
|
25676
|
+
["order"]=5,
|
|
25677
|
+
["value"]=startimmediately,
|
|
25678
|
+
},
|
|
25679
|
+
["Angle"]={
|
|
25680
|
+
["max_v"]=90,
|
|
25681
|
+
["min_v"]=15,
|
|
25682
|
+
["order"]=6,
|
|
25683
|
+
["step"]=5,
|
|
25684
|
+
["value"]=angle or 45,
|
|
25685
|
+
},
|
|
25686
|
+
["FinalAltitude"]={
|
|
25687
|
+
["order"]=7,
|
|
25688
|
+
["value"]=FinalAltitude or 1000,
|
|
25689
|
+
},
|
|
25690
|
+
}
|
|
25691
|
+
}
|
|
25692
|
+
table.insert(TaskAerobatics.params["maneuversSequency"],Task)
|
|
25693
|
+
return TaskAerobatics
|
|
25694
|
+
end
|
|
25695
|
+
function CONTROLLABLE:TaskAerobaticsMilitaryTurn(TaskAerobatics,Repeats,InitAltitude,InitSpeed,UseSmoke,StartImmediately)
|
|
25696
|
+
local maxrepeats=10
|
|
25697
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25698
|
+
local usesmoke=UseSmoke and 1 or 0
|
|
25699
|
+
local startimmediately=StartImmediately and 1 or 0
|
|
25700
|
+
local Task={
|
|
25701
|
+
["name"]="MILITARY_TURN",
|
|
25702
|
+
["params"]={
|
|
25703
|
+
["RepeatQty"]={
|
|
25704
|
+
["max_v"]=maxrepeats,
|
|
25705
|
+
["min_v"]=1,
|
|
25706
|
+
["order"]=1,
|
|
25707
|
+
["value"]=Repeats or 1,
|
|
25708
|
+
},
|
|
25709
|
+
["InitAltitude"]={
|
|
25710
|
+
["order"]=2,
|
|
25711
|
+
["value"]=InitAltitude or 0,
|
|
25712
|
+
},
|
|
25713
|
+
["InitSpeed"]={
|
|
25714
|
+
["order"]=3,
|
|
25715
|
+
["value"]=InitSpeed or 0,
|
|
25716
|
+
},
|
|
25717
|
+
["UseSmoke"]={
|
|
25718
|
+
["order"]=4,
|
|
25719
|
+
["value"]=usesmoke,
|
|
25720
|
+
},
|
|
25721
|
+
["StartImmediatly"]={
|
|
25722
|
+
["order"]=5,
|
|
25723
|
+
["value"]=startimmediately,
|
|
25724
|
+
}
|
|
25725
|
+
}
|
|
25726
|
+
}
|
|
25727
|
+
table.insert(TaskAerobatics.params["maneuversSequency"],Task)
|
|
25728
|
+
return TaskAerobatics
|
|
25729
|
+
end
|
|
25730
|
+
function CONTROLLABLE:TaskAerobaticsImmelmann(TaskAerobatics,Repeats,InitAltitude,InitSpeed,UseSmoke,StartImmediately)
|
|
25731
|
+
local maxrepeats=10
|
|
25732
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25733
|
+
local usesmoke=UseSmoke and 1 or 0
|
|
25734
|
+
local startimmediately=StartImmediately and 1 or 0
|
|
25735
|
+
local Task={
|
|
25736
|
+
["name"]="IMMELMAN",
|
|
25737
|
+
["params"]={
|
|
25738
|
+
["RepeatQty"]={
|
|
25739
|
+
["max_v"]=maxrepeats,
|
|
25740
|
+
["min_v"]=1,
|
|
25741
|
+
["order"]=1,
|
|
25742
|
+
["value"]=Repeats or 1,
|
|
25743
|
+
},
|
|
25744
|
+
["InitAltitude"]={
|
|
25745
|
+
["order"]=2,
|
|
25746
|
+
["value"]=InitAltitude or 0,
|
|
25747
|
+
},
|
|
25748
|
+
["InitSpeed"]={
|
|
25749
|
+
["order"]=3,
|
|
25750
|
+
["value"]=InitSpeed or 0,
|
|
25751
|
+
},
|
|
25752
|
+
["UseSmoke"]={
|
|
25753
|
+
["order"]=4,
|
|
25754
|
+
["value"]=usesmoke,
|
|
25755
|
+
},
|
|
25756
|
+
["StartImmediatly"]={
|
|
25757
|
+
["order"]=5,
|
|
25758
|
+
["value"]=startimmediately,
|
|
25759
|
+
}
|
|
25760
|
+
}
|
|
25761
|
+
}
|
|
25762
|
+
table.insert(TaskAerobatics.params["maneuversSequency"],Task)
|
|
25763
|
+
return TaskAerobatics
|
|
25764
|
+
end
|
|
25765
|
+
function CONTROLLABLE:TaskAerobaticsStraightFlight(TaskAerobatics,Repeats,InitAltitude,InitSpeed,UseSmoke,StartImmediately,FlightTime)
|
|
25766
|
+
local maxrepeats=10
|
|
25767
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25768
|
+
local maxflight=200
|
|
25769
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25770
|
+
local flighttime=FlightTime or 10
|
|
25771
|
+
if flighttime>200 then maxflight=flighttime end
|
|
25772
|
+
local usesmoke=UseSmoke and 1 or 0
|
|
25773
|
+
local startimmediately=StartImmediately and 1 or 0
|
|
25774
|
+
local Task={
|
|
25775
|
+
["name"]="STRAIGHT_FLIGHT",
|
|
25776
|
+
["params"]={
|
|
25777
|
+
["RepeatQty"]={
|
|
25778
|
+
["max_v"]=maxrepeats,
|
|
25779
|
+
["min_v"]=1,
|
|
25780
|
+
["order"]=1,
|
|
25781
|
+
["value"]=Repeats or 1,
|
|
25782
|
+
},
|
|
25783
|
+
["InitAltitude"]={
|
|
25784
|
+
["order"]=2,
|
|
25785
|
+
["value"]=InitAltitude or 0,
|
|
25786
|
+
},
|
|
25787
|
+
["InitSpeed"]={
|
|
25788
|
+
["order"]=3,
|
|
25789
|
+
["value"]=InitSpeed or 0,
|
|
25790
|
+
},
|
|
25791
|
+
["UseSmoke"]={
|
|
25792
|
+
["order"]=4,
|
|
25793
|
+
["value"]=usesmoke,
|
|
25794
|
+
},
|
|
25795
|
+
["StartImmediatly"]={
|
|
25796
|
+
["order"]=5,
|
|
25797
|
+
["value"]=startimmediately,
|
|
25798
|
+
},
|
|
25799
|
+
["FlightTime"]={
|
|
25800
|
+
["max_v"]=maxflight,
|
|
25801
|
+
["min_v"]=1,
|
|
25802
|
+
["order"]=6,
|
|
25803
|
+
["step"]=0.1,
|
|
25804
|
+
["value"]=flighttime or 10,
|
|
25805
|
+
},
|
|
25806
|
+
}
|
|
25807
|
+
}
|
|
25808
|
+
table.insert(TaskAerobatics.params["maneuversSequency"],Task)
|
|
25809
|
+
return TaskAerobatics
|
|
25810
|
+
end
|
|
25811
|
+
function CONTROLLABLE:TaskAerobaticsClimb(TaskAerobatics,Repeats,InitAltitude,InitSpeed,UseSmoke,StartImmediately,Angle,FinalAltitude)
|
|
25812
|
+
local maxrepeats=10
|
|
25813
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25814
|
+
local usesmoke=UseSmoke and 1 or 0
|
|
25815
|
+
local startimmediately=StartImmediately and 1 or 0
|
|
25816
|
+
local Task={
|
|
25817
|
+
["name"]="CLIMB",
|
|
25818
|
+
["params"]={
|
|
25819
|
+
["RepeatQty"]={
|
|
25820
|
+
["max_v"]=maxrepeats,
|
|
25821
|
+
["min_v"]=1,
|
|
25822
|
+
["order"]=1,
|
|
25823
|
+
["value"]=Repeats or 1,
|
|
25824
|
+
},
|
|
25825
|
+
["InitAltitude"]={
|
|
25826
|
+
["order"]=2,
|
|
25827
|
+
["value"]=InitAltitude or 0,
|
|
25828
|
+
},
|
|
25829
|
+
["InitSpeed"]={
|
|
25830
|
+
["order"]=3,
|
|
25831
|
+
["value"]=InitSpeed or 0,
|
|
25832
|
+
},
|
|
25833
|
+
["UseSmoke"]={
|
|
25834
|
+
["order"]=4,
|
|
25835
|
+
["value"]=usesmoke,
|
|
25836
|
+
},
|
|
25837
|
+
["StartImmediatly"]={
|
|
25838
|
+
["order"]=5,
|
|
25839
|
+
["value"]=startimmediately,
|
|
25840
|
+
},
|
|
25841
|
+
["Angle"]={
|
|
25842
|
+
["max_v"]=90,
|
|
25843
|
+
["min_v"]=15,
|
|
25844
|
+
["order"]=6,
|
|
25845
|
+
["step"]=5,
|
|
25846
|
+
["value"]=Angle or 45,
|
|
25847
|
+
},
|
|
25848
|
+
["FinalAltitude"]={
|
|
25849
|
+
["order"]=7,
|
|
25850
|
+
["value"]=FinalAltitude or 5000,
|
|
25851
|
+
},
|
|
25852
|
+
}
|
|
25853
|
+
}
|
|
25854
|
+
table.insert(TaskAerobatics.params["maneuversSequency"],Task)
|
|
25855
|
+
return TaskAerobatics
|
|
25856
|
+
end
|
|
25857
|
+
function CONTROLLABLE:TaskAerobaticsSpiral(TaskAerobatics,Repeats,InitAltitude,InitSpeed,UseSmoke,StartImmediately,TurnAngle,Roll,Side,UpDown,Angle)
|
|
25858
|
+
local maxrepeats=10
|
|
25859
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25860
|
+
local usesmoke=UseSmoke and 1 or 0
|
|
25861
|
+
local startimmediately=StartImmediately and 1 or 0
|
|
25862
|
+
local updown=UpDown and 1 or 0
|
|
25863
|
+
local side=Side and 1 or 0
|
|
25864
|
+
local Task={
|
|
25865
|
+
["name"]="SPIRAL",
|
|
25866
|
+
["params"]={
|
|
25867
|
+
["RepeatQty"]={
|
|
25868
|
+
["max_v"]=maxrepeats,
|
|
25869
|
+
["min_v"]=1,
|
|
25870
|
+
["order"]=1,
|
|
25871
|
+
["value"]=Repeats or 1,
|
|
25872
|
+
},
|
|
25873
|
+
["InitAltitude"]={
|
|
25874
|
+
["order"]=2,
|
|
25875
|
+
["value"]=InitAltitude or 0,
|
|
25876
|
+
},
|
|
25877
|
+
["InitSpeed"]={
|
|
25878
|
+
["order"]=3,
|
|
25879
|
+
["value"]=InitSpeed or 0,
|
|
25880
|
+
},
|
|
25881
|
+
["UseSmoke"]={
|
|
25882
|
+
["order"]=4,
|
|
25883
|
+
["value"]=usesmoke,
|
|
25884
|
+
},
|
|
25885
|
+
["StartImmediatly"]={
|
|
25886
|
+
["order"]=5,
|
|
25887
|
+
["value"]=startimmediately,
|
|
25888
|
+
},
|
|
25889
|
+
["SECTOR"]={
|
|
25890
|
+
["order"]=6,
|
|
25891
|
+
["value"]=TurnAngle or 360,
|
|
25892
|
+
},
|
|
25893
|
+
["ROLL"]={
|
|
25894
|
+
["order"]=7,
|
|
25895
|
+
["value"]=Roll or 60,
|
|
25896
|
+
},
|
|
25897
|
+
["SIDE"]={
|
|
25898
|
+
["order"]=8,
|
|
25899
|
+
["value"]=side or 0,
|
|
25900
|
+
},
|
|
25901
|
+
["UPDOWN"]={
|
|
25902
|
+
["order"]=9,
|
|
25903
|
+
["value"]=updown or 0,
|
|
25904
|
+
},
|
|
25905
|
+
["Angle"]={
|
|
25906
|
+
["max_v"]=90,
|
|
25907
|
+
["min_v"]=15,
|
|
25908
|
+
["order"]=10,
|
|
25909
|
+
["step"]=5,
|
|
25910
|
+
["value"]=Angle or 45,
|
|
25911
|
+
},
|
|
25912
|
+
}
|
|
25913
|
+
}
|
|
25914
|
+
table.insert(TaskAerobatics.params["maneuversSequency"],Task)
|
|
25915
|
+
return TaskAerobatics
|
|
25916
|
+
end
|
|
25917
|
+
function CONTROLLABLE:TaskAerobaticsSplitS(TaskAerobatics,Repeats,InitAltitude,InitSpeed,UseSmoke,StartImmediately,FinalSpeed)
|
|
25918
|
+
local maxrepeats=10
|
|
25919
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25920
|
+
local maxflight=200
|
|
25921
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25922
|
+
local finalspeed=FinalSpeed or 500
|
|
25923
|
+
local usesmoke=UseSmoke and 1 or 0
|
|
25924
|
+
local startimmediately=StartImmediately and 1 or 0
|
|
25925
|
+
local Task={
|
|
25926
|
+
["name"]="SPLIT_S",
|
|
25927
|
+
["params"]={
|
|
25928
|
+
["RepeatQty"]={
|
|
25929
|
+
["max_v"]=maxrepeats,
|
|
25930
|
+
["min_v"]=1,
|
|
25931
|
+
["order"]=1,
|
|
25932
|
+
["value"]=Repeats or 1,
|
|
25933
|
+
},
|
|
25934
|
+
["InitAltitude"]={
|
|
25935
|
+
["order"]=2,
|
|
25936
|
+
["value"]=InitAltitude or 0,
|
|
25937
|
+
},
|
|
25938
|
+
["InitSpeed"]={
|
|
25939
|
+
["order"]=3,
|
|
25940
|
+
["value"]=InitSpeed or 0,
|
|
25941
|
+
},
|
|
25942
|
+
["UseSmoke"]={
|
|
25943
|
+
["order"]=4,
|
|
25944
|
+
["value"]=usesmoke,
|
|
25945
|
+
},
|
|
25946
|
+
["StartImmediatly"]={
|
|
25947
|
+
["order"]=5,
|
|
25948
|
+
["value"]=startimmediately,
|
|
25949
|
+
},
|
|
25950
|
+
["FinalSpeed"]={
|
|
25951
|
+
["order"]=6,
|
|
25952
|
+
["value"]=finalspeed,
|
|
25953
|
+
},
|
|
25954
|
+
}
|
|
25955
|
+
}
|
|
25956
|
+
table.insert(TaskAerobatics.params["maneuversSequency"],Task)
|
|
25957
|
+
return TaskAerobatics
|
|
25958
|
+
end
|
|
25959
|
+
function CONTROLLABLE:TaskAerobaticsAileronRoll(TaskAerobatics,Repeats,InitAltitude,InitSpeed,UseSmoke,StartImmediately,Side,RollRate,TurnAngle,FixAngle)
|
|
25960
|
+
local maxrepeats=10
|
|
25961
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25962
|
+
local maxflight=200
|
|
25963
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
25964
|
+
local usesmoke=UseSmoke and 1 or 0
|
|
25965
|
+
local startimmediately=StartImmediately and 1 or 0
|
|
25966
|
+
local Task={
|
|
25967
|
+
["name"]="AILERON_ROLL",
|
|
25968
|
+
["params"]={
|
|
25969
|
+
["RepeatQty"]={
|
|
25970
|
+
["max_v"]=maxrepeats,
|
|
25971
|
+
["min_v"]=1,
|
|
25972
|
+
["order"]=1,
|
|
25973
|
+
["value"]=Repeats or 1,
|
|
25974
|
+
},
|
|
25975
|
+
["InitAltitude"]={
|
|
25976
|
+
["order"]=2,
|
|
25977
|
+
["value"]=InitAltitude or 0,
|
|
25978
|
+
},
|
|
25979
|
+
["InitSpeed"]={
|
|
25980
|
+
["order"]=3,
|
|
25981
|
+
["value"]=InitSpeed or 0,
|
|
25982
|
+
},
|
|
25983
|
+
["UseSmoke"]={
|
|
25984
|
+
["order"]=4,
|
|
25985
|
+
["value"]=usesmoke,
|
|
25986
|
+
},
|
|
25987
|
+
["StartImmediatly"]={
|
|
25988
|
+
["order"]=5,
|
|
25989
|
+
["value"]=startimmediately,
|
|
25990
|
+
},
|
|
25991
|
+
["SIDE"]={
|
|
25992
|
+
["order"]=6,
|
|
25993
|
+
["value"]=Side or 0,
|
|
25994
|
+
},
|
|
25995
|
+
["RollRate"]={
|
|
25996
|
+
["max_v"]=450,
|
|
25997
|
+
["min_v"]=15,
|
|
25998
|
+
["order"]=7,
|
|
25999
|
+
["step"]=5,
|
|
26000
|
+
["value"]=RollRate or 90,
|
|
26001
|
+
},
|
|
26002
|
+
["SECTOR"]={
|
|
26003
|
+
["order"]=8,
|
|
26004
|
+
["value"]=TurnAngle or 360,
|
|
26005
|
+
},
|
|
26006
|
+
["FIXSECTOR"]={
|
|
26007
|
+
["max_v"]=180,
|
|
26008
|
+
["min_v"]=0,
|
|
26009
|
+
["order"]=9,
|
|
26010
|
+
["step"]=5,
|
|
26011
|
+
["value"]=FixAngle or 0,
|
|
26012
|
+
},
|
|
26013
|
+
}
|
|
26014
|
+
}
|
|
26015
|
+
table.insert(TaskAerobatics.params["maneuversSequency"],Task)
|
|
26016
|
+
return TaskAerobatics
|
|
26017
|
+
end
|
|
26018
|
+
function CONTROLLABLE:TaskAerobaticsForcedTurn(TaskAerobatics,Repeats,InitAltitude,InitSpeed,UseSmoke,StartImmediately,TurnAngle,Side,FlightTime,MinSpeed)
|
|
26019
|
+
local maxrepeats=10
|
|
26020
|
+
local flighttime=FlightTime or 30
|
|
26021
|
+
local maxtime=200
|
|
26022
|
+
if flighttime>200 then maxtime=flighttime end
|
|
26023
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
26024
|
+
local usesmoke=UseSmoke and 1 or 0
|
|
26025
|
+
local startimmediately=StartImmediately and 1 or 0
|
|
26026
|
+
local Task={
|
|
26027
|
+
["name"]="FORCED_TURN",
|
|
26028
|
+
["params"]={
|
|
26029
|
+
["RepeatQty"]={
|
|
26030
|
+
["max_v"]=maxrepeats,
|
|
26031
|
+
["min_v"]=1,
|
|
26032
|
+
["order"]=1,
|
|
26033
|
+
["value"]=Repeats or 1,
|
|
26034
|
+
},
|
|
26035
|
+
["InitAltitude"]={
|
|
26036
|
+
["order"]=2,
|
|
26037
|
+
["value"]=InitAltitude or 0,
|
|
26038
|
+
},
|
|
26039
|
+
["InitSpeed"]={
|
|
26040
|
+
["order"]=3,
|
|
26041
|
+
["value"]=InitSpeed or 0,
|
|
26042
|
+
},
|
|
26043
|
+
["UseSmoke"]={
|
|
26044
|
+
["order"]=4,
|
|
26045
|
+
["value"]=usesmoke,
|
|
26046
|
+
},
|
|
26047
|
+
["StartImmediatly"]={
|
|
26048
|
+
["order"]=5,
|
|
26049
|
+
["value"]=startimmediately,
|
|
26050
|
+
},
|
|
26051
|
+
["SECTOR"]={
|
|
26052
|
+
["order"]=6,
|
|
26053
|
+
["value"]=TurnAngle or 360,
|
|
26054
|
+
},
|
|
26055
|
+
["SIDE"]={
|
|
26056
|
+
["order"]=7,
|
|
26057
|
+
["value"]=Side or 0,
|
|
26058
|
+
},
|
|
26059
|
+
["FlightTime"]={
|
|
26060
|
+
["max_v"]=maxtime or 200,
|
|
26061
|
+
["min_v"]=0,
|
|
26062
|
+
["order"]=8,
|
|
26063
|
+
["step"]=0.1,
|
|
26064
|
+
["value"]=flighttime or 30,
|
|
26065
|
+
},
|
|
26066
|
+
["MinSpeed"]={
|
|
26067
|
+
["max_v"]=3000,
|
|
26068
|
+
["min_v"]=30,
|
|
26069
|
+
["order"]=9,
|
|
26070
|
+
["step"]=10,
|
|
26071
|
+
["value"]=MinSpeed or 250,
|
|
26072
|
+
},
|
|
26073
|
+
}
|
|
26074
|
+
}
|
|
26075
|
+
table.insert(TaskAerobatics.params["maneuversSequency"],Task)
|
|
26076
|
+
return TaskAerobatics
|
|
26077
|
+
end
|
|
26078
|
+
function CONTROLLABLE:TaskAerobaticsBarrelRoll(TaskAerobatics,Repeats,InitAltitude,InitSpeed,UseSmoke,StartImmediately,Side,RollRate,TurnAngle)
|
|
26079
|
+
local maxrepeats=10
|
|
26080
|
+
if Repeats>maxrepeats then maxrepeats=Repeats end
|
|
26081
|
+
local usesmoke=UseSmoke and 1 or 0
|
|
26082
|
+
local startimmediately=StartImmediately and 1 or 0
|
|
26083
|
+
local Task={
|
|
26084
|
+
["name"]="BARREL_ROLL",
|
|
26085
|
+
["params"]={
|
|
26086
|
+
["RepeatQty"]={
|
|
26087
|
+
["max_v"]=maxrepeats,
|
|
26088
|
+
["min_v"]=1,
|
|
26089
|
+
["order"]=1,
|
|
26090
|
+
["value"]=Repeats or 1,
|
|
26091
|
+
},
|
|
26092
|
+
["InitAltitude"]={
|
|
26093
|
+
["order"]=2,
|
|
26094
|
+
["value"]=InitAltitude or 0,
|
|
26095
|
+
},
|
|
26096
|
+
["InitSpeed"]={
|
|
26097
|
+
["order"]=3,
|
|
26098
|
+
["value"]=InitSpeed or 0,
|
|
26099
|
+
},
|
|
26100
|
+
["UseSmoke"]={
|
|
26101
|
+
["order"]=4,
|
|
26102
|
+
["value"]=usesmoke,
|
|
26103
|
+
},
|
|
26104
|
+
["StartImmediatly"]={
|
|
26105
|
+
["order"]=5,
|
|
26106
|
+
["value"]=startimmediately,
|
|
26107
|
+
},
|
|
26108
|
+
["SIDE"]={
|
|
26109
|
+
["order"]=6,
|
|
26110
|
+
["value"]=Side or 0,
|
|
26111
|
+
},
|
|
26112
|
+
["RollRate"]={
|
|
26113
|
+
["max_v"]=450,
|
|
26114
|
+
["min_v"]=15,
|
|
26115
|
+
["order"]=7,
|
|
26116
|
+
["step"]=5,
|
|
26117
|
+
["value"]=RollRate or 90,
|
|
26118
|
+
},
|
|
26119
|
+
["SECTOR"]={
|
|
26120
|
+
["order"]=8,
|
|
26121
|
+
["value"]=TurnAngle or 360,
|
|
26122
|
+
},
|
|
26123
|
+
}
|
|
26124
|
+
}
|
|
26125
|
+
table.insert(TaskAerobatics.params["maneuversSequency"],Task)
|
|
26126
|
+
return TaskAerobatics
|
|
26127
|
+
end
|
|
24724
26128
|
GROUP={
|
|
24725
26129
|
ClassName="GROUP",
|
|
24726
26130
|
}
|
|
@@ -29524,6 +30928,81 @@ self:E(self.lid..string.format("ERROR: Unknown liquid type %s",tostring(Type)))
|
|
|
29524
30928
|
end
|
|
29525
30929
|
return name
|
|
29526
30930
|
end
|
|
30931
|
+
function STORAGE:AddAmount(Type,Amount)
|
|
30932
|
+
if type(Type)=="number"then
|
|
30933
|
+
self:AddLiquid(Type,Amount)
|
|
30934
|
+
else
|
|
30935
|
+
self:AddItem(Type,Amount)
|
|
30936
|
+
end
|
|
30937
|
+
return self
|
|
30938
|
+
end
|
|
30939
|
+
function STORAGE:RemoveAmount(Type,Amount)
|
|
30940
|
+
if type(Type)=="number"then
|
|
30941
|
+
self:RemoveLiquid(Type,Amount)
|
|
30942
|
+
else
|
|
30943
|
+
self:RemoveItem(Type,Amount)
|
|
30944
|
+
end
|
|
30945
|
+
return self
|
|
30946
|
+
end
|
|
30947
|
+
function STORAGE:SetAmount(Type,Amount)
|
|
30948
|
+
if type(Type)=="number"then
|
|
30949
|
+
self:SetLiquid(Type,Amount)
|
|
30950
|
+
else
|
|
30951
|
+
self:SetItem(Type,Amount)
|
|
30952
|
+
end
|
|
30953
|
+
return self
|
|
30954
|
+
end
|
|
30955
|
+
function STORAGE:GetAmount(Type)
|
|
30956
|
+
local N=0
|
|
30957
|
+
if type(Type)=="number"then
|
|
30958
|
+
N=self:GetLiquidAmount(Type)
|
|
30959
|
+
else
|
|
30960
|
+
N=self:GetItemAmount(Type)
|
|
30961
|
+
end
|
|
30962
|
+
return N
|
|
30963
|
+
end
|
|
30964
|
+
function STORAGE:IsUnlimited(Type)
|
|
30965
|
+
local N=self:GetAmount(Type)
|
|
30966
|
+
local unlimited=false
|
|
30967
|
+
if N>0 then
|
|
30968
|
+
self:RemoveAmount(Type,1)
|
|
30969
|
+
local n=self:GetAmount(Type)
|
|
30970
|
+
unlimited=n==N
|
|
30971
|
+
if not unlimited then
|
|
30972
|
+
self:AddAmount(Type,1)
|
|
30973
|
+
end
|
|
30974
|
+
self:I(self.lid..string.format("Type=%s: unlimited=%s (N=%d n=%d)",tostring(Type),tostring(unlimited),N,n))
|
|
30975
|
+
end
|
|
30976
|
+
return unlimited
|
|
30977
|
+
end
|
|
30978
|
+
function STORAGE:IsLimited(Type)
|
|
30979
|
+
local limited=not self:IsUnlimited(Type)
|
|
30980
|
+
return limited
|
|
30981
|
+
end
|
|
30982
|
+
function STORAGE:IsUnlimitedAircraft()
|
|
30983
|
+
local unlimited=self:IsUnlimited("A-10C")
|
|
30984
|
+
return unlimited
|
|
30985
|
+
end
|
|
30986
|
+
function STORAGE:IsUnlimitedLiquids()
|
|
30987
|
+
local unlimited=self:IsUnlimited(STORAGE.Liquid.DIESEL)
|
|
30988
|
+
return unlimited
|
|
30989
|
+
end
|
|
30990
|
+
function STORAGE:IsUnlimitedWeapons()
|
|
30991
|
+
local unlimited=self:IsUnlimited(ENUMS.Storage.weapons.bombs.Mk_82)
|
|
30992
|
+
return unlimited
|
|
30993
|
+
end
|
|
30994
|
+
function STORAGE:IsLimitedAircraft()
|
|
30995
|
+
local limited=self:IsLimited("A-10C")
|
|
30996
|
+
return limited
|
|
30997
|
+
end
|
|
30998
|
+
function STORAGE:IsLimitedLiquids()
|
|
30999
|
+
local limited=self:IsLimited(STORAGE.Liquid.DIESEL)
|
|
31000
|
+
return limited
|
|
31001
|
+
end
|
|
31002
|
+
function STORAGE:IsLimitedWeapons()
|
|
31003
|
+
local limited=self:IsLimited(ENUMS.Storage.weapons.bombs.Mk_82)
|
|
31004
|
+
return limited
|
|
31005
|
+
end
|
|
29527
31006
|
function STORAGE:GetInventory(Item)
|
|
29528
31007
|
local inventory=self.warehouse:getInventory(Item)
|
|
29529
31008
|
return inventory.aircraft,inventory.liquids,inventory.weapon
|
|
@@ -39684,9 +41163,11 @@ MANTIS.SamDataCH={
|
|
|
39684
41163
|
["PGZ-09 CH"]={Range=4,Blindspot=0,Height=3,Type="Short",Radar="CH_PGZ09"},
|
|
39685
41164
|
["S350-9M100 CH"]={Range=15,Blindspot=1.5,Height=8,Type="Short",Radar="CH_S350_50P6_9M100"},
|
|
39686
41165
|
["S350-9M96D CH"]={Range=150,Blindspot=2.5,Height=30,Type="Long",Radar="CH_S350_50P6_9M96D"},
|
|
41166
|
+
["LAV-AD CH"]={Range=8,Blindspot=0.2,Height=4.8,Type="Short",Radar="CH_LAVAD"},
|
|
41167
|
+
["HQ-22 CH"]={Range=170,Blindspot=5,Height=27,Type="Long",Radar="CH_HQ22_LN"},
|
|
39687
41168
|
}
|
|
39688
41169
|
do
|
|
39689
|
-
function MANTIS:New(name,samprefix,ewrprefix,hq,coalition,dynamic,awacs,EmOnOff,Padding)
|
|
41170
|
+
function MANTIS:New(name,samprefix,ewrprefix,hq,coalition,dynamic,awacs,EmOnOff,Padding,Zones)
|
|
39690
41171
|
self.SAM_Templates_Prefix=samprefix or"Red SAM"
|
|
39691
41172
|
self.EWR_Templates_Prefix=ewrprefix or"Red EWR"
|
|
39692
41173
|
self.HQ_Template_CC=hq or nil
|
|
@@ -39736,6 +41217,7 @@ self.maxshortrange=2
|
|
|
39736
41217
|
self.maxclassic=6
|
|
39737
41218
|
self.autoshorad=true
|
|
39738
41219
|
self.ShoradGroupSet=SET_GROUP:New()
|
|
41220
|
+
self.FilterZones=Zones
|
|
39739
41221
|
self.UseEmOnOff=true
|
|
39740
41222
|
if EmOnOff==false then
|
|
39741
41223
|
self.UseEmOnOff=false
|
|
@@ -39769,17 +41251,22 @@ if self.advAwacs then
|
|
|
39769
41251
|
table.insert(self.ewr_templates,awacs)
|
|
39770
41252
|
end
|
|
39771
41253
|
self:T({self.ewr_templates})
|
|
41254
|
+
self.SAM_Group=SET_GROUP:New():FilterPrefixes(self.SAM_Templates_Prefix):FilterCoalitions(self.Coalition)
|
|
41255
|
+
self.EWR_Group=SET_GROUP:New():FilterPrefixes(self.ewr_templates):FilterCoalitions(self.Coalition)
|
|
41256
|
+
if self.FilterZones then
|
|
41257
|
+
self.SAM_Group:FilterZones(self.FilterZones)
|
|
41258
|
+
end
|
|
39772
41259
|
if self.dynamic then
|
|
39773
|
-
self.SAM_Group
|
|
39774
|
-
self.EWR_Group
|
|
41260
|
+
self.SAM_Group:FilterStart()
|
|
41261
|
+
self.EWR_Group:FilterStart()
|
|
39775
41262
|
else
|
|
39776
|
-
self.SAM_Group
|
|
39777
|
-
self.EWR_Group
|
|
41263
|
+
self.SAM_Group:FilterOnce()
|
|
41264
|
+
self.EWR_Group:FilterOnce()
|
|
39778
41265
|
end
|
|
39779
41266
|
if self.HQ_Template_CC then
|
|
39780
41267
|
self.HQ_CC=GROUP:FindByName(self.HQ_Template_CC)
|
|
39781
41268
|
end
|
|
39782
|
-
self.version="0.8.
|
|
41269
|
+
self.version="0.8.14"
|
|
39783
41270
|
self:I(string.format("***** Starting MANTIS Version %s *****",self.version))
|
|
39784
41271
|
self:SetStartState("Stopped")
|
|
39785
41272
|
self:AddTransition("Stopped","Start","Running")
|
|
@@ -41644,7 +43131,7 @@ IRExitRange={filename="IR-ExitRange.ogg",duration=3.10},
|
|
|
41644
43131
|
RANGE.Names={}
|
|
41645
43132
|
RANGE.MenuF10={}
|
|
41646
43133
|
RANGE.MenuF10Root=nil
|
|
41647
|
-
RANGE.version="2.7.
|
|
43134
|
+
RANGE.version="2.7.1"
|
|
41648
43135
|
function RANGE:New(RangeName)
|
|
41649
43136
|
local self=BASE:Inherit(self,FSM:New())
|
|
41650
43137
|
self.rangename=RangeName or"Practice Range"
|
|
@@ -42359,6 +43846,7 @@ if _track and dPR<=self.BombtrackThreshold and _unit and _playername then
|
|
|
42359
43846
|
local playerData=self.PlayerSettings[_playername]
|
|
42360
43847
|
local attackHdg=_unit:GetHeading()
|
|
42361
43848
|
local attackAlt=_unit:GetHeight()
|
|
43849
|
+
attackAlt=UTILS.MetersToFeet(attackAlt)
|
|
42362
43850
|
local attackVel=_unit:GetVelocityKNOTS()
|
|
42363
43851
|
self:T(self.lid..string.format("RANGE %s: Tracking %s - %s.",self.rangename,weapon:GetTypeName(),weapon:GetName()))
|
|
42364
43852
|
weapon:SetFuncImpact(RANGE._OnImpact,self,playerData,attackHdg,attackAlt,attackVel)
|
|
@@ -63895,7 +65383,7 @@ RSBNChannel={filename="RSBNChannel.ogg",duration=1.14},
|
|
|
63895
65383
|
Zulu={filename="Zulu.ogg",duration=0.62},
|
|
63896
65384
|
}
|
|
63897
65385
|
_ATIS={}
|
|
63898
|
-
ATIS.version="0.9.
|
|
65386
|
+
ATIS.version="0.9.16"
|
|
63899
65387
|
function ATIS:New(AirbaseName,Frequency,Modulation)
|
|
63900
65388
|
local self=BASE:Inherit(self,FSM:New())
|
|
63901
65389
|
self.airbasename=AirbaseName
|
|
@@ -64173,7 +65661,8 @@ local coal=self.airbase and self.airbase:GetCoalition()or nil
|
|
|
64173
65661
|
return coal
|
|
64174
65662
|
end
|
|
64175
65663
|
function ATIS:onafterStart(From,Event,To)
|
|
64176
|
-
self:
|
|
65664
|
+
self:T({From,Event,To})
|
|
65665
|
+
self:T("Airbase category is "..self.airbase:GetAirbaseCategory())
|
|
64177
65666
|
if self.airbase:GetAirbaseCategory()==Airbase.Category.SHIP then
|
|
64178
65667
|
self:E(self.lid..string.format("ERROR: Cannot start ATIS for airbase %s! Only AIRDROMES are supported but NOT SHIPS.",self.airbasename))
|
|
64179
65668
|
return
|
|
@@ -64206,6 +65695,7 @@ self:__Status(-2)
|
|
|
64206
65695
|
self:__CheckQueue(-3)
|
|
64207
65696
|
end
|
|
64208
65697
|
function ATIS:onafterStatus(From,Event,To)
|
|
65698
|
+
self:T({From,Event,To})
|
|
64209
65699
|
local fsmstate=self:GetState()
|
|
64210
65700
|
local relayunitstatus="N/A"
|
|
64211
65701
|
if self.relayunitname then
|
|
@@ -64222,10 +65712,12 @@ text=text..string.format(", Relay unit=%s (alive=%s)",tostring(self.relayunitnam
|
|
|
64222
65712
|
end
|
|
64223
65713
|
self:T(self.lid..text)
|
|
64224
65714
|
if not self:Is("Stopped")then
|
|
64225
|
-
self:__Status(
|
|
65715
|
+
self:__Status(60)
|
|
64226
65716
|
end
|
|
64227
65717
|
end
|
|
64228
65718
|
function ATIS:onafterCheckQueue(From,Event,To)
|
|
65719
|
+
self:T({From,Event,To})
|
|
65720
|
+
if not self:Is("Stopped")then
|
|
64229
65721
|
if self.useSRS then
|
|
64230
65722
|
self:Broadcast()
|
|
64231
65723
|
else
|
|
@@ -64236,11 +65728,11 @@ else
|
|
|
64236
65728
|
self:T2(self.lid..string.format("Radio queue %d transmissions queued.",#self.radioqueue.queue))
|
|
64237
65729
|
end
|
|
64238
65730
|
end
|
|
64239
|
-
|
|
64240
|
-
self:__CheckQueue(-math.abs(self.dTQueueCheck))
|
|
65731
|
+
self:__CheckQueue(math.abs(self.dTQueueCheck))
|
|
64241
65732
|
end
|
|
64242
65733
|
end
|
|
64243
65734
|
function ATIS:onafterBroadcast(From,Event,To)
|
|
65735
|
+
self:T({From,Event,To})
|
|
64244
65736
|
local coord=self.airbase:GetCoordinate()
|
|
64245
65737
|
local height=coord:GetLandHeight()
|
|
64246
65738
|
local qfe=coord:GetPressure(height)
|
|
@@ -64794,8 +66286,9 @@ end
|
|
|
64794
66286
|
alltext=alltext..";\n"..subtitle
|
|
64795
66287
|
local _RUNACT
|
|
64796
66288
|
if not self.ATISforFARPs then
|
|
66289
|
+
local subtitle
|
|
64797
66290
|
if runwayLanding then
|
|
64798
|
-
|
|
66291
|
+
subtitle=string.format("Active runway %s",runwayLanding)
|
|
64799
66292
|
if rwyLandingLeft==true then
|
|
64800
66293
|
subtitle=subtitle.." Left"
|
|
64801
66294
|
elseif rwyLandingLeft==false then
|
|
@@ -65006,6 +66499,7 @@ self:UpdateMarker(_INFORMATION,_RUNACT,_WIND,_ALTIMETER,_TEMPERATURE)
|
|
|
65006
66499
|
end
|
|
65007
66500
|
end
|
|
65008
66501
|
function ATIS:onafterReport(From,Event,To,Text)
|
|
66502
|
+
self:T({From,Event,To})
|
|
65009
66503
|
self:T(self.lid..string.format("Report:\n%s",Text))
|
|
65010
66504
|
if self.useSRS and self.msrs then
|
|
65011
66505
|
local text=string.gsub(Text,"[\r\n]","")
|
|
@@ -65460,7 +66954,8 @@ return mission
|
|
|
65460
66954
|
end
|
|
65461
66955
|
function AUFTRAG:NewCAP(ZoneCAP,Altitude,Speed,Coordinate,Heading,Leg,TargetTypes)
|
|
65462
66956
|
TargetTypes=UTILS.EnsureTable(TargetTypes,true)
|
|
65463
|
-
|
|
66957
|
+
Altitude=Altitude or 10000
|
|
66958
|
+
local mission=AUFTRAG:NewORBIT(Coordinate or ZoneCAP:GetCoordinate(),Altitude,Speed or 350,Heading,Leg)
|
|
65464
66959
|
mission.type=AUFTRAG.Type.CAP
|
|
65465
66960
|
mission:_SetLogID()
|
|
65466
66961
|
mission.engageZone=ZoneCAP
|
|
@@ -83804,6 +85299,20 @@ element.fuelrel=fuel
|
|
|
83804
85299
|
end
|
|
83805
85300
|
self:T(self.lid..string.format("Travelled ds=%.1f km dt=%.1f s ==> v=%.1f knots. Fuel left for %.1f min",self.traveldist/1000,dt,UTILS.MpsToKnots(v),TmaxFuel/60))
|
|
83806
85301
|
end
|
|
85302
|
+
if false then
|
|
85303
|
+
for _,_element in pairs(self.elements)do
|
|
85304
|
+
local element=_element
|
|
85305
|
+
local unit=element.unit
|
|
85306
|
+
if unit and unit:IsAlive()then
|
|
85307
|
+
local vec3=unit:GetVec3()
|
|
85308
|
+
if vec3 and element.pos then
|
|
85309
|
+
local id=UTILS.GetMarkID()
|
|
85310
|
+
trigger.action.lineToAll(-1,id,vec3,element.pos,{1,1,1,0.5},1)
|
|
85311
|
+
end
|
|
85312
|
+
element.pos=vec3
|
|
85313
|
+
end
|
|
85314
|
+
end
|
|
85315
|
+
end
|
|
83807
85316
|
if alive and self.group:IsAirborne(true)then
|
|
83808
85317
|
local fuelmin=self:GetFuelMin()
|
|
83809
85318
|
self:T2(self.lid..string.format("Fuel state=%d",fuelmin))
|
|
@@ -90548,18 +92057,20 @@ end
|
|
|
90548
92057
|
end
|
|
90549
92058
|
return self
|
|
90550
92059
|
end
|
|
90551
|
-
function OPSGROUP:SelfDestruction(Delay,ExplosionPower)
|
|
92060
|
+
function OPSGROUP:SelfDestruction(Delay,ExplosionPower,ElementName)
|
|
90552
92061
|
if Delay and Delay>0 then
|
|
90553
|
-
self:ScheduleOnce(Delay,OPSGROUP.SelfDestruction,self,0,ExplosionPower)
|
|
92062
|
+
self:ScheduleOnce(Delay,OPSGROUP.SelfDestruction,self,0,ExplosionPower,ElementName)
|
|
90554
92063
|
else
|
|
90555
92064
|
for i,_element in pairs(self.elements)do
|
|
90556
92065
|
local element=_element
|
|
92066
|
+
if ElementName==nil or ElementName==element.name then
|
|
90557
92067
|
local unit=element.unit
|
|
90558
92068
|
if unit and unit:IsAlive()then
|
|
90559
92069
|
unit:Explode(ExplosionPower or 100)
|
|
90560
92070
|
end
|
|
90561
92071
|
end
|
|
90562
92072
|
end
|
|
92073
|
+
end
|
|
90563
92074
|
return self
|
|
90564
92075
|
end
|
|
90565
92076
|
function OPSGROUP:SetSRS(PathToSRS,Gender,Culture,Voice,Port,PathToGoogleKey,Label,Volume)
|
|
@@ -92122,10 +93633,10 @@ end
|
|
|
92122
93633
|
if self.isFlightgroup then
|
|
92123
93634
|
if Mission.prohibitABExecute==true then
|
|
92124
93635
|
self:SetProhibitAfterburner()
|
|
92125
|
-
self:
|
|
93636
|
+
self:T(self.lid.."Set prohibit AB")
|
|
92126
93637
|
elseif Mission.prohibitABExecute==false then
|
|
92127
93638
|
self:SetAllowAfterburner()
|
|
92128
|
-
self:T2("Set allow AB")
|
|
93639
|
+
self:T2(self.lid.."Set allow AB")
|
|
92129
93640
|
end
|
|
92130
93641
|
end
|
|
92131
93642
|
end
|
|
@@ -93041,19 +94552,31 @@ end
|
|
|
93041
94552
|
end
|
|
93042
94553
|
end
|
|
93043
94554
|
for i=#Element.cargoBay,1,-1 do
|
|
93044
|
-
local
|
|
93045
|
-
|
|
93046
|
-
|
|
93047
|
-
|
|
93048
|
-
|
|
93049
|
-
|
|
93050
|
-
|
|
93051
|
-
|
|
94555
|
+
local mycargo=Element.cargoBay[i]
|
|
94556
|
+
if mycargo.group then
|
|
94557
|
+
self:_DelCargobay(mycargo.group)
|
|
94558
|
+
if mycargo.group and not(mycargo.group:IsDead()or mycargo.group:IsStopped())then
|
|
94559
|
+
mycargo.group:_RemoveMyCarrier()
|
|
94560
|
+
if mycargo.reserved then
|
|
94561
|
+
mycargo.group:_NewCargoStatus(OPSGROUP.CargoStatus.NOTCARGO)
|
|
94562
|
+
else
|
|
94563
|
+
for _,cargoelement in pairs(mycargo.group.elements)do
|
|
93052
94564
|
self:T2(self.lid.."Cargo element dead "..cargoelement.name)
|
|
93053
|
-
|
|
94565
|
+
mycargo.group:ElementDead(cargoelement)
|
|
93054
94566
|
end
|
|
93055
94567
|
end
|
|
93056
94568
|
end
|
|
94569
|
+
else
|
|
94570
|
+
if self.cargoTZC then
|
|
94571
|
+
for _,_cargo in pairs(self.cargoTZC.Cargos)do
|
|
94572
|
+
local cargo=_cargo
|
|
94573
|
+
if cargo.uid==mycargo.cargoUID then
|
|
94574
|
+
cargo.storage.cargoLost=cargo.storage.cargoLost+mycargo.storageAmount
|
|
94575
|
+
end
|
|
94576
|
+
end
|
|
94577
|
+
end
|
|
94578
|
+
self:_DelCargobayElement(Element,mycargo)
|
|
94579
|
+
end
|
|
93057
94580
|
end
|
|
93058
94581
|
end
|
|
93059
94582
|
function OPSGROUP:onafterRespawn(From,Event,To,Template)
|
|
@@ -93280,7 +94803,12 @@ for _,_element in pairs(self.elements)do
|
|
|
93280
94803
|
local element=_element
|
|
93281
94804
|
for _,_cargo in pairs(element.cargoBay)do
|
|
93282
94805
|
local cargo=_cargo
|
|
94806
|
+
if cargo.group then
|
|
93283
94807
|
text=text..string.format("\n- %s in carrier %s, reserved=%s",tostring(cargo.group:GetName()),tostring(element.name),tostring(cargo.reserved))
|
|
94808
|
+
else
|
|
94809
|
+
text=text..string.format("\n- storage %s=%d kg in carrier %s [UID=%s]",
|
|
94810
|
+
tostring(cargo.storageType),tostring(cargo.storageAmount*cargo.storageWeight),tostring(element.name),tostring(cargo.cargoUID))
|
|
94811
|
+
end
|
|
93284
94812
|
end
|
|
93285
94813
|
end
|
|
93286
94814
|
if text==""then
|
|
@@ -93299,6 +94827,7 @@ local deployname=deployzone and deployzone:GetName()or"unknown"
|
|
|
93299
94827
|
text=text..string.format("\n[%d] UID=%d Status=%s: %s --> %s",i,transport.uid,transport:GetState(),pickupname,deployname)
|
|
93300
94828
|
for j,_cargo in pairs(transport:GetCargos())do
|
|
93301
94829
|
local cargo=_cargo
|
|
94830
|
+
if cargo.type==OPSTRANSPORT.CargoType.OPSGROUP then
|
|
93302
94831
|
local state=cargo.opsgroup:GetState()
|
|
93303
94832
|
local status=cargo.opsgroup.cargoStatus
|
|
93304
94833
|
local name=cargo.opsgroup.groupname
|
|
@@ -93306,6 +94835,8 @@ local carriergroup,carrierelement,reserved=cargo.opsgroup:_GetMyCarrier()
|
|
|
93306
94835
|
local carrierGroupname=carriergroup and carriergroup.groupname or"none"
|
|
93307
94836
|
local carrierElementname=carrierelement and carrierelement.name or"none"
|
|
93308
94837
|
text=text..string.format("\n (%d) %s [%s]: %s, carrier=%s(%s), delivered=%s",j,name,state,status,carrierGroupname,carrierElementname,tostring(cargo.delivered))
|
|
94838
|
+
else
|
|
94839
|
+
end
|
|
93309
94840
|
end
|
|
93310
94841
|
end
|
|
93311
94842
|
if text~=""then
|
|
@@ -93347,26 +94878,32 @@ self:T(self.lid..string.format("Picking up at %s [TZC UID=%d] for %s sec...",sel
|
|
|
93347
94878
|
elseif self:IsLoading()then
|
|
93348
94879
|
self.Tloading=self.Tloading or Time
|
|
93349
94880
|
local tloading=Time-self.Tloading
|
|
93350
|
-
self:T(self.lid..string.format("Loading at %s [TZC UID=%d] for
|
|
94881
|
+
self:T(self.lid..string.format("Loading at %s [TZC UID=%d] for %.1f sec...",self.cargoTZC.PickupZone and self.cargoTZC.PickupZone:GetName()or"unknown",self.cargoTZC.uid,tloading))
|
|
93351
94882
|
local boarding=false
|
|
93352
94883
|
local gotcargo=false
|
|
93353
94884
|
for _,_cargo in pairs(self.cargoTZC.Cargos)do
|
|
93354
94885
|
local cargo=_cargo
|
|
93355
|
-
if cargo.
|
|
94886
|
+
if cargo.type==OPSTRANSPORT.CargoType.OPSTRANPORT then
|
|
94887
|
+
if cargo.opsgroup and cargo.opsgroup:IsBoarding(self.groupname)then
|
|
93356
94888
|
boarding=true
|
|
93357
94889
|
end
|
|
93358
|
-
if cargo.opsgroup:IsLoaded(self.groupname)then
|
|
94890
|
+
if cargo.opsgroup and cargo.opsgroup:IsLoaded(self.groupname)then
|
|
94891
|
+
gotcargo=true
|
|
94892
|
+
end
|
|
94893
|
+
else
|
|
94894
|
+
local mycargo=self:_GetMyCargoBayFromUID(cargo.uid)
|
|
94895
|
+
if mycargo and mycargo.storageAmount>0 then
|
|
93359
94896
|
gotcargo=true
|
|
93360
94897
|
end
|
|
93361
94898
|
end
|
|
94899
|
+
end
|
|
93362
94900
|
if gotcargo and self.cargoTransport:_CheckRequiredCargos(self.cargoTZC,self)and not boarding then
|
|
93363
|
-
self:T(self.lid.."Boarding finished ==> Loaded")
|
|
94901
|
+
self:T(self.lid.."Boarding/loading finished ==> Loaded")
|
|
94902
|
+
self.Tloading=nil
|
|
93364
94903
|
self:LoadingDone()
|
|
93365
94904
|
else
|
|
93366
94905
|
self:Loading()
|
|
93367
94906
|
end
|
|
93368
|
-
if not gotcargo and not boarding then
|
|
93369
|
-
end
|
|
93370
94907
|
elseif self:IsTransporting()then
|
|
93371
94908
|
self.Ttransporting=self.Ttransporting or Time
|
|
93372
94909
|
local ttransporting=Time-self.Ttransporting
|
|
@@ -93378,11 +94915,19 @@ self:T(self.lid.."Unloading ==> Checking if all cargo was delivered")
|
|
|
93378
94915
|
local delivered=true
|
|
93379
94916
|
for _,_cargo in pairs(self.cargoTZC.Cargos)do
|
|
93380
94917
|
local cargo=_cargo
|
|
94918
|
+
if cargo.type==OPSTRANSPORT.CargoType.OPSGROUP then
|
|
93381
94919
|
local carrierGroup=cargo.opsgroup:_GetMyCarrierGroup()
|
|
93382
94920
|
if(carrierGroup and carrierGroup:GetName()==self:GetName())and not cargo.delivered then
|
|
93383
94921
|
delivered=false
|
|
93384
94922
|
break
|
|
93385
94923
|
end
|
|
94924
|
+
else
|
|
94925
|
+
local mycargo=self:_GetMyCargoBayFromUID(cargo.uid)
|
|
94926
|
+
if mycargo and not cargo.delivered then
|
|
94927
|
+
delivered=false
|
|
94928
|
+
break
|
|
94929
|
+
end
|
|
94930
|
+
end
|
|
93386
94931
|
end
|
|
93387
94932
|
if delivered then
|
|
93388
94933
|
self:T(self.lid.."Unloading finished ==> UnloadingDone")
|
|
@@ -93399,6 +94944,7 @@ local deployname=deployzone and deployzone:GetName()or"unknown"
|
|
|
93399
94944
|
local text=string.format("Carrier [%s]: %s --> %s",self.carrierStatus,pickupname,deployname)
|
|
93400
94945
|
for _,_cargo in pairs(self.cargoTransport:GetCargos(self.cargoTZC))do
|
|
93401
94946
|
local cargo=_cargo
|
|
94947
|
+
if cargo.type==OPSTRANSPORT.CargoType.OPSGROUP then
|
|
93402
94948
|
local name=cargo.opsgroup:GetName()
|
|
93403
94949
|
local gstatus=cargo.opsgroup:GetState()
|
|
93404
94950
|
local cstatus=cargo.opsgroup.cargoStatus
|
|
@@ -93407,6 +94953,8 @@ local carriergroup,carrierelement,reserved=cargo.opsgroup:_GetMyCarrier()
|
|
|
93407
94953
|
local carrierGroupname=carriergroup and carriergroup.groupname or"none"
|
|
93408
94954
|
local carrierElementname=carrierelement and carrierelement.name or"none"
|
|
93409
94955
|
text=text..string.format("\n- %s (%.1f kg) [%s]: %s, carrier=%s (%s), delivered=%s",name,weight,gstatus,cstatus,carrierElementname,carrierGroupname,tostring(cargo.delivered))
|
|
94956
|
+
else
|
|
94957
|
+
end
|
|
93410
94958
|
end
|
|
93411
94959
|
self:I(self.lid..text)
|
|
93412
94960
|
end
|
|
@@ -93443,6 +94991,44 @@ self:AddWeightCargo(CarrierElement.name,weight)
|
|
|
93443
94991
|
end
|
|
93444
94992
|
return self
|
|
93445
94993
|
end
|
|
94994
|
+
function OPSGROUP:_AddCargobayStorage(CarrierElement,CargoUID,StorageType,StorageAmount,StorageWeight)
|
|
94995
|
+
local MyCargo=self:_CreateMyCargo(CargoUID,nil,StorageType,StorageAmount,StorageWeight)
|
|
94996
|
+
self:_AddMyCargoBay(MyCargo,CarrierElement)
|
|
94997
|
+
end
|
|
94998
|
+
function OPSGROUP:_CreateMyCargo(CargoUID,OpsGroup,StorageType,StorageAmount,StorageWeight)
|
|
94999
|
+
local cargo={}
|
|
95000
|
+
cargo.cargoUID=CargoUID
|
|
95001
|
+
cargo.group=OpsGroup
|
|
95002
|
+
cargo.storageType=StorageType
|
|
95003
|
+
cargo.storageAmount=StorageAmount
|
|
95004
|
+
cargo.storageWeight=StorageWeight
|
|
95005
|
+
cargo.reserved=false
|
|
95006
|
+
return cargo
|
|
95007
|
+
end
|
|
95008
|
+
function OPSGROUP:_AddMyCargoBay(MyCargo,CarrierElement)
|
|
95009
|
+
table.insert(CarrierElement.cargoBay,MyCargo)
|
|
95010
|
+
if not MyCargo.reserved then
|
|
95011
|
+
local weight=0
|
|
95012
|
+
if MyCargo.group then
|
|
95013
|
+
weight=MyCargo.group:GetWeightTotal()
|
|
95014
|
+
else
|
|
95015
|
+
weight=MyCargo.storageAmount*MyCargo.storageWeight
|
|
95016
|
+
end
|
|
95017
|
+
self:AddWeightCargo(CarrierElement.name,weight)
|
|
95018
|
+
end
|
|
95019
|
+
end
|
|
95020
|
+
function OPSGROUP:_GetMyCargoBayFromUID(uid)
|
|
95021
|
+
for _,_element in pairs(self.elements)do
|
|
95022
|
+
local element=_element
|
|
95023
|
+
for i,_mycargo in pairs(element.cargoBay)do
|
|
95024
|
+
local mycargo=_mycargo
|
|
95025
|
+
if mycargo.cargoUID and mycargo.cargoUID==uid then
|
|
95026
|
+
return mycargo,element,i
|
|
95027
|
+
end
|
|
95028
|
+
end
|
|
95029
|
+
end
|
|
95030
|
+
return nil,nil,nil
|
|
95031
|
+
end
|
|
93446
95032
|
function OPSGROUP:GetCargoGroups(CarrierName)
|
|
93447
95033
|
local cargos={}
|
|
93448
95034
|
for _,_element in pairs(self.elements)do
|
|
@@ -93473,6 +95059,31 @@ end
|
|
|
93473
95059
|
end
|
|
93474
95060
|
return nil,nil,nil
|
|
93475
95061
|
end
|
|
95062
|
+
function OPSGROUP:_GetCargobayElement(Element,CargoUID)
|
|
95063
|
+
self:T3({Element=Element,CargoUID=CargoUID})
|
|
95064
|
+
for i,_mycargo in pairs(Element.cargoBay)do
|
|
95065
|
+
local mycargo=_mycargo
|
|
95066
|
+
if mycargo.cargoUID and mycargo.cargoUID==CargoUID then
|
|
95067
|
+
return mycargo
|
|
95068
|
+
end
|
|
95069
|
+
end
|
|
95070
|
+
return nil
|
|
95071
|
+
end
|
|
95072
|
+
function OPSGROUP:_DelCargobayElement(Element,MyCargo)
|
|
95073
|
+
for i,_mycargo in pairs(Element.cargoBay)do
|
|
95074
|
+
local mycargo=_mycargo
|
|
95075
|
+
if mycargo.cargoUID and MyCargo.cargoUID and mycargo.cargoUID==MyCargo.cargoUID then
|
|
95076
|
+
if MyCargo.group then
|
|
95077
|
+
self:RedWeightCargo(Element.name,MyCargo.group:GetWeightTotal())
|
|
95078
|
+
else
|
|
95079
|
+
self:RedWeightCargo(Element.name,MyCargo.storageAmount*MyCargo.storageWeight)
|
|
95080
|
+
end
|
|
95081
|
+
table.remove(Element.cargoBay,i)
|
|
95082
|
+
return true
|
|
95083
|
+
end
|
|
95084
|
+
end
|
|
95085
|
+
return false
|
|
95086
|
+
end
|
|
93476
95087
|
function OPSGROUP:_DelCargobay(CargoGroup)
|
|
93477
95088
|
if self.cargoBay[CargoGroup.groupname]then
|
|
93478
95089
|
self.cargoBay[CargoGroup.groupname]=nil
|
|
@@ -93520,9 +95131,10 @@ function OPSGROUP:_CheckDelivered(CargoTransport)
|
|
|
93520
95131
|
local done=true
|
|
93521
95132
|
for _,_cargo in pairs(CargoTransport:GetCargos())do
|
|
93522
95133
|
local cargo=_cargo
|
|
93523
|
-
if self:CanCargo(cargo
|
|
95134
|
+
if self:CanCargo(cargo)then
|
|
93524
95135
|
if cargo.delivered then
|
|
93525
|
-
elseif cargo.
|
|
95136
|
+
elseif cargo.type==OPSTRANSPORT.CargoType.OPSGROUP and cargo.opsgroup==nil then
|
|
95137
|
+
elseif cargo.type==OPSTRANSPORT.CargoType.OPSGROUP and(cargo.opsgroup:IsDead()or cargo.opsgroup:IsStopped())then
|
|
93526
95138
|
else
|
|
93527
95139
|
done=false
|
|
93528
95140
|
end
|
|
@@ -93536,10 +95148,10 @@ local done=true
|
|
|
93536
95148
|
if CargoTransport then
|
|
93537
95149
|
for _,_cargo in pairs(CargoTransport:GetCargos())do
|
|
93538
95150
|
local cargo=_cargo
|
|
93539
|
-
if self:CanCargo(cargo
|
|
95151
|
+
if self:CanCargo(cargo)then
|
|
93540
95152
|
if cargo.delivered then
|
|
93541
|
-
elseif cargo.opsgroup==nil or cargo.opsgroup:IsDead()or cargo.opsgroup:IsStopped()then
|
|
93542
|
-
elseif cargo.opsgroup:IsLoaded(CargoTransport:_GetCarrierNames())then
|
|
95153
|
+
elseif cargo.type==OPSTRANSPORT.CargoType.OPSGROUP and(cargo.opsgroup==nil or cargo.opsgroup:IsDead()or cargo.opsgroup:IsStopped())then
|
|
95154
|
+
elseif cargo.type==OPSTRANSPORT.CargoType.OPSGROUP and(cargo.opsgroup:IsLoaded(CargoTransport:_GetCarrierNames()))then
|
|
93543
95155
|
else
|
|
93544
95156
|
done=false
|
|
93545
95157
|
end
|
|
@@ -93643,8 +95255,11 @@ if(UnitName==nil or UnitName==element.name)and(element and element.status~=OPSGR
|
|
|
93643
95255
|
for _,_cargo in pairs(element.cargoBay)do
|
|
93644
95256
|
local cargo=_cargo
|
|
93645
95257
|
if(not cargo.reserved)or(cargo.reserved==true and(IncludeReserved==true or IncludeReserved==nil))then
|
|
93646
|
-
|
|
93647
|
-
gewicht=gewicht+
|
|
95258
|
+
if cargo.group then
|
|
95259
|
+
gewicht=gewicht+cargo.group:GetWeightTotal()
|
|
95260
|
+
else
|
|
95261
|
+
gewicht=gewicht+cargo.storageAmount*cargo.storageWeight
|
|
95262
|
+
end
|
|
93648
95263
|
end
|
|
93649
95264
|
end
|
|
93650
95265
|
end
|
|
@@ -93691,27 +95306,54 @@ function OPSGROUP:RedWeightCargo(UnitName,Weight)
|
|
|
93691
95306
|
self:AddWeightCargo(UnitName,-Weight)
|
|
93692
95307
|
return self
|
|
93693
95308
|
end
|
|
93694
|
-
function OPSGROUP:
|
|
93695
|
-
|
|
93696
|
-
|
|
95309
|
+
function OPSGROUP:_GetWeightStorage(Storage,Total,Reserved,Amount)
|
|
95310
|
+
local weight=Storage.cargoAmount
|
|
95311
|
+
if not Total then
|
|
95312
|
+
weight=weight-Storage.cargoLost-Storage.cargoLoaded-Storage.cargoDelivered
|
|
95313
|
+
end
|
|
95314
|
+
if Reserved then
|
|
95315
|
+
weight=weight-Storage.cargoReserved
|
|
95316
|
+
end
|
|
95317
|
+
if not Amount then
|
|
95318
|
+
weight=weight*Storage.cargoWeight
|
|
95319
|
+
end
|
|
95320
|
+
return weight
|
|
95321
|
+
end
|
|
95322
|
+
function OPSGROUP:CanCargo(Cargo)
|
|
95323
|
+
if Cargo then
|
|
95324
|
+
local weight=math.huge
|
|
95325
|
+
if Cargo.type==OPSTRANSPORT.CargoType.OPSGROUP then
|
|
95326
|
+
local weight=Cargo.opsgroup:GetWeightTotal()
|
|
93697
95327
|
for _,_element in pairs(self.elements)do
|
|
93698
95328
|
local element=_element
|
|
93699
95329
|
if element and element.status~=OPSGROUP.ElementStatus.DEAD and element.weightMaxCargo>=weight then
|
|
93700
95330
|
return true
|
|
93701
95331
|
end
|
|
93702
95332
|
end
|
|
95333
|
+
else
|
|
95334
|
+
weight=Cargo.storage.cargoWeight
|
|
95335
|
+
end
|
|
95336
|
+
local bay=0
|
|
95337
|
+
for _,_element in pairs(self.elements)do
|
|
95338
|
+
local element=_element
|
|
95339
|
+
if element and element.status~=OPSGROUP.ElementStatus.DEAD then
|
|
95340
|
+
bay=bay+element.weightMaxCargo
|
|
95341
|
+
end
|
|
95342
|
+
end
|
|
95343
|
+
if bay>=weight then
|
|
95344
|
+
return true
|
|
95345
|
+
end
|
|
93703
95346
|
end
|
|
93704
95347
|
return false
|
|
93705
95348
|
end
|
|
93706
|
-
function OPSGROUP:FindCarrierForCargo(
|
|
93707
|
-
local weight=CargoGroup:GetWeightTotal()
|
|
95349
|
+
function OPSGROUP:FindCarrierForCargo(Weight)
|
|
93708
95350
|
for _,_element in pairs(self.elements)do
|
|
93709
95351
|
local element=_element
|
|
93710
95352
|
local free=self:GetFreeCargobay(element.name)
|
|
93711
|
-
if free>=
|
|
95353
|
+
if free>=Weight then
|
|
93712
95354
|
return element
|
|
93713
95355
|
else
|
|
93714
|
-
self:T3(self.lid..string.format("%s: Weight %d>%d free cargo bay",element.name,
|
|
95356
|
+
self:T3(self.lid..string.format("%s: Weight %d>%d free cargo bay",element.name,Weight,free))
|
|
93715
95357
|
end
|
|
93716
95358
|
end
|
|
93717
95359
|
return nil
|
|
@@ -93848,42 +95490,97 @@ self:__Cruise(-2,nil,Formation)
|
|
|
93848
95490
|
end
|
|
93849
95491
|
end
|
|
93850
95492
|
end
|
|
95493
|
+
function OPSGROUP:_SortCargo(Cargos)
|
|
95494
|
+
local function _sort(a,b)
|
|
95495
|
+
local cargoA=a
|
|
95496
|
+
local cargoB=b
|
|
95497
|
+
local weightA=0
|
|
95498
|
+
local weightB=0
|
|
95499
|
+
if cargoA.opsgroup then
|
|
95500
|
+
weightA=cargoA.opsgroup:GetWeightTotal()
|
|
95501
|
+
else
|
|
95502
|
+
weightA=self:_GetWeightStorage(cargoA.storage)
|
|
95503
|
+
end
|
|
95504
|
+
if cargoB.opsgroup then
|
|
95505
|
+
weightB=cargoB.opsgroup:GetWeightTotal()
|
|
95506
|
+
else
|
|
95507
|
+
weightB=self:_GetWeightStorage(cargoB.storage)
|
|
95508
|
+
end
|
|
95509
|
+
return weightA>weightB
|
|
95510
|
+
end
|
|
95511
|
+
table.sort(Cargos,_sort)
|
|
95512
|
+
return Cargos
|
|
95513
|
+
end
|
|
93851
95514
|
function OPSGROUP:onafterLoading(From,Event,To)
|
|
93852
95515
|
self:_NewCarrierStatus(OPSGROUP.CarrierStatus.LOADING)
|
|
93853
|
-
self.Tloading=timer.getAbsTime()
|
|
93854
95516
|
local cargos={}
|
|
93855
95517
|
for _,_cargo in pairs(self.cargoTZC.Cargos)do
|
|
93856
95518
|
local cargo=_cargo
|
|
93857
|
-
local canCargo=self:CanCargo(cargo
|
|
93858
|
-
local isCarrier=
|
|
93859
|
-
local isNotCargo=
|
|
93860
|
-
local isHolding=cargo.opsgroup:IsHolding()or cargo.opsgroup:IsLoaded()
|
|
93861
|
-
local inZone=cargo.opsgroup:IsInZone(self.cargoTZC.EmbarkZone)or cargo.opsgroup:IsInUtero()
|
|
93862
|
-
local isOnMission=cargo.opsgroup:IsOnMission()
|
|
95519
|
+
local canCargo=self:CanCargo(cargo)
|
|
95520
|
+
local isCarrier=false
|
|
95521
|
+
local isNotCargo=true
|
|
95522
|
+
local isHolding=cargo.type==OPSTRANSPORT.CargoType.OPSGROUP and(cargo.opsgroup:IsHolding()or cargo.opsgroup:IsLoaded())or true
|
|
95523
|
+
local inZone=cargo.type==OPSTRANSPORT.CargoType.OPSGROUP and(cargo.opsgroup:IsInZone(self.cargoTZC.EmbarkZone)or cargo.opsgroup:IsInUtero())or true
|
|
95524
|
+
local isOnMission=cargo.type==OPSTRANSPORT.CargoType.OPSGROUP and cargo.opsgroup:IsOnMission()or false
|
|
93863
95525
|
if isOnMission then
|
|
93864
95526
|
local mission=cargo.opsgroup:GetMissionCurrent()
|
|
93865
95527
|
if mission and((mission.opstransport and mission.opstransport.uid==self.cargoTransport.uid)or mission.type==AUFTRAG.Type.NOTHING)then
|
|
93866
95528
|
isOnMission=not isHolding
|
|
93867
95529
|
end
|
|
93868
95530
|
end
|
|
95531
|
+
local isAvail=true
|
|
95532
|
+
if cargo.type==OPSTRANSPORT.CargoType.STORAGE then
|
|
95533
|
+
local nAvail=cargo.storage.storageFrom:GetAmount(cargo.storage.cargoType)
|
|
95534
|
+
if nAvail>0 then
|
|
95535
|
+
isAvail=true
|
|
95536
|
+
else
|
|
95537
|
+
isAvail=false
|
|
95538
|
+
end
|
|
95539
|
+
else
|
|
95540
|
+
isCarrier=cargo.opsgroup:IsPickingup()or cargo.opsgroup:IsLoading()or cargo.opsgroup:IsTransporting()or cargo.opsgroup:IsUnloading()
|
|
95541
|
+
isNotCargo=cargo.opsgroup:IsNotCargo(true)
|
|
95542
|
+
end
|
|
95543
|
+
local isDead=cargo.type==OPSTRANSPORT.CargoType.OPSGROUP and cargo.opsgroup:IsDead()or false
|
|
93869
95544
|
self:T(self.lid..string.format("Loading: canCargo=%s, isCarrier=%s, isNotCargo=%s, isHolding=%s, isOnMission=%s",
|
|
93870
95545
|
tostring(canCargo),tostring(isCarrier),tostring(isNotCargo),tostring(isHolding),tostring(isOnMission)))
|
|
93871
|
-
if canCargo and inZone and isNotCargo and isHolding and(not(cargo.delivered or
|
|
95546
|
+
if canCargo and inZone and isNotCargo and isHolding and isAvail and(not(cargo.delivered or isDead or isCarrier or isOnMission))then
|
|
93872
95547
|
table.insert(cargos,cargo)
|
|
93873
95548
|
end
|
|
93874
95549
|
end
|
|
93875
|
-
|
|
93876
|
-
local cargoA=a
|
|
93877
|
-
local cargoB=b
|
|
93878
|
-
return cargoA.opsgroup:GetWeightTotal()>cargoB.opsgroup:GetWeightTotal()
|
|
93879
|
-
end
|
|
93880
|
-
table.sort(cargos,_sort)
|
|
95550
|
+
self:_SortCargo(cargos)
|
|
93881
95551
|
for _,_cargo in pairs(cargos)do
|
|
93882
95552
|
local cargo=_cargo
|
|
93883
|
-
local
|
|
95553
|
+
local weight=nil
|
|
95554
|
+
if cargo.type==OPSTRANSPORT.CargoType.OPSGROUP then
|
|
95555
|
+
weight=cargo.opsgroup:GetWeightTotal()
|
|
95556
|
+
local carrier=self:FindCarrierForCargo(weight)
|
|
93884
95557
|
if carrier then
|
|
93885
95558
|
cargo.opsgroup:Board(self,carrier)
|
|
93886
95559
|
end
|
|
95560
|
+
else
|
|
95561
|
+
weight=self:_GetWeightStorage(cargo.storage,false)
|
|
95562
|
+
local Amount=cargo.storage.storageFrom:GetAmount(cargo.storage.cargoType)
|
|
95563
|
+
local Weight=Amount*cargo.storage.cargoWeight
|
|
95564
|
+
weight=math.min(weight,Weight)
|
|
95565
|
+
self:T(self.lid..string.format("Loading storage weight=%d kg (warehouse has %d kg)!",weight,Weight))
|
|
95566
|
+
for _,_element in pairs(self.elements)do
|
|
95567
|
+
local element=_element
|
|
95568
|
+
local free=self:GetFreeCargobay(element.name)
|
|
95569
|
+
local w=math.min(weight,free)
|
|
95570
|
+
if w>=cargo.storage.cargoWeight then
|
|
95571
|
+
local amount=math.floor(w/cargo.storage.cargoWeight)
|
|
95572
|
+
cargo.storage.storageFrom:RemoveAmount(cargo.storage.cargoType,amount)
|
|
95573
|
+
cargo.storage.cargoLoaded=cargo.storage.cargoLoaded+amount
|
|
95574
|
+
self:_AddCargobayStorage(element,cargo.uid,cargo.storage.cargoType,amount,cargo.storage.cargoWeight)
|
|
95575
|
+
weight=weight-amount*cargo.storage.cargoWeight
|
|
95576
|
+
local text=string.format("Element %s: loaded amount=%d (weight=%d) ==> left=%d kg",element.name,amount,amount*cargo.storage.cargoWeight,weight)
|
|
95577
|
+
self:T(self.lid..text)
|
|
95578
|
+
if weight<=0 then
|
|
95579
|
+
break
|
|
95580
|
+
end
|
|
95581
|
+
end
|
|
95582
|
+
end
|
|
95583
|
+
end
|
|
93887
95584
|
end
|
|
93888
95585
|
end
|
|
93889
95586
|
function OPSGROUP:_NewCargoStatus(Status)
|
|
@@ -93907,7 +95604,8 @@ function OPSGROUP:onafterLoad(From,Event,To,CargoGroup,Carrier)
|
|
|
93907
95604
|
self:T(self.lid..string.format("Loading group %s",tostring(CargoGroup.groupname)))
|
|
93908
95605
|
local carrier=Carrier or CargoGroup:_GetMyCarrierElement()
|
|
93909
95606
|
if not carrier then
|
|
93910
|
-
|
|
95607
|
+
local weight=CargoGroup:GetWeightTotal()
|
|
95608
|
+
carrier=self:FindCarrierForCargo(weight)
|
|
93911
95609
|
end
|
|
93912
95610
|
if carrier then
|
|
93913
95611
|
CargoGroup:_NewCargoStatus(OPSGROUP.CargoStatus.LOADED)
|
|
@@ -94036,6 +95734,7 @@ self:T(self.lid.."Unloading..")
|
|
|
94036
95734
|
local zone=self.cargoTZC.DisembarkZone or self.cargoTZC.DeployZone
|
|
94037
95735
|
for _,_cargo in pairs(self.cargoTZC.Cargos)do
|
|
94038
95736
|
local cargo=_cargo
|
|
95737
|
+
if cargo.type==OPSTRANSPORT.CargoType.OPSGROUP then
|
|
94039
95738
|
if cargo.opsgroup:IsLoaded(self.groupname)and not cargo.opsgroup:IsDead()then
|
|
94040
95739
|
local carrier=nil
|
|
94041
95740
|
local carrierGroup=nil
|
|
@@ -94095,6 +95794,31 @@ self:T(self.lid.."Cargo needs carrier but no carrier is avaiable (yet)!")
|
|
|
94095
95794
|
end
|
|
94096
95795
|
else
|
|
94097
95796
|
end
|
|
95797
|
+
else
|
|
95798
|
+
if not cargo.delivered then
|
|
95799
|
+
for _,_element in pairs(self.elements)do
|
|
95800
|
+
local element=_element
|
|
95801
|
+
local mycargo=self:_GetCargobayElement(element,cargo.uid)
|
|
95802
|
+
if mycargo then
|
|
95803
|
+
cargo.storage.storageTo:AddAmount(mycargo.storageType,mycargo.storageAmount)
|
|
95804
|
+
cargo.storage.cargoDelivered=cargo.storage.cargoDelivered+mycargo.storageAmount
|
|
95805
|
+
cargo.storage.cargoLoaded=cargo.storage.cargoLoaded-mycargo.storageAmount
|
|
95806
|
+
self:_DelCargobayElement(element,mycargo)
|
|
95807
|
+
self:T2(self.lid..string.format("Cargo loaded=%d, delivered=%d, lost=%d",cargo.storage.cargoLoaded,cargo.storage.cargoDelivered,cargo.storage.cargoLost))
|
|
95808
|
+
end
|
|
95809
|
+
end
|
|
95810
|
+
local amountToDeliver=self:_GetWeightStorage(cargo.storage,false,false,true)
|
|
95811
|
+
local amountTotal=self:_GetWeightStorage(cargo.storage,true,false,true)
|
|
95812
|
+
local text=string.format("Amount delivered=%d, total=%d",amountToDeliver,amountTotal)
|
|
95813
|
+
self:T(self.lid..text)
|
|
95814
|
+
if amountToDeliver<=0 then
|
|
95815
|
+
cargo.delivered=true
|
|
95816
|
+
self.cargoTransport.Ndelivered=self.cargoTransport.Ndelivered+1
|
|
95817
|
+
local text=string.format("Ndelivered=%d delivered=%s",self.cargoTransport.Ndelivered,tostring(cargo.delivered))
|
|
95818
|
+
self:T(self.lid..text)
|
|
95819
|
+
end
|
|
95820
|
+
end
|
|
95821
|
+
end
|
|
94098
95822
|
end
|
|
94099
95823
|
end
|
|
94100
95824
|
function OPSGROUP:onbeforeUnload(From,Event,To,OpsGroup,Coordinate,Heading)
|
|
@@ -96074,6 +97798,7 @@ assets={},
|
|
|
96074
97798
|
legions={},
|
|
96075
97799
|
statusLegion={},
|
|
96076
97800
|
requestID={},
|
|
97801
|
+
cargocounter=0,
|
|
96077
97802
|
}
|
|
96078
97803
|
OPSTRANSPORT.Status={
|
|
96079
97804
|
PLANNED="planned",
|
|
@@ -96086,8 +97811,12 @@ CANCELLED="cancelled",
|
|
|
96086
97811
|
SUCCESS="success",
|
|
96087
97812
|
FAILED="failed",
|
|
96088
97813
|
}
|
|
97814
|
+
OPSTRANSPORT.CargoType={
|
|
97815
|
+
OPSGROUP="OPSGROUP",
|
|
97816
|
+
STORAGE="STORAGE",
|
|
97817
|
+
}
|
|
96089
97818
|
_OPSTRANSPORTID=0
|
|
96090
|
-
OPSTRANSPORT.version="0.
|
|
97819
|
+
OPSTRANSPORT.version="0.8.0"
|
|
96091
97820
|
function OPSTRANSPORT:New(CargoGroups,PickupZone,DeployZone)
|
|
96092
97821
|
local self=BASE:Inherit(self,FSM:New())
|
|
96093
97822
|
_OPSTRANSPORTID=_OPSTRANSPORTID+1
|
|
@@ -96174,6 +97903,14 @@ self:I(self.lid..text)
|
|
|
96174
97903
|
end
|
|
96175
97904
|
return self
|
|
96176
97905
|
end
|
|
97906
|
+
function OPSTRANSPORT:AddCargoStorage(StorageFrom,StorageTo,CargoType,CargoAmount,CargoWeight,TransportZoneCombo)
|
|
97907
|
+
TransportZoneCombo=TransportZoneCombo or self.tzcDefault
|
|
97908
|
+
local cargo=self:_CreateCargoStorage(StorageFrom,StorageTo,CargoType,CargoAmount,CargoWeight,TransportZoneCombo)
|
|
97909
|
+
if cargo then
|
|
97910
|
+
self.Ncargo=self.Ncargo+1
|
|
97911
|
+
table.insert(TransportZoneCombo.Cargos,cargo)
|
|
97912
|
+
end
|
|
97913
|
+
end
|
|
96177
97914
|
function OPSTRANSPORT:SetPickupZone(PickupZone,TransportZoneCombo)
|
|
96178
97915
|
TransportZoneCombo=TransportZoneCombo or self.tzcDefault
|
|
96179
97916
|
TransportZoneCombo.PickupZone=PickupZone
|
|
@@ -96376,36 +98113,71 @@ end
|
|
|
96376
98113
|
return names
|
|
96377
98114
|
end
|
|
96378
98115
|
function OPSTRANSPORT:GetCargoOpsGroups(Delivered,Carrier,TransportZoneCombo)
|
|
96379
|
-
local cargos=self:GetCargos(TransportZoneCombo)
|
|
98116
|
+
local cargos=self:GetCargos(TransportZoneCombo,Carrier,Delivered)
|
|
96380
98117
|
local opsgroups={}
|
|
96381
98118
|
for _,_cargo in pairs(cargos)do
|
|
96382
98119
|
local cargo=_cargo
|
|
96383
|
-
if
|
|
98120
|
+
if cargo.type=="OPSGROUP"then
|
|
96384
98121
|
if cargo.opsgroup and not(cargo.opsgroup:IsDead()or cargo.opsgroup:IsStopped())then
|
|
96385
|
-
if Carrier==nil or Carrier:CanCargo(cargo.opsgroup)then
|
|
96386
98122
|
table.insert(opsgroups,cargo.opsgroup)
|
|
96387
98123
|
end
|
|
96388
98124
|
end
|
|
96389
98125
|
end
|
|
98126
|
+
return opsgroups
|
|
98127
|
+
end
|
|
98128
|
+
function OPSTRANSPORT:GetCargoStorages(Delivered,Carrier,TransportZoneCombo)
|
|
98129
|
+
local cargos=self:GetCargos(TransportZoneCombo,Carrier,Delivered)
|
|
98130
|
+
local opsgroups={}
|
|
98131
|
+
for _,_cargo in pairs(cargos)do
|
|
98132
|
+
local cargo=_cargo
|
|
98133
|
+
if cargo.type=="STORAGE"then
|
|
98134
|
+
table.insert(opsgroups,cargo.storage)
|
|
98135
|
+
end
|
|
96390
98136
|
end
|
|
96391
98137
|
return opsgroups
|
|
96392
98138
|
end
|
|
96393
98139
|
function OPSTRANSPORT:GetCarriers()
|
|
96394
98140
|
return self.carriers
|
|
96395
98141
|
end
|
|
96396
|
-
function OPSTRANSPORT:GetCargos(TransportZoneCombo)
|
|
98142
|
+
function OPSTRANSPORT:GetCargos(TransportZoneCombo,Carrier,Delivered)
|
|
98143
|
+
local tczs=self.tzCombos
|
|
96397
98144
|
if TransportZoneCombo then
|
|
96398
|
-
|
|
96399
|
-
|
|
98145
|
+
tczs={TransportZoneCombo}
|
|
98146
|
+
end
|
|
96400
98147
|
local cargos={}
|
|
96401
|
-
for _,
|
|
96402
|
-
local
|
|
96403
|
-
for _,
|
|
98148
|
+
for _,_tcz in pairs(tczs)do
|
|
98149
|
+
local tcz=_tcz
|
|
98150
|
+
for _,_cargo in pairs(tcz.Cargos)do
|
|
98151
|
+
local cargo=_cargo
|
|
98152
|
+
if Delivered==nil or cargo.delivered==Delivered then
|
|
98153
|
+
if Carrier==nil or Carrier:CanCargo(cargo)then
|
|
96404
98154
|
table.insert(cargos,cargo)
|
|
96405
98155
|
end
|
|
96406
98156
|
end
|
|
98157
|
+
end
|
|
98158
|
+
end
|
|
96407
98159
|
return cargos
|
|
96408
98160
|
end
|
|
98161
|
+
function OPSTRANSPORT:GetCargoTotalWeight(Cargo,IncludeReserved)
|
|
98162
|
+
local weight=0
|
|
98163
|
+
if Cargo.type==OPSTRANSPORT.CargoType.OPSGROUP then
|
|
98164
|
+
weight=Cargo.opsgroup:GetWeightTotal(nil,IncludeReserved)
|
|
98165
|
+
else
|
|
98166
|
+
if type(Cargo.storage.cargoType)=="number"then
|
|
98167
|
+
if IncludeReserved then
|
|
98168
|
+
return Cargo.storage.cargoAmount+Cargo.storage.cargoReserved
|
|
98169
|
+
else
|
|
98170
|
+
return Cargo.storage.cargoAmount
|
|
98171
|
+
end
|
|
98172
|
+
else
|
|
98173
|
+
if IncludeReserved then
|
|
98174
|
+
return Cargo.storage.cargoAmount*100
|
|
98175
|
+
else
|
|
98176
|
+
return(Cargo.storage.cargoAmount+Cargo.storage.cargoReserved)*100
|
|
98177
|
+
end
|
|
98178
|
+
end
|
|
98179
|
+
end
|
|
98180
|
+
return weight
|
|
96409
98181
|
end
|
|
96410
98182
|
function OPSTRANSPORT:SetTime(ClockStart,ClockStop)
|
|
96411
98183
|
local Tnow=timer.getAbsTime()
|
|
@@ -96660,11 +98432,17 @@ if self.verbose>=3 then
|
|
|
96660
98432
|
text=text..string.format("\nCargos:")
|
|
96661
98433
|
for _,_cargo in pairs(self:GetCargos())do
|
|
96662
98434
|
local cargo=_cargo
|
|
98435
|
+
if cargo.type==OPSTRANSPORT.CargoType.OPSGROUP then
|
|
96663
98436
|
local carrier=cargo.opsgroup:_GetMyCarrierElement()
|
|
96664
98437
|
local name=carrier and carrier.name or"none"
|
|
96665
98438
|
local cstate=carrier and carrier.status or"N/A"
|
|
96666
98439
|
text=text..string.format("\n- %s: %s [%s], weight=%d kg, carrier=%s [%s], delivered=%s [UID=%s]",
|
|
96667
98440
|
cargo.opsgroup:GetName(),cargo.opsgroup.cargoStatus:upper(),cargo.opsgroup:GetState(),cargo.opsgroup:GetWeightTotal(),name,cstate,tostring(cargo.delivered),tostring(cargo.opsgroup.cargoTransportUID))
|
|
98441
|
+
else
|
|
98442
|
+
local storage=cargo.storage
|
|
98443
|
+
text=text..string.format("\n- storage type=%s: amount: total=%d loaded=%d, lost=%d, delivered=%d, delivered=%s [UID=%s]",
|
|
98444
|
+
storage.cargoType,storage.cargoAmount,storage.cargoLoaded,storage.cargoLost,storage.cargoDelivered,tostring(cargo.delivered),tostring(cargo.uid))
|
|
98445
|
+
end
|
|
96668
98446
|
end
|
|
96669
98447
|
text=text..string.format("\nCarriers:")
|
|
96670
98448
|
for _,_carrier in pairs(self.carriers)do
|
|
@@ -96782,11 +98560,11 @@ for _,_cargo in pairs(self:GetCargos())do
|
|
|
96782
98560
|
local cargo=_cargo
|
|
96783
98561
|
if cargo.delivered then
|
|
96784
98562
|
dead=false
|
|
96785
|
-
elseif cargo.opsgroup==nil then
|
|
98563
|
+
elseif cargo.type==OPSTRANSPORT.CargoType.OPSGROUP and cargo.opsgroup==nil then
|
|
96786
98564
|
dead=false
|
|
96787
|
-
elseif cargo.opsgroup:IsDestroyed()then
|
|
96788
|
-
elseif cargo.opsgroup:IsDead()then
|
|
96789
|
-
elseif cargo.opsgroup:IsStopped()then
|
|
98565
|
+
elseif cargo.type==OPSTRANSPORT.CargoType.OPSGROUP and cargo.opsgroup:IsDestroyed()then
|
|
98566
|
+
elseif cargo.type==OPSTRANSPORT.CargoType.OPSGROUP and cargo.opsgroup:IsDead()then
|
|
98567
|
+
elseif cargo.type==OPSTRANSPORT.CargoType.OPSGROUP and cargo.opsgroup:IsStopped()then
|
|
96790
98568
|
dead=false
|
|
96791
98569
|
else
|
|
96792
98570
|
done=false
|
|
@@ -96879,7 +98657,10 @@ if cargo.opsgroup.groupname==opsgroup.groupname then
|
|
|
96879
98657
|
return nil
|
|
96880
98658
|
end
|
|
96881
98659
|
end
|
|
98660
|
+
self.cargocounter=self.cargocounter+1
|
|
96882
98661
|
local cargo={}
|
|
98662
|
+
cargo.uid=self.cargocounter
|
|
98663
|
+
cargo.type="OPSGROUP"
|
|
96883
98664
|
cargo.opsgroup=opsgroup
|
|
96884
98665
|
cargo.delivered=false
|
|
96885
98666
|
cargo.status="Unknown"
|
|
@@ -96891,8 +98672,32 @@ self:_AddDisembarkCarriers(DisembarkCarriers,cargo.disembarkCarriers)
|
|
|
96891
98672
|
end
|
|
96892
98673
|
return cargo
|
|
96893
98674
|
end
|
|
98675
|
+
function OPSTRANSPORT:_CreateCargoStorage(StorageFrom,StorageTo,CargoType,CargoAmount,CargoWeight,TransportZoneCombo)
|
|
98676
|
+
local storage={}
|
|
98677
|
+
storage.storageFrom=StorageFrom
|
|
98678
|
+
storage.storageTo=StorageTo
|
|
98679
|
+
storage.cargoType=CargoType
|
|
98680
|
+
storage.cargoAmount=CargoAmount
|
|
98681
|
+
storage.cargoDelivered=0
|
|
98682
|
+
storage.cargoLost=0
|
|
98683
|
+
storage.cargoReserved=0
|
|
98684
|
+
storage.cargoLoaded=0
|
|
98685
|
+
storage.cargoWeight=CargoWeight or 1
|
|
98686
|
+
self.cargocounter=self.cargocounter+1
|
|
98687
|
+
local cargo={}
|
|
98688
|
+
cargo.uid=self.cargocounter
|
|
98689
|
+
cargo.type="STORAGE"
|
|
98690
|
+
cargo.opsgroup=nil
|
|
98691
|
+
cargo.storage=storage
|
|
98692
|
+
cargo.delivered=false
|
|
98693
|
+
cargo.status="Unknown"
|
|
98694
|
+
cargo.tzcUID=TransportZoneCombo
|
|
98695
|
+
cargo.disembarkZone=nil
|
|
98696
|
+
cargo.disembarkCarriers=nil
|
|
98697
|
+
return cargo
|
|
98698
|
+
end
|
|
96894
98699
|
function OPSTRANSPORT:_CountCargosInZone(Zone,Delivered,Carrier,TransportZoneCombo)
|
|
96895
|
-
local cargos=self:
|
|
98700
|
+
local cargos=self:GetCargos(TransportZoneCombo,Carrier,Delivered)
|
|
96896
98701
|
local function iscarrier(_cargo)
|
|
96897
98702
|
local cargo=_cargo
|
|
96898
98703
|
local mycarrier=cargo:_GetMyCarrierGroup()
|
|
@@ -96923,13 +98728,19 @@ end
|
|
|
96923
98728
|
local N=0
|
|
96924
98729
|
for _,_cargo in pairs(cargos)do
|
|
96925
98730
|
local cargo=_cargo
|
|
96926
|
-
local isNotCargo=
|
|
98731
|
+
local isNotCargo=true
|
|
98732
|
+
local isInZone=true
|
|
98733
|
+
local isInUtero=true
|
|
98734
|
+
if cargo.type==OPSTRANSPORT.CargoType.OPSGROUP then
|
|
98735
|
+
local opsgroup=cargo.opsgroup
|
|
98736
|
+
isNotCargo=opsgroup:IsNotCargo(true)
|
|
96927
98737
|
if not isNotCargo then
|
|
96928
|
-
isNotCargo=iscarrier(
|
|
98738
|
+
isNotCargo=iscarrier(opsgroup)
|
|
98739
|
+
end
|
|
98740
|
+
isInZone=opsgroup:IsInZone(Zone)
|
|
98741
|
+
isInUtero=opsgroup:IsInUtero()
|
|
98742
|
+
self:T(self.lid..string.format("Cargo=%s: notcargo=%s, iscarrier=%s inzone=%s, inutero=%s",opsgroup:GetName(),tostring(opsgroup:IsNotCargo(true)),tostring(iscarrier(opsgroup)),tostring(isInZone),tostring(isInUtero)))
|
|
96929
98743
|
end
|
|
96930
|
-
local isInZone=cargo:IsInZone(Zone)
|
|
96931
|
-
local isInUtero=cargo:IsInUtero()
|
|
96932
|
-
self:T(self.lid..string.format("Cargo=%s: notcargo=%s, iscarrier=%s inzone=%s, inutero=%s",cargo:GetName(),tostring(cargo:IsNotCargo(true)),tostring(iscarrier(cargo)),tostring(isInZone),tostring(isInUtero)))
|
|
96933
98744
|
if isNotCargo and(isInZone or isInUtero)then
|
|
96934
98745
|
N=N+1
|
|
96935
98746
|
end
|
|
@@ -100237,7 +102048,7 @@ PLAYERRECCE={
|
|
|
100237
102048
|
ClassName="PLAYERRECCE",
|
|
100238
102049
|
verbose=true,
|
|
100239
102050
|
lid=nil,
|
|
100240
|
-
version="0.0.
|
|
102051
|
+
version="0.0.18",
|
|
100241
102052
|
ViewZone={},
|
|
100242
102053
|
ViewZoneVisual={},
|
|
100243
102054
|
ViewZoneLaser={},
|
|
@@ -100746,6 +102557,7 @@ if self.ClientMenus[playername]then
|
|
|
100746
102557
|
self.ClientMenus[playername]:Remove()
|
|
100747
102558
|
self.ClientMenus[playername]=nil
|
|
100748
102559
|
end
|
|
102560
|
+
self:_BuildMenus()
|
|
100749
102561
|
return self
|
|
100750
102562
|
end
|
|
100751
102563
|
function PLAYERRECCE:_SwitchOnStation(client,group,playername)
|
|
@@ -100761,6 +102573,7 @@ if self.ClientMenus[playername]then
|
|
|
100761
102573
|
self.ClientMenus[playername]:Remove()
|
|
100762
102574
|
self.ClientMenus[playername]=nil
|
|
100763
102575
|
end
|
|
102576
|
+
self:_BuildMenus(client)
|
|
100764
102577
|
return self
|
|
100765
102578
|
end
|
|
100766
102579
|
function PLAYERRECCE:_SwitchSmoke(client,group,playername)
|
|
@@ -100776,6 +102589,7 @@ if self.ClientMenus[playername]then
|
|
|
100776
102589
|
self.ClientMenus[playername]:Remove()
|
|
100777
102590
|
self.ClientMenus[playername]=nil
|
|
100778
102591
|
end
|
|
102592
|
+
self:_BuildMenus(client)
|
|
100779
102593
|
return self
|
|
100780
102594
|
end
|
|
100781
102595
|
function PLAYERRECCE:_SwitchLasing(client,group,playername)
|
|
@@ -100791,6 +102605,7 @@ if self.ClientMenus[playername]then
|
|
|
100791
102605
|
self.ClientMenus[playername]:Remove()
|
|
100792
102606
|
self.ClientMenus[playername]=nil
|
|
100793
102607
|
end
|
|
102608
|
+
self:_BuildMenus(client)
|
|
100794
102609
|
return self
|
|
100795
102610
|
end
|
|
100796
102611
|
function PLAYERRECCE:_SwitchLasingDist(client,group,playername,mindist,maxdist)
|
|
@@ -100811,6 +102626,7 @@ if self.ClientMenus[playername]then
|
|
|
100811
102626
|
self.ClientMenus[playername]:Remove()
|
|
100812
102627
|
self.ClientMenus[playername]=nil
|
|
100813
102628
|
end
|
|
102629
|
+
self:_BuildMenus(client)
|
|
100814
102630
|
return self
|
|
100815
102631
|
end
|
|
100816
102632
|
function PLAYERRECCE:_WIP(client,group,playername)
|
|
@@ -100824,6 +102640,8 @@ local visualset=self:_GetTargetSet(client,false)
|
|
|
100824
102640
|
cameraset:AddSet(visualset)
|
|
100825
102641
|
if cameraset:CountAlive()>0 then
|
|
100826
102642
|
self:__TargetsSmoked(-1,client,playername,cameraset)
|
|
102643
|
+
else
|
|
102644
|
+
return self
|
|
100827
102645
|
end
|
|
100828
102646
|
local highsmoke=self.SmokeColor.highsmoke
|
|
100829
102647
|
local medsmoke=self.SmokeColor.medsmoke
|
|
@@ -100918,7 +102736,7 @@ local targetset,number=self:_GetTargetSet(client,true,true)
|
|
|
100918
102736
|
if number>0 and self.AutoLase[playername]then
|
|
100919
102737
|
local Settings=(client and _DATABASE:GetPlayerSettings(playername))or _SETTINGS
|
|
100920
102738
|
local target=self:_GetHVTTarget(targetset)
|
|
100921
|
-
local ThreatLevel=target:GetThreatLevel()
|
|
102739
|
+
local ThreatLevel=target:GetThreatLevel()or 1
|
|
100922
102740
|
local ThreatLevelText="high"
|
|
100923
102741
|
if ThreatLevel>3 and ThreatLevel<8 then
|
|
100924
102742
|
ThreatLevelText="medium"
|
|
@@ -100928,7 +102746,7 @@ end
|
|
|
100928
102746
|
local ThreatGraph="["..string.rep("■",ThreatLevel)..string.rep("□",10-ThreatLevel).."]: "..ThreatLevel
|
|
100929
102747
|
local report=REPORT:New("Lasing Report")
|
|
100930
102748
|
report:Add(string.rep("-",15))
|
|
100931
|
-
report:Add("Target type: "..target:GetTypeName())
|
|
102749
|
+
report:Add("Target type: "..target:GetTypeName()or"unknown")
|
|
100932
102750
|
report:Add("Threat Level: "..ThreatGraph.." ("..ThreatLevelText..")")
|
|
100933
102751
|
if not self.ReferencePoint then
|
|
100934
102752
|
report:Add("Location: "..client:GetCoordinate():ToStringBULLS(self.Coalition,Settings))
|
|
@@ -100938,14 +102756,14 @@ end
|
|
|
100938
102756
|
report:Add("Laser Code: "..self.UnitLaserCodes[playername]or 1688)
|
|
100939
102757
|
report:Add(string.rep("-",15))
|
|
100940
102758
|
local text=report:Text()
|
|
100941
|
-
self:__TargetReport(
|
|
102759
|
+
self:__TargetReport(1,client,targetset,target,text)
|
|
100942
102760
|
else
|
|
100943
102761
|
local report=REPORT:New("Lasing Report")
|
|
100944
102762
|
report:Add(string.rep("-",15))
|
|
100945
102763
|
report:Add("N O T A R G E T S")
|
|
100946
102764
|
report:Add(string.rep("-",15))
|
|
100947
102765
|
local text=report:Text()
|
|
100948
|
-
self:__TargetReport(
|
|
102766
|
+
self:__TargetReport(1,client,nil,nil,text)
|
|
100949
102767
|
end
|
|
100950
102768
|
return self
|
|
100951
102769
|
end
|
|
@@ -100973,21 +102791,22 @@ report:Add("Location: "..client:GetCoordinate():ToStringFromRPShort(self.Referen
|
|
|
100973
102791
|
end
|
|
100974
102792
|
report:Add(string.rep("-",15))
|
|
100975
102793
|
local text=report:Text()
|
|
100976
|
-
self:__TargetReport(
|
|
102794
|
+
self:__TargetReport(1,client,targetset,nil,text)
|
|
100977
102795
|
else
|
|
100978
102796
|
local report=REPORT:New("Target Report")
|
|
100979
102797
|
report:Add(string.rep("-",15))
|
|
100980
102798
|
report:Add("N O T A R G E T S")
|
|
100981
102799
|
report:Add(string.rep("-",15))
|
|
100982
102800
|
local text=report:Text()
|
|
100983
|
-
self:__TargetReport(
|
|
102801
|
+
self:__TargetReport(1,client,nil,nil,text)
|
|
100984
102802
|
end
|
|
100985
102803
|
return self
|
|
100986
102804
|
end
|
|
100987
|
-
function PLAYERRECCE:_BuildMenus()
|
|
102805
|
+
function PLAYERRECCE:_BuildMenus(Client)
|
|
100988
102806
|
self:T(self.lid.."_BuildMenus")
|
|
100989
102807
|
local clients=self.PlayerSet
|
|
100990
102808
|
local clientset=clients:GetSetObjects()
|
|
102809
|
+
if Client then clientset={Client}end
|
|
100991
102810
|
for _,_client in pairs(clientset)do
|
|
100992
102811
|
local client=_client
|
|
100993
102812
|
if client and client:IsAlive()then
|
|
@@ -100995,7 +102814,7 @@ local playername=client:GetPlayerName()
|
|
|
100995
102814
|
if not self.UnitLaserCodes[playername]then
|
|
100996
102815
|
self:_SetClientLaserCode(nil,nil,playername,1688)
|
|
100997
102816
|
end
|
|
100998
|
-
if
|
|
102817
|
+
if self.SmokeOwn[playername]==nil then
|
|
100999
102818
|
self.SmokeOwn[playername]=self.smokeownposition
|
|
101000
102819
|
end
|
|
101001
102820
|
local group=client:GetGroup()
|
|
@@ -101582,7 +103401,7 @@ MESSAGE:New(Text,45,self.Name or"FACA"):ToClient(Client)
|
|
|
101582
103401
|
if self.AttackSet then
|
|
101583
103402
|
for _,_client in pairs(self.AttackSet.Set)do
|
|
101584
103403
|
local client=_client
|
|
101585
|
-
if client and client:IsAlive()then
|
|
103404
|
+
if client and client:IsAlive()and client~=Client then
|
|
101586
103405
|
MESSAGE:New(Text,45,self.Name or"FACA"):ToClient(client)
|
|
101587
103406
|
end
|
|
101588
103407
|
end
|
|
@@ -113464,6 +115283,16 @@ self:T("MSRS execute VBS command="..runvbs)
|
|
|
113464
115283
|
res=os.execute(runvbs)
|
|
113465
115284
|
timer.scheduleFunction(os.remove,filename,timer.getTime()+1)
|
|
113466
115285
|
timer.scheduleFunction(os.remove,filenvbs,timer.getTime()+1)
|
|
115286
|
+
elseif false then
|
|
115287
|
+
local filenvbs=os.getenv('TMP').."\\MSRS-"..STTS.uuid()..".vbs"
|
|
115288
|
+
local script=io.open(filenvbs,"w+")
|
|
115289
|
+
script:write(string.format('Set oShell = CreateObject ("Wscript.Shell")\n'))
|
|
115290
|
+
script:write(string.format('Dim strArgs\n'))
|
|
115291
|
+
script:write(string.format('strArgs = "cmd /c %s"\n',filename))
|
|
115292
|
+
script:write(string.format('oShell.Run strArgs, 0, false'))
|
|
115293
|
+
script:close()
|
|
115294
|
+
local runvbs=string.format('cscript.exe //Nologo //B "%s"',filenvbs)
|
|
115295
|
+
res=os.execute(runvbs)
|
|
113467
115296
|
else
|
|
113468
115297
|
self:T("MSRS execute command="..command)
|
|
113469
115298
|
res=os.execute(command)
|