· 6 years ago · Apr 24, 2019, 08:08 PM
1#include <a_samp>
2#include <a_mysql>
3#include <whirlpool>
4#include <Pawn.CMD>
5#include <streamer>
6#include <sscanf2>
7#include <foreach>
8
9main(){print("\nSYSPRIV.pwn\n");}
10
11#define MYSQL_HOST "127.0.0.1"
12#define MYSQL_USER "root"
13#define MYSQL_PASSWORD "12345"
14#define MYSQL_DATABASE "testgm"
15
16#define DIALOG_REGISTER 0
17#define DIALOG_LOGIN 1
18
19#define DIALOG_VEHICLES 1000
20
21#define DIALOG_BUY_VEHICLE 2000
22#define DIALOG_WYBOR_POJAZD 2001
23#define DIALOG_BUY_CLOVER 3000
24#define DIALOG_BUY_TAMPA 3001
25#define DIALOG_WYBOR_COL1 4000
26#define DIALOG_WYBOR_COL2 4001
27
28#define pos_salon 2129.2078, -1129.9963, 25.5823
29
30new MySQL:g_SQL;
31new MySQLRaceCheck[MAX_PLAYERS];
32
33new Zalogowany[MAX_PLAYERS];
34
35enum pInfo
36{
37 ID,
38 Nick[MAX_PLAYER_NAME],
39 Password[129],
40 Cache:Cache_ID,
41 Money,
42 MaPojazd
43};
44new PlayerInfo[MAX_PLAYERS][pInfo];
45
46enum VehiclesData
47{
48 vehID,
49 vehSessionID,
50 vehModel,
51 vehName[25],
52 vehOwner[26],
53 vehColorOne,
54 vehColorTwo,
55 Text3D:vehLabel,
56 Float:vehX,
57 Float:vehY,
58 Float:vehZ,
59 Float:vehA
60};
61new vInfo[MAX_VEHICLES][VehiclesData];
62
63new pojazdid[MAX_PLAYERS];
64new CenaPojazdu[MAX_PLAYERS];
65new KolorPierwszy[MAX_PLAYERS];
66
67new Float:LosowyParking[27][4] = {
68{2161.2605,-1197.3385,23.5517,89.7108},//1
69{2161.0071,-1192.6439,23.4812,90.5042},//2
70{2160.9656,-1187.9816,23.4800,90.5042},//3
71{2160.9233,-1183.1466,23.4788,90.5042},//4
72{2160.8806,-1178.2858,23.4776,90.5042},//5
73{2160.8352,-1173.1339,23.4763,90.5042},//6
74{2160.7915,-1168.2013,23.4751,90.5042},//7
75{2160.7498,-1163.4933,23.4739,90.5042},//8
76{2160.7043,-1158.3149,23.4726,90.5042},//9
77{2160.6587,-1153.1633,23.4713,90.5042},//10
78{2160.6128,-1148.3796,23.9337,90.5042},//11
79{2160.5649,-1143.8113,24.8596,90.5042},//12
80{2148.7363,-1203.4053,23.5150,270.6497},//13
81{2148.6887,-1199.0850,23.6128,270.6497},//14
82{2148.6409,-1194.7642,23.7106,270.6497},//15
83{2148.5842,-1189.6375,23.8267,270.6497},//16
84{2148.5342,-1185.1234,23.9289,270.6497},//17
85{2148.4814,-1180.3663,24.0366,270.6497},//18
86{2148.3794,-1171.1194,24.2460,270.6497},//19
87{2148.3274,-1166.4340,24.3521,270.6497},//20
88{2148.2791,-1162.0425,24.4516,270.6497},//21
89{2148.2290,-1157.5012,24.5544,270.6497},//22
90{2148.1829,-1153.3276,24.6489,270.6497},//23
91{2148.1255,-1148.1309,24.7666,270.6497},//24
92{2148.0740,-1143.4689,24.8721,270.6497},//25
93{2148.0215,-1138.7086,24.9799,270.6497},//26
94{2148.6426,-1133.7229,25.2246,268.2947}//27
95};
96
97new VehicleNames[212][] =
98{
99 "Landstalker", "Bravura", "Buffalo", "Linerunner", "Pereniel", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus","Voodoo", "Pony",
100 "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat", "Mr Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer",
101 "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero",
102 "Packer", "Monster", "Admiral", "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer 2", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy",
103 "Solair", "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic", "Sanchez", "Sparrow", "Patriot", "Quad",
104 "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR3 50", "Walton", "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick",
105 "News Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick", "Boxville", "Benson", "Mesa",
106 "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropdust",
107 "Stunt", "Tanker", "RoadTrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune",
108 "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent", "Bullet",
109 "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster A",
110 "Monster B", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito", "Freight", "Trailer", "Kart", "Mower",
111 "Duneride", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "Newsvan", "Tug", "Trailer A", "Emperor", "Wayfarer", "Euros",
112 "Hotdog", "Club", "Trailer B", "Trailer C", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car (LSPD)", "Police Car (SFPD)", "Police Car (LVPD)", "Police Ranger",
113 "Picador", "S.W.A.T. Van", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage Trailer A", "Luggage Trailer B", "Stair Trailer", "Boxville", "Farm Plow", "Utility Trailer"
114};
115
116public OnGameModeInit()
117{
118 new MySQLOpt:option_id = mysql_init_options();
119
120 mysql_set_option(option_id, AUTO_RECONNECT, true);
121
122 g_SQL = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE, option_id);
123
124 if(g_SQL == MYSQL_INVALID_HANDLE || mysql_errno(g_SQL) != 0)
125 {
126 print("[MYSQL - BÅÄ„D] Nie można byÅ‚o połączyć siÄ™ z bazÄ… danych! Wyłączam serwer...");
127 SendRconCommand("exit");
128 return 1;
129 }
130 else
131 {
132 print("[MYSQL] Połączenie z bazą danych została nawiązana!");
133 }
134
135 SetupPlayerTable();
136 SetupPrivCarTable();
137
138 mysql_tquery(g_SQL, "SELECT * FROM `privcars`", "LoadVehicles");
139
140 DisableInteriorEnterExits();
141 EnableStuntBonusForAll(0);
142
143 AddPlayerClass(29, pos_salon, 0.0, -1, -1, -1, -1, -1, -1);
144 return 1;
145}
146
147forward LoadVehicles();
148public LoadVehicles()
149{
150 new rows = cache_num_rows();
151
152 if(rows)
153 {
154 new string[75];
155 for(new i; i < rows; i++)
156 {
157 new id;
158
159 cache_get_value_name(i, "vehOwner", vInfo[id][vehOwner], .max_len = MAX_PLAYER_NAME);
160 cache_get_value_name_int(i, "vehModel", vInfo[id][vehModel]);
161 cache_get_value_name(i, "vehName", vInfo[id][vehName], .max_len = MAX_PLAYER_NAME);
162 cache_get_value_name_int(i, "vehColorOne", vInfo[id][vehColorOne]);
163 cache_get_value_name_int(i, "vehColorTwo", vInfo[id][vehColorTwo]);
164 cache_get_value_name_float(i, "vehX", vInfo[id][vehX]);
165 cache_get_value_name_float(i, "vehY", vInfo[id][vehY]);
166 cache_get_value_name_float(i, "vehZ", vInfo[id][vehZ]);
167 cache_get_value_name_float(i, "vehA", vInfo[id][vehA]);
168
169 vInfo[id][vehSessionID] = CreateVehicle(vInfo[id][vehModel], vInfo[id][vehX], vInfo[id][vehY], vInfo[id][vehZ], vInfo[id][vehA], vInfo[id][vehColorOne], vInfo[id][vehColorTwo], -1);
170
171 cache_get_value_name_int(i, "vehID", vInfo[id][vehID]);
172
173 SetVehicleToRespawn(vInfo[id][vehSessionID]);
174
175 format(string, sizeof(string), "VehicleID: %d\nVehicle: %s", id, vInfo[id][vehName]);
176 vInfo[id][vehLabel] = CreateDynamic3DTextLabel(string, 0xFFFF00FF, vInfo[id][vehX], vInfo[id][vehY], vInfo[id][vehZ], 10.0, INVALID_PLAYER_ID, vInfo[id][vehSessionID]);
177 }
178 printf("\nZaładowano prywatne pojazdy: %d\n", rows);
179 }
180 return 1;
181}
182
183public OnGameModeExit()
184{
185 mysql_close(g_SQL);
186 return 1;
187}
188
189public OnPlayerConnect(playerid)
190{
191 TogglePlayerSpectating(playerid, 1);
192
193 MySQLRaceCheck[playerid]++;
194
195 static const empty_player[pInfo];
196 PlayerInfo[playerid] = empty_player;
197
198 ZerujZmienne(playerid);
199
200 GetPlayerName(playerid, PlayerInfo[playerid][Nick], MAX_PLAYER_NAME);
201
202 new query[103];
203 mysql_format(g_SQL, query, sizeof(query), "SELECT * FROM `accounts` WHERE `Nick` = '%s' LIMIT 1", PlayerInfo[playerid][Nick]);
204 mysql_tquery(g_SQL, query, "OnPlayerDataLoaded", "dd", playerid, MySQLRaceCheck[playerid]);
205
206 return 1;
207}
208
209public OnPlayerDisconnect(playerid, reason)
210{
211 OnPlayerUpdateEx(playerid);
212 return 1;
213}
214
215forward OnPlayerDataLoaded(playerid, race_check);
216public OnPlayerDataLoaded(playerid, race_check)
217{
218 if(race_check != MySQLRaceCheck[playerid]) return Kick(playerid);
219
220 new string[115];
221 if(cache_num_rows() > 0)
222 {
223 cache_get_value(0, "Password", PlayerInfo[playerid][Password], 129);
224
225 PlayerInfo[playerid][Cache_ID] = cache_save();
226
227 format(string, sizeof(string), "To konto (%s) jest zarejestrowane. Zaloguj się, podajac swoje hasło w poniższym polu:", PlayerInfo[playerid][Nick]);
228 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Logowanie", string, "Zaloguj", "Wyjdź");
229 }
230 else
231 {
232 format(string, sizeof(string), "Witamy %s, możesz zarejestrować się, wpisując swoje hasło w polu poniżej:", PlayerInfo[playerid][Nick]);
233 ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Rejestracja", string, "Zarejestruj", "Wyjdź");
234 }
235 return 1;
236}
237
238forward OnPlayerRegister(playerid);
239public OnPlayerRegister(playerid)
240{
241 PlayerInfo[playerid][ID] = cache_insert_id();
242
243 GivePlayerMoney(playerid, 500000);
244
245 Zalogowany[playerid] = 1;
246 return 1;
247}
248
249forward OnPlayerUpdateEx(playerid);
250public OnPlayerUpdateEx(playerid)
251{
252 if(IsPlayerConnected(playerid))
253 {
254 if(Zalogowany[playerid])
255 {
256 new query[650];
257
258 PlayerInfo[playerid][Money] = GetPlayerMoney(playerid);
259
260 mysql_format(g_SQL, query, sizeof(query), "UPDATE `accounts` SET `Money` = %d, `MaPojazd` = %d WHERE `ID` = %d LIMIT 1", PlayerInfo[playerid][Money], PlayerInfo[playerid][MaPojazd],
261 PlayerInfo[playerid][ID]);
262 mysql_tquery(g_SQL, query);
263 }
264 }
265 return 1;
266}
267
268public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
269{
270 switch(dialogid)
271 {
272 case DIALOG_LOGIN:
273 {
274 if(response)
275 {
276 new HashPass[129];
277 WP_Hash(HashPass, sizeof(HashPass), inputtext);
278
279 if(strcmp(HashPass, PlayerInfo[playerid][Password]) == 0)
280 {
281 cache_set_active(PlayerInfo[playerid][Cache_ID]);
282
283 AssignPlayerData(playerid);
284
285 cache_delete(PlayerInfo[playerid][Cache_ID]);
286 PlayerInfo[playerid][Cache_ID] = MYSQL_INVALID_CACHE;
287
288 TogglePlayerSpectating(playerid, 0);
289
290 Zalogowany[playerid] = 1;
291
292 GivePlayerMoney(playerid, 500000);
293
294 SetSpawnInfo(playerid, 0, 29, pos_salon, 0.0, -1, -1, -1, -1, -1, -1);
295 SpawnPlayer(playerid);
296 }
297 else
298 {
299 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Logowanie", "Złe hasło!\nW polu poniżej wpisz swoje hasło:", "Zaloguj", "Wyjdź");
300 }
301 }
302 if(!response)
303 {
304 Kick(playerid);
305 }
306 }
307 case DIALOG_REGISTER:
308 {
309 if(response)
310 {
311 if(strlen(inputtext) >= 6 && strlen(inputtext) <= 64)
312 {
313 new HashPass[129];
314 WP_Hash(HashPass, sizeof(HashPass), inputtext);
315
316 new query[300];
317 mysql_format(g_SQL, query, sizeof(query), "INSERT INTO `accounts` (`Nick`, `Password`) VALUES ('%s', '%s')", PlayerInfo[playerid][Nick], HashPass);
318 mysql_tquery(g_SQL, query, "OnPlayerRegister", "d", playerid);
319
320 TogglePlayerSpectating(playerid, 0);
321 }
322 else
323 {
324 ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Rejestracja", "Twoje hasło musi mieć od 6 do 64 znaków!\nW polu poniżej wpisz swoje hasło:", "Zarejestruj", "Wyjdź");
325 }
326 }
327 if(!response)
328 {
329 Kick(playerid);
330 }
331 }
332
333 case DIALOG_BUY_VEHICLE:
334 {
335 if(response)
336 {
337 switch(listitem)
338 {
339 case 0:
340 {
341 ShowPlayerDialog(playerid, DIALOG_WYBOR_POJAZD, DIALOG_STYLE_LIST, "Na każdą kieszeń", "Clover 45tys\nTampa 40tys", "Wybierz", "Wróć");
342 }
343 }
344 }
345 }
346 case DIALOG_WYBOR_POJAZD:
347 {
348 if(response)
349 {
350 switch(listitem)
351 {
352 case 0:
353 {
354 ShowPlayerDialog(playerid, DIALOG_BUY_CLOVER, DIALOG_STYLE_MSGBOX, "Kupowanie Clovera", "Clover\n\nCena: 45.000$\nPrędkość Maksymalna: 160km/h\nIlość miejsc: 2\nOpis: Brak", "Kup!", "Wróć");
355 pojazdid[playerid] = 542;
356 CenaPojazdu[playerid] = 45000;
357 }
358 case 1:
359 {
360 ShowPlayerDialog(playerid, DIALOG_BUY_TAMPA, DIALOG_STYLE_MSGBOX, "Kupowanie Tampy", "Tampa\n\nCena: 40.000$\nPrędkość Maksymalna: 160km/h\nIlość miejsc: 2\nOpis: Brak", "Kup!", "Wróć");
361 pojazdid[playerid] = 549;
362 CenaPojazdu[playerid] = 40000;
363 }
364 }
365 }
366 if(!response)
367 {
368 ShowPlayerDialog(playerid, DIALOG_BUY_VEHICLE, DIALOG_STYLE_LIST, "Wybierz kategorię kupowanego pojazdu", "Na każdą kieszeń", "Wybierz", "Wyjdź");
369 }
370 }
371 case DIALOG_BUY_CLOVER:
372 {
373 if(response)
374 {
375 SendClientMessage(playerid, -1, "Wybierz kolor wybranego wozu");
376 ShowPlayerDialog(playerid, DIALOG_WYBOR_COL1, DIALOG_STYLE_LIST, "Wybierz Kolor 1", "Czarny\nBialy\nJasno-niebieski", "Wybierz", "Wyjdź");
377 }
378 if(!response)
379 {
380 ShowPlayerDialog(playerid, DIALOG_BUY_VEHICLE, DIALOG_STYLE_LIST, "Na każdą kieszeń", "Clover 45tys\nTampa 40tys", "Wybierz", "Wróć");
381 pojazdid[playerid] = 0;
382 CenaPojazdu[playerid] = 0;
383 }
384 }
385 case DIALOG_BUY_TAMPA:
386 {
387 if(response)
388 {
389 SendClientMessage(playerid, -1, "Wybierz kolor wybranego wozu");
390 ShowPlayerDialog(playerid, DIALOG_WYBOR_COL1, DIALOG_STYLE_LIST, "Wybierz Kolor 1", "Czarny\nBialy\nJasno-niebieski", "Wybierz", "Wyjdź");
391 }
392 if(!response)
393 {
394 ShowPlayerDialog(playerid, DIALOG_BUY_VEHICLE, DIALOG_STYLE_LIST, "Na każdą kieszeń", "Clover 45tys\nTampa 40tys", "Wybierz", "Wróć");
395 pojazdid[playerid] = 0;
396 CenaPojazdu[playerid] = 0;
397 }
398 }
399 case DIALOG_WYBOR_COL1:
400 {
401 if(response)
402 {
403 switch(listitem)
404 {
405 case 0:
406 {
407 KolorPierwszy[playerid] = 0;
408 ShowPlayerDialog(playerid, DIALOG_WYBOR_COL2, DIALOG_STYLE_LIST, "Wybierz Kolor 2", "Czarny\nBialy\nJasno-niebieski\nCzerwony\nZielony\nRóżowy\nŻółty\nNiebieski\nSzary\nJasno-czerwony\nJasno-zielony\nFioletowy\nInny (Numer)", "Wybierz", "Wyjdź");
409 }
410 case 1:
411 {
412 KolorPierwszy[playerid] = 1;
413 ShowPlayerDialog(playerid, DIALOG_WYBOR_COL2, DIALOG_STYLE_LIST, "Wybierz Kolor 2", "Czarny\nBialy\nJasno-niebieski\nCzerwony\nZielony\nRóżowy\nŻółty\nNiebieski\nSzary\nJasno-czerwony\nJasno-zielony\nFioletowy\nInny (Numer)", "Wybierz", "Wyjdź");
414 }
415 case 2:
416 {
417 KolorPierwszy[playerid] = 2;
418 ShowPlayerDialog(playerid, DIALOG_WYBOR_COL2, DIALOG_STYLE_LIST, "Wybierz Kolor 2", "Czarny\nBialy\nJasno-niebieski\nCzerwony\nZielony\nRóżowy\nŻółty\nNiebieski\nSzary\nJasno-czerwony\nJasno-zielony\nFioletowy\nInny (Numer)", "Wybierz", "Wyjdź");
419 }
420 }
421 }
422 if(!response)
423 {
424 pojazdid[playerid] = 0;
425 CenaPojazdu[playerid] = 0;
426 }
427 }
428 case DIALOG_WYBOR_COL2:
429 {
430 if(response)
431 {
432 switch(listitem)
433 {
434 case 0:
435 {
436 KupowaniePojazdu(playerid, pojazdid[playerid], KolorPierwszy[playerid], 0, CenaPojazdu[playerid]);
437 }
438 case 1:
439 {
440 KupowaniePojazdu(playerid, pojazdid[playerid], KolorPierwszy[playerid], 1, CenaPojazdu[playerid]);
441 }
442 case 2:
443 {
444 KupowaniePojazdu(playerid, pojazdid[playerid], KolorPierwszy[playerid], 2, CenaPojazdu[playerid]);
445 }
446 }
447 }
448 if(!response)
449 {
450 pojazdid[playerid] = 0;
451 CenaPojazdu[playerid] = 0;
452 KolorPierwszy[playerid] = 0;
453 }
454 }
455
456 default: return 0;
457 }
458 return 1;
459}
460
461KupowaniePojazdu(playerid, model, kolor1, kolor2, cena)
462{
463 if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "Wyjdź z pojazdu.");
464
465 new losuj = random(sizeof(LosowyParking));
466 new komunikat[256];
467 new carid;
468
469 if(GetPlayerMoney(playerid) >= cena)
470 {
471 if(model >= 400 && model <= 611)
472 {
473 if(PlayerInfo[playerid][MaPojazd] == 1) return SendClientMessage(playerid, -1, "Nie masz wolnych slotów.");
474
475 vInfo[carid][vehSessionID] = Car_Create(model, LosowyParking[losuj][0], LosowyParking[losuj][1], LosowyParking[losuj][2], LosowyParking[losuj][3], kolor1, kolor2);
476
477 format(komunikat, sizeof(komunikat), "Kupiłeś %s za %d$. Komendy auta znajdziesz w /auto. Gratulujemy zakupu!", GetVehicleName(model), cena);
478 SendClientMessage(playerid, -1, komunikat);
479
480 GivePlayerMoney(playerid, -cena);
481
482 format(komunikat, sizeof(komunikat), "%s kupil pojazd %s za %d$. UID %d", GetName(playerid), GetVehicleName(model), cena, vInfo[carid][vehSessionID]);
483 SendClientMessageToAll(-1, komunikat);
484
485 PutPlayerInVehicle(playerid, vInfo[carid][vehSessionID], 0);
486 }
487 else
488 {
489 SendClientMessage(playerid, -1, "BÅÄ„D - zÅ‚y model! ZgÅ‚oÅ› okolicznoÅ›ci na forum.");
490 }
491 }
492 else
493 {
494 format(komunikat, sizeof(komunikat), "Nie stać Cię na zakup tego pojazdu. Kosztuje on %d$ a Ty posiadasz tylko %d$.", cena, GetPlayerMoney(playerid));
495 SendClientMessage(playerid, -1, komunikat);
496 }
497 return 1;
498}
499
500stock Car_Create(model, Float:x, Float:y, Float:z, Float:angle, color1, color2)
501{
502 new query[220];
503 new index;
504
505 format(vInfo[index][vehName], MAX_PLAYER_NAME, GetVehicleName(model));
506 format(vInfo[index][vehOwner], MAX_PLAYER_NAME, GetName(index));
507
508 vInfo[index][vehID] = cache_insert_id();
509 vInfo[index][vehSessionID] = CreateVehicle(model, x, y, z, angle, color1, color2, -1);
510 vInfo[index][vehModel] = model;
511 vInfo[index][vehColorOne] = color1;
512 vInfo[index][vehColorTwo] = color2;
513 vInfo[index][vehX] = x;
514 vInfo[index][vehY] = y;
515 vInfo[index][vehZ] = z;
516 vInfo[index][vehA] = angle;
517
518 mysql_format(g_SQL, query, sizeof(query),
519 "INSERT INTO `privcars` (vehModel, vehName, vehOwner, vehColorOne, vehColorTwo, vehX, vehY, vehZ, vehA) VALUES (%d, '%e', '%e', %d, %d, %f, %f, %f, %f)",
520 vInfo[index][vehModel], vInfo[index][vehName], vInfo[index][vehOwner], vInfo[index][vehColorOne], vInfo[index][vehColorTwo], vInfo[index][vehX],
521 vInfo[index][vehY], vInfo[index][vehZ], vInfo[index][vehA]);
522 mysql_query(g_SQL, query);
523
524 return 1;
525}
526
527AssignPlayerData(playerid)
528{
529 cache_get_value_int(0, "ID", PlayerInfo[playerid][ID]);
530 cache_get_value_int(0, "Money", PlayerInfo[playerid][Money]);
531 cache_get_value_int(0, "MaPojazd", PlayerInfo[playerid][MaPojazd]);
532 return 1;
533}
534
535SetupPlayerTable()
536{
537 new query[1000];
538 strcat(query, "CREATE TABLE IF NOT EXISTS `accounts` (");
539 strcat(query, "`ID` INT(11) NOT NULL AUTO_INCREMENT,");
540 strcat(query, "`Nick` VARCHAR(24) NOT NULL,");
541 strcat(query, "`Password` CHAR(129) NOT NULL,");
542 strcat(query, "`Money` INT NOT NULL DEFAULT '0',");
543 strcat(query, "`MaPojazd` INT NOT NULL DEFAULT '0',");
544 strcat(query, "PRIMARY KEY (`ID`), UNIQUE KEY `Nick` (`Nick`))");
545 mysql_tquery(g_SQL, query);
546 return 1;
547}
548
549SetupPrivCarTable()
550{
551 mysql_tquery(g_SQL, "CREATE TABLE IF NOT EXISTS `privcars` (\
552 `vehID` int(11) NOT NULL AUTO_INCREMENT,\
553 `vehModel` int(11) NOT NULL,\
554 `vehName` varchar(25) NOT NULL,\
555 `vehOwner` varchar(25) NOT NULL default '-',\
556 `vehColorOne` int(11) NOT NULL,\
557 `vehColorTwo` int(11) NOT NULL,\
558 `vehX` float NOT NULL,\
559 `vehY` float NOT NULL,\
560 `vehZ` float NOT NULL,\
561 `vehA` float NOT NULL,\
562 PRIMARY KEY (`vehID`))");
563 return 1;
564}
565
566ZerujZmienne(playerid)
567{
568 Zalogowany[playerid] = 0;
569
570 PlayerInfo[playerid][Money] = 0;
571 PlayerInfo[playerid][MaPojazd] = 0;
572 return 1;
573}
574
575stock GetName(playerid)
576{
577 new pName[MAX_PLAYER_NAME+1];
578 GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
579 return pName;
580}
581
582GetVehicleName(modelid)
583{
584 new string[20];
585 format(string, sizeof(string), "%s", VehicleNames[modelid - 400]);
586 return string;
587}
588
589CMD:kuppojazd(playerid)
590{
591 if(IsPlayerInRangeOfPoint(playerid, 10.0, 2132.0371, -1149.7332, 24.2372))
592 {
593 if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "Wyjdź z pojazdu.");
594 ShowPlayerDialog(playerid, DIALOG_BUY_VEHICLE, DIALOG_STYLE_LIST, "Wybierz kategorię kupowanego pojazdu", "Na każdą kieszeń", "Wybierz", "Wyjdź");
595 }
596 else
597 {
598 SendClientMessage(playerid, -1, "Nie jesteÅ› przy salonie aut.");
599 }
600 return 1;
601}
602
603CMD:v(playerid, params[])
604{
605 new bool:found = false, list[512];
606
607 for(new i = 0; i < 1; i++)
608 {
609 if(!strcmp(vInfo[i][vehOwner], GetName(playerid)))
610 {
611 found = true;
612 format(list, sizeof(list), "Pojazd UID: %d | Właściciel: %s | Nazwa: %s", i, vInfo[i][vehOwner], vInfo[i][vehName]);
613 }
614 }
615 if(found == true) return ShowPlayerDialog(playerid, DIALOG_VEHICLES, DIALOG_STYLE_LIST, list, "Lista 1\nLista 2", "Wybierz", "Zamknij");
616 else return ShowPlayerDialog(playerid, 2114, DIALOG_STYLE_MSGBOX, "Pojazd", "Nie posiadasz prywatnego pojazdu.", "Zamknij", "");
617}