Mitharg

IT´S OVER 9000

May 13th, 2021
650
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --[[
  2. ██╗████████╗███████╗     ██████╗ ██╗   ██╗███████╗██████╗                                          
  3. ██║╚══██╔══╝██╔════╝    ██╔═══██╗██║   ██║██╔════╝██╔══██╗                                          
  4. ██║   ██║   ███████╗    ██║   ██║██║   ██║█████╗  ██████╔╝                                          
  5. ██║   ██║   ╚════██║    ██║   ██║╚██╗ ██╔╝██╔══╝  ██╔══██╗                                          
  6. ██║   ██║   ███████║    ╚██████╔╝ ╚████╔╝ ███████╗██║  ██║                                          
  7. ╚═╝   ╚═╝   ╚══════╝     ╚═════╝   ╚═══╝  ╚══════╝╚═╝  ╚═╝                                          
  8.                                                                                                    
  9.  █████╗  ██████╗  ██████╗  ██████╗ ██╗██╗██╗                                                        
  10. ██╔══██╗██╔═████╗██╔═████╗██╔═████╗██║██║██║                                                        
  11. ╚██████║██║██╔██║██║██╔██║██║██╔██║██║██║██║                                                        
  12.  ╚═══██║████╔╝██║████╔╝██║████╔╝██║╚═╝╚═╝╚═╝                                                        
  13.  █████╔╝╚██████╔╝╚██████╔╝╚██████╔╝██╗██╗██╗                                                        
  14.  ╚════╝  ╚═════╝  ╚═════╝  ╚═════╝ ╚═╝╚═╝╚═╝                                                        
  15.                                                                                                    
  16. ██████╗  █████╗ ███╗   ███╗ █████╗  ██████╗ ███████╗    ███████╗ ██████╗██████╗ ██╗██████╗ ████████╗
  17. ██╔══██╗██╔══██╗████╗ ████║██╔══██╗██╔════╝ ██╔════╝    ██╔════╝██╔════╝██╔══██╗██║██╔══██╗╚══██╔══╝
  18. ██║  ██║███████║██╔████╔██║███████║██║  ███╗█████╗      ███████╗██║     ██████╔╝██║██████╔╝   ██║  
  19. ██║  ██║██╔══██║██║╚██╔╝██║██╔══██║██║   ██║██╔══╝      ╚════██║██║     ██╔══██╗██║██╔═══╝    ██║  
  20. ██████╔╝██║  ██║██║ ╚═╝ ██║██║  ██║╚██████╔╝███████╗    ███████║╚██████╗██║  ██║██║██║        ██║  
  21. ╚═════╝ ╚═╝  ╚═╝╚═╝     ╚═╝╚═╝  ╚═╝ ╚═════╝ ╚══════╝    ╚══════╝ ╚═════╝╚═╝  ╚═╝╚═╝╚═╝        ╚═╝  
  22.                                                                                                    
  23. ██████╗ ██╗   ██╗                                                                                  
  24. ██╔══██╗╚██╗ ██╔╝                                                                                  
  25. ██████╔╝ ╚████╔╝                                                                                    
  26. ██╔══██╗  ╚██╔╝                                                                                    
  27. ██████╔╝   ██║                                                                                      
  28. ╚═════╝    ╚═╝                                                                                      
  29.                                                                                                    
  30. ███╗   ███╗██╗████████╗██╗  ██╗            █████╗ ██████╗  ██████╗                                  
  31. ████╗ ████║██║╚══██╔══╝██║  ██║           ██╔══██╗██╔══██╗██╔════╝                                  
  32. ██╔████╔██║██║   ██║   ███████║           ███████║██████╔╝██║  ███╗                                
  33. ██║╚██╔╝██║██║   ██║   ██╔══██║           ██╔══██║██╔══██╗██║   ██║                                
  34. ██║ ╚═╝ ██║██║   ██║   ██║  ██║    ██╗    ██║  ██║██║  ██║╚██████╔╝                                
  35. ╚═╝     ╚═╝╚═╝   ╚═╝   ╚═╝  ╚═╝    ╚═╝    ╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝                                  
  36.                                                                                                    
  37. --]]
  38. MAIN = {
  39.     MISSION = {
  40.         Missile = {},
  41.         EnBlast = {}
  42.     }
  43. }
  44.  
  45. ACFT = SET_GROUP:New():FilterCoalitions('blue'):FilterStart()
  46.  
  47. function FX_EXPLOSION(Coordinate, Radius, Power)
  48.     trigger.action.explosion(
  49.         {
  50.             x = Coordinate.x + math.random(5, Radius),
  51.             y = Coordinate.y + math.random(-5, Radius),
  52.             z = Coordinate.z + math.random(5, Radius)
  53.         },
  54.         Power
  55.     )
  56. end
  57.  
  58. EVT = BASE:New()
  59. function EVT:OnEventShot(Data)
  60.     ACFT:FilterOnce()
  61.     local INI = Data.IniUnit
  62.     local ORD = Data.Weapon
  63.     local OrdName = ORD:getName()
  64.     local OrdDesc = ORD:getDesc()
  65.     local OrdType = OrdDesc['category']
  66.     if OrdType == 1 then --missiles
  67.         local Table = MAIN.MISSION.EnBlast
  68.         Table[OrdName] = {}
  69.         Table[OrdName].TypeName = ORD:getTypeName()
  70.         Table[OrdName].OrdPos = nil
  71.         Table[OrdName].Sched =
  72.             SCHEDULER:New(
  73.             nil,
  74.             function()
  75.                 if ORD:isExist() then
  76.                     Table[OrdName].OrdPos = COORDINATE:NewFromVec3(ORD:getPoint())
  77.                 else
  78.                     Table[OrdName].Sched:Clear()
  79.                     Table[OrdName].Sched = nil
  80.                     local Coord = Table[OrdName].OrdPos
  81.                     if
  82.                         string.find(Table[OrdName].TypeName, '_65') ~= nil or
  83.                             string.find(Table[OrdName].TypeName, '_75T') ~= nil or
  84.                             string.find(Table[OrdName].TypeName, 'LAU-61') ~= nil or
  85.                             string.find(Table[OrdName].TypeName, 'LAU-68') ~= nil or
  86.                             string.find(Table[OrdName].TypeName, 'B-13') ~= nil or
  87.                             string.find(Table[OrdName].TypeName, 'B-8V20A') ~= nil or
  88.                             string.find(Table[OrdName].TypeName, 'AGM-114') ~= nil or
  89.                             string.find(Table[OrdName].TypeName, '_Sidearm') ~= nil or
  90.                             string.find(Table[OrdName].TypeName, '_Vikhr') ~= nil or
  91.                             string.find(Table[OrdName].TypeName, 'Kh_31') ~= nil or
  92.                             string.find(Table[OrdName].TypeName, 'Kh-31') ~= nil or
  93.                             string.find(Table[OrdName].TypeName, '_88') ~= nil
  94.                      then
  95.                         for Angle = 000, 359, 60 do
  96.                             for Radius = 10, 10, 10 do
  97.                                 local Translate = Coord:Translate(Radius, Angle)
  98.                                 FX_EXPLOSION(Translate, Radius, 350)
  99.                             end
  100.                         end
  101.                     elseif
  102.                         string.find(Table[OrdName].TypeName, '_62') ~= nil or
  103.                             string.find(Table[OrdName].TypeName, 'Kh_25') ~= nil or
  104.                             string.find(Table[OrdName].TypeName, 'C-701T') ~= nil or
  105.                             string.find(Table[OrdName].TypeName, 'C-701IR') ~= nil or
  106.                             string.find(Table[OrdName].TypeName, '_LD-10') ~= nil or
  107.                             string.find(Table[OrdName].TypeName, 'Mistral') ~= nil
  108.                      then
  109.                         for Angle = 000, 359, 60 do
  110.                             for Radius = 10, 20, 10 do
  111.                                 local Translate = Coord:Translate(Radius, Angle)
  112.                                 FX_EXPLOSION(Translate, Radius, 750)
  113.                             end
  114.                         end
  115.                     elseif
  116.                         string.find(Table[OrdName].TypeName, '_84') ~= nil or
  117.                             string.find(Table[OrdName].TypeName, '_15F') ~= nil or
  118.                             string.find(Table[OrdName].TypeName, '802AK') ~= nil or
  119.                             string.find(Table[OrdName].TypeName, '802AKG') ~= nil or
  120.                             string.find(Table[OrdName].TypeName, '_LS_6_500') ~= nil or
  121.                             string.find(Table[OrdName].TypeName, '_04E') ~= nil
  122.                      then
  123.                         for Angle = 000, 359, 60 do
  124.                             for Radius = 10, 30, 10 do
  125.                                 local Translate = Coord:Translate(Radius, Angle)
  126.                                 FX_EXPLOSION(Translate, Radius, 1000)
  127.                             end
  128.                         end
  129.                     end
  130.                     Table[OrdName].OrdPos = nil
  131.                     Table[OrdName] = nil
  132.                 end
  133.             end,
  134.             {},
  135.             1,
  136.             .01,
  137.             nil,
  138.             nil
  139.         )
  140.     elseif OrdType == 3 then --bombs
  141.         local Table = MAIN.MISSION.EnBlast
  142.         Table[OrdName] = {}
  143.         Table[OrdName].TypeName = ORD:getTypeName()
  144.         Table[OrdName].OrdPos = nil
  145.         Table[OrdName].Sched =
  146.             SCHEDULER:New(
  147.             nil,
  148.             function()
  149.                 if ORD:isExist() then
  150.                     Table[OrdName].OrdPos = COORDINATE:NewFromVec3(ORD:getPoint())
  151.                 else
  152.                     Table[OrdName].Sched:Clear()
  153.                     Table[OrdName].Sched = nil
  154.                     local Coord = Table[OrdName].OrdPos
  155.                     if
  156.                         string.find(Table[OrdName].TypeName, '_82') ~= nil or
  157.                             string.find(Table[OrdName].TypeName, '_97') ~= nil or
  158.                             string.find(Table[OrdName].TypeName, '_250') ~= nil or
  159.                             string.find(Table[OrdName].TypeName, '_250_24') ~= nil or
  160.                             string.find(Table[OrdName].TypeName, '_250_33') ~= nil or
  161.                             string.find(Table[OrdName].TypeName, '_250_M54') ~= nil or
  162.                             string.find(Table[OrdName].TypeName, '_250_M54_TU') ~= nil or
  163.                             string.find(Table[OrdName].TypeName, '_38') ~= nil or
  164.                             string.find(Table[OrdName].TypeName, '_GBU_12') ~= nil or
  165.                             string.find(Table[OrdName].TypeName, '_12') ~= nil
  166.                      then
  167.                         for Angle = 000, 359, 60 do
  168.                             for Radius = 3, 3, 3 do
  169.                                 local Translate = Coord:Translate(Radius, Angle)
  170.                                 FX_EXPLOSION(Translate, Radius, 500)
  171.                             end
  172.                         end
  173.                     elseif
  174.                         string.find(Table[OrdName].TypeName, '_83') ~= nil or
  175.                             string.find(Table[OrdName].TypeName, '_500') ~= nil or
  176.                             string.find(Table[OrdName].TypeName, '_500_12') ~= nil or
  177.                             string.find(Table[OrdName].TypeName, '_500_33') ~= nil or
  178.                             string.find(Table[OrdName].TypeName, '_500_6') ~= nil or
  179.                             string.find(Table[OrdName].TypeName, '_500_M54') ~= nil or
  180.                             string.find(Table[OrdName].TypeName, '_500_M54_TU') ~= nil or
  181.                             string.find(Table[OrdName].TypeName, '_500_M62') ~= nil or
  182.                             string.find(Table[OrdName].TypeName, '_500_SL') ~= nil or
  183.                             string.find(Table[OrdName].TypeName, '_500_TA') ~= nil or
  184.                             string.find(Table[OrdName].TypeName, '_16') ~= nil
  185.                      then
  186.                         for Angle = 000, 359, 60 do
  187.                             for Radius = 5, 10, 5 do
  188.                                 local Translate = Coord:Translate(Radius, Angle)
  189.                                 FX_EXPLOSION(Translate, Radius, 750)
  190.                             end
  191.                         end
  192.                     elseif
  193.                         string.find(Table[OrdName].TypeName, '_84') ~= nil or
  194.                             string.find(Table[OrdName].TypeName, '_31') ~= nil or
  195.                             string.find(Table[OrdName].TypeName, '_24') ~= nil or
  196.                             string.find(Table[OrdName].TypeName, '_27') ~= nil or
  197.                             string.find(Table[OrdName].TypeName, '_28') ~= nil or
  198.                             string.find(Table[OrdName].TypeName, '_10') ~= nil
  199.                      then
  200.                         for Angle = 000, 359, 60 do
  201.                             for Radius = 10, 15, 10 do
  202.                                 local Translate = Coord:Translate(Radius, Angle)
  203.                                 FX_EXPLOSION(Translate, Radius, 1000)
  204.                             end
  205.                         end
  206.                     end
  207.                     Table[OrdName].OrdPos = nil
  208.                     Table[OrdName] = nil
  209.                 end
  210.             end,
  211.             {},
  212.             1,
  213.             .01,
  214.             nil,
  215.             nil
  216.         )
  217.     elseif OrdType == 2 then --rockets
  218.         local Table = MAIN.MISSION.EnBlast
  219.         Table[OrdName] = {}
  220.         Table[OrdName].TypeName = ORD:getTypeName()
  221.         Table[OrdName].OrdPos = nil
  222.         Table[OrdName].Sched =
  223.             SCHEDULER:New(
  224.             nil,
  225.             function()
  226.                 if ORD:isExist() then
  227.                     Table[OrdName].OrdPos = COORDINATE:NewFromVec3(ORD:getPoint())
  228.                 else
  229.                     Table[OrdName].Sched:Clear()
  230.                     Table[OrdName].Sched = nil
  231.                     local Coord = Table[OrdName].OrdPos
  232.                     if
  233.                         string.find(Table[OrdName].TypeName, '8V20A') ~= nil or
  234.                             string.find(Table[OrdName].TypeName, '_250') ~= nil or
  235.                             string.find(Table[OrdName].TypeName, '_250_24') ~= nil or
  236.                             string.find(Table[OrdName].TypeName, '_250_33') ~= nil or
  237.                             string.find(Table[OrdName].TypeName, '_250_M54') ~= nil or
  238.                             string.find(Table[OrdName].TypeName, '_250_M54_TU') ~= nil or
  239.                             string.find(Table[OrdName].TypeName, 'Mk1_HE') ~= nil or
  240.                             string.find(Table[OrdName].TypeName, 'Mk5_HEAT') ~= nil or
  241.                             string.find(Table[OrdName].TypeName, 'S_24A') ~= nil or
  242.                             string.find(Table[OrdName].TypeName, 'S_24B') ~= nil or
  243.                             string.find(Table[OrdName].TypeName, '_16UM') ~= nil or
  244.                             string.find(Table[OrdName].TypeName, '_32M') ~= nil or
  245.                             string.find(Table[OrdName].TypeName, '_8KOM') ~= nil or
  246.                             string.find(Table[OrdName].TypeName, '_8OFP2') ~= nil or
  247.                             string.find(Table[OrdName].TypeName, '_8TsM') ~= nil or
  248.                             string.find(Table[OrdName].TypeName, 'UB_32') ~= nil
  249.                      then
  250.                         for Angle = 000, 359, 60 do
  251.                             for Radius = 10, 10, 10 do
  252.                                 local Translate = Coord:Translate(Radius, Angle)
  253.                                 FX_EXPLOSION(Translate, Radius, 150)
  254.                             end
  255.                         end
  256.                     elseif
  257.                         string.find(Table[OrdName].TypeName, '13_OF') ~= nil or
  258.                             string.find(Table[OrdName].TypeName, '_M151') ~= nil or
  259.                             string.find(Table[OrdName].TypeName, '_M156') ~= nil or
  260.                             string.find(Table[OrdName].TypeName, '_M257') ~= nil or
  261.                             string.find(Table[OrdName].TypeName, '_M274') ~= nil or
  262.                             string.find(Table[OrdName].TypeName, '_MK5') ~= nil or
  263.                             string.find(Table[OrdName].TypeName, '_BRM1_90') ~= nil or
  264.                             string.find(Table[OrdName].TypeName, '_M151') ~= nil or
  265.                             string.find(Table[OrdName].TypeName, '_WP61') ~= nil or
  266.                             string.find(Table[OrdName].TypeName, '_WTU1B') ~= nil or
  267.                             string.find(Table[OrdName].TypeName, '_MK_71') ~= nil or
  268.                             string.find(Table[OrdName].TypeName, '_M70B') ~= nil or
  269.                             string.find(Table[OrdName].TypeName, 'Matra_Type_155_Rocket_Pod') ~= nil or
  270.                             string.find(Table[OrdName].TypeName, '_57K') ~= nil or
  271.                             string.find(Table[OrdName].TypeName, '25_OFM') ~= nil
  272.                      then
  273.                         for Angle = 000, 359, 60 do
  274.                             for Radius = 10, 10, 10 do
  275.                                 local Translate = Coord:Translate(Radius, Angle)
  276.                                 FX_EXPLOSION(Translate, Radius, 200)
  277.                             end
  278.                         end
  279.                     end
  280.                     Table[OrdName].OrdPos = nil
  281.                     Table[OrdName] = nil
  282.                 end
  283.             end,
  284.             {},
  285.             1,
  286.             .01,
  287.             nil,
  288.             nil
  289.         )
  290.     end
  291. end
  292. EVT:HandleEvent(EVENTS.Shot)
  293.  
  294. env.info("DAMAGE IT´S OVER 9000!!!!!!!!!!!!!!!!!!!!!!!!")
  295. --FIN---------------------------------------------------------------------------------------------------------------------------------------------------------------
  296.  
RAW Paste Data