Guest User

Untitled

a guest
Jul 8th, 2011
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 40.14 KB | None | 0 0
  1. #include <a_samp>
  2. #include <float>
  3.  
  4. /*
  5. ~~~ Version 1.4 ~~~
  6. Hinweis: Dieses Script greift via Remote-Funktionen auf den Gamemode zu und
  7. benötigt daher Funktionen und Variablen, die nicht in jedem Game-
  8. mode vorhanden sind. So verwenden Sie dieses Script bitte nur mit einem
  9. Godfather Gamemode.
  10. Copyright 2009 by ping (Marcel Kinzel)
  11. Credits to Tratulla for his 2 .ini Functions.
  12. Special Thanks to the Wiki info by Ignas1337 for the Tuning extension
  13. and the SA-MP's strtok() function.
  14. */
  15.  
  16. // auskommentieren, falls man nicht die /resetcars Funktion benutzen will
  17. #define RESETCARS
  18.  
  19. // auskommentieren, falls man nicht die /pcarsell Funktion benutzen will
  20. #define CARSELL
  21.  
  22. #if defined CARSELL
  23. #include <utils>
  24. #endif
  25.  
  26. #define COLOR_GRAD1 0xB4B5B7FF
  27. #define COLOR_GRAD2 0xBFC0C2FF
  28. #define COLOR_GRAD3 0xCBCCCEFF
  29. #define COLOR_GRAD4 0xD8D8D8FF
  30. #define COLOR_GRAD5 0xE3E3E3FF
  31. #define COLOR_GRAD6 0xF0F0F0FF
  32. #define COLOR_GREY 0xAFAFAFAA
  33. #define COLOR_GREEN 0x33AA33AA
  34. #define COLOR_RED 0xAA3333AA
  35. #define COLOR_LIGHTRED 0xFF6347AA
  36. #define COLOR_LIGHTBLUE 0x33CCFFAA
  37. #define COLOR_LIGHTGREEN 0x9ACD32AA
  38. #define COLOR_YELLOW 0xFFFF00AA
  39. #define COLOR_YELLOW2 0xF5DEB3AA
  40. #define COLOR_WHITE 0xFFFFFFAA
  41.  
  42. forward SetVehicleParamsForAll(carid,objective,doorslocked);
  43. forward CreateTunedCar(playerid);
  44. forward DelayDestroyCar(playerid);
  45. forward DelaySetVehicleParams(playerid);
  46. forward ResetAutohausSpawns();
  47.  
  48. enum ahCar
  49. {
  50. Typ,
  51. Float:X,
  52. Float:Y,
  53. Float:Z,
  54. Float:Rotation,
  55. Status,
  56. Lock,
  57. Carid,
  58. Paintjob,
  59. Farbe1,
  60. Farbe2,
  61. mod1,
  62. mod2,
  63. mod3,
  64. mod4,
  65. mod5,
  66. mod6,
  67. mod7,
  68. mod8,
  69. mod9,
  70. mod10,
  71. mod11,
  72. mod12,
  73. mod13,
  74. mod14,
  75. mod15,
  76. mod16,
  77. mod17,
  78. };
  79. new Carlist[MAX_PLAYERS][ahCar];
  80.  
  81. enum ahSpawn
  82. {
  83. Float:X,
  84. Float:Y,
  85. Float:Z,
  86. Float:Rotation,
  87. };
  88. new Autospawns[2][ahSpawn] = {
  89. {739.7457,-1343.8668,13.2828,270.2592},
  90. {-1639.3599,1198.1665,6.9527,269.9673}
  91. };
  92.  
  93. enum ahModell
  94. {
  95. Name[128],
  96. Autohaus,
  97. Modelid,
  98. Carid,
  99. Preis,
  100. Reparatur,
  101. Float:X,
  102. Float:Y,
  103. Float:Z,
  104. Float:Rotation,
  105. };
  106. new Kaufliste[34][ahModell] = {
  107. {"Stallion",0,439,-1,750000,5000,783.0,-1335.0,13.2,121.1},
  108. {"Feltzer",0,533,-1,500000,3000,783.0,-1340.0,13.2,121.1},
  109. {"Windsor",0,555,-1,450000,3400,783.0,-1345.0,13.2,121.1},
  110. {"Blade",0,536,-1,350000,3000,783.0,-1350.0,13.2,121.1},
  111. {"Remington",0,534,-1,500000,3000,783.0,-1355.0,13.2,121.1},
  112. {"Savanna",0,567,-1,350000,3000,783.0,-1360.0,13.2,121.1},
  113. {"Slamvan",0,535,-1,500000,3000,783.0,-1365.0,13.2,121.1},
  114. {"Voodoo",0,412,-1,500000,3000,783.0,-1370.0,13.2,121.1},
  115. {"Huntley",0,579,-1,200000,1000,783.0,-1375.0,13.2,121.1},
  116. {"Buccaneer",0,518,-1,120000,1000,783.0,-1380.0,13.2,121.1},
  117. {"Clover",0,542,-1,35000,500,765.0,-1360.0,13.4,301.1},
  118. {"Elegant",0,507,-1,40000,650,765.0,-1365.0,13.4,301.1},
  119. {"Elegy",0,562,-1,1500000,10000,765.0,-1370.0,13.4,301.1},
  120. {"Esperanto",0,419,-1,65000,650,765.0,-1375.0,13.4,301.1},
  121. {"Fortune",0,526,-1,35000,500,765.0,-1380.0,13.4,301.1},
  122. {"Sultan",0,560,-1,1500000,10000,766.0,-1333.0,13.3,211.1},
  123. {"Sunrise",0,550,-1,300000,2000,761.0,-1333.0,13.3,211.1},
  124. {"Vincent",0,540,-1,280000,2000,756.0,-1333.0,13.3,211.1},
  125. {"Alpha",0,602,-1,230000,2000,751.0,-1333.0,13.3,211.1},
  126. {"Banshee",0,429,-1,1000000,5500,746.0,-1333.0,13.3,211.1},
  127. {"Blista Compact",1,496,-1,350000,2500,-1668.6447,1207.0372,7.0249,309.5959},
  128. {"Buffalo",1,402,-1,500000,3000,-1663.6709,1215.2883,7.0234,274.9868},
  129. {"Bullet",1,541,-1,7500000,17500,-1651.3892,1210.3469,7.0208,281.3321},
  130. {"Cheetah",1,415,-1,4000000,10000,-1677.3560,1207.8099,13.4461,208.2602},
  131. {"Club",1,589,-1,70000,750,-1665.7789,1222.4406,13.4485,279.6459},
  132. {"Euros",1,587,-1,650000,7000,-1660.7256,1217.6407,13.4444,283.1553},
  133. {"Infernus",1,411,-1,1500000,7000,-1653.2462,1210.7842,13.4460,266.7211},
  134. {"Jester",1,559,-1,1500000,10000,-1676.0128,1207.1641,20.9248,261.5029},
  135. {"Phoenix",1,603,-1,600000,4000,-1664.4386,1206.8241,20.9289,332.5978},
  136. {"Super GT",1,506,-1,12500000,20000,-1651.6372,1208.2538,20.9231,305.1015},
  137. {"Turismo",1,451,-1,13000000,20000,-1665.1248,1222.7113,20.9265,267.4103},
  138. {"Uranus",1,558,-1,850000,10000,-1661.1943,1217.9629,20.9268,286.1662},
  139. {"ZR-350",1,477,-1,6500000,7000,-1654.3116,1214.8097,20.9267,173.5712},
  140. {"Faggio",0,462,-1,10000,500,750.7272,-1358.3872,13.0996,273.7736}
  141. };
  142.  
  143. new Spectating[MAX_PLAYERS][1];
  144.  
  145. // Anfang der Tuningkomponentenliste
  146. new spoiler[20][0] = {
  147. {1000},
  148. {1001},
  149. {1002},
  150. {1003},
  151. {1014},
  152. {1015},
  153. {1016},
  154. {1023},
  155. {1058},
  156. {1060},
  157. {1049},
  158. {1050},
  159. {1138},
  160. {1139},
  161. {1146},
  162. {1147},
  163. {1158},
  164. {1162},
  165. {1163},
  166. {1164}
  167. };
  168.  
  169. new nitro[3][0] = {
  170. {1008},
  171. {1009},
  172. {1010}
  173. };
  174.  
  175. new fbumper[23][0] = {
  176. {1117},
  177. {1152},
  178. {1153},
  179. {1155},
  180. {1157},
  181. {1160},
  182. {1165},
  183. {1167},
  184. {1169},
  185. {1170},
  186. {1171},
  187. {1172},
  188. {1173},
  189. {1174},
  190. {1175},
  191. {1179},
  192. {1181},
  193. {1182},
  194. {1185},
  195. {1188},
  196. {1189},
  197. {1192},
  198. {1193}
  199. };
  200.  
  201. new rbumper[22][0] = {
  202. {1140},
  203. {1141},
  204. {1148},
  205. {1149},
  206. {1150},
  207. {1151},
  208. {1154},
  209. {1156},
  210. {1159},
  211. {1161},
  212. {1166},
  213. {1168},
  214. {1176},
  215. {1177},
  216. {1178},
  217. {1180},
  218. {1183},
  219. {1184},
  220. {1186},
  221. {1187},
  222. {1190},
  223. {1191}
  224. };
  225.  
  226. new exhaust[28][0] = {
  227. {1018},
  228. {1019},
  229. {1020},
  230. {1021},
  231. {1022},
  232. {1028},
  233. {1029},
  234. {1037},
  235. {1043},
  236. {1044},
  237. {1045},
  238. {1046},
  239. {1059},
  240. {1064},
  241. {1065},
  242. {1066},
  243. {1089},
  244. {1092},
  245. {1104},
  246. {1105},
  247. {1113},
  248. {1114},
  249. {1126},
  250. {1127},
  251. {1129},
  252. {1132},
  253. {1135},
  254. {1136}
  255. };
  256.  
  257. new bventr[2][0] = {
  258. {1042},
  259. {1044}
  260. };
  261.  
  262. new bventl[2][0] = {
  263. {1043},
  264. {1045}
  265. };
  266.  
  267. new bscoop[4][0] = {
  268. {1004},
  269. {1005},
  270. {1011},
  271. {1012}
  272. };
  273.  
  274. new rscoop[13][0] = {
  275. {1006},
  276. {1032},
  277. {1033},
  278. {1035},
  279. {1038},
  280. {1053},
  281. {1054},
  282. {1055},
  283. {1061},
  284. {1067},
  285. {1068},
  286. {1088},
  287. {1091}
  288. };
  289.  
  290. new lskirt[21][0] = {
  291. {1007},
  292. {1026},
  293. {1031},
  294. {1036},
  295. {1039},
  296. {1042},
  297. {1047},
  298. {1048},
  299. {1056},
  300. {1057},
  301. {1069},
  302. {1070},
  303. {1090},
  304. {1093},
  305. {1106},
  306. {1108},
  307. {1118},
  308. {1119},
  309. {1133},
  310. {1122},
  311. {1134}
  312. };
  313.  
  314. new rskirt[21][0] = {
  315. {1017},
  316. {1027},
  317. {1030},
  318. {1040},
  319. {1041},
  320. {1051},
  321. {1052},
  322. {1062},
  323. {1063},
  324. {1071},
  325. {1072},
  326. {1094},
  327. {1095},
  328. {1099},
  329. {1101},
  330. {1102},
  331. {1107},
  332. {1120},
  333. {1121},
  334. {1124},
  335. {1137}
  336. };
  337.  
  338. new hydraulics[1][0] = {
  339. {1087}
  340. };
  341.  
  342. new base[1][0] = {
  343. {1086}
  344. };
  345.  
  346. new rbbars[2][0] = {
  347. {1109},
  348. {1110}
  349. };
  350.  
  351. new fbbars[2][0] = {
  352. {1115},
  353. {1116}
  354. };
  355.  
  356. new wheels[17][0] = {
  357. {1025},
  358. {1073},
  359. {1074},
  360. {1075},
  361. {1076},
  362. {1077},
  363. {1078},
  364. {1079},
  365. {1080},
  366. {1081},
  367. {1082},
  368. {1083},
  369. {1084},
  370. {1085},
  371. {1096},
  372. {1097},
  373. {1098}
  374. };
  375.  
  376. new lights[2][0] = {
  377. {1013},
  378. {1024}
  379. };
  380. // Ende der Tuningkomponentenliste
  381.  
  382. #if defined CARSELL
  383. new bietetAn[MAX_PLAYERS][2];
  384. #endif
  385.  
  386. ini_GetKey( line[] )
  387. {
  388. new keyRes[256];
  389. keyRes[0] = 0;
  390. if ( strfind( line , "=" , true ) == -1 ) return keyRes;
  391. strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
  392. return keyRes;
  393. }
  394.  
  395. ini_GetValue( line[] )
  396. {
  397. new valRes[256];
  398. valRes[0]=0;
  399. if ( strfind( line , "=" , true ) == -1 ) return valRes;
  400. strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
  401. return valRes;
  402. }
  403.  
  404. strtok(const string[], &index)
  405. {
  406. new length = strlen(string);
  407. while ((index < length) && (string[index] <= ' '))
  408. {
  409. index++;
  410. }
  411.  
  412. new offset = index;
  413. new result[20];
  414. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  415. {
  416. result[index - offset] = string[index];
  417. index++;
  418. }
  419. result[index - offset] = EOS;
  420. return result;
  421. }
  422.  
  423. IsAutohausCar(carid)
  424. {
  425. new i;
  426. for(i=0; i<sizeof(Kaufliste); i++)
  427. {
  428. if(Kaufliste[i][Carid]==carid) { return i; }
  429. }
  430. return -1;
  431. }
  432.  
  433. GetPlayerFromCarlistCar(carid)
  434. {
  435. new i;
  436. for(i=0; i<sizeof(Carlist); i++)
  437. {
  438. if(Carlist[i][Carid]==carid) { return i; }
  439. }
  440. return -1;
  441. }
  442.  
  443. GetModType(componentid)
  444. {
  445. new i;
  446. for(i=0; i<20; i++)
  447. {
  448. if(spoiler[i][0]==componentid) { return 1; }
  449. }
  450. for(i=0; i<3; i++)
  451. {
  452. if(nitro[i][0]==componentid) { return 2; }
  453. }
  454. for(i=0; i<23; i++)
  455. {
  456. if(fbumper[i][0]==componentid) { return 3; }
  457. }
  458. for(i=0; i<22; i++)
  459. {
  460. if(rbumper[i][0]==componentid) { return 4; }
  461. }
  462. for(i=0; i<28; i++)
  463. {
  464. if(exhaust[i][0]==componentid) { return 5; }
  465. }
  466. for(i=0; i<2; i++)
  467. {
  468. if(bventr[i][0]==componentid) { return 6; }
  469. }
  470. for(i=0; i<2; i++)
  471. {
  472. if(bventl[i][0]==componentid) { return 7; }
  473. }
  474. for(i=0; i<4; i++)
  475. {
  476. if(bscoop[i][0]==componentid) { return 8; }
  477. }
  478. for(i=0; i<13; i++)
  479. {
  480. if(rscoop[i][0]==componentid) { return 9; }
  481. }
  482. for(i=0; i<21; i++)
  483. {
  484. if(lskirt[i][0]==componentid) { return 10; }
  485. }
  486. for(i=0; i<21; i++)
  487. {
  488. if(rskirt[i][0]==componentid) { return 11; }
  489. }
  490. if(hydraulics[0][0]==componentid) { return 12; }
  491. if(base[0][0]==componentid) { return 13; }
  492. for(i=0; i<2; i++)
  493. {
  494. if(rbbars[i][0]==componentid) { return 14; }
  495. }
  496. for(i=0; i<2; i++)
  497. {
  498. if(fbbars[i][0]==componentid) { return 15; }
  499. }
  500. for(i=0; i<17; i++)
  501. {
  502. if(wheels[i][0]==componentid) { return 16; }
  503. }
  504. for(i=0; i<2; i++)
  505. {
  506. if(lights[i][0]==componentid) { return 17; }
  507. }
  508. return 0;
  509. }
  510.  
  511. public OnFilterScriptInit()
  512. {
  513. print("------------------------------");
  514. print(" ~*~ Mobiles Autohaus 1.4 ~*~");
  515. print(" ~*~ (c) 2009 by ping ~*~");
  516. print("------------------------------\n");
  517.  
  518. new i;
  519. for(i=0; i<sizeof(Kaufliste); i++)
  520. {
  521. Kaufliste[i][Carid]=CreateVehicle(Kaufliste[i][Modelid],Kaufliste[i][X],Kaufliste[i][Y],Kaufliste[i][Z],Kaufliste[i][Rotation],-1,-1,-1);
  522. }
  523. for(i=0; i<MAX_PLAYERS; i++)
  524. {
  525. Spectating[i][0]=-1;
  526. }
  527. return 1;
  528. }
  529.  
  530. public OnPlayerConnect(playerid)
  531. {
  532. new dateiname[MAX_PLAYER_NAME+4];
  533. new playername[MAX_PLAYER_NAME];
  534. Carlist[playerid][Typ]=-1; Carlist[playerid][X]=0.0; Carlist[playerid][Y]=0.0; Carlist[playerid][Z]=0.0;
  535. Carlist[playerid][Rotation]=0.0; Carlist[playerid][Status]=0; Carlist[playerid][Lock]=0; Carlist[playerid][Carid]=-1;
  536. Carlist[playerid][Farbe1]=-1; Carlist[playerid][Farbe2]=-1; Carlist[playerid][mod1]=-1; Carlist[playerid][mod2]=-1;
  537. Carlist[playerid][mod3]=-1; Carlist[playerid][mod4]=-1; Carlist[playerid][mod5]=-1; Carlist[playerid][mod6]=-1;
  538. Carlist[playerid][mod7]=-1; Carlist[playerid][mod8]=-1; Carlist[playerid][mod9]=-1; Carlist[playerid][mod10]=-1;
  539. Carlist[playerid][mod11]=-1; Carlist[playerid][mod12]=-1; Carlist[playerid][mod13]=-1; Carlist[playerid][mod14]=-1;
  540. Carlist[playerid][mod15]=-1; Carlist[playerid][mod16]=-1; Carlist[playerid][mod17]=-1; Carlist[playerid][Paintjob]=-1;
  541. Spectating[playerid][0]=-1;
  542. #if defined CARSELL
  543. bietetAn[playerid]={-1,0};
  544. #endif
  545. GetPlayerName(playerid, playername, sizeof(playername));
  546. format(dateiname, sizeof(dateiname), "%s.car", playername);
  547. if (fexist(dateiname))
  548. {
  549. new File: CarFile = fopen(dateiname, io_read);
  550. if ( CarFile )
  551. {
  552. new key[ 256 ];
  553. new Data[ 256 ];
  554. while ( fread( CarFile , Data , sizeof( Data ) ) )
  555. {
  556. key = ini_GetKey(Data);
  557. if(strcmp(key,"AH_Typ",true)==0) { Carlist[playerid][Typ]=strval(ini_GetValue(Data)); }
  558. else if(strcmp(key,"AH_X",true)==0) { Carlist[playerid][X]=floatstr(ini_GetValue(Data)); }
  559. else if(strcmp(key,"AH_Y",true)==0) { Carlist[playerid][Y]=floatstr(ini_GetValue(Data)); }
  560. else if(strcmp(key,"AH_Z",true)==0) { Carlist[playerid][Z]=floatstr(ini_GetValue(Data)); }
  561. else if(strcmp(key,"AH_Rot",true)==0) { Carlist[playerid][Rotation]=floatstr(ini_GetValue(Data)); }
  562. else if(strcmp(key,"AH_Status",true)==0) { Carlist[playerid][Status]=strval(ini_GetValue(Data)); }
  563. else if(strcmp(key,"AH_Lock",true)==0) { Carlist[playerid][Lock]=strval(ini_GetValue(Data)); }
  564. else if(strcmp(key,"AH_Paintjob",true)==0) { Carlist[playerid][Paintjob]=strval(ini_GetValue(Data)); }
  565. else if(strcmp(key,"AH_Farbe1",true)==0) { Carlist[playerid][Farbe1]=strval(ini_GetValue(Data)); }
  566. else if(strcmp(key,"AH_Farbe2",true)==0) { Carlist[playerid][Farbe2]=strval(ini_GetValue(Data)); }
  567. else if(strcmp(key,"AH_mod1",true)==0) { Carlist[playerid][mod1]=strval(ini_GetValue(Data)); }
  568. else if(strcmp(key,"AH_mod2",true)==0) { Carlist[playerid][mod2]=strval(ini_GetValue(Data)); }
  569. else if(strcmp(key,"AH_mod3",true)==0) { Carlist[playerid][mod3]=strval(ini_GetValue(Data)); }
  570. else if(strcmp(key,"AH_mod4",true)==0) { Carlist[playerid][mod4]=strval(ini_GetValue(Data)); }
  571. else if(strcmp(key,"AH_mod5",true)==0) { Carlist[playerid][mod5]=strval(ini_GetValue(Data)); }
  572. else if(strcmp(key,"AH_mod6",true)==0) { Carlist[playerid][mod6]=strval(ini_GetValue(Data)); }
  573. else if(strcmp(key,"AH_mod7",true)==0) { Carlist[playerid][mod7]=strval(ini_GetValue(Data)); }
  574. else if(strcmp(key,"AH_mod8",true)==0) { Carlist[playerid][mod8]=strval(ini_GetValue(Data)); }
  575. else if(strcmp(key,"AH_mod9",true)==0) { Carlist[playerid][mod9]=strval(ini_GetValue(Data)); }
  576. else if(strcmp(key,"AH_mod10",true)==0) { Carlist[playerid][mod10]=strval(ini_GetValue(Data)); }
  577. else if(strcmp(key,"AH_mod11",true)==0) { Carlist[playerid][mod11]=strval(ini_GetValue(Data)); }
  578. else if(strcmp(key,"AH_mod12",true)==0) { Carlist[playerid][mod12]=strval(ini_GetValue(Data)); }
  579. else if(strcmp(key,"AH_mod13",true)==0) { Carlist[playerid][mod13]=strval(ini_GetValue(Data)); }
  580. else if(strcmp(key,"AH_mod14",true)==0) { Carlist[playerid][mod14]=strval(ini_GetValue(Data)); }
  581. else if(strcmp(key,"AH_mod15",true)==0) { Carlist[playerid][mod15]=strval(ini_GetValue(Data)); }
  582. else if(strcmp(key,"AH_mod16",true)==0) { Carlist[playerid][mod16]=strval(ini_GetValue(Data)); }
  583. else if(strcmp(key,"AH_mod17",true)==0) { Carlist[playerid][mod17]=strval(ini_GetValue(Data)); }
  584. }
  585. }
  586. fclose(CarFile);
  587. if(Carlist[playerid][Typ]!=-1 && Carlist[playerid][Status]==1)
  588. {
  589. Carlist[playerid][Carid]=CreateTunedCar(playerid);
  590. }
  591. }
  592. SetTimerEx("DelaySetVehicleParams",10000,0,"i",playerid);
  593. return 1;
  594. }
  595.  
  596. public OnPlayerDisconnect(playerid)
  597. {
  598. new dateiname[MAX_PLAYER_NAME+4];
  599. new playername[MAX_PLAYER_NAME];
  600. new var[256];
  601. GetPlayerName(playerid, playername, sizeof(playername));
  602. format(dateiname, sizeof(dateiname), "%s.car", playername);
  603. new File: CarFile = fopen(dateiname, io_write);
  604. format(var, 256, "AH_Typ=%i\n", Carlist[playerid][Typ]); fwrite(CarFile, var);
  605. format(var, 256, "AH_X=%f\n", Carlist[playerid][X]); fwrite(CarFile, var);
  606. format(var, 256, "AH_Y=%f\n", Carlist[playerid][Y]); fwrite(CarFile, var);
  607. format(var, 256, "AH_Z=%f\n", Carlist[playerid][Z]); fwrite(CarFile, var);
  608. format(var, 256, "AH_Rot=%f\n", Carlist[playerid][Rotation]); fwrite(CarFile, var);
  609. format(var, 256, "AH_Status=%i\n", Carlist[playerid][Status]); fwrite(CarFile, var);
  610. format(var, 256, "AH_Lock=%i\n", Carlist[playerid][Lock]); fwrite(CarFile, var);
  611. format(var, 256, "AH_Paintjob=%i\n", Carlist[playerid][Paintjob]); fwrite(CarFile, var);
  612. format(var, 256, "AH_Farbe1=%i\n", Carlist[playerid][Farbe1]); fwrite(CarFile, var);
  613. format(var, 256, "AH_Farbe2=%i\n", Carlist[playerid][Farbe2]); fwrite(CarFile, var);
  614. format(var, 256, "AH_mod1=%i\n", Carlist[playerid][mod1]); fwrite(CarFile, var);
  615. format(var, 256, "AH_mod2=%i\n", Carlist[playerid][mod2]); fwrite(CarFile, var);
  616. format(var, 256, "AH_mod3=%i\n", Carlist[playerid][mod3]); fwrite(CarFile, var);
  617. format(var, 256, "AH_mod4=%i\n", Carlist[playerid][mod4]); fwrite(CarFile, var);
  618. format(var, 256, "AH_mod5=%i\n", Carlist[playerid][mod5]); fwrite(CarFile, var);
  619. format(var, 256, "AH_mod6=%i\n", Carlist[playerid][mod6]); fwrite(CarFile, var);
  620. format(var, 256, "AH_mod7=%i\n", Carlist[playerid][mod7]); fwrite(CarFile, var);
  621. format(var, 256, "AH_mod8=%i\n", Carlist[playerid][mod8]); fwrite(CarFile, var);
  622. format(var, 256, "AH_mod9=%i\n", Carlist[playerid][mod9]); fwrite(CarFile, var);
  623. format(var, 256, "AH_mod10=%i\n", Carlist[playerid][mod10]); fwrite(CarFile, var);
  624. format(var, 256, "AH_mod11=%i\n", Carlist[playerid][mod11]); fwrite(CarFile, var);
  625. format(var, 256, "AH_mod12=%i\n", Carlist[playerid][mod12]); fwrite(CarFile, var);
  626. format(var, 256, "AH_mod13=%i\n", Carlist[playerid][mod13]); fwrite(CarFile, var);
  627. format(var, 256, "AH_mod14=%i\n", Carlist[playerid][mod14]); fwrite(CarFile, var);
  628. format(var, 256, "AH_mod15=%i\n", Carlist[playerid][mod15]); fwrite(CarFile, var);
  629. format(var, 256, "AH_mod16=%i\n", Carlist[playerid][mod16]); fwrite(CarFile, var);
  630. format(var, 256, "AH_mod17=%i\n", Carlist[playerid][mod17]); fwrite(CarFile, var);
  631. fclose(CarFile);
  632. if(Carlist[playerid][Carid]!=-1)
  633. {
  634. SetVehicleParamsForAll(Carlist[playerid][Carid],0,0);
  635. DestroyVehicle(Carlist[playerid][Carid]);
  636. Carlist[playerid][Carid]=-1;
  637. }
  638. if (Spectating[playerid][0]!=-1)
  639. {
  640. SetVehicleParamsForAll(Kaufliste[Spectating[playerid][0]][Carid],0,0);
  641. Spectating[playerid][0]=-1;
  642. }
  643. return 1;
  644. }
  645.  
  646. public OnVehicleDeath(vehicleid, killerid)
  647. {
  648. new i;
  649. for(i=0; i<MAX_PLAYERS; i++)
  650. {
  651. if(Carlist[i][Carid]==vehicleid)
  652. {
  653. SetTimerEx("DelayDestroyCar",3000,0,"i",i);
  654. return 1;
  655. }
  656. }
  657. return 1;
  658. }
  659.  
  660. public OnPlayerCommandText(playerid, cmdtext[])
  661. {
  662. new cmd[128], idx, string[128];
  663. #if defined CARSELL
  664. new tmp[128];
  665. #endif
  666. cmd = strtok(cmdtext, idx);
  667.  
  668. if (strcmp("/carhelp", cmd, true, 10) == 0)
  669. {
  670. if(IsPlayerConnected(playerid))
  671. {
  672. SendClientMessage(playerid, COLOR_GREEN,"_______________________________________");
  673. SendClientMessage(playerid, COLOR_WHITE,"*** AUTO HILFE *** gib einen Befehl ein für mehr Hilfe");
  674. SendClientMessage(playerid, COLOR_GRAD3,"*** AUTO *** /park /fixcar /carlock /respraycar");
  675. SendClientMessage(playerid, COLOR_GRAD3,"*** AUTO *** /repaintcar /buycar /carsell /exitcar");
  676. #if defined CARSELL
  677. SendClientMessage(playerid, COLOR_GRAD3,"*** AUTO *** /pcarsell /cancelsell /acceptsell");
  678. #endif
  679. }
  680. return 1;
  681. }
  682. else if (strcmp("/park", cmd, true, 10) == 0)
  683. {
  684. if (IsPlayerInVehicle(playerid,Carlist[playerid][Carid]))
  685. {
  686. GetVehiclePos(Carlist[playerid][Carid],Carlist[playerid][X],Carlist[playerid][Y],Carlist[playerid][Z]);
  687. GetVehicleZAngle(Carlist[playerid][Carid],Carlist[playerid][Rotation]);
  688. SendClientMessage(playerid, COLOR_GREEN, "Fahrzeug geparkt!");
  689. }
  690. else { SendClientMessage(playerid, COLOR_GREY, "Du sitzt nicht in deinem eigenen Auto!"); }
  691. return 1;
  692. }
  693. else if (strcmp("/fixcar", cmd, true, 10) == 0)
  694. {
  695. if (Carlist[playerid][Typ]!=-1)
  696. {
  697. if (Carlist[playerid][Status]==0)
  698. {
  699. new reparatur = Kaufliste[Carlist[playerid][Typ]][Reparatur];
  700. if (reparatur <= GetPlayerMoney(playerid))
  701. {
  702. Carlist[playerid][Status]=1;
  703. Carlist[playerid][Carid]=CreateTunedCar(playerid);
  704. GivePlayerMoney(playerid, - reparatur);
  705. format(string, 128, "Du hast dein Auto für $%i reparieren lassen! Es steht nun am letzten Parkpunkt für dich bereit.", reparatur);
  706. SendClientMessage(playerid, COLOR_RED, string);
  707. }
  708. else { format(string, 128, "Du hast nicht genug Geld für die Reparatur (benötigt: $%i)!", reparatur); SendClientMessage(playerid, COLOR_LIGHTRED, string); }
  709. }
  710. else { SendClientMessage(playerid, COLOR_GREY, "Dein Auto benötigt keine Reparatur!"); }
  711. }
  712. else { SendClientMessage(playerid, COLOR_GREY, "Du besitzt kein Auto!"); }
  713. return 1;
  714. }
  715. else if (strcmp("/carlock", cmd, true, 10) == 0)
  716. {
  717. if (Carlist[playerid][Typ]!=-1)
  718. {
  719. if (Carlist[playerid][Carid]!=-1)
  720. {
  721. if (Carlist[playerid][Lock]==0)
  722. {
  723. Carlist[playerid][Lock]=1;
  724. SetVehicleParamsForAll(Carlist[playerid][Carid],0,1);
  725. SetVehicleParamsForPlayer(Carlist[playerid][Carid],playerid,0,0);
  726. SendClientMessage(playerid, COLOR_RED, "Du hast dein Auto für andere Spieler abgeschlossen!");
  727. }
  728. else
  729. {
  730. Carlist[playerid][Lock]=0;
  731. SetVehicleParamsForAll(Carlist[playerid][Carid],0,0);
  732. SendClientMessage(playerid, COLOR_RED, "Du hast dein Auto für andere Spieler aufgeschlossen!");
  733. }
  734. }
  735. else { SendClientMessage(playerid, COLOR_GREY, "Du besitzt zur Zeit kein Auto!"); }
  736. }
  737. else { SendClientMessage(playerid, COLOR_GREY, "Du besitzt kein Auto!"); }
  738. return 1;
  739. }
  740. else if (strcmp("/respraycar", cmd, true, 10) == 0)
  741. {
  742. if (Carlist[playerid][Typ]!=-1)
  743. {
  744. if (Carlist[playerid][Carid]!=-1)
  745. {
  746. ChangeVehicleColor(Carlist[playerid][Carid],Carlist[playerid][Farbe1],Carlist[playerid][Farbe2]);
  747. SendClientMessage(playerid, COLOR_RED, "Dein Auto wurde neu lackiert!");
  748. }
  749. else { SendClientMessage(playerid, COLOR_GREY, "Du besitzt zur Zeit kein Auto!"); }
  750. }
  751. else { SendClientMessage(playerid, COLOR_GREY, "Du besitzt kein Auto!"); }
  752. return 1;
  753. }
  754. else if (strcmp("/repaintcar", cmd, true, 10) == 0)
  755. {
  756. if (Carlist[playerid][Typ]!=-1)
  757. {
  758. if (Carlist[playerid][Carid]!=-1)
  759. {
  760. if (Carlist[playerid][Paintjob]!=-1)
  761. {
  762. ChangeVehiclePaintjob(Carlist[playerid][Carid],Carlist[playerid][Paintjob]);
  763. SendClientMessage(playerid, COLOR_RED, "Dein Auto wurde neu lackiert!");
  764. }
  765. else { SendClientMessage(playerid, COLOR_GREY, "Du hast keinen Paintjob für dein Auto!"); }
  766. }
  767. else { SendClientMessage(playerid, COLOR_GREY, "Du besitzt zur Zeit kein Auto!"); }
  768. }
  769. else { SendClientMessage(playerid, COLOR_GREY, "Du besitzt kein Auto!"); }
  770. return 1;
  771. }
  772. else if (strcmp("/exitcar", cmd, true, 10) == 0)
  773. {
  774. if (Spectating[playerid][0]!=-1)
  775. {
  776. TogglePlayerControllable(playerid,1);
  777. SetVehicleParamsForAll(Kaufliste[Spectating[playerid][0]][Carid],0,0);
  778. Spectating[playerid][0]=-1;
  779. RemovePlayerFromVehicle(playerid);
  780. }
  781. else { SendClientMessage(playerid, COLOR_GREY, "Du besichtigst kein Auto!"); }
  782. return 1;
  783. }
  784. else if (strcmp("/buycar", cmd, true, 10) == 0)
  785. {
  786. if (Spectating[playerid][0]!=-1)
  787. {
  788. if (Carlist[playerid][Typ]==-1)
  789. {
  790. new preis = Kaufliste[Spectating[playerid][0]][Preis];
  791. if (preis <= GetPlayerMoney(playerid))
  792. {
  793. new autohaus=Kaufliste[Spectating[playerid][0]][Autohaus];
  794. GivePlayerMoney(playerid, - preis);
  795. Carlist[playerid][Typ]=Spectating[playerid][0]; Carlist[playerid][X]=Autospawns[autohaus][X]; Carlist[playerid][Y]=Autospawns[autohaus][Y];
  796. Carlist[playerid][Z]=Autospawns[autohaus][Z]; Carlist[playerid][Rotation]=Autospawns[autohaus][Rotation]; Carlist[playerid][Status]=1; Carlist[playerid][Lock]=0;
  797. Carlist[playerid][Carid]=CreateVehicle(Kaufliste[Spectating[playerid][0]][Modelid],Carlist[playerid][X],Carlist[playerid][Y],Carlist[playerid][Z],Carlist[playerid][Rotation],-1,-1,-1);
  798. SetVehicleParamsForAll(Kaufliste[Spectating[playerid][0]][Carid],0,0);
  799. TogglePlayerControllable(playerid,1);
  800. Spectating[playerid][0]=-1;
  801. RemovePlayerFromVehicle(playerid);
  802. format(string,128,"Du hast dir erfolgreich für $%i ein/einen %s gekauft!",preis,Kaufliste[Carlist[playerid][Typ]][Name]);
  803. SendClientMessage(playerid, COLOR_RED, string);
  804. SendClientMessage(playerid, COLOR_GREEN, "Wenn du dein Fahrzeug zerstörst, gib /fixcar ein.");
  805. SendClientMessage(playerid, COLOR_GREEN, "Mit /carlock kannst du dein Fahrzeug für andere Leute freigeben oder abschließen.");
  806. SendClientMessage(playerid, COLOR_GREEN, "Mehr Befehle kannst du unter /carhelp sehen.");
  807. SendClientMessage(playerid, COLOR_YELLOW, "Dein Auto steht am Ausgabepunkt bereit! Viel Spaß beim Fahren!");
  808. }
  809. else { format(string, 128, "Du hast nicht genug Geld für das Auto (benötigt: $%i)!", preis); SendClientMessage(playerid, COLOR_LIGHTRED, string); }
  810. }
  811. else { SendClientMessage(playerid, COLOR_GREY, "Du besitzt bereits ein Auto!"); }
  812. }
  813. else { SendClientMessage(playerid, COLOR_GREY, "Du besichtigst kein Auto!"); }
  814. return 1;
  815. }
  816. else if (strcmp("/carsell", cmd, true, 10) == 0)
  817. {
  818. if (Carlist[playerid][Typ]!=-1)
  819. {
  820. new preis = (Kaufliste[Carlist[playerid][Typ]][Preis]/5)*4;
  821. if (IsPlayerInVehicle(playerid,Carlist[playerid][Carid])) { RemovePlayerFromVehicle(playerid); }
  822. GivePlayerMoney(playerid, preis);
  823. DestroyVehicle(Carlist[playerid][Carid]);
  824. Carlist[playerid][Typ]=-1; Carlist[playerid][X]=0.0; Carlist[playerid][Y]=0.0; Carlist[playerid][Z]=0.0;
  825. Carlist[playerid][Rotation]=0.0; Carlist[playerid][Status]=0; Carlist[playerid][Lock]=0; Carlist[playerid][Carid]=-1;
  826. Carlist[playerid][Farbe1]=-1; Carlist[playerid][Farbe2]=-1; Carlist[playerid][mod1]=-1; Carlist[playerid][mod2]=-1;
  827. Carlist[playerid][mod3]=-1; Carlist[playerid][mod4]=-1; Carlist[playerid][mod5]=-1; Carlist[playerid][mod6]=-1;
  828. Carlist[playerid][mod7]=-1; Carlist[playerid][mod8]=-1; Carlist[playerid][mod9]=-1; Carlist[playerid][mod10]=-1;
  829. Carlist[playerid][mod11]=-1; Carlist[playerid][mod12]=-1; Carlist[playerid][mod13]=-1; Carlist[playerid][mod14]=-1;
  830. Carlist[playerid][mod15]=-1; Carlist[playerid][mod16]=-1; Carlist[playerid][mod17]=-1; Carlist[playerid][Paintjob]=-1;
  831. format(string,128,"Du hast erfolgreich dein Auto für $%i verkauft!",preis);
  832. SendClientMessage(playerid, COLOR_RED, string);
  833. }
  834. else { SendClientMessage(playerid, COLOR_GREY, "Du besitzt kein Auto!"); }
  835. return 1;
  836. }
  837. #if defined RESETCARS
  838. else if (strcmp("/resetcars", cmd, true, 10) == 0)
  839. {
  840. if(CallRemoteFunction("IsAdmin","i",playerid)) { ResetAutohausSpawns(); }
  841. return 1;
  842. }
  843. #endif
  844. #if defined CARSELL
  845. else if (strcmp("/pcarsell", cmd, true, 10) == 0)
  846. {
  847. tmp = strtok(cmdtext, idx);
  848. if (!strlen(tmp))
  849. {
  850. SendClientMessage(playerid, COLOR_GREY, "Benutzung: /pcarsell [playerid] [Preis]");
  851. return 1;
  852. }
  853. new sellplayerid = ReturnUser(tmp);
  854. tmp = strtok(cmdtext, idx);
  855. if (!strlen(tmp))
  856. {
  857. SendClientMessage(playerid, COLOR_GREY, "Benutzung: /pcarsell [playerid] [Geld]");
  858. return 1;
  859. }
  860. new preis = strval(tmp);
  861. if (preis<0)
  862. {
  863. SendClientMessage(playerid, COLOR_GREY, "Bitte gib einen positiven Preis an.");
  864. return 1;
  865. }
  866. if (Carlist[playerid][Typ]==-1)
  867. {
  868. SendClientMessage(playerid, COLOR_GREY, "Du besitzt kein Auto!");
  869. return 1;
  870. }
  871. if (!IsPlayerConnected(sellplayerid))
  872. {
  873. SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist offline.");
  874. return 1;
  875. }
  876. bietetAn[sellplayerid][0]=playerid;
  877. bietetAn[sellplayerid][1]=preis;
  878. new playername[MAX_PLAYER_NAME];
  879. new sellplayername[MAX_PLAYER_NAME];
  880. GetPlayerName(playerid,playername,sizeof(playername));
  881. GetPlayerName(sellplayerid,sellplayername,sizeof(sellplayername));
  882. format(string,128,"Du bietest %s für $%i dein Auto an!",sellplayername,preis);
  883. SendClientMessage(playerid, COLOR_RED, string);
  884. SendClientMessage(playerid, COLOR_YELLOW, "Ziehe dein Angebot mit /cancelsell zurück.");
  885. format(string,128,"%s bietet dir sein/ihr Auto Marke %s für $%i an.",playername,Kaufliste[Carlist[playerid][Typ]][Name],preis);
  886. SendClientMessage(sellplayerid, COLOR_RED, string);
  887. SendClientMessage(sellplayerid, COLOR_YELLOW, "Du kannst das Angebot mit /acceptsell annehmen.");
  888. return 1;
  889. }
  890. else if (strcmp("/cancelsell", cmd, true, 10) == 0)
  891. {
  892. for (new i=0; i<MAX_PLAYERS; i++)
  893. {
  894. if (bietetAn[i][0]==playerid)
  895. {
  896. bietetAn[i]={-1,0};
  897. SendClientMessage(playerid, COLOR_RED, "Du hast dein Angebot zurückgezogen.");
  898. if (IsPlayerConnected(i))
  899. {
  900. new playername[MAX_PLAYER_NAME];
  901. GetPlayerName(playerid,playername,sizeof(playername));
  902. format(string,128,"%s hat sein Verkaufsangebot zurückgenommen.",playername);
  903. SendClientMessage(i, COLOR_GREEN, string);
  904. }
  905. return 1;
  906. }
  907. }
  908. SendClientMessage(playerid, COLOR_GREY, "Du bietest niemandem dein Auto an!");
  909. return 1;
  910. }
  911. else if (strcmp("/acceptsell", cmd, true, 10) == 0)
  912. {
  913. if (bietetAn[playerid][0]!=-1)
  914. {
  915. if (IsPlayerConnected(bietetAn[playerid][0]))
  916. {
  917. if (Carlist[playerid][Typ]==-1)
  918. {
  919. if (Carlist[bietetAn[playerid][0]][Typ]!=-1)
  920. {
  921. if (GetPlayerMoney(playerid)>=bietetAn[playerid][1])
  922. {
  923. new sellerid=bietetAn[playerid][0];
  924. new preis=bietetAn[playerid][1];
  925. bietetAn[playerid]={-1,0};
  926. GivePlayerMoney(playerid, - preis);
  927. GivePlayerMoney(sellerid, preis);
  928. Carlist[playerid][Typ]=Carlist[sellerid][Typ];
  929. Carlist[playerid][X]=Carlist[sellerid][X];
  930. Carlist[playerid][Y]=Carlist[sellerid][Y];
  931. Carlist[playerid][Z]=Carlist[sellerid][Z];
  932. Carlist[playerid][Rotation]=Carlist[sellerid][Rotation];
  933. Carlist[playerid][Status]=Carlist[sellerid][Status];
  934. Carlist[playerid][Lock]=Carlist[sellerid][Lock];
  935. Carlist[playerid][Carid]=Carlist[sellerid][Carid];
  936. Carlist[playerid][Farbe1]=Carlist[sellerid][Farbe1];
  937. Carlist[playerid][Farbe2]=Carlist[sellerid][Farbe2];
  938. Carlist[playerid][mod1]=Carlist[sellerid][mod1];
  939. Carlist[playerid][mod2]=Carlist[sellerid][mod2];
  940. Carlist[playerid][mod3]=Carlist[sellerid][mod3];
  941. Carlist[playerid][mod4]=Carlist[sellerid][mod4];
  942. Carlist[playerid][mod5]=Carlist[sellerid][mod5];
  943. Carlist[playerid][mod6]=Carlist[sellerid][mod6];
  944. Carlist[playerid][mod7]=Carlist[sellerid][mod7];
  945. Carlist[playerid][mod8]=Carlist[sellerid][mod8];
  946. Carlist[playerid][mod9]=Carlist[sellerid][mod9];
  947. Carlist[playerid][mod10]=Carlist[sellerid][mod10];
  948. Carlist[playerid][mod11]=Carlist[sellerid][mod11];
  949. Carlist[playerid][mod12]=Carlist[sellerid][mod12];
  950. Carlist[playerid][mod13]=Carlist[sellerid][mod13];
  951. Carlist[playerid][mod14]=Carlist[sellerid][mod14];
  952. Carlist[playerid][mod15]=Carlist[sellerid][mod15];
  953. Carlist[playerid][mod16]=Carlist[sellerid][mod16];
  954. Carlist[playerid][mod17]=Carlist[sellerid][mod17];
  955. Carlist[playerid][Paintjob]=Carlist[sellerid][Paintjob];
  956. Carlist[sellerid][Typ]=-1; Carlist[sellerid][X]=0.0; Carlist[sellerid][Y]=0.0; Carlist[sellerid][Z]=0.0;
  957. Carlist[sellerid][Rotation]=0.0; Carlist[sellerid][Status]=0; Carlist[sellerid][Lock]=0; Carlist[sellerid][Carid]=-1;
  958. Carlist[sellerid][Farbe1]=-1; Carlist[sellerid][Farbe2]=-1; Carlist[sellerid][mod1]=-1; Carlist[sellerid][mod2]=-1;
  959. Carlist[sellerid][mod3]=-1; Carlist[sellerid][mod4]=-1; Carlist[sellerid][mod5]=-1; Carlist[sellerid][mod6]=-1;
  960. Carlist[sellerid][mod7]=-1; Carlist[sellerid][mod8]=-1; Carlist[sellerid][mod9]=-1; Carlist[sellerid][mod10]=-1;
  961. Carlist[sellerid][mod11]=-1; Carlist[sellerid][mod12]=-1; Carlist[sellerid][mod13]=-1; Carlist[sellerid][mod14]=-1;
  962. Carlist[sellerid][mod15]=-1; Carlist[sellerid][mod16]=-1; Carlist[sellerid][mod17]=-1; Carlist[sellerid][Paintjob]=-1;
  963. if (Carlist[playerid][Status]==1)
  964. {
  965. SetVehicleParamsForAll(Carlist[playerid][Carid],0,Carlist[playerid][Lock]);
  966. SetVehicleParamsForPlayer(Carlist[playerid][Carid],playerid,0,0);
  967. }
  968. format(string,128,"Du hast dir erfolgreich für $%i ein/einen %s gekauft!",preis,Kaufliste[Carlist[playerid][Typ]][Name]);
  969. SendClientMessage(playerid, COLOR_RED, string);
  970. SendClientMessage(playerid, COLOR_GREEN, "Wenn du dein Fahrzeug zerstörst, gib /fixcar ein.");
  971. SendClientMessage(playerid, COLOR_GREEN, "Mit /carlock kannst du dein Fahrzeug für andere Leute freigeben oder abschließen.");
  972. SendClientMessage(playerid, COLOR_GREEN, "Mehr Befehle kannst du unter /carhelp sehen.");
  973. SendClientMessage(playerid, COLOR_YELLOW, "Dein Auto ist nun auf dich überschrieben! Viel Spaß beim Fahren!");
  974. new playername[MAX_PLAYER_NAME];
  975. GetPlayerName(playerid,playername,sizeof(playername));
  976. format(string,128,"Du hast erfolgreich dein Auto für $%i an %s verkauft!",preis,playername);
  977. SendClientMessage(sellerid, COLOR_RED, string);
  978. }
  979. else
  980. {
  981. format(string, 128, "Du hast nicht genug Geld für das Auto (benötigt: $%i)!", bietetAn[playerid][1]);
  982. SendClientMessage(playerid, COLOR_GREY, string);
  983. }
  984. }
  985. else
  986. {
  987. bietetAn[playerid]={-1,0};
  988. SendClientMessage(playerid, COLOR_GREY, "Der Verkäufer besitzt kein Auto mehr.");
  989. }
  990. }
  991. else
  992. {
  993. SendClientMessage(playerid, COLOR_GREY, "Du besitzt bereits ein Auto!");
  994. }
  995. }
  996. else
  997. {
  998. bietetAn[playerid]={-1,0};
  999. SendClientMessage(playerid, COLOR_GREY, "Der Verkäufer ist offline.");
  1000. }
  1001. }
  1002. else
  1003. {
  1004. SendClientMessage(playerid, COLOR_GREY, "Dir wird kein Auto angeboten.");
  1005. }
  1006. return 1;
  1007. }
  1008. #endif
  1009. return 0;
  1010. }
  1011.  
  1012. public OnPlayerStateChange(playerid, newstate, oldstate)
  1013. {
  1014. if(newstate == PLAYER_STATE_DRIVER)
  1015. {
  1016. new vehicleid = GetPlayerVehicleID(playerid);
  1017. new typ;
  1018. typ=IsAutohausCar(vehicleid);
  1019. if(typ!=-1)
  1020. {
  1021. new string[128];
  1022. TogglePlayerControllable(playerid,0);
  1023. Spectating[playerid][0]=typ;
  1024. SetVehicleParamsForAll(vehicleid,0,1);
  1025. SendClientMessage(playerid, COLOR_YELLOW, "~*~ Autohaus ~*~");
  1026. format(string,128,"Name: %s",Kaufliste[typ][Name]);
  1027. SendClientMessage(playerid, COLOR_YELLOW, string);
  1028. format(string,128,"Preis: $%i",Kaufliste[typ][Preis]);
  1029. SendClientMessage(playerid, COLOR_YELLOW, string);
  1030. format(string,128,"Reparaturkosten: $%i",Kaufliste[typ][Reparatur]);
  1031. SendClientMessage(playerid, COLOR_YELLOW, string);
  1032. SendClientMessage(playerid, COLOR_GREEN, "Dieses Fahrzeug ist zu verkaufen. Um es zu kaufen, benutze: /buycar");
  1033. SendClientMessage(playerid, COLOR_GREEN, "Um das Fahrzeug zu verlassen, benutze: /exitcar");
  1034. }
  1035. }
  1036. return 1;
  1037. }
  1038.  
  1039. public OnVehicleMod(playerid,vehicleid,componentid)
  1040. {
  1041. if (playerid!=GetPlayerFromCarlistCar(vehicleid)) {return 1;}
  1042. if(playerid!=-1)
  1043. {
  1044. new mod=GetModType(componentid);
  1045. switch (mod)
  1046. {
  1047. case 1: { Carlist[playerid][mod1]=componentid; }
  1048. case 2: { Carlist[playerid][mod2]=componentid; }
  1049. case 3: { Carlist[playerid][mod3]=componentid; }
  1050. case 4: { Carlist[playerid][mod4]=componentid; }
  1051. case 5: { Carlist[playerid][mod5]=componentid; }
  1052. case 6: { Carlist[playerid][mod6]=componentid; }
  1053. case 7: { Carlist[playerid][mod7]=componentid; }
  1054. case 8: { Carlist[playerid][mod8]=componentid; }
  1055. case 9: { Carlist[playerid][mod9]=componentid; }
  1056. case 10: { Carlist[playerid][mod10]=componentid; }
  1057. case 11: { Carlist[playerid][mod11]=componentid; }
  1058. case 12: { Carlist[playerid][mod12]=componentid; }
  1059. case 13: { Carlist[playerid][mod13]=componentid; }
  1060. case 14: { Carlist[playerid][mod14]=componentid; }
  1061. case 15: { Carlist[playerid][mod15]=componentid; }
  1062. case 16: { Carlist[playerid][mod16]=componentid; }
  1063. case 17: { Carlist[playerid][mod17]=componentid; }
  1064. default: { new string[128]; format(string,128,"Unbekannte Komponentenid: %i",componentid); print(string); }
  1065. }
  1066. }
  1067. return 1;
  1068. }
  1069.  
  1070. public OnVehiclePaintjob(playerid,vehicleid, paintjobid)
  1071. {
  1072. if (playerid!=GetPlayerFromCarlistCar(vehicleid)) {return 1;}
  1073. if(playerid!=-1)
  1074. {
  1075. Carlist[playerid][Paintjob]=paintjobid;
  1076. }
  1077. return 1;
  1078. }
  1079.  
  1080. public OnVehicleRespray(playerid,vehicleid, color1, color2)
  1081. {
  1082. if (playerid!=GetPlayerFromCarlistCar(vehicleid)) {return 1;}
  1083. if(playerid!=-1)
  1084. {
  1085. Carlist[playerid][Farbe1]=color1;
  1086. Carlist[playerid][Farbe2]=color2;
  1087. }
  1088. return 1;
  1089. }
  1090.  
  1091. public SetVehicleParamsForAll(carid,objective,doorslocked)
  1092. {
  1093. new i;
  1094. for(i=0; i<MAX_PLAYERS; i++) { SetVehicleParamsForPlayer(carid,i,objective,doorslocked); }
  1095. }
  1096.  
  1097. public CreateTunedCar(playerid)
  1098. {
  1099. if(IsPlayerConnected(playerid) && Carlist[playerid][Typ]!=-1)
  1100. {
  1101. new carid=CreateVehicle(Kaufliste[Carlist[playerid][Typ]][Modelid],Carlist[playerid][X],Carlist[playerid][Y],Carlist[playerid][Z],Carlist[playerid][Rotation],-1,-1,-1);
  1102. if(Carlist[playerid][Lock]==1)
  1103. {
  1104. SetVehicleParamsForAll(carid,0,1);
  1105. SetVehicleParamsForPlayer(carid,playerid,0,0);
  1106. }
  1107. if(Carlist[playerid][mod1]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod1]); }
  1108. if(Carlist[playerid][mod2]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod2]); }
  1109. if(Carlist[playerid][mod3]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod3]); }
  1110. if(Carlist[playerid][mod4]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod4]); }
  1111. if(Carlist[playerid][mod5]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod5]); }
  1112. if(Carlist[playerid][mod6]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod6]); }
  1113. if(Carlist[playerid][mod7]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod7]); }
  1114. if(Carlist[playerid][mod8]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod8]); }
  1115. if(Carlist[playerid][mod9]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod9]); }
  1116. if(Carlist[playerid][mod10]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod10]); }
  1117. if(Carlist[playerid][mod11]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod11]); }
  1118. if(Carlist[playerid][mod12]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod12]); }
  1119. if(Carlist[playerid][mod13]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod13]); }
  1120. if(Carlist[playerid][mod14]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod14]); }
  1121. if(Carlist[playerid][mod15]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod15]); }
  1122. if(Carlist[playerid][mod16]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod16]); }
  1123. if(Carlist[playerid][mod17]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod17]); }
  1124. if(Carlist[playerid][Paintjob]!=-1) { ChangeVehiclePaintjob(carid,Carlist[playerid][Paintjob]); }
  1125. if(Carlist[playerid][Farbe1]!=-1) { ChangeVehicleColor(carid,Carlist[playerid][Farbe1],Carlist[playerid][Farbe2]); }
  1126. return carid;
  1127. }
  1128. return -1;
  1129. }
  1130.  
  1131. public DelayDestroyCar(playerid)
  1132. {
  1133. SetVehicleParamsForAll(Carlist[playerid][Carid],0,0);
  1134. DestroyVehicle(Carlist[playerid][Carid]);
  1135. Carlist[playerid][Status]=0;
  1136. Carlist[playerid][Carid]=-1;
  1137. return 1;
  1138. }
  1139.  
  1140. public DelaySetVehicleParams(playerid)
  1141. {
  1142. if(!IsPlayerConnected(playerid)) { return 0; }
  1143. new i;
  1144. for(i=0; i<MAX_PLAYERS; i++)
  1145.  
  1146. {
  1147. if(Carlist[i][Carid]!=-1 && Carlist[i][Lock]==1) { SetVehicleParamsForPlayer(Carlist[i][Carid],playerid,0,1); }
  1148. if(Spectating[i][0]!=-1) { SetVehicleParamsForPlayer(Kaufliste[Spectating[i][0]][Carid],playerid,0,1); }
  1149. }
  1150. return 1;
  1151. }
  1152.  
  1153. public ResetAutohausSpawns()
  1154. {
  1155. new i;
  1156. for(i=0; i<sizeof(Kaufliste); i++) { SetVehicleToRespawn(Kaufliste[i][Carid]); }
  1157. }
Advertisement
Add Comment
Please, Sign In to add comment