#include /* native ReturnComponentSlot(componentid); native GetVehicle2DZone(vehicleid, zone[], len); native split(const strsrc[], strdest[][], delim); native strtok(const string[], &index); native GetVehicleName(vehicleid); native GetVehicleNameByModel(modelid); native sscanf(string[], format[], {Float,_}:...); native PlayerName(playerid); */ new spoiler[20][0] = {1000, 1001, 1002, 1003, 1014, 1015, 1016, 1023, 1058, 1060, 1049, 1050, 1138, 1139, 1146, 1147, 1158, 1162, 1163, 1164}; new nitro[3][0] = {1008, 1009, 1010}; new front_bumper[23][0] = {1117, 1152, 1153, 1155, 1157, 1160, 1165, 1167, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1179, 1181, 1182, 1185, 1188, 1189, 1192, 1193}; new rear_bumper[22][0] = {1140, 1141, 1148, 1149, 1150, 1151, 1154, 1156, 1159, 1161, 1166, 1168, 1176, 1177, 1178, 1180, 1183, 1184, 1186, 1187, 1190, 1191}; new exhaust[28][0] = {1018, 1019, 1020, 1021, 1022, 1028, 1029, 1037, 1043, 1044, 1045, 1046, 1059, 1064, 1065, 1066, 1089, 1092, 1104, 1105, 1113, 1114, 1126, 1127, 1129, 1132, 1135, 1136}; new bventr[2][0] = {1042, 1044}; new bventl[2][0] = {1043, 1045}; new bscoop[4][0] = {1004, 1005, 1011, 1012}; new rscoop[13][0] = {1006, 1032, 1033, 1035, 1038, 1053, 1054, 1055, 1061, 1067, 1068, 1088, 1091}; new left_sideskirt[21][0] = {1007, 1026, 1031, 1036, 1039, 1042, 1047, 1048, 1056, 1057, 1069, 1070, 1090, 1093, 1106, 1108, 1118, 1119, 1133, 1122, 1134}; new right_sideskirt[21][0] = {1017, 1027, 1030, 1040, 1041, 1051, 1052, 1062, 1063, 1071, 1072, 1094, 1095, 1099, 1101, 1102, 1107, 1120, 1121, 1124, 1137}; new hydraulics[1][0] = {1087}; new bass[1][0] = {1086}; new rbbars[2][0] = {1109, 1110}; new fbbars[2][0] = {1115, 1116}; new wheels[17][0] = {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098}; new lights[2][0] = {1013, 1024}; stock ReturnComponentSlot(componentid) { new i = 0; for(i = 0; i < 20; i ++) { if(spoiler[i][0] == componentid) { return 1; } } for(i = 0; i < 3; i ++) { if(nitro[i][0] == componentid) { return 2; } } for(i = 0; i < 23; i ++) { if(front_bumper[i][0] == componentid) { return 3; } } for(i = 0; i < 22; i ++) { if(rear_bumper[i][0] == componentid) { return 4; } } for(i = 0; i < 28; i ++) { if(exhaust[i][0] == componentid) { return 5; } } for(i = 0; i < 2; i ++) { if(bventr[i][0] == componentid) { return 6; } } for(i = 0; i < 2; i ++) { if(bventl[i][0] == componentid) { return 7; } } for(i = 0; i < 4; i ++) { if(bscoop[i][0] == componentid) { return 8; } } for(i = 0; i < 13; i ++) { if(rscoop[i][0] == componentid) { return 9; } } for(i = 0; i < 21; i ++) { if(left_sideskirt[i][0] == componentid) { return 10; } } for(i = 0; i < 21; i ++) { if(right_sideskirt[i][0] == componentid) { return 11; } } if(hydraulics[0][0] == componentid) { return 12; } if(bass[0][0] == componentid) { return 13; } for(i = 0; i < 2; i ++) { if(rbbars[i][0] == componentid) { return 14; } } for(i = 0; i < 2; i ++) { if(fbbars[i][0] == componentid) { return 15; } } for(i = 0; i < 17; i ++) { if(wheels[i][0] == componentid) { return 16; } } for(i = 0; i < 2; i ++) { if(lights[i][0] == componentid) { return 17; } } return 0; } enum SAZONE_MAIN { SAZONE_NAME[28], Float:SAZONE_AREA[6] }; static const gSAZones[][SAZONE_MAIN] = { {"The Big Ear", {-410.00,1403.30,-3.00,-137.90,1681.20,200.00}}, {"Aldea Malvada", {-1372.10,2498.50,0.00,-1277.50,2615.30,200.00}}, {"Angel Pine", {-2324.90,-2584.20,-6.10,-1964.20,-2212.10,200.00}}, {"Arco del Oeste", {-901.10,2221.80,0.00,-592.00,2571.90,200.00}}, {"Avispa Country Club", {-2646.40,-355.40,0.00,-2270.00,-222.50,200.00}}, {"Avispa Country Club", {-2831.80,-430.20,-6.10,-2646.40,-222.50,200.00}}, {"Avispa Country Club", {-2361.50,-417.10,0.00,-2270.00,-355.40,200.00}}, {"Avispa Country Club", {-2667.80,-302.10,-28.80,-2646.40,-262.30,71.10}}, {"Avispa Country Club", {-2470.00,-355.40,0.00,-2270.00,-318.40,46.10}}, {"Avispa Country Club", {-2550.00,-355.40,0.00,-2470.00,-318.40,39.70}}, {"Back o Beyond", {-1166.90,-2641.10,0.00,-321.70,-1856.00,200.00}}, {"Battery Point", {-2741.00,1268.40,-4.50,-2533.00,1490.40,200.00}}, {"Bayside", {-2741.00,2175.10,0.00,-2353.10,2722.70,200.00}}, {"Bayside Marina", {-2353.10,2275.70,0.00,-2153.10,2475.70,200.00}}, {"Beacon Hill", {-399.60,-1075.50,-1.40,-319.00,-977.50,198.50}}, {"Blackfield", {964.30,1203.20,-89.00,1197.30,1403.20,110.90}}, {"Blackfield", {964.30,1403.20,-89.00,1197.30,1726.20,110.90}}, {"Blackfield Chapel", {1375.60,596.30,-89.00,1558.00,823.20,110.90}}, {"Blackfield Chapel", {1325.60,596.30,-89.00,1375.60,795.00,110.90}}, {"Blackfield Intersection", {1197.30,1044.60,-89.00,1277.00,1163.30,110.90}}, {"Blackfield Intersection", {1166.50,795.00,-89.00,1375.60,1044.60,110.90}}, {"Blackfield Intersection", {1277.00,1044.60,-89.00,1315.30,1087.60,110.90}}, {"Blackfield Intersection", {1375.60,823.20,-89.00,1457.30,919.40,110.90}}, {"Blueberry", {104.50,-220.10,2.30,349.60,152.20,200.00}}, {"Blueberry", {19.60,-404.10,3.80,349.60,-220.10,200.00}}, {"Blueberry Acres", {-319.60,-220.10,0.00,104.50,293.30,200.00}}, {"Caligula's Palace", {2087.30,1543.20,-89.00,2437.30,1703.20,110.90}}, {"Caligula's Palace", {2137.40,1703.20,-89.00,2437.30,1783.20,110.90}}, {"Calton Heights", {-2274.10,744.10,-6.10,-1982.30,1358.90,200.00}}, {"Chinatown", {-2274.10,578.30,-7.60,-2078.60,744.10,200.00}}, {"City Hall", {-2867.80,277.40,-9.10,-2593.40,458.40,200.00}}, {"Come-A-Lot", {2087.30,943.20,-89.00,2623.10,1203.20,110.90}}, {"Commerce", {1323.90,-1842.20,-89.00,1701.90,-1722.20,110.90}}, {"Commerce", {1323.90,-1722.20,-89.00,1440.90,-1577.50,110.90}}, {"Commerce", {1370.80,-1577.50,-89.00,1463.90,-1384.90,110.90}}, {"Commerce", {1463.90,-1577.50,-89.00,1667.90,-1430.80,110.90}}, {"Commerce", {1583.50,-1722.20,-89.00,1758.90,-1577.50,110.90}}, {"Commerce", {1667.90,-1577.50,-89.00,1812.60,-1430.80,110.90}}, {"Conference Center", {1046.10,-1804.20,-89.00,1323.90,-1722.20,110.90}}, {"Conference Center", {1073.20,-1842.20,-89.00,1323.90,-1804.20,110.90}}, {"Cranberry Station", {-2007.80,56.30,0.00,-1922.00,224.70,100.00}}, {"Creek", {2749.90,1937.20,-89.00,2921.60,2669.70,110.90}}, {"Dillimore", {580.70,-674.80,-9.50,861.00,-404.70,200.00}}, {"Doherty", {-2270.00,-324.10,-0.00,-1794.90,-222.50,200.00}}, {"Doherty", {-2173.00,-222.50,-0.00,-1794.90,265.20,200.00}}, {"Downtown", {-1982.30,744.10,-6.10,-1871.70,1274.20,200.00}}, {"Downtown", {-1871.70,1176.40,-4.50,-1620.30,1274.20,200.00}}, {"Downtown", {-1700.00,744.20,-6.10,-1580.00,1176.50,200.00}}, {"Downtown", {-1580.00,744.20,-6.10,-1499.80,1025.90,200.00}}, {"Downtown", {-2078.60,578.30,-7.60,-1499.80,744.20,200.00}}, {"Downtown", {-1993.20,265.20,-9.10,-1794.90,578.30,200.00}}, {"Downtown Los Santos", {1463.90,-1430.80,-89.00,1724.70,-1290.80,110.90}}, {"Downtown Los Santos", {1724.70,-1430.80,-89.00,1812.60,-1250.90,110.90}}, {"Downtown Los Santos", {1463.90,-1290.80,-89.00,1724.70,-1150.80,110.90}}, {"Downtown Los Santos", {1370.80,-1384.90,-89.00,1463.90,-1170.80,110.90}}, {"Downtown Los Santos", {1724.70,-1250.90,-89.00,1812.60,-1150.80,110.90}}, {"Downtown Los Santos", {1370.80,-1170.80,-89.00,1463.90,-1130.80,110.90}}, {"Downtown Los Santos", {1378.30,-1130.80,-89.00,1463.90,-1026.30,110.90}}, {"Downtown Los Santos", {1391.00,-1026.30,-89.00,1463.90,-926.90,110.90}}, {"Downtown Los Santos", {1507.50,-1385.20,110.90,1582.50,-1325.30,335.90}}, {"East Beach", {2632.80,-1852.80,-89.00,2959.30,-1668.10,110.90}}, {"East Beach", {2632.80,-1668.10,-89.00,2747.70,-1393.40,110.90}}, {"East Beach", {2747.70,-1668.10,-89.00,2959.30,-1498.60,110.90}}, {"East Beach", {2747.70,-1498.60,-89.00,2959.30,-1120.00,110.90}}, {"East Los Santos", {2421.00,-1628.50,-89.00,2632.80,-1454.30,110.90}}, {"East Los Santos", {2222.50,-1628.50,-89.00,2421.00,-1494.00,110.90}}, {"East Los Santos", {2266.20,-1494.00,-89.00,2381.60,-1372.00,110.90}}, {"East Los Santos", {2381.60,-1494.00,-89.00,2421.00,-1454.30,110.90}}, {"East Los Santos", {2281.40,-1372.00,-89.00,2381.60,-1135.00,110.90}}, {"East Los Santos", {2381.60,-1454.30,-89.00,2462.10,-1135.00,110.90}}, {"East Los Santos", {2462.10,-1454.30,-89.00,2581.70,-1135.00,110.90}}, {"Easter Basin", {-1794.90,249.90,-9.10,-1242.90,578.30,200.00}}, {"Easter Basin", {-1794.90,-50.00,-0.00,-1499.80,249.90,200.00}}, {"Easter Bay Airport", {-1499.80,-50.00,-0.00,-1242.90,249.90,200.00}}, {"Easter Bay Airport", {-1794.90,-730.10,-3.00,-1213.90,-50.00,200.00}}, {"Easter Bay Airport", {-1213.90,-730.10,0.00,-1132.80,-50.00,200.00}}, {"Easter Bay Airport", {-1242.90,-50.00,0.00,-1213.90,578.30,200.00}}, {"Easter Bay Airport", {-1213.90,-50.00,-4.50,-947.90,578.30,200.00}}, {"Easter Bay Airport", {-1315.40,-405.30,15.40,-1264.40,-209.50,25.40}}, {"Easter Bay Airport", {-1354.30,-287.30,15.40,-1315.40,-209.50,25.40}}, {"Easter Bay Airport", {-1490.30,-209.50,15.40,-1264.40,-148.30,25.40}}, {"Easter Bay Chemicals", {-1132.80,-768.00,0.00,-956.40,-578.10,200.00}}, {"Easter Bay Chemicals", {-1132.80,-787.30,0.00,-956.40,-768.00,200.00}}, {"El Castillo del Diablo", {-464.50,2217.60,0.00,-208.50,2580.30,200.00}}, {"El Castillo del Diablo", {-208.50,2123.00,-7.60,114.00,2337.10,200.00}}, {"El Castillo del Diablo", {-208.50,2337.10,0.00,8.40,2487.10,200.00}}, {"El Corona", {1812.60,-2179.20,-89.00,1970.60,-1852.80,110.90}}, {"El Corona", {1692.60,-2179.20,-89.00,1812.60,-1842.20,110.90}}, {"El Quebrados", {-1645.20,2498.50,0.00,-1372.10,2777.80,200.00}}, {"Esplanade East", {-1620.30,1176.50,-4.50,-1580.00,1274.20,200.00}}, {"Esplanade East", {-1580.00,1025.90,-6.10,-1499.80,1274.20,200.00}}, {"Esplanade East", {-1499.80,578.30,-79.60,-1339.80,1274.20,20.30}}, {"Esplanade North", {-2533.00,1358.90,-4.50,-1996.60,1501.20,200.00}}, {"Esplanade North", {-1996.60,1358.90,-4.50,-1524.20,1592.50,200.00}}, {"Esplanade North", {-1982.30,1274.20,-4.50,-1524.20,1358.90,200.00}}, {"Fallen Tree", {-792.20,-698.50,-5.30,-452.40,-380.00,200.00}}, {"Fallow Bridge", {434.30,366.50,0.00,603.00,555.60,200.00}}, {"Fern Ridge", {508.10,-139.20,0.00,1306.60,119.50,200.00}}, {"Financial", {-1871.70,744.10,-6.10,-1701.30,1176.40,300.00}}, {"Fisher's Lagoon", {1916.90,-233.30,-100.00,2131.70,13.80,200.00}}, {"Flint Intersection", {-187.70,-1596.70,-89.00,17.00,-1276.60,110.90}}, {"Flint Range", {-594.10,-1648.50,0.00,-187.70,-1276.60,200.00}}, {"Fort Carson", {-376.20,826.30,-3.00,123.70,1220.40,200.00}}, {"Foster Valley", {-2270.00,-430.20,-0.00,-2178.60,-324.10,200.00}}, {"Foster Valley", {-2178.60,-599.80,-0.00,-1794.90,-324.10,200.00}}, {"Foster Valley", {-2178.60,-1115.50,0.00,-1794.90,-599.80,200.00}}, {"Foster Valley", {-2178.60,-1250.90,0.00,-1794.90,-1115.50,200.00}}, {"Frederick Bridge", {2759.20,296.50,0.00,2774.20,594.70,200.00}}, {"Gant Bridge", {-2741.40,1659.60,-6.10,-2616.40,2175.10,200.00}}, {"Gant Bridge", {-2741.00,1490.40,-6.10,-2616.40,1659.60,200.00}}, {"Ganton", {2222.50,-1852.80,-89.00,2632.80,-1722.30,110.90}}, {"Ganton", {2222.50,-1722.30,-89.00,2632.80,-1628.50,110.90}}, {"Garcia", {-2411.20,-222.50,-0.00,-2173.00,265.20,200.00}}, {"Garcia", {-2395.10,-222.50,-5.30,-2354.00,-204.70,200.00}}, {"Garver Bridge", {-1339.80,828.10,-89.00,-1213.90,1057.00,110.90}}, {"Garver Bridge", {-1213.90,950.00,-89.00,-1087.90,1178.90,110.90}}, {"Garver Bridge", {-1499.80,696.40,-179.60,-1339.80,925.30,20.30}}, {"Glen Park", {1812.60,-1449.60,-89.00,1996.90,-1350.70,110.90}}, {"Glen Park", {1812.60,-1100.80,-89.00,1994.30,-973.30,110.90}}, {"Glen Park", {1812.60,-1350.70,-89.00,2056.80,-1100.80,110.90}}, {"Green Palms", {176.50,1305.40,-3.00,338.60,1520.70,200.00}}, {"Greenglass College", {964.30,1044.60,-89.00,1197.30,1203.20,110.90}}, {"Greenglass College", {964.30,930.80,-89.00,1166.50,1044.60,110.90}}, {"Hampton Barns", {603.00,264.30,0.00,761.90,366.50,200.00}}, {"Hankypanky Point", {2576.90,62.10,0.00,2759.20,385.50,200.00}}, {"Harry Gold Parkway", {1777.30,863.20,-89.00,1817.30,2342.80,110.90}}, {"Hashbury", {-2593.40,-222.50,-0.00,-2411.20,54.70,200.00}}, {"Hilltop Farm", {967.30,-450.30,-3.00,1176.70,-217.90,200.00}}, {"Hunter Quarry", {337.20,710.80,-115.20,860.50,1031.70,203.70}}, {"Idlewood", {1812.60,-1852.80,-89.00,1971.60,-1742.30,110.90}}, {"Idlewood", {1812.60,-1742.30,-89.00,1951.60,-1602.30,110.90}}, {"Idlewood", {1951.60,-1742.30,-89.00,2124.60,-1602.30,110.90}}, {"Idlewood", {1812.60,-1602.30,-89.00,2124.60,-1449.60,110.90}}, {"Idlewood", {2124.60,-1742.30,-89.00,2222.50,-1494.00,110.90}}, {"Idlewood", {1971.60,-1852.80,-89.00,2222.50,-1742.30,110.90}}, {"Jefferson", {1996.90,-1449.60,-89.00,2056.80,-1350.70,110.90}}, {"Jefferson", {2124.60,-1494.00,-89.00,2266.20,-1449.60,110.90}}, {"Jefferson", {2056.80,-1372.00,-89.00,2281.40,-1210.70,110.90}}, {"Jefferson", {2056.80,-1210.70,-89.00,2185.30,-1126.30,110.90}}, {"Jefferson", {2185.30,-1210.70,-89.00,2281.40,-1154.50,110.90}}, {"Jefferson", {2056.80,-1449.60,-89.00,2266.20,-1372.00,110.90}}, {"Julius Thruway East", {2623.10,943.20,-89.00,2749.90,1055.90,110.90}}, {"Julius Thruway East", {2685.10,1055.90,-89.00,2749.90,2626.50,110.90}}, {"Julius Thruway East", {2536.40,2442.50,-89.00,2685.10,2542.50,110.90}}, {"Julius Thruway East", {2625.10,2202.70,-89.00,2685.10,2442.50,110.90}}, {"Julius Thruway North", {2498.20,2542.50,-89.00,2685.10,2626.50,110.90}}, {"Julius Thruway North", {2237.40,2542.50,-89.00,2498.20,2663.10,110.90}}, {"Julius Thruway North", {2121.40,2508.20,-89.00,2237.40,2663.10,110.90}}, {"Julius Thruway North", {1938.80,2508.20,-89.00,2121.40,2624.20,110.90}}, {"Julius Thruway North", {1534.50,2433.20,-89.00,1848.40,2583.20,110.90}}, {"Julius Thruway North", {1848.40,2478.40,-89.00,1938.80,2553.40,110.90}}, {"Julius Thruway North", {1704.50,2342.80,-89.00,1848.40,2433.20,110.90}}, {"Julius Thruway North", {1377.30,2433.20,-89.00,1534.50,2507.20,110.90}}, {"Julius Thruway South", {1457.30,823.20,-89.00,2377.30,863.20,110.90}}, {"Julius Thruway South", {2377.30,788.80,-89.00,2537.30,897.90,110.90}}, {"Julius Thruway West", {1197.30,1163.30,-89.00,1236.60,2243.20,110.90}}, {"Julius Thruway West", {1236.60,2142.80,-89.00,1297.40,2243.20,110.90}}, {"Juniper Hill", {-2533.00,578.30,-7.60,-2274.10,968.30,200.00}}, {"Juniper Hollow", {-2533.00,968.30,-6.10,-2274.10,1358.90,200.00}}, {"K.A.C.C. Military Fuels", {2498.20,2626.50,-89.00,2749.90,2861.50,110.90}}, {"Kincaid Bridge", {-1339.80,599.20,-89.00,-1213.90,828.10,110.90}}, {"Kincaid Bridge", {-1213.90,721.10,-89.00,-1087.90,950.00,110.90}}, {"Kincaid Bridge", {-1087.90,855.30,-89.00,-961.90,986.20,110.90}}, {"King's", {-2329.30,458.40,-7.60,-1993.20,578.30,200.00}}, {"King's", {-2411.20,265.20,-9.10,-1993.20,373.50,200.00}}, {"King's", {-2253.50,373.50,-9.10,-1993.20,458.40,200.00}}, {"LVA Freight Depot", {1457.30,863.20,-89.00,1777.40,1143.20,110.90}}, {"LVA Freight Depot", {1375.60,919.40,-89.00,1457.30,1203.20,110.90}}, {"LVA Freight Depot", {1277.00,1087.60,-89.00,1375.60,1203.20,110.90}}, {"LVA Freight Depot", {1315.30,1044.60,-89.00,1375.60,1087.60,110.90}}, {"LVA Freight Depot", {1236.60,1163.40,-89.00,1277.00,1203.20,110.90}}, {"Las Barrancas", {-926.10,1398.70,-3.00,-719.20,1634.60,200.00}}, {"Las Brujas", {-365.10,2123.00,-3.00,-208.50,2217.60,200.00}}, {"Las Colinas", {1994.30,-1100.80,-89.00,2056.80,-920.80,110.90}}, {"Las Colinas", {2056.80,-1126.30,-89.00,2126.80,-920.80,110.90}}, {"Las Colinas", {2185.30,-1154.50,-89.00,2281.40,-934.40,110.90}}, {"Las Colinas", {2126.80,-1126.30,-89.00,2185.30,-934.40,110.90}}, {"Las Colinas", {2747.70,-1120.00,-89.00,2959.30,-945.00,110.90}}, {"Las Colinas", {2632.70,-1135.00,-89.00,2747.70,-945.00,110.90}}, {"Las Colinas", {2281.40,-1135.00,-89.00,2632.70,-945.00,110.90}}, {"Las Payasadas", {-354.30,2580.30,2.00,-133.60,2816.80,200.00}}, {"Las Venturas Airport", {1236.60,1203.20,-89.00,1457.30,1883.10,110.90}}, {"Las Venturas Airport", {1457.30,1203.20,-89.00,1777.30,1883.10,110.90}}, {"Las Venturas Airport", {1457.30,1143.20,-89.00,1777.40,1203.20,110.90}}, {"Las Venturas Airport", {1515.80,1586.40,-12.50,1729.90,1714.50,87.50}}, {"Last Dime Motel", {1823.00,596.30,-89.00,1997.20,823.20,110.90}}, {"Leafy Hollow", {-1166.90,-1856.00,0.00,-815.60,-1602.00,200.00}}, {"Liberty City", {-1000.00,400.00,1300.00,-700.00,600.00,1400.00}}, {"Lil' Probe Inn", {-90.20,1286.80,-3.00,153.80,1554.10,200.00}}, {"Linden Side", {2749.90,943.20,-89.00,2923.30,1198.90,110.90}}, {"Linden Station", {2749.90,1198.90,-89.00,2923.30,1548.90,110.90}}, {"Linden Station", {2811.20,1229.50,-39.50,2861.20,1407.50,60.40}}, {"Little Mexico", {1701.90,-1842.20,-89.00,1812.60,-1722.20,110.90}}, {"Little Mexico", {1758.90,-1722.20,-89.00,1812.60,-1577.50,110.90}}, {"Los Flores", {2581.70,-1454.30,-89.00,2632.80,-1393.40,110.90}}, {"Los Flores", {2581.70,-1393.40,-89.00,2747.70,-1135.00,110.90}}, {"Los Santos International", {1249.60,-2394.30,-89.00,1852.00,-2179.20,110.90}}, {"Los Santos International", {1852.00,-2394.30,-89.00,2089.00,-2179.20,110.90}}, {"Los Santos International", {1382.70,-2730.80,-89.00,2201.80,-2394.30,110.90}}, {"Los Santos International", {1974.60,-2394.30,-39.00,2089.00,-2256.50,60.90}}, {"Los Santos International", {1400.90,-2669.20,-39.00,2189.80,-2597.20,60.90}}, {"Los Santos International", {2051.60,-2597.20,-39.00,2152.40,-2394.30,60.90}}, {"Marina", {647.70,-1804.20,-89.00,851.40,-1577.50,110.90}}, {"Marina", {647.70,-1577.50,-89.00,807.90,-1416.20,110.90}}, {"Marina", {807.90,-1577.50,-89.00,926.90,-1416.20,110.90}}, {"Market", {787.40,-1416.20,-89.00,1072.60,-1310.20,110.90}}, {"Market", {952.60,-1310.20,-89.00,1072.60,-1130.80,110.90}}, {"Market", {1072.60,-1416.20,-89.00,1370.80,-1130.80,110.90}}, {"Market", {926.90,-1577.50,-89.00,1370.80,-1416.20,110.90}}, {"Market Station", {787.40,-1410.90,-34.10,866.00,-1310.20,65.80}}, {"Martin Bridge", {-222.10,293.30,0.00,-122.10,476.40,200.00}}, {"Missionary Hill", {-2994.40,-811.20,0.00,-2178.60,-430.20,200.00}}, {"Montgomery", {1119.50,119.50,-3.00,1451.40,493.30,200.00}}, {"Montgomery", {1451.40,347.40,-6.10,1582.40,420.80,200.00}}, {"Montgomery Intersection", {1546.60,208.10,0.00,1745.80,347.40,200.00}}, {"Montgomery Intersection", {1582.40,347.40,0.00,1664.60,401.70,200.00}}, {"Mulholland", {1414.00,-768.00,-89.00,1667.60,-452.40,110.90}}, {"Mulholland", {1281.10,-452.40,-89.00,1641.10,-290.90,110.90}}, {"Mulholland", {1269.10,-768.00,-89.00,1414.00,-452.40,110.90}}, {"Mulholland", {1357.00,-926.90,-89.00,1463.90,-768.00,110.90}}, {"Mulholland", {1318.10,-910.10,-89.00,1357.00,-768.00,110.90}}, {"Mulholland", {1169.10,-910.10,-89.00,1318.10,-768.00,110.90}}, {"Mulholland", {768.60,-954.60,-89.00,952.60,-860.60,110.90}}, {"Mulholland", {687.80,-860.60,-89.00,911.80,-768.00,110.90}}, {"Mulholland", {737.50,-768.00,-89.00,1142.20,-674.80,110.90}}, {"Mulholland", {1096.40,-910.10,-89.00,1169.10,-768.00,110.90}}, {"Mulholland", {952.60,-937.10,-89.00,1096.40,-860.60,110.90}}, {"Mulholland", {911.80,-860.60,-89.00,1096.40,-768.00,110.90}}, {"Mulholland", {861.00,-674.80,-89.00,1156.50,-600.80,110.90}}, {"Mulholland Intersection", {1463.90,-1150.80,-89.00,1812.60,-768.00,110.90}}, {"North Rock", {2285.30,-768.00,0.00,2770.50,-269.70,200.00}}, {"Ocean Docks", {2373.70,-2697.00,-89.00,2809.20,-2330.40,110.90}}, {"Ocean Docks", {2201.80,-2418.30,-89.00,2324.00,-2095.00,110.90}}, {"Ocean Docks", {2324.00,-2302.30,-89.00,2703.50,-2145.10,110.90}}, {"Ocean Docks", {2089.00,-2394.30,-89.00,2201.80,-2235.80,110.90}}, {"Ocean Docks", {2201.80,-2730.80,-89.00,2324.00,-2418.30,110.90}}, {"Ocean Docks", {2703.50,-2302.30,-89.00,2959.30,-2126.90,110.90}}, {"Ocean Docks", {2324.00,-2145.10,-89.00,2703.50,-2059.20,110.90}}, {"Ocean Flats", {-2994.40,277.40,-9.10,-2867.80,458.40,200.00}}, {"Ocean Flats", {-2994.40,-222.50,-0.00,-2593.40,277.40,200.00}}, {"Ocean Flats", {-2994.40,-430.20,-0.00,-2831.80,-222.50,200.00}}, {"Octane Springs", {338.60,1228.50,0.00,664.30,1655.00,200.00}}, {"Old Venturas Strip", {2162.30,2012.10,-89.00,2685.10,2202.70,110.90}}, {"Palisades", {-2994.40,458.40,-6.10,-2741.00,1339.60,200.00}}, {"Palomino Creek", {2160.20,-149.00,0.00,2576.90,228.30,200.00}}, {"Paradiso", {-2741.00,793.40,-6.10,-2533.00,1268.40,200.00}}, {"Pershing Square", {1440.90,-1722.20,-89.00,1583.50,-1577.50,110.90}}, {"Pilgrim", {2437.30,1383.20,-89.00,2624.40,1783.20,110.90}}, {"Pilgrim", {2624.40,1383.20,-89.00,2685.10,1783.20,110.90}}, {"Pilson Intersection", {1098.30,2243.20,-89.00,1377.30,2507.20,110.90}}, {"Pirates in Men's Pants", {1817.30,1469.20,-89.00,2027.40,1703.20,110.90}}, {"Playa del Seville", {2703.50,-2126.90,-89.00,2959.30,-1852.80,110.90}}, {"Prickle Pine", {1534.50,2583.20,-89.00,1848.40,2863.20,110.90}}, {"Prickle Pine", {1117.40,2507.20,-89.00,1534.50,2723.20,110.90}}, {"Prickle Pine", {1848.40,2553.40,-89.00,1938.80,2863.20,110.90}}, {"Prickle Pine", {1938.80,2624.20,-89.00,2121.40,2861.50,110.90}}, {"Queens", {-2533.00,458.40,0.00,-2329.30,578.30,200.00}}, {"Queens", {-2593.40,54.70,0.00,-2411.20,458.40,200.00}}, {"Queens", {-2411.20,373.50,0.00,-2253.50,458.40,200.00}}, {"Randolph Industrial Estate", {1558.00,596.30,-89.00,1823.00,823.20,110.90}}, {"Redsands East", {1817.30,2011.80,-89.00,2106.70,2202.70,110.90}}, {"Redsands East", {1817.30,2202.70,-89.00,2011.90,2342.80,110.90}}, {"Redsands East", {1848.40,2342.80,-89.00,2011.90,2478.40,110.90}}, {"Redsands West", {1236.60,1883.10,-89.00,1777.30,2142.80,110.90}}, {"Redsands West", {1297.40,2142.80,-89.00,1777.30,2243.20,110.90}}, {"Redsands West", {1377.30,2243.20,-89.00,1704.50,2433.20,110.90}}, {"Redsands West", {1704.50,2243.20,-89.00,1777.30,2342.80,110.90}}, {"Regular Tom", {-405.70,1712.80,-3.00,-276.70,1892.70,200.00}}, {"Richman", {647.50,-1118.20,-89.00,787.40,-954.60,110.90}}, {"Richman", {647.50,-954.60,-89.00,768.60,-860.60,110.90}}, {"Richman", {225.10,-1369.60,-89.00,334.50,-1292.00,110.90}}, {"Richman", {225.10,-1292.00,-89.00,466.20,-1235.00,110.90}}, {"Richman", {72.60,-1404.90,-89.00,225.10,-1235.00,110.90}}, {"Richman", {72.60,-1235.00,-89.00,321.30,-1008.10,110.90}}, {"Richman", {321.30,-1235.00,-89.00,647.50,-1044.00,110.90}}, {"Richman", {321.30,-1044.00,-89.00,647.50,-860.60,110.90}}, {"Richman", {321.30,-860.60,-89.00,687.80,-768.00,110.90}}, {"Richman", {321.30,-768.00,-89.00,700.70,-674.80,110.90}}, {"Robada Intersection", {-1119.00,1178.90,-89.00,-862.00,1351.40,110.90}}, {"Roca Escalante", {2237.40,2202.70,-89.00,2536.40,2542.50,110.90}}, {"Roca Escalante", {2536.40,2202.70,-89.00,2625.10,2442.50,110.90}}, {"Rockshore East", {2537.30,676.50,-89.00,2902.30,943.20,110.90}}, {"Rockshore West", {1997.20,596.30,-89.00,2377.30,823.20,110.90}}, {"Rockshore West", {2377.30,596.30,-89.00,2537.30,788.80,110.90}}, {"Rodeo", {72.60,-1684.60,-89.00,225.10,-1544.10,110.90}}, {"Rodeo", {72.60,-1544.10,-89.00,225.10,-1404.90,110.90}}, {"Rodeo", {225.10,-1684.60,-89.00,312.80,-1501.90,110.90}}, {"Rodeo", {225.10,-1501.90,-89.00,334.50,-1369.60,110.90}}, {"Rodeo", {334.50,-1501.90,-89.00,422.60,-1406.00,110.90}}, {"Rodeo", {312.80,-1684.60,-89.00,422.60,-1501.90,110.90}}, {"Rodeo", {422.60,-1684.60,-89.00,558.00,-1570.20,110.90}}, {"Rodeo", {558.00,-1684.60,-89.00,647.50,-1384.90,110.90}}, {"Rodeo", {466.20,-1570.20,-89.00,558.00,-1385.00,110.90}}, {"Rodeo", {422.60,-1570.20,-89.00,466.20,-1406.00,110.90}}, {"Rodeo", {466.20,-1385.00,-89.00,647.50,-1235.00,110.90}}, {"Rodeo", {334.50,-1406.00,-89.00,466.20,-1292.00,110.90}}, {"Royal Casino", {2087.30,1383.20,-89.00,2437.30,1543.20,110.90}}, {"San Andreas Sound", {2450.30,385.50,-100.00,2759.20,562.30,200.00}}, {"Santa Flora", {-2741.00,458.40,-7.60,-2533.00,793.40,200.00}}, {"Santa Maria Beach", {342.60,-2173.20,-89.00,647.70,-1684.60,110.90}}, {"Santa Maria Beach", {72.60,-2173.20,-89.00,342.60,-1684.60,110.90}}, {"Shady Cabin", {-1632.80,-2263.40,-3.00,-1601.30,-2231.70,200.00}}, {"Shady Creeks", {-1820.60,-2643.60,-8.00,-1226.70,-1771.60,200.00}}, {"Shady Creeks", {-2030.10,-2174.80,-6.10,-1820.60,-1771.60,200.00}}, {"Sobell Rail Yards", {2749.90,1548.90,-89.00,2923.30,1937.20,110.90}}, {"Spinybed", {2121.40,2663.10,-89.00,2498.20,2861.50,110.90}}, {"Starfish Casino", {2437.30,1783.20,-89.00,2685.10,2012.10,110.90}}, {"Starfish Casino", {2437.30,1858.10,-39.00,2495.00,1970.80,60.90}}, {"Starfish Casino", {2162.30,1883.20,-89.00,2437.30,2012.10,110.90}}, {"Temple", {1252.30,-1130.80,-89.00,1378.30,-1026.30,110.90}}, {"Temple", {1252.30,-1026.30,-89.00,1391.00,-926.90,110.90}}, {"Temple", {1252.30,-926.90,-89.00,1357.00,-910.10,110.90}}, {"Temple", {952.60,-1130.80,-89.00,1096.40,-937.10,110.90}}, {"Temple", {1096.40,-1130.80,-89.00,1252.30,-1026.30,110.90}}, {"Temple", {1096.40,-1026.30,-89.00,1252.30,-910.10,110.90}}, {"The Camel's Toe", {2087.30,1203.20,-89.00,2640.40,1383.20,110.90}}, {"The Clown's Pocket", {2162.30,1783.20,-89.00,2437.30,1883.20,110.90}}, {"The Emerald Isle", {2011.90,2202.70,-89.00,2237.40,2508.20,110.90}}, {"The Farm", {-1209.60,-1317.10,114.90,-908.10,-787.30,251.90}}, {"The Four Dragons Casino", {1817.30,863.20,-89.00,2027.30,1083.20,110.90}}, {"The High Roller", {1817.30,1283.20,-89.00,2027.30,1469.20,110.90}}, {"The Mako Span", {1664.60,401.70,0.00,1785.10,567.20,200.00}}, {"The Panopticon", {-947.90,-304.30,-1.10,-319.60,327.00,200.00}}, {"The Pink Swan", {1817.30,1083.20,-89.00,2027.30,1283.20,110.90}}, {"The Sherman Dam", {-968.70,1929.40,-3.00,-481.10,2155.20,200.00}}, {"The Strip", {2027.40,863.20,-89.00,2087.30,1703.20,110.90}}, {"The Strip", {2106.70,1863.20,-89.00,2162.30,2202.70,110.90}}, {"The Strip", {2027.40,1783.20,-89.00,2162.30,1863.20,110.90}}, {"The Strip", {2027.40,1703.20,-89.00,2137.40,1783.20,110.90}}, {"The Visage", {1817.30,1863.20,-89.00,2106.70,2011.80,110.90}}, {"The Visage", {1817.30,1703.20,-89.00,2027.40,1863.20,110.90}}, {"Unity Station", {1692.60,-1971.80,-20.40,1812.60,-1932.80,79.50}}, {"Valle Ocultado", {-936.60,2611.40,2.00,-715.90,2847.90,200.00}}, {"Verdant Bluffs", {930.20,-2488.40,-89.00,1249.60,-2006.70,110.90}}, {"Verdant Bluffs", {1073.20,-2006.70,-89.00,1249.60,-1842.20,110.90}}, {"Verdant Bluffs", {1249.60,-2179.20,-89.00,1692.60,-1842.20,110.90}}, {"Verdant Meadows", {37.00,2337.10,-3.00,435.90,2677.90,200.00}}, {"Verona Beach", {647.70,-2173.20,-89.00,930.20,-1804.20,110.90}}, {"Verona Beach", {930.20,-2006.70,-89.00,1073.20,-1804.20,110.90}}, {"Verona Beach", {851.40,-1804.20,-89.00,1046.10,-1577.50,110.90}}, {"Verona Beach", {1161.50,-1722.20,-89.00,1323.90,-1577.50,110.90}}, {"Verona Beach", {1046.10,-1722.20,-89.00,1161.50,-1577.50,110.90}}, {"Vinewood", {787.40,-1310.20,-89.00,952.60,-1130.80,110.90}}, {"Vinewood", {787.40,-1130.80,-89.00,952.60,-954.60,110.90}}, {"Vinewood", {647.50,-1227.20,-89.00,787.40,-1118.20,110.90}}, {"Vinewood", {647.70,-1416.20,-89.00,787.40,-1227.20,110.90}}, {"Whitewood Estates", {883.30,1726.20,-89.00,1098.30,2507.20,110.90}}, {"Whitewood Estates", {1098.30,1726.20,-89.00,1197.30,2243.20,110.90}}, {"Willowfield", {1970.60,-2179.20,-89.00,2089.00,-1852.80,110.90}}, {"Willowfield", {2089.00,-2235.80,-89.00,2201.80,-1989.90,110.90}}, {"Willowfield", {2089.00,-1989.90,-89.00,2324.00,-1852.80,110.90}}, {"Willowfield", {2201.80,-2095.00,-89.00,2324.00,-1989.90,110.90}}, {"Willowfield", {2541.70,-1941.40,-89.00,2703.50,-1852.80,110.90}}, {"Willowfield", {2324.00,-2059.20,-89.00,2541.70,-1852.80,110.90}}, {"Willowfield", {2541.70,-2059.20,-89.00,2703.50,-1941.40,110.90}}, {"Yellow Bell Station", {1377.40,2600.40,-21.90,1492.40,2687.30,78.00}}, {"Los Santos", {44.60,-2892.90,-242.90,2997.00,-768.00,900.00}}, {"Las Venturas", {869.40,596.30,-242.90,2997.00,2993.80,900.00}}, {"Bone County", {-480.50,596.30,-242.90,869.40,2993.80,900.00}}, {"Tierra Robada", {-2997.40,1659.60,-242.90,-480.50,2993.80,900.00}}, {"Tierra Robada", {-1213.90,596.30,-242.90,-480.50,1659.60,900.00}}, {"San Fierro", {-2997.40,-1115.50,-242.90,-1213.90,1659.60,900.00}}, {"Red County", {-1213.90,-768.00,-242.90,2997.00,596.30,900.00}}, {"Flint County", {-1213.90,-2892.90,-242.90,44.60,-768.00,900.00}}, {"Whetstone", {-2997.40,-2892.90,-242.90,-1213.90,-1115.50,900.00}} }; stock GetVehicle2DZone(vehicleid, zone[], len) { new Float:x, Float:y, Float:z; GetVehiclePos(vehicleid, x, y, z); for(new i = 0; i != sizeof(gSAZones); i++ ) { if(x >= gSAZones[i][SAZONE_AREA][0] && x <= gSAZones[i][SAZONE_AREA][3] && y >= gSAZones[i][SAZONE_AREA][1] && y <= gSAZones[i][SAZONE_AREA][4]) { return format(zone, len, gSAZones[i][SAZONE_NAME], 0); } } return 0; } stock split(const strsrc[], strdest[][], delim) { new i; new li; new aNum; new len; while(i <= strlen(strsrc)) { if(strsrc[i] == delim || i == strlen(strsrc)) { len = strmid(strdest[aNum], strsrc, li, i, 128); strdest[aNum][len] = 0; li = (i + 1); aNum++; } i++; } return 1; } stock strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; } new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; } stock GetVehicleName(vehicleid) { new vehicle_name[32] = "None"; if((vehicleid == INVALID_VEHICLE_ID) || (vehicleid < 1 || (vehicleid > MAX_VEHICLES - 1))) return vehicle_name; switch (GetVehicleModel(vehicleid)) { case 400: vehicle_name = "Landstalker"; case 401: vehicle_name = "Bravura"; case 402: vehicle_name = "Buffalo"; case 403: vehicle_name = "Linerunner"; case 404: vehicle_name = "Perennial"; case 405: vehicle_name = "Sentinel"; case 406: vehicle_name = "Dumper"; case 407: vehicle_name = "Firetruck"; case 408: vehicle_name = "Trashmaster"; case 409: vehicle_name = "Stretch"; case 410: vehicle_name = "Manana"; case 411: vehicle_name = "Infernus"; case 412: vehicle_name = "Voodoo"; case 413: vehicle_name = "Pony"; case 414: vehicle_name = "Mule"; case 415: vehicle_name = "Cheetah"; case 416: vehicle_name = "Ambulance"; case 417: vehicle_name = "Leviathan"; case 418: vehicle_name = "Moonbeam"; case 419: vehicle_name = "Esperanto"; case 420: vehicle_name = "Taxi"; case 421: vehicle_name = "Washington"; case 422: vehicle_name = "Bobcat"; case 423: vehicle_name = "Mr Whoopee"; case 424: vehicle_name = "BF Injection"; case 425: vehicle_name = "Hunter"; case 426: vehicle_name = "Premier"; case 427: vehicle_name = "Enforcer"; case 428: vehicle_name = "Securicar"; case 429: vehicle_name = "Banshee"; case 430: vehicle_name = "Predator"; case 431: vehicle_name = "Bus"; case 432: vehicle_name = "Rhino"; case 433: vehicle_name = "Barracks"; case 434: vehicle_name = "Hotknife"; case 435: vehicle_name = "Article Trailer"; case 436: vehicle_name = "Previon"; case 437: vehicle_name = "Coach"; case 438: vehicle_name = "Cabbie"; case 439: vehicle_name = "Stallion"; case 440: vehicle_name = "Rumpo"; case 441: vehicle_name = "RC Bandit"; case 442: vehicle_name = "Romero"; case 443: vehicle_name = "Packer"; case 444: vehicle_name = "Monster"; case 445: vehicle_name = "Admiral"; case 446: vehicle_name = "Squalo"; case 447: vehicle_name = "Seasparrow"; case 448: vehicle_name = "Pizzaboy"; case 449: vehicle_name = "Tram"; case 450: vehicle_name = "Article Trailer 2"; case 451: vehicle_name = "Turismo"; case 452: vehicle_name = "Speeder"; case 453: vehicle_name = "Reefer"; case 454: vehicle_name = "Tropic"; case 455: vehicle_name = "Flatbed"; case 456: vehicle_name = "Yankee"; case 457: vehicle_name = "Caddy"; case 458: vehicle_name = "Solair"; case 459: vehicle_name = "Berkley's RC Van"; case 460: vehicle_name = "Skimmer"; case 461: vehicle_name = "PCJ-600"; case 462: vehicle_name = "Faggio"; case 463: vehicle_name = "Freeway"; case 464: vehicle_name = "RC Baron"; case 465: vehicle_name = "RC Raider"; case 466: vehicle_name = "Glendale"; case 467: vehicle_name = "Oceanic"; case 468: vehicle_name = "Sanchez"; case 469: vehicle_name = "Sparrow"; case 470: vehicle_name = "Patriot"; case 471: vehicle_name = "Quad"; case 472: vehicle_name = "Coastguard"; case 473: vehicle_name = "Dinghy"; case 474: vehicle_name = "Hermes"; case 475: vehicle_name = "Sabre"; case 476: vehicle_name = "Rustler"; case 477: vehicle_name = "ZR-350"; case 478: vehicle_name = "Walton"; case 479: vehicle_name = "Regina"; case 480: vehicle_name = "Comet"; case 481: vehicle_name = "BMX"; case 482: vehicle_name = "Burrito"; case 483: vehicle_name = "Camper"; case 484: vehicle_name = "Marquis"; case 485: vehicle_name = "Baggage"; case 486: vehicle_name = "Dozer"; case 487: vehicle_name = "Maverick"; case 488: vehicle_name = "SAN News Maverick"; case 489, 505: vehicle_name = "Rancher"; case 490: vehicle_name = "FBI Rancher"; case 491: vehicle_name = "Virgo"; case 492: vehicle_name = "Greenwood"; case 493: vehicle_name = "Jetmax"; case 494: vehicle_name = "Hotring Racer A"; case 495: vehicle_name = "Sandking"; case 496: vehicle_name = "Blista Compact"; case 497: vehicle_name = "Police Maverick"; case 498: vehicle_name = "Boxville"; case 499: vehicle_name = "Benson"; case 500: vehicle_name = "Mesa"; case 501: vehicle_name = "RC Goblin"; case 502: vehicle_name = "Hotring Racer B"; case 503: vehicle_name = "Hotring Racer C"; case 504: vehicle_name = "Bloodring Banger"; case 506: vehicle_name = "Super GT"; case 507: vehicle_name = "Elegant"; case 508: vehicle_name = "Journey"; case 509: vehicle_name = "Bike"; case 510: vehicle_name = "Mountain Bike"; case 511: vehicle_name = "Beagle"; case 512: vehicle_name = "Cropduster"; case 513: vehicle_name = "Stuntplane"; case 514: vehicle_name = "Tanker"; case 515: vehicle_name = "Roadtrain"; case 516: vehicle_name = "Nebula"; case 517: vehicle_name = "Majestic"; case 518: vehicle_name = "Buccaneer"; case 519: vehicle_name = "Shamal"; case 520: vehicle_name = "Hydra"; case 521: vehicle_name = "FCR-900"; case 522: vehicle_name = "NRG-500"; case 523: vehicle_name = "HPV1000"; case 524: vehicle_name = "Cement Truck"; case 525: vehicle_name = "Towtruck"; case 526: vehicle_name = "Fortune"; case 527: vehicle_name = "Cadrona"; case 528: vehicle_name = "FBI Trucker"; case 529: vehicle_name = "Willard"; case 530: vehicle_name = "Forklift"; case 531: vehicle_name = "Tractor"; case 532: vehicle_name = "Combine Harvester"; case 533: vehicle_name = "Feltzer"; case 534: vehicle_name = "Remington"; case 535: vehicle_name = "Slamvan"; case 536: vehicle_name = "Blade"; case 537: vehicle_name = "Freight"; case 538: vehicle_name = "Brownstreak"; case 539: vehicle_name = "Vortex"; case 540: vehicle_name = "Vincent"; case 541: vehicle_name = "Bullet"; case 542: vehicle_name = "Clover"; case 543: vehicle_name = "Sadler"; case 544: vehicle_name = "Firetruck LA"; case 545: vehicle_name = "Hustler"; case 546: vehicle_name = "Intruder"; case 547: vehicle_name = "Primo"; case 548: vehicle_name = "Cargobob"; case 549: vehicle_name = "Tampa"; case 550: vehicle_name = "Sunrise"; case 551: vehicle_name = "Merit"; case 552: vehicle_name = "Utility Van"; case 553: vehicle_name = "Nevada"; case 554: vehicle_name = "Yosemite"; case 555: vehicle_name = "Windsor"; case 556: vehicle_name = "Monster A"; case 557: vehicle_name = "Monster B"; case 558: vehicle_name = "Uranus"; case 559: vehicle_name = "Jester"; case 560: vehicle_name = "Sultan"; case 561: vehicle_name = "Stratum"; case 562: vehicle_name = "Elegy"; case 563: vehicle_name = "Raindance"; case 564: vehicle_name = "RC Tiger"; case 565: vehicle_name = "Flash"; case 566: vehicle_name = "Tahoma"; case 567: vehicle_name = "Savanna"; case 568: vehicle_name = "Bandito"; case 569: vehicle_name = "Freight Flat Trailer"; case 570: vehicle_name = "Streak Trailer"; case 571: vehicle_name = "Kart"; case 572: vehicle_name = "Mower"; case 573: vehicle_name = "Dune"; case 574: vehicle_name = "Sweeper"; case 575: vehicle_name = "Broadway"; case 576: vehicle_name = "Tornado"; case 577: vehicle_name = "AT-400"; case 578: vehicle_name = "DFT-30"; case 579: vehicle_name = "Huntley"; case 580: vehicle_name = "Stafford"; case 581: vehicle_name = "BF-400"; case 582: vehicle_name = "Newsvan"; case 583: vehicle_name = "Tug"; case 584: vehicle_name = "Petrol Trailer"; case 585: vehicle_name = "Emperor"; case 586: vehicle_name = "Wayfarer"; case 587: vehicle_name = "Euros"; case 588: vehicle_name = "Hotdog"; case 589: vehicle_name = "Club"; case 590: vehicle_name = "Freight Box Trailer"; case 591: vehicle_name = "Article Trailer 3"; case 592: vehicle_name = "Andromada"; case 593: vehicle_name = "Dodo"; case 594: vehicle_name = "RC Cam"; case 595: vehicle_name = "Launch"; case 596: vehicle_name = "LSPD Cruiser"; case 597: vehicle_name = "SFPD Cruiser"; case 598: vehicle_name = "LVPD Cruiser"; case 599: vehicle_name = "Police Ranger"; case 600: vehicle_name = "Picador"; case 601: vehicle_name = "S.W.A.T."; case 602: vehicle_name = "Alpha"; case 603: vehicle_name = "Phoenix"; case 604: vehicle_name = "Glendale Shit"; case 605: vehicle_name = "Sadler Shit"; case 606: vehicle_name = "Baggage Trailer A"; case 607: vehicle_name = "Baggage Trailer B"; case 608: vehicle_name = "Tug Stairs"; case 609: vehicle_name = "Boxville"; case 610: vehicle_name = "Farm Trailer"; case 611: vehicle_name = "Utility Trailer"; default: vehicle_name = "None"; } return vehicle_name; } stock GetVehicleNameByModel(modelid) { new vehicle_name[32] = "None"; if(!modelid) return vehicle_name; switch (modelid) { case 400: vehicle_name = "Landstalker"; case 401: vehicle_name = "Bravura"; case 402: vehicle_name = "Buffalo"; case 403: vehicle_name = "Linerunner"; case 404: vehicle_name = "Perennial"; case 405: vehicle_name = "Sentinel"; case 406: vehicle_name = "Dumper"; case 407: vehicle_name = "Firetruck"; case 408: vehicle_name = "Trashmaster"; case 409: vehicle_name = "Stretch"; case 410: vehicle_name = "Manana"; case 411: vehicle_name = "Infernus"; case 412: vehicle_name = "Voodoo"; case 413: vehicle_name = "Pony"; case 414: vehicle_name = "Mule"; case 415: vehicle_name = "Cheetah"; case 416: vehicle_name = "Ambulance"; case 417: vehicle_name = "Leviathan"; case 418: vehicle_name = "Moonbeam"; case 419: vehicle_name = "Esperanto"; case 420: vehicle_name = "Taxi"; case 421: vehicle_name = "Washington"; case 422: vehicle_name = "Bobcat"; case 423: vehicle_name = "Mr Whoopee"; case 424: vehicle_name = "BF Injection"; case 425: vehicle_name = "Hunter"; case 426: vehicle_name = "Premier"; case 427: vehicle_name = "Enforcer"; case 428: vehicle_name = "Securicar"; case 429: vehicle_name = "Banshee"; case 430: vehicle_name = "Predator"; case 431: vehicle_name = "Bus"; case 432: vehicle_name = "Rhino"; case 433: vehicle_name = "Barracks"; case 434: vehicle_name = "Hotknife"; case 435: vehicle_name = "Article Trailer"; case 436: vehicle_name = "Previon"; case 437: vehicle_name = "Coach"; case 438: vehicle_name = "Cabbie"; case 439: vehicle_name = "Stallion"; case 440: vehicle_name = "Rumpo"; case 441: vehicle_name = "RC Bandit"; case 442: vehicle_name = "Romero"; case 443: vehicle_name = "Packer"; case 444: vehicle_name = "Monster"; case 445: vehicle_name = "Admiral"; case 446: vehicle_name = "Squalo"; case 447: vehicle_name = "Seasparrow"; case 448: vehicle_name = "Pizzaboy"; case 449: vehicle_name = "Tram"; case 450: vehicle_name = "Article Trailer 2"; case 451: vehicle_name = "Turismo"; case 452: vehicle_name = "Speeder"; case 453: vehicle_name = "Reefer"; case 454: vehicle_name = "Tropic"; case 455: vehicle_name = "Flatbed"; case 456: vehicle_name = "Yankee"; case 457: vehicle_name = "Caddy"; case 458: vehicle_name = "Solair"; case 459: vehicle_name = "Berkley's RC Van"; case 460: vehicle_name = "Skimmer"; case 461: vehicle_name = "PCJ-600"; case 462: vehicle_name = "Faggio"; case 463: vehicle_name = "Freeway"; case 464: vehicle_name = "RC Baron"; case 465: vehicle_name = "RC Raider"; case 466: vehicle_name = "Glendale"; case 467: vehicle_name = "Oceanic"; case 468: vehicle_name = "Sanchez"; case 469: vehicle_name = "Sparrow"; case 470: vehicle_name = "Patriot"; case 471: vehicle_name = "Quad"; case 472: vehicle_name = "Coastguard"; case 473: vehicle_name = "Dinghy"; case 474: vehicle_name = "Hermes"; case 475: vehicle_name = "Sabre"; case 476: vehicle_name = "Rustler"; case 477: vehicle_name = "ZR-350"; case 478: vehicle_name = "Walton"; case 479: vehicle_name = "Regina"; case 480: vehicle_name = "Comet"; case 481: vehicle_name = "BMX"; case 482: vehicle_name = "Burrito"; case 483: vehicle_name = "Camper"; case 484: vehicle_name = "Marquis"; case 485: vehicle_name = "Baggage"; case 486: vehicle_name = "Dozer"; case 487: vehicle_name = "Maverick"; case 488: vehicle_name = "SAN News Maverick"; case 489, 505: vehicle_name = "Rancher"; case 490: vehicle_name = "FBI Rancher"; case 491: vehicle_name = "Virgo"; case 492: vehicle_name = "Greenwood"; case 493: vehicle_name = "Jetmax"; case 494: vehicle_name = "Hotring Racer A"; case 495: vehicle_name = "Sandking"; case 496: vehicle_name = "Blista Compact"; case 497: vehicle_name = "Police Maverick"; case 498: vehicle_name = "Boxville"; case 499: vehicle_name = "Benson"; case 500: vehicle_name = "Mesa"; case 501: vehicle_name = "RC Goblin"; case 502: vehicle_name = "Hotring Racer B"; case 503: vehicle_name = "Hotring Racer C"; case 504: vehicle_name = "Bloodring Banger"; case 506: vehicle_name = "Super GT"; case 507: vehicle_name = "Elegant"; case 508: vehicle_name = "Journey"; case 509: vehicle_name = "Bike"; case 510: vehicle_name = "Mountain Bike"; case 511: vehicle_name = "Beagle"; case 512: vehicle_name = "Cropduster"; case 513: vehicle_name = "Stuntplane"; case 514: vehicle_name = "Tanker"; case 515: vehicle_name = "Roadtrain"; case 516: vehicle_name = "Nebula"; case 517: vehicle_name = "Majestic"; case 518: vehicle_name = "Buccaneer"; case 519: vehicle_name = "Shamal"; case 520: vehicle_name = "Hydra"; case 521: vehicle_name = "FCR-900"; case 522: vehicle_name = "NRG-500"; case 523: vehicle_name = "HPV1000"; case 524: vehicle_name = "Cement Truck"; case 525: vehicle_name = "Towtruck"; case 526: vehicle_name = "Fortune"; case 527: vehicle_name = "Cadrona"; case 528: vehicle_name = "FBI Trucker"; case 529: vehicle_name = "Willard"; case 530: vehicle_name = "Forklift"; case 531: vehicle_name = "Tractor"; case 532: vehicle_name = "Combine Harvester"; case 533: vehicle_name = "Feltzer"; case 534: vehicle_name = "Remington"; case 535: vehicle_name = "Slamvan"; case 536: vehicle_name = "Blade"; case 537: vehicle_name = "Freight"; case 538: vehicle_name = "Brownstreak"; case 539: vehicle_name = "Vortex"; case 540: vehicle_name = "Vincent"; case 541: vehicle_name = "Bullet"; case 542: vehicle_name = "Clover"; case 543: vehicle_name = "Sadler"; case 544: vehicle_name = "Firetruck LA"; case 545: vehicle_name = "Hustler"; case 546: vehicle_name = "Intruder"; case 547: vehicle_name = "Primo"; case 548: vehicle_name = "Cargobob"; case 549: vehicle_name = "Tampa"; case 550: vehicle_name = "Sunrise"; case 551: vehicle_name = "Merit"; case 552: vehicle_name = "Utility Van"; case 553: vehicle_name = "Nevada"; case 554: vehicle_name = "Yosemite"; case 555: vehicle_name = "Windsor"; case 556: vehicle_name = "Monster A"; case 557: vehicle_name = "Monster B"; case 558: vehicle_name = "Uranus"; case 559: vehicle_name = "Jester"; case 560: vehicle_name = "Sultan"; case 561: vehicle_name = "Stratum"; case 562: vehicle_name = "Elegy"; case 563: vehicle_name = "Raindance"; case 564: vehicle_name = "RC Tiger"; case 565: vehicle_name = "Flash"; case 566: vehicle_name = "Tahoma"; case 567: vehicle_name = "Savanna"; case 568: vehicle_name = "Bandito"; case 569: vehicle_name = "Freight Flat Trailer"; case 570: vehicle_name = "Streak Trailer"; case 571: vehicle_name = "Kart"; case 572: vehicle_name = "Mower"; case 573: vehicle_name = "Dune"; case 574: vehicle_name = "Sweeper"; case 575: vehicle_name = "Broadway"; case 576: vehicle_name = "Tornado"; case 577: vehicle_name = "AT-400"; case 578: vehicle_name = "DFT-30"; case 579: vehicle_name = "Huntley"; case 580: vehicle_name = "Stafford"; case 581: vehicle_name = "BF-400"; case 582: vehicle_name = "Newsvan"; case 583: vehicle_name = "Tug"; case 584: vehicle_name = "Petrol Trailer"; case 585: vehicle_name = "Emperor"; case 586: vehicle_name = "Wayfarer"; case 587: vehicle_name = "Euros"; case 588: vehicle_name = "Hotdog"; case 589: vehicle_name = "Club"; case 590: vehicle_name = "Freight Box Trailer"; case 591: vehicle_name = "Article Trailer 3"; case 592: vehicle_name = "Andromada"; case 593: vehicle_name = "Dodo"; case 594: vehicle_name = "RC Cam"; case 595: vehicle_name = "Launch"; case 596: vehicle_name = "LSPD Cruiser"; case 597: vehicle_name = "SFPD Cruiser"; case 598: vehicle_name = "LVPD Cruiser"; case 599: vehicle_name = "Police Ranger"; case 600: vehicle_name = "Picador"; case 601: vehicle_name = "S.W.A.T."; case 602: vehicle_name = "Alpha"; case 603: vehicle_name = "Phoenix"; case 604: vehicle_name = "Glendale Shit"; case 605: vehicle_name = "Sadler Shit"; case 606: vehicle_name = "Baggage Trailer A"; case 607: vehicle_name = "Baggage Trailer B"; case 608: vehicle_name = "Tug Stairs"; case 609: vehicle_name = "Boxville"; case 610: vehicle_name = "Farm Trailer"; case 611: vehicle_name = "Utility Trailer"; default: vehicle_name = "None"; } return vehicle_name; } stock sscanf(string[], format[], {Float,_}:...) { #if defined isnull if(isnull(string)) #else if(string[0] == 0 || (string[0] == 1 && string[1] == 0)) #endif { return format[0]; } #pragma tabsize 4 new formatPos = 0, stringPos = 0, paramPos = 2, paramCount = numargs(), delim = ' '; while (string[stringPos] && string[stringPos] <= ' ') { stringPos++; } while (paramPos < paramCount && string[stringPos]) { switch (format[formatPos++]) { case '\0': { return 0; } case 'i', 'd': { new neg = 1, num = 0, ch = string[stringPos]; if(ch == '-') { neg = -1; ch = string[++stringPos]; } do { stringPos++; if('0' <= ch <= '9') { num = (num * 10) + (ch - '0'); } else { return -1; } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num * neg); } case 'h', 'x': { new num = 0, ch = string[stringPos]; do { stringPos++; switch (ch) { case 'x', 'X': { num = 0; continue; } case '0' .. '9': { num = (num << 4) | (ch - '0'); } case 'a' .. 'f': { num = (num << 4) | (ch - ('a' - 10)); } case 'A' .. 'F': { num = (num << 4) | (ch - ('A' - 10)); } default: { return -1; } } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num); } case 'c': { setarg(paramPos, 0, string[stringPos++]); } case 'f': { new changestr[16], changepos = 0, strpos = stringPos; while(changepos < 16 && string[strpos] && string[strpos] != delim) { changestr[changepos++] = string[strpos++]; } changestr[changepos] = '\0'; setarg(paramPos,0,_:floatstr(changestr)); } case 'p': { delim = format[formatPos++]; continue; } case '\'': { new end = formatPos - 1, ch; while ((ch = format[++end]) && ch != '\'') {} if(!ch) { return -1; } format[end] = '\0'; if((ch = strfind(string, format[formatPos], false, stringPos)) == -1) { if(format[end + 1]) { return -1; } return 0; } format[end] = '\''; stringPos = ch + (end - formatPos); formatPos = end + 1; } case 'u': { new end = stringPos - 1, id = 0, bool:num = true, ch; while ((ch = string[++end]) && ch != delim) { if(num) { if('0' <= ch <= '9') { id = (id * 10) + (ch - '0'); } else { num = false; } } } if(num && IsPlayerConnected(id)) { setarg(paramPos, 0, id); } else { #if !defined foreach #define foreach(%1,%2) for(new %2 = 0; %2 < MAX_PLAYERS; %2++) if(IsPlayerConnected(%2)) #define __SSCANF_FOREACH__ #endif string[end] = '\0'; num = false; new name[MAX_PLAYER_NAME]; id = end - stringPos; foreach (Player, playerid) { GetPlayerName(playerid, name, sizeof (name)); if(!strcmp(name, string[stringPos], true, id)) { setarg(paramPos, 0, playerid); num = true; break; } } if(!num) { setarg(paramPos, 0, INVALID_PLAYER_ID); } string[end] = ch; #if defined __SSCANF_FOREACH__ #undef foreach #undef __SSCANF_FOREACH__ #endif } stringPos = end; } case 's', 'z': { new i = 0, ch; if(format[formatPos]) { while ((ch = string[stringPos++]) && ch != delim) { setarg(paramPos, i++, ch); } if(!i) { return -1; } } else { while ((ch = string[stringPos++])) { setarg(paramPos, i++, ch); } } stringPos--; setarg(paramPos, i, '\0'); } default: { continue; } } while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ') { stringPos++; } while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' ')) { stringPos++; } paramPos++; } do { if((delim = format[formatPos++]) > ' ') { if(delim == '\'') { while ((delim = format[formatPos++]) && delim != '\'') {} } else if(delim != 'z') { return delim; } } } while (delim > ' '); return 0; } stock PlayerName(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); return name; }