Advertisement
946ben

MyCars [v1.2.1]

Oct 22nd, 2011
1,270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 19.57 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_mysql>
  3. #include <zcmd>
  4. #include <sscanf>
  5. #include <a_http>
  6.  
  7. #define MYSQL_HOST "localhost"
  8. #define MYSQL_USER "root"
  9. #define MYSQL_PASSWORD ""
  10. #define MYSQL_DATABASE "Cars"
  11.  
  12. #define MAX_CARS 100
  13.  
  14. #define CC_DIALOG 501
  15. #define KE_DIALOG 502
  16. #define VE_DIALOG 503
  17. #define SC_DIALOG 504
  18.  
  19. #define VERSION "1.2.1"
  20.  
  21. // ---------------------------------------------------------------------------------------------------------------------------------------
  22.  
  23. enum cardata {
  24.     owner[24],
  25.     Float:x,
  26.     Float:y,
  27.     Float:z,
  28.     Float:r,
  29.     c1,
  30.     c2,
  31.     plate[20],
  32.     model,
  33.     car,
  34.     price,
  35.     mod[18],
  36. };
  37. new Car[MAX_CARS][cardata];
  38.  
  39. new bool:IsFreezedByCar[MAX_PLAYERS char];
  40.  
  41. new spoiler[20]= {
  42. 1000,1001,1002,1003,1014,1015,1016,1023,1058,
  43. 1060,1049,1050,1138,1139,1146,1147,1158,1162,
  44. 1163,1164};
  45.  
  46. new nitro[3] = {1008,1009,1010};
  47.  
  48. new frontbumper[23]= {
  49. 1117,1152,1153,1155,1157,1160,1165,1167,1169,
  50. 1170,1171,1172,1173,1174,1175,1179,1181,1182,
  51. 1185,1188,1189,1192,1193};
  52.  
  53. new rbumper[22]= {
  54. 1140,1141,1148,1149,1150,1151,1154,1156,1159,
  55. 1161,1166,1168,1176,1177,1178,1180,1183,1184,
  56. 1186,1187,1190,1191};
  57.  
  58. new exhaust[28]= {
  59. 1018,1019,1020,1021,1022,1028,1029,1037,1043,
  60. 1044,1045,1046,1059,1064,1065,1066,1089,1092,
  61. 1104,1105,1113,1114,1126,1127,1129,1132,1135,
  62. 1136};
  63.  
  64. new bventr[2]= {1042,1044};
  65.  
  66. new bventl[2]= {1043,1045};
  67.  
  68. new bscoop[4]= {1004,1005,1011,1012};
  69.  
  70. new rscoop[13]= {
  71. 1006,1032,1033,1035,1038,1053,1054,1055,1061,
  72. 1067,1068,1088,1091};
  73.  
  74. new lskirt[21]= {
  75. 1007,1026,1031,1036,1039,1042,1047,1048,1056,
  76. 1057,1069,1070,1090,1093,1106,1108,1118,1119,
  77. 1133,1122,1134};
  78.  
  79. new rskirt[21]= {
  80. 1017,1027,1030,1040,1041,1051,1052,1062,1063,
  81. 1071,1072,1094,1095,1099,1101,1102,1107,1120,
  82. 1121,1124,1137};
  83.  
  84. new hydraulics= 1087;
  85.  
  86. new base= 1086;
  87.  
  88. new rbbars[2]= {1109,1110};
  89.  
  90. new fbbars[2]= {1115,1116};
  91.  
  92. new wheels[17]= {
  93. 1025,1073,1074,1075,1076,1077,1078,1079,1080,
  94. 1081,1082,1083,1084,1085,1096,1097,1098};
  95.  
  96. new light[2]= {1013,1024};
  97.  
  98. forward UpdateCheck(index, response_code, data[]);
  99.  
  100. // ---------------------------------------------------------------------------------------------------------------------------------------
  101. stock Float:mysql_GetFloatWithInt(Table[], Field[], Where[], Is)
  102. {
  103.     new query[128], Float:sqlfloat;
  104.     mysql_real_escape_string(Table, Table);
  105.     mysql_real_escape_string(Field, Field);
  106.     mysql_real_escape_string(Where, Where);
  107.     format(query, 128, "SELECT %s FROM %s WHERE %s = '%d'", Field, Table, Where, Is);
  108.     mysql_query(query);
  109.     mysql_store_result();
  110.     mysql_fetch_float(sqlfloat);
  111.     mysql_free_result();
  112.     return sqlfloat;
  113. }
  114.  
  115. public OnFilterScriptInit()
  116. {
  117.     print("  [MyCars] Loading....");
  118.     printf("  [MyCars] Loaded v%s, MyCars by 946ben", VERSION);
  119.     mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATABASE, MYSQL_PASSWORD);
  120.     if(mysql_ping() == 1) print("  [MyCars] Verbindung zur Datenbank hergestellt!");
  121.     else {
  122.         print("  [MyCars] Keine Datenbank-Verbindung möglich. Server wird beendet");
  123.         SendRconCommand("exit");
  124.         return 1;
  125.     }  
  126.     new query[805];
  127.     format(query, 805, "CREATE %s IF NOT EXISTS `cars` (`id` int(5) NOT NULL AUTO_INCREMENT,`owner` varchar(20) NOT NULL,`x` double NOT NULL, `y` double NOT NULL, `z` double NOT NULL, `r` double NOT NULL, `c1` int(2) NOT NULL, `c2` int(2) NOT NULL, `plate` varchar(118) NOT NULL, `model` int(3) NOT NULL, `price` int(10) NOT NULL, `mod1` int(4) NOT NULL, `mod2` int(4) NOT NULL, `mod3` int(4) NOT NULL,", "TABLE");
  128.     format(query, 805, "%s `mod4` int(4) NOT NULL, `mod5` int(4) NOT NULL, `mod6` int(4) NOT NULL, `mod7` int(4) NOT NULL, `mod8` int(4) NOT NULL, `mod9` int(4) NOT NULL, `mod10` int(4) NOT NULL, `mod11` int(4) NOT NULL, `mod12` int(4) NOT NULL, `mod13` int(4) NOT NULL, `mod14` int(4) NOT NULL, `mod15` int(4) NOT NULL, `mod16` int(4) NOT NULL, `mod17` int(4) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=29 ;", query);
  129.     mysql_query(query);
  130.     HTTP(1,HTTP_GET,"www.946bens-mods.square7.ch/MyCars_Version.txt","","UpdateCheck");
  131.     LoadCars();
  132.     return 1;
  133. }
  134.  
  135. public OnFilterScriptExit()
  136. {
  137.     DestroyCars();
  138.     return 1;
  139. }
  140.  
  141. public OnPlayerConnect(playerid)
  142. {
  143.     IsFreezedByCar[playerid] = false;
  144.     return 1;
  145. }
  146.  
  147. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  148. {
  149.     if(IsMyCar(vehicleid) && !ispassenger)
  150.     {
  151.         new string[128], id;
  152.         id = GetMyCarID(vehicleid);
  153.         if(!strmatch(Car[id][owner], "Niemand")) format(string, 128, "[MyCars] Dieses Auto gehört %s", Car[id][owner]);
  154.         else format(string, 128, "[MyCars] Dieses Auto ist steht zum Verkauf. Tippe /buyveh zum Kaufen! Preis: %d$", Car[id][price]);
  155.         SendClientMessage(playerid, 0x008080FF, string);
  156.     }
  157.     return 1;
  158. }
  159.  
  160. public OnPlayerStateChange(playerid,newstate,oldstate)
  161. {
  162.     if(newstate == PLAYER_STATE_DRIVER)
  163.     {
  164.         new id;
  165.         id = GetPlayerVehicleID(playerid);
  166.         if(IsMyCar(id))
  167.         {
  168.             new name[MAX_PLAYER_NAME];
  169.             GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  170.             if(!strmatch(Car[GetMyCarID(id)][owner], name))
  171.             {
  172.                 TogglePlayerControllable(playerid, 0);
  173.                 IsFreezedByCar[playerid] = true;
  174.             }
  175.         }
  176.     }
  177.     return 1;
  178. }
  179.  
  180. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  181. {
  182.     if(newkeys & KEY_SECONDARY_ATTACK && IsFreezedByCar[playerid] == true)
  183.     {
  184.         TogglePlayerControllable(playerid, 1);
  185.         IsFreezedByCar[playerid] = false;
  186.         RemovePlayerFromVehicle(playerid);
  187.     }
  188.     return 1;
  189. }
  190.  
  191. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  192. {
  193.     if(dialogid == CC_DIALOG) {
  194.         if(!response) return 1;
  195.         if(listitem == 0) {
  196.             ShowPlayerDialog(playerid, KE_DIALOG, DIALOG_STYLE_INPUT, "Kennzeichen ändern", "Tippe hier das neue Kennzeichen ein:", "Ändern", "Abbrechen");
  197.         }
  198.         if(listitem == 1) {
  199.             new string[256], id, mycar;
  200.             id = GetPlayerVehicleID(playerid);
  201.             mycar = GetMyCarID(id);
  202.             format(string, 256, "Bist du dir sicher, dass du das\nAuto verkaufen willst?\nDu bekommst dafür %d$", Car[mycar][price]/2);
  203.             ShowPlayerDialog(playerid, VE_DIALOG, DIALOG_STYLE_MSGBOX, "Auto verkaufen", string, "Ja", "Nein");
  204.         }
  205.         return 1;
  206.     }
  207.     if(dialogid == KE_DIALOG) {
  208.         if(!response) return 1;
  209.         if(strlen(inputtext) > 20) return SendClientMessage(playerid, 0x9B0000FF, "Das Kennzeichen darf maximal 20 Zeichen lang sein!");
  210.         new id, mycar, query[128], string[128];
  211.         id = GetPlayerVehicleID(playerid);
  212.         mycar = GetMyCarID(id);
  213.         format(Car[mycar][plate], 20, "%s", inputtext[0]);
  214.         format(query, 128, "UPDATE  `Cars` SET  `plate` =  '%s' WHERE  `id` = '%d';", Car[mycar][plate], mycar);
  215.         mysql_query(query);
  216.         SetVehicleNumberPlate(id, Car[mycar][plate]);
  217.         format(string, 128, "Neues Kennzeichen: %s", Car[mycar][plate]);
  218.         SendClientMessage(playerid, 0x00FFB4FF, string);
  219.         return 1;
  220.     }
  221.     if(dialogid == VE_DIALOG) {
  222.         if(!response) return 1;
  223.         new id, mycar, query[128];
  224.         id = GetPlayerVehicleID(playerid);
  225.         mycar = GetMyCarID(id);
  226.         format(Car[mycar][owner], 24, "%s", "Niemand");
  227.         format(query, 128, "UPDATE  `Cars` SET  `owner` =  '%s' WHERE  `id` = '%d';", Car[mycar][owner], mycar);
  228.         mysql_query(query);
  229.         GivePlayerMoney(playerid, Car[mycar][price]/2);
  230.         RemovePlayerFromVehicle(playerid);
  231.         return 1;
  232.     }
  233.     return 0;
  234. }
  235.  
  236. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  237. {
  238.     new mycar, query[128];
  239.     mycar = GetMyCarID(vehicleid);
  240.     Car[mycar][c1] = color1;
  241.     Car[mycar][c2] = color2;
  242.     format(query, 128, "UPDATE  `Cars` SET  `c1` =  '%d' WHERE  `id` = '%d';", Car[mycar][c1], mycar);
  243.     mysql_query(query);
  244.     format(query, 128, "UPDATE  `Cars` SET  `c2` =  '%d' WHERE  `id` = '%d';", Car[mycar][c2], mycar);
  245.     mysql_query(query);
  246.     return 1;
  247. }
  248.  
  249. public OnVehicleMod(playerid,vehicleid,componentid)
  250. {
  251.     if(!IsMyCar(vehicleid)) return 1;
  252.     new slot = GetComponentSlot(componentid);
  253.     new query[128], mycar;
  254.     mycar = GetMyCarID(vehicleid);
  255.     Car[mycar][mod][slot]=componentid;
  256.     format(query, 128, "UPDATE  `Cars` SET  `mod1` =  '%d' WHERE  `id` = '%d';", slot,Car[mycar][mod][slot], mycar);
  257.     mysql_query(query);
  258.     return 1;
  259. }
  260.  
  261. public UpdateCheck(index, response_code, data[])
  262. {
  263. if(response_code == 200) {
  264.     if(!strmatch(data, "1.2")) {
  265.         print("\n  [MyCars] Es ist eine neue Version verfügbar");
  266.         printf("  [MyCars] Aktuelle Version %s, verwendete Version %s", data, VERSION);
  267.         printf("  [MyCars] http://goo.gl/eRZ3q\n");
  268.     }
  269. }
  270. else print("\n  [MyCars] Konnte keine Verbindung zu Update-Server aufbauen\n");
  271. return 1;
  272. }
  273.  
  274. // ---------------------------------------------------------------------------------------------------------------------------------------
  275.  
  276. stock LoadCars()
  277. {
  278.     new i;
  279.     new xx,tinstring[6];
  280.     for(; i<=MAX_CARS; i++) {
  281.         format(Car[i][owner], 24, "%s", mysql_GetStringWithInt("Cars", "owner", "id", i));
  282.         Car[i][x] = mysql_GetFloatWithInt("Cars", "x", "id", i);
  283.         Car[i][y] = mysql_GetFloatWithInt("Cars", "y", "id", i);
  284.         Car[i][z] = mysql_GetFloatWithInt("Cars", "z", "id", i);
  285.         Car[i][r] = mysql_GetFloatWithInt("Cars", "r", "id", i);
  286.         Car[i][c1] = mysql_GetIntWithInt("Cars", "c1", "id", i);
  287.         Car[i][c2] = mysql_GetIntWithInt("Cars", "c2", "id", i);
  288.         format(Car[i][plate], 20, "%s", mysql_GetStringWithInt("Cars", "plate", "id", i));
  289.         Car[i][model] = mysql_GetIntWithInt("Cars", "model", "id", i);
  290.         Car[i][price] = mysql_GetIntWithInt("Cars", "price", "id", i);
  291.         Car[i][car] = AddStaticVehicleEx(Car[i][model], Car[i][x], Car[i][y], Car[i][z], Car[i][r], Car[i][c1], Car[i][c2], -1);
  292.         SetVehicleNumberPlate(Car[i][car], Car[i][plate]);
  293.         //printf("i = %d, owner = %s, x = %f, y = %f, z = %f, r = %f, c1 = %d, c2 = %d, plate = %s, model = %d, price = %d, car = %d", i, Car[i][owner], Car[i][x], Car[i][y], Car[i][z], Car[i][r], Car[i][c1], Car[i][c2], Car[i][plate], Car[i][model], Car[i][price], Car[i][car]);
  294.         xx=1;
  295.         for(;xx!=18;xx++) format(tinstring,6,"mod%d",xx), Car[i][mod][xx] = mysql_GetIntWithInt("Cars", tinstring, "id", i);
  296.         AddTuning(i);
  297.     }
  298.     return 1;
  299. }      
  300.  
  301. stock DestroyCars()
  302. {
  303.     new i;
  304.     for(; i<=MAX_CARS; i++) {
  305.         DestroyVehicle(Car[i][car]);
  306.     }
  307.     return 1;
  308. }
  309.  
  310. stock CreateCar(cmodel, Float:cx, Float:cy, Float:cz, Float:cr, cc1, cc2, cprice)
  311. {
  312.     new query[300], tempplate, id;
  313.     tempplate = random(500);
  314.     format(query, 300, "INSERT INTO `cars` (`id`, `owner`, `x`, `y`, `z`, `r`, `c1`, `c2`, `plate`, `model`, `price`) VALUES (NULL, 'Niemand', '%f', '%f', '%f', '%f', '%d', '%d', '%d', '%d', '%d');", cx, cy, cz, cr, cc1, cc2, tempplate, cmodel, cprice);
  315.     mysql_query(query);
  316.     id = mysql_GetIntWithInt("Cars", "id", "plate", tempplate);
  317.     format(query, 300, "UPDATE  `cars` SET  `plate` =  'UNBOUGHT' WHERE  `id` = '%d';", id);
  318.     mysql_query(query);
  319.     format(Car[id][owner], 24, "%s", "Niemand");
  320.     Car[id][x] = cx;
  321.     Car[id][y] = cy;
  322.     Car[id][z] = cz;
  323.     Car[id][r] = cr;
  324.     Car[id][c1] = cc1;
  325.     Car[id][c2] = cc2;
  326.     Car[id][price] = cprice;
  327.     format(Car[id][plate], 20, "%s", "UNBOUGHT");
  328.     Car[id][car] = AddStaticVehicleEx(cmodel, cx, cy, cz, cr, cc1, cc2, -1);
  329.     SetVehicleNumberPlate(Car[id][car], "UNBOUGHT");
  330.     new xx=1;
  331.     for(;xx!=18;xx++) Car[id][mod][xx] = 0;
  332.     return 1;
  333. }
  334.  
  335. stock GetMyCarID(vehicleid)
  336. {
  337.     new i;
  338.     for(;i<=MAX_CARS;i++)
  339.     {
  340.         if(Car[i][car] == vehicleid) return i;
  341.     }
  342.     return -1;
  343. }
  344.  
  345. stock IsMyCar(vehicleid)
  346. {
  347.     new i;
  348.     for(;i<=MAX_CARS;i++)
  349.     {
  350.         if(Car[i][car] == vehicleid) return 1;
  351.     }
  352.     return 0;
  353. }
  354.  
  355. stock AddTuning(mycar)
  356. {
  357.     new vehicleid = Car[mycar][car];
  358.     if(vehicleid == INVALID_VEHICLE_ID) return 0;
  359.     new xx=1;
  360.     for(;xx!=18;xx++) { if(Car[mycar][mod][xx]!=0) AddVehicleComponent(vehicleid,Car[mycar][mod][xx]); }
  361.     return 1;
  362. }
  363.    
  364. // ---------------------------------------------------------------------------------------------------------------------------------------
  365.  
  366. stock mysql_GetInt(Table[], Field[], Where[], Is[])
  367. {
  368.     new query[128];
  369.     mysql_real_escape_string(Table, Table);
  370.     mysql_real_escape_string(Field, Field);
  371.     mysql_real_escape_string(Where, Where);
  372.     mysql_real_escape_string(Is, Is);
  373.     format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
  374.     mysql_query(query);
  375.     mysql_store_result();
  376.     new sqlint = mysql_fetch_int();
  377.     mysql_free_result();
  378.     return sqlint;
  379. }
  380.  
  381. stock mysql_GetString(Table[], Field[], Where[], Is[])
  382. {
  383.     new query[128], Get[128];
  384.     mysql_real_escape_string(Table, Table);
  385.     mysql_real_escape_string(Field, Field);
  386.     mysql_real_escape_string(Where, Where);
  387.     mysql_real_escape_string(Is, Is);
  388.     format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
  389.     mysql_query(query);
  390.     mysql_store_result();
  391.     mysql_fetch_row(Get);
  392.     return Get;
  393. }
  394.  
  395. stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
  396. {
  397.     new query[128], Float:sqlfloat;
  398.     mysql_real_escape_string(Table, Table);
  399.     mysql_real_escape_string(Field, Field);
  400.     mysql_real_escape_string(Where, Where);
  401.     mysql_real_escape_string(Is, Is);
  402.     format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
  403.     mysql_query(query);
  404.     mysql_store_result();
  405.     mysql_fetch_float(sqlfloat);
  406.     mysql_free_result();
  407.     return sqlfloat;
  408. }
  409.  
  410. stock mysql_GetIntWithInt(Table[], Field[], Where[], Is)
  411. {
  412.     new query[128];
  413.     mysql_real_escape_string(Table, Table);
  414.     mysql_real_escape_string(Field, Field);
  415.     mysql_real_escape_string(Where, Where);
  416.     format(query, 128, "SELECT %s FROM %s WHERE %s = '%d'", Field, Table, Where, Is);
  417.     mysql_query(query);
  418.     mysql_store_result();
  419.     new sqlint = mysql_fetch_int();
  420.     mysql_free_result();
  421.     return sqlint;
  422. }
  423.  
  424. stock mysql_GetStringWithInt(Table[], Field[], Where[], Is)
  425. {
  426.     new query[128], Get[128];
  427.     mysql_real_escape_string(Table, Table);
  428.     mysql_real_escape_string(Field, Field);
  429.     mysql_real_escape_string(Where, Where);
  430.     format(query, 128, "SELECT %s FROM %s WHERE %s = '%d'", Field, Table, Where, Is);
  431.     mysql_query(query);
  432.     mysql_store_result();
  433.     mysql_fetch_row(Get);
  434.     return Get;
  435. }
  436.  
  437. stock strmatch(const String1[], const String2[])
  438. {
  439.     if ((strcmp(String1, String2, true, strlen(String2)) == 0) && (strlen(String2) == strlen(String1)))
  440.     {
  441.         return true;
  442.     }
  443.     else
  444.     {
  445.         return false;
  446.     }
  447. }
  448.  
  449. stock splitEvery(const strsrc[], strdest[][], delimiter)
  450. {
  451.     new i, li;
  452.     new aNum;
  453.     new len;
  454.     new num = 1;
  455.     while(i <= strlen(strsrc)){
  456.         if(num==delimiter || i==strlen(strsrc)){
  457.             len = strmid(strdest[aNum], strsrc, li, i, 128);
  458.             strdest[aNum][len] = 0;
  459.             li = i+1;
  460.             num = 0;
  461.             aNum++;
  462.         }
  463.         i++;
  464.         num++;
  465.     }
  466.     return 1;
  467. }
  468.  
  469. stock split(const strsrc[], strdest[][], delimiter = '|')
  470. {
  471.     new i, li, aNum, len, srclen = strlen(strsrc);
  472.     while(i <= srclen)
  473.     {
  474.         if (strsrc[i] == delimiter || i == srclen)
  475.         {
  476.             len = strmid(strdest[aNum], strsrc, li, i, 128);
  477.             strdest[aNum][len] = 0;
  478.             li = i + 1;
  479.             aNum++;
  480.         }
  481.         i++;
  482.     }
  483. }
  484.  
  485. stock GetComponentSlot(componentid)
  486. {
  487.     new i;
  488.     for(i=0; i<20; i++)if(spoiler[i]==componentid) return 1;
  489.     for(i=0; i<3; i++)if(nitro[i]==componentid) return 2;
  490.     for(i=0; i<23; i++)if(frontbumper[i]==componentid) return 3;
  491.     for(i=0; i<22; i++)if(rbumper[i]==componentid) return 4;
  492.     for(i=0; i<28; i++)if(exhaust[i]==componentid) return 5;
  493.     for(i=0; i<2; i++)if(bventr[i]==componentid) return 6;
  494.     for(i=0; i<2; i++)if(bventl[i]==componentid) return 7;
  495.     for(i=0; i<4; i++)if(bscoop[i]==componentid) return 8;
  496.     for(i=0; i<13; i++)if(rscoop[i]==componentid) return 9;
  497.     for(i=0; i<21; i++)if(lskirt[i]==componentid) return 10;
  498.     for(i=0; i<21; i++)if(rskirt[i]==componentid) return 11;
  499.     if(hydraulics==componentid) return 12;
  500.     if(base==componentid) return 13;
  501.     for(i=0; i<2; i++)if(rbbars[i]==componentid) return 14;
  502.     for(i=0; i<2; i++)if(fbbars[i]==componentid) return 15;
  503.     for(i=0; i<17; i++)if(wheels[i]==componentid) return 16;
  504.     for(i=0; i<2; i++)if(light[i]==componentid) return 17;
  505.     return 0;
  506. }
  507.  
  508. // ---------------------------------------------------------------------------------------------------------------------------------------
  509.  
  510. COMMAND:createcar(playerid,params[])
  511. {
  512.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0x9B0000FF, "Du hast keine Berechtigung");
  513.     new Float:cx, Float:cy, Float:cz, Float:cr, cmodel, cc1, cc2, cprice;
  514.     if(sscanf(params, "dddd",cmodel, cc1, cc2, cprice)) return SendClientMessage(playerid,0x008080FF, "/createcar [Model] [Farbe] [Farbe] [Preis]");
  515.     GetPlayerPos(playerid, cx, cy, cz);
  516.     GetPlayerFacingAngle(playerid, cr);
  517.     CreateCar(cmodel, cx, cy, cz, cr, cc1, cc2, cprice);
  518.     return 1;
  519. }
  520.  
  521. COMMAND:buyveh(playerid,params[])
  522. {
  523.     new id, money, name[MAX_PLAYER_NAME], query[128];
  524.     id = GetPlayerVehicleID(playerid);
  525.     id = GetMyCarID(id);
  526.     money = GetPlayerMoney(playerid);
  527.     GetPlayerName(playerid, name, 20);
  528.     if(!strmatch(Car[id][owner], "Niemand")) return SendClientMessage(playerid, 0x9B0000FF, "Dieses Auto gehört schon jemandem!");
  529.     if(money < Car[id][price]) return SendClientMessage(playerid, 0x9B0000FF, "Du hast nicht genug Geld!");
  530.     format(Car[id][owner], MAX_PLAYER_NAME, "%s", name);
  531.     format(query, 128, "UPDATE  `Cars` SET  `owner` =  '%s' WHERE  `id` = '%d';", Car[id][owner], id);
  532.     mysql_query(query);
  533.     GivePlayerMoney(playerid, -Car[id][price]);
  534.     TogglePlayerControllable(playerid, 1);
  535.     return SendClientMessage(playerid, 0x00FFB4FF, "Dieses Auto gehört nun dir");
  536. }
  537.  
  538. COMMAND:configcar(playerid,params[])
  539. {
  540.     new id, mycar, name[MAX_PLAYER_NAME];
  541.     GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  542.     id = GetPlayerVehicleID(playerid);
  543.     mycar = GetMyCarID(id);
  544.     if(!strmatch(Car[mycar][owner], name)) return SendClientMessage(playerid, 0x9B0000FF, "Das ist nicht dein Auto!");
  545.     ShowPlayerDialog(playerid, CC_DIALOG, DIALOG_STYLE_LIST, "Auto konfigurieren", "Kennzeichen\nVerkaufen", "Auswählen", "Abbrechen");
  546.     return 1;
  547. }
  548.  
  549. COMMAND:park(playerid,params[])
  550. {
  551.     new query[128], Float:px, Float:py, Float:pz, Float:pr, id, mycar;
  552.     id = GetPlayerVehicleID(playerid);
  553.     mycar = GetMyCarID(id);
  554.     GetVehiclePos(id, px, py, pz);
  555.     GetVehicleZAngle(id, pr);
  556.     Car[mycar][x] = px;
  557.     Car[mycar][y] = py;
  558.     Car[mycar][z] = pz;
  559.     Car[mycar][r] = pr;
  560.     format(query, 128, "UPDATE  `Cars` SET  `x` =  '%f' WHERE  `id` = '%d';", Car[mycar][x], mycar);
  561.     mysql_query(query);
  562.     format(query, 128, "UPDATE  `Cars` SET  `y` =  '%f' WHERE  `id` = '%d';", Car[mycar][y], mycar);
  563.     mysql_query(query);
  564.     format(query, 128, "UPDATE  `Cars` SET  `z` =  '%f' WHERE  `id` = '%d';", Car[mycar][z], mycar);
  565.     mysql_query(query);
  566.     format(query, 128, "UPDATE  `Cars` SET  `r` =  '%f' WHERE  `id` = '%d';", Car[mycar][r], mycar);
  567.     mysql_query(query);
  568.     return SendClientMessage(playerid, 0x008080FF, "[MyCars] Fahrzeug geparkt");
  569. }
  570. COMMAND:gimmemoney(playerid,params[])
  571. {
  572.     if(IsPlayerAdmin(playerid)) GivePlayerMoney(playerid, 1000000);
  573.     return 1;
  574. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement