---------------------------------------------------
-- !airstrike
---------------------------------------------------
function AEGIS.chatCommands.airstrike:func(player, chatMsg)
if(player:IsDead()) then return end
if(player.actor:GetSpectatorMode()~=0) then return end
if(AirStrike) then XSendChatToTarget(nil, player, "AIR-SUPPORT : You must WAIT [ 10 ] MINUTES to call another airstrike!"); return end
local Points = g_gameRules:GetPlayerPP(player.id)
if (Points < 1000) then XSendChatToTarget(nil, player, "AIR-SUPPORT : COMMAND requires [ 1000 ] PRESTIGE POINTS!"); return else
g_gameRules:AwardPPCount(player.id, -1000); end
local Rank = g_gameRules:GetPlayerRank(player.id); if (Rank < 6) then XSendChatToTarget(nil, player, "AIR-SUPPORT : Rank must be MAJOR or above to command an airstrike!"); return end
---------------
-- CHANGE ME --
---------------
local spread = 0; -- extra positioning between bombs 0 is default, 30 is good
local damage = 350; -- power of explosions, set to anything you like, its the radius which is key here
local radius = 20; -- bomb/damage containment area, the bigger the number the larger the killzone
local angle = 45; -- not that important
local pressure = 1000; -- physics interactions?, try 10000 :)
local holesize = 2; -- not that important
local scalesmall = 0.2;
local scalemedium = 0.5;
local scalefull = 1;
local explosion1 = "explosions.warrior.collision_deck2"; -- sound, debris, short explosion
local explosion2 = "explosions.grenade_air.explosion"; -- loud sound, lots of debris, long explosion
local explosion3 = "explosions.train_destroy.small"; -- loud sound, lots of debris, long explosion
local explosion4 = "explosions.jet_explosion.one_shot"; -- loud sound, lots of debris, long explosion
local explosion5 = "explosions.tank_explosion.chinese_tank"; -- sound, lots of smoke and debris, good effect
local explosion6 = "explosions.helicopter_explosion.a"; -- sound, lots of debris, long explosion
local explosion7 = "explosions.mine_explosion.hunter_reveal"; -- slient, great explosion, lots of debris
local explosion8 = "explosions.AA_TracerFire2.Large"; -- base protection effect
---------------
-- CHANGE ME --
---------------
Script.SetTimer( 01,function() AirStrike = true; local teamId = g_gameRules.game:GetTeam(player.id); if ( teamId == 2 ) then beaconpos = {x=2559.92, y=2484.35, z=58.1208}; AApos = {x=2550.85, y=2427.21, z=75.500}; Base = "NK";
----------------------------
-- NK BASE BOMB POSITIONS --
----------------------------
bombpos1 = {x=2575.65 + spread, y=2497.64 - spread, z=58.1149}; bombpos2 = {x=2614.58 - spread, y=2432.13 + spread, z=60.1869}; bombpos3 = {x=2585.42 + spread, y=2482.99 - spread, z=58.1483}; bombpos4 = {x=2575.27 - spread, y=2499.05 + spread, z=58.1207}; bombpos5 = {x=2549.85 + spread, y=2477.28 - spread, z=58.1515}; bombpos6 = {x=2543.13 - spread, y=2510.67 + spread, z=58.1384}; bombpos7 = {x=2519.77 + spread, y=2523.18 - spread, z=58.1391}; bombpos8 = {x=2548.81 - spread, y=2487.69 + spread, z=58.123}; bombpos9 = {x=2607.99 + spread, y=2448.11 - spread, z=61.5353}; bombpos10 = {x=2628.91 - spread, y=2423.79 + spread, z=60.0091}; bombpos11 = {x=2579.47 + spread, y=2447.51 - spread, z=58.0613}; bombpos12 = {x=2527.97 - spread, y=2477.7 + spread, z=58.153}; bombpos13 = {x=2526.38 + spread, y=2499.2 - spread, z=58.1181}; bombpos14 = {x=2583.1 - spread, y=2498.63 + spread, z=58.1521}; bombpos15 = {x=2560.56 + spread, y=2479.52 - spread, z=58.1532}; bombpos16 = {x=2578.33 - spread, y=2465.85 + spread, z=58.058}; bombpos17 = {x=2545.53 + spread, y=2518.43 - spread, z=58.1522}; bombpos18 = {x=2524.84 - spread, y=2490.01 + spread, z=58.1479}; bombpos19 = {x=2553.32 + spread, y=2453.68 - spread, z=58.147}; bombpos20 = {x=2601.94 - spread, y=2412.4 + spread, z=59.8022}; bombpos21 = {x=2623.03 + spread, y=2434 - spread, z=60.0099}; bombpos22 = {x=2556.63 - spread, y=2502.82 + spread, z=58.1521}; bombpos23 = {x=2512.7 + spread, y=2464.33 - spread, z=58.0997}; bombpos24 = {x=2574.12 - spread, y=2494.24 + spread, z=58.0657}; bombpos25 = {x=2565.15 + spread, y=2470.03 - spread, z=58.1562}; bombpos26 = {x=2547.1 - spread, y=2488.1 + spread, z=58.1285}; bombpos27 = {x=2529.81 + spread, y=2527.45 - spread, z=58.1496}; bombpos28 = {x=2570.98 - spread, y=2481 + spread, z=58.1067}; bombpos29 = {x=2523.98 + spread, y=2477.12 - spread, z=58.1489}; bombpos30 = {x=2579.44 - spread, y=2450.39 + spread, z=58.0564}; else beaconpos = {x=1549.05, y=1749.3, z=79.2328}; AApos = {x=1474.58, y=1710.99, z=96.500}; Base = "US";
----------------------------
-- US BASE BOMB POSITIONS --
----------------------------
bombpos1 = {x=1541.64 + spread, y=1783.25 - spread, z=79.2284}; bombpos2 = {x=1526.57 - spread, y=1773.48 + spread, z=79.2278}; bombpos3 = {x=1540.09 + spread, y=1796.86 - spread, z=79.2286}; bombpos4 = {x=1607.07 - spread, y=1735.42 + spread, z=81.1514}; bombpos5 = {x=1624.43 + spread, y=1713.22 - spread, z=79.2299}; bombpos6 = {x=1591.2 - spread, y=1759.63 + spread, z=79.5858}; bombpos7 = {x=1575.64 + spread, y=1748.64 - spread, z=79.2278}; bombpos8 = {x=1561.9 - spread, y=1734.96 + spread, z=79.2227}; bombpos9 = {x=1581.2 + spread, y=1714.91 - spread, z=79.2281}; bombpos10 = {x=1559.56 - spread, y=1713.8 + spread, z=79.2314}; bombpos11 = {x=1546.46 + spread, y=1738.54 - spread, z=79.233}; bombpos12 = {x=1557.75 - spread, y=1747.32 + spread, z=79.2249}; bombpos13 = {x=1535.55 + spread, y=1763.3 - spread, z=79.2363}; bombpos14 = {x=1521.28 - spread, y=1767.84 + spread, z=79.2322}; bombpos15 = {x=1554.4 + spread, y=1769.59 - spread, z=79.2299}; bombpos16 = {x=1593.62 - spread, y=1744.3 + spread, z=81.014}; bombpos17 = {x=1597.4 + spread, y=1719.34 - spread, z=82.6717}; bombpos18 = {x=1585.59 - spread, y=1732.69 + spread, z=82.6786}; bombpos19 = {x=1516.95 + spread, y=1779.26 - spread, z=79.2294}; bombpos20 = {x=1534.18 - spread, y=1796.31 + spread, z=79.2305}; bombpos21 = {x=1558.53 + spread, y=1731.53 - spread, z=79.2315}; bombpos22 = {x=1550.79 - spread, y=1780.86 + spread, z=79.2268}; bombpos23 = {x=1568.9 + spread, y=1757.39 - spread, z=79.231}; bombpos24 = {x=1610.31 - spread, y=1732.59 + spread, z=81.1539}; bombpos25 = {x=1629.43 + spread, y=1715.83 - spread, z=79.227}; bombpos26 = {x=1556.94 - spread, y=1759.51 + spread, z=79.263}; bombpos27 = {x=1551.33 + spread, y=1810.89 - spread, z=79.2272}; bombpos28 = {x=1556.22 - spread, y=1794.63 + spread, z=79.2263}; bombpos29 = {x=1579.15 + spread, y=1790.37 - spread, z=79.2282}; bombpos30 = {x=1602.75 - spread, y=1779.17 + spread, z=79.233}; end end);
-----------
-- START --
-----------
Script.SetTimer( 02,function() g_gameRules:CreateExplosion(player.id,SIGNAL,0,bea conpos,g_Vectors.up,1,1,1,1,"explosions.flare.nigh t_time_selfillum",1, 1, 1, 1); g_gameRules:CreateExplosion(player.id,TRACER,0,AAp os,g_Vectors.up,1,1,1,1,explosion8,scalefull, scalefull, scalefull, scalefull); XSendChatToTarget(nil, player, "AIR-SUPPORT // TARGET SIGNAL LOCATED [ %s BASE ] ::: LOCKED ON!", Base); end);
Script.SetTimer( 1000,function() XSendBigCenterMessageToPlayer(player,"<font color=\"#FFFFFF\">[ </font><font color=\"#ff2525\">AIR-STRIKE</font><font color=\"#FFFFFF\"> ] : : INBOUND : : [<font color=\"#ffd800\"> 05 </font>]<font color=\"#FFFFFF\"> SECONDS TO TARGET</font>"); end);
Script.SetTimer( 2000,function() XSendBigCenterMessageToPlayer(player,"<font color=\"#FFFFFF\">[ </font><font color=\"#ff2525\">AIR-STRIKE</font><font color=\"#FFFFFF\"> ] : : INBOUND : : [<font color=\"#ffd800\"> 04 </font>]<font color=\"#FFFFFF\"> SECONDS TO TARGET</font>"); end);
Script.SetTimer( 3000,function() XSendBigCenterMessageToPlayer(player,"<font color=\"#FFFFFF\">[ </font><font color=\"#ff2525\">AIR-STRIKE</font><font color=\"#FFFFFF\"> ] : : INBOUND : : [<font color=\"#ffd800\"> 03 </font>]<font color=\"#FFFFFF\"> SECONDS TO TARGET</font>"); end);
Script.SetTimer( 4000,function() XSendBigCenterMessageToPlayer(player,"<font color=\"#FFFFFF\">[ </font><font color=\"#ff2525\">AIR-STRIKE</font><font color=\"#FFFFFF\"> ] : : INBOUND : : [<font color=\"#ffd800\"> 02 </font>]<font color=\"#FFFFFF\"> SECONDS TO TARGET</font>"); end);
Script.SetTimer( 5000,function() XSendBigCenterMessageToPlayer(player,"<font color=\"#FFFFFF\">[ </font><font color=\"#ff2525\">AIR-STRIKE</font><font color=\"#FFFFFF\"> ] : : INBOUND : : [<font color=\"#ffd800\"> 01 </font>]<font color=\"#FFFFFF\"> SECONDS TO TARGET</font>"); end);
Script.SetTimer( 6000,function() XSendBigCenterMessageToPlayer(player," "); end); --clearscreen
----------------
-- BOMBS AWAY --
----------------
Script.SetTimer( 6500,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos1,g_Vectors.up,radius,angle,pressure,holesi ze,explosion1,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 6550,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos2,g_Vectors.up,radius,angle,pressure,holesi ze,explosion2,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 7500,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos3,g_Vectors.up,radius,angle,pressure,holesi ze,explosion3,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 7550,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos4,g_Vectors.up,radius,angle,pressure,holesi ze,explosion4,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 8500,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos5,g_Vectors.up,radius,angle,pressure,holesi ze,explosion2,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 9500,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos6,g_Vectors.up,radius,angle,pressure,holesi ze,explosion4,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 9550,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos7,g_Vectors.up,radius,angle,pressure,holesi ze,explosion1,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 10000,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos8,g_Vectors.up,radius,angle,pressure,holesi ze,explosion1,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 10500,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos9,g_Vectors.up,radius,angle,pressure,holesi ze,explosion4,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 11000,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos10,g_Vectors.up,radius,angle,pressure,holes ize,explosion5,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 11050,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos11,g_Vectors.up,radius,angle,pressure,holes ize,explosion2,scalefull, scalefull, scalefull, scalefull); end);
Script.SetTimer( 11500,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos12,g_Vectors.up,radius,angle,pressure,holes ize,explosion2,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 12000,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos13,g_Vectors.up,radius,angle,pressure,holes ize,explosion6,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 12250,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos14,g_Vectors.up,radius,angle,pressure,holes ize,explosion4,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 12500,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos15,g_Vectors.up,radius,angle,pressure,holes ize,explosion2,scalefull, scalefull, scalefull, scalefull); end);
Script.SetTimer( 12750,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos16,g_Vectors.up,radius,angle,pressure,holes ize,explosion3,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 13000,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos17,g_Vectors.up,radius,angle,pressure,holes ize,explosion1,scalefull, scalefull, scalefull, scalefull); end);
Script.SetTimer( 13500,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos18,g_Vectors.up,radius,angle,pressure,holes ize,explosion2,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 13750,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos19,g_Vectors.up,radius,angle,pressure,holes ize,explosion2,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 14000,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos20,g_Vectors.up,radius,angle,pressure,holes ize,explosion4,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 14500,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos21,g_Vectors.up,radius,angle,pressure,holes ize,explosion5,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 14750,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos22,g_Vectors.up,radius,angle,pressure,holes ize,explosion1,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 15000,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos23,g_Vectors.up,radius,angle,pressure,holes ize,explosion3,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 15500,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos24,g_Vectors.up,radius,angle,pressure,holes ize,explosion2,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 15750,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos25,g_Vectors.up,radius,angle,pressure,holes ize,explosion4,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 16000,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos26,g_Vectors.up,radius,angle,pressure,holes ize,explosion4,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 16250,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos27,g_Vectors.up,radius,angle,pressure,holes ize,explosion5,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 16500,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos28,g_Vectors.up,radius,angle,pressure,holes ize,explosion2,scalemedium, scalemedium, scalemedium, scalemedium); end);
Script.SetTimer( 17000,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos29,g_Vectors.up,radius,angle,pressure,holes ize,explosion2,scalefull, scalefull, scalefull, scalefull); end);
Script.SetTimer( 17500,function() g_gameRules:CreateExplosion(player.id,SOUND,0,bomb pos30,g_Vectors.up,1,1,1,1,explosion4,scalefull, scalefull, scalefull, scalefull); end); -- just for last bomb sound effect
Script.SetTimer( 17501,function() g_gameRules:CreateExplosion(player.id,BOMB,damage, bombpos30,g_Vectors.up,radius,angle,pressure,holes ize,explosion7,scalefull, scalefull, scalefull, scalefull); end);
Script.SetTimer( 18000,function() XSendChatToTarget(nil, player, "AIR-SUPPORT ::: MISSION COMPLETED!"); end);
Script.SetTimer( 600000,function() AirStrike = false; end);
end