Advertisement
Guest User

BFX Simple Vehicle Script 1.2.2

a guest
Feb 3rd, 2012
638
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 40.77 KB | None | 0 0
  1. /* Simple Vehicle System 1.2 by BlackFoX_UD_
  2.  
  3. (c) 2012 by BlackFoX_UD_
  4.  
  5. Released under Creative Commons
  6.  
  7. --- Credits :
  8.             > DJson 1.6.2 > Draco Blue
  9.             > SA-MP Functions > Sa-mp Team
  10.             > Diese Methode & Skript : BlackFoX_UD_
  11.  
  12. - > Die Mitwirkenden dürfen nicht gelöscht werden < -*/
  13.  
  14. /* ** In diesem Skript muss nichts extra angelegt werden ** */
  15.  
  16. #include <a_samp>
  17. #include <djson>
  18. #define DIAG_KAUFEN 11
  19. #define VERKAUF_DIAG 12
  20. #define MAX_AUTOS 100
  21. #define COLOR_WARN 0xB72C00FF
  22. #define COLOR_MESS 0xB7BC21FF
  23. #define COLOR_GRUEN 0x007E32F6
  24. #define F_DATEI "autos.txt"
  25.  
  26. // Neon Typen
  27. #define NEON_BLUE 18648
  28. #define NEON_RED 18647
  29. #define NEON_GREEN 18649
  30. #define NEON_WHITE 18652
  31. #define NEON_PINK 18651
  32. #define NEON_YELLOW 18650
  33. #define NEON_PRICE 200
  34. #define OFF_X -0.8
  35. #define OFF_X2 0.8
  36. #define OFF_Z -0.70
  37. #define NEON_DIAG 13
  38. #define NEON_STRING "Blau\nRot\nGruen\nWeiss\nPink\nGelb\nNeons entfernen"
  39.  
  40. /* Show Fahrzeuge , diese dienen nur zur besichtigung und zum Kauf , das heißt, es wird
  41.    an einem Ausgangspunkt ein neues Auto erstellt... */
  42. enum fstruk{model,Float:fxa,Float:fya,Float:fza,Float:faa,farb1,farb2,preis,v_id,v_name[70],Text3D:lbl,xlichter,xreifen,xteile,xtueren,
  43.             sf_mod0,sf_mod1,sf_mod2,sf_mod3,sf_mod4,sf_mod5,sf_mod6,sf_mod7,sf_mod8,sf_mod9,sf_mod10,sf_mod11,sf_mod12,sf_mod13};
  44. new const ShowCars[][fstruk] = {
  45. // Los Santos , Golfplatz Autohaus
  46. {496,561.27502441406,-1289.6413574219,17.03596496582,0.0,-1,-1,10000,-1,"Blista Compact",Text3D:-1,0,0,0,0},
  47. {529,553.16064453125,-1289.4180908203,16.986125946045,0.0,-1,-1,4000,-1,"Willard",Text3D:-1,0,0,0,0},
  48. {412,548.64807128906,-1289.2490234375,17.198238372803,0.0,-1,-1,7000,-1,"Voodoo",Text3D:-1,0,0,0,0},
  49. {475,543.83178710938,-1289.5731201172,17.14218711853,227.00598144531,-1,-1,15000,-1,"Sabre",Text3D:-1,0,0,0,0},
  50. {411,540.71215820313,-1274.9818115234,17.042186737061,225.02099609375,-1,-1,20000,-1,"Infernus",Text3D:-1,0,0,0,0},
  51. // Los Santos , Autohändler (Jefferson Hotel)
  52. {489,2132.9795,-1144.6666,24.4788,58.3774,-1,-1,35000,-1,"Rancher",Text3D:-1,0,0,0,0},
  53. {422,2133.6545,-1135.9943,25.3423,55.3919,-1,-1,15000,-1,"Bobcat",Text3D:-1,0,0,0,0},
  54. {400,2133.2439,-1128.6438,25.2889,62.9068,-1,-1,17500,-1,"Landstalker",Text3D:-1,0,0,0,0},
  55. {466,2121.0027,-1124.9131,25.1069,316.7444,-1,-1,4500,-1,"Glendale",Text3D:-1,0,0,0,0},
  56. {475,2120.3127,-1137.4817,24.8203,323.4742,-1,-1,15000,-1,"Sabre",Text3D:-1,0,0,0,0},
  57. {415,2122.9878,-1145.9969,24.2833,319.0516,-1,-1,18900,-1,"Cheetah",Text3D:-1,0,0,0,0},
  58. {562,2127.0681,-1141.8029,24.7228,196.4488,-1,-1,24000,-1,"Elegy",Text3D:-1,0,0,0,0},
  59. // San Fierro Autohaus (Grotti)
  60. {461,-1667.8892,1206.6256,20.7870,293.8904,-1,-1,9500,-1,"PCJ-600",Text3D:-1,0,0,0,0},
  61. {522,-1654.7445,1209.0161,20.7866,355.8456,-1,-1,12500,-1,"NRG-500",Text3D:-1,0,0,0,0},
  62. {429,-1663.1536,1221.0186,20.7858,248.4099,-1,-1,22555,-1,"Banshee",Text3D:-1,0,0,0,0},
  63. {559,-1665.4897,1222.3932,13.3826,279.1780,-1,-1,23000,-1,"Jester",Text3D:-1,0,0,0,0,1158,1067,1069,0,1010,1066,1079,0,0,1160,1159,0,0},
  64. {447,-1658.3732,1213.2249,13.3699,37.9135,-1,-1,30000,-1,"ZR-350",Text3D:-1,0,0,0,0},
  65. {451,-1657.6660,1213.6195,6.9295,282.6953,-1,-1,34000,-1,"Turismo",Text3D:-1,0,0,0,0}
  66. };
  67. // model,x,y,z,a,farbe1,farbe2,Preis,id = immer -1 , Fahrzeug Name, 3D Label = immer -1, lichter Status, reifen Status, angebaute Teile Status, Tueren Status, Komponenten 0 - 13 [...]
  68.  
  69. // Ausgänge (Platz für IsPlayerInRangeOfPoint)
  70. new const Float:show_ausgang_range[][] = {
  71. {550.8542,-1278.8704,17.2482},
  72. {2127.7141,-1138.2197,25.3854},
  73. {-1662.8794,1212.7354,7.2500}};
  74.  
  75. // Spawns ( Je nach Platz daher Platz1 = Spawn1 usw. ^^ )
  76. new const Float:Fahrzeug_Spawn[][] = {
  77. {559.0435,-1263.5776,17.2422,20.0072},
  78. {2119.0046,-1114.6011,24.8807,73.8906},
  79. {-1644.1483,1216.0748,6.7635,224.2379}};
  80.  
  81. /* Spieler Fahrzeug Daten zum ändern & Speichern einzelner Spieler Fahrzeuge */
  82. enum spieler_auto
  83. {
  84.     vmodel,
  85.     Float:v_xc,
  86.     Float:v_yc,
  87.     Float:v_zc,
  88.     Float:v_ac,
  89.     vfarbe1,
  90.     vfarbe2,
  91.     vmod0,vmod1,vmod2,vmod3,vmod4,vmod5,vmod6,vmod7,vmod8,vmod9,vmod10,vmod11,vmod12,vmod13,
  92.     vkey[MAX_PLAYER_NAME],
  93.     id_x,
  94.     paintjob,
  95.     preisx,
  96.     // Position
  97.     Float:n_xx,
  98.     Float:n_yy,
  99.     Float:n_zz,
  100.     Float:n_aa,
  101.     // aktuellen Status Variablen
  102.     lichter,
  103.     reifen,
  104.     teile,
  105.     tueren,
  106.     frozen_lichter, // Standardwerte beim kauf von Auto, Praefix frozen_
  107.     frozen_reifen,
  108.     frozen_teile,
  109.     frozen_tueren,
  110.     cclocked, // verschlossen oder nicht ?
  111.     neon_type,
  112.     neon_obj0,
  113.     neon_obj1,
  114.     bool:streamed_neon
  115.    
  116. }
  117. new PlayerAuto[MAX_AUTOS][spieler_auto];
  118.  
  119. /* Für den Verkauf */
  120. enum verkaufx
  121. {
  122.     autoid,
  123.     verkaufspartner,
  124.     preiss,
  125.     current_unlock
  126. }
  127. new VerkaufDat[MAX_PLAYERS][verkaufx];
  128.  
  129. public OnFilterScriptInit()
  130. {
  131.     djson_GameModeInit();
  132.     new tform[128];
  133.     print("\n--------------------------------------");
  134.     print(" Simple Vehicle System 1.x By BlackFoX_UD_");
  135.     print("--------------------------------------\n");
  136.     for(new i = 0;i<sizeof(ShowCars);i++)
  137.     {
  138.         format(tform,sizeof tform,"%s\nPreis : %d$",ShowCars[i][v_name],ShowCars[i][preis]);
  139.         ShowCars[i][lbl] = Create3DTextLabel(tform,COLOR_MESS,0.0,0.0,0.75,7.0,0,0);
  140.         ShowCars[i][v_id] = CreateVehicle(ShowCars[i][model],ShowCars[i][fxa],ShowCars[i][fya],ShowCars[i][fza],ShowCars[i][faa],ShowCars[i][farb1],ShowCars[i][farb2],1200000);
  141.         UpdateVehicleDamageStatus(ShowCars[i][v_id],ShowCars[i][xteile],ShowCars[i][xtueren],ShowCars[i][xlichter],ShowCars[i][xreifen]);
  142.         Attach3DTextLabelToVehicle(ShowCars[i][lbl],ShowCars[i][v_id],0.0,0.0,0.75);
  143.     }
  144.     for(new i = 1;i<MAX_AUTOS;i++)
  145.     {
  146.             format(tform,sizeof tform,"auto_%d",i);
  147.             if(djIsSet(F_DATEI,tform))
  148.             {
  149.                 format(tform,sizeof tform,"auto_%d/model",i);
  150.                 PlayerAuto[i][vmodel] = djInt(F_DATEI,tform,false);
  151.                 format(tform,sizeof tform,"auto_%d/x",i);
  152.                 PlayerAuto[i][v_xc] = djFloat(F_DATEI,tform,false);
  153.                 format(tform,sizeof tform,"auto_%d/y",i);
  154.                 PlayerAuto[i][v_yc] = djFloat(F_DATEI,tform,false);
  155.                 format(tform,sizeof tform,"auto_%d/z",i);
  156.                 PlayerAuto[i][v_zc] = djFloat(F_DATEI,tform,false);
  157.                 format(tform,sizeof tform,"auto_%d/a",i);
  158.                 PlayerAuto[i][v_ac] = djFloat(F_DATEI,tform,false);
  159.                 PlayerAuto[i][n_xx] = PlayerAuto[i][v_xc];
  160.                 PlayerAuto[i][n_yy] = PlayerAuto[i][v_yc];
  161.                 PlayerAuto[i][n_zz] = PlayerAuto[i][v_zc];
  162.                 PlayerAuto[i][n_aa] = PlayerAuto[i][v_ac];
  163.                
  164.                 format(tform,sizeof tform,"auto_%d/mod0",i);
  165.                 PlayerAuto[i][vmod0] = djInt(F_DATEI,tform,false);
  166.                 format(tform,sizeof tform,"auto_%d/mod1",i);
  167.                 PlayerAuto[i][vmod1] = djInt(F_DATEI,tform,false);
  168.                 format(tform,sizeof tform,"auto_%d/mod2",i);
  169.                 PlayerAuto[i][vmod2] = djInt(F_DATEI,tform,false);
  170.                 format(tform,sizeof tform,"auto_%d/mod3",i);
  171.                 PlayerAuto[i][vmod3] = djInt(F_DATEI,tform,false);
  172.                 format(tform,sizeof tform,"auto_%d/mod4",i);
  173.                 PlayerAuto[i][vmod4] = djInt(F_DATEI,tform,false);
  174.                 format(tform,sizeof tform,"auto_%d/mod5",i);
  175.                 PlayerAuto[i][vmod5] = djInt(F_DATEI,tform,false);
  176.                 format(tform,sizeof tform,"auto_%d/mod6",i);
  177.                 PlayerAuto[i][vmod6] = djInt(F_DATEI,tform,false);
  178.                 format(tform,sizeof tform,"auto_%d/mod7",i);
  179.                 PlayerAuto[i][vmod7] = djInt(F_DATEI,tform,false);
  180.                 format(tform,sizeof tform,"auto_%d/mod8",i);
  181.                 PlayerAuto[i][vmod8] = djInt(F_DATEI,tform,false);
  182.                 format(tform,sizeof tform,"auto_%d/mod9",i);
  183.                 PlayerAuto[i][vmod9] = djInt(F_DATEI,tform,false);
  184.                 format(tform,sizeof tform,"auto_%d/mod10",i);
  185.                 PlayerAuto[i][vmod10] = djInt(F_DATEI,tform,false);
  186.                 format(tform,sizeof tform,"auto_%d/mod11",i);
  187.                 PlayerAuto[i][vmod11] = djInt(F_DATEI,tform,false);
  188.                 format(tform,sizeof tform,"auto_%d/mod12",i);
  189.                 PlayerAuto[i][vmod12] = djInt(F_DATEI,tform,false);
  190.                 format(tform,sizeof tform,"auto_%d/mod13",i);
  191.                 PlayerAuto[i][vmod13] = djInt(F_DATEI,tform,false);
  192.  
  193.                 format(tform,sizeof tform,"auto_%d/farbe1",i);
  194.                 PlayerAuto[i][vfarbe1] = djInt(F_DATEI,tform,false);
  195.                 format(tform,sizeof tform,"auto_%d/farbe2",i);
  196.                 PlayerAuto[i][vfarbe2] = djInt(F_DATEI,tform,false);
  197.                 format(tform,sizeof tform,"auto_%d/paintjob",i);
  198.                 PlayerAuto[i][paintjob] = djInt(F_DATEI,tform,false);
  199.                
  200.                 // States
  201.                 format(tform,sizeof tform,"auto_%d/lichter",i);
  202.                 PlayerAuto[i][lichter] = djInt(F_DATEI,tform,false);
  203.                 format(tform,sizeof tform,"auto_%d/reifen",i);
  204.                 PlayerAuto[i][reifen] = djInt(F_DATEI,tform,false);
  205.                 format(tform,sizeof tform,"auto_%d/teile",i);
  206.                 PlayerAuto[i][teile] = djInt(F_DATEI,tform,false);
  207.                 format(tform,sizeof tform,"auto_%d/tueren",i);
  208.                 PlayerAuto[i][tueren] = djInt(F_DATEI,tform,false);
  209.                
  210.                 format(tform,sizeof tform,"auto_%d/flichter",i);
  211.                 PlayerAuto[i][frozen_lichter] = djInt(F_DATEI,tform,false);
  212.                 format(tform,sizeof tform,"auto_%d/freifen",i);
  213.                 PlayerAuto[i][frozen_reifen] = djInt(F_DATEI,tform,false);
  214.                 format(tform,sizeof tform,"auto_%d/fteile",i);
  215.                 PlayerAuto[i][frozen_teile] = djInt(F_DATEI,tform,false);
  216.                 format(tform,sizeof tform,"auto_%d/ftueren",i);
  217.                 PlayerAuto[i][frozen_tueren] = djInt(F_DATEI,tform,false);
  218.                
  219.                 format(tform,sizeof tform,"auto_%d/lock",i);
  220.                 PlayerAuto[i][cclocked] = djInt(F_DATEI,tform,false);
  221.                
  222.                 format(tform,sizeof tform,"auto_%d/neonT",i);
  223.                 PlayerAuto[i][neon_type] = djInt(F_DATEI,tform,false);
  224.                
  225.                 PlayerAuto[i][id_x] = CreateVehicle(PlayerAuto[i][vmodel],PlayerAuto[i][v_xc],PlayerAuto[i][v_yc],PlayerAuto[i][v_zc],PlayerAuto[i][v_ac],PlayerAuto[i][vfarbe1],PlayerAuto[i][vfarbe2],-1);
  226.                 FahrzeugTunen(PlayerAuto[i][id_x]);
  227.                 format(tform,sizeof tform,"auto_%d/key",i);
  228.                 strmid(PlayerAuto[i][vkey],dj(F_DATEI,tform,false),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
  229.                 printf("Fahrzeug : %d geladen und gefunden. [BESITZER : %s]",i,dj(F_DATEI,tform,false));
  230.             }
  231.     }
  232.     return 1;
  233. }
  234. public OnFilterScriptExit()
  235. {
  236.     djson_GameModeExit();
  237.     return 1;
  238. }
  239. public OnPlayerRequestClass(playerid, classid)
  240. {
  241.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  242.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  243.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  244.     return 1;
  245. }
  246. stock FahrzeugTunen(vehicle,playerid = -1)
  247. {
  248.     for(new j = 1;j<MAX_AUTOS;j++)
  249.     {
  250.         if(PlayerAuto[j][id_x] == vehicle)
  251.         {
  252.             if(PlayerAuto[j][cclocked] && playerid > -1)SetVehicleParamsForPlayer(vehicle,playerid,0,1);
  253.             if(PlayerAuto[j][vmod0])AddVehicleComponent(vehicle,PlayerAuto[j][vmod0]);
  254.             if(PlayerAuto[j][vmod1])AddVehicleComponent(vehicle,PlayerAuto[j][vmod1]);
  255.             if(PlayerAuto[j][vmod2])AddVehicleComponent(vehicle,PlayerAuto[j][vmod2]);
  256.             if(PlayerAuto[j][vmod3])AddVehicleComponent(vehicle,PlayerAuto[j][vmod3]);
  257.             if(PlayerAuto[j][vmod4])AddVehicleComponent(vehicle,PlayerAuto[j][vmod4]);
  258.             if(PlayerAuto[j][vmod5])AddVehicleComponent(vehicle,PlayerAuto[j][vmod5]);
  259.             if(PlayerAuto[j][vmod6])AddVehicleComponent(vehicle,PlayerAuto[j][vmod6]);
  260.             if(PlayerAuto[j][vmod7])AddVehicleComponent(vehicle,PlayerAuto[j][vmod7]);
  261.             if(PlayerAuto[j][vmod8])AddVehicleComponent(vehicle,PlayerAuto[j][vmod8]);
  262.             if(PlayerAuto[j][vmod9])AddVehicleComponent(vehicle,PlayerAuto[j][vmod9]);
  263.             if(PlayerAuto[j][vmod10])AddVehicleComponent(vehicle,PlayerAuto[j][vmod10]);
  264.             if(PlayerAuto[j][vmod11])AddVehicleComponent(vehicle,PlayerAuto[j][vmod11]);
  265.             if(PlayerAuto[j][vmod12])AddVehicleComponent(vehicle,PlayerAuto[j][vmod12]);
  266.             if(PlayerAuto[j][vmod13])AddVehicleComponent(vehicle,PlayerAuto[j][vmod13]);
  267.             if(PlayerAuto[j][neon_type] > 0 && !PlayerAuto[j][streamed_neon])
  268.             {
  269.                 PlayerAuto[j][neon_obj0] = CreateObject(PlayerAuto[j][neon_type],0,0,0,0,0,0);
  270.                 PlayerAuto[j][neon_obj1] = CreateObject(PlayerAuto[j][neon_type],0,0,0,0,0,0);
  271.                 AttachObjectToVehicle(PlayerAuto[j][neon_obj0], PlayerAuto[j][id_x], OFF_X, 0.0, OFF_Z, 0.0, 0.0, 0.0);
  272.                 AttachObjectToVehicle(PlayerAuto[j][neon_obj1], PlayerAuto[j][id_x], OFF_X2, 0.0, OFF_Z, 0.0, 0.0, 0.0);
  273.                 PlayerAuto[j][streamed_neon] = true;
  274.             }
  275.             ChangeVehiclePaintjob(vehicle,PlayerAuto[j][paintjob]);
  276.             ChangeVehicleColor(vehicle,PlayerAuto[j][vfarbe1],PlayerAuto[j][vfarbe2]);
  277.             UpdateVehicleDamageStatus(vehicle,PlayerAuto[j][teile],PlayerAuto[j][tueren],PlayerAuto[j][lichter],PlayerAuto[j][reifen]);
  278.             return 1;
  279.         }
  280.     }
  281.     return 1;
  282. }
  283. public OnPlayerConnect(playerid)
  284. {
  285.     VerkaufDat[playerid][verkaufspartner] = -1;
  286.     VerkaufDat[playerid][autoid] = -1;
  287.     VerkaufDat[playerid][preiss] = -1;
  288.     VerkaufDat[playerid][current_unlock] = -1;
  289.     return 1;
  290. }
  291. public OnPlayerDisconnect(playerid,reason)
  292. {
  293.     if(VerkaufDat[playerid][verkaufspartner] > -1)
  294.     {
  295.         TogglePlayerControllable(VerkaufDat[playerid][verkaufspartner],1);
  296.         ShowPlayerDialog(playerid,-1,0," "," "," "," ");
  297.     }
  298.     VerkaufDat[playerid][verkaufspartner] = -1;
  299.     VerkaufDat[playerid][autoid] = -1;
  300.     VerkaufDat[playerid][preiss] = -1;
  301.     VerkaufDat[playerid][current_unlock] = -1;
  302.     return 1;
  303. }
  304. public OnPlayerCommandText(playerid, cmdtext[])
  305. {
  306.     new tmp[128],cmd[128],idx,str[128];
  307.     new Float:pos[3];
  308.     cmd = strtok(cmdtext, idx);
  309.     if (strcmp(cmd, "/neonkaufen", true) ==0 )
  310.     {
  311.         ShowPlayerDialog(playerid,NEON_DIAG,DIALOG_STYLE_LIST,"Neon Shop",NEON_STRING,"Kaufen","Abbrechen");
  312.         return 1;
  313.     }
  314.     if (strcmp(cmd, "/autoverkaufen", true) ==0 )
  315.     {
  316.         if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,COLOR_WARN,"Du musst im Fahrzeug sitzen!");
  317.         for(new i = 1;i<MAX_AUTOS;i++)
  318.         {
  319.             if(PlayerAuto[i][id_x] == GetPlayerVehicleID(playerid))
  320.             {
  321.                 if(strcmp(PlayerAuto[i][vkey],Spielername(playerid),false))return SendClientMessage(playerid,COLOR_WARN,"Dieses Auto gehört nicht dir!");
  322.                 format(str,sizeof str,"auto_%d",i);
  323.                 djUnset(F_DATEI,str);
  324.                 fremove(str);
  325.                 PlayerAuto[i][vmodel] = 0;
  326.                 GivePlayerMoney(playerid,PlayerAuto[i][preisx]);
  327.                 PlayerAuto[i][vkey] = '\0';
  328.                 PlayerAuto[i][v_xc] = (0.0);
  329.                 PlayerAuto[i][v_yc] = (0.0);
  330.                 PlayerAuto[i][v_zc] = (0.0);
  331.                 PlayerAuto[i][v_ac] = (0.0);
  332.                 PlayerAuto[i][vmod0] = (0);
  333.                 PlayerAuto[i][vmod1] = (0);
  334.                 PlayerAuto[i][vmod2] = (0);
  335.                 PlayerAuto[i][vmod3] = (0);
  336.                 PlayerAuto[i][vmod4] = (0);
  337.                 PlayerAuto[i][vmod5] = (0);
  338.                 PlayerAuto[i][vmod6] = (0);
  339.                 PlayerAuto[i][vmod7] = (0);
  340.                 PlayerAuto[i][vmod8] = (0);
  341.                 PlayerAuto[i][vmod9] = (0);
  342.                 PlayerAuto[i][vmod10] = (0);
  343.                 PlayerAuto[i][vmod11] = (0);
  344.                 PlayerAuto[i][vmod12] = (0);
  345.                 PlayerAuto[i][vmod13] = (0);
  346.                 DestroyVehicle(PlayerAuto[i][id_x]);
  347.                 PlayerAuto[i][id_x] = (0);
  348.                 PlayerAuto[i][vfarbe1] = (0);
  349.                 PlayerAuto[i][vfarbe2] = (0);
  350.                 PlayerAuto[i][paintjob] = (0);
  351.                 PlayerAuto[i][teile] = 0;
  352.                 PlayerAuto[i][tueren] = 0;
  353.                 PlayerAuto[i][lichter] = 0;
  354.                 PlayerAuto[i][reifen] = 0;
  355.                 PlayerAuto[i][frozen_teile] = 0;
  356.                 PlayerAuto[i][frozen_tueren] = 0;
  357.                 PlayerAuto[i][frozen_lichter] = 0;
  358.                 PlayerAuto[i][frozen_reifen] = 0;
  359.                 PlayerAuto[i][neon_type] = 0;
  360.                 DestroyObject(PlayerAuto[i][neon_obj0]);
  361.                 DestroyObject(PlayerAuto[i][neon_obj1]);
  362.                 PlayerAuto[i][neon_obj0] = -1;
  363.                 PlayerAuto[i][neon_obj1] = -1;
  364.                 PlayerAuto[i][streamed_neon] = false;
  365.                 return 1;
  366.             }
  367.         }
  368.         return 1;
  369.     }
  370.     if (strcmp(cmd, "/parken", true) ==0 )
  371.     {
  372.         if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,COLOR_WARN,"Du musst im Fahrzeug sitzen!");
  373.         for(new i = 1;i<MAX_AUTOS;i++)
  374.         {
  375.             if(PlayerAuto[i][id_x] == GetPlayerVehicleID(playerid))
  376.             {
  377.                 if(strcmp(PlayerAuto[i][vkey],Spielername(playerid),false))return SendClientMessage(playerid,COLOR_WARN,"Dieses Auto gehört nicht dir!");
  378.                 GetVehiclePos(GetPlayerVehicleID(playerid),PlayerAuto[i][n_xx],PlayerAuto[i][n_yy],PlayerAuto[i][n_zz]);
  379.                 GetVehicleZAngle(GetPlayerVehicleID(playerid),PlayerAuto[i][n_aa]);
  380.                 SendClientMessage(playerid,COLOR_GRUEN,"Auto wurde nun hier abgestellt.");
  381.                 format(str,sizeof str,"auto_%d/x",i);
  382.                 djSetFloat(F_DATEI,str,PlayerAuto[i][n_xx]);
  383.                 format(str,sizeof str,"auto_%d/y",i);
  384.                 djSetFloat(F_DATEI,str,PlayerAuto[i][n_yy]);
  385.                 format(str,sizeof str,"auto_%d/z",i);
  386.                 djSetFloat(F_DATEI,str,PlayerAuto[i][n_zz]);
  387.                 format(str,sizeof str,"auto_%d/a",i);
  388.                 djSetFloat(F_DATEI,str,PlayerAuto[i][n_aa]);
  389.                 return 1;
  390.             }
  391.         }
  392.         return 1;
  393.     }
  394.     if (strcmp(cmd, "/verkaufan", true) ==0 )
  395.     {
  396.         if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,COLOR_WARN,"Du musst im Fahrzeug sitzen!");
  397.         tmp = strtok(cmdtext,idx);
  398.         if(!tmp[0])return SendClientMessage(playerid,COLOR_WARN,"Info : /verkaufan [spielerid] [preis]");
  399.         new userx = strval(tmp);
  400.         if(userx == playerid)return SendClientMessage(playerid,COLOR_WARN,"Du kannst dir selber das Auto nicht verkaufen!");
  401.         if(!IsPlayerConnected(userx))return SendClientMessage(playerid,COLOR_WARN,"Dieser Spieler ist nicht Aktiv!");
  402.         if(VerkaufDat[userx][verkaufspartner] > -1)return SendClientMessage(playerid,COLOR_WARN,"Der Spieler befasst sich gerade mit einem Angebot!");
  403.         GetPlayerPos(userx,pos[0],pos[1],pos[2]);
  404.         if(!IsPlayerInRangeOfPoint(playerid,5.0,pos[0],pos[1],pos[2]))return SendClientMessage(playerid,COLOR_WARN,"Du bist zu weit weg vom Spieler!");
  405.         tmp = strtok(cmdtext,idx);
  406.         if(!tmp[0])return SendClientMessage(playerid,COLOR_WARN,"Info : /verkaufan [spielerid] [preis]");
  407.         new prs = strval(tmp);
  408.         if(GetPlayerMoney(userx) < prs)return SendClientMessage(playerid,COLOR_WARN,"Der Spieler hat so viel Geld nicht!");
  409.         VerkaufDat[userx][verkaufspartner] = playerid;
  410.         VerkaufDat[playerid][verkaufspartner] = userx;
  411.         VerkaufDat[userx][preiss] = prs;
  412.         for(new i = 1;i<MAX_AUTOS;i++)
  413.         {
  414.             if(PlayerAuto[i][id_x] == GetPlayerVehicleID(playerid))
  415.             {
  416.                 if(strcmp(PlayerAuto[i][vkey],Spielername(playerid),false))return SendClientMessage(playerid,COLOR_WARN,"Dieses Auto gehört nicht dir!");
  417.                 VerkaufDat[userx][autoid] = i;
  418.                 TogglePlayerControllable(playerid,0);
  419.                 GameTextForPlayer(playerid,"~r~Warte auf Antwort...",2000,3);
  420.                 format(str,sizeof str,"Fahrzeug Verkaufs-Angebot von %s\nPreis : %d$",Spielername(playerid),prs);
  421.                 ShowPlayerDialog(userx,VERKAUF_DIAG,0,"Fahrzeug Kauf Angebot...",str,"Annehmen","Ablehnen");
  422.                 return 1;
  423.             }
  424.         }
  425.         return 1;
  426.     }
  427.     if (strcmp(cmd, "/lockit", true) ==0 )
  428.     {
  429.         if(VerkaufDat[playerid][current_unlock] == -1)return 1;
  430.         for(new i = 1;i<MAX_AUTOS;i++)
  431.         {
  432.             if(PlayerAuto[i][id_x] == VerkaufDat[playerid][current_unlock])
  433.             {
  434.                 if(strcmp(PlayerAuto[i][vkey],Spielername(playerid),false))return SendClientMessage(playerid,COLOR_WARN,"Dieses Auto gehört nicht dir!");
  435.                 if(PlayerAuto[i][cclocked])
  436.                 {
  437.                     PlayerAuto[i][cclocked] = 0;
  438.                     SetVehicleParamsForPlayer(PlayerAuto[i][id_x],playerid,0,0);
  439.                     SendClientMessage(playerid,COLOR_GRUEN,"-> Das Auto wurde entriegelt.");
  440.                 }
  441.                 else
  442.                 {
  443.                     PlayerAuto[i][cclocked] = 1;
  444.                     SetVehicleParamsForPlayer(PlayerAuto[i][id_x],playerid,0,1);
  445.                     SendClientMessage(playerid,COLOR_GRUEN,"-> Das Auto wurde abgeschlossen.");
  446.                 }
  447.                 format(str,sizeof str,"auto_%d/lock",i);
  448.                 djSetInt(F_DATEI,str,PlayerAuto[i][cclocked]);
  449.                 break;
  450.             }
  451.         }
  452.         return 1;
  453.     }
  454.     return 0;
  455. }
  456.  
  457. public OnPlayerStateChange(playerid, newstate, oldstate)
  458. {
  459.     new form[128];
  460.     if(newstate == 2)
  461.     {
  462.         for(new j = 0;j<sizeof(ShowCars);j++)
  463.         {
  464.             if(ShowCars[j][v_id] == GetPlayerVehicleID(playerid))
  465.             {
  466.                 new sid = j;
  467.                 format(form,sizeof form,"Fahrzeug : %s\nFahrzeug Kosten : %d$",ShowCars[sid][v_name],ShowCars[sid][preis]);
  468.                 ShowPlayerDialog(playerid,DIAG_KAUFEN,0,"Fahrzeug Kauf",form,"Kaufen","Abbrechen");
  469.                 TogglePlayerControllable(playerid,0);
  470.                 return 1;
  471.             }
  472.         }
  473.         for(new j = 1;j<MAX_AUTOS;j++)
  474.         {
  475.             if(PlayerAuto[j][id_x] == GetPlayerVehicleID(playerid))
  476.             {
  477.                 if(strcmp(PlayerAuto[j][vkey],Spielername(playerid),false))
  478.                 {
  479.                     SendClientMessage(playerid,COLOR_WARN,"Du bist nicht der Besitzer dieses Autos!");
  480.                     RemovePlayerFromVehicle(playerid);
  481.                 }
  482.                 return 1;
  483.             }
  484.         }
  485.     }
  486.     return 1;
  487. }
  488. stock Spielername(playerid)
  489. {
  490.     new xn[MAX_PLAYER_NAME];
  491.     GetPlayerName(playerid,xn,sizeof xn);
  492.     return xn;
  493. }
  494. IsPlayerVehicle(vehicleid)
  495. {
  496.     new getval_n = -1;
  497.     for(new j = 1;j<MAX_AUTOS;j++)
  498.     {
  499.         if(PlayerAuto[j][id_x] == vehicleid)
  500.         {
  501.             getval_n = j;
  502.             break;
  503.         }
  504.     }
  505.     return getval_n;
  506. }
  507. public OnVehicleMod(playerid, vehicleid, componentid)
  508. {
  509.     new tform[128];
  510.     for(new j = 1;j<MAX_AUTOS;j++)
  511.     {
  512.         if(PlayerAuto[j][id_x] == vehicleid)
  513.         {
  514.             new type = GetVehicleComponentType(componentid);
  515.             switch(type)
  516.             {
  517.                 case 0:
  518.                 {
  519.                     format(tform,sizeof tform,"auto_%d/mod0",j);
  520.                     PlayerAuto[j][vmod0] = componentid;
  521.                 }
  522.                 case 1:
  523.                 {
  524.                     format(tform,sizeof tform,"auto_%d/mod1",j);
  525.                     PlayerAuto[j][vmod1] = componentid;
  526.                 }
  527.                 case 2:
  528.                 {
  529.                     format(tform,sizeof tform,"auto_%d/mod2",j);
  530.                     PlayerAuto[j][vmod2] = componentid;
  531.                 }
  532.                 case 3:
  533.                 {
  534.                     format(tform,sizeof tform,"auto_%d/mod3",j);
  535.                     PlayerAuto[j][vmod3] = componentid;
  536.                 }
  537.                 case 4:
  538.                 {
  539.                     format(tform,sizeof tform,"auto_%d/mod4",j);
  540.                     PlayerAuto[j][vmod4] = componentid;
  541.                 }
  542.                 case 5:
  543.                 {
  544.                     format(tform,sizeof tform,"auto_%d/mod5",j);
  545.                     PlayerAuto[j][vmod5] = componentid;
  546.                 }
  547.                 case 6:
  548.                 {
  549.                     format(tform,sizeof tform,"auto_%d/mod6",j);
  550.                     PlayerAuto[j][vmod6] = componentid;
  551.                 }
  552.                 case 7:
  553.                 {
  554.                     format(tform,sizeof tform,"auto_%d/mod7",j);
  555.                     PlayerAuto[j][vmod7] = componentid;
  556.                 }
  557.                 case 8:
  558.                 {
  559.                     format(tform,sizeof tform,"auto_%d/mod8",j);
  560.                     PlayerAuto[j][vmod8] = componentid;
  561.                 }
  562.                 case 9:
  563.                 {
  564.                     format(tform,sizeof tform,"auto_%d/mod9",j);
  565.                     PlayerAuto[j][vmod9] = componentid;
  566.                 }
  567.                 case 10:
  568.                 {
  569.                     format(tform,sizeof tform,"auto_%d/mod10",j);
  570.                     PlayerAuto[j][vmod10] = componentid;
  571.                 }
  572.                 case 11:
  573.                 {
  574.                     format(tform,sizeof tform,"auto_%d/mod11",j);
  575.                     PlayerAuto[j][vmod11] = componentid;
  576.                 }
  577.                 case 12:
  578.                 {
  579.                     format(tform,sizeof tform,"auto_%d/mod12",j);
  580.                     PlayerAuto[j][vmod12] = componentid;
  581.                 }
  582.                 case 13:
  583.                 {
  584.                     format(tform,sizeof tform,"auto_%d/mod13",j);
  585.                     PlayerAuto[j][vmod13] = componentid;
  586.                 }
  587.                 default:return 1;
  588.             }
  589.             djSetInt(F_DATEI,tform,componentid);
  590.             return 1;
  591.         }
  592.     }
  593.     return 1;
  594. }
  595. stock getShowCarID(vehicleid)
  596. {
  597.     new identorx = -1;
  598.     for(new j = 0;j<sizeof ShowCars;j++)
  599.     {
  600.         if(ShowCars[j][v_id] == vehicleid)
  601.         {
  602.             identorx = j;
  603.             break;
  604.         }
  605.     }
  606.     return identorx;
  607. }
  608. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  609. {
  610.     new tform[128];
  611.     for(new i = 1;i<MAX_AUTOS;i++)
  612.     {
  613.         if(PlayerAuto[i][id_x] == vehicleid)
  614.         {
  615.             format(tform,sizeof tform,"auto_%d/paintjob",i);
  616.             djSetInt(F_DATEI,tform,paintjobid);
  617.             return 1;
  618.         }
  619.     }
  620.     return 1;
  621. }
  622.  
  623. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  624. {
  625.     new tform[128];
  626.     for(new i = 1;i<MAX_AUTOS;i++)
  627.     {
  628.         if(PlayerAuto[i][id_x] == vehicleid)
  629.         {
  630.             format(tform,sizeof tform,"auto_%d/farbe1",i);
  631.             djSetInt(F_DATEI,tform,color1);
  632.             format(tform,sizeof tform,"auto_%d/farbe2",i);
  633.             djSetInt(F_DATEI,tform,color2);
  634.             return 1;
  635.         }
  636.     }
  637.     return 1;
  638. }
  639. public OnVehicleStreamIn(vehicleid, forplayerid)
  640. {
  641.     for(new i = 0;i<sizeof ShowCars;i++)
  642.     {
  643.         if(ShowCars[i][v_id] == vehicleid)
  644.         {
  645.             if(ShowCars[i][sf_mod0])AddVehicleComponent(vehicleid,ShowCars[i][sf_mod0]);
  646.             if(ShowCars[i][sf_mod1])AddVehicleComponent(vehicleid,ShowCars[i][sf_mod1]);
  647.             if(ShowCars[i][sf_mod2])AddVehicleComponent(vehicleid,ShowCars[i][sf_mod2]);
  648.             if(ShowCars[i][sf_mod3])AddVehicleComponent(vehicleid,ShowCars[i][sf_mod3]);
  649.             if(ShowCars[i][sf_mod4])AddVehicleComponent(vehicleid,ShowCars[i][sf_mod4]);
  650.             if(ShowCars[i][sf_mod5])AddVehicleComponent(vehicleid,ShowCars[i][sf_mod5]);
  651.             if(ShowCars[i][sf_mod6])AddVehicleComponent(vehicleid,ShowCars[i][sf_mod6]);
  652.             if(ShowCars[i][sf_mod7])AddVehicleComponent(vehicleid,ShowCars[i][sf_mod7]);
  653.             if(ShowCars[i][sf_mod8])AddVehicleComponent(vehicleid,ShowCars[i][sf_mod8]);
  654.             if(ShowCars[i][sf_mod9])AddVehicleComponent(vehicleid,ShowCars[i][sf_mod9]);
  655.             if(ShowCars[i][sf_mod10])AddVehicleComponent(vehicleid,ShowCars[i][sf_mod10]);
  656.             if(ShowCars[i][sf_mod11])AddVehicleComponent(vehicleid,ShowCars[i][sf_mod11]);
  657.             if(ShowCars[i][sf_mod12])AddVehicleComponent(vehicleid,ShowCars[i][sf_mod12]);
  658.             if(ShowCars[i][sf_mod13])AddVehicleComponent(vehicleid,ShowCars[i][sf_mod13]);
  659.             UpdateVehicleDamageStatus(vehicleid,ShowCars[i][xteile],ShowCars[i][xtueren],ShowCars[i][xlichter],ShowCars[i][xreifen]);
  660.             return 1;
  661.         }
  662.     }
  663.     FahrzeugTunen(vehicleid,forplayerid);
  664.     return 1;
  665. }
  666.  
  667. public OnVehicleDeath(vehicleid, killerid)
  668. {
  669.     for(new i = 1;i<MAX_AUTOS;i++)
  670.     {
  671.         if(PlayerAuto[i][id_x] == vehicleid)
  672.         {
  673.             if(PlayerAuto[i][n_xx] != PlayerAuto[i][v_xc] || PlayerAuto[i][n_yy] != PlayerAuto[i][v_yc] || PlayerAuto[i][n_zz] != PlayerAuto[i][v_zc] || PlayerAuto[i][n_aa] != PlayerAuto[i][v_ac])
  674.             {
  675.                
  676.                 DestroyObject(PlayerAuto[i][neon_obj0]);
  677.                 DestroyObject(PlayerAuto[i][neon_obj1]);
  678.                 PlayerAuto[i][neon_obj0] = -1;
  679.                 PlayerAuto[i][neon_obj1] = -1;
  680.                 PlayerAuto[i][streamed_neon] = false;
  681.                 DestroyVehicle(PlayerAuto[i][id_x]);
  682.                 PlayerAuto[i][v_xc] = PlayerAuto[i][n_xx];PlayerAuto[i][v_yc] = PlayerAuto[i][n_yy];PlayerAuto[i][v_zc] = PlayerAuto[i][n_zz];PlayerAuto[i][v_ac] = PlayerAuto[i][n_aa];
  683.                 PlayerAuto[i][id_x] = CreateVehicle(PlayerAuto[i][vmodel],PlayerAuto[i][n_xx],PlayerAuto[i][n_yy],PlayerAuto[i][n_zz],PlayerAuto[i][n_aa],PlayerAuto[i][vfarbe1],PlayerAuto[i][vfarbe2],1200000);
  684.             }
  685.             return 1;
  686.         }
  687.     }
  688.     return 1;
  689. }
  690.  
  691. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  692. {
  693.     new sform[128];
  694.     if(response)
  695.     {
  696.         if(dialogid == DIAG_KAUFEN)
  697.         {
  698.                     for(new i = 1;i<MAX_AUTOS;i++)
  699.                     {
  700.                         format(sform,sizeof sform,"auto_%d",i);
  701.                         if(!djIsSet(F_DATEI,sform))
  702.                         {
  703.                             new preis_veh;
  704.                             for(new a = 0;a<sizeof(ShowCars);a++)
  705.                             {
  706.                                 if(ShowCars[a][v_id] == GetPlayerVehicleID(playerid))
  707.                                 {
  708.                                     preis_veh = ShowCars[a][preis];
  709.                                 }
  710.                             }
  711.                             if(GetPlayerMoney(playerid) < preis_veh)
  712.                             {
  713.                                 TogglePlayerControllable(playerid,1);
  714.                                 RemovePlayerFromVehicle(playerid);
  715.                                 return SendClientMessage(playerid,COLOR_WARN,"Du hast zu wenig Geld!");
  716.                             }
  717.                             new Float:bx,Float:by,Float:bz,Float:ba,found = 0;
  718.                             for(new j = 0;j<sizeof(show_ausgang_range);j++)
  719.                             {
  720.                                 if(IsPlayerInRangeOfPoint(playerid,20.0,show_ausgang_range[j][0],show_ausgang_range[j][1],show_ausgang_range[j][2]))
  721.                                 {
  722.                                     if(!found)
  723.                                     {
  724.                                         bx = Fahrzeug_Spawn[j][0];
  725.                                         by = Fahrzeug_Spawn[j][1];
  726.                                         bz = Fahrzeug_Spawn[j][2];
  727.                                         ba = Fahrzeug_Spawn[j][3];
  728.                                         found = 1;
  729.                                     }
  730.                                 }
  731.                             }
  732.                             if(!found)
  733.                             {
  734.                                 TogglePlayerControllable(playerid,1);
  735.                                 RemovePlayerFromVehicle(playerid);
  736.                                 return SendClientMessage(playerid,COLOR_WARN,"Dieses Auto ist zu weit vom Händler entfernt!");
  737.                             }
  738.                             format(sform,sizeof sform,"auto_%d/model",i);
  739.                             djSetInt(F_DATEI,sform,GetVehicleModel(GetPlayerVehicleID(playerid)));
  740.                             format(sform,sizeof sform,"auto_%d/x",i);
  741.                             djSetFloat(F_DATEI,sform,bx);
  742.                             format(sform,sizeof sform,"auto_%d/y",i);
  743.                             djSetFloat(F_DATEI,sform,by);
  744.                             format(sform,sizeof sform,"auto_%d/z",i);
  745.                             djSetFloat(F_DATEI,sform,bz);
  746.                             format(sform,sizeof sform,"auto_%d/a",i);
  747.                             djSetFloat(F_DATEI,sform,ba);
  748.                             format(sform,sizeof sform,"auto_%d/key",i);
  749.                             djSet(F_DATEI,sform,Spielername(playerid));
  750.                            
  751.                             format(sform,sizeof sform,"auto_%d/farbe1",i);
  752.                             djSetInt(F_DATEI,sform,-1);
  753.                             format(sform,sizeof sform,"auto_%d/farbe2",i);
  754.                             djSetInt(F_DATEI,sform,-1);
  755.                             new reget[4];
  756.                             GetVehicleDamageStatus(GetPlayerVehicleID(playerid),reget[0],reget[1],reget[2],reget[3]);
  757.                             format(sform,sizeof sform,"auto_%d/teile",i);
  758.                             djSetInt(F_DATEI,sform,reget[0]);
  759.                             format(sform,sizeof sform,"auto_%d/tueren",i);
  760.                             djSetInt(F_DATEI,sform,reget[1]);
  761.                             format(sform,sizeof sform,"auto_%d/lichter",i);
  762.                             djSetInt(F_DATEI,sform,reget[2]);
  763.                             format(sform,sizeof sform,"auto_%d/reifen",i);
  764.                             djSetInt(F_DATEI,sform,reget[3]);
  765.                             PlayerAuto[i][vmodel] = GetVehicleModel(GetPlayerVehicleID(playerid));
  766.                            
  767.                             new showCar_get = getShowCarID(GetPlayerVehicleID(playerid));
  768.                             PlayerAuto[i][v_xc] = (bx);
  769.                             PlayerAuto[i][v_yc] = (by);
  770.                             PlayerAuto[i][v_zc] = (bz);
  771.                             PlayerAuto[i][v_ac] = (ba);
  772.                             PlayerAuto[i][n_xx] = (bx);
  773.                             PlayerAuto[i][n_yy] = (by);
  774.                             PlayerAuto[i][n_zz] = (bz);
  775.                             PlayerAuto[i][n_aa] = (ba);
  776.                             PlayerAuto[i][vfarbe1] = -1;
  777.                             PlayerAuto[i][vfarbe2] = -1;
  778.                             PlayerAuto[i][neon_type] = 0;
  779.                             PlayerAuto[i][teile] = reget[0];
  780.                             PlayerAuto[i][tueren] = reget[1];
  781.                             PlayerAuto[i][lichter] = reget[2];
  782.                             PlayerAuto[i][reifen] = reget[3];
  783.                             PlayerAuto[i][frozen_teile] = reget[0];
  784.                             PlayerAuto[i][frozen_tueren] = reget[1];
  785.                             PlayerAuto[i][frozen_lichter] = reget[2];
  786.                             PlayerAuto[i][frozen_reifen] = reget[3];
  787.                            
  788.                             PlayerAuto[i][id_x] = CreateVehicle(PlayerAuto[i][vmodel],PlayerAuto[i][v_xc],PlayerAuto[i][v_yc],PlayerAuto[i][v_zc],PlayerAuto[i][v_ac],PlayerAuto[i][vfarbe1],PlayerAuto[i][vfarbe2],1200000);
  789.                            
  790.                             OnVehicleMod(playerid,PlayerAuto[i][id_x],ShowCars[showCar_get][sf_mod0]);
  791.                             OnVehicleMod(playerid,PlayerAuto[i][id_x],ShowCars[showCar_get][sf_mod1]);
  792.                             OnVehicleMod(playerid,PlayerAuto[i][id_x],ShowCars[showCar_get][sf_mod2]);
  793.                             OnVehicleMod(playerid,PlayerAuto[i][id_x],ShowCars[showCar_get][sf_mod3]);
  794.                             OnVehicleMod(playerid,PlayerAuto[i][id_x],ShowCars[showCar_get][sf_mod4]);
  795.                             OnVehicleMod(playerid,PlayerAuto[i][id_x],ShowCars[showCar_get][sf_mod5]);
  796.                             OnVehicleMod(playerid,PlayerAuto[i][id_x],ShowCars[showCar_get][sf_mod6]);
  797.                             OnVehicleMod(playerid,PlayerAuto[i][id_x],ShowCars[showCar_get][sf_mod7]);
  798.                             OnVehicleMod(playerid,PlayerAuto[i][id_x],ShowCars[showCar_get][sf_mod8]);
  799.                             OnVehicleMod(playerid,PlayerAuto[i][id_x],ShowCars[showCar_get][sf_mod9]);
  800.                             OnVehicleMod(playerid,PlayerAuto[i][id_x],ShowCars[showCar_get][sf_mod10]);
  801.                             OnVehicleMod(playerid,PlayerAuto[i][id_x],ShowCars[showCar_get][sf_mod11]);
  802.                             OnVehicleMod(playerid,PlayerAuto[i][id_x],ShowCars[showCar_get][sf_mod12]);
  803.                             OnVehicleMod(playerid,PlayerAuto[i][id_x],ShowCars[showCar_get][sf_mod13]);
  804.  
  805.                             OnVehicleStreamIn(PlayerAuto[i][id_x],playerid);
  806.                             strmid(PlayerAuto[i][vkey],Spielername(playerid),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
  807.                             GivePlayerMoney(playerid,-preis_veh);
  808.                             PlayerAuto[i][preisx] = preis_veh/2;
  809.                             SendClientMessage(playerid,COLOR_GRUEN,"Glückwunsch zum neuen Auto!");
  810.                             TogglePlayerControllable(playerid,1);
  811.                             RemovePlayerFromVehicle(playerid);
  812.                             return 1;
  813.                         }
  814.                     }
  815.         }
  816.         if(dialogid == VERKAUF_DIAG)
  817.         {
  818.                     if(!IsPlayerConnected(VerkaufDat[playerid][verkaufspartner]))
  819.                     {
  820.                         TogglePlayerControllable(playerid,1);
  821.                         VerkaufDat[playerid][verkaufspartner] = -1;
  822.                         VerkaufDat[playerid][preiss] = -1;
  823.                         VerkaufDat[playerid][autoid] = -1;
  824.                         return SendClientMessage(playerid,COLOR_WARN,"Dein Verkaufspartner scheint nicht mehr da zu sein...");
  825.                     }
  826.                     format(sform,sizeof sform,"auto_%d",VerkaufDat[playerid][autoid]);
  827.                     if(!djIsSet(F_DATEI,sform))return SendClientMessage(playerid,COLOR_WARN,"Dieses Auto ist kein gültiges Kaufauto!");
  828.                     GivePlayerMoney(playerid,-VerkaufDat[playerid][preiss]);
  829.                     SendClientMessage(VerkaufDat[playerid][verkaufspartner],COLOR_GRUEN,"Der Spieler hat angenommen...");
  830.                     GivePlayerMoney(VerkaufDat[playerid][verkaufspartner],VerkaufDat[playerid][preiss]);
  831.                     TogglePlayerControllable(VerkaufDat[playerid][verkaufspartner],1);
  832.                     RemovePlayerFromVehicle(VerkaufDat[playerid][verkaufspartner]);
  833.                     TogglePlayerControllable(playerid,1);
  834.                     format(sform,sizeof sform,"auto_%d/key",VerkaufDat[playerid][autoid]);
  835.                     djSet(F_DATEI,sform,Spielername(playerid));
  836.                     strmid(PlayerAuto[VerkaufDat[playerid][autoid]][vkey],Spielername(playerid),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
  837.                     SendClientMessage(playerid,COLOR_GRUEN,"Du hast das Auto erfolgreich erworben.");
  838.                     VerkaufDat[VerkaufDat[playerid][verkaufspartner]][verkaufspartner] = -1;
  839.                     VerkaufDat[VerkaufDat[playerid][verkaufspartner]][preiss] = -1;
  840.                     VerkaufDat[VerkaufDat[playerid][verkaufspartner]][autoid] = -1;
  841.                     VerkaufDat[playerid][verkaufspartner] = -1;
  842.                     VerkaufDat[playerid][preiss] = -1;
  843.                     VerkaufDat[playerid][autoid] = -1;
  844.         }
  845.         if(dialogid == NEON_DIAG)
  846.         {
  847.             new neon_veh = IsPlayerVehicle(GetPlayerVehicleID(playerid));
  848.             if(neon_veh == -1)return SendClientMessage(playerid,COLOR_WARN,"-> Dieses Fahrzeug kann nicht mit Neon ausgestattet werden, es gehoert nicht dir!");
  849.             if(GetPlayerMoney(playerid) < NEON_PRICE)return SendClientMessage(playerid,COLOR_WARN,"Du brauchst mindestens 200$ um Neons zu erwerben!");
  850.             new neon_object = 0;
  851.             switch(listitem)
  852.             {
  853.                 case 0:neon_object = NEON_BLUE;
  854.                 case 1:neon_object = NEON_RED;
  855.                 case 2:neon_object = NEON_GREEN;
  856.                 case 3:neon_object = NEON_WHITE;
  857.                 case 4:neon_object = NEON_PINK;
  858.                 case 5:neon_object = NEON_YELLOW;
  859.                 case 6:
  860.                 {
  861.                     if(!IsValidObject(PlayerAuto[neon_veh][neon_obj0]))return SendClientMessage(playerid,COLOR_MESS,"-> Keine Neons vorhanden.");
  862.                     GivePlayerMoney(playerid,(NEON_PRICE/2));
  863.                     DestroyObject(PlayerAuto[neon_veh][neon_obj0]);
  864.                     DestroyObject(PlayerAuto[neon_veh][neon_obj1]);
  865.                     PlayerAuto[neon_veh][neon_obj0] = -1;
  866.                     PlayerAuto[neon_veh][neon_obj1] = -1;
  867.                     SendClientMessage(playerid,COLOR_MESS,"Neons wurden für die haelfte des Kaufpreises verkauft.");
  868.                     PlayerAuto[neon_veh][neon_type] = 0;
  869.                     format(sform,sizeof sform,"auto_%d/neonT",neon_veh);
  870.                     djSetInt(F_DATEI,sform,PlayerAuto[neon_veh][neon_type]);
  871.                     PlayerAuto[neon_veh][streamed_neon] = false;
  872.                 }
  873.                 default:return 1;
  874.             }
  875.             if(neon_object > 0)
  876.             {
  877.                 if(IsValidObject(PlayerAuto[neon_veh][neon_obj0]))
  878.                 {
  879.                             GivePlayerMoney(playerid,(NEON_PRICE/2));
  880.                             DestroyObject(PlayerAuto[neon_veh][neon_obj0]);
  881.                             DestroyObject(PlayerAuto[neon_veh][neon_obj1]);
  882.                             PlayerAuto[neon_veh][neon_obj0] = -1;
  883.                             PlayerAuto[neon_veh][neon_obj1] = -1;
  884.                             SendClientMessage(playerid,COLOR_MESS,"Dein Auto hatte bereits Neons diese wurden für die haelfte des Kaufpreises verkauft.");
  885.                             PlayerAuto[neon_veh][neon_type] = 0;
  886.                             PlayerAuto[neon_veh][streamed_neon] = false;
  887.                 }
  888.                 PlayerAuto[neon_veh][streamed_neon] = true;
  889.                 PlayerAuto[neon_veh][neon_obj0] = CreateObject(neon_object,0,0,0,0,0,0);
  890.                 PlayerAuto[neon_veh][neon_obj1] = CreateObject(neon_object,0,0,0,0,0,0);
  891.                 PlayerAuto[neon_veh][neon_type] = neon_object;
  892.                 AttachObjectToVehicle(PlayerAuto[neon_veh][neon_obj0], PlayerAuto[neon_veh][id_x], OFF_X, 0.0, OFF_Z, 0.0, 0.0, 0.0);
  893.                 AttachObjectToVehicle(PlayerAuto[neon_veh][neon_obj1], PlayerAuto[neon_veh][id_x], OFF_X2, 0.0, OFF_Z, 0.0, 0.0, 0.0);
  894.                 format(sform,sizeof sform,"auto_%d/neonT",neon_veh);
  895.                 djSetInt(F_DATEI,sform,neon_object);
  896.                 GivePlayerMoney(playerid,-200);
  897.             }
  898.         }
  899.     }
  900.     else
  901.     {
  902.         if(dialogid == DIAG_KAUFEN)
  903.         {
  904.             SendClientMessage(playerid,COLOR_GRUEN,"ok dann nicht...");
  905.             TogglePlayerControllable(playerid,1);
  906.             RemovePlayerFromVehicle(playerid);
  907.         }
  908.         if(dialogid == VERKAUF_DIAG)
  909.         {
  910.             if(!IsPlayerConnected(VerkaufDat[playerid][verkaufspartner]))
  911.             {
  912.                 TogglePlayerControllable(playerid,1);
  913.                 VerkaufDat[playerid][verkaufspartner] = -1;
  914.                 VerkaufDat[playerid][preiss] = -1;
  915.                 VerkaufDat[playerid][autoid] = -1;
  916.                 return SendClientMessage(playerid,COLOR_WARN,"Dein Verkaufspartner scheint nicht mehr da zu sein...");
  917.             }
  918.             TogglePlayerControllable(playerid,1);
  919.             VerkaufDat[VerkaufDat[playerid][verkaufspartner]][verkaufspartner] = -1;
  920.             VerkaufDat[VerkaufDat[playerid][verkaufspartner]][preiss] = -1;
  921.             VerkaufDat[VerkaufDat[playerid][verkaufspartner]][autoid] = -1;
  922.             VerkaufDat[playerid][verkaufspartner] = -1;
  923.             VerkaufDat[playerid][preiss] = -1;
  924.             VerkaufDat[playerid][autoid] = -1;
  925.             TogglePlayerControllable(VerkaufDat[playerid][verkaufspartner],1);
  926.             SendClientMessage(VerkaufDat[playerid][verkaufspartner],COLOR_WARN,"Der Spieler hat abgelehnt...");
  927.         }
  928.     }
  929.     return 1;
  930. }
  931. public OnVehicleDamageStatusUpdate(vehicleid, playerid)
  932. {
  933.     for(new i = 1;i<MAX_AUTOS;i++)
  934.     {
  935.         if(PlayerAuto[i][id_x] == vehicleid)
  936.         {
  937.             new sform[64];
  938.             GetVehicleDamageStatus(GetPlayerVehicleID(playerid),
  939.                                     PlayerAuto[i][teile],
  940.                                     PlayerAuto[i][tueren],
  941.                                     PlayerAuto[i][lichter],
  942.                                     PlayerAuto[i][reifen]);
  943.             if( (!PlayerAuto[i][teile] && PlayerAuto[i][teile] != PlayerAuto[i][frozen_teile]))PlayerAuto[i][teile] = PlayerAuto[i][frozen_teile];
  944.             if( (!PlayerAuto[i][tueren] && PlayerAuto[i][tueren] != PlayerAuto[i][frozen_tueren]))PlayerAuto[i][tueren] = PlayerAuto[i][frozen_tueren];
  945.             if( (!PlayerAuto[i][lichter] && PlayerAuto[i][lichter] != PlayerAuto[i][frozen_lichter]))PlayerAuto[i][lichter] = PlayerAuto[i][frozen_lichter];
  946.             if( (!PlayerAuto[i][reifen] && PlayerAuto[i][reifen] != PlayerAuto[i][frozen_reifen]))PlayerAuto[i][reifen] = PlayerAuto[i][frozen_reifen];
  947.  
  948.             UpdateVehicleDamageStatus(vehicleid,PlayerAuto[i][teile],PlayerAuto[i][tueren],PlayerAuto[i][lichter],PlayerAuto[i][reifen]);
  949.             format(sform,sizeof sform,"auto_%d/teile",i);
  950.             djSetInt(F_DATEI,sform,PlayerAuto[i][teile]);
  951.             format(sform,sizeof sform,"auto_%d/tueren",i);
  952.             djSetInt(F_DATEI,sform,PlayerAuto[i][tueren]);
  953.             format(sform,sizeof sform,"auto_%d/lichter",i);
  954.             djSetInt(F_DATEI,sform,PlayerAuto[i][lichter]);
  955.             format(sform,sizeof sform,"auto_%d/reifen",i);
  956.             djSetInt(F_DATEI,sform,PlayerAuto[i][reifen]);
  957.             break;
  958.         }
  959.     }
  960.     return 1;
  961. }
  962. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  963. {
  964.     for(new i = 1;i<MAX_AUTOS;i++)
  965.     {
  966.         if(PlayerAuto[i][id_x] == vehicleid)
  967.         {
  968.             VerkaufDat[playerid][current_unlock] = vehicleid;
  969.             break;
  970.         }
  971.     }
  972.     return 1;
  973. }
  974. strtok(const string[], &index)
  975. {
  976.     new length = strlen(string);
  977.     while ((index < length) && (string[index] <= ' '))
  978.     {
  979.         index++;
  980.     }
  981.  
  982.     new offset = index;
  983.     new result[20];
  984.     while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  985.     {
  986.         result[index - offset] = string[index];
  987.         index++;
  988.     }
  989.     result[index - offset] = EOS;
  990.     return result;
  991. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement