Kyance

.

Aug 12th, 2014
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 53.26 KB | None | 0 0
  1. #define COLOR_RED 0xAA3333AA
  2. #define COLOR_NOTES 0x2894FFFF
  3. #define MAX_MINIGUNS 40
  4.  
  5. #define DIALOG_EDITMINIGUN1 123
  6. #define DIALOG_EDITMINIGUN2 456
  7. #define DIALOG_EDITMINIGUN3 789
  8.  
  9. new MinigunT;
  10.  
  11. new Miniguns;
  12. enum mInfo
  13. {
  14.     ID,
  15.     Object,
  16.     CreatorID,
  17.     IsSpawned,
  18.     MinigunHealth,
  19.     Float:MinigunDamage,
  20.     Float:MinigunRange,
  21.     Float:mX, Float:mY, Float:mZ, Float:mAngle,
  22.     Text3D:Label
  23. };
  24. new MinigunInfo[MAX_MINIGUNS][mInfo];
  25.  
  26. enum GPSInfo
  27. {
  28.     zone_name[30],
  29.     Float:zone_minx,
  30.     Float:zone_miny,
  31.     Float:zone_minz,
  32.     Float:zone_maxx,
  33.     Float:zone_maxy,
  34.     Float:zone_maxz
  35. }
  36.  
  37.  
  38. new Float:Zones[][GPSInfo] = {
  39.     { "'The Big Ear'",                -410.00,  1403.30,    -3.00,  -137.90,  1681.20,   200.00},
  40.     { "Aldea Malvada",               -1372.10,  2498.50,     0.00, -1277.50,  2615.30,   200.00},
  41.     { "Angel Pine",                  -2324.90, -2584.20,    -6.10, -1964.20, -2212.10,   200.00},
  42.     { "Arco del Oeste",               -901.10,  2221.80,     0.00,  -592.00,  2571.90,   200.00},
  43.     { "Avispa Country Club",         -2646.40,  -355.40,     0.00, -2270.00,  -222.50,   200.00},
  44.     { "Avispa Country Club",         -2831.80,  -430.20,    -6.10, -2646.40,  -222.50,   200.00},
  45.     { "Avispa Country Club",         -2361.50,  -417.10,     0.00, -2270.00,  -355.40,   200.00},
  46.     { "Avispa Country Club",         -2667.80,  -302.10,   -28.80, -2646.40,  -262.30,    71.10},
  47.     { "Avispa Country Club",         -2470.00,  -355.40,     0.00, -2270.00,  -318.40,    46.10},
  48.     { "Avispa Country Club",         -2550.00,  -355.40,     0.00, -2470.00,  -318.40,    39.70},
  49.     { "Back o Beyond",               -1166.90, -2641.10,     0.00,  -321.70, -1856.00,   200.00},
  50.     { "Battery Point",               -2741.00,  1268.40,    -4.50, -2533.00,  1490.40,   200.00},
  51.     { "Bayside",                     -2741.00,  2175.10,     0.00, -2353.10,  2722.70,   200.00},
  52.     { "Bayside Marina",              -2353.10,  2275.70,     0.00, -2153.10,  2475.70,   200.00},
  53.     { "Beacon Hill",                  -399.60, -1075.50,    -1.40,  -319.00,  -977.50,   198.50},
  54.     { "Blackfield",                    964.30,  1203.20,   -89.00,  1197.30,  1403.20,   110.90},
  55.     { "Blackfield",                    964.30,  1403.20,   -89.00,  1197.30,  1726.20,   110.90},
  56.     { "Blackfield Chapel",            1375.60,   596.30,   -89.00,  1558.00,   823.20,   110.90},
  57.     { "Blackfield Chapel",            1325.60,   596.30,   -89.00,  1375.60,   795.00,   110.90},
  58.     { "Blackfield Intersection",      1197.30,  1044.60,   -89.00,  1277.00,  1163.30,   110.90},
  59.     { "Blackfield Intersection",      1166.50,   795.00,   -89.00,  1375.60,  1044.60,   110.90},
  60.     { "Blackfield Intersection",      1277.00,  1044.60,   -89.00,  1315.30,  1087.60,   110.90},
  61.     { "Blackfield Intersection",      1375.60,   823.20,   -89.00,  1457.30,   919.40,   110.90},
  62.     { "Blueberry",                     104.50,  -220.10,     2.30,   349.60,   152.20,   200.00},
  63.     { "Blueberry",                      19.60,  -404.10,     3.80,   349.60,  -220.10,   200.00},
  64.     { "Blueberry Acres",              -319.60,  -220.10,     0.00,   104.50,   293.30,   200.00},
  65.     { "Caligula's Palace",            2087.30,  1543.20,   -89.00,  2437.30,  1703.20,   110.90},
  66.     { "Caligula's Palace",            2137.40,  1703.20,   -89.00,  2437.30,  1783.20,   110.90},
  67.     { "Calton Heights",              -2274.10,   744.10,    -6.10, -1982.30,  1358.90,   200.00},
  68.     { "Chinatown",                   -2274.10,   578.30,    -7.60, -2078.60,   744.10,   200.00},
  69.     { "City Hall",                   -2867.80,   277.40,    -9.10, -2593.40,   458.40,   200.00},
  70.     { "Come-A-Lot",                   2087.30,   943.20,   -89.00,  2623.10,  1203.20,   110.90},
  71.     { "Commerce",                     1323.90, -1842.20,   -89.00,  1701.90, -1722.20,   110.90},
  72.     { "Commerce",                     1323.90, -1722.20,   -89.00,  1440.90, -1577.50,   110.90},
  73.     { "Commerce",                     1370.80, -1577.50,   -89.00,  1463.90, -1384.90,   110.90},
  74.     { "Commerce",                     1463.90, -1577.50,   -89.00,  1667.90, -1430.80,   110.90},
  75.     { "Commerce",                     1583.50, -1722.20,   -89.00,  1758.90, -1577.50,   110.90},
  76.     { "Commerce",                     1667.90, -1577.50,   -89.00,  1812.60, -1430.80,   110.90},
  77.     { "Conference Center",            1046.10, -1804.20,   -89.00,  1323.90, -1722.20,   110.90},
  78.     { "Conference Center",            1073.20, -1842.20,   -89.00,  1323.90, -1804.20,   110.90},
  79.     { "Cranberry Station",           -2007.80,    56.30,     0.00, -1922.00,   224.70,   100.00},
  80.     { "Creek",                        2749.90,  1937.20,   -89.00,  2921.60,  2669.70,   110.90},
  81.     { "Dillimore",                     580.70,  -674.80,    -9.50,   861.00,  -404.70,   200.00},
  82.     { "Doherty",                     -2270.00,  -324.10,    -0.00, -1794.90,  -222.50,   200.00},
  83.     { "Doherty",                     -2173.00,  -222.50,    -0.00, -1794.90,   265.20,   200.00},
  84.     { "Downtown",                    -1982.30,   744.10,    -6.10, -1871.70,  1274.20,   200.00},
  85.     { "Downtown",                    -1871.70,  1176.40,    -4.50, -1620.30,  1274.20,   200.00},
  86.     { "Downtown",                    -1700.00,   744.20,    -6.10, -1580.00,  1176.50,   200.00},
  87.     { "Downtown",                    -1580.00,   744.20,    -6.10, -1499.80,  1025.90,   200.00},
  88.     { "Downtown",                    -2078.60,   578.30,    -7.60, -1499.80,   744.20,   200.00},
  89.     { "Downtown",                    -1993.20,   265.20,    -9.10, -1794.90,   578.30,   200.00},
  90.     { "Downtown Los Santos",          1463.90, -1430.80,   -89.00,  1724.70, -1290.80,   110.90},
  91.     { "Downtown Los Santos",          1724.70, -1430.80,   -89.00,  1812.60, -1250.90,   110.90},
  92.     { "Downtown Los Santos",          1463.90, -1290.80,   -89.00,  1724.70, -1150.80,   110.90},
  93.     { "Downtown Los Santos",          1370.80, -1384.90,   -89.00,  1463.90, -1170.80,   110.90},
  94.     { "Downtown Los Santos",          1724.70, -1250.90,   -89.00,  1812.60, -1150.80,   110.90},
  95.     { "Downtown Los Santos",          1370.80, -1170.80,   -89.00,  1463.90, -1130.80,   110.90},
  96.     { "Downtown Los Santos",          1378.30, -1130.80,   -89.00,  1463.90, -1026.30,   110.90},
  97.     { "Downtown Los Santos",          1391.00, -1026.30,   -89.00,  1463.90,  -926.90,   110.90},
  98.     { "Downtown Los Santos",          1507.50, -1385.20,   110.90,  1582.50, -1325.30,   335.90},
  99.     { "East Beach",                   2632.80, -1852.80,   -89.00,  2959.30, -1668.10,   110.90},
  100.     { "East Beach",                   2632.80, -1668.10,   -89.00,  2747.70, -1393.40,   110.90},
  101.     { "East Beach",                   2747.70, -1668.10,   -89.00,  2959.30, -1498.60,   110.90},
  102.     { "East Beach",                   2747.70, -1498.60,   -89.00,  2959.30, -1120.00,   110.90},
  103.     { "East Los Santos",              2421.00, -1628.50,   -89.00,  2632.80, -1454.30,   110.90},
  104.     { "East Los Santos",              2222.50, -1628.50,   -89.00,  2421.00, -1494.00,   110.90},
  105.     { "East Los Santos",              2266.20, -1494.00,   -89.00,  2381.60, -1372.00,   110.90},
  106.     { "East Los Santos",              2381.60, -1494.00,   -89.00,  2421.00, -1454.30,   110.90},
  107.     { "East Los Santos",              2281.40, -1372.00,   -89.00,  2381.60, -1135.00,   110.90},
  108.     { "East Los Santos",              2381.60, -1454.30,   -89.00,  2462.10, -1135.00,   110.90},
  109.     { "East Los Santos",              2462.10, -1454.30,   -89.00,  2581.70, -1135.00,   110.90},
  110.     { "Easter Basin",                -1794.90,   249.90,    -9.10, -1242.90,   578.30,   200.00},
  111.     { "Easter Basin",                -1794.90,   -50.00,    -0.00, -1499.80,   249.90,   200.00},
  112.     { "Easter Bay Airport",          -1499.80,   -50.00,    -0.00, -1242.90,   249.90,   200.00},
  113.     { "Easter Bay Airport",          -1794.90,  -730.10,    -3.00, -1213.90,   -50.00,   200.00},
  114.     { "Easter Bay Airport",          -1213.90,  -730.10,     0.00, -1132.80,   -50.00,   200.00},
  115.     { "Easter Bay Airport",          -1242.90,   -50.00,     0.00, -1213.90,   578.30,   200.00},
  116.     { "Easter Bay Airport",          -1213.90,   -50.00,    -4.50,  -947.90,   578.30,   200.00},
  117.     { "Easter Bay Airport",          -1315.40,  -405.30,    15.40, -1264.40,  -209.50,    25.40},
  118.     { "Easter Bay Airport",          -1354.30,  -287.30,    15.40, -1315.40,  -209.50,    25.40},
  119.     { "Easter Bay Airport",          -1490.30,  -209.50,    15.40, -1264.40,  -148.30,    25.40},
  120.     { "Easter Bay Chemicals",        -1132.80,  -768.00,     0.00,  -956.40,  -578.10,   200.00},
  121.     { "Easter Bay Chemicals",        -1132.80,  -787.30,     0.00,  -956.40,  -768.00,   200.00},
  122.     { "El Castillo del Diablo",       -464.50,  2217.60,     0.00,  -208.50,  2580.30,   200.00},
  123.     { "El Castillo del Diablo",       -208.50,  2123.00,    -7.60,   114.00,  2337.10,   200.00},
  124.     { "El Castillo del Diablo",       -208.50,  2337.10,     0.00,     8.40,  2487.10,   200.00},
  125.     { "El Corona",                    1812.60, -2179.20,   -89.00,  1970.60, -1852.80,   110.90},
  126.     { "El Corona",                    1692.60, -2179.20,   -89.00,  1812.60, -1842.20,   110.90},
  127.     { "El Quebrados",                -1645.20,  2498.50,     0.00, -1372.10,  2777.80,   200.00},
  128.     { "Esplanade East",              -1620.30,  1176.50,    -4.50, -1580.00,  1274.20,   200.00},
  129.     { "Esplanade East",              -1580.00,  1025.90,    -6.10, -1499.80,  1274.20,   200.00},
  130.     { "Esplanade East",              -1499.80,   578.30,   -79.60, -1339.80,  1274.20,    20.30},
  131.     { "Esplanade North",             -2533.00,  1358.90,    -4.50, -1996.60,  1501.20,   200.00},
  132.     { "Esplanade North",             -1996.60,  1358.90,    -4.50, -1524.20,  1592.50,   200.00},
  133.     { "Esplanade North",             -1982.30,  1274.20,    -4.50, -1524.20,  1358.90,   200.00},
  134.     { "Fallen Tree",                  -792.20,  -698.50,    -5.30,  -452.40,  -380.00,   200.00},
  135.     { "Fallow Bridge",                 434.30,   366.50,     0.00,   603.00,   555.60,   200.00},
  136.     { "Fern Ridge",                    508.10,  -139.20,     0.00,  1306.60,   119.50,   200.00},
  137.     { "Financial",                   -1871.70,   744.10,    -6.10, -1701.30,  1176.40,   300.00},
  138.     { "Fisher's Lagoon",              1916.90,  -233.30,  -100.00,  2131.70,    13.80,   200.00},
  139.     { "Flint Intersection",           -187.70, -1596.70,   -89.00,    17.00, -1276.60,   110.90},
  140.     { "Flint Range",                  -594.10, -1648.50,     0.00,  -187.70, -1276.60,   200.00},
  141.     { "Fort Carson",                  -376.20,   826.30,    -3.00,   123.70,  1220.40,   200.00},
  142.     { "Foster Valley",               -2270.00,  -430.20,    -0.00, -2178.60,  -324.10,   200.00},
  143.     { "Foster Valley",               -2178.60,  -599.80,    -0.00, -1794.90,  -324.10,   200.00},
  144.     { "Foster Valley",               -2178.60, -1115.50,     0.00, -1794.90,  -599.80,   200.00},
  145.     { "Foster Valley",               -2178.60, -1250.90,     0.00, -1794.90, -1115.50,   200.00},
  146.     { "Frederick Bridge",             2759.20,   296.50,     0.00,  2774.20,   594.70,   200.00},
  147.     { "Gant Bridge",                 -2741.40,  1659.60,    -6.10, -2616.40,  2175.10,   200.00},
  148.     { "Gant Bridge",                 -2741.00,  1490.40,    -6.10, -2616.40,  1659.60,   200.00},
  149.     { "Ganton",                       2222.50, -1852.80,   -89.00,  2632.80, -1722.30,   110.90},
  150.     { "Ganton",                       2222.50, -1722.30,   -89.00,  2632.80, -1628.50,   110.90},
  151.     { "Garcia",                      -2411.20,  -222.50,    -0.00, -2173.00,   265.20,   200.00},
  152.     { "Garcia",                      -2395.10,  -222.50,    -5.30, -2354.00,  -204.70,   200.00},
  153.     { "Garver Bridge",               -1339.80,   828.10,   -89.00, -1213.90,  1057.00,   110.90},
  154.     { "Garver Bridge",               -1213.90,   950.00,   -89.00, -1087.90,  1178.90,   110.90},
  155.     { "Garver Bridge",               -1499.80,   696.40,  -179.60, -1339.80,   925.30,    20.30},
  156.     { "Glen Park",                    1812.60, -1449.60,   -89.00,  1996.90, -1350.70,   110.90},
  157.     { "Glen Park",                    1812.60, -1100.80,   -89.00,  1994.30,  -973.30,   110.90},
  158.     { "Glen Park",                    1812.60, -1350.70,   -89.00,  2056.80, -1100.80,   110.90},
  159.     { "Green Palms",                   176.50,  1305.40,    -3.00,   338.60,  1520.70,   200.00},
  160.     { "Greenglass College",            964.30,  1044.60,   -89.00,  1197.30,  1203.20,   110.90},
  161.     { "Greenglass College",            964.30,   930.80,   -89.00,  1166.50,  1044.60,   110.90},
  162.     { "Hampton Barns",                 603.00,   264.30,     0.00,   761.90,   366.50,   200.00},
  163.     { "Hankypanky Point",             2576.90,    62.10,     0.00,  2759.20,   385.50,   200.00},
  164.     { "Harry Gold Parkway",           1777.30,   863.20,   -89.00,  1817.30,  2342.80,   110.90},
  165.     { "Hashbury",                    -2593.40,  -222.50,    -0.00, -2411.20,    54.70,   200.00},
  166.     { "Hilltop Farm",                  967.30,  -450.30,    -3.00,  1176.70,  -217.90,   200.00},
  167.     { "Hunter Quarry",                 337.20,   710.80,  -115.20,   860.50,  1031.70,   203.70},
  168.     { "Idlewood",                     1812.60, -1852.80,   -89.00,  1971.60, -1742.30,   110.90},
  169.     { "Idlewood",                     1812.60, -1742.30,   -89.00,  1951.60, -1602.30,   110.90},
  170.     { "Idlewood",                     1951.60, -1742.30,   -89.00,  2124.60, -1602.30,   110.90},
  171.     { "Idlewood",                     1812.60, -1602.30,   -89.00,  2124.60, -1449.60,   110.90},
  172.     { "Idlewood",                     2124.60, -1742.30,   -89.00,  2222.50, -1494.00,   110.90},
  173.     { "Idlewood",                     1971.60, -1852.80,   -89.00,  2222.50, -1742.30,   110.90},
  174.     { "Jefferson",                    1996.90, -1449.60,   -89.00,  2056.80, -1350.70,   110.90},
  175.     { "Jefferson",                    2124.60, -1494.00,   -89.00,  2266.20, -1449.60,   110.90},
  176.     { "Jefferson",                    2056.80, -1372.00,   -89.00,  2281.40, -1210.70,   110.90},
  177.     { "Jefferson",                    2056.80, -1210.70,   -89.00,  2185.30, -1126.30,   110.90},
  178.     { "Jefferson",                    2185.30, -1210.70,   -89.00,  2281.40, -1154.50,   110.90},
  179.     { "Jefferson",                    2056.80, -1449.60,   -89.00,  2266.20, -1372.00,   110.90},
  180.     { "Julius Thruway East",          2623.10,   943.20,   -89.00,  2749.90,  1055.90,   110.90},
  181.     { "Julius Thruway East",          2685.10,  1055.90,   -89.00,  2749.90,  2626.50,   110.90},
  182.     { "Julius Thruway East",          2536.40,  2442.50,   -89.00,  2685.10,  2542.50,   110.90},
  183.     { "Julius Thruway East",          2625.10,  2202.70,   -89.00,  2685.10,  2442.50,   110.90},
  184.     { "Julius Thruway North",         2498.20,  2542.50,   -89.00,  2685.10,  2626.50,   110.90},
  185.     { "Julius Thruway North",         2237.40,  2542.50,   -89.00,  2498.20,  2663.10,   110.90},
  186.     { "Julius Thruway North",         2121.40,  2508.20,   -89.00,  2237.40,  2663.10,   110.90},
  187.     { "Julius Thruway North",         1938.80,  2508.20,   -89.00,  2121.40,  2624.20,   110.90},
  188.     { "Julius Thruway North",         1534.50,  2433.20,   -89.00,  1848.40,  2583.20,   110.90},
  189.     { "Julius Thruway North",         1848.40,  2478.40,   -89.00,  1938.80,  2553.40,   110.90},
  190.     { "Julius Thruway North",         1704.50,  2342.80,   -89.00,  1848.40,  2433.20,   110.90},
  191.     { "Julius Thruway North",         1377.30,  2433.20,   -89.00,  1534.50,  2507.20,   110.90},
  192.     { "Julius Thruway South",         1457.30,   823.20,   -89.00,  2377.30,   863.20,   110.90},
  193.     { "Julius Thruway South",         2377.30,   788.80,   -89.00,  2537.30,   897.90,   110.90},
  194.     { "Julius Thruway West",          1197.30,  1163.30,   -89.00,  1236.60,  2243.20,   110.90},
  195.     { "Julius Thruway West",          1236.60,  2142.80,   -89.00,  1297.40,  2243.20,   110.90},
  196.     { "Juniper Hill",                -2533.00,   578.30,    -7.60, -2274.10,   968.30,   200.00},
  197.     { "Juniper Hollow",              -2533.00,   968.30,    -6.10, -2274.10,  1358.90,   200.00},
  198.     { "K.A.C.C. Military Fuels",      2498.20,  2626.50,   -89.00,  2749.90,  2861.50,   110.90},
  199.     { "Kincaid Bridge",              -1339.80,   599.20,   -89.00, -1213.90,   828.10,   110.90},
  200.     { "Kincaid Bridge",              -1213.90,   721.10,   -89.00, -1087.90,   950.00,   110.90},
  201.     { "Kincaid Bridge",              -1087.90,   855.30,   -89.00,  -961.90,   986.20,   110.90},
  202.     { "King's",                      -2329.30,   458.40,    -7.60, -1993.20,   578.30,   200.00},
  203.     { "King's",                      -2411.20,   265.20,    -9.10, -1993.20,   373.50,   200.00},
  204.     { "King's",                      -2253.50,   373.50,    -9.10, -1993.20,   458.40,   200.00},
  205.     { "LVA Freight Depot",            1457.30,   863.20,   -89.00,  1777.40,  1143.20,   110.90},
  206.     { "LVA Freight Depot",            1375.60,   919.40,   -89.00,  1457.30,  1203.20,   110.90},
  207.     { "LVA Freight Depot",            1277.00,  1087.60,   -89.00,  1375.60,  1203.20,   110.90},
  208.     { "LVA Freight Depot",            1315.30,  1044.60,   -89.00,  1375.60,  1087.60,   110.90},
  209.     { "LVA Freight Depot",            1236.60,  1163.40,   -89.00,  1277.00,  1203.20,   110.90},
  210.     { "Las Barrancas",                -926.10,  1398.70,    -3.00,  -719.20,  1634.60,   200.00},
  211.     { "Las Brujas",                   -365.10,  2123.00,    -3.00,  -208.50,  2217.60,   200.00},
  212.     { "Las Colinas",                  1994.30, -1100.80,   -89.00,  2056.80,  -920.80,   110.90},
  213.     { "Las Colinas",                  2056.80, -1126.30,   -89.00,  2126.80,  -920.80,   110.90},
  214.     { "Las Colinas",                  2185.30, -1154.50,   -89.00,  2281.40,  -934.40,   110.90},
  215.     { "Las Colinas",                  2126.80, -1126.30,   -89.00,  2185.30,  -934.40,   110.90},
  216.     { "Las Colinas",                  2747.70, -1120.00,   -89.00,  2959.30,  -945.00,   110.90},
  217.     { "Las Colinas",                  2632.70, -1135.00,   -89.00,  2747.70,  -945.00,   110.90},
  218.     { "Las Colinas",                  2281.40, -1135.00,   -89.00,  2632.70,  -945.00,   110.90},
  219.     { "Las Payasadas",                -354.30,  2580.30,     2.00,  -133.60,  2816.80,   200.00},
  220.     { "Las Venturas Airport",         1236.60,  1203.20,   -89.00,  1457.30,  1883.10,   110.90},
  221.     { "Las Venturas Airport",         1457.30,  1203.20,   -89.00,  1777.30,  1883.10,   110.90},
  222.     { "Las Venturas Airport",         1457.30,  1143.20,   -89.00,  1777.40,  1203.20,   110.90},
  223.     { "Las Venturas Airport",         1515.80,  1586.40,   -12.50,  1729.90,  1714.50,    87.50},
  224.     { "Last Dime Motel",              1823.00,   596.30,   -89.00,  1997.20,   823.20,   110.90},
  225.     { "Leafy Hollow",                -1166.90, -1856.00,     0.00,  -815.60, -1602.00,   200.00},
  226.     { "Lil' Probe Inn",                -90.20,  1286.80,    -3.00,   153.80,  1554.10,   200.00},
  227.     { "Linden Side",                  2749.90,   943.20,   -89.00,  2923.30,  1198.90,   110.90},
  228.     { "Linden Station",               2749.90,  1198.90,   -89.00,  2923.30,  1548.90,   110.90},
  229.     { "Linden Station",               2811.20,  1229.50,   -39.50,  2861.20,  1407.50,    60.40},
  230.     { "Little Mexico",                1701.90, -1842.20,   -89.00,  1812.60, -1722.20,   110.90},
  231.     { "Little Mexico",                1758.90, -1722.20,   -89.00,  1812.60, -1577.50,   110.90},
  232.     { "Los Flores",                   2581.70, -1454.30,   -89.00,  2632.80, -1393.40,   110.90},
  233.     { "Los Flores",                   2581.70, -1393.40,   -89.00,  2747.70, -1135.00,   110.90},
  234.     { "Los Santos International",     1249.60, -2394.30,   -89.00,  1852.00, -2179.20,   110.90},
  235.     { "Los Santos International",     1852.00, -2394.30,   -89.00,  2089.00, -2179.20,   110.90},
  236.     { "Los Santos International",     1382.70, -2730.80,   -89.00,  2201.80, -2394.30,   110.90},
  237.     { "Los Santos International",     1974.60, -2394.30,   -39.00,  2089.00, -2256.50,    60.90},
  238.     { "Los Santos International",     1400.90, -2669.20,   -39.00,  2189.80, -2597.20,    60.90},
  239.     { "Los Santos International",     2051.60, -2597.20,   -39.00,  2152.40, -2394.30,    60.90},
  240.     { "Marina",                        647.70, -1804.20,   -89.00,   851.40, -1577.50,   110.90},
  241.     { "Marina",                        647.70, -1577.50,   -89.00,   807.90, -1416.20,   110.90},
  242.     { "Marina",                        807.90, -1577.50,   -89.00,   926.90, -1416.20,   110.90},
  243.     { "Market",                        787.40, -1416.20,   -89.00,  1072.60, -1310.20,   110.90},
  244.     { "Market",                        952.60, -1310.20,   -89.00,  1072.60, -1130.80,   110.90},
  245.     { "Market",                       1072.60, -1416.20,   -89.00,  1370.80, -1130.80,   110.90},
  246.     { "Market",                        926.90, -1577.50,   -89.00,  1370.80, -1416.20,   110.90},
  247.     { "Market Station",                787.40, -1410.90,   -34.10,   866.00, -1310.20,    65.80},
  248.     { "Martin Bridge",                -222.10,   293.30,     0.00,  -122.10,   476.40,   200.00},
  249.     { "Missionary Hill",             -2994.40,  -811.20,     0.00, -2178.60,  -430.20,   200.00},
  250.     { "Montgomery",                   1119.50,   119.50,    -3.00,  1451.40,   493.30,   200.00},
  251.     { "Montgomery",                   1451.40,   347.40,    -6.10,  1582.40,   420.80,   200.00},
  252.     { "Montgomery Intersection",      1546.60,   208.10,     0.00,  1745.80,   347.40,   200.00},
  253.     { "Montgomery Intersection",      1582.40,   347.40,     0.00,  1664.60,   401.70,   200.00},
  254.     { "Mulholland",                   1414.00,  -768.00,   -89.00,  1667.60,  -452.40,   110.90},
  255.     { "Mulholland",                   1281.10,  -452.40,   -89.00,  1641.10,  -290.90,   110.90},
  256.     { "Mulholland",                   1269.10,  -768.00,   -89.00,  1414.00,  -452.40,   110.90},
  257.     { "Mulholland",                   1357.00,  -926.90,   -89.00,  1463.90,  -768.00,   110.90},
  258.     { "Mulholland",                   1318.10,  -910.10,   -89.00,  1357.00,  -768.00,   110.90},
  259.     { "Mulholland",                   1169.10,  -910.10,   -89.00,  1318.10,  -768.00,   110.90},
  260.     { "Mulholland",                    768.60,  -954.60,   -89.00,   952.60,  -860.60,   110.90},
  261.     { "Mulholland",                    687.80,  -860.60,   -89.00,   911.80,  -768.00,   110.90},
  262.     { "Mulholland",                    737.50,  -768.00,   -89.00,  1142.20,  -674.80,   110.90},
  263.     { "Mulholland",                   1096.40,  -910.10,   -89.00,  1169.10,  -768.00,   110.90},
  264.     { "Mulholland",                    952.60,  -937.10,   -89.00,  1096.40,  -860.60,   110.90},
  265.     { "Mulholland",                    911.80,  -860.60,   -89.00,  1096.40,  -768.00,   110.90},
  266.     { "Mulholland",                    861.00,  -674.80,   -89.00,  1156.50,  -600.80,   110.90},
  267.     { "Mulholland Intersection",      1463.90, -1150.80,   -89.00,  1812.60,  -768.00,   110.90},
  268.     { "North Rock",                   2285.30,  -768.00,     0.00,  2770.50,  -269.70,   200.00},
  269.     { "Ocean Docks",                  2373.70, -2697.00,   -89.00,  2809.20, -2330.40,   110.90},
  270.     { "Ocean Docks",                  2201.80, -2418.30,   -89.00,  2324.00, -2095.00,   110.90},
  271.     { "Ocean Docks",                  2324.00, -2302.30,   -89.00,  2703.50, -2145.10,   110.90},
  272.     { "Ocean Docks",                  2089.00, -2394.30,   -89.00,  2201.80, -2235.80,   110.90},
  273.     { "Ocean Docks",                  2201.80, -2730.80,   -89.00,  2324.00, -2418.30,   110.90},
  274.     { "Ocean Docks",                  2703.50, -2302.30,   -89.00,  2959.30, -2126.90,   110.90},
  275.     { "Ocean Docks",                  2324.00, -2145.10,   -89.00,  2703.50, -2059.20,   110.90},
  276.     { "Ocean Flats",                 -2994.40,   277.40,    -9.10, -2867.80,   458.40,   200.00},
  277.     { "Ocean Flats",                 -2994.40,  -222.50,    -0.00, -2593.40,   277.40,   200.00},
  278.     { "Ocean Flats",                 -2994.40,  -430.20,    -0.00, -2831.80,  -222.50,   200.00},
  279.     { "Octane Springs",                338.60,  1228.50,     0.00,   664.30,  1655.00,   200.00},
  280.     { "Old Venturas Strip",           2162.30,  2012.10,   -89.00,  2685.10,  2202.70,   110.90},
  281.     { "Palisades",                   -2994.40,   458.40,    -6.10, -2741.00,  1339.60,   200.00},
  282.     { "Palomino Creek",               2160.20,  -149.00,     0.00,  2576.90,   228.30,   200.00},
  283.     { "Paradiso",                    -2741.00,   793.40,    -6.10, -2533.00,  1268.40,   200.00},
  284.     { "Pershing Square",              1440.90, -1722.20,   -89.00,  1583.50, -1577.50,   110.90},
  285.     { "Pilgrim",                      2437.30,  1383.20,   -89.00,  2624.40,  1783.20,   110.90},
  286.     { "Pilgrim",                      2624.40,  1383.20,   -89.00,  2685.10,  1783.20,   110.90},
  287.     { "Pilson Intersection",          1098.30,  2243.20,   -89.00,  1377.30,  2507.20,   110.90},
  288.     { "Pirates in Men's Pants",       1817.30,  1469.20,   -89.00,  2027.40,  1703.20,   110.90},
  289.     { "Playa del Seville",            2703.50, -2126.90,   -89.00,  2959.30, -1852.80,   110.90},
  290.     { "Prickle Pine",                 1534.50,  2583.20,   -89.00,  1848.40,  2863.20,   110.90},
  291.     { "Prickle Pine",                 1117.40,  2507.20,   -89.00,  1534.50,  2723.20,   110.90},
  292.     { "Prickle Pine",                 1848.40,  2553.40,   -89.00,  1938.80,  2863.20,   110.90},
  293.     { "Prickle Pine",                 1938.80,  2624.20,   -89.00,  2121.40,  2861.50,   110.90},
  294.     { "Queens",                      -2533.00,   458.40,     0.00, -2329.30,   578.30,   200.00},
  295.     { "Queens",                      -2593.40,    54.70,     0.00, -2411.20,   458.40,   200.00},
  296.     { "Queens",                      -2411.20,   373.50,     0.00, -2253.50,   458.40,   200.00},
  297.     { "Randolph Industrial Estate",   1558.00,   596.30,   -89.00,  1823.00,   823.20,   110.90},
  298.     { "Redsands East",                1817.30,  2011.80,   -89.00,  2106.70,  2202.70,   110.90},
  299.     { "Redsands East",                1817.30,  2202.70,   -89.00,  2011.90,  2342.80,   110.90},
  300.     { "Redsands East",                1848.40,  2342.80,   -89.00,  2011.90,  2478.40,   110.90},
  301.     { "Redsands West",                1236.60,  1883.10,   -89.00,  1777.30,  2142.80,   110.90},
  302.     { "Redsands West",                1297.40,  2142.80,   -89.00,  1777.30,  2243.20,   110.90},
  303.     { "Redsands West",                1377.30,  2243.20,   -89.00,  1704.50,  2433.20,   110.90},
  304.     { "Redsands West",                1704.50,  2243.20,   -89.00,  1777.30,  2342.80,   110.90},
  305.     { "Regular Tom",                  -405.70,  1712.80,    -3.00,  -276.70,  1892.70,   200.00},
  306.     { "Richman",                       647.50, -1118.20,   -89.00,   787.40,  -954.60,   110.90},
  307.     { "Richman",                       647.50,  -954.60,   -89.00,   768.60,  -860.60,   110.90},
  308.     { "Richman",                       225.10, -1369.60,   -89.00,   334.50, -1292.00,   110.90},
  309.     { "Richman",                       225.10, -1292.00,   -89.00,   466.20, -1235.00,   110.90},
  310.     { "Richman",                        72.60, -1404.90,   -89.00,   225.10, -1235.00,   110.90},
  311.     { "Richman",                        72.60, -1235.00,   -89.00,   321.30, -1008.10,   110.90},
  312.     { "Richman",                       321.30, -1235.00,   -89.00,   647.50, -1044.00,   110.90},
  313.     { "Richman",                       321.30, -1044.00,   -89.00,   647.50,  -860.60,   110.90},
  314.     { "Richman",                       321.30,  -860.60,   -89.00,   687.80,  -768.00,   110.90},
  315.     { "Richman",                       321.30,  -768.00,   -89.00,   700.70,  -674.80,   110.90},
  316.     { "Robada Intersection",         -1119.00,  1178.90,   -89.00,  -862.00,  1351.40,   110.90},
  317.     { "Roca Escalante",               2237.40,  2202.70,   -89.00,  2536.40,  2542.50,   110.90},
  318.     { "Roca Escalante",               2536.40,  2202.70,   -89.00,  2625.10,  2442.50,   110.90},
  319.     { "Rockshore East",               2537.30,   676.50,   -89.00,  2902.30,   943.20,   110.90},
  320.     { "Rockshore West",               1997.20,   596.30,   -89.00,  2377.30,   823.20,   110.90},
  321.     { "Rockshore West",               2377.30,   596.30,   -89.00,  2537.30,   788.80,   110.90},
  322.     { "Rodeo",                          72.60, -1684.60,   -89.00,   225.10, -1544.10,   110.90},
  323.     { "Rodeo",                          72.60, -1544.10,   -89.00,   225.10, -1404.90,   110.90},
  324.     { "Rodeo",                         225.10, -1684.60,   -89.00,   312.80, -1501.90,   110.90},
  325.     { "Rodeo",                         225.10, -1501.90,   -89.00,   334.50, -1369.60,   110.90},
  326.     { "Rodeo",                         334.50, -1501.90,   -89.00,   422.60, -1406.00,   110.90},
  327.     { "Rodeo",                         312.80, -1684.60,   -89.00,   422.60, -1501.90,   110.90},
  328.     { "Rodeo",                         422.60, -1684.60,   -89.00,   558.00, -1570.20,   110.90},
  329.     { "Rodeo",                         558.00, -1684.60,   -89.00,   647.50, -1384.90,   110.90},
  330.     { "Rodeo",                         466.20, -1570.20,   -89.00,   558.00, -1385.00,   110.90},
  331.     { "Rodeo",                         422.60, -1570.20,   -89.00,   466.20, -1406.00,   110.90},
  332.     { "Rodeo",                         466.20, -1385.00,   -89.00,   647.50, -1235.00,   110.90},
  333.     { "Rodeo",                         334.50, -1406.00,   -89.00,   466.20, -1292.00,   110.90},
  334.     { "Royal Casino",                 2087.30,  1383.20,   -89.00,  2437.30,  1543.20,   110.90},
  335.     { "San Andreas Sound",            2450.30,   385.50,  -100.00,  2759.20,   562.30,   200.00},
  336.     { "Santa Flora",                 -2741.00,   458.40,    -7.60, -2533.00,   793.40,   200.00},
  337.     { "Santa Maria Beach",             342.60, -2173.20,   -89.00,   647.70, -1684.60,   110.90},
  338.     { "Santa Maria Beach",              72.60, -2173.20,   -89.00,   342.60, -1684.60,   110.90},
  339.     { "Shady Cabin",                 -1632.80, -2263.40,    -3.00, -1601.30, -2231.70,   200.00},
  340.     { "Shady Creeks",                -1820.60, -2643.60,    -8.00, -1226.70, -1771.60,   200.00},
  341.     { "Shady Creeks",                -2030.10, -2174.80,    -6.10, -1820.60, -1771.60,   200.00},
  342.     { "Sobell Rail Yards",            2749.90,  1548.90,   -89.00,  2923.30,  1937.20,   110.90},
  343.     { "Spinybed",                     2121.40,  2663.10,   -89.00,  2498.20,  2861.50,   110.90},
  344.     { "Starfish Casino",              2437.30,  1783.20,   -89.00,  2685.10,  2012.10,   110.90},
  345.     { "Starfish Casino",              2437.30,  1858.10,   -39.00,  2495.00,  1970.80,    60.90},
  346.     { "Starfish Casino",              2162.30,  1883.20,   -89.00,  2437.30,  2012.10,   110.90},
  347.     { "Temple",                       1252.30, -1130.80,   -89.00,  1378.30, -1026.30,   110.90},
  348.     { "Temple",                       1252.30, -1026.30,   -89.00,  1391.00,  -926.90,   110.90},
  349.     { "Temple",                       1252.30,  -926.90,   -89.00,  1357.00,  -910.10,   110.90},
  350.     { "Temple",                        952.60, -1130.80,   -89.00,  1096.40,  -937.10,   110.90},
  351.     { "Temple",                       1096.40, -1130.80,   -89.00,  1252.30, -1026.30,   110.90},
  352.     { "Temple",                       1096.40, -1026.30,   -89.00,  1252.30,  -910.10,   110.90},
  353.     { "The Camel's Toe",              2087.30,  1203.20,   -89.00,  2640.40,  1383.20,   110.90},
  354.     { "The Clown's Pocket",           2162.30,  1783.20,   -89.00,  2437.30,  1883.20,   110.90},
  355.     { "The Emerald Isle",             2011.90,  2202.70,   -89.00,  2237.40,  2508.20,   110.90},
  356.     { "The Farm",                    -1209.60, -1317.10,   114.90,  -908.10,  -787.30,   251.90},
  357.     { "The Four Dragons Casino",      1817.30,   863.20,   -89.00,  2027.30,  1083.20,   110.90},
  358.     { "The High Roller",              1817.30,  1283.20,   -89.00,  2027.30,  1469.20,   110.90},
  359.     { "The Mako Span",                1664.60,   401.70,     0.00,  1785.10,   567.20,   200.00},
  360.     { "The Panopticon",               -947.90,  -304.30,    -1.10,  -319.60,   327.00,   200.00},
  361.     { "The Pink Swan",                1817.30,  1083.20,   -89.00,  2027.30,  1283.20,   110.90},
  362.     { "The Sherman Dam",              -968.70,  1929.40,    -3.00,  -481.10,  2155.20,   200.00},
  363.     { "The Strip",                    2027.40,   863.20,   -89.00,  2087.30,  1703.20,   110.90},
  364.     { "The Strip",                    2106.70,  1863.20,   -89.00,  2162.30,  2202.70,   110.90},
  365.     { "The Strip",                    2027.40,  1783.20,   -89.00,  2162.30,  1863.20,   110.90},
  366.     { "The Strip",                    2027.40,  1703.20,   -89.00,  2137.40,  1783.20,   110.90},
  367.     { "The Visage",                   1817.30,  1863.20,   -89.00,  2106.70,  2011.80,   110.90},
  368.     { "The Visage",                   1817.30,  1703.20,   -89.00,  2027.40,  1863.20,   110.90},
  369.     { "Unity Station",                1692.60, -1971.80,   -20.40,  1812.60, -1932.80,    79.50},
  370.     { "Valle Ocultado",               -936.60,  2611.40,     2.00,  -715.90,  2847.90,   200.00},
  371.     { "Verdant Bluffs",                930.20, -2488.40,   -89.00,  1249.60, -2006.70,   110.90},
  372.     { "Verdant Bluffs",               1073.20, -2006.70,   -89.00,  1249.60, -1842.20,   110.90},
  373.     { "Verdant Bluffs",               1249.60, -2179.20,   -89.00,  1692.60, -1842.20,   110.90},
  374.     { "Verdant Meadows",                37.00,  2337.10,    -3.00,   435.90,  2677.90,   200.00},
  375.     { "Verona Beach",                  647.70, -2173.20,   -89.00,   930.20, -1804.20,   110.90},
  376.     { "Verona Beach",                  930.20, -2006.70,   -89.00,  1073.20, -1804.20,   110.90},
  377.     { "Verona Beach",                  851.40, -1804.20,   -89.00,  1046.10, -1577.50,   110.90},
  378.     { "Verona Beach",                 1161.50, -1722.20,   -89.00,  1323.90, -1577.50,   110.90},
  379.     { "Verona Beach",                 1046.10, -1722.20,   -89.00,  1161.50, -1577.50,   110.90},
  380.     { "Vinewood",                      787.40, -1310.20,   -89.00,   952.60, -1130.80,   110.90},
  381.     { "Vinewood",                      787.40, -1130.80,   -89.00,   952.60,  -954.60,   110.90},
  382.     { "Vinewood",                      647.50, -1227.20,   -89.00,   787.40, -1118.20,   110.90},
  383.     { "Vinewood",                      647.70, -1416.20,   -89.00,   787.40, -1227.20,   110.90},
  384.     { "Whitewood Estates",             883.30,  1726.20,   -89.00,  1098.30,  2507.20,   110.90},
  385.     { "Whitewood Estates",            1098.30,  1726.20,   -89.00,  1197.30,  2243.20,   110.90},
  386.     { "Willowfield",                  1970.60, -2179.20,   -89.00,  2089.00, -1852.80,   110.90},
  387.     { "Willowfield",                  2089.00, -2235.80,   -89.00,  2201.80, -1989.90,   110.90},
  388.     { "Willowfield",                  2089.00, -1989.90,   -89.00,  2324.00, -1852.80,   110.90},
  389.     { "Willowfield",                  2201.80, -2095.00,   -89.00,  2324.00, -1989.90,   110.90},
  390.     { "Willowfield",                  2541.70, -1941.40,   -89.00,  2703.50, -1852.80,   110.90},
  391.     { "Willowfield",                  2324.00, -2059.20,   -89.00,  2541.70, -1852.80,   110.90},
  392.     { "Willowfield",                  2541.70, -2059.20,   -89.00,  2703.50, -1941.40,   110.90},
  393.     { "Yellow Bell Station",          1377.40,  2600.40,   -21.90,  1492.40,  2687.30,    78.00},
  394.  
  395.     { "Los Santos",                     44.60, -2892.90,  -242.90,  2997.00,  -768.00,   900.00},
  396.     { "Las Venturas",                  869.40,   596.30,  -242.90,  2997.00,  2993.80,   900.00},
  397.     { "Bone County",                  -480.50,   596.30,  -242.90,   869.40,  2993.80,   900.00},
  398.     { "Tierra Robada",               -2997.40,  1659.60,  -242.90,  -480.50,  2993.80,   900.00},
  399.     { "Tierra Robada",               -1213.90,   596.30,  -242.90,  -480.50,  1659.60,   900.00},
  400.     { "San Fierro",                  -2997.40, -1115.50,  -242.90, -1213.90,  1659.60,   900.00},
  401.     { "Red County",                  -1213.90,  -768.00,  -242.90,  2997.00,   596.30,   900.00},
  402.     { "Flint County",                -1213.90, -2892.90,  -242.90,    44.60,  -768.00,   900.00},
  403.     { "Whetstone",                   -2997.40, -2892.90,  -242.90, -1213.90, -1115.50,   900.00}
  404. };
  405.  
  406. #define FILTERSCRIPT
  407.  
  408. #include <a_samp>
  409. #include <zcmd>
  410. #include <foreach>
  411. #include <sscanf2>
  412. #include <streamer>
  413.  
  414. #if defined FILTERSCRIPT
  415.  
  416. public OnFilterScriptInit()
  417. {
  418.     print("\nMinigun fs loaded\nVersion: 2.0\nCreator: Kyance");
  419.     MinigunT = SetTimer("MinigunTimer", 1500, true);
  420.     for( new i; i < _: mInfo; ++i ) MinigunInfo[ i ][ mInfo: i ] = 0;
  421.    
  422.     new id = GetAvailableID(); //Do not remove this line!
  423.     CreateMinigun(-1, id, 0, 2, -4, 90, 100, 0, 0); //Do not remove this line!
  424.     return 1;
  425. }
  426.  
  427. public OnFilterScriptExit()
  428. {
  429.     print("\nMinigun fs unloaded\nVersion: 2.0\nCreator: Kyance");
  430.     KillTimer(MinigunT);
  431.     DestroyMiniguns();
  432.     return 1;
  433. }
  434.  
  435. #endif
  436.  
  437. new SelectedMinigun[MAX_PLAYERS];
  438.  
  439. public OnPlayerConnect(playerid)
  440. {
  441.     SelectedMinigun[playerid] = 0;
  442.     return 1;
  443. }
  444.  
  445. public OnPlayerDisconnect(playerid, reason)
  446. {
  447.     for(new i = 1; i<MAX_MINIGUNS; i++)
  448.     {
  449.         if(!MinigunInfo[i][IsSpawned]) continue;
  450.         if(MinigunInfo[i][CreatorID] == playerid)
  451.         {
  452.             DestroyMinigun(i);
  453.         }
  454.     }
  455.     SelectedMinigun[playerid] = 0;
  456.     return 1;
  457. }
  458.  
  459. public OnPlayerDeath(playerid, killerid, reason)
  460. {
  461.     return 1;
  462. }
  463.  
  464.  
  465. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  466. {
  467.     switch(dialogid)
  468.     {
  469.         case DIALOG_EDITMINIGUN1:
  470.         {
  471.             if(response)
  472.             {
  473.                 switch(listitem)
  474.                 {
  475.                     case 0: ShowPlayerDialog(playerid, DIALOG_EDITMINIGUN2, DIALOG_STYLE_INPUT, "{FC4949}Modify Damage", "{FC4949}* {FFFFFF}Insert a new value for the {FC4949}DAMAGE {FFFFFF}below\n{FC4949}MUST BE NUMERIC.", "Accept", "Back");
  476.                     case 1: ShowPlayerDialog(playerid, DIALOG_EDITMINIGUN3, DIALOG_STYLE_INPUT, "{FC4949}Modify Range", "{FC4949}* {FFFFFF}Insert a new value for the {FC4949}RANGE {FFFFFF}below\n{FC4949}MUST BE NUMERIC.", "Accept", "Back");
  477.                     case 2:
  478.                     {
  479.                         if(GetPlayerMoney(playerid) > 50000)
  480.                         {
  481.                             MinigunInfo[SelectedMinigun[playerid]][MinigunHealth] = 100;
  482.                             GivePlayerMoney(playerid, -50000);
  483.                             SendClientMessage(playerid, COLOR_NOTES, "* Successfully repaired the minigun!");
  484.                         }
  485.                         else
  486.                         {
  487.                             ShowPlayerDialog(playerid, DIALOG_EDITMINIGUN1, DIALOG_STYLE_LIST, "{64CC66}Edit selected minigun.", "{64CC66}* {FFFFFF}Modify Damage\n{64CC66}* {FFFFFF}Modify Range\n{64CC66}* {FFFFFF}Repair(or fix) selected minigun", "Select", "Cancel");
  488.                             SendClientMessage(playerid, COLOR_RED, "[NOTE] You don't have enough cash!");
  489.                             return 1;
  490.                         }
  491.                     }
  492.                 }
  493.             }
  494.         }
  495.         case DIALOG_EDITMINIGUN2:
  496.         {
  497.             if(response)
  498.             {
  499.                 if(strlen(inputtext))
  500.                 {
  501.                     new Float:newdmg = strval(inputtext);
  502.                     if(newdmg == MinigunInfo[SelectedMinigun[playerid]][MinigunDamage])
  503.                     {
  504.                         ShowPlayerDialog(playerid, DIALOG_EDITMINIGUN2, DIALOG_STYLE_INPUT, "{FC4949}Modify Damage", "{FC4949}* {FFFFFF}Insert a new value for the {FC4949}DAMAGE {FFFFFF}below\n{FC4949}MUST BE NUMERIC.", "Accept", "Back");
  505.                         SendClientMessage(playerid, COLOR_RED, "[NOTE] That's the same DAMAGE value.");
  506.                         return 1;
  507.                     }
  508.                     else if(newdmg > 20 || newdmg < 5)
  509.                     {
  510.                         ShowPlayerDialog(playerid, DIALOG_EDITMINIGUN2, DIALOG_STYLE_INPUT, "{FC4949}Modify Damage", "{FC4949}* {FFFFFF}Insert a new value for the {FC4949}DAMAGE {FFFFFF}below\n{FC4949}MUST BE NUMERIC.", "Accept", "Back");
  511.                         SendClientMessage(playerid, COLOR_RED, "[NOTE] The max. DAMAGE is 20, the min. DAMAGE is 5.");
  512.                         return 1;
  513.                     }
  514.                     else
  515.                     {
  516.                         MinigunInfo[SelectedMinigun[playerid]][MinigunDamage] = newdmg;
  517.                        
  518.                         new string[72];
  519.                         format(string, sizeof(string), "* You've successfully edited the miniguns DAMAGE to %0.1f.", newdmg);
  520.                         SendClientMessage(playerid, COLOR_NOTES, string), string = "\0";
  521.                     }
  522.                 }
  523.                 else
  524.                 {
  525.                     ShowPlayerDialog(playerid, DIALOG_EDITMINIGUN2, DIALOG_STYLE_INPUT, "{FC4949}Modify Damage", "{FC4949}* {FFFFFF}Insert a new value for the {FC4949}DAMAGE {FFFFFF}below\n{FC4949}MUST BE NUMERIC.", "Accept", "Back");
  526.                     SendClientMessage(playerid, COLOR_RED, "[NOTE] You didn't type anything!");
  527.                 }
  528.             }
  529.             else ShowPlayerDialog(playerid, DIALOG_EDITMINIGUN1, DIALOG_STYLE_LIST, "{64CC66}Edit selected minigun.", "{64CC66}* {FFFFFF}Modify Damage\n{64CC66}* {FFFFFF}Modify Range\n{64CC66}* {FFFFFF}Repair(or fix) selected minigun", "Select", "Cancel");
  530.         }
  531.         case DIALOG_EDITMINIGUN3:
  532.         {
  533.             if(response)
  534.             {
  535.                 if(strlen(inputtext))
  536.                 {
  537.                     new Float:newrange = strval(inputtext);
  538.                     if(newrange == MinigunInfo[SelectedMinigun[playerid]][MinigunRange])
  539.                     {
  540.                         ShowPlayerDialog(playerid, DIALOG_EDITMINIGUN3, DIALOG_STYLE_INPUT, "{FC4949}Modify Range", "{FC4949}* {FFFFFF}Insert a new value for the {FC4949}RANGE {FFFFFF}below\n{FC4949}MUST BE NUMERIC.", "Accept", "Back");
  541.                         SendClientMessage(playerid, COLOR_RED, "[NOTE] That's the same RANGE value.");
  542.                         return 1;
  543.                     }
  544.                     else if(newrange > 35 || newrange < 10)
  545.                     {
  546.                         ShowPlayerDialog(playerid, DIALOG_EDITMINIGUN3, DIALOG_STYLE_INPUT, "{FC4949}Modify Range", "{FC4949}* {FFFFFF}Insert a new value for the {FC4949}RANGE {FFFFFF}below\n{FC4949}MUST BE NUMERIC.", "Accept", "Back");
  547.                         SendClientMessage(playerid, COLOR_RED, "[NOTE] The max. RANGE is 35, the min. RANGE is 10.");
  548.                         return 1;
  549.                     }
  550.                     else
  551.                     {
  552.                         MinigunInfo[SelectedMinigun[playerid]][MinigunRange] = newrange;
  553.  
  554.                         new string[72];
  555.                         format(string, sizeof(string), "* You've successfully edited the miniguns RANGE to %0.1f.", newrange);
  556.                         SendClientMessage(playerid, COLOR_NOTES, string), string = "\0";
  557.                     }
  558.                 }
  559.                 else
  560.                 {
  561.                     ShowPlayerDialog(playerid, DIALOG_EDITMINIGUN3, DIALOG_STYLE_INPUT, "{FC4949}Modify Range", "{FC4949}* {FFFFFF}Insert a new value for the {FC4949}RANGE {FFFFFF}below\n{FC4949}MUST BE NUMERIC.", "Accept", "Back");
  562.                     SendClientMessage(playerid, COLOR_RED, "[NOTE] You didn't type anything!");
  563.                 }
  564.             }
  565.             else ShowPlayerDialog(playerid, DIALOG_EDITMINIGUN1, DIALOG_STYLE_LIST, "{64CC66}Edit selected minigun.", "{64CC66}* {FFFFFF}Modify Damage\n{64CC66}* {FFFFFF}Modify Range\n{64CC66}* {FFFFFF}Repair(or fix) selected minigun", "Select", "Cancel");
  566.         }
  567.     }
  568.     return 1;
  569. }
  570.  
  571. CMD:editminigun(playerid, params[]) {
  572.     if(IsPlayerAdmin(playerid))
  573.     {
  574.         if(!Miniguns) return SendClientMessage(playerid, COLOR_NOTES, "[INFO] There aren't any spawned miniguns!");
  575.         new mingID = GetClosestMinigun(playerid);
  576.         if(mingID)
  577.         {
  578.             SelectedMinigun[playerid] = mingID;
  579.             ShowPlayerDialog(playerid, DIALOG_EDITMINIGUN1, DIALOG_STYLE_LIST, "{64CC66}Edit nearby minigun.", "{64CC66}* {FFFFFF}Modify Damage\n{64CC66}* {FFFFFF}Modify Range\n{64CC66}* {FFFFFF}Repair(or fix) nearby minigun ( {64CC66}50'000${FFFFFF} )", "Select", "Cancel");
  580.         }
  581.         else
  582.         {
  583.             if(sscanf(params, "i", mingID)) return SendClientMessage(playerid, COLOR_NOTES, "[USAGE] /editminigun ID");
  584.             if(!MinigunInfo[mingID][IsSpawned])  return SendClientMessage(playerid, COLOR_NOTES, "[NOTE] Invalid ID");
  585.             SelectedMinigun[playerid] = mingID;
  586.             ShowPlayerDialog(playerid, DIALOG_EDITMINIGUN1, DIALOG_STYLE_LIST, "{64CC66}Edit selected minigun.", "{64CC66}* {FFFFFF}Modify Damage\n{64CC66}* {FFFFFF}Modify Range\n{64CC66}* {FFFFFF}Repair(or fix) selected minigun", "Select", "Cancel");
  587.         }
  588.     }
  589.     else return 0;
  590.     return 1;
  591. }
  592. CMD:createminigun(playerid, params[]) {
  593.     if(IsPlayerAdmin(playerid))
  594.     {
  595.         if(Miniguns < MAX_MINIGUNS)
  596.         {
  597.             new health, Float:damage, Float:range;
  598.             if(sscanf(params, "iff", health, damage, range)) return SendClientMessage(playerid, COLOR_NOTES, "[USAGE] /createminigun HEALTH DAMAGE RANGE");
  599.            
  600.             if(health > 100 || health < 45) return SendClientMessage(playerid, COLOR_NOTES, "[INFO] The max. HEALTH is 100, the min. HEALTH is 45.");
  601.             else if(damage > 20 || damage < 5) return SendClientMessage(playerid, COLOR_NOTES, "[INFO] The max. DAMAGE is 20, the min. DAMAGE is 5.");
  602.             else if(range > 35 || range < 10) return SendClientMessage(playerid, COLOR_NOTES, "[INFO] The max. RANGE is 35, the min. RANGE is 10.");
  603.            
  604.             new Float:X, Float:Y, Float:Z, Float:Angle; GetPlayerPos(playerid, X, Y, Z); GetPlayerFacingAngle(playerid, Angle);
  605.             new id = GetAvailableID();
  606.             CreateMinigun(playerid, id, X, Y, Z, Angle, health, damage, range);
  607.            
  608.             //Remove these 4 lines ( 594 -> 597 ), if you don't want people to get notifications about miniguns being created.
  609.             new string[72];
  610.             format(string, sizeof(string), "[INFO] %s(%d) has created a minigun at %s.", GetName(playerid), playerid, GetPlayerArea(playerid));
  611.             SendClientMessageToAll(COLOR_RED, string), string = "\0";
  612.         }
  613.         else SendClientMessage(playerid, COLOR_RED, "[NOTE] The max. amount of miniguns has been reached.");
  614.     }
  615.     else return 0;
  616.     return 1;
  617. }
  618. CMD:destroyminigun(playerid, params[]) {
  619.     if(IsPlayerAdmin(playerid))
  620.     {
  621.         new mgid;
  622.         if(!Miniguns) return SendClientMessage(playerid, COLOR_NOTES, "[INFO] There aren't any spawned miniguns!");
  623.         if(isnull(params)) return SendClientMessage(playerid, COLOR_NOTES, "[USAGE] /destroyminigun ID");
  624.        
  625.         mgid = strval(params);
  626.         if(!MinigunInfo[mgid][IsSpawned]) return SendClientMessage(playerid, COLOR_NOTES, "[NOTE] Invalid ID!");
  627.        
  628.         DestroyMinigun(mgid);
  629.     }
  630.     else return 0;
  631.     return 1;
  632. }
  633. CMD:destroyminiguns(playerid, params[]) {
  634.     if(IsPlayerAdmin(playerid))
  635.     {
  636.         if(!Miniguns) return SendClientMessage(playerid, COLOR_NOTES, "[INFO] There aren't any spawned miniguns!");
  637.         DestroyMiniguns();
  638.     }
  639.     else return 0;
  640.     return 1;
  641. }
  642.  
  643.  
  644. public OnPlayerWeaponShot( playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ )
  645. {
  646.     if( hittype == BULLET_HIT_TYPE_OBJECT && hitid != INVALID_OBJECT_ID )
  647.     {
  648.         if( hitid == MinigunInfo[hitid][Object] )
  649.         {
  650.             switch(GetPlayerWeapon(playerid))
  651.             {
  652.                 case 22, 23: MinigunInfo[hitid][MinigunHealth]--;
  653.                 case 24: MinigunInfo[hitid][MinigunHealth] -= 2;
  654.                 case 25..27: MinigunInfo[hitid][MinigunHealth] -= 2+random(3);
  655.                 case 28, 29, 32: MinigunInfo[hitid][MinigunHealth] -= 1+random(2);
  656.                 case 30, 31: MinigunInfo[hitid][MinigunHealth] -= 3+random(4);
  657.                 case 33, 34: MinigunInfo[hitid][MinigunHealth] -= 2+random(5);
  658.                 case 38: MinigunInfo[hitid][MinigunHealth] -= 5+random(10);
  659.             }
  660.             new lString[124], string[112];
  661.             if(MinigunInfo[hitid][MinigunHealth] > 1)
  662.             {
  663.                 format(lString, sizeof(lString), "{FFFFFF}%s's {64CC66}minigun(ID: %d)\n{FFFFFF}Deals {64CC66}%0.1f damage\n{FFFFFF}Has {64CC66}%d health left.", GetName(MinigunInfo[hitid][CreatorID]), MinigunInfo[hitid][ID], MinigunInfo[hitid][MinigunDamage], MinigunInfo[hitid][MinigunHealth]);
  664.                 UpdateDynamic3DTextLabelText(MinigunInfo[hitid][Label], -1, lString);
  665.             }
  666.             else DestroyDynamic3DTextLabel(MinigunInfo[hitid][Label]);
  667.            
  668.             if(MinigunInfo[hitid][MinigunHealth] == 35)
  669.             {
  670.                 foreach(Player, i)
  671.                 {
  672.                     if(IsPlayerInRangeOfPoint(i, 60, MinigunInfo[hitid][mX], MinigunInfo[hitid][mY], MinigunInfo[hitid][mZ]))
  673.                     {
  674.                         format(string, sizeof(string), "* %s(%d) has damaged the minigun to %d/100 health!", GetName(playerid), playerid, MinigunInfo[hitid][MinigunHealth]);
  675.                         SendClientMessage(i, COLOR_RED, string), string = "\0";
  676.                         SendClientMessage(i, COLOR_RED, "* The Minigun has enabled its Advanced Self-Defense mode!");
  677.                     }
  678.                 }
  679.                 MinigunInfo[hitid][MinigunDamage] = 20;
  680.                 MinigunInfo[hitid][MinigunRange] = 55;
  681.             }
  682.             else if(MinigunInfo[hitid][MinigunHealth] <= 1)
  683.             {
  684.                 format(string, sizeof(string), "* %s(%d) destroyed %s's(%d) minigun!", GetName(playerid), playerid, GetName(MinigunInfo[hitid][CreatorID]), MinigunInfo[hitid][CreatorID]);
  685.                 SendClientMessageToAll(COLOR_NOTES, string), string = "\0";
  686.                 SetPlayerHealth(playerid, 99);
  687.                 GivePlayerScore(playerid, 3);
  688.                 GivePlayerMoney(playerid, 15000);
  689.                 SendClientMessage(playerid, COLOR_NOTES, "* You've received 3 score and 15'000$!");
  690.                
  691.                 DestroyMinigun(hitid);
  692.             }
  693.             return 1;
  694.         }
  695.     }
  696.     return 1;
  697. }
  698.  
  699.  
  700. stock CreateMinigun(Creator, mID, Float:X, Float:Y, Float:Z, Float:Angle, Health, Float:Damage, Float:Range)
  701. {
  702.     new lString[124];
  703.     MinigunInfo[mID][Object] = CreateObject(2985,X,Y+1,Z-0.95,0,0,0);
  704.     MinigunInfo[mID][ID] = mID;
  705.     MinigunInfo[mID][CreatorID] = Creator;
  706.     MinigunInfo[mID][IsSpawned] = 1;
  707.     MinigunInfo[mID][MinigunHealth] = Health;
  708.     MinigunInfo[mID][MinigunDamage] = Damage, MinigunInfo[mID][MinigunRange] = Range;
  709.     MinigunInfo[mID][mX] = X, MinigunInfo[mID][mY] = Y+1, MinigunInfo[mID][mZ] = Z-0.75, MinigunInfo[mID][mAngle] = Angle;
  710.     Miniguns++;
  711.     printf("[info] created minigun %d .. %d", mID, Miniguns);
  712.     printf("[info] creator: %d, health: %d, dmg: %0.1f, rng: %0.1f.", Creator, Health, Damage, Range);
  713.    
  714.     format(lString, sizeof(lString), "{FFFFFF}%s's {64CC66}minigun(ID: %d)\n{FFFFFF}Deals {64CC66}%0.1f damage\n{FFFFFF}Has {64CC66}%d health left.", GetName(Creator), mID, Damage, Health);
  715.     MinigunInfo[mID][Label] = CreateDynamic3DTextLabel(lString, -1, X,Y+1,Z, 60);
  716.     return 1;
  717. }
  718. stock DestroyMiniguns()
  719. {
  720.     for(new i = 0; i < MAX_MINIGUNS; i++)
  721.     {
  722.         if(MinigunInfo[i][IsSpawned])
  723.         {
  724.             DestroyObject(MinigunInfo[i][Object]), MinigunInfo[i][Object] = INVALID_OBJECT_ID;
  725.             MinigunInfo[i][ID] = -1;
  726.             MinigunInfo[i][CreatorID] = -1;
  727.             MinigunInfo[i][IsSpawned] = -1;
  728.             MinigunInfo[i][MinigunHealth] = -1;
  729.             MinigunInfo[i][MinigunDamage] = -1, MinigunInfo[i][MinigunRange] = -1;
  730.             MinigunInfo[i][mX] = -1, MinigunInfo[i][mY] = -1, MinigunInfo[i][mZ] = -1, MinigunInfo[i][mAngle] = -1;
  731.             DestroyDynamic3DTextLabel(MinigunInfo[i][Label]);
  732.             Miniguns = 0;
  733.         }
  734.     }
  735.     foreach(Player, x) SelectedMinigun[x] = 0;
  736.    
  737.     SendClientMessageToAll(COLOR_NOTES, "[INFO] Destroyed all miniguns.");
  738.     return 1;
  739. }
  740. stock DestroyMinigun(minigunid)
  741. {
  742.     DestroyObject(MinigunInfo[minigunid][Object]), MinigunInfo[minigunid][Object] = INVALID_OBJECT_ID;
  743.     MinigunInfo[minigunid][ID] = -1;
  744.     MinigunInfo[minigunid][CreatorID] = -1;
  745.     MinigunInfo[minigunid][IsSpawned] = -1;
  746.     MinigunInfo[minigunid][MinigunHealth] = -1;
  747.     MinigunInfo[minigunid][MinigunDamage] = -1, MinigunInfo[minigunid][MinigunRange] = -1;
  748.     MinigunInfo[minigunid][mX] = -1, MinigunInfo[minigunid][mY] = -1, MinigunInfo[minigunid][mZ] = -1, MinigunInfo[minigunid][mAngle] = -1;
  749.     SelectedMinigun[MinigunInfo[minigunid][CreatorID]] = 0;
  750.     DestroyDynamic3DTextLabel(MinigunInfo[minigunid][Label]);
  751.     Miniguns--;
  752.     return 1;
  753. }
  754. forward MinigunTimer();
  755. public MinigunTimer()
  756. {
  757.     if(Miniguns)
  758.     {
  759.         new Float:RotX,Float:RotY,Float:px,Float:py, Float:pAngle;
  760.         new string[88];
  761.         new vID;
  762.         foreach(Player, i)
  763.         {
  764.             if(IsPlayerAdmin(i)) continue;
  765.             new mingID = GetClosestMinigun(i);
  766.             if(mingID)
  767.             {
  768.                 GetPlayerPos(i, px,py,pAngle);
  769.                 PlayerPlaySound(i, 1130, px, py, pAngle);
  770.                 GetMinigunAngle(px, py, MinigunInfo[mingID][mX], MinigunInfo[mingID][mY], pAngle);
  771.                 SetObjectRot(MinigunInfo[mingID][Object], RotX, RotY, pAngle+90);
  772.                 new Float:hp, Float:ap;
  773.                 GetPlayerArmour(i, ap), GetPlayerHealth(i, hp);
  774.                 if(ap >= 10) SetPlayerArmour(i, ap-MinigunInfo[mingID][MinigunDamage]);
  775.                 else
  776.                 {
  777.                     SetPlayerArmour(i, 0);
  778.                     //SetPlayerHealth(i, hp-MinigunInfo[mingID][MinigunDamage]);
  779.                     if(hp >= 8)
  780.                     {
  781.                         SetPlayerHealth(i, hp-MinigunInfo[mingID][MinigunDamage]);
  782.                         if(IsPlayerInAnyVehicle(i))
  783.                         {
  784.                             new Float:vp;
  785.                             vID = GetPlayerVehicleID(i);
  786.                             GetVehicleHealth(i, vp);
  787.                             if(vp > 245)
  788.                             {
  789.                                 SetVehicleHealth(vID, vp-MinigunInfo[mingID][MinigunDamage]+random(75));
  790.                             }
  791.                         }
  792.                     }
  793.                     else
  794.                     {
  795.                         OnPlayerDeath(i, MinigunInfo[mingID][CreatorID], 38), SpawnPlayer(i);
  796.                         format(string, sizeof(string), "* You got killed by %s's(%d) minigun!", MinigunInfo[mingID][CreatorID], GetName(MinigunInfo[mingID][CreatorID]));
  797.                         SendClientMessage(i, COLOR_NOTES, string), string = "\0";
  798.                         format(string, sizeof(string), "* Your minigun killed %s(%d) - %d/100 health left - %0.1f damage - %0.1f radius", GetName(i), i, MinigunInfo[mingID][MinigunHealth], MinigunInfo[mingID][MinigunDamage], MinigunInfo[mingID][MinigunRange]);
  799.                         SendClientMessage(MinigunInfo[mingID][CreatorID], COLOR_NOTES, string), string = "\0";
  800.                     }
  801.                 }
  802.             }
  803.         }
  804.     }
  805.     return 1;
  806. }
  807. stock GetMinigunAngle(Float:X, Float:Y, Float:CurrentX, Float:CurrentY, &Float:Angle)
  808. {
  809.     Angle = atan2(Y-CurrentY, X-CurrentX);
  810.     Angle = floatsub(Angle, 90.0);
  811.     if(Angle < 0.0)
  812.     {
  813.         Angle = floatadd(Angle, 360.0);
  814.     }
  815. }
  816.  
  817.  
  818.  
  819. stock GetName(playerid)
  820. {
  821.     new pnameid[24];
  822.     GetPlayerName(playerid,pnameid,sizeof(pnameid));
  823.     return pnameid;
  824. }
  825. stock PlayerIP(playerid)
  826. {
  827.     new str[16];
  828.     GetPlayerIp(playerid, str, sizeof(str));
  829.     return str;
  830. }
  831. stock GivePlayerScore(playerid, score)
  832. {
  833.     SetPlayerScore(playerid, GetPlayerScore(playerid) + score);
  834.     return 1;
  835. }
  836. stock GetAvailableID()
  837. {
  838.     for(new i = 1; i<MAX_MINIGUNS; i++)
  839.     {
  840.         if(!MinigunInfo[i][IsSpawned]) return i;
  841.     }
  842.     return -1;
  843. }
  844.  
  845.  
  846. stock GetPlayerArea(playerid)
  847. {
  848.     new stringz[50];
  849.     format(stringz,sizeof(stringz),"%s",Zones[GetPlayerZone(playerid)][zone_name]);
  850.     return stringz;
  851. }
  852.  
  853. stock GetPlayerZone(playerid)
  854. {
  855.     new Float:x,Float:y,Float:z;
  856.     GetPlayerPos(playerid,x,y,z);
  857.     for(new i=0;i<sizeof(Zones);i++)
  858.     {
  859.         if(x > Zones[i][zone_minx] && y > Zones[i][zone_miny] && z > Zones[i][zone_minz] && x < Zones[i][zone_maxx] && y < Zones[i][zone_maxy] && z < Zones[i][zone_maxz])
  860.         return i;
  861.     }
  862.     return false;
  863. }
  864.  
  865. stock GetClosestMinigun(playerid)
  866. {
  867.     new Float:dist = 40.0;
  868.     new id = -1;
  869.     new Float:x,Float:y,Float:z;
  870.     new Float:tmpdis;
  871.     GetPlayerPos(playerid,x,y,z);
  872.     for(new i=1;i<MAX_MINIGUNS;i++)
  873.     {
  874.         if(!MinigunInfo[i][IsSpawned]) continue;
  875.         GetObjectPos(i,MinigunInfo[i][mX],MinigunInfo[i][mY],MinigunInfo[i][mZ]);
  876.         tmpdis = floatsqroot(floatpower(floatabs(floatsub(MinigunInfo[i][mX],x)),2)+floatpower(floatabs(floatsub(MinigunInfo[i][mY],y)),2)+floatpower(floatabs(floatsub(MinigunInfo[i][mZ],z)),2));
  877.         if(tmpdis < dist)
  878.         {
  879.             dist = tmpdis;
  880.             id = i;
  881.         }
  882.     }
  883.     return id;
  884. }
Advertisement
Add Comment
Please, Sign In to add comment