#include #include #include #include #include #undef KEY_UP #undef KEY_DOWN #undef KEY_LEFT #undef KEY_RIGHT #define KEY_UP 65408 #define KEY_DOWN 128 #define KEY_LEFT 65408 #define KEY_RIGHT 128 #define TEAM_STUNT 0 #define COLOR_GREY 0xAFAFAFAA #define COLOR_GREEN 0x33AA33AA #define COLOR_RED 0xAA3333AA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_PINK 0xFF66FFAA #define COLOR_BLUE 0x0000BBAA #define COLOR_LIGHTBLUE 0x33CCFFAA #define COLOR_DARKRED 0x660000AA #define COLOR_ORANGE 0xFF9900AA #define COLOR_WHITE 0xFFFFFFFF #define MAX_PING 600 #define ONE_SECOND 1000 #define ONE_MINUTE 60000 //sixty thousand = 1 minute #define E_FAIL 0 #define E_PASS 1 #define never 10000 //-------------------------------- new gTeam[MAX_PLAYERS]; new gPlayerClass[MAX_PLAYERS]; //-------------------------------- new IsAuth[ MAX_PLAYERS ]; new IsWarned[ MAX_PLAYERS ]; new IsWarnedTime[ MAX_PLAYERS ]; new AuthLevel[ MAX_PLAYERS ]; new PlayerMaxObjects[ MAX_PLAYERS ]; //-------------------------------- new Invulnerable[ MAX_PLAYERS ]; //-------------------------------- new PingWarnings[ MAX_PLAYERS ]; //-------------------------------- new TotalVehicles = 0; //------------------------------- new UserObjects[ MAX_PLAYERS ][ MAX_OBJECTS ][ 1 ]; //-------------------------------- #define MAX_SAVE_POS 50 new Float:PlayerSaveSpawn[ MAX_PLAYERS ][ MAX_SAVE_POS ][ 3 ]; new IsSavedLocation[ MAX_PLAYERS ][ MAX_SAVE_POS ]; new IsTeleportingOn = 1; //-------------------------------- new PlayerLastVehicle[ MAX_PLAYERS ]; new PlayerCount[ MAX_PLAYERS ]; new IsPlayerCounting[ MAX_PLAYERS ]; //-------------------------------- enum eCars { model_id, Float:pos_x, Float:pos_y, Float:pos_z, Float:z_angle, respawn_delay }; new CarSpawns[186][eCars] = { {405,2205.2,-1177.0,25.7,270.8,never},//carid 90 {554,2205.1,-1169.1,25.7,270.8,never}, {426,2216.7,-1170.6,25.7,268.3,never}, {445,2228.5,-1177.3,25.7,88.4,never}, {492,2229.2,-1170.2,25.7,86.9,never}, {507,2228.9,-1162.7,25.7,87.8,never}, {545,2217.0,-1157.2,25.7,269.8,never}, {540,169.1929,-1342.3611,69.7396,180.4404,never}, {482,422.8060,-1263.5979,51.6681,21.4204,never}, {547,405.9748,-1264.3921,50.1237,24.2110,never}, {550,2242.3, -1235.4, 24.3,359.7513,never}, {551,2223.9, -1237.3, 24.4,358.8547,never}, {560,2106.4695,-1248.7920,24.0461,0.1524,never}, {566,2196.2891,-1277.7905,24.2147,180.4522,never}, {402,198.6057,-1437.2435,13.1844,318.3837,never}, {405,216.5521,-1431.4004,13.0853,132.5749,never}, {554,334.2231,-1343.7405,14.3828,209.9581,never}, {426,481.0428,-1320.8564,15.4095,35.6808,never}, {507,697.4343,-1230.9486,16.5063,298.7916,never}, {545,723.9850,-1121.5535,18.1450,333.9010,never}, {540,912.2176,-996.2035,38.1402,7.5764,never}, {482,982.1829,-921.8636,41.8776,262.3163,never}, {547,981.8715,-917.3546,41.5443,88.0589,never}, {550,1188.4082,-925.1859,42.8590,277.5563,never}, {400,1307.5226,-914.4717,39.0082,269.3765,never}, {405,1450.2,-937.1,36.2,269.6909,never}, //116 {492,2148.3257,-1175.2518,24.1959,269.6909,never}, {507,2161.4871,-1163.1450,23.6760,269.1628,never}, {545,2216.8965,-1165.9469,25.4697,89.8643,never}, {540,2348.2910,-1167.9983,27.3637,323.1586,never}, {482,2502.0388,-1134.9507,39.1953,150.9506,never}, {547,2909.4895,-1180.3746,11.0176,222.1346,never}, {550,2853.1858,-1326.8011,11.1511,278.9301,never}, {551,2797.2690,-1549.3374,10.4935,93.0282,never}, {533,2796.9031,-1567.2024,10.6386,272.4041,never}, {482,2813.2175,-1673.0276,9.6638,2.3369,never}, {547,2827.6736,-1703.9755,9.7308,77.2896,never}, {550,2809.3872,-1837.2391,9.7398,268.9880,never}, {551,2870.8789,-1943.2599,11.4834,359.2344,never}, {566,2411.5386,-2134.7576,13.9352,0.7795,never}, {554,1389.7467,-2695.9370,13.4164,121.1818,never}, {405,783.1359,-1601.8208,13.2577,270.9069,never}, {554,782.7205,-1619.3584,13.2653,93.0550,never}, {426,923.0841,-1361.7990,13.0324,181.1371,never}, {445,911.7986,-1352.7415,13.1543,359.3287,never}, {492,1174.6599,-922.1939,43.1189,276.8927,never}, {507,1363.0210,-1288.3124,13.2839,180.1453,never}, {545,1363.2723,-1260.8229,13.0954,179.5841,never}, {540,2383.5627,-1927.9207,13.2436,359.6281,never}, {482,2377.0374,-1927.8434,13.1071,0.7843,never}, {547,2391.7234,-1978.0658,13.1963,90.1736,never}, {550,2396.6899,-1966.8123,13.2793,271.6838,never}, {551,2391.1135,-1500.6554,23.6355,269.7709,never}, {560,2390.7446,-1490.9093,23.5335,271.1926,never}, {405,321.2212,-1809.3561,4.2627,179.7758,never}, {554,334.3586,-1789.3143,4.6717,178.7722,never}, {426,343.8039,-1808.9827,4.3090,181.8368,never}, {445,499.4850,-1764.0182,5.3367,89.7930,never}, {492,646.4998,-1771.6411,13.2905,348.7706,never}, {507,740.4332,-1797.7659,13.9196,349.9927,never},//150 {545,652.4496,-1656.7273,14.4585,91.3294,never}, {540,546.0256,-1622.4747,16.4585,180.7857,never}, {482,438.9431,-1625.4088,25.7951,0.1850,never}, {547,453.3896,-1494.3240,30.7917,7.7513,never}, {550,487.6469,-1516.2312,20.0235,185.5384,never}, {551,300.5775,-1490.8882,24.3748,235.1359,never}, {560,297.9918,-1535.9011,24.3758,231.2773,never}, {566,524.0590,-1375.0093,15.8231,193.3626,never}, {405,598.9131,-1519.1414,14.8214,180.4083,never}, {554,593.2022,-1519.3578,14.9461,181.5466,never}, {426,733.5679,-1438.4880,13.3203,266.7551,never}, {445,770.4971,-1431.1127,13.3247,0.7436,never}, {492,735.9440,-1346.2430,13.3003,88.3069,never}, {507,736.8572,-1337.1550,13.3140,271.3832,never}, {545,856.7003,-1363.1852,13.4093,179.8542,never},//165 {482,888.1506,-1659.2727,13.3296,1.2414,never}, {547,879.1024,-1669.2560,13.3305,180.5853,never}, {550,888.0242,-1678.5981,13.3294,358.4990,never}, {551,920.4441,-1823.0966,12.3452,84.1821,never}, {560,986.5818,-1761.2992,13.4014,181.9385,never}, {566,1062.6744,-1757.9412,13.1956,89.0572,never}, {405,1084.3831,-1763.8369,13.1501,269.0443,never}, {554,1081.8948,-1629.9564,13.4064,90.0880,never}, {426,981.7941,-1523.5115,13.3379,267.2751,never}, {445,1014.7464,-1434.4586,13.3292,266.3129,never}, {492,2684.6,-1990.2,13.3,180.0931,never}, {507,2684.6,-2019.0,13.3 ,0.8777,never}, {545,1096.1,-1379.9,13.3,270.1909,never},//178 {540,1151.6812,-1203.2323,20.2889,273.5155,never},//179 {482,1182.2568,-1219.2407,18.4163,0.5578,never}, {547,1260.9978,-1187.1921,23.3559,183.3606,never}, {550,1331.9304,-1081.3899,24.9941,90.4092,never}, {551,1284.8755,-1525.5013,13.3451,269.4388,never}, {560,1279.1887,-1539.2032,13.3201,94.8070,never}, {566,1275.9120,-1646.7448,13.3273,267.2669,never}, {405,1318.2792,-1785.7821,13.2429,182.4215,never}, {554,1253.9153,-1833.3832,13.1734,175.3692,never}, {426,1279.2875,-1814.4156,13.1657,93.6385,never}, {445,1198.5004,-1835.2216,13.1820,93.6780,never}, {492,1479.9131,-1737.8813,13.2418,269.5805,never}, {507,1508.1047,-1737.7089,13.2418,270.0250,never}, {545,1618.0411,-1891.1044,13.3278,0.3364,never}, {540,1623.7291,-1892.7234,13.3307,180.0126,never}, {482,1742.8494,-1857.7446,13.1960,271.1740,never}, {547,1743.5837,-1844.6041,13.3557,180.3384,never}, {550,1838.1904,-1871.3842,13.1703,358.5452,never}, {551,1841.4791,-1871.6549,13.1687,179.3825,never}, {560,1777.1376,-1910.0310,13.1681,91.0725,never}, {566,1803.1235,-1920.5144,13.1758,266.0453,never}, {566,1981.0780,-1986.3513,13.3275,2.1479,never}, {405,1987.6057,-1994.9520,13.3296,359.9128,never}, {554,1978.0371,-2066.7500,13.1640,358.2871,never}, {426,1984.7471,-2066.7776,13.1625,359.7226,never}, {445,1938.0565,-2086.8459,13.3429,268.3414,never}, {492,1947.1119,-2136.3887,13.3286,90.9804,never}, {507,1932.1523,-2141.5220,13.3429,1.8383,never}, {545,1793.9172,-2148.5300,13.3781,359.7861,never}, {540,1748.0751,-2084.2090,13.3324,0.4337,never}, {482,1560.5026,-2260.5457,13.3258,268.7398,never}, {547,1461.6943,-1505.1688,13.2541,356.9007,never}, {550,1426.4930,-1402.3170,13.1800,181.0290,never}, {551,1435.0645,-1325.6835,13.2580,270.9400,never}, {560,1513.9486,-1272.5691,14.2685,181.0697,never}, {566,1583.7561,-1338.7435,16.1896,359.8619,never}, {405,1573.8772,-1209.9202,17.1378,92.7502,never}, {554,1476.2012,-1120.3083,23.5660,359.9746,never}, {426,1430.2316,-1054.8555,22.8693,359.3625,never}, {445,1574.1168,-1036.7643,23.6151,145.6786,never}, {492,1617.6676,-1009.8663,23.6052,356.8697,never}, {507,1645.3188,-1036.5238,23.6027,0.7258,never}, {545,1735.2826,-1010.5402,23.6588,346.3133,never}, {540,1770.4874,-1060.9886,23.6658,179.2750,never}, {482,1739.9854,-1084.5490,23.6660,176.8026,never}, {547,1653.1766,-1134.8994,23.6110,178.6835,never}, {550,1617.3746,-1132.8293,23.6117,91.7300,never}, {551,1790.0190,-1292.9065,13.2653,267.2964,never}, {560,1754.3009,-1476.8170,13.2402,269.6320,never}, {554,2003.3417,-1121.4993,26.3879,357.4926,never}, {426,2084.2334,-1170.0986,24.2042,91.8975,never}, {445,2229.1128,-1357.8774,23.6930,268.2194,never}, {492,2229.2278,-1345.4033,23.6892,93.3009,never}, {507,2332.5684,-1362.4845,23.7297,358.1198,never}, {545,2384.1567,-1275.6326,23.9198,101.6528,never}, {540,2432.3149,-1226.0785,24.9941,17.9805,never}, {482,2426.9612,-1224.4158,25.0000,202.7159,never}, {547,2438.4309,-1321.6925,24.1225,269.7535,never}, {551,2612.9702,-1262.6970,48.2461,269.4752,never}, {560,2659.4529,-1428.4343,30.1790,266.5051,never}, {566,2659.7053,-1422.6743,30.1714,89.8159,never}, {405,2485.5313,-1556.1823,23.7478,178.8338,never}, {554,2478.7664,-1555.7006,23.7226,183.6043,never}, {426,2605.3967,-1365.8829,34.6461,359.9891,never}, {445,2754.7136,-1373.0253,40.1154,91.4169,never}, {492,2717.3662,-1468.0308,30.0894,1.0298,never}, {507,2816.7195,-1449.4285,15.9549,268.9106,never}, {545,2816.9937,-1441.5880,15.9544,90.7779,never}, {540,2681.9016,-1673.3879,9.1290,0.5605,never}, {482,2442.5845,-1642.7507,13.1644,180.3454,never}, {547,2361.3120,-1674.6146,13.2505,357.4959,never}, {550,2298.3535,-1633.7542,14.3849,80.8107,never}, {551,2297.9077,-1639.9464,14.4352,94.4292,never}, {560,2255.4045,-1664.5736,15.1304,74.6898,never}, {566,2234.1057,-1726.9386,13.1665,271.7536,never}, {405,2319.3833,-1716.6823,13.2518,359.8540,never}, {554,2474.5105,-1755.9194,13.2522,270.5967,never}, {426,2501.8213,-1754.2794,13.1208,176.4916,never}, //= 255 {445,2489.1560,-1952.6886,13.1366,178.1629,never}, {492,2495.4326,-1953.2922,13.1299,356.5514,never}, {507,2306.7168,-1989.6796,13.2639,184.8385,never}, {482,2056.1807,-1904.7751,13.2502,2.2910,never}, {550,2064.9871,-1919.1674,13.2504,180.8575,never}, {551,1886.4812,-2022.9338,13.0964,179.4265,never}, {560,1824.8976,-2019.8374,13.0875,272.5273,never}, {566,1942.1669,-1862.6425,13.2679,264.5590,never}, {405,1923.9409,-1795.5616,13.0877,90.0886,never}, {554,1807.0905,-1571.7120,13.1659,125.1048,never}, {426,1809.9016,-1676.0603,13.2422,180.7589,never}, {445,1809.6266,-1653.3402,13.2365,180.6530,never}, {492,1809.7056,-1660.3019,13.2380,180.6262,never}, {507,1978.4003,-1675.0157,15.6741,269.7336,never}, {545,1974.8230,-1693.5488,15.6741,92.1162,never}, {540,1929.2253,-1584.6954,13.2700,185.5542,never}, {482,1731.9725,-1590.8959,13.1630,77.7249,never}, {547,1721.5776,-1589.2834,13.1526,80.9057,never}, {550,1695.1428,-1519.2667,13.1671,0.7121,never}, {551,1694.7080,-1501.7454,13.1675,357.8150,never} }; //===================================================================================================== //important functions here public GetPlayerTeamColor( playerid ) { return COLOR_LIGHTBLUE; } public GetPlayerCaption( playerid ) { new szName[ 256 ]; GetPlayerName( playerid, szName, sizeof( szName ) ); return szName; } public GetPlayerIPA( playerid ) { new szIP[ 256 ]; GetPlayerIp(playerid, szIP, sizeof( szIP )); return szIP; } public minrand( min, max ) { return random(max - min) + min; } public RandomPlayerID( ) { new iRet = 2000; while( IsPlayerConnected( iRet ) == 0 ) { iRet = minrand( 0, MAX_PLAYERS ); } return iRet; } public IsValidObjectModel( modelid ) { switch( modelid ) { case 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1445, 1487, 1299, 4022, 620, 4550, 15030, 15029, 15031, 15042, 1768, 1818, 1717, 2100, 2023, 2297, 2126, 2249, 2138, 2139, 2136, 2135, 2121, 2109, 13592, 13666, 13641, 13639, 13634, 8493, 3374, 1305, 2918, 1472, 9766, 5130, 4563, 1468, 1583, 1584, 1574, 1248, 1512, 1598, 1608, 1594, 1607, 1813, 3642, 3616, 9322, 2780, 3425, 3461, 3515, 3524, 3528, 3586, 6865, 7916, 8484, 8979, 14608, 16776, 3397, 10009, 13831, 14467, //jacob objects 902, 903, 953, 1461, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1609, 1610, 1611, 1637, 1640, 1641, 1642, 1643, 2404, 2405, 2406, 2410, 2782, //beach and sea 1612, 3406, 3578, 3620, 3753, 3879, 3886, 5108, 5109, 5115, 5143, 5145, 5146, 5154, 5155, 5156, 5157, 5158, 5160, 5166, 5167, 5176, 5184, 6188, 6189, 6230, 6300, 8373, 9090, 9229, 9230, 9253, 9257, 9329, 9584, 9585, 9586, 9590, 9612, 9613, 9818, 9819, 9820, 9821, 9822, 9829, 9858, 9902, 9954, 9955, 9956, 9958, 10140, 10226, 10227, 10229, 10230, 10300, 10301, 10305, 10771, 10793, 10794, 10795, 10824, 10826, 10827, 10828, 10830, 10831, 10833, 10834, 10841, 11009, 11145, 11146, 11237, 11495, 12990, 16502, 17068, 18024, //ships docks etc 3249, 6869, 6985, 6987, 6988, 6989, 7071, 7263, 7265, 7289, 7521, 8395, 8399, 8400, 8501, 8663, 9070, 9071, 9072, 9076, 9104, 9582, 10398, 10713, 13132, 14399, 14463, 14533, 14536, 14537, 14546, 14560, 14563, 14581, 14590, 14606, 14607, 14614, 14623, 14624, 14625, 14738, 14777, 14785, 14808, 14809, 14815, 14821, 14831, 14832, 14835, 14836, 14838, 16021, 16051, 16146, 16150, 16690, 17523, 17700, 18018, 18028, 18090, //bar & casino 3689, 3707, 3755, 3776, 4860, 5129, 5131, 5135, 5137, 5138, 5139, 5174, 5175, 5177, 5180, 5183, 5192, 5278, 5309, 5310, 5313, 5397, 5728, 6340, 6404, 6490, 6925, 7019, 7020, 7021, 7035, 7269, 7490, 7492, 7494, 7495, 7496, 7497, 7513, 7627, 7832, 7861, 8057, 8058, 8059, 8060, 8061, 8062, 8063, 8064, 8065, 8066, 8067, 8069, 8254, 8255, 8260, 8300, 8544, 8545, 8546, 9243, 9244, 9247, 9260, 9680, 10775, 10776, 10840, 10843, 10844, 10845, 10846, 10847, 10856, 10965, 10966, 11010, 11011, 11012, 11081, 11085, 11086, 11087, 11089, 11090, 11093, 11233, 11234, 11235, 11236, 11244, 11290, 11293, 11295, 11461, 11543, 12847, 12931, 12941, 12981, 12988, 13059, 13060, 13061, 13065, 13066, 13077, 13078, 13198, 14572, 14577, 14588, 14784, 14795, 16271, 16272, 16385, 16398, 16399, 16400, 17012, 17013, 17014, 17015, 17016, 17017, 17021, 17022, 17023, 17024, 17038, 17040, 17049, 17050, 17051, 17072, 17073, 17538, 17546, 17636, 18200, 18365, 18496, //factories and warehouses 1675, 1677, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3178, 3241, 3242, 3246, 3250, 3253, 3283, 3284, 3285, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3351, 3353, 3355, 3356, 3362, 3414, 3415, 3417, 3418, 3442, 3443, 3444, 3445, 3446, 3449, 3454, 3455, 3456, 3457, 3464, 3466, 3483, 3484, 3485, 3486, 3487, 3488, 3501, 3555, 3556, 3557, 3558, 3580, 3582, 3583, 3584, 3587, 3588, 3589, 3590, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3612, 3613, 3614, 3617, 3618, 3619, 3622, 3623, 3624, 3626, 3628, 3634, 3635, 3639, 3640, 3641, 3644, 3646, 3648, 3649, 3651, 3653, 3655, 3661, 3676, 3677, 3678, 3684, 3697, 3698, 3700, 3702, 3704, 3711, 3713, 3741, 3759, 3762, 3764, 3765, 3783, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3842, 3843, 3844, 3845, 4178, 4861, 4886, 5060, 5151, 5341, 5416, 5421, 5423, 5425, 5444, 5445, 5446, 5447, 5448, 5450, 5451, 5452, 5453, 5461, 5462, 5475, 5476, 5520, 5626, 5642, 5643, 5655, 5656, 5722, 5723, 5775, 5874, 5891, 5892, 5986, 6038, 6039, 6041, 6042, 6047, 6057, 6058, 6132, 6133, 6134, 6135, 6136, 6137, 6138, 6284, 6285, 6286, 6294, 6436, 6522, 6868, 6920, 6921, 6922, 6923, 6926, 7200, 7287, 7489, 7491, 7533, 7534, 7535, 7681, 7885, 7929, 7932, 7940, 8425, 8427, 8428, 8433, 8437, 8513, 9098, 9220, 9221, 9227, 9228, 9238, 9258, 9259, 9270, 9271, 9272, 9273, 9274, 9275, 9319, 9320, 9323, 9324, 9325, 9326, 9327, 9328, 9341, 9495, 9496, 9497, 9498, 9499, 9500, 9501, 9502, 9503, 9504, 9506, 9507, 9509, 9510, 9511, 9512, 9513, 9515, 9516, 9517, 9518, 9520, 9521, 9522, 9523, 9524, 9529, 9547, 9549, 9550, 9572, 9573, 9576, 9577, 9578, 9579, 9580, 9581, 9592, 9598, 9599, 9737, 9738, 9739, 9740, 9741, 9742, 9748, 9749, 9750, 9751, 9752, 9753, 9754, 9762, 9763, 9764, 9765, 9894, 9895, 9903, 9904, 9909, 9916, 9920, 9927, 9947, 9948, 9952, 10013, 10014, 10015, 10016, 10017, 10019, 10020, 10021, 10022, 10043, 10048, 10050, 10053, 10055, 10080, 10084, 10086, 10101, 10187, 10188, 10189, 10278, 10287, 10289, 10306, 10427, 10634, 10988, 10989, 10990, 10991, 10992, 10993, 10995, 10998, 11001, 11002, 11004, 11433, 11490, 11491, 11501, 11502, 11503, 12937, 12938, 12939, 12940, 12991, 13681, 13687, 13694, 13695, 13696, 13697, 13701, 13721, 13724, 13729, 13746, 13747, 13753, 13754, 13755, 13816, 14385, 14388, 14389, 14390, 14417, 14418, 14419, 14420, 14421, 14422, 14423, 14424, 14425, 14426, 14427, 14428, 14429, 14430, 14431, 14471, 14474, 14475, 14476, 14484, 14485, 14492, 14495, 14500, 14512, 14525, 14526, 14534, 14639, 14700, 14701, 14702, 14703, 14706, 14707, 14708, 14709, 14710, 14711, 14712, 14713, 14714, 14717, 14718, 14735, 14736, 14746, 14748, 14750, 14754, 14755, 14756, 14758, 14759, 14760, 14771, 14801, 14803, 14859, 14865, 14889, 15041, 15046, 15048, 15054, 15055, 15058, 15059, 16105, 16280, 16285, 16689, 17005, 17008, 17041, 17044, 17045, 17067, 17335, 17547, 17549, 17551, 17552, 17553, 17554, 17555, 17560, 17562, 17573, 17575, 17679, 17690, 17697, 17698, 17699, 17804, 17807, 17809, 17859, 17888, 17893, 17894, 17901, 17922, 17926, 17928, 17934, 17944, 18230, 18258, 18259, 18267, //buildings, apartments 3781, 4002, 4005, 4006, 4007, 4008, 4017, 4019, 4021, 4023, 4028, 4033, 4113, 4193, 4558, 4559, 4564, 4569, 4570, 4571, 4572, 4573, 4576, 4585, 4586, 4587, 4600, 4601, 4602, 4603, 4681, 4690, 4718, 5033, 5735, 5736, 5740, 5767, 5881, 5882, 5999, 6059, 6063, 6087, 6088, 6099, 6100, 6102, 6148, 6159, 6199, 6205, 6211, 6212, 6288, 6332, 6336, 6342, 6351, 6364, 6366, 6368, 6371, 6373, 6388, 6389, 6390, 6391, 6966, 6993, 7009, 7528, 7584, 7585, 7696, 8391, 8392, 8393, 8419, 8421, 8422, 8424, 8434, 8480, 8482, 8485, 8488, 8489, 8490, 8527, 8528, 8555, 8565, 8566, 8568, 9361, 9907, 9919, 10027, 10041, 10044, 10056, 10060, 10063, 10143, 10308, 10610, 10619, 10676, 10871, 10945, 10947, 10948, 11431, 11566, 13006, 14593, 14594, 14595, 14597, 14602, 16004, 16326, 17533, //offices and skyscrapers 967, 1638, 1684, 3243, 3292, 3293, 3504, 3615, 3866, 3873, 3887, 3976, 3980, 3986, 3998, 4013, 4014, 4079, 4101, 4103, 4552, 4554, 5116, 5402, 5403, 5408, 5426, 5705, 5706, 5708, 5710, 5711, 5712, 5716, 5720, 5763, 5835, 5837, 5863, 5864, 5865, 5886, 6036, 6037, 6040, 6296, 6337, 6863, 6864, 6866, 6871, 6872, 6873, 6874, 6875, 6962, 6994, 7011, 7023, 7027, 7094, 7511, 7525, 8034, 84079, 8130, 8131, 8136, 8168, 8169, 8230, 8231, 8237, 8397, 8431, 8500, 8575, 8578, 8591, 8620, 8675, 8867, 8870, 8881, 8882, 8955, 9037, 9039, 9052, 9078, 9106, 9114, 9310, 9593, 9623, 9624, 9834, 9835, 9836, 9900, 9901, 9918, 9931, 9949, 9950, 9951, 10023, 10031, 10049, 10270, 10368, 10377, 10378, 10379, 10380, 10381, 10401, 10433, 10631, 10829, 10832, 10941, 10942, 11008, 11015, 11088, 11425, 11426, 11427, 11428, 11440, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11451, 11454, 11457, 11458, 11459, 11492, 12805, 12925, 12928, 12929, 12935, 12942, 12943, 12959, 12960, 12978, 12983, 13007, 13027, 13190, 13295, 13725, 14408, 14412, 14413, 14415, 14444, 14445, 14447, 14466, 14530, 14576, 14592, 16095, 16096, 16137, 16138, 16287, 16344, 16348, 16352, 16354, 16359, 16364, 16376, 16386, 16387, 16563, 16564, 16769, 16770, 16774, 17688, 17946, 18033, 18036, 18045, 18049, 18065, 18234, 18235, 18236, 18274, 18552, //other buildings 3436, 3469, 4016, 4141, 4857, 4887, 4888, 5168, 5189, 5406, 5413, 5418, 5430, 5718, 5732, 5814, 6010, 6257, 6283, 6907, 7037, 7240, 7387, 7389, 7426, 7509, 7596, 7972, 7973, 8409, 8411, 8498, 8499, 8534, 8535, 8710, 9615, 9824, 9859, 9860, 9898, 10193, 10194, 10195, 10196, 10197, 10310, 10412, 10425, 10446, 10606, 10718, 10744, 11469, 11549, 11674, 12924, 12976, 13361, 14383, 14479, 14506, 14655, 14674, 14675, 15033, 15034, 15053, 16012, 16066, 16067, 16070, 16106, 16143, 16144, 16562, 16568, 16605, 16673, 16767, 16781, 17534, 18009, 18020, 18021, 18022, 18023, 18029, 18056, 18058, 18237, 18239, 18242, //resturant and hotels 3452, 3453, 3819, 5390, 5400, 6066, 7416, 7417, 7420, 7421, 7422, 7600, 7601, 7602, 7603, 7604, 7617, 7983, 8201, 8333, 8417, 10385, 10405, 10406, 10407, 10408, 10409, 10410, 10561, 10954, 10955, 13595, 13598, 13599, 13602, 13603, 13606, 13607, 13608, 13609, 13610, 13611, 13612, 13613, 13614, 13615, 13616, 13617, 13618, 13619, 13620, 13621, 13624, 13625, 13627, 13631, 13628, 13632, 13629, 13633, 13630, 13642, 13650, 13651, 13657, 13661, 13662, 13659, 13660, 13801, 14449, 14486, 14488, 14778, 14779, 14780, 14781, 14782, 14786, 14787, 14788, 14789, 14790, 14791, 14792, 14794, 14825, 14827, 17511, 17513, 17515, 17563, 17582, 17841, //sports and stadium 3988, 4001, 4004, 4011, 4018, 4048, 4058, 4059, 4060, 4112, 4114, 4117, 4123, 4176, 4555, 4593, 4594, 4682, 4683, 4708, 4848, 4850, 4877, 4880, 4894, 5016, 5017, 5040, 5042, 5110, 5134, 5136, 5140, 5142, 5173, 5179, 5181, 5182, 5187, 5267, 5392, 5393, 5410, 5414, 5521, 5532, 5628, 5704, 5709, 5717, 5719, 5721, 5725, 5726, 5727, 5729, 5730, 5731, 5733, 5734, 5737, 5738, 5760, 5761, 5762, 5765, 5768, 5769, 5771, 5781, 5782, 5784, 5787, 5792, 5810, 5813, 5819, 5848, 5870, 5896, 6048, 6053, 6060, 6061, 6095, 6096, 6098, 6103, 6104, 6130, 6145, 6150, 6151, 6157, 6158, 6186, 6187, 6282, 6334, 6338, 6354, 6355, 6369, 6406, 6488, 6908, 6919, 6924, 6944, 6946, 6947, 6977, 7088, 7234, 7424, 7493, 7506, 7507, 7508, 7510, 7526, 7529, 7531, 7554, 7599, 7650, 7658, 7985, 8068, 8242, 8401, 8403, 8432, 8435, 8436, 8494, 8495, 8496, 8503, 8504, 8505, 8506, 8507, 8508, 8509, 8516, 8567, 8569, 8570, 8571, 8581, 8639, 8643, 8668, 8687, 8688, 8689, 8839, 8842, 8849, 9054, 9055, 9162, 9163, 9299, 9300, 9301, 9302, 9303, 9494, 9514, 9595, 9906, 9908, 9910, 9911, 9912, 9913, 9914, 9917, 9921, 9922, 9923, 9924, 9925, 9926, 9928, 9929, 9953, 10025, 10028, 10030, 10035, 10037, 10038, 10039, 10045, 10046, 10052, 10054, 10142, 10148, 10288, 10369, 10375, 10376, 10383, 10388, 10390, 10391, 10392, 10393, 10423, 10428, 10429, 10430, 10431, 10432, 10434, 10435, 10439, 10441, 10447, 10624, 10625, 10626, 10627, 10628, 10630, 10633, 10722, 10891, 10925, 10949, 10950, 10951, 10952, 10953, 10973, 10974, 10975, 10977, 10978, 10979, 10980, 10981, 10982, 10994, 10996, 10997, 10999, 11000, 11092, 11301, 11312, 11314, 11315, 11317, 11434, 11436, 11449, 11450, 11456, 11471, 11475, 11497, 11545, 11546, 11615, 12822, 12841, 12843, 12844, 12845, 12849, 12850, 12855, 12862, 12863, 12923, 12944, 12945, 12946, 12947, 12948, 12949, 12951, 12953, 12962, 12963, 12964, 12979, 12980, 12982, 12984, 13008, 13012, 13013, 13014, 13015, 13022, 13131, 13363, 13364, 13761, 14531, 14661, 14664, 14665, 14667, 14670, 14671, 14672, 14676, 14682, 14689, 14668, 14669, 16005, 16007, 16011, 16053, 16054, 16064, 16065, 16068, 16069, 16361, 16396, 16475, 17066, 17503, 17508, 17517, 17519, 17520, 17521, 17522, 17524, 17526, 17529, 17531, 17536, 17537, 17542, 17543, 17544, 17577, 17853, 17862, 18007, 18008, 18025, 18026, 18027, 18030, 18031, 18038, 18082, 18083, 18088, 18203, 18233, 18238, 18240, 18241, 18261, 18264, 18265, 18266, 18282, //Stores and Shops 1376, 1378, 1380, 1381, 1383, 1384, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 3474, 5126, 10825, 11400, 11401, 11406, 16328, 16332, 16337, 16355, 16356, //cranes 925, 930, 931, 944, 964, 1271, 1348, 1362, 1431, 1685, 2038, 2039, 2040, 2041, 2042, 2043, 2358, 2359, 2464, 2465, 2466, 2468, 2476, 2477, 2478, 2479, 2480, 2481, 2483, 2567, 2654, 2669, 2678, 2679, 2694, 3565, 3566, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3621, 3630, 3632, 3633, 3722, 3724, 3761, 3796, 3798, 3799, 3800, 5132, 5259, 5260, 5261, 5262, 5269, 5855, 7025, 7040, 7102, 7104, 7172, 7186, 7317, 7515, 7516, 7527, 7561, 7620, 7621, 7622, 7834, 7836, 8073, 8074, 8075, 8076, 8077, 8078, 8335, 8337, 8339, 8341, 8883, 8884, 8885, 8886, 9587, 9588, 9589, 9604, 10231, 10248, 10576, 10773, 10774, 10811, 10814, 12821, 12859, 12860, 12861, 12913, 12927, 12930, 12955, 12977, 13025, 13489, 14549, 14552, 14558, 14612, 14613, 14800, 14878, 16599, 16601, 17019, 17020, 17055, 18257, 18260, //crates drums racks 914, 915, 919, 920, 927, 929, 934, 943, 958, 959, 1353, 1354, 1420, 1617, 1618, 1623, 1624, 1625, 1626, 1628, 1629, 1630, 1635, 1687, 1688, 1689, 1690, 1691, 2649, 2653, 3214, 3255, 3256, 3257, 3258, 3259, 3272, 3273, 3287, 3384, 3427, 3470, 3502, 3529, 3530, 3631, 3636, 3637, 3638, 3643, 3673, 3675, 3804, 3805, 3812, 3813, 3865, 6867, 6928, 6929, 6930, 6931, 6932, 6933, 6934, 7024, 7103, 7105, 7201, 7236, 7238, 7291, 7947, 7950, 10675, 11147, 11148, 11149, 11484, 11485, 11486, 11487, 12911, 12912, 12986, 14573, 14584, 14635, 14882, 16071, 16072, 16073, 16074, 16075, 16076, 16078, 16079, 16080, 16081, 16083, 16086, 16087, 16267, 16301, 16309, 16311, 16314, 16316, 16318, 16340, 16342, 16345, 16346, 16349, 16395, 16446, 16481, 16530, 16531, 16532, 16533, 16534, 16535, 16666, 16766, 17001, 18201, //general industrial 1455, 1484, 1485, 1486, 1488, 1509, 1510, 1511, 1517, 1520, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1551, 1664, 1665, 1666, 1667, 1668, 1669, 1732, 1950, 1951, 14565, 16151, 16152, //BAR ITEMS 1515, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1895, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1947, 1948, 1952, 1953, 1955, 1956, 1978, 1979, 2188, 2189, 2324, 2325, 2326, 2327, 2347, 2348, 2349, 2618, 2640, 2681, 2754, 2778, 2779, 2783, 2785, 2872, 3430, 3437, 3438, 3440, 3441, 3494, 3498, 3499, 3503, 14566, 14567, 14568, 14582, //CASINO OBJECTS 936, 937, 941, 1416, 1417, 1421, 1645, 1646, 1647, 1730, 1740, 1741, 1742, 1743, 1744, 1754, 1755, 1758, 1759, 1762, 1765, 1767, 1769, 1814, 1815, 1816, 1817, 1819, 1820, 1821, 1822, 1823, 2000, 2007, 2014, 2015, 2016, 2018, 2019, 2020, 2021, 2022, 2024, 2025, 2046, 2063, 2065, 2066, 2067, 2078, 2081, 2082, 2083, 2084, 2087, 2088, 2089, 2092, 2094, 2095, 2128, 2129, 2133, 2134, 2137, 2140, 2141, 2142, 2143, 2145, 2148, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2167, 2168, 2187, 2191, 2197, 2199, 2200, 2204, 2208, 2210, 2211, 2234, 2235, 2236, 2291, 2292, 2295, 2303, 2304, 2305, 2306, 2307, 2323, 2328, 2329, 2330, 2334, 2335, 2338, 2341, 2416, 2418, 2419, 2451, 2462, 2463, 2475, 2482, 2502, 2509, 2529, 2530, 2531, 2532, 2533, 2534, 2562, 2568, 2569, 2570, 2573, 2574, 2576, 2591, 2604, 2606, 2608, 2609, 2610, 2708, 2737, 5171, 9362, 11334, 13003, 13890, 14455, 14472, 14477, 14491, 14493, 14502, 14503, 14504, 14505, 14507, 14508, 14509, 14510, 14535, 14540, 14543, 14544, 14556, 14632, 14633, 14640, 14704, 14719, 14720, 14721, 14739, 14741, 14745, 14802, 14805, 14813, 14816, 14817, 14828, 14839, 14850, 14888, 14895, 15025, 15026, 15032, 15036, 15052, 16154, 16378, 18019, 18077, //FURNITURE 1513, 1514, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1959, 1972, 1973, 1981, 1982, 1983, 1984, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 2012, 2362, 2365, 2366, 2367, 2368, 2369, 2375, 2376, 2379, 2385, 2387, 2388, 2393, 2403, 2412, 2413, 2414, 2422, 2423, 2424, 2433, 2434, 2435, 2436, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2454, 2455, 2457, 2458, 2459, 2460, 2461, 2467, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2505, 2506, 2507, 2508, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2577, 2578, 2579, 2581, 2582, 2583, 2584, 2585, 2586, 2589, 2590, 2593, 2594, 2597, 2598, 2601, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2652, 2698, 2699, 2701, 2749, 2750, 2751, 2752, 2753, 2771, 2803, 2804, 2805, 2806, 2871, 12854, 14403, 14650, 14651, 14652, 14653, 14654, 14660, 14666, 14678, 14679, 14685, 14686, 14693, 14811, 14890, 18061, 18064, 18070, 18092, //shop items 643, 1256, 1280, 1281, 1368, 1432, 1433, 1516, 1562, 1563, 1663, 1670, 1671, 1679, 1704, 1705, 1708, 1711, 1714, 1715, 1716, 1720, 1721, 1722, 1723, 1724, 1726, 1727, 1728, 1729, 1735, 1739, 1746, 1805, 1806, 1810, 1811, 1824, 1825, 1826, 1827, 1896, 1954, 1957, 1963, 1968, 1969, 1970, 1998, 1999, 2008, 2009, 2027, 2079, 2096, 2120, 2122, 2123, 2124, 2125, 2165, 2166, 2169, 2171, 2172, 2173, 2174, 2175, 2180, 2181, 2182, 2183, 2184, 2185, 2193, 2198, 2205, 2206, 2207, 2209, 2293, 2308, 2309, 2310, 2311, 2313, 2314, 2315, 2319, 2321, 2343, 2346, 2350, 2356, 2370, 2592, 2605, 2607, 2635, 2636, 2637, 2638, 2639, 2644, 2723, 2724, 2725, 2746, 2747, 2748, 2762, 2763, 2764, 2776, 2777, 2784, 2788, 2799, 2800, 2801, 2802, 2807, 2808, 3383, 3657, 3752, 11631, 11665, 12842, 14401, 14405, 14458, 14490, 14619, 14620, 14657, 14770, 14810, 14833, 14837, 14869, 18055, 18057, 18059, 18060, //tables & chairs 3975, 3977, 3978, 3981, 3982, 3983, 3984, 3985, 3987, 3989, 3997, 4000, 4010, 4012, 4020, 4027, 4029, 4030, 4109, 4110, 4122, 4186, 4197, 4198, 4551, 4556, 4562, 4568, 4584, 4590, 4604, 4643, 4700, 4703, 4712, 4806, 4811, 4812, 4813, 4814, 4858, 4873, 4879, 5105, 5107, 5111, 5122, 5123, 5144, 5185, 5186, 5270, 5273, 5274, 5279, 5311, 5342, 5343, 5355, 5404, 5419, 5420, 5459, 5474, 5518, 5519, 5652, 5739, 5741, 5815, 5823, 5845, 5857, 6064, 6101, 6152, 6160, 6165, 6213, 6217, 6227, 6280, 6281, 6293, 6297, 6312, 6313, 6343, 6347, 6398, 6416, 6417, 6443, 6497, 6882, 6883, 6884, 6885, 6979, 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 7098, 7099, 7100, 7101, 7203, 7217, 7218, 7247, 7248, 7249, 7250, 7251, 7252, 7253, 7254, 7357, 7448, 7449, 7450, 7451, 7452, 7453, 7454, 7455, 7456, 7460, 7462, 7463, 7464, 7465, 7466, 7467, 7468, 7469, 7470, 7471, 7472, 7473, 7474, 7530, 7553, 7557, 7588, 7882, 7889, 7994, 7996, 7997, 7999, 8000, 8001, 8003, 8004, 8005, 8006, 8033, 8037, 8071, 8133, 8198, 8199, 8202, 8228, 8232, 8264, 8283, 8288, 8306, 8351, 8352, 8353, 8398, 8402, 8404, 8463, 8465, 8466, 8467, 8469, 8486, 8497, 8515, 8529, 8531, 8533, 8553, 8554, 8564, 8582, 8583, 8584, 8585, 8661, 8664, 8671, 8672, 8677, 8844, 8850, 8857, 8859, 9047, 9056, 9057, 9062, 9064, 9065, 9066, 9083, 9135, 9136, 9137, 9138, 9139, 9140, 9173, 9209, 9215, 9216, 9223, 9224, 9234, 9236, 9246, 9249, 9254, 9255, 9256, 9261, 9284, 9285, 9286, 9287, 9288, 9289, 9290, 9291, 9304, 9306, 9309, 9311, 9312, 9313, 9315, 9338, 9342, 9346, 9351, 9483, 9505, 9508, 9530, 9551, 9552, 9553, 9597, 9830, 9864, 9915, 9946, 10036, 10047, 10083, 10242, 10274, 10350, 10351, 10352, 10353, 10354, 10355, 10370, 10371, 10372, 10373, 10374, 10382, 10387, 10389, 10395, 10399, 10404, 10413, 10436, 10438, 10443, 10559, 10563, 10564, 10565, 10566, 10567, 10568, 10569, 10570, 10571, 10608, 10609, 10635, 10850, 10865, 10936, 10938, 10943, 10946, 10969, 10976, 11005, 11006, 11013, 11082, 11083, 11139, 11287, 11288, 11367, 11420, 11429, 11430, 11488, 11506, 11507, 11508, 11511, 11512, 11513, 11517, 11518, 11519, 11522, 11523, 11525, 11526, 11527, 11528, 11529, 11531, 11532, 11533, 11535, 11542, 11553, 11559, 11629, 11647, 12823, 12870, 12908, 12926, 12952, 12969, 13083, 13103, 13106, 13134, 13135, 13136, 13144, 13145, 13146, 13171, 13175, 13176, 13178, 13179, 13213, 13214, 13486, 13675, 13804, 13805, 13813, 13820, 16055, 16056, 16057, 16058, 16059, 16097, 16102, 16103, 16109, 16147, 16148, 16149, 16157, 16158, 16159, 16160, 16161, 16162, 16163, 16164, 16165, 16166, 16167, 16168, 16169, 16170, 16171, 16172, 16173, 16174, 16175, 16176, 16177, 16178, 16179, 16180, 16181, 16182, 16184, 16185, 16186, 16187, 16188, 16189, 16190, 16191, 16192, 16193, 16195, 16196, 16197, 16199, 16200, 16201, 16203, 16204, 16205, 16206, 16207, 16208, 16209, 16211, 16212, 16213, 16214, 16215, 16216, 16217, 16218, 16219, 16220, 16221, 16222, 16224, 16225, 16226, 16227, 16228, 16229, 16230, 16231, 16232, 16234, 16235, 16236, 16237, 16239, 16240, 16241, 16242, 16243, 16244, 16245, 16246, 16247, 16248, 16249, 16250, 16251, 16252, 16253, 16254, 16255, 16256, 16257, 16258, 16259, 16260, 16261, 16262, 16263, 16264, 16397, 16421, 16422, 16423, 16424, 16593, 16693, 16694, 17079, 17080, 17082, 17085, 17086, 17087, 17089, 17092, 17104, 17105, 17121, 17123, 17124, 17125, 17127, 17128, 17134, 17135, 17472, 17500, 17506, 17507, 17541, 17545, 17559, 17567, 17568, 17619, 17633, 17645, 17677, 17685, 17689, 17892, 17906, 18293, 18294, 18295, 18296, 18297, 18298, 18299, 18300, 18301, 18302, 18303, 18304, 18305, 18306, 18307, 18308, 18309, 18310, 18311, 18312, 18313, 18314, 18315, 18316, 18317, 18318, 18319, 18320, 18321, 18324, 18325, 18326, 18327, 18328, 18329, 18330, 18335, 18336, 18337, 18342, 18346, 18347, 18348, 18349, 18353, 18355, 18360, 18361, 18362, 18363, 18364, 18469, //concrete and rock landmasses 3522, 4701, 4702, 4810, 4815, 4842, 4843, 4844, 4845, 4847, 4851, 4852, 4859, 4875, 4876, 4897, 4898, 5036, 5114, 5172, 5424, 5427, 5428, 5429, 5443, 5457, 5458, 5471, 5624, 5640, 5743, 5812, 5871, 5875, 5878, 5887, 5987, 6006, 6007, 6065, 6094, 6203, 6233, 6234, 6236, 6315, 6356, 6487, 7032, 7353, 7359, 7457, 7458, 7459, 7461, 7475, 7536, 7537, 7579, 7582, 7616, 7998, 8002, 8007, 8008, 8072, 8091, 8200, 8459, 8460, 8461, 8462, 8468, 8532, 8654, 8655, 8868, 8983, 9046, 9082, 9086, 9087, 9206, 9207, 9208, 9210, 9211, 9212, 9213, 9214, 9217, 9218, 9219, 9225, 9226, 9235, 9242, 9248, 9276, 9305, 9345, 9353, 9519, 9554, 9555, 9556, 9596, 9605, 9606, 9607, 9609, 9610, 9611, 9614, 9616, 9617, 9863, 9889, 9891, 9930, 10034, 10087, 10151, 10273, 10290, 10358, 10384, 10386, 10400, 10403, 10411, 10414, 10415, 10416, 10417, 10418, 10419, 10420, 10421, 10422, 10451, 10453, 10454, 10491, 10492, 10560, 10562, 10601, 10612, 10613, 10616, 10618, 10637, 10638, 10694, 10851, 10861, 10862, 10863, 10864, 10903, 10904, 10905, 10917, 10926, 10939, 10959, 10960, 10961, 10962, 10972, 10983, 11097, 11106, 11107, 11223, 11224, 11225, 11226, 11297, 11303, 11332, 11335, 11340, 11362, 11363, 11364, 11408, 11509, 11510, 11514, 11515, 11516, 11520, 11521, 11524, 11530, 11537, 11538, 11539, 11540, 11541, 11552, 11554, 11555, 11557, 11560, 11628, 12804, 12814, 12824, 12825, 12864, 12865, 12866, 12868, 12869, 12871, 12872, 12916, 12989, 13017, 13019, 13021, 13030, 13035, 13036, 13039, 13040, 13041, 13042, 13043, 13044, 13049, 13050, 13051, 13070, 13071, 13072, 13081, 13082, 13084, 13099, 13100, 13101, 13102, 13104, 13105, 13107, 13120, 13121, 13122, 13123, 13124, 13125, 13126, 13147, 13148, 13149, 13150, 13156, 13157, 13158, 13163, 13165, 13167, 13172, 13177, 13180, 13181, 13207, 13208, 13209, 13210, 13211, 13212, 13235, 13236, 13237, 13297, 13370, 13371, 13490, 13679, 13686, 13691, 13692, 13698, 13700, 13702, 13710, 13711, 13715, 13716, 13719, 13723, 13734, 13737, 13740, 13741, 13742, 13756, 13757, 13795, 13809, 13818, 13821, 13823, 13824, 13825, 13826, 13871, 13872, 16183, 16194, 16198, 16202, 16210, 16233, 16238, 16684, 16685, 17075, 17081, 17083, 17084, 17088, 17090, 17091, 17093, 17094, 17095, 17096, 17097, 17098, 17099, 17100, 17101, 17102, 17103, 17106, 17107, 17108, 17109, 17113, 17114, 17115, 17116, 17117, 17118, 17119, 17122, 17126, 17129, 17130, 17131, 17132, 17133, 17136, 17137, 17138, 17139, 17140, 17141, 17142, 17143, 17144, 17145, 17301, 17302, 17471, 17548, 17574, 17589, 17594, 17601, 17614, 17615, 17616, 17617, 17618, 17620, 17664, 17665, 17678, 17691, 17696, 17864, 17865, 17866, 17877, 17878, 17880, 17881, 18231, 18322, 18323, 18331, 18332, 18333, 18334, 18338, 18339, 18340, 18341, 18343, 18344, 18345, 18350, 18351, 18352, 18354, 18356, 18357, 18358, 18359, 18473, 18475, 18485, //grass and dirt landmasses 955, 956, 1209, 1302, 1775, 1776, 1977, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2342, 2353, 2354, 2355, 2420, 2425, 2427, 2429, 2438, 2453, 2647, 2663, 2683, 2702, 2703, 2767, 2768, 2769, 2814, 2821, 2823, 2837, 2838, 2839, 2840, 2856, 2857, 2858, 2859, 2860, 2861, 2866, 2867, 2880, 2881, //food and drinks 1426, 1428, 1436, 1437, 1464, 1465, 1466, 1467, 1469, 1470, 1471, 1473, 1474, 1475, 1476, 1477, 1519, 1521, 1656, 1698, 2633, 3361, 3399, 3671, 3674, 3867, 4106, 4120, 4121, 4170, 4171, 4180, 4231, 4565, 4575, 4737, 4738, 4824, 4881, 4882, 5268, 5301, 5308, 5627, 5822, 7659, 8572, 8580, 8613, 8614, 8615, 9316, 9484, 9566, 9618, 9767, 9814, 9815, 9816, 10008, 10026, 10033, 10042, 10152, 10153, 10173, 10174, 10175, 10176, 10177, 10178, 10179, 10180, 10181, 10185, 10234, 10309, 10672, 11472, 11479, 11493, 11496, 11544, 12839, 12950, 12958, 12985, 12987, 13011, 13644, 13749, 14387, 14394, 14395, 14407, 14409, 14410, 14411, 14414, 14416, 14596, 14874, 14877, 16082, 16322, 16649, 16651, 16661, 16731, 17904, 18366, 18368, //Ladders,Stairs, and Scaffolding 3268, 3271, 3277, 3279, 3280, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3400, 3401, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3797, 3885, 16093, 16639, 16640, 16641, 16642, 16643, 16644, 16645, 16647, 16648, 16654, 16656, 16657, 16658, 16660, 16662, 16663, 16665, 16681, 16682, //industrial Military 918, 1217, 1218, 1222, 1244, 1676, 1686, 1985, 3057, 3267, 3426, 3472, 3525, 3534, 3743, 3864, 3877, 6965, 7073, 7268, 7388, 7392, 8483, 8491, 8492, 8980, 9831, 9833, 10397, 10764, 11417, 13562, 13667, 16135, 16368, 16777, 16778, 16779, 16782, //industrial Special 1211, 1214, 1215, 1216, 1223, 1257, 1258, 1262, 1263, 1269, 1270, 1278, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1306, 1307, 1308, 1315, 1319, 1340, 1341, 1342, 1346, 1350, 1351, 1352, 1363, 1366, 1367, 1478, 1568, 1570, 1571, 2600, 3398, 3407, 3408, 3447, 3459, 3460, 3463, 3516, 3853, 3854, 3855, 3860, 3861, 3862, 3863, 3875, 6289, 6299, 6462, //street and road items ( poles etc. ) 625, 626, 627, 628, 630, 631, 632, 633, 635, 636, 637, 638, 639, 640, 644, 646, 647, 650, 651, 653, 675, 677, 678, 679, 682, 692, 701, 702, 728, 741, 742, 743, 753, 754, 755, 756, 757, 759, 760, 761, 762, 800, 801, 802, 803, 804, 805, 806, 808, 809, 810, 811, 812, 813, 814, 815, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 855, 856, 857, 859, 860, 861, 862, 863, 864, 865, 866, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 948, 949, 950, 1360, 1361, 1364, 1597, 1807, 2001, 2010, 2011, 2194, 2195, 2203, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2250, 2251, 2252, 2253, 2254, 2345, 2811, 3409, 3439, 3450, 3520, 3532, 3660, 3802, 3806, 3810, 3811, 4034, 4172, 4173, 4174, 4175, 4184, 4185, 4981, 4982, 4984, 4985, 4986, 4992, 4993, 5023, 5024, 5025, 5078, 5150, 5234, 5265, 5266, 5290, 5322, 5324, 5325, 5327, 5328, 5339, 5407, 5412, 5417, 5565, 5629, 5633, 5634, 5635, 5636, 5637, 5638, 5641, 5682, 5847, 5877, 5888, 6046, 6204, 6214, 6237, 6362, 6372, 6386, 6399, 6403, 6421, 6430, 6431, 6444, 6499, 7095, 7595, 7662, 7884, 7952, 7953, 7954, 7986, 8319, 8321, 8617, 8619, 8623, 8660, 8679, 8825, 8826, 8827, 8828, 8835, 8836, 8837, 8846, 8852, 8887, 8888, 8889, 8982, 8989, 8990, 8991, 9019, 9034, 9035, 9152, 9153, 9317, 9318, 9331, 9333, 9334, 9335, 9336, 9344, 9347, 9348, 9350, 9812, 10445, 11413, 11414, 13174, 13699, 13748, 13802, 14400, 14402, 14468, 14469, 14804, 14834, 15038, 16390, 17528, 17532, 17872, 17874, 17875, 17876, 17879, 17886, 17887, 17891, 17905, 17907, 17937, 17938, 17939, 17941, 17942, 17947, 17958, 18011, 18012, 18013, 18014, 18015, //plants 744, 745, 746, 747, 748, 749, 750, 751, 752, 758, 807, 816, 828, 867, 868, 879, 880, 896, 897, 898, 899, 900, 901, 905, 906, 1207, 1303, 1304, 4816, 9044, 9045, 9743, 9744, 9745, 9746, 10166, 10984, 10985, 10986, 11498, 11556, 13023, 13635, 16104, 16110, 16111, 16112, 16113, 16114, 16115, 16116, 16117, 16118, 16119, 16120, 16121, 16122, 16123, 16124, 16125, 16126, 16127, 16128, 16129, 16130, 16131, 16133, 16139, 16140, 16141, 16142, 16145, 16411, 16503, 16667, 16675, 16692, 17025, 17026, 17027, 17028, 17029, 17030, 17031, 17032, 17033, 17034, 17035, 17069, 17071, 17076, 17299, 17456, 18225, 18226, 18227, 18228, //rock 615, 616, 617, 618, 619, 621, 622, 623, 624, 629, 634, 641, 645, 648, 649, 652, 654, 655, 656, 657, 658, 659, 660, 661, 664, 669, 670, 671, 672, 673, 674, 676, 680, 681, 683, 685, 686, 687, 688, 689, 690, 691, 693, 694, 695, 696, 697, 698, 700, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 789, 790, 791, 792, 858, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 904, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3517, 16060, 16061, 18268, 18269, 18270, 18271, 18272, 18273, //trees 1681, 1682, 1683, 2469, 2470, 2472, 2473, 2510, 2511, 2512, 2773, 2774, 2775, 2781, 2792, 2793, 2794, 2795, 2796, 2797, 3489, 3491, 3526, 3629, 3658, 3659, 3666, 3814, 3816, 3881, 3882, 4726, 4727, 4828, 4829, 4830, 4831, 4832, 4833, 4838, 4854, 4855, 4856, 4862, 4863, 4864, 4865, 4866, 4867, 4869, 4874, 4890, 4990, 4991, 4995, 4996, 4997, 4998, 4999, 5000, 5002, 5003, 5004, 5006, 5009, 5034, 6973, 7153, 7978, 7981, 8038, 8171, 8172, 8240, 8247, 8249, 8251, 8253, 8281, 8343, 8344, 8350, 8354, 8355, 8356, 8357, 8550, 9241, 10029, 10755, 10756, 10757, 10758, 10760, 10761, 10763, 10766, 10767, 10768, 10769, 10810, 10815, 10816, 10817, 10818, 10819, 11283, 11285, 14404, 14548, 14550, 14553, 16098, 16100, 16407, 16408, 16409, 16771, //airport objects 3448, 3493, 4032, 4232, 4597, 4598, 4638, 4639, 4640, 4641, 4642, 4697, 6387, 6971, 6997, 7010, 7184, 7244, 7245, 7419, 7488, 7984, 8040, 8390, 8407, 8410, 8420, 8841, 9957, 10010, 10051, 10621, 10629, 10778, 10779, 10780, 10781, 10782, 10783, 10784, 10785, 10786, 10787, 10788, 17556, 17557, 17558, //car parks 1451, 1452, 1453, 1454, 1457, 1458, 1479, 1480, 1482, 1483, 3252, 3286, 3375, 3402, 3403, 3419, 12915, 12917, 12918, 12919, 12920, 12921, 12922, 13002, 13206, 13367, 14871, 14873, 14875, 16108, 16388, 16389, 16404, 16405, 16406, 17000, 17009, 17010, 17011, 17039, 17052, 17053, 17054, 17057, 17058, 17059, 17060, 17061, 17063, 17074, 17298, 17324, 17457, //farm objects 966, 968, 969, 970, 971, 972, 973, 974, 975, 976, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 1250, 1251, 1282, 1374, 1407, 1408, 1410, 1411, 1412, 1413, 1414, 1418, 1419, 1422, 1423, 1424, 1425, 1427, 1434, 1435, 1446, 1447, 1456, 1459, 1460, 1552, 1553, 1648, 1652, 1653, 1662, 2098, 2395, 2400, 2650, 2651, 2755, 3260, 3275, 3276, 3282, 3451, 3475, 3550, 3749, 3771, 3850, 4099, 4100, 4190, 4195, 4196, 4201, 4202, 4724, 5001, 5005, 5007, 5030, 5062, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5051, 5068, 5081, 5082, 5190, 5306, 5338, 5893, 6049, 6960, 6961, 6967, 6968, 6969, 6970, 7022, 7026, 7028, 7029, 7030, 7031, 7033, 7034, 7038, 7039, 7191, 7192, 7196, 7197, 7198, 7209, 7210, 7212, 7223, 7224, 7227, 7277, 7292, 7319, 7361, 7367, 7368, 7369, 7370, 7371, 7377, 7378, 7379, 7380, 7381, 7418, 7423, 7504, 7505, 7514, 7517, 7518, 7522, 7524, 7538, 7539, 7540, 7556, 7560, 7592, 7593, 7611, 7612, 7613, 7614, 7615, 7623, 7624, 7625, 7657, 7663, 7664, 7665, 7692, 7837, 7838, 7839, 7840, 7841, 7842, 7893, 7894, 7919, 7920, 7921, 7922, 7923, 7924, 7933, 7939, 7956, 8041, 8042, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8165, 8167, 8173, 8174, 8175, 8176, 8177, 8178, 8185, 8186, 8187, 8188, 8189, 8194, 8206, 8207, 8208, 8209, 8210, 8229, 8262, 8263, 8311, 8313, 8314, 8315, 8320, 8342, 8369, 8416, 8481, 8549, 8556, 8559, 8645, 8646, 8647, 8648, 8649, 8650, 8651, 8652, 8653, 8656, 8657, 8658, 8659, 8662, 8673, 8674, 8680, 8681, 8682, 8683, 8684, 8685, 8686, 8869, 8871, 9029, 9030, 9031, 9032, 9033, 9041, 9292, 9293, 9294, 9295, 9296, 9297, 9298, 9330, 9332, 9337, 9339, 9340, 9343, 9349, 9482, 9608, 9893, 10252, 10396, 10402, 10437, 10442, 10611, 10682, 10683, 10806, 10807, 10808, 10809, 10835, 10836, 10874, 10875, 10885, 10889, 10890, 11014, 11091, 11238, 11239, 11240, 11241, 11242, 11243, 11247, 11438, 11452, 11473, 11474, 11499, 11551, 11567, 11568, 11571, 11607, 11623, 12848, 12858, 12933, 13016, 13018, 13024, 13045, 13096, 13097, 13098, 13118, 13153, 13336, 13438, 13445, 13663, 13665, 13705, 14464, 14459, 14843, 14856, 14883, 16016, 16017, 16018, 16019, 16020, 16022, 16052, 16094, 16136, 16281, 16293, 16294, 16295, 16296, 16297, 16298, 16299, 16300, 16312, 16313, 16315, 16320, 16321, 16324, 16369, 16370, 16627, 16628, 16629, 16630, 16631, 16632, 16633, 16634, 16635, 16636, 16638, 16664, 16668, 16669, 16670, 16671, 16683, 17510, 18074, 18202, 18216, 18218, 18219, 18220, 18221, 18222, 18223, 18224, 18255, 18276, 18277, 18278, 18279, 18280, 18281, 18286, 18287, 18288, 18289, 18290, 18291, 18292, 18432, 18433, 18434, 18440, 18441, 18442, 18443, 18444, 18445, 18446, //Fences, Walls, Gates, and Barriers 3187, 3359, 3458, 3627, 4199, 4892, 5401, 5409, 5774, 5853, 6909, 6910, 7520, 7971, 8947, 8954, 9169, 9171, 9321, 9899, 10282, 10789, 11292, 11326, 11387, 11388, 11389, 11390, 11391, 11392, 11393, 11480, 11494, 11504, 11505, 11547, 12853, 13296, 14776, 14783, 14796, 14797, 14798, 14826, 14876, 16107, 16360, 16362, 16477, 17036, 17037, 17064, 17065, 17852, 17950, 18232, 18283, 18284, 18452, 18474, //Structure Garages and Petrol Stations 1245, 1503, 1631, 1632, 1633, 1634, 1655, 1660, 1696, 1697, 1894, 2931, 3269, 3270, 3363, 3364, 3625, 3663, 3664, 3665, 3852, 5152, 5153, 6052, 7979, 7980, 16401, 8302, 8375, 12914, 12956, 13590, 13593, 13604, 13636, 13638, 13640, 13643, 13645, 13648, 16077, 16084, 16085, 16134, 16302, 16303, 16304, 16305, 16317, 16367, 17565, 18262, 18367, 18451, 18565, 18566, 18567, 18568, 18569, 18609, //ramps 4817, 4818, 4819, 4853, 4884, 4885, 5064, 5117, 5118, 5119, 5127, 5272, 5275, 5277, 5347, 5396, 5398, 5399, 5477, 5478, 5479, 5480, 5513, 5674, 5679, 5772, 5773, 6248, 6249, 6250, 6251, 6252, 6290, 6292, 6501, 6502, 6912, 6913, 6914, 6915, 6916, 6917, 6980, 6981, 6982, 6983, 6984, 7498, 7499, 7500, 7501, 7502, 7503, 8538, 8539, 8540, 8541, 8542, 8586, 8587, 8588, 8624, 8625, 8626, 8627, 8628, 8629, 8630, 8631, 8632, 8633, 8634, 8635, 8858, 8860, 9164, 9165, 9166, 9167, 9168, 9705, 10752, 10927, 10931, 10933, 10934, 10935, 11101, 11228, 11229, 11230, 11231, 11232, 11464, 11465, 11466, 11467, 11468, 12831, 12832, 12833, 12835, 12836, 12837, 12838, 13312, 13491, 16024, 16025, 16026, 16027, 16028, 16029, 16030, 16031, 16032, 16033, 16034, 16035, 16036, 16156, 17283, 17284, 17285, 17286, 17287, 17288, 17289, 17290, 17291, 17292, 17296, 17297, //Railroads 3330, 3331, 3381, 3411, 3412, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4107, 4108, 4125, 4127, 4128, 4129, 4131, 4133, 4139, 4142, 4144, 4146, 4148, 4150, 4152, 4154, 4156, 4158, 4160, 4163, 4165, 4168, 4182, 4203, 4207, 4209, 4233, 4553, 4557, 4567, 4589, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4656, 4658, 4660, 4662, 4664, 4666, 4679, 4692, 4694, 4695, 4710, 4807, 4808, 4809, 4820, 4821, 4822, 4823, 4827, 4834, 4835, 4836, 4837, 4839, 4840, 4841, 4846, 4868, 4870, 4871, 4872, 4878, 4895, 5013, 5021, 5026, 5028, 5038, 5046, 5052, 5106, 5112, 5113, 5120, 5121, 5124, 5125, 5128, 5133, 5141, 5147, 5149, 5178, 5188, 5191, 5250, 5271, 5276, 5296, 5297, 5298, 5314, 5329, 5330, 5333, 5349, 5353, 5391, 5394, 5395, 5411, 5431, 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5439, 5440, 5441, 5442, 5456, 5469, 5470, 5472, 5473, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5528, 5650, 5668, 5703, 5707, 5744, 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5756, 5757, 5758, 5759, 5793, 5794, 5795, 5796, 5797, 5798, 5799, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, 5859, 5860, 5861, 5862, 5866, 5994, 5995, 6035, 6054, 6055, 6111, 6112, 6113, 6114, 6115, 6116, 6117, 6118, 6119, 6120, 6121, 6122, 6123, 6124, 6125, 6126, 6127, 6128, 6129, 6225, 6231, 6235, 6291, 6301, 6302, 6303, 6304, 6305, 6306, 6307, 6308, 6309, 6310, 6311, 6314, 6316, 6317, 6318, 6319, 6320, 6321, 6322, 6323, 6324, 6325, 6326, 6327, 6329, 6330, 6331, 6333, 6341, 6345, 6427, 6428, 6448, 6449, 6450, 6507, 6508, 6509, 6876, 6877, 6878, 6879, 6880, 6881, 6886, 6887, 6888, 6897, 6898, 6899, 6900, 6945, 6948, 6949, 6950, 6951, 6952, 6953, 6956, 6974, 6990, 6991, 6999, 7036, 7041, 7042, 7043, 7052, 7053, 7054, 7055, 7056, 7057, 7064, 7069, 7320, 7321, 7324, 7326, 7327, 7334, 7335, 7336, 7337, 7355, 7362, 7364, 7383, 7427, 7428, 7429, 7430, 7431, 7432, 7433, 7434, 7435, 7436, 7437, 7438, 7439, 7440, 7441, 7442, 7443, 7444, 7445, 7446, 7447, 7476, 7477, 7478, 7479, 7480, 7481, 7482, 7483, 7484, 7485, 7486, 7544, 7545, 7546, 7547, 7548, 7549, 7550, 7551, 7552, 7558, 7559, 7580, 7581, 7587, 7589, 7590, 7605, 7629, 7631, 7632, 7633, 7634, 7729, 7730, 7731, 7755, 7849, 7852, 7854, 7863, 7864, 7865, 7866, 7867, 7868, 7878, 7881, 7938, 7945, 7963, 7965, 7967, 7969, 7987, 7988, 7989, 7990, 7991, 7992, 7993, 7995, 8009, 8010, 8036, 8039, 8045, 8046, 8047, 8048, 8049, 8050, 8051, 8052, 8053, 8054, 8055, 8056, 8070, 8080, 8128, 8135, 8137, 8212, 8213, 8214, 8215, 8216, 8217, 8218, 8219, 8236, 8244, 8245, 8246, 8256, 8290, 8305, 8368, 8377, 8380, 8382, 8383, 8386, 8388, 8438, 8439, 8440, 8441, 8442, 8443, 8444, 8445, 8446, 8447, 8448, 8449, 8450, 8451, 8452, 8453, 8454, 8455, 8456, 8457, 8458, 8471, 8472, 8473, 8474, 8475, 8476, 8477, 8510, 8511, 8512, 8514, 8517, 8518, 8519, 8520, 8521, 8522, 8523, 8524, 8525, 8543, 8552, 8561, 8562, 8609, 8610, 8611, 8612, 8616, 8622, 8637, 8638, 8824, 8832, 8838, 8932, 9000, 9001, 9002, 9003, 9004, 9005, 9006, 9007, 9008, 9021, 9022, 9023, 9024, 9025, 9026, 9027, 9028, 9036, 9042, 9115, 9116, 9117, 9118, 9119, 9120, 9150, 9205, 9222, 9231, 9232, 9233, 9250, 9251, 9252, 9262, 9264, 9265, 9266, 9267, 9269, 9476, 9485, 9486, 9487, 9488, 9489, 9490, 9491, 9492, 9493, 9570, 9571, 9575, 9591, 9600, 9601, 9602, 9603, 9652, 9653, 9683, 9685, 9689, 9690, 9693, 9694, 9696, 9699, 9700, 9701, 9702, 9703, 9704, 9706, 9707, 9708, 9709, 9710, 9711, 9712, 9713, 9714, 9715, 9716, 9717, 9718, 9719, 9720, 9721, 9722, 9723, 9724, 9725, 9726, 9727, 9728, 9729, 9730, 9731, 9732, 9733, 9734, 9735, 9736, 9747, 9827, 9832, 9837, 9838, 10018, 10065, 10066, 10067, 10068, 10069, 10070, 10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078, 10110, 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10133, 10134, 10135, 10136, 10137, 10138, 10139, 10165, 10235, 10247, 10275, 10276, 10294, 10295, 10296, 10359, 10360, 10361, 10362, 10363, 10364, 10365, 10367, 10424, 10426, 10440, 10448, 10449, 10450, 10452, 10455, 10456, 10457, 10458, 10459, 10460, 10461, 10462, 10463, 10464, 10465, 10466, 10467, 10468, 10469, 10470, 10471, 10472, 10473, 10474, 10475, 10476, 10477, 10478, 10479, 10480, 10481, 10482, 10483, 10484, 10485, 10486, 10487, 10488, 10489, 10490, 10493, 10614, 10617, 10636, 10639, 10649, 10750, 10751, 10753, 10754, 10759, 10770, 10777, 10790, 10791, 10792, 10820, 10821, 10822, 10823, 10848, 10849, 10852, 10854, 10855, 10857, 10858, 10859, 10860, 10866, 10867, 10868, 10869, 10870, 10928, 10929, 10930, 10937, 10940, 10958, 10967, 10968, 10970, 10971, 11003, 11071, 11072, 11073, 11074, 11075, 11076, 11077, 11078, 11079, 11080, 11084, 11094, 11095, 11096, 11098, 11100, 11104, 11105, 11110, 11111, 11112, 11113, 11114, 11115, 11116, 11117, 11118, 11119, 11120, 11121, 11122, 11123, 11124, 11125, 11126, 11127, 11128, 11129, 11130, 11131, 11132, 11133, 11134, 11135, 11136, 11137, 11138, 11252, 11253, 11254, 11255, 11256, 11257, 11258, 11259, 11260, 11261, 11299, 11302, 11308, 11345, 11351, 11365, 11386, 11409, 11421, 11462, 12800, 12801, 12802, 12803, 12806, 12809, 12810, 12811, 12812, 12813, 12815, 12816, 12817, 12818, 12819, 12820, 12826, 12827, 12828, 12829, 12830, 12851, 12852, 12856, 12857, 12867, 12873, 12874, 12875, 12876, 12877, 12878, 12879, 12880, 12881, 12882, 12883, 12884, 12885, 12886, 12887, 12888, 12889, 12890, 12891, 12892, 12893, 12894, 12895, 12896, 12897, 12898, 12899, 12900, 12901, 12902, 12903, 12904, 12905, 12906, 12907, 12909, 12910, 12965, 12966, 12967, 12968, 12970, 12971, 12972, 12973, 12974, 12975, 12992, 12993, 12994, 12995, 12996, 12997, 12998, 12999, 13000, 13001, 13020, 13033, 13034, 13038, 13058, 13088, 13092, 13095, 13119, 13127, 13128, 13129, 13138, 13139, 13141, 13142, 13168, 13169, 13170, 13173, 13321, 13323, 13324, 13325, 13332, 13342, 13345, 13347, 13348, 13349, 13368, 13422, 13470, 13626, 13652, 13655, 13664, 13672, 13673, 13674, 13676, 13677, 13678, 13680, 13682, 13683, 13684, 13685, 13688, 13689, 13690, 13693, 13703, 13704, 13706, 13707, 13708, 13709, 13713, 13717, 13718, 13720, 13726, 13727, 13730, 13732, 13733, 13735, 13736, 13738, 13739, 13751, 13752, 13784, 13789, 13814, 13845, 13865, 13882, 13887, 16037, 16266, 16357, 16358, 16384, 16430, 16571, 16610, 17002, 17003, 17004, 17043, 17062, 17077, 17078, 17110, 17111, 17112, 17120, 17146, 17148, 17150, 17152, 17154, 17156, 17158, 17160, 17162, 17164, 17166, 17168, 17170, 17172, 17174, 17176, 17178, 17180, 17182, 17184, 17186, 17188, 17190, 17192, 17194, 17196, 17198, 17200, 17202, 17204, 17208, 17210, 17212, 17214, 17216, 17218, 17220, 17222, 17224, 17226, 17228, 17230, 17232, 17234, 17236, 17238, 17240, 17242, 17244, 17246, 17248, 17250, 17252, 17254, 17256, 17258, 17260, 17262, 17267, 17269, 17271, 17273, 17275, 17277, 17279, 17281, 17293, 17294, 17295, 17300, 17303, 17305, 17307, 17308, 17309, 17310, 17326, 17327, 17329, 17331, 17333, 17334, 17501, 17502, 17525, 17550, 17561, 17576, 17595, 17596, 17597, 17598, 17599, 17600, 17602, 17603, 17604, 17605, 17606, 17607, 17608, 17609, 17610, 17611, 17612, 17613, 17621, 17622, 17623, 17624, 17625, 17626, 17627, 17628, 17629, 17630, 17631, 17632, 17634, 17635, 17637, 17638, 17639, 17640, 17641, 17642, 17643, 17644, 17646, 17647, 17648, 17649, 17650, 17651, 17652, 17653, 17654, 17655, 17656, 17657, 17658, 17659, 17660, 17661, 17662, 17663, 17666, 17667, 17668, 17669, 17670, 17671, 17672, 17673, 17674, 17675, 17676, 17680, 17681, 17682, 17683, 17684, 17686, 17687, 17692, 17693, 17695, 17829, 17849, 17867, 17920, 17921, 17927, 17936, 17968, 18229, 18256, 18369, 18370, 18371, 18372, 18373, 18374, 18375, 18376, 18377, 18378, 18379, 18380, 18381, 18382, 18383, 18384, 18385, 18386, 18387, 18388, 18389, 18390, 18391, 18392, 18393, 18394, 18449, 18450, 18561 //roads : { return 1; } default:return 0; } return 0; } public IsValidVehicleModelID( modelid ) { switch( modelid ) { case 581, 523, 462, 521, 463, 522, 461, 448, 468, 586, 509, 481, 510, 472, 473, 493, 595, 484, 430, 453, 452, 446, 454, 445, 602, 416, 485, 568, 429, 433, 499, 424, 536, 496, 504, 422, 609, 498, 401, 575, 518, 402, 541, 482, 431, 438, 457, 527, 483, 524, 415, 542, 589, 437, 532, 480, 596, 599, 597, 598, 578, 486, 507, 562, 585, 427, 419, 587, 490, 528, 533, 544, 407, 565, 455, 530, 526, 466, 604, 492, 474, 588, 434, 502, 503, 494, 579, 545, 411, 546, 559, 508, 571, 400, 403, 517, 410, 551, 500, 418, 572, 423, 414, 516, 582, 467, 443, 470, 404, 514, 603, 600, 413, 426, 436, 547, 489, 441, 594, 564, 515, 479, 534, 432, 505, 442, 440, 475, 543, 605, 495, 567, 428, 405, 535, 458, 580, 439, 561, 409, 560, 506, 601, 574, 566, 549, 420, 459, 576, 525, 531, 408, 583, 451, 558, 552, 540, 491, 412, 478, 421, 529, 456, 554, 477, 548, 425, 417, 487, 497, 563, 501, 465, 447, 469, 488, 406, 573, 444, 556, 557, 592, 577, 511, 512, 593, 520, 553, 464, 476, 519, 460, 513, 539, 471, 435, 450, 591, 606, 607, 610, 584, 608, 611, 590, 449: { return 1; } default:return 0; } return 0; } public SetPlayerAuthLevel( playerid, authid, auth, announce ) { if( IsPlayerAdmin( playerid ) == 0 ) { if( announce ) { SendClientMessage( playerid, COLOR_RED, "ADMIN ONLY" ); } return 0; } if( IsPlayerConnected( authid ) == 0 ) { if( announce ) { SendClientMessage( playerid, COLOR_RED, "Invalid player id!" ); } return 0; } if( !udb_Exists( GetPlayerCaption( authid ) ) ) { if( announce ) { new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "Account for player '%s' does not exist!", GetPlayerCaption( authid ) ); SendClientMessage( playerid, COLOR_RED, szMsg ); } return 0; } if( IsAuth[ authid ] == 0 ) { if( announce ) { new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "Player '%s' not logged in!", GetPlayerCaption( authid ) ); SendClientMessage( playerid, COLOR_RED, szMsg ); } return 0; } AuthLevel[ authid ] = auth; dUserSetINT( GetPlayerCaption( authid ) ).( "auth", AuthLevel[ authid ] ); if( announce ) { new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "Auth for player '%s' set to %i", GetPlayerCaption( authid ), AuthLevel[ authid ] ); SendClientMessage( playerid, COLOR_GREEN, szMsg ); } return 1; } public GetPlayerAuthLevel( playerid ) { if( IsPlayerConnected( playerid ) == 0 ) { return 0; } if( !udb_Exists( GetPlayerCaption( playerid ) ) ) { return 0; } if( IsAuth[ playerid ] == 0 ) { return 0; } AuthLevel[ playerid ] = dUserINT( GetPlayerCaption( playerid ) ).( "auth" ); return AuthLevel[ playerid ]; } public GetNumberOfPlayers( ) { new b = 0; for( new i = 0; i < MAX_PLAYERS; i++ ) { if( IsPlayerConnected( i ) == 1 ) { b++; } } return b; } public IsPlayerDriver(playerid) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { return 1; } return 0; } public IsPlayerPassenger(playerid) { if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER) { return 1; } return 0; } public IsPlayerOnFoot(playerid) { if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { return 1; } return 0; } public Float:GetDistanceBetweenPlayers(p1,p2) { new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2; GetPlayerPos(p1,x1,y1,z1); GetPlayerPos(p2,x2,y2,z2); return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2)); } public RegisterPlayer( playerid, password[] ) { if( IsAuth[ playerid ] == 1 ) { SendClientMessage( playerid, COLOR_RED, "You're already logged in!" ); return 0; } if( udb_Exists( GetPlayerCaption( playerid ) ) ) { SendClientMessage( playerid, COLOR_RED, "Account already exists, please use '/login password'." ); return 0; } if( strlen( password ) == 0 ) { SendClientMessage( playerid, COLOR_RED, "INVALID PASSWORD" ); return 0; } if( !udb_Create( GetPlayerCaption( playerid ), password ) ) { SendClientMessage( playerid, COLOR_RED, "Account create failed, contact the systems administrator." ); return 0; } else { SendClientMessage( playerid, COLOR_GREEN, "Account successfully created. Login with '/login password' now." ); dUserSetINT( GetPlayerCaption( playerid ) ).( "banned", 0 ); //unban account dUserSetINT( GetPlayerCaption( playerid ) ).( "auth", 0 ); //unban account return 1; } return 0; } public LoginToServer( playerid, password[] ) { if( IsAuth[ playerid ] == 1 ) { SendClientMessage( playerid, COLOR_RED, "You're already logged in!" ); return 0; } if( !udb_Exists( GetPlayerCaption( playerid ) ) ) { SendClientMessage( playerid, COLOR_RED, "Account doesn't exist, please use '/register password'." ); return 0; } if( strlen( password ) == 0 ) { SendClientMessage( playerid, COLOR_RED, "INVALID PASSWORD" ); return 0; } if( udb_CheckLogin( GetPlayerCaption( playerid ), password ) ) { SendClientMessage( playerid, COLOR_LIGHTBLUE, "Login Success!" ); IsAuth[ playerid ] = 1; IsWarned[ playerid ] = 0; AuthLevel[ playerid ] = GetPlayerAuthLevel( playerid ); GetLocationsFromSaveFile( playerid ); new save_skin = dUserINT( GetPlayerCaption( playerid ) ).( "skin" ); PlayerMaxObjects[ playerid ] = dUserINT( GetPlayerCaption( playerid ) ).( "max_obj" ); if( save_skin != 0 ) { SendClientMessage( playerid, COLOR_GREEN, "Saved skin restored, to use another skin type '/ssel'!" ); SetPlayerSkin( playerid, save_skin - 1 ); } else { SendClientMessage( playerid, COLOR_ORANGE, "No saved skin data found! use '/ssel' to choose one!" ); } if( PlayerMaxObjects[ playerid ] > 0 ) { new szObj[ 256 ]; format( szObj, sizeof( szObj ), "Maximum objects restored to %i", PlayerMaxObjects[ playerid ] ); SendClientMessage( playerid, COLOR_YELLOW, szObj ); } if( AuthLevel[ playerid ] > 0 ) { new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "Your auth level is: %i", AuthLevel[ playerid ] ); SendClientMessage( playerid, COLOR_YELLOW, szMsg ); } return 1; } else { SendClientMessage( playerid, COLOR_RED, "Login failed!" ); return 0; } return 0; } public ChangePassword( playerid, newpass[], a ) { if( !udb_Exists( GetPlayerCaption( playerid ) ) ) { SendClientMessage( playerid, COLOR_RED, "Account doesn't exist, please use '/register password'." ); return 0; } if( strlen( newpass ) < 3 ) { SendClientMessage( playerid, COLOR_RED, "Password too short!" ); return 0; } if( IsAuth[ playerid ] == 0 ) { if( a )SendClientMessage( playerid, COLOR_RED, "Login first!" ); return 0; } new newhash = udb_hash( newpass ); dUserSetINT( GetPlayerCaption( playerid ) ).( "password_hash", newhash ); if( dUserINT( GetPlayerCaption( playerid ) ).( "password_hash" ) == newhash ) { if( a ) { new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "Password changed to '%s'!", newpass ); SendClientMessage( playerid, COLOR_YELLOW, szMsg ); } return 1; } else { if( a )SendClientMessage( playerid, COLOR_RED, "Error writing to the database!" ); } return 0; } public SavePlayerStats( playerid ) { printf( "SavePlayerStats( %i )", playerid ); } public substr(const string[], const substr[] ) { new found_str = strfind( string, substr ); new szRet[ 256 ]; if( found_str ) { strmid( szRet, string, found_str + 1, strlen( string ) ); } return szRet; } public InterpCommand( cmdtext[], index ) { return strtok( cmdtext, index ); } public SendMessageToTeam( teamid, color, msg[ ] ) { for( new i = 0; i < MAX_PLAYERS; i++ ) { if( gTeam[ i ] == teamid ) { SendClientMessage( i, color, msg ); } } } public IsPlayerInRange(playerid, Float: Range, Float: Z_Range, Float:tar_x, Float:tar_y, Float:tar_z) { new Float:player_x, Float:player_y, Float:player_z; GetPlayerPos(playerid, player_x, player_y, player_z); if( player_x <= ( Range + tar_x ) && player_y <= ( Range + tar_y ) && player_z <= ( Z_Range + tar_z ) ) { return 1; } return 0; } public IsStr( cmd[], str[] ) { if( strcmp( cmd, str ) == 0 )return 1; return 0; } public GetMoneyFraction( playerid, fract ) { return GetPlayerMoney( playerid ) / fract; } public AdjustGrav( playerid, Float:grav ) { if( IsPlayerAdmin( playerid ) == 0 ) { SendClientMessage( playerid, COLOR_RED, "ADMIN ONLY" ); return 0; } SetGravity( grav ); new szGrav[ 256 ]; format( szGrav, sizeof( szGrav ), "Gravity set to %f by %s", grav, GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_YELLOW, szGrav ); return 1; } public RestoreGrav( playerid ) { if( IsPlayerAdmin( playerid ) == 0 ) { SendClientMessage( playerid, COLOR_RED, "ADMIN ONLY" ); return 0; } SetGravity( 0.008 ); SendClientMessageToAll( COLOR_YELLOW, "Gravity restored to default ( 0.008 )" ); return 1; } public AdjustTime( playerid, time ) { if( IsPlayerAdmin( playerid ) == 0 ) { SendClientMessage( playerid, COLOR_RED, "ADMIN ONLY" ); return 0; } new szTime[ 256 ]; format( szTime, sizeof( szTime ), "Time set to %i by %s.", time, GetPlayerCaption( playerid ) ); SetWorldTime( time ); SendClientMessageToAll( COLOR_YELLOW, szTime ); return 1; } public SpawnVehicle( playerid, vid ) { if( IsPlayerAdmin( playerid ) == 0 && GetPlayerAuthLevel( playerid ) <= 1 ) { SendClientMessage( playerid, COLOR_RED, "ADMIN ONLY" ); return 0; } if( !IsValidVehicleModelID( vid ) ) { SendClientMessage( playerid, COLOR_RED, "INVALID VEHICLE ID" ); return 0; } new Float:x, Float:y, Float:z; new Float:new_y; GetPlayerPos( playerid, x, y, z ); new_y = ( y + 10.0 ); new vehicleid = CreateVehicle( vid, x, new_y, z, 72.0, COLOR_WHITE, COLOR_WHITE, 110 ); if( IsPlayerInAnyVehicle( playerid ) == 0 ) { PutPlayerInVehicle( playerid, vehicleid, 0 ); } if( TotalVehicles >= MAX_VEHICLES ) { SendClientMessage( playerid, COLOR_RED, "Too many vehicles!" ); return 0; } TotalVehicles++; new szRide[ 256 ]; format( szRide, sizeof( szRide ), "Car model: %i - number: %i spawned by %s.", vid, TotalVehicles, GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_YELLOW, szRide ); return 1; } public KillUser( playerid, deathid ) { if( IsPlayerAdmin( playerid ) == 0 ) { SendClientMessage( playerid, COLOR_RED, "ADMIN ONLY" ); return 0; } new szDie[ 256 ]; format( szDie, sizeof( szDie ), "%s killed by admin %s.", GetPlayerCaption( deathid ), GetPlayerCaption( playerid ) ); SetPlayerHealth( deathid, 0 ); SendClientMessageToAll( COLOR_RED, szDie ); return 1; } public BanAccount( playerid, banid ) { if( IsPlayerAdmin( playerid ) == 0 ) { SendClientMessage( playerid, COLOR_RED, "ADMIN ONLY" ); return 0; } if( IsPlayerConnected( banid ) == 1 ) { SendClientMessage( playerid, COLOR_RED, "Invalid player id." ); return 0; } if( udb_Exists( GetPlayerCaption( playerid ) ) ) { dUserSetINT( GetPlayerCaption( playerid ) ).( "banned", 1 ); } new szBan[ 256 ]; format( szBan, sizeof( szBan ), "%s was banned by admin %s.", GetPlayerCaption( banid ), GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_YELLOW, szBan ); Ban( playerid ); Kick( playerid ); return 1; } public SetObjectToFaceCords(objectid, Float:x1,Float:y1,Float:z1) { new Float:x2,Float:y2,Float:z2; GetObjectPos(objectid, x2,y2,z2); new Float:DX = floatabs(x2-x1); new Float:DY = floatabs(y2-y1); new Float:DZ = floatabs(z2-z1); new Float:yaw = 0; new Float:pitch = 0; if(DY == 0 || DX == 0) { if(DY == 0 && DX > 0) { yaw = 0; pitch = 0; } else if(DY == 0 && DX < 0) { yaw = 180; pitch = 180; } else if(DY > 0 && DX == 0) { yaw = 90; pitch = 90; } else if(DY < 0 && DX == 0) { yaw = 270; pitch = 270; } else if(DY == 0 && DX == 0) { yaw = 0; pitch = 0; } } else { yaw = atan(DX/DY); pitch = atan(floatsqroot(DX*DX + DZ*DZ) / DY); if(x1 > x2 && y1 <= y2) { yaw = yaw + 90; pitch = pitch - 45; } else if(x1 <= x2 && y1 < y2) { yaw = 90 - yaw; pitch = pitch - 45; } else if(x1 < x2 && y1 >= y2) { yaw = yaw - 90; pitch = pitch - 45; } else if(x1 >= x2 && y1 > y2) { yaw = 270 - yaw; pitch = pitch + 315; } if(z1 < z2)pitch = 360-pitch; } SetObjectRot(objectid, 0, 0, yaw); SetObjectRot(objectid, 0, pitch, yaw); } public DeleteAllObjects( playerid ) { if( IsPlayerAdmin( playerid ) == 0 && GetPlayerAuthLevel( playerid ) <= 5 ) { SendClientMessage( playerid, COLOR_RED, "ADMIN/TRUSTED ONLY" ); return 0; } for( new b = 0; b < MAX_PLAYERS; b++ ) { for( new i = 0; i < MAX_OBJECTS; i++ ) { if( IsObjectOwner( b, i ) == 1 ) { DestroyObject( i ); SetObjectOwner( b, i, 0 ); } } } new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "All objects deleted by %s!", GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_YELLOW, szMsg ); return 1; } public DeleteAllUserObjects( playerid ) { for( new i = 0; i < MAX_OBJECTS; i++ ) { if( IsValidObject( i ) == 1 ) { if( IsObjectOwner( playerid, i ) == 1 ) { DestroyObject( i ); SetObjectOwner( playerid, i, 0 ); } } } return 1; } public GetUserObjects( playerid ) { new b = 0; for( new i = 0; i < MAX_OBJECTS; i++ ) { if( UserObjects[ playerid ][ i ][ 0 ] == 1 ) { b++; } } return b; } public GetLastUserObject( playerid ) { new high = 0; for( new i = 0; i < MAX_OBJECTS; i++ ) { if( IsObjectOwner( playerid, i ) == 1 ) { if( i > high ) { high = i; } } } return high; } public SetObjectOwner( playerid, objectid, owned ) { UserObjects[ playerid ][ objectid ][ 0 ] = owned; } public IsObjectOwner( playerid, objectid ) { return UserObjects[ playerid ][ objectid ][ 0 ]; } public GetTotalObjects( ) { new b = 0; for( new i = 0; i < MAX_PLAYERS; i++ ) { for( new c = 0; c < MAX_OBJECTS; c++ ) { if( IsObjectOwner( i, c ) == 1 ) { b++; } } } return b; } public DeleteSingleObject( playerid, objectid, a ) { if( IsPlayerAdmin( playerid ) == 0 && GetPlayerAuthLevel( playerid ) <= 1 ) { if(a)SendClientMessage( playerid, COLOR_RED, "ADMIN/TRUSTED ONLY" ); return 0; } if( IsObjectOwner( playerid, objectid ) == 1 ) { if( GetUserObjects( playerid ) > 0 ) { SetObjectOwner( playerid, objectid, 0 ); } DestroyObject( objectid ); new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "Object %i deleted by %s", objectid, GetPlayerCaption( playerid ) ); if( a )SendClientMessageToAll( COLOR_YELLOW, szMsg ); return 1; } else { if(a)SendClientMessage( playerid, COLOR_RED, "Invalid object id." ); return 0; } return 1; } public SpawnObject( playerid, modelid ) { return SpawnObjectZ( playerid, modelid, 0.0 ); } public SpawnObjectZ( playerid, modelid, Float:Z ) { if( IsPlayerAdmin( playerid ) == 0 && GetPlayerAuthLevel( playerid ) <= 1 ) { SendClientMessage( playerid, COLOR_RED, "ADMIN/TRUSTED ONLY" ); return 0; } if( IsPlayerAdmin( playerid ) == 0 && GetUserObjects( playerid ) >= PlayerMaxObjects[ playerid ] ) { new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "You can spawn a maximum of %i objects, consult an admin for more privledges.", PlayerMaxObjects[ playerid ] ); SendClientMessage( playerid, COLOR_RED, szMsg ); return 0; } if( GetTotalObjects( ) >= MAX_OBJECTS ) { SendClientMessage( playerid, COLOR_RED, "Too many objects on the map!" ); return 0; } if( IsValidObjectModel( modelid ) == 0 ) { SendClientMessage( playerid, COLOR_RED, "Invalid or unsafe model id!" ); return 0; } new Float:SpawnRotZ; if( IsPlayerDriver( playerid ) == 0 ) { new Float:PlayerX, Float:PlayerY, Float:PlayerZ; GetPlayerPos( playerid, PlayerX, PlayerY, PlayerZ ); GetPlayerFacingAngle( playerid, SpawnRotZ ); SetObjectOwner( playerid, CreateObject( modelid, PlayerX, PlayerY, PlayerZ + Z, 0.0, 0.0, SpawnRotZ ), 1 ); SetPlayerPos( playerid, PlayerX, PlayerY, PlayerZ + 10.0 ); printf( "Object Spawned( model %i - x[%f] - y[%f] - z[%f] - rot[%f]", modelid, PlayerX, PlayerY, PlayerZ, SpawnRotZ ); } else if( IsPlayerDriver( playerid ) == 1 ) { new Float:CarX, Float:CarY, Float:CarZ; GetVehiclePos( GetPlayerVehicleID( playerid ), CarX, CarY, CarZ ); GetVehicleZAngle( GetPlayerVehicleID( playerid ), SpawnRotZ ); SetObjectOwner( playerid, CreateObject( modelid, CarX, CarY, CarZ + Z, 0.0, 0.0, SpawnRotZ ), 1 ); SetVehiclePos( GetPlayerVehicleID( playerid ), CarX, CarY, CarZ + 10.0 ); printf( "Object Spawned( model %i - x[%f] - y[%f] - z[%f] - rot[%f]", modelid, CarX, CarY, CarZ, SpawnRotZ ); } new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "Model %i ( Object %i ) spawned by %s.", modelid, GetLastUserObject( playerid ), GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_YELLOW, szMsg ); return 1; } public SpawnStuntObject( playerid, rampid ) { new nrampid = 1655; new Float:ZPos = 0.0; switch( rampid ) { case 1: { nrampid = 1655; //regular ramp ZPos = -0.09; } case 2: { nrampid = 1632; //skinnier [ regular ] ZPos = 0.0; } case 3: { nrampid = 1660; //concrete jump ZPos = -1.0; } case 4: { nrampid = 8302; //wood box jump ZPos = 0.0; } case 5: { nrampid = 2931; //skinny bike jump ZPos = -1.0; } case 6: { nrampid = 13592; //loop de loop ZPos = 8.9; } default: { nrampid = 1655; ZPos = -0.09; } } return SpawnObjectZ( playerid, nrampid, ZPos ); } public SetSpawnStunt( playerid ) { SetPlayerPos( playerid, 1887.5493, -1376.8995, 19.1406 ); return 0; } public MovePlayer( playerid, Float:X, Float:Y, Float:Z ) { if( IsPlayerDriver( playerid ) == 1 ) { SetVehiclePos( GetPlayerVehicleID( playerid ), X, Y, Z ); return 1; } else { SetPlayerPos( playerid, X, Y, Z ); return 1; } return 0; } public GetPlayerTruePosition( playerid, &Float:X, &Float:Y, &Float:Z ) { if( IsPlayerDriver( playerid ) == 1 ) { GetVehiclePos( GetPlayerVehicleID( playerid ), X, Y, Z ); return 1; } else { GetPlayerPos( playerid, X, Y, Z ); return 1; } return 0; } public SetTeleportMode( playerid, mode ) { if( IsPlayerAdmin( playerid ) == 0 ) { SendClientMessage( playerid, COLOR_RED, "ADMIN ONLY" ); return 0; } IsTeleportingOn = mode; return 1; } public TeleportPlayerToPlayer( playerid, targetid ) { if( IsTeleportingOn == 0 ) { SendClientMessage( playerid, COLOR_RED, "The admin has disabled teleporting!" ); return 0; } if( IsPlayerConnected( targetid ) == 0 ) { SendClientMessage( playerid, COLOR_RED, "Invalid player id." ); return 0; } if( playerid == targetid ) { SendClientMessage( playerid, COLOR_RED, "You can NOT warp to yourself!" ); return 0; } if( IsPlayerAdmin( playerid ) == 0 ) { if( gTeam[ playerid ] != TEAM_STUNT ) { SendClientMessage( playerid, COLOR_RED, "Command only useable by admins and stunt players." ); return 0; } if( gTeam[ targetid ] != TEAM_STUNT ) { SendClientMessage( playerid, COLOR_RED, "You can not teleport to non-stunt players!" ); return 0; } } new Float:WarpX, Float:WarpY, Float:WarpZ; GetPlayerPos( targetid, WarpX, WarpY, WarpZ ); MovePlayer( playerid, WarpX, WarpY + 10.0, WarpZ ); if( GetPlayerInterior( targetid ) > 0 )SetPlayerInterior( playerid, GetPlayerInterior( targetid ) ); new WarpMsg[ 256 ]; format( WarpMsg, sizeof( WarpMsg ), "Player %s warped to player %s ( /teleid [ id ] )", GetPlayerCaption( playerid ), GetPlayerCaption( targetid ) ); SendClientMessageToAll( COLOR_YELLOW, WarpMsg ); return 1; } new RandCars[50][1] = { {404},{405},{410},{413},{418}, {419},{421},{422},{426},{436}, {439},{445},{458},{466},{467}, {474},{475},{479},{482},{483}, {491},{492},{496},{500},{507}, {516},{517},{518},{526},{527}, {529},{533},{540},{542},{545}, {546},{547},{549},{550},{551}, {555},{566},{579},{580},{585}, {587},{589},{600},{602},{603} }; public AddCar(carcoords) { new randcol = minrand( 0x00000000, 0xFFFFFFFF ); new randcol2 = minrand( 0x00000000, 0xFFFFFFFF ); return CreateVehicle( RandCars[ minrand(0,50) ][ 0 ], CarSpawns[carcoords][pos_x], CarSpawns[carcoords][pos_y], CarSpawns[carcoords][pos_z], CarSpawns[carcoords][z_angle], randcol, randcol2, never); } public IsCar( vid ) { new modelid = GetVehicleModel( vid ); switch( modelid ) { case 448,461,462,463,468,471,481,509,510,521,522,523,581,586, //bikes 590, 569, 537, 538, 570, 449, //trains 472, 473, 493, 595, 484, 430, 453, 452, 446, 454, //boats 592, 577, 511, 512, 593, 520,553,464,476,519, 460,513,539,548,425,417,487,497,563,501,465, 447,469,488: //planes { return 0; } default: { return 1; } } return 0; } public SetPlayerMaxObject( playerid, targetid, max_obj, a ) { if( !IsPlayerAdmin( playerid ) ) { if( a )SendClientMessage( playerid, COLOR_RED, "ADMIN ONLY" ); return 0; } if( !IsPlayerConnected( targetid ) ) { if( a )SendClientMessage( playerid, COLOR_RED, "Invalid player id." ); return 0; } PlayerMaxObjects[ targetid ] = max_obj; dUserSetINT( GetPlayerCaption( targetid ) ).( "max_obj", PlayerMaxObjects[ targetid ] ); if( a ) { new szMsg[ 256 ], szMsg2[ 256 ]; format( szMsg, sizeof( szMsg ), "Set %s's max objects to %i", GetPlayerCaption( targetid ), max_obj ); format( szMsg2, sizeof( szMsg2 ), "You're max objects was set to %i by admin %s", max_obj, GetPlayerCaption( playerid ) ); SendClientMessage( playerid, COLOR_GREEN, szMsg ); SendClientMessage( targetid, COLOR_YELLOW, szMsg2 ); } return 1; } public GetPlayerMaxObject( playerid ) { return PlayerMaxObjects[ playerid ]; } public AddVehicleNOS( playerid ) { if( IsPlayerDriver( playerid ) == 0 ) { return 0; } new vehicleid = GetPlayerVehicleID( playerid ); if( IsCar( vehicleid ) ) { AddVehicleComponent( vehicleid, 1010 ); return 1; } return 0; } public TakePlayerMoney( playerid, targetid, money ) { if( IsPlayerAdmin( playerid ) == 0 ) { SendClientMessage( playerid, COLOR_RED, "ADMIN ONLY" ); return 0; } if( IsPlayerConnected( targetid ) == 0 ) { SendClientMessage( playerid, COLOR_RED, "Invalid player id." ); return 0; } SetPlayerMoney( targetid, GetPlayerMoney( targetid ) - money ); return 1; } public DropPlayer( playerid, targetid, h ) { if( IsPlayerAdmin( playerid ) == 0 && playerid != targetid ) { SendClientMessage( playerid, COLOR_RED, "ADMIN ONLY" ); return 0; } if( IsPlayerConnected( targetid ) == 0 ) { SendClientMessage( playerid, COLOR_RED, "Invalid player id." ); return 0; } if( h == 0 ) { h = 1; } new Float:X, Float:Y, Float:Z; GetPlayerTruePosition( targetid, X, Y, Z ); Z = ( Z + ( 200.0 * h ) ); MovePlayer( targetid, X, Y, Z ); return 1; } public add_log(file[], text[]) { new File:fp = fopen(file, io_append), tmp[1024]; format(tmp, 1024, "%s\n", text); fwrite(fp, tmp); fclose(fp); } public StuntDisableWeapons( ) { for( new i = 0; i < MAX_PLAYERS; i++ ) { if( IsPlayerConnected( i ) ) { ResetPlayerWeapons( i ); } } } public GetLocationsFromSaveFile( playerid ) { if( IsAuth[ playerid ] == 0 ) { return 0; } if( IsPlayerConnected( playerid ) == 0 ) { return 0; } if( udb_Exists( GetPlayerCaption( playerid ) ) == 0 ) { return 0; } for( new i = 0; i < MAX_SAVE_POS; i++ ) { new SaveFile[ 256 ]; format( SaveFile, sizeof( SaveFile ), "saveloc%iu", i ); IsSavedLocation[ playerid ][ i ] = dUserINT( GetPlayerCaption( playerid ) ).( SaveFile ); if( IsSavedLocation[ playerid ][ i ] == 1 ) { format( SaveFile, sizeof( SaveFile ), "saveloc%ix", i ); PlayerSaveSpawn[ playerid ][ i ][ 0 ] = dUserFLOAT( GetPlayerCaption( playerid ) ).( SaveFile ); format( SaveFile, sizeof( SaveFile ), "saveloc%iy", i ); PlayerSaveSpawn[ playerid ][ i ][ 1 ] = dUserFLOAT( GetPlayerCaption( playerid ) ).( SaveFile ); format( SaveFile, sizeof( SaveFile ), "saveloc%iz", i ); PlayerSaveSpawn[ playerid ][ i ][ 2 ] = dUserFLOAT( GetPlayerCaption( playerid ) ).( SaveFile ); } } return 1; } public RestorePlayerLocation( playerid, index ) { if( index > MAX_SAVE_POS ) { SendClientMessage( playerid, COLOR_RED, "Invalid save id ( 0 - 50 )!" ); return 0; } if( IsSavedLocation[ playerid ][ index ] == 0 ) { SendClientMessage( playerid, COLOR_RED, "No save data for that id!" ); return 0; } MovePlayer( playerid, PlayerSaveSpawn[ playerid ][ index ][ 0 ], PlayerSaveSpawn[ playerid ][ index ][ 1 ], PlayerSaveSpawn[ playerid ][ index ][ 2 ] ); new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "%s restored location %i! ( /rloc [ save id] )", GetPlayerCaption( playerid ), index ); SendClientMessageToAll( COLOR_GREEN, szMsg ); return 1; } public SaveLoc( playerid, index, Float:X, Float:Y, Float:Z, saved ) { if( index > MAX_SAVE_POS ) { if( index > MAX_SAVE_POS ) { SendClientMessage( playerid, COLOR_RED, "Invalid save id ( 0 - 50 )!" ); return 0; } } new SaveFile[ 256 ]; format( SaveFile, sizeof( SaveFile ), "saveloc%ix", index ); dUserSetFLOAT( GetPlayerCaption( playerid ) ).( SaveFile, X ); format( SaveFile, sizeof( SaveFile ), "saveloc%iy", index ); dUserSetFLOAT( GetPlayerCaption( playerid ) ).( SaveFile, Y ); format( SaveFile, sizeof( SaveFile ), "saveloc%iz", index ); dUserSetFLOAT( GetPlayerCaption( playerid ) ).( SaveFile, Z ); format( SaveFile, sizeof( SaveFile ), "saveloc%iu", index ); dUserSetINT( GetPlayerCaption( playerid ) ).( SaveFile, saved ); return 1; } public SaveLocation( playerid, index ) { if( IsPlayerConnected( playerid ) == 0 ) { return 0; } new Float:X, Float:Y, Float:Z; GetPlayerPos( playerid, X, Y, Z ); PlayerSaveSpawn[ playerid ][ index ][ 0 ] = X; PlayerSaveSpawn[ playerid ][ index ][ 1 ] = Y; PlayerSaveSpawn[ playerid ][ index ][ 2 ] = Z; IsSavedLocation[ playerid ][ index ] = 1; new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "%s saved location %i ( /sloc [save id] )", GetPlayerCaption( playerid ), index ); SendClientMessageToAll( COLOR_YELLOW, szMsg ); if( udb_Exists( GetPlayerCaption( playerid ) ) ) { if( IsAuth[ playerid ] == 1 ) { return SaveLoc( playerid, index, X, Y, Z, 1 ); } } return 0; } public GivePlayerParachute( playerid, a ) { if( IsPlayerConnected( playerid ) == 0 ) { return 0; } GivePlayerWeapon( playerid, 46, 1 ); if( a ) { new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "%s spawned a parachute! ( /para )", GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_YELLOW, szMsg ); } return 1; } public DropMe( playerid, h ) { if( DropPlayer( playerid, playerid, h ) ) { new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "%s dropped himself into the air! ( /dropme [height] )", GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_YELLOW, szMsg ); } } public CleanupPlayerStats( playerid ) { if( IsPlayerConnected( playerid ) == 0 )return 0; IsAuth[ playerid ] = 0; AuthLevel[ playerid ] = 0; IsWarned[ playerid ] = 0; IsWarnedTime[ playerid ] = 0; PlayerLastVehicle[ playerid ] = 0; Invulnerable[ playerid ] = 1; PlayerMaxObjects[ playerid ] = 0; for( new i = 0; i < MAX_SAVE_POS; i++ ) { PlayerSaveSpawn[ playerid ][ i ][ 0 ] = 0.0; PlayerSaveSpawn[ playerid ][ i ][ 1 ] = 0.0; PlayerSaveSpawn[ playerid ][ i ][ 2 ] = 0.0; IsSavedLocation[ playerid ][ i ] = 0; } return 1; } #define BOOM_EXPLOSION_RADIUS 32.0 public ExplodePlayer( playerid, targetid, type ) { if( IsPlayerConnected( targetid ) == 0 ) { return 0; } if( IsPlayerAdmin( playerid ) == 0 && playerid != targetid ) { return 0; } if( GetPlayerAuthLevel( playerid ) <= 4 ) { return 0; } if( IsPlayerDriver( targetid ) == 1 || IsPlayerPassenger( targetid ) == 1 ) { new vehicleid = GetPlayerVehicleID( targetid ); new Float:CarX, Float:CarY, Float:CarZ; GetVehiclePos( vehicleid, CarX, CarY, CarZ ); CreateExplosion( CarX, CarY, CarZ, type, BOOM_EXPLOSION_RADIUS ); return 1; } else { new Float:CarX, Float:CarY, Float:CarZ; GetPlayerPos( targetid, CarX, CarY, CarZ ); CreateExplosion( CarX, CarY, CarZ, type, BOOM_EXPLOSION_RADIUS ); return 1; } return 0; } public FindVehicleOwner( vehicleid ) { for( new i = 0; i < MAX_PLAYERS; i++ ) { if( IsPlayerDriver( i ) == 1 ) { if( GetPlayerVehicleID( i ) == vehicleid )return i; } } return -1; } public IsValidVehicle( vehicleid ) { new Float:vh = 0.0; GetVehicleHealth( vehicleid, vh ); if( vh == 0.0 ) { return 0; } return 1; } public DeleteVehicle( playerid, vehicleid, announce ) { if( IsPlayerAdmin( playerid ) == 0 && GetPlayerAuthLevel( playerid ) <= 1 ) { if( announce )SendClientMessage( playerid, COLOR_RED, "INSUFFICIENT AUTH" ); return 0; } if( IsPlayerInVehicle(playerid, vehicleid) == 1 ) { if( announce )SendClientMessage( playerid, COLOR_RED, "Get off the car first!" ); return 0; } if( FindVehicleOwner( vehicleid ) != -1 ) { if( announce )SendClientMessage( playerid, COLOR_RED, "There is a player driving this vehicle!" ); return 0; } if( IsValidVehicle( vehicleid ) == 0 ) { if( announce )SendClientMessage( playerid, COLOR_RED, "Invalid vehicle!" ); return 0; } DestroyVehicle( vehicleid ); return 1; } public GivePlayerJetpack( playerid, a ) { if( IsPlayerConnected( playerid ) == 0 ) { return 0; } if( IsPlayerInAnyVehicle( playerid ) == 1 ) { if( a )SendClientMessage( playerid, COLOR_RED, "You can not be in a vehicle to spawn a jetpack!" ); return 0; } new Float:X, Float:Y, Float:Z; GetPlayerPos( playerid, X, Y, Z ); AddStaticPickup( 370, 15, X, Y, Z ); new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "%s spawned a jetpack! ( /sjp )", GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_YELLOW, szMsg ); return 1; } public SetPlayerVuln( playerid, vulnid, vuln, announce ) { if( IsPlayerAdmin( playerid ) == 0 ) { if( announce ) { SendClientMessage( playerid, COLOR_RED, "ADMIN ONLY" ); } return 0; } if( IsPlayerConnected( vulnid ) == 0 ) { if( announce ) { SendClientMessage( playerid, COLOR_RED, "Invalid player id." ); } return 0; } new szMsg[ 256 ]; if( vuln == 0 ) { if( announce ) { format( szMsg, sizeof( szMsg ), "Player %s set to invulnerable by %s!", GetPlayerCaption( vulnid ), GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_GREEN, szMsg ); } Invulnerable[ playerid ] = 1; } else { if( announce ) { format( szMsg, sizeof( szMsg ), "Player %s set to vulnerable by %s!", GetPlayerCaption( vulnid ), GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_GREY, szMsg ); } Invulnerable[ playerid ] = 0; } return 1; } new IsVehicleLocked[ MAX_VEHICLES ]; public LockVehicle( playerid, a ) { if( !IsPlayerConnected( playerid ) ) { if(a)SendClientMessage( playerid, COLOR_RED, "ERROR UNKNOWN" ); return 0; } if( !IsPlayerDriver( playerid ) ) { if(a)SendClientMessage( playerid, COLOR_RED, "You must be a driver to do this!" ); return 0; } if( !IsCar( GetPlayerVehicleID( playerid ) ) ) { if(a)SendClientMessage( playerid, COLOR_RED, "You are not in a valid vehicle!" ); return 0; } for( new i = 0; i < MAX_PLAYERS; i++ ) { if( IsPlayerConnected( i ) == 1 ) { if( i != playerid ) { SetVehicleParamsForPlayer(GetPlayerVehicleID( playerid ),playerid,0,1);//doors are locked } } } IsVehicleLocked[ GetPlayerVehicleID( playerid ) ] = 1; return 0; } public UnlockVehicle( playerid, a ) { if( !IsPlayerConnected( playerid ) ) { if(a)SendClientMessage( playerid, COLOR_RED, "ERROR UNKNOWN" ); return 0; } if( !IsPlayerDriver( playerid ) ) { if(a)SendClientMessage( playerid, COLOR_RED, "You must be a driver to do this!" ); return 0; } if( !IsCar( GetPlayerVehicleID( playerid ) ) ) { if(a)SendClientMessage( playerid, COLOR_RED, "You are not in a valid vehicle!" ); return 0; } if( IsVehicleLocked[ GetPlayerVehicleID( playerid ) ] == 0 ) { if(a)SendClientMessage( playerid, COLOR_RED, "This vehicle is not locked!" ); return 0; } for( new i = 0; i < MAX_PLAYERS; i++ ) { if( IsPlayerConnected( i ) == 1 ) { if( i != playerid ) { SetVehicleParamsForPlayer(GetPlayerVehicleID( playerid ),playerid,0,0);//doors are unlocked } } } IsVehicleLocked[ GetPlayerVehicleID( playerid ) ] = 0; return 0; } new Float:gCityMovements[ 3 ][ 3 ] = { { 2779.6001,-2010.7078,13.5547 }, //LS { -1916.0455,293.3197,41.0469 }, //SF { 2322.2805,1411.2649,42.8203 } //LV }; new CityNames[ 3 ][ 256 ] = { { "Los Santos" }, { "San Fierro" }, { "Las Venturas" } }; public CityJump( playerid, cityid, a ) { if( cityid >= 3 || cityid <= -1 ) { if( a )SendClientMessage( playerid, COLOR_RED, "Invalid city id! ( 0 - 2 )" ); return 0; } new iRet = MovePlayer( playerid, gCityMovements[ cityid ][ 0 ], gCityMovements[ cityid ][ 1 ], gCityMovements[ cityid ][ 2 ] ); if( iRet == 1 ) { new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "%s warped to city %s ( /wcity [city ( 0 - 2 )] )", GetPlayerCaption( playerid ), CityNames[ cityid ] ); SendClientMessageToAll( COLOR_YELLOW, szMsg ); } else { if( a )SendClientMessage( playerid, COLOR_RED, "Error in MovePlayer!" ); } return iRet; } public DeleteObjectArea( playerid, object1, object2, a ) { new iRet = 0; for( new i = object1; i < object2; i++ ) { new iiRet = DeleteSingleObject( playerid, i, 0 ); if( ( !iRet && iiRet ) || ( iRet == 1 && !iiRet ) ) { iRet = iiRet; } } new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "Admin deleted objects %i through %i", object1, object2 ); if(a)SendClientMessageToAll( COLOR_YELLOW, szMsg ); return iRet; } public WarpToLastVehicle( playerid, a ) { if( PlayerLastVehicle[ playerid ] == 0 ) { if( a )SendClientMessage( playerid, COLOR_RED, "Invalid vehicle!" ); return 0; } PutPlayerInVehicle( playerid, PlayerLastVehicle[ playerid ], 0 ); if( a ) { new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "Player %s warped to his last vehicle ( use /wtl )", GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_YELLOW, szMsg ); } return 1; } public WarpLastVehicleToPlayer( playerid, a ) { if( PlayerLastVehicle[ playerid ] == 0 ) { if( a )SendClientMessage( playerid, COLOR_RED, "Invalid vehicle!" ); return 0; } if( IsPlayerInAnyVehicle( playerid ) == 1 ) { if( a )SendClientMessage( playerid, COLOR_RED, "Get out of your vehicle first!!" ); return 0; } if( IsPlayerConnected( FindVehicleOwner( PlayerLastVehicle[ playerid ] ) ) == 1 ) { if( a )SendClientMessage( playerid, COLOR_RED, "Some one is already in that vehicle!" ); return 0; } new Float:X, Float:Y, Float:Z; GetPlayerPos( playerid, X, Y, Z ); SetVehiclePos( PlayerLastVehicle[ playerid ], X, Y + 5.0, Z); if( a ) { new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "Player %s warped his last vehicle to himself! ( use /ltw )", GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_YELLOW, szMsg ); } return 1; } public CountDown( playerid ) { PlayerCount[ playerid ]--; switch( PlayerCount[ playerid ] ) { case 4: { new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "%s started a countdown!", GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_YELLOW, szMsg ); } case 3:SendClientMessageToAll( COLOR_YELLOW, "3..." ); case 2:SendClientMessageToAll( COLOR_YELLOW, "2..." ); case 1:SendClientMessageToAll( COLOR_YELLOW, "1..." ); case 0:SendClientMessageToAll( COLOR_YELLOW, "GO! GO! GO!" ); default:SendClientMessage( playerid, COLOR_RED, "Countdown error!" ); } if( PlayerCount[ playerid ] != 0 ) { SetTimerEx( "CountDown", 1000, 0, "i", playerid ); } else { IsPlayerCounting[ playerid ] = 0; } } public StartCount( playerid ) { if( IsPlayerCounting[ playerid ] == 1 ) { SendClientMessage( playerid, COLOR_RED, "One countdown is enough!" ); return 0; } IsPlayerCounting[ playerid ] = 1; PlayerCount[ playerid ] = 5; SendClientMessage( playerid, COLOR_YELLOW, "Countdown started!" ); SetTimerEx( "CountDown", 1000, 0, "i", playerid ); return 1; } #define MIN_SKIN_ID 0 #define MAX_SKIN_ID 299 public IsInvalidSkin(skinid) { #define MAX_BAD_SKINS 22 new badSkins[MAX_BAD_SKINS] = { 3, 4, 5, 6, 8, 42, 65, 74, 86, 119, 149, 208, 265, 266, 267, 268, 269, 270, 271, 272, 273, 289 }; for (new i = 0; i < MAX_BAD_SKINS; i++) { if (skinid == badSkins[i]) return 1; } return 0; } public GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance) { if( IsPlayerConnected( playerid ) == 0 )return 0; new Float:a; GetPlayerPos(playerid, x, y, a); GetPlayerFacingAngle(playerid, a); if (GetPlayerVehicleID(playerid)) { GetVehicleZAngle(GetPlayerVehicleID(playerid), a); } x += (distance * floatsin(-a, degrees)); y += (distance * floatcos(-a, degrees)); return 1; } //===================================================================================================== /* ~k~~VEHICLE_TURRETLEFT~ ~k~~VEHICLE_TURRETRIGHT~ ~k~~VEHICLE_TURRETUP~ ~k~~VEHICLE_TURRETDOWN~ ~k~~VEHICLE_HORN~ ~k~~VEHICLE_LOOKLEFT~ ~k~~VEHICLE_LOOKRIGHT~ ~k~~VEHICLE_ENTER_EXIT~ ~k~~VEHICLE_ACCELERATE~ ~k~~VEHICLE_BRAKE~ ~k~~VEHICLE_HANDBRAKE~ ~k~~VEHICLE_STEERDOWN~ ~k~~VEHICLE_STEERUP~ ~k~~VEHICLE_STEERLEFT~ ~k~~VEHICLE_STEERRIGHT~ ~k~~VEHICLE_FIREWEAPON_ALT~ ~k~~VEHICLE_RADIO_STATION_UP~ ~k~~VEHICLE_RADIO_STATION_DOWN~ ~k~~PED_SPRINT~ ~k~~PED_FIREWEAPON~ ~k~~PED_ANSWER_PHONE~ ~k~~PED_LOCK_TARGET~ ~k~~PED_LOOKBEHIND~ ~k~~PED_SNIPER_ZOOM_IN~ ~k~~PED_SNIPER_ZOOM_OUT~ ~k~~PED_CYCLE_WEAPON_LEFT~ ~k~~PED_CYCLE_WEAPON_RIGHT~ ~k~~PED_DUCK~ ~k~~PED_JUMPING~ ~k~~GO_LEFT~ ~k~~GO_RIGHT~ ~k~~GO_BACK~ ~k~~GO_FORWARD~ ~k~~TOGGLE_SUBMISSIONS~ ~k~~CONVERSATION_NO~ ~k~~CONVERSATION_YES~ ~k~~GROUP_CONTROL_BWD~ ~k~~GROUP_CONTROL_FWD~ */ new IsInSkinSelect[ MAX_PLAYERS ]; new PlayerKeys[ MAX_PLAYERS ][ 3 ]; public InitSkinSelect( playerid ) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); SetPlayerCameraLookAt(playerid, x, y, z); GetXYInFrontOfPlayer(playerid, x, y, 3.5); SetPlayerCameraPos(playerid, x, y, z); TogglePlayerControllable(playerid, 0); IsInSkinSelect[ playerid ] = 1; GameTextForPlayer(playerid,"~r~~h~~h~~k~~PED_ANSWER_PHONE~ to select a skin~n~~r~~h~~h~left or right to pick skins",1000*6,5); } public KeyTimer() { for(new playerid=0;playerid 30; i-- ) { if( IsInvalidSkin( i ) == 0 ) { if( i == 299 ) { AddPlayerClass(i, 2246.2295,2489.3726,10.8203,76.9256, 0, 0, 0, 0, 0, 0); AddPlayerClass( 0, 2246.2295,2489.3726,10.8203,76.9256, 0, 0, 0, 0, 0, 0); } else { AddPlayerClass(i, 2246.2295,2489.3726,10.8203,76.9256, 0, 0, 0, 0, 0, 0); } } } //----------------------------------- AllowAdminTeleport(1); //-----stunt bikes AddStaticVehicle2(522,1973.7346,-1445.9835,13.5947,177.0632,40,1); // STUNT_BIKE_1 AddStaticVehicle2(522,1939.0299,-1445.4941,13.6007,142.9877,40,1); // STUNT_BIKE_2 AddStaticVehicle2(522,1933.1569,-1445.8197,13.5853,132.5101,40,1); // STUNT_BIKE_3 AddStaticVehicle2(522,1921.8263,-1446.3594,13.5767,124.1694,40,1); // STUNT_BIKE_4 AddStaticVehicle2(522,1864.7609,-1442.0099,13.6119,356.2814,40,1); // STUNT_BIKE_5 AddStaticVehicle2(522,1919.8218,-1413.4073,13.6627,139.5114,40,1); // STUNT_BIKE_6 AddStaticVehicle2(522,1863.7384,-1408.5516,13.5675,180.6480,40,1); // STUNT_BIKE_7 AddStaticVehicle2(481,1887.5493,-1362.8995,19.1406,137.9691,40,1); // STUNT_BMX_1 AddStaticVehicle2(481,1870.8937,-1363.0991,19.1406,137.0291,40,1); // STUNT_BMX_2 AddStaticVehicle2(481,1869.7489,-1359.9618,19.1406,131.3890,40,1); // STUNT_BMX_3 AddStaticVehicle2(481,1944.9882,-1365.0441,18.6704,315.8522,40,1); // STUNT_BMX_4 AddStaticVehicle2(522,1084.7285,-2037.8595,74.0559,0.5236,40,1); // d3bike AddStaticVehicle2(443,1909.1537,-1361.1270,14.2035,71.8369,36,1); // packer1 AddStaticVehicle2(444,1924.4268,-1374.0905,14.0362,68.4131,32,32); // monster1 AddStaticVehicle2(571,1927.0438,-1369.8301,13.6942,39.9136,2,35); // kart1 AddStaticVehicle2(554,1931.2034,-1369.0675,16.1437,48.8318,45,32); // truck1 AddStaticVehicle2(571,1955.6827,-1393.9325,14.6771,71.2146,51,53); // kart2 AddStaticVehicle2(571,1952.8547,-1394.3510,14.2484,70.3501,91,2); // kart3 AddStaticVehicle2(571,1949.5503,-1396.5016,13.3156,334.5041,11,22); // kart4 AddStaticVehicle2(471,1933.8804,-1392.2721,14.3418,69.4289,120,117); // 4weel1 AddStaticVehicle2(471,1936.9528,-1392.9647,14.5535,73.1837,103,111); // 4weel2 AddStaticVehicle2(471,1940.1912,-1393.8330,14.4625,74.2497,103,111); // 4weel3 AddStaticVehicle2(471,1930.2520,-1391.4264,13.5676,70.6764,120,113); // 4weel4 AddStaticVehicle2(559,1923.3411,-1358.9777,14.5885,73.2526,51,1); // sport1 AddStaticVehicle2(406,1913.9038,-1361.3058,15.1801,114.9140,1,1); // dumper AddStaticVehicle2(423,1900.5787,-1346.3344,13.5123,99.7458,1,17); // mrwooper AddStaticVehicle2(414,1887.3474,-1340.1135,13.5014,72.7953,43,1); // bigvan AddStaticVehicle2(470,1847.4257,-1355.3745,13.3960,72.1444,43,0); // patriot AddStaticVehicle2(432,1822.8608,-1356.2101,14.5965,70.1268,43,0); // rhino AddStaticVehicle2(603,1825.2473,-1350.5750,14.3613,71.1248,13,1); // car406a AddStaticVehicle2(603,1826.4623,-1337.9685,14.3020,77.5033,45,45); // car406b AddStaticVehicle2(603,1825.2587,-1339.9125,14.3211,74.3675,34,1); // car406c AddStaticVehicle2(403,1839.3942,-1325.0959,14.1024,71.3848,25,1); // semi1 AddStaticVehicle2(403,1841.2419,-1310.0580,14.1225,71.4933,28,1); // semi2 //------------------- //timer init SetTimer( "PingTimer", 1000*15, 1 ); //once five seconds SetTimer( "LoginTimer", 1000, 1 ); //once one second SetTimer( "StuntRestore", 1000, 1 ); //once every second SetTimer( "WebTimer", ( ( 1000 * 60 ) * 5 ), 1 ); //once every 5 minutes SetTimer( "ControllableTimer", 1000, 1 ); //once every second SetTimer( "SaveTimer", 1000 * 60 * 2, 1 ); //every 2 minutes SetTimer( "ParaTimer", 1000, 1 ); //once every second SetTimer( "KeyTimer", 10, 1 ); //blah UsePlayerPedAnims( ); // Will cause the players to use CJ running/walking animations StuntDisableWeapons( ); AllowInteriorWeapons(0); EnableTirePopping(0); return 1; } public OnPlayerText(playerid, text[]) { new fir[ 256 ]; new idx; fir = strtok( text, idx ); if( IsStr( fir, "login" ) || IsStr( fir, "register" ) || IsStr( fir, "changepass" ) || IsStr( fir, "cgpass" ) ) { SendClientMessage( playerid, COLOR_RED, "String could not be sent due to login protection(s)!" ); return 0; } new szMessage[ 256 ]; if( IsPlayerAdmin( playerid ) == 0 ) { format( szMessage, sizeof( szMessage ), "( %i )( %s ) %s", playerid, GetPlayerCaption( playerid ), text ); SendClientMessageToAll( COLOR_WHITE, szMessage ); } else { format( szMessage, sizeof( szMessage ), "( %i )( ~%s ) %s", playerid, GetPlayerCaption( playerid ), text ); SendClientMessageToAll( COLOR_ORANGE, szMessage ); } return 0; } public FlipPlayerVehicle( playerid, a ) { if( IsPlayerInAnyVehicle( playerid ) == 0 ) { if( a )SendClientMessage( playerid, COLOR_RED, "You must be in a vehicle!" ); return 0; } if( a ) { new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "%s has flipped himself! ( use '/flipme' )", GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_YELLOW, szMsg ); } SetVehicleZAngle( GetPlayerVehicleID( playerid ), 0.0 ); return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { new cmd[256]; new param1[ 256 ]; new param2[ 256 ]; new iparam1, iparam2; new idx; cmd = strtok( cmdtext, idx ); param1 = strtok( cmdtext, idx ); param2 = strtok( cmdtext, idx ); iparam1 = strval( param1 ); iparam2 = strval( param2 ); if( IsStr( cmd, "/info" ) == 1 ) { SendClientMessage( playerid, COLOR_YELLOW, "This is the dedicated american sex STUNT server, there is no rules just stunt!" ); return 1; } if( IsStr( cmd, "/cmd" ) || IsStr( cmd, "/commands" ) || IsStr( cmd, "/com" ) ) { SendClientMessage( playerid, COLOR_GREEN, "Go to http://dedicatedamericansex.com/ for commands!" ); return 1; } if( IsStr( cmd, "/register" ) || IsStr( cmd, "/reg" ) ) { RegisterPlayer( playerid, param1 ); return 1; } if( IsStr( cmd, "/login" ) || IsStr( cmd, "/ident" ) ) { LoginToServer( playerid, param1 ); return 1; } if( IsStr( cmd, "/changepass" ) || IsStr( cmd, "/cgpass" ) ) { ChangePassword( playerid, param1, 1 ); return 1; } if( IsStr( cmd, "/grav" ) == 1 ) { AdjustGrav( playerid, floatstr( param1 ) ); return 1; } if( IsStr( cmd, "/flipme" ) || IsStr( cmd, "/fm" ) ) { FlipPlayerVehicle( playerid, 1 ); return 1; } if( IsStr( cmd, "/rgrav" ) == 1 ) { RestoreGrav( playerid ); return 1; } if( IsStr( cmd, "/time" ) == 1 ) { AdjustTime( playerid, iparam1 ); return 1; } if( IsStr( cmd, "/scar" ) == 1 ) { SpawnVehicle( playerid, iparam1 ); return 1; } if( IsStr( cmd, "/sbike" ) == 1 ) { SpawnVehicle( playerid, 522 ); return 1; } if( IsStr( cmd, "/die" ) == 1 ) { KillUser( playerid, iparam1 ); return 1; } if( IsStr( cmd, "/banacct" ) == 1 ) { BanAccount( playerid, iparam1 ); return 1; } if( IsStr( cmd, "/spawnobj" ) == 1 ) { SpawnObject( playerid, iparam1 ); return 1; } if( IsStr( cmd, "/sobjex" ) == 1 || IsStr( cmd, "/soex" ) ) { SpawnObjectZ( playerid, iparam1, floatstr( param2 ) ); return 1; } if( IsStr( cmd, "/sr" ) == 1 ) { SpawnStuntObject( playerid, iparam1 ); return 1; } if( IsStr( cmd, "/delobj" ) == 1 ) { DeleteAllObjects( playerid ); return 1; } if( IsStr( cmd, "/dmo" ) == 1 ) { DeleteAllUserObjects( playerid ); return 1; } if( IsStr( cmd, "/dso" ) == 1 ) { DeleteSingleObject( playerid, iparam1, 1 ); return 1; } if( IsStr( cmd, "/dlo" ) == 1 ) { DeleteSingleObject( playerid, GetLastUserObject( playerid ), 1 ); return 1; } if( IsStr( cmd, "/teleid" ) == 1 ) { TeleportPlayerToPlayer( playerid, iparam1 ); return 1; } if( IsStr( cmd, "/takecash" ) == 1 ) { TakePlayerMoney( playerid, iparam1, iparam2 ); return 1; } if( IsStr( cmd, "/drop" ) == 1 ) { DropPlayer( playerid, iparam1, 2 ); return 1; } if( IsStr( cmd, "/changeskin" ) || IsStr( cmd, "/cgskin" ) ) { if( IsPlayerConnected( iparam1 ) == 1 ) { SetPlayerSkin( iparam1, iparam2 ); } return 1; } if( IsStr( cmd, "/auth" ) == 1 ) { SetPlayerAuthLevel( playerid, iparam1, iparam2, 1 ); return 1; } if( IsStr( cmd, "/sloc" ) == 1 ) { SaveLocation( playerid, iparam1 ); return 1; } if( IsStr( cmd, "/rloc" ) == 1 ) { RestorePlayerLocation( playerid, iparam1 ); return 1; } if( IsStr( cmd, "/dropme" ) == 1 ) { DropMe( playerid, iparam1 ); return 1; } if( IsStr( cmd, "/exp" ) == 1 ) { if( ExplodePlayer( playerid, iparam1, iparam2 ) ) { new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "explosion created at %s by %s.", GetPlayerCaption( iparam1 ), GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_YELLOW, szMsg ); } return 1; } if( IsStr( cmd, "/dcar" ) == 1 ) { DeleteVehicle( playerid, iparam1, 1 ); return 1; } if( IsStr( cmd, "/sjp" ) == 1 ) { GivePlayerJetpack( playerid, 1 ); return 1; } if( IsStr( cmd, "/vuln" ) == 1 ) { SetPlayerVuln( playerid, iparam1, iparam2, 1 ); return 1; } if( IsStr( cmd, "/lock" ) == 1 ) { LockVehicle( playerid, 1 ); return 1; } if( IsStr( cmd, "/ulock" ) == 1 ) { UnlockVehicle( playerid, 1 ); return 1; } if( IsStr( cmd, "/wcity" ) == 1 ) { CityJump( playerid, iparam1, 1 ); return 1; } if( IsStr( cmd, "/dogr" ) == 1 ) { DeleteObjectArea( playerid, iparam1, iparam2, 1 ); return 1; } if( IsStr( cmd, "/spawn" ) == 1 ) { SetSpawnStunt( playerid ); new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "%s warped back to spawn ( use /spawn )", GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_YELLOW, szMsg ); return 1; } if( IsStr( cmd, "/wtl" ) == 1 ) { WarpToLastVehicle( playerid, 1 ); return 1; } if( IsStr( cmd, "/ltw" ) == 1 ) { WarpLastVehicleToPlayer( playerid, 1 ); return 1; } if( IsStr( cmd, "/count" ) == 1 ) { StartCount( playerid ); return 1; } if( IsStr( cmd, "/ssel" ) == 1 ) { if( IsPlayerOnFoot( playerid ) ) { InitSkinSelect( playerid ); } else { SendClientMessage( playerid, COLOR_RED, "You must be on foot!" ); } return 1; } if( IsStr( cmd, "/telemode" ) == 1 ) { if( SetTeleportMode( playerid, iparam1 ) == 1 ) { switch( iparam1 ) { case 0:SendClientMessageToAll( COLOR_YELLOW, "Admin set teleporting to OFF" ); case 1:SendClientMessageToAll( COLOR_YELLOW, "Admin set teleporting to ON" ); default:printf( "Teleport %i", IsTeleportingOn ); } } return 1; } if( IsStr( cmd, "/sumo" ) ) { SetPlayerMaxObject( playerid, iparam1, iparam2, 1 ); return 1; } return 0; } public OnPlayerConnect(playerid) { IsAuth[ playerid ] = 0; IsWarned[ playerid ] = 0; IsWarnedTime[ playerid ] = 0; if( udb_Exists( GetPlayerCaption( playerid ) ) == 1 ) { new IsBanned = dUserINT( GetPlayerCaption( playerid ) ).( "banned" ); if( IsBanned == 1 ) { new szBan[ 256 ]; format( szBan, sizeof( szBan ), "%s was banned for an existing account ban.", GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_YELLOW, szBan ); Ban( playerid ); Kick( playerid ); } IsWarned[ playerid ] = 1; SendClientMessage( playerid, COLOR_YELLOW, "This nickname is registered and protected. If it is your nickname," ); SendClientMessage( playerid, COLOR_YELLOW, "type /login [password]. Otherwise, please choose a different nickname." ); SendClientMessage( playerid, COLOR_YELLOW, "You have 1 minute to log in." ); SetPlayerMoney( playerid, 0 ); } /* for( new i = 0; i < MAX_PLAYERS; i++ ) { if( strcmp( GetPlayerIPA( playerid ), GetPlayerIPA( i ) ) == 0 ) { if( i != playerid ) { new szMsg[ 256 ]; format( szMsg, sizeof( szMsg ), "%s removed from the game ( duplicate ip )" ); SendClientMessageToAll( COLOR_YELLOW, szMsg ); Kick( playerid ); } } } */ new szJoinMsg[ 256 ]; format( szJoinMsg, sizeof( szJoinMsg ), "%s has joined the game!", GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_ORANGE, szJoinMsg ); GameTextForPlayer( playerid,"~r~DEDICATED AMERICAN SEX STUNT",2500,5 ); GivePlayerMoney( playerid, 200 ); SetPlayerColor( playerid, COLOR_YELLOW ); // Set the player's color to inactive SendClientMessage( playerid, 0xFFFFFFFF, "Remember, type /info for the commands!!!" ); Invulnerable[ playerid ] = 1; return 1; } public OnPlayerEnterCheckpoint( playerid ) { printf( "OnPlayerEnterCheckpoint" ); } public OnPlayerRequestClass(playerid, classid) { SetPlayerTeamFromClass(playerid, classid); SetupPlayerForClassSelection(playerid); gPlayerClass[playerid] = classid; GameTextForPlayer( playerid, "~b~Stunter", 1000, 3 ); return 1; } public OnVehicleDeath(vehicleid, killerid) { printf( "OnVehicleDeath" ); } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { printf( "OnPlayerEnterVehicle" ); } public OnPlayerStateChange(playerid, newstate, oldstate) { printf( "OnPlayerStateChange" ); } public OnPlayerDeath(playerid, killerid, reason) { printf( "onPlayerDeath" ); new szDead[ 256 ]; format( szDead, sizeof( szDead ), "%s has died.", GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_ORANGE, szDead ); } public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { if (IsPlayerInAnyVehicle(playerid)) { LinkVehicleToInterior(GetPlayerVehicleID(playerid), newinteriorid); } return 1; } public SetupPlayerForClassSelection(playerid) { SetPlayerInterior( playerid,9 ); SetPlayerFacingAngle(playerid,0.0); SetPlayerPos(playerid,315.7802,972.0253,1961.8705); SetPlayerCameraPos(playerid,315.7802,975.0253,1961.8705); SetPlayerCameraLookAt(playerid,315.7802,972.0253,1961.8705); return; } public SetPlayerTeamFromClass(playerid, classid) { gTeam[ playerid ] = TEAM_STUNT; SetPlayerColor( playerid, COLOR_LIGHTBLUE ); } public OnPlayerSpawn(playerid) { printf( "OnPlayerSpawn( %i )", playerid ); SetPlayerInterior( playerid, 0 ); if( gTeam[ playerid ] == TEAM_STUNT ) { SetSpawnStunt( playerid ); GivePlayerParachute( playerid, 0 ); } if( IsAuth[ playerid ] == 1 ) { new save_skin = dUserINT( GetPlayerCaption( playerid ) ).( "skin" ); if( save_skin == 0 ) { SendClientMessage( playerid, COLOR_GREEN, "No previous skin save data, skin auto-saved! use '/ssel' to change it!" ); dUserSetINT( GetPlayerCaption( playerid ) ).( "skin", GetPlayerSkin( playerid ) + 1 ); } else if( save_skin !=0 && save_skin != GetPlayerSkin( playerid ) ) { SendClientMessage( playerid, COLOR_ORANGE, "Saved skin restored, to choose a new skin use '/ssel'!" ); SetPlayerSkin( playerid, save_skin - 1 ); } } return 1; } public OnPlayerDisconnect(playerid) { if( IsAuth[ playerid ] == 1 ) { SavePlayerStats( playerid ); } new szQuit[ 256 ]; format( szQuit, sizeof( szQuit ), "QUIT: %s has left the game.", GetPlayerCaption( playerid ) ); SendClientMessageToAll( COLOR_ORANGE, szQuit ); CleanupPlayerStats( playerid ); return 1; } new Menu:SpawnRampMenu; public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if( newkeys & KEY_CROUCH ) { AddVehicleNOS( playerid ); } if( IsPlayerInAnyVehicle( playerid ) == 0 ) { if( GetPlayerAuthLevel( playerid ) > 2 || IsPlayerAdmin( playerid ) == 1 ) { if( newkeys & KEY_HANDBRAKE ) { SpawnRampMenu = CreateMenu( " ", 1, 100, 200, 90, 25 ); AddMenuItem( SpawnRampMenu, 0, "Ramp 1" ); AddMenuItem( SpawnRampMenu, 0, "Ramp 2" ); AddMenuItem( SpawnRampMenu, 0, "Cement Ramp" ); AddMenuItem( SpawnRampMenu, 0, "Wood Ramp" ); AddMenuItem( SpawnRampMenu, 0, "Skinny" ); AddMenuItem( SpawnRampMenu, 0, "Loop de Loop" ); AddMenuItem( SpawnRampMenu, 0, "Delete Last" ); ShowMenuForPlayer( SpawnRampMenu, playerid ); TogglePlayerControllable( playerid, 0 ); } } } } public CloseSpawnMenu( playerid ) { new Menu:pMenu = GetPlayerMenu( playerid ); if( IsValidMenu( pMenu ) == 1 ) { if( pMenu == SpawnRampMenu ) { DestroyMenu( pMenu ); TogglePlayerControllable( playerid, 1 ); } } } public OnPlayerExitedMenu(playerid) { CloseSpawnMenu( playerid ); } public OnPlayerSelectedMenuRow(playerid, row) { new Menu:pmenu = GetPlayerMenu( playerid ); if( pmenu == SpawnRampMenu ) { switch( row ) { case 6: { DeleteSingleObject( playerid, GetLastUserObject( playerid ), 1 ); } default: { SpawnStuntObject( playerid, row + 1 ); } } DestroyMenu(SpawnRampMenu); } TogglePlayerControllable( playerid, 1 ); } public OnPlayerExitVehicle( playerid, vehicleid ) { PlayerLastVehicle[ playerid ] = vehicleid; if( IsVehicleLocked[ vehicleid ] ) { SendClientMessage( playerid, COLOR_GREEN, "You exited the vehicle, the doors are no longer locked!" ); for( new i = 0; i < MAX_PLAYERS; i++ ) { if( IsPlayerConnected( i ) == 1 ) { if( i != playerid ) { SetVehicleParamsForPlayer(GetPlayerVehicleID( playerid ),playerid,0,0); //doors are unlocked } } } IsVehicleLocked[ GetPlayerVehicleID( playerid ) ] = 0; } } //===================================================================================================== public ParaTimer( ) { for( new i = 0; i < MAX_PLAYERS; i++ ) { if( IsPlayerConnected( i ) == 1 ) { GivePlayerParachute( i, 0 ); } } } //===================================================================================================== public PingTimer( ) { for( new i = 0; i < MAX_PLAYERS; i++ ) { if( IsPlayerConnected( i ) == 1 ) { if( GetPlayerPing( i ) > MAX_PING ) { PingWarnings[ i ]++; if( PingWarnings[ i ] > 6 ) { new szKick[ 256 ]; format( szKick, sizeof( szKick ), "Removing player %s from the game ( max ping %i ms )", GetPlayerCaption( i ), MAX_PING ); SendClientMessageToAll( COLOR_YELLOW, szKick ); Kick( i ); } } } } } //===================================================================================================== public LoginTimer( ) { for( new i = 0; i < MAX_PLAYERS; i++ ) { if( IsPlayerConnected( i ) == 1 ) { if( IsWarned[ i ] == 1 && IsAuth[ i ] == 0 ) { IsWarnedTime[ i ] = ( IsWarnedTime[ i ] + ONE_SECOND ); if( IsWarnedTime[ i ] > ( ONE_MINUTE * 2 ) ) { new szKick[ 256 ]; format( szKick, sizeof( szKick ), "Removing player %s from the game ( failed to login )", GetPlayerCaption( i ) ); SendClientMessageToAll( COLOR_YELLOW, szKick ); Kick( i ); } } } } } //===================================================================================================== public StuntRestore( ) { for( new i = 0; i < MAX_PLAYERS; i++ ) { if( IsPlayerConnected( i ) == 1 ) { if( Invulnerable[ i ] == 1 ) { if( gTeam[ i ] == TEAM_STUNT ) { SetPlayerHealth( i, 100.0 ); SetPlayerArmour( i, 100.0 ); SetPlayerMoney( i, 0 ); if( IsPlayerDriver( i ) == 1 ) { SetVehicleHealth( GetPlayerVehicleID( i ), 9999990.0 ); SetVehicleNumberPlate( GetPlayerVehicleID( i ), "STUNT" ); } } } } } } //===================================================================================================== public WebTimer( ) { SendClientMessageToAll( COLOR_WHITE, "Visit our website http://dedicatedamericansex.com!" ); SendClientMessageToAll( COLOR_WHITE, "DAS Teamspeak - dedicatedamericansex.com:8700" ); SendClientMessageToAll( COLOR_YELLOW, "NEVER ASK FOR ADMIN!!!!!!!!!!!" ); SendClientMessageToAll( COLOR_WHITE, "Now recruiting all regular players" ); } //=====================================================================================================