· 7 years ago · Sep 19, 2018, 06:38 PM
1
2#include <a_samp>
3#include <a_mysql>
4#include <zcmd>
5#include <sscanf2>
6#include <YSI\y_iterate>
7
8// MySQL Bilgileri:
9#define SQL_HOST "127.0.0.1"
10#define SQL_USER "Administrador"
11#define SQL_PASSWORD "2287"
12#define SQL_DBNAME "xfr_testdb"
13//-----------------
14
15// Settings (You can change this setting as you want):
16#define OYUNCU_MAX_ARAC 5 // Maximum car amount that one player can buy.
17#define GARAJ_MAX_ARAC 3 // Maximum car amount that one player can put into the garage.
18//-----------------
19
20// Tanýmlamalar:
21#define XV_DIALOGID 3500 // If dialogs make trouble, only change this ID.
22
23enum xv_data
24{
25 xv_Veh,
26 xv_ModelID,
27 xv_Renk[2],
28 Float:xv_Pos[4],
29 xv_Paintjob,
30 xv_Parca[14],
31 xv_Sahip[24],
32 xv_Plaka[8],
33 xv_Garajda,
34 Text3D:xv_Text,
35 xv_Fiyat,
36 xv_HizliPark
37};
38
39new
40 xVehicle[MAX_VEHICLES][xv_data],
41 xVeh[MAX_VEHICLES],
42 offerTimer[MAX_PLAYERS],
43 Iterator:xVehicles<MAX_VEHICLES>,
44 Iterator:xVehicleKeys<MAX_PLAYERS, MAX_VEHICLES>,
45 MySQL:mysqlB
46;
47
48new VehicleNames[][] =
49{
50 "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel",
51 "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus",
52 "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam",
53 "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BFInjection",
54 "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus",
55 "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie",
56 "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral",
57 "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder",
58 "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "BerkleysRCVan",
59 "Skimmer", "PCJ-600", "Faggio", "Freeway", "RCBaron", "RCRaider", "Glendale",
60 "Oceanic","Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy",
61 "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX",
62 "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "NewsChopper",
63 "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking",
64 "BlistaCompact", "PoliceMaverick", "Boxvillde", "Benson", "Mesa", "RCGoblin",
65 "HotringRacerA", "HotringRacerB", "BloodringBanger", "Rancher", "SuperGT",
66 "Elegant", "Journey", "Bike", "MountainBike", "Beagle", "Cropduster", "Stunt",
67 "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra",
68 "FCR-900", "NRG-500", "HPV1000", "CementTruck", "TowTruck", "Fortune",
69 "Cadrona", "FBITruck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer",
70 "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent",
71 "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo",
72 "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite",
73 "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratium",
74 "Elegy", "Raindance", "RCTiger", "Flash", "Tahoma", "Savanna", "Bandito",
75 "FreightFlat", "StreakCarriage", "Kart", "Mower", "Dune", "Sweeper",
76 "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400",
77 "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club",
78 "FreightBox", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "LSPD",
79 "SFPD", "LVPD", "PoliceRanger", "Picador", "S.W.A.T", "Alpha",
80 "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville",
81 "Tiller", "UtilityTrailer"
82};
83
84public OnFilterScriptInit()
85{
86
87 print("+----------------------------------------------------------------------+");
88 print("| |");
89 print("| 888 888 888 d8b 888 |");
90 print("| 888 888 888 Y8P 888 |");
91 print("| 888 888 888 888 |");
92 print("| 888 888 Y88b d88P .d88b. 88888b. 888 .d8888b 888 .d88b. |");
93 print("| `Y8bd8P' Y88b d88P d8P Y8b 888 '88b 888 d88P' 888 d8P Y8b |");
94 print("| X88K Y88o88P 88888888 888 888 888 888 888 88888888 |");
95 print("| .d8''8b. Y888P Y8b. 888 888 888 Y88b. 888 Y8b. |");
96 print("| 888 888 Y8P 'Y8888 888 888 888 'Y8888P 888 'Y8888 |");
97 print("| |");
98 print("+--------------------------------------------------+-------------------+");
99 print(" | .d888b. |");
100 print(" | VP `8D |");
101 print(" | Y8 8P odD' |");
102 print(" | `8b d8' .88' |");
103 print(" | `8bd8' j88. |");
104 print(" | YP 888888D |");
105 print(" +-------------------+");
106
107 print("[xVeh MySql] Connecting to database...");
108
109 mysqlB = mysql_connect(SQL_HOST, SQL_USER, SQL_PASSWORD, SQL_DBNAME);
110 mysql_log(ALL);
111 if (mysql_errno(mysqlB) == 0) print("[xVeh MySql] Connection successful!");
112 else print("[xVeh MySql] The connection has failed!\n\n[!!! xVehicle v2 couldn't init !!!]\n\n");
113
114 new query[1024];
115
116 strcat(query, "CREATE TABLE IF NOT EXISTS `xVehicle` (\
117 `ID` int(11),\
118 `Sahip` varchar(48) default '',\
119 `Fiyat` int(11) default '0',\
120 `X` float default '0',\
121 `Y` float default '0',\
122 `Z` float default '0',\
123 `A` float default '0',\
124 `HizliPark` int(2) default '0',\
125 `Model` int(5) default '0',\
126 `Renk1` int(5) default '0',\
127 `Renk2` int(5) default '0',\
128 `Plaka` varchar(8),\
129 `Garajda` int(2) default '0',\
130 `PJ` int(5) default '-1',");
131
132 strcat(query, "`Parca1` int(8) default '0',\
133 `Parca2` int(8) default '0',\
134 `Parca3` int(8) default '0',\
135 `Parca4` int(8) default '0',\
136 `Parca5` int(8) default '0',\
137 `Parca6` int(8) default '0',\
138 `Parca7` int(8) default '0',\
139 `Parca8` int(8) default '0',");
140
141
142 strcat(query, "`Parca9` int(8) default '0',\
143 `Parca10` int(8) default '0',\
144 `Parca11` int(8) default '0',\
145 `Parca12` int(8) default '0',\
146 `Parca13` int(8) default '0',\
147 `Parca14` int(8) default '0',\
148 PRIMARY KEY (`ID`),\
149 UNIQUE KEY `ID_2` (`ID`),\
150 KEY `ID` (`ID`)\
151 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
152
153 mysql_query(mysqlB, query);
154
155 mysql_query(mysqlB, "CREATE TABLE IF NOT EXISTS `xVehicleKeys` (\
156 `AracID` int(11) NOT NULL,\
157 `Isim` varchar(24) NOT NULL\
158 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
159
160 Iter_Add(xVehicles, 0);
161
162 mysql_tquery(mysqlB, "SELECT * FROM `xVehicle`", "LoadxVehicles");
163 return 1;
164}
165
166/* --[ Komutlar Baþlangýç ]-- */
167
168CMD:park(playerid, params[])
169{
170 if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}You have to be in a vehicle to use that command!");
171 new xid = xVeh[GetPlayerVehicleID(playerid)];
172 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}You can't park this vehicle! This car is not in the vehicle system");
173 if(xStrcmp(Isim(playerid), xVehicle[xid][xv_Sahip]) && !Iter_Contains(xVehicleKeys<playerid>, xid) && !IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}You can't park this vehicle because of you don't have this car's keys!");
174 if(xVehicle[xid][xv_HizliPark]) SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}Your vehicle has parked! {FFFB93}Quick Park feature deactivated!");
175 else SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}Your vehicle has parked!");
176 xVehicle[xid][xv_HizliPark] = 0;
177 GetVehiclePos(GetPlayerVehicleID(playerid), xVehicle[xid][xv_Pos][0], xVehicle[xid][xv_Pos][1], xVehicle[xid][xv_Pos][2]);
178 GetVehicleZAngle(GetPlayerVehicleID(playerid), xVehicle[xid][xv_Pos][3]);
179 SavexVehicle(xid);
180 return 1;
181}
182
183CMD:v(playerid, params[])
184{
185 if(IsPlayerInAnyVehicle(playerid) && xVeh[GetPlayerVehicleID(playerid)] != 0) ShowPlayerDialog(playerid, XV_DIALOGID+6, DIALOG_STYLE_LIST, "Vehicle Menu", "{DCDC22}» {FFFB93}This Vehicle\n{DCDC22}» {FFFB93}My Own Vehicles\n{DCDC22}» {FFFB93}Vehicles That I Have Keys", "Select", "Close");
186 else ShowPlayerDialog(playerid, XV_DIALOGID+6, DIALOG_STYLE_LIST, "Vehicle Menu", "{DCDC22}» {FFFB93}My Own Vehicles\n{DCDC22}» {FFFB93}Vehicles That I Have Keys", "Select", "Close");
187 return 1;
188}
189
190CMD:amenu(playerid, params[])
191{
192 if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Only admins can use that command!");
193 ShowPlayerDialog(playerid, XV_DIALOGID+16, DIALOG_STYLE_LIST, "xVehicle Admin Menu", "{DCDC22}» {FFFB93}All Vehicles\n{DCDC22}» {FFFB93}Respawn All Vehicles\n{DCDC22}» {FFFB93}Create Vehicle", "Select", "Close");
194 return 1;
195}
196
197/* --[Komutlar Bitiþ]-- */
198
199public OnPlayerConnect(playerid)
200{
201 SetPVarInt(playerid, "xv_teklif_id", INVALID_PLAYER_ID);
202 SetPVarInt(playerid, "xv_teklif_gonderen", INVALID_PLAYER_ID);
203 LoadxVehicleKeys(playerid);
204 return 1;
205}
206
207public OnPlayerDisconnect(playerid, reason)
208{
209 if(GetPVarInt(playerid, "xv_teklif_gonderen") != INVALID_PLAYER_ID)
210 {
211 new gonderen = GetPVarInt(playerid, "xv_teklif_gonderen");
212 KillTimer(offerTimer[playerid]);
213 SetPVarInt(gonderen, "xv_teklif_id", INVALID_PLAYER_ID);
214 SendClientMessage(gonderen, -1, "{FF0000}[!] {DCDC22}Your vehicle offer has cancelled because of the player that you offered has disconnected.");
215 }
216
217 if(GetPVarInt(playerid, "xv_teklif_id") != INVALID_PLAYER_ID)
218 {
219 new alan = GetPVarInt(playerid, "xv_teklif_id");
220 SetPVarInt(alan, "xv_teklif_gonderen", INVALID_PLAYER_ID);
221 DeletePVar(alan, "xv_teklif_xid");
222 DeletePVar(alan, "xv_teklif_fiyat");
223 KillTimer(offerTimer[alan]);
224 SendClientMessage(alan, -1, "{FF0000}[!] {DCDC22}The offer has cancelled because of the player that make the offer has disconnected.");
225 }
226
227 if(IsPlayerInAnyVehicle(playerid))
228 {
229 new xid = xVeh[GetPlayerVehicleID(playerid)], Float:xvHP;
230 GetVehicleHealth(GetPlayerVehicleID(playerid), xvHP);
231 if(xid != 0 && xVehicle[xid][xv_HizliPark] == 1 && !IsVehicleFlipped(GetPlayerVehicleID(playerid)) && xvHP > 300)
232 {
233 GetVehiclePos(GetPlayerVehicleID(playerid), xVehicle[xid][xv_Pos][0], xVehicle[xid][xv_Pos][1], xVehicle[xid][xv_Pos][2]);
234 GetVehicleZAngle(GetPlayerVehicleID(playerid), xVehicle[xid][xv_Pos][3]);
235 SavexVehicle(xid);
236 }
237 }
238 return 1;
239}
240
241public OnPlayerStateChange(playerid, newstate, oldstate)
242{
243 if(newstate == PLAYER_STATE_DRIVER)
244 {
245 new xid = xVeh[GetPlayerVehicleID(playerid)];
246 if(xid != 0)
247 {
248 if(!strlen(xVehicle[xid][xv_Sahip]))
249 {
250 new str[512];
251 format(str, sizeof str, "{FFFFFF}---------------------------[Vehicle For Sale]---------------------------\n", str);
252 format(str, sizeof str, "%s\n", str);
253 format(str, sizeof str, "%s{00D700}This Vehicle Is For Sale!\n", str);
254 format(str, sizeof str, "%s\n{0098FF}Vehicle Name: {FFFF00}%s\n", str, GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]));
255 format(str, sizeof str, "%s{0098FF}Plate Number: {FFFF00}%s\n", str, xVehicle[xid][xv_Plaka]);
256 format(str, sizeof str, "%s{0098FF}Price: {FFFF00}$%d\n", str, xVehicle[xid][xv_Fiyat]);
257 format(str, sizeof str, "%s\n{FF8000}Do you want to buy this vehicle?{00D700}\n", str);
258 format(str, sizeof str, "%s\n{FFFFFF}-------------------------------------------------------------------------", str);
259 ShowPlayerDialog(playerid, XV_DIALOGID+5, DIALOG_STYLE_MSGBOX, "Vehicle For Sale", str, "Buy", "Close");
260 }
261 else if(xStrcmp(Isim(playerid), xVehicle[xid][xv_Sahip]) && !Iter_Contains(xVehicleKeys<playerid>, xid))
262 {
263 SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}You don't have this car's keys!");
264 RemovePlayerFromVehicle(playerid);
265 }
266 else
267 {
268 SendClientMessage(playerid, -1, "{00FF00}[!] {DCDC22}Type {ECB021}/v {DCDC22}for the vehicle menu.");
269 }
270 }
271 }
272 return 1;
273}
274
275public OnPlayerExitVehicle(playerid, vehicleid)
276{
277 new xid = xVeh[vehicleid], Float:xvHP;
278 GetVehicleHealth(vehicleid, xvHP);
279 if(xid != 0 && xVehicle[xid][xv_HizliPark] == 1 && !IsVehicleFlipped(vehicleid) && xvHP > 300)
280 {
281 GetVehiclePos(vehicleid, xVehicle[xid][xv_Pos][0], xVehicle[xid][xv_Pos][1], xVehicle[xid][xv_Pos][2]);
282 GetVehicleZAngle(vehicleid, xVehicle[xid][xv_Pos][3]);
283 SavexVehicle(xid);
284 }
285 return 1;
286}
287
288public OnVehicleSpawn(vehicleid)
289{
290 new xid = xVeh[vehicleid];
291 if(xid != 0)
292 {
293 DestroyVehicle(xVehicle[xid][xv_Veh]);
294 xVehicle[xid][xv_Veh] = CreateVehicle(xVehicle[xid][xv_ModelID], xVehicle[xid][xv_Pos][0], xVehicle[xid][xv_Pos][1], xVehicle[xid][xv_Pos][2], xVehicle[xid][xv_Pos][3], xVehicle[xid][xv_Renk][0], xVehicle[xid][xv_Renk][1], -1);
295 xVeh[xVehicle[xid][xv_Veh]] = xid;
296 SetVehicleNumberPlate(xVehicle[xid][xv_Veh], xVehicle[xid][xv_Plaka]);
297 LoadVehicleMod(xid);
298 }
299 return 1;
300}
301
302public OnVehicleRespray(playerid, vehicleid, color1, color2)
303{
304 new xid = xVeh[vehicleid];
305 if(xid != 0)
306 {
307 xVehicle[xid][xv_Renk][0] = color1;
308 xVehicle[xid][xv_Renk][1] = color2;
309 }
310 return 1;
311}
312
313public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
314{
315 new xid = xVeh[vehicleid];
316 if(xid != 0) xVehicle[xid][xv_Paintjob] = paintjobid;
317 return 1;
318}
319
320public OnVehicleMod(playerid,vehicleid,componentid)
321{
322 new xid = xVeh[vehicleid];
323 if(xid != 0)
324 {
325 for(new i; i<14; i++)
326 {
327 xVehicle[xid][xv_Parca][i] = GetVehicleComponentInSlot(vehicleid, i);
328 }
329 }
330 return 1;
331}
332
333public OnPlayerEnterCheckpoint(playerid)
334{
335 DisablePlayerCheckpoint(playerid);
336 return 1;
337}
338
339public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
340{
341 if(dialogid == XV_DIALOGID)
342 {
343 if(response)
344 {
345 new tmp[8], xid;
346 GetPVarString(playerid, "selected_veh_plate", tmp, 8);
347 xid = GetVehiclexIDFromPlate(tmp);
348 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
349
350 switch(listitem)
351 {
352 case 0: // arac nerede?
353 {
354 if(xVehicle[xid][xv_Garajda])
355 {
356 if(!xStrcmp(xVehicle[xid][xv_Sahip], Isim(playerid))) ShowPlayerDialog(playerid, XV_DIALOGID+4, DIALOG_STYLE_MSGBOX, "Where Is My Car?", "{FFA500}This vehicle is in the garage. You can take it from the garage by choosing the option in the vehicle menu.", "Back", "");
357 else ShowPlayerDialog(playerid, XV_DIALOGID+4, DIALOG_STYLE_MSGBOX, "Where Is My Car?", "{FFA500}This vehicle is in the garage. Only the vehicle owner can take it out from the garage.", "Back", "");
358 }
359 else
360 {
361 new Float:vpos[3];
362 GetVehiclePos(xVehicle[xid][xv_Veh], vpos[0], vpos[1], vpos[2]);
363 SetPlayerCheckpoint(playerid, vpos[0], vpos[1], vpos[2], 3);
364 SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}Vehicle has marked on the map!");
365 }
366 }
367 case 1: // garaj sok/çýkar
368 {
369 if(xStrcmp(xVehicle[xid][xv_Sahip], Isim(playerid))) return ShowPlayerDialog(playerid, XV_DIALOGID+4, DIALOG_STYLE_MSGBOX, inputtext, "{FF0000}[ERROR] {FFA500}Only the vehicle owner can use this feature!", "Back", "");
370 if(xVehicle[xid][xv_Garajda])
371 {
372 new str[128];
373 GetPlayerPos(playerid, xVehicle[xid][xv_Pos][0], xVehicle[xid][xv_Pos][1], xVehicle[xid][xv_Pos][2]);
374 GetPlayerFacingAngle(playerid, xVehicle[xid][xv_Pos][3]);
375 xVehicle[xid][xv_Pos][3] += 90;
376 GetXYInFrontOfPlayer(playerid, xVehicle[xid][xv_Pos][0], xVehicle[xid][xv_Pos][1], 3);
377 xVehicle[xid][xv_Veh] = CreateVehicle(xVehicle[xid][xv_ModelID], xVehicle[xid][xv_Pos][0], xVehicle[xid][xv_Pos][1], xVehicle[xid][xv_Pos][2], xVehicle[xid][xv_Pos][3], xVehicle[xid][xv_Renk][0], xVehicle[xid][xv_Renk][1], -1);
378 xVeh[xVehicle[xid][xv_Veh]] = xid;
379 SetVehicleNumberPlate(xVehicle[xid][xv_Veh], xVehicle[xid][xv_Plaka]);
380 SetVehicleToRespawn(xVehicle[xid][xv_Veh]);
381 xVehicle[xid][xv_Garajda] = 0;
382 SavexVehicle(xid);
383 format(str, sizeof(str), "{ECEC13}%s {FFFB93}with {ECEC13}%s {FFFB93}plate number has taken from the garage!", GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]), xVehicle[xid][xv_Plaka]);
384 SendClientMessage(playerid, -1, str);
385 }
386 else
387 {
388 if(GetPlayerInGarageVehicleCount(playerid) >= GARAJ_MAX_ARAC) return SendClientMessage(playerid, -1, "{FF0000}[!] {DCDC22}You have reached the limit! You can't put more vehicles into the garage.");
389 new str[128];
390 DestroyVehicle(xVehicle[xid][xv_Veh]);
391 xVehicle[xid][xv_Garajda] = 1;
392 SavexVehicle(xid);
393 format(str, sizeof(str), "{ECEC13}%s {FFFB93}with {ECEC13}%s {FFFB93}plate number has put into the garage!", GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]), xVehicle[xid][xv_Plaka]);
394 SendClientMessage(playerid, -1, str);
395 }
396 }
397 case 2:
398 {
399 new str[288];
400 format(str, sizeof(str), "{FFFB93}Quick Park is a system that parks your vehicle automatically when you get off the vehicle.\nWhen you get off the car, if the vehicle isn't upside down or the vehicle's health more than 300 your vehicle will be parked, otherwise not.\n\nQuick Park is currently %s", (xVehicle[xid][xv_HizliPark]) ? ("{00FF00}Active") : ("{FF0000}Deactive"));
401 ShowPlayerDialog(playerid, XV_DIALOGID+1, DIALOG_STYLE_MSGBOX, "Quick Park", str, (xVehicle[xid][xv_HizliPark]) ? ("Deactivate") : ("Activate"), "Back");
402 }
403 case 3:
404 {
405 if(xStrcmp(xVehicle[xid][xv_Sahip], Isim(playerid))) return ShowPlayerDialog(playerid, XV_DIALOGID+4, DIALOG_STYLE_MSGBOX, "Vehicle Keys", "{FF0000}[ERROR] {FFA500}Only the vehicle owner can use this feature!", "Back", "");
406 ShowPlayerDialog(playerid, XV_DIALOGID+2, DIALOG_STYLE_LIST, "Vehicle Keys", "{DCDC22}» {FFFB93}View Key Owners\n{DCDC22}» {FFFB93}Give Someone Key\n{DCDC22}» {FFFB93}Change the Lock", "Select", "Back");
407 }
408 case 4:
409 {
410 if(xStrcmp(xVehicle[xid][xv_Sahip], Isim(playerid))) return ShowPlayerDialog(playerid, XV_DIALOGID+4, DIALOG_STYLE_MSGBOX, "Vehicle Sale", "{FF0000}[ERROR] {FFA500}Only the vehicle owner can use this feature!", "Back", "");
411 ShowPlayerDialog(playerid, XV_DIALOGID+8, DIALOG_STYLE_LIST, "Sell The Vehicle", "{DCDC22}» {FFFB93}Sell To Car Dealer\n{DCDC22}» {FFFB93}Sell To Player", "Select", "Back");
412 }
413 case 5:
414 {
415 new str[256];
416 format(str, sizeof(str), "{FFFFFF}----------[ Vehicle Information ]----------\n\n{F0AE0F}-» {ECE913}Owner: {FFFFFF}%s\n{F0AE0F}-» {ECE913}Vehicle Name: {FFFFFF}%s\n{F0AE0F}-» {ECE913}Plate Number: {FFFFFF}%s", xVehicle[xid][xv_Sahip], GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]), xVehicle[xid][xv_Plaka]);
417 ShowPlayerDialog(playerid, XV_DIALOGID+4, DIALOG_STYLE_MSGBOX, " Vehicle Information", str, "Back", "");
418 }
419 }
420 }
421 else
422 {
423 DeletePVar(playerid, "selected_veh_plate");
424 cmd_v(playerid, "");
425 }
426 }
427
428 if(dialogid == XV_DIALOGID+1)
429 {
430 new tmp[8], xid;
431 GetPVarString(playerid, "selected_veh_plate", tmp, 8);
432 xid = GetVehiclexIDFromPlate(tmp);
433 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
434
435 if(response)
436 {
437 switch(xVehicle[xid][xv_HizliPark])
438 {
439 case 0:
440 {
441 SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}Quick Park has activated!");
442 xVehicle[xid][xv_HizliPark] = 1;
443 xvMenuGoster(playerid);
444 }
445 case 1:
446 {
447 SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}Quick Park has deactivated!");
448 xVehicle[xid][xv_HizliPark] = 0;
449 xvMenuGoster(playerid);
450 }
451 }
452 } else xvMenuGoster(playerid);
453 }
454
455 if(dialogid == XV_DIALOGID+2)
456 {
457 if(response)
458 {
459 new tmp[8], xid;
460 GetPVarString(playerid, "selected_veh_plate", tmp, 8);
461 xid = GetVehiclexIDFromPlate(tmp);
462 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
463
464 switch(listitem)
465 {
466 case 0:
467 {
468 new query[128], Cache:keys;
469 mysql_format(mysqlB, query, sizeof(query), "SELECT Isim FROM xVehicleKeys WHERE AracID=%d ORDER BY AracID DESC LIMIT %d, 15", xid, GetPVarInt(playerid, "xvKeysPage")*15);
470 keys = mysql_query(mysqlB, query);
471 new rows = cache_num_rows();
472 if(rows)
473 {
474 new list[512], o_isim[MAX_PLAYER_NAME];
475 format(list, sizeof(list), "Player Name\n");
476 for(new i; i < rows; ++i)
477 {
478 cache_get_value_name(i, "Isim", o_isim);
479 format(list, sizeof(list), "%s%s\n", list, o_isim);
480 }
481 format(list, sizeof(list), "%s{F4D00B}<< Previous Page\n{F4D00B}>> Next Page", list);
482 ShowPlayerDialog(playerid, XV_DIALOGID+3, DIALOG_STYLE_TABLIST_HEADERS, "Key Owners (Page 1)", list, "Select", "Back");
483 }
484 else
485 {
486 SendClientMessage(playerid, 0xE74C3CFF, "No one has your vehicle's keys!");
487 }
488 cache_delete(keys);
489 }
490 case 1: ShowPlayerDialog(playerid, XV_DIALOGID+13, DIALOG_STYLE_INPUT, "Give Vehicle Key", "{FFFB93}Enter the player's ID or name that you want to give the key:", "Next", "Back");
491 case 2:
492 {
493 ShowPlayerDialog(playerid, XV_DIALOGID+15, DIALOG_STYLE_MSGBOX, "Change The Lock", "{FFFB93}Are you sure that you want to change the lock?\nAll keys will be removed from key owners.", "Confirm", "Back");
494 }
495 }
496 } else xvMenuGoster(playerid);
497 }
498
499 if(dialogid == XV_DIALOGID+3)
500 {
501 if(response)
502 {
503 new tmp[8], xid;
504 GetPVarString(playerid, "selected_veh_plate", tmp, 8);
505 xid = GetVehiclexIDFromPlate(tmp);
506 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
507
508 if(!xStrcmp(inputtext, "<< Previous Page"))
509 {
510 SetPVarInt(playerid, "xvKeysPage", GetPVarInt(playerid, "xvKeysPage")-1);
511 if(GetPVarInt(playerid, "xvKeysPage") < 0)
512 {
513 SetPVarInt(playerid, "xvKeysPage", 0);
514 ShowPlayerDialog(playerid, XV_DIALOGID+2, DIALOG_STYLE_LIST, "Vehicle Keys", "{DCDC22}» {FFFB93}View Key Owners\n{DCDC22}» {FFFB93}Give Someone Key\n{DCDC22}» {FFFB93}Change the Lock", "Select", "Back");
515 return 1;
516 }
517
518 new query[128], Cache:keys;
519 mysql_format(mysqlB, query, sizeof(query), "SELECT Isim FROM xVehicleKeys WHERE AracID=%d ORDER BY AracID DESC LIMIT %d, 15", xid, GetPVarInt(playerid, "xvKeysPage")*15);
520 keys = mysql_query(mysqlB, query);
521 new rows = cache_num_rows();
522 if(rows)
523 {
524 new list[512], o_isim[MAX_PLAYER_NAME];
525 format(list, sizeof(list), "Player Name\n");
526 for(new i; i < rows; ++i)
527 {
528 cache_get_value_name(i, "Isim", o_isim);
529 format(list, sizeof(list), "%s%s\n", list, o_isim);
530 }
531 format(list, sizeof(list), "%s{F4D00B}<< Previous Page\n{F4D00B}>> Next Page", list);
532 new head[32];
533 format(head, sizeof(head), "Key Owners (Page %d)", GetPVarInt(playerid, "xvKeysPage")+1);
534 ShowPlayerDialog(playerid, XV_DIALOGID+3, DIALOG_STYLE_TABLIST_HEADERS, head, list, "Select", "Back");
535 }
536 else
537 {
538 /*SetPVarInt(playerid, "xvKeysPage", 0);
539 ShowPlayerDialog(playerid, XV_DIALOGID+2, DIALOG_STYLE_LIST, "Aracýn Anahtarlarý", "Anahtarý Olanlarý Gör\nBirine Anahtar Ver\nKilidi Deðiþtir", "Select", "Back");
540 */
541 SendClientMessage(playerid, 0xE74C3CFF, "There is no more key owners!");
542 }
543 cache_delete(keys);
544 }
545 else if(!xStrcmp(inputtext, ">> Next Page"))
546 {
547 SetPVarInt(playerid, "xvKeysPage", GetPVarInt(playerid, "xvKeysPage")+1);
548
549 new query[128], Cache:keys;
550 mysql_format(mysqlB, query, sizeof(query), "SELECT Isim FROM xVehicleKeys WHERE AracID=%d ORDER BY AracID DESC LIMIT %d, 15", xid, GetPVarInt(playerid, "xvKeysPage")*15);
551 keys = mysql_query(mysqlB, query);
552 new rows = cache_num_rows();
553 if(rows)
554 {
555 new list[512], o_isim[MAX_PLAYER_NAME];
556 format(list, sizeof(list), "Player Name\n");
557 for(new i; i < rows; ++i)
558 {
559 cache_get_value_name(i, "Isim", o_isim);
560 format(list, sizeof(list), "%s%s\n", list, o_isim);
561 }
562 format(list, sizeof(list), "%s{F4D00B}<< Previous Page\n{F4D00B}>> Next Page", list);
563 new head[32];
564 format(head, sizeof(head), "Key Owners (Sayfa %d)", GetPVarInt(playerid, "xvKeysPage")+1);
565 ShowPlayerDialog(playerid, XV_DIALOGID+3, DIALOG_STYLE_TABLIST_HEADERS, head, list, "Select", "Back");
566 }
567 else
568 {
569 SetPVarInt(playerid, "xvKeysPage", GetPVarInt(playerid, "xvKeysPage") - 1);
570 mysql_format(mysqlB, query, sizeof(query), "SELECT Isim FROM xVehicleKeys WHERE AracID=%d ORDER BY AracID DESC LIMIT %d, 15", xid, GetPVarInt(playerid, "xvKeysPage")*15);
571 keys = mysql_query(mysqlB, query);
572 rows = cache_num_rows();
573 if(rows)
574 {
575 new list[512], o_isim[MAX_PLAYER_NAME];
576 format(list, sizeof(list), "Player Name\n");
577 for(new i; i < rows; ++i)
578 {
579 cache_get_value_name(i, "Isim", o_isim);
580 format(list, sizeof(list), "%s%s\n", list, o_isim);
581 }
582 format(list, sizeof(list), "%s{F4D00B}<< Previous Page\n{F4D00B}>> Next Page", list);
583 new head[32];
584 format(head, sizeof(head), "Key Owners (Sayfa %d)", GetPVarInt(playerid, "xvKeysPage")+1);
585 ShowPlayerDialog(playerid, XV_DIALOGID+3, DIALOG_STYLE_TABLIST_HEADERS, head, list, "Select", "Back");
586 }
587 SendClientMessage(playerid, 0xE74C3CFF, "There is no more key owners!");
588 }
589 cache_delete(keys);
590 }
591 else
592 {
593 SetPVarString(playerid, "tmp_keyname", inputtext);
594 ShowPlayerDialog(playerid, XV_DIALOGID+14, DIALOG_STYLE_LIST, "Vehicle Key", "{DCDC22}» {FFFB93}Take The Key Back", "Apply", "Back");
595 }
596 }
597 }
598
599 if(dialogid == XV_DIALOGID+4) xvMenuGoster(playerid);
600
601 if(dialogid == XV_DIALOGID+5)
602 {
603 if(response)
604 {
605 new xid = xVeh[GetPlayerVehicleID(playerid)];
606 if(GetPlayerxVehicleCount(playerid) >= OYUNCU_MAX_ARAC) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}You have reached the limit! You can't buy more vehicle."), RemovePlayerFromVehicle(playerid);
607 if(GetPlayerMoney(playerid) < xVehicle[xid][xv_Fiyat]) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}You don't have enough money!"), RemovePlayerFromVehicle(playerid);
608 GivePlayerMoney(playerid, -xVehicle[xid][xv_Fiyat]);
609 format(xVehicle[xid][xv_Sahip], 24, "%s", Isim(playerid));
610 SavexVehicle(xid);
611 Delete3DTextLabel(xVehicle[xid][xv_Text]);
612 SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}You have succesfully bought this vehicle! You can manage your vehicles by typing {ECB021}/v");
613 }
614 else
615 {
616 if(!IsPlayerAdmin(playerid)) RemovePlayerFromVehicle(playerid);
617 }
618 }
619
620 if(dialogid == XV_DIALOGID+6)
621 {
622 if(response)
623 {
624 if(!xStrcmp(inputtext, "» This Vehicle"))
625 {
626 SetPVarString(playerid, "selected_veh_plate", xVehicle[xVeh[GetPlayerVehicleID(playerid)]][xv_Plaka]);
627 xvMenuGoster(playerid);
628 }
629 else if(!xStrcmp(inputtext, "» My Own Vehicles"))
630 {
631 new str[256], cnt;
632 format(str, sizeof(str), "Plate Number\tVehicle Name\tState");
633 foreach(new i : xVehicles)
634 {
635 if(!xStrcmp(xVehicle[i][xv_Sahip], Isim(playerid))) format(str, sizeof(str), "%s\n%s\t%s\t%s", str, xVehicle[i][xv_Plaka], GetVehicleNameFromModel(xVehicle[i][xv_ModelID]), (xVehicle[i][xv_Garajda]) ? ("{F0CE0F}In the Garage") : ("{8FE01F}On the Map")), cnt++;
636 }
637 if(!cnt) ShowPlayerDialog(playerid, XV_DIALOGID-1, DIALOG_STYLE_MSGBOX, "My Own Vehicles", "{FF0000}[!] {F0AE0F}You don't have any vehicle!", "OK", "");
638 else ShowPlayerDialog(playerid, XV_DIALOGID+7, DIALOG_STYLE_TABLIST_HEADERS, "My Own Vehicles", str, "Choose Car", "Back");
639 }
640 else if(!xStrcmp(inputtext, "» Vehicles That I Have Keys"))
641 {
642 new str[256], cnt;
643 format(str, sizeof(str), "Plate Number\tVehicle Name\tState");
644 foreach(new i : xVehicleKeys<playerid>)
645 {
646 format(str, sizeof(str), "%s\n%s\t%s\t%s", str, xVehicle[i][xv_Plaka], GetVehicleNameFromModel(xVehicle[i][xv_ModelID]), (xVehicle[i][xv_Garajda]) ? ("{F0CE0F}In the Garage") : ("{8FE01F}On the Map"));
647 cnt++;
648 }
649 if(!cnt) ShowPlayerDialog(playerid, XV_DIALOGID-1, DIALOG_STYLE_MSGBOX, "Vehicles That I Have Keys", "{FFA500}You don't have any vehicle's keys!", "OK", "");
650 else ShowPlayerDialog(playerid, XV_DIALOGID+7, DIALOG_STYLE_TABLIST_HEADERS, "Vehicles That I Have Keys", str, "Choose Car", "Back");
651 }
652 }
653 }
654
655 if(dialogid == XV_DIALOGID+7)
656 {
657 if(response)
658 {
659 new tmp[2][8];
660 split(inputtext, tmp, '\t');
661 SetPVarString(playerid, "selected_veh_plate", tmp[0]);
662 xvMenuGoster(playerid);
663 } else cmd_v(playerid, "");
664 }
665
666 if(dialogid == XV_DIALOGID+8)
667 {
668 if(response)
669 {
670 new str[256], tmpp[8], xid;
671 GetPVarString(playerid, "selected_veh_plate", tmpp, 8);
672 xid = GetVehiclexIDFromPlate(tmpp);
673 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
674
675 switch(listitem)
676 {
677 case 0:
678 {
679 format(str, sizeof(str), "{ECCB13}Are you sure that you want to sell your vehicle to car dealer?\n{FFFB93}Amount of payment: {15EC13}$%d\n\n{AAAAAA}(Payment is %%70 of the price that you bought)", (xVehicle[xid][xv_Fiyat] / 100) * 70);
680 ShowPlayerDialog(playerid, XV_DIALOGID+9, DIALOG_STYLE_MSGBOX, "Sell Vehicle To Car Dealer", str, "Confirm", "Back");
681 }
682 case 1:
683 {
684 if(GetPVarInt(playerid, "xv_teklif_id") != INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}You already offered to a player! Wait for the response for that offer.");
685 if(xVehicle[xid][xv_Garajda]) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Before you sell your vehicle, take it out from the garage!");
686 ShowPlayerDialog(playerid, XV_DIALOGID+10, DIALOG_STYLE_INPUT, "Sell Vehicle to Player", "{FFFB93}Enter the name or ID of the player that you want to sell your vehicle:", "Next", "Back");
687 }
688 }
689 } else xvMenuGoster(playerid);
690 }
691
692 if(dialogid == XV_DIALOGID+9)
693 {
694 if(response)
695 {
696 new query[128], tmpp[8], xid;
697 GetPVarString(playerid, "selected_veh_plate", tmpp, 8);
698 xid = GetVehiclexIDFromPlate(tmpp);
699 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
700
701 GivePlayerMoney(playerid, (xVehicle[xid][xv_Fiyat] / 100) * 70);
702 if(IsValidVehicle(xVehicle[xid][xv_Veh])) DestroyVehicle(xVehicle[xid][xv_Veh]);
703 Iter_Remove(xVehicles, xid);
704 DeletePVar(playerid, "selected_veh_plate");
705 foreach(new i : Player)
706 {
707 if(Iter_Contains(xVehicleKeys<i>, xid)) Iter_Remove(xVehicleKeys<i>, xid);
708 }
709
710 mysql_format(mysqlB, query, sizeof(query), "DELETE FROM xVehicleKeys WHERE AracID=%d", xid);
711 mysql_query(mysqlB, query);
712 mysql_format(mysqlB, query, sizeof(query), "DELETE FROM xVehicle WHERE ID=%d", xid);
713 mysql_query(mysqlB, query);
714 SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}You sold your vehicle!");
715 } else ShowPlayerDialog(playerid, XV_DIALOGID+8, DIALOG_STYLE_LIST, "Sell The Vehicle", "{DCDC22}» {FFFB93}Sell To Car Dealer\n{DCDC22}» {FFFB93}Sell To Player", "Select", "Back");
716 }
717
718 if(dialogid == XV_DIALOGID+10)
719 {
720 if(response)
721 {
722 new pid;
723 if(sscanf(inputtext, "u", pid)) return ShowPlayerDialog(playerid, XV_DIALOGID+10, DIALOG_STYLE_INPUT, "Sell Vehicle to Player", "{FF0000}[!] {F0AE0F}You wrote nothing!\n\n{FFFB93}Enter the name or ID of the player that you want to sell your vehicle:", "Next", "Back");
724 if(!IsPlayerConnected(pid)) return ShowPlayerDialog(playerid, XV_DIALOGID+10, DIALOG_STYLE_INPUT, "Sell Vehicle to Player", "{FF0000}[!] {F0AE0F}Player is not connected!\n\n{FFFB93}Enter the name or ID of the player that you want to sell your vehicle:", "Next", "Back");
725 if(GetPlayerxVehicleCount(playerid) >= OYUNCU_MAX_ARAC) return ShowPlayerDialog(playerid, XV_DIALOGID+10, DIALOG_STYLE_INPUT, "Sell Vehicle to Player", "{FF0000}[!] {F0AE0F}This player has reached the limit! Can't buy more vehicles.\n\n{FFFB93}Enter the name or ID of the player that you want to sell your vehicle:", "Next", "Back");
726 if(GetPVarInt(pid, "xv_teklif_gonderen") != INVALID_PLAYER_ID) return ShowPlayerDialog(playerid, XV_DIALOGID+10, DIALOG_STYLE_INPUT, "Sell Vehicle to Player", "{FF0000}[!] {F0AE0F}Someone else has offed to this player! Wait for that offer first.\n\n{FFFB93}Enter the name or ID of the player that you want to sell your vehicle:", "Next", "Back");
727 SetPVarInt(playerid, "xv_teklif_id", pid);
728 new str[128];
729 format(str, sizeof(str), "{FFFB93}Selected player: {ECEC13}%s {ECB021}(%d)\n\n{FFFB93}Enter the price you want:", Isim(pid), pid);
730 ShowPlayerDialog(playerid, XV_DIALOGID+11, DIALOG_STYLE_INPUT, "Sell the Vehicle - Price", str, "Send Offer", "Back");
731 } else SetPVarInt(playerid, "xv_teklif_id", INVALID_PLAYER_ID), ShowPlayerDialog(playerid, XV_DIALOGID+8, DIALOG_STYLE_LIST, "Sell The Vehicle", "{DCDC22}» {FFFB93}Sell To Car Dealer\n{DCDC22}» {FFFB93}Sell To Player", "Select", "Back");
732 }
733
734 if(dialogid == XV_DIALOGID+11)
735 {
736 if(response)
737 {
738 new tmpp[8], xid;
739 GetPVarString(playerid, "selected_veh_plate", tmpp, 8);
740 xid = GetVehiclexIDFromPlate(tmpp);
741 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
742
743 new pid = GetPVarInt(playerid, "xv_teklif_id");
744 if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, -1, "{FF0000}[!] {DCDC22}Offer has cancelled because of the player has disconnected.");
745 if(!isNumeric(inputtext)) return ShowPlayerDialog(playerid, XV_DIALOGID+11, DIALOG_STYLE_INPUT, "Sell the Vehicle - Price", "{FF0000}[!] {F0AE0F} Only enter numbers!\n\n{FFFB93}Enter the price you want:", "Send Offer", "Back");
746 if(GetPlayerMoney(pid) < strval(inputtext)) return ShowPlayerDialog(playerid, XV_DIALOGID+11, DIALOG_STYLE_INPUT, "Sell the Vehicle - Price", "{FF0000}[!] {F0AE0F} This player doesn't have that much money!\n\n{FFFB93}Enter the price you want:", "Send Offer", "Back");
747 SetPVarInt(pid, "xv_teklif_gonderen", playerid);
748 SetPVarInt(pid, "xv_teklif_fiyat", strval(inputtext));
749 SetPVarInt(pid, "xv_teklif_xid", xid);
750 offerTimer[pid] = SetTimerEx("TeklifBitir", 30000, false, "uu", playerid, pid);
751 new str[400];
752 format(str, sizeof(str), "{00BD00}[!] {FFFB93}Offer has sent to {ECEC13}%s", Isim(pid));
753 SendClientMessage(playerid, -1, str);
754 format(str, sizeof(str), "{FFFFFF}--------------------[ Vehicle Sale Offer ]-------------------\n\n{ECEC13}%s {FFFB93}has offering to sell you a vehicle.\n\nVehicle Name: {ECB021}%s\n{FFFB93}Plate Number: {ECB021}%s\n{FFFB93}Price: {00E900}$%d\n\n{FFFB93}Do you want to buy this vehicle?\n\n{FFFFFF}----------------------------------------------------------------------------", Isim(playerid), GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]), xVehicle[xid][xv_Plaka], strval(inputtext));
755 ShowPlayerDialog(pid, XV_DIALOGID+12, DIALOG_STYLE_MSGBOX, "Vehicle Sale Offer", str, "Accept", "Reject");
756 }
757 else
758 {
759 ShowPlayerDialog(playerid, XV_DIALOGID+10, DIALOG_STYLE_INPUT, "Sell Vehicle to Player", "{FFFB93}Enter the name or ID of the player that you want to sell your vehicle:", "Next", "Back");
760 SetPVarInt(playerid, "xv_teklif_id", INVALID_PLAYER_ID);
761 }
762 }
763
764 if(dialogid == XV_DIALOGID+12)
765 {
766 if(response)
767 {
768 new pid = GetPVarInt(playerid, "xv_teklif_gonderen");
769 new xid = GetPVarInt(playerid, "xv_teklif_xid");
770 new price = GetPVarInt(playerid, "xv_teklif_fiyat");
771 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}This offers time is up.");
772 if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, -1, "{FF0000}[!] {DCDC22}This offer has cancelled because of the player that offered has disconnected.");
773 if(xStrcmp(Isim(pid), xVehicle[xid][xv_Sahip])) return SendClientMessage(playerid, -1, "{FF0000}[!] {DCDC22}This offer has cancelled because of the player that offered is not the owner of that vehicle.");
774 if(GetPlayerMoney(playerid) < price)
775 {
776 SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}This offer has cancelled because of you don't have enough money!");
777 SendClientMessage(pid, -1, "{FF0000}[!] {F0AE0F}This offer has cancelled because of that player doesn't have enough money!");
778 }
779
780 format(xVehicle[xid][xv_Sahip], 24, "%s", Isim(playerid));
781 xVehicle[xid][xv_Fiyat] = price;
782 SavexVehicle(xid);
783 foreach(new i : Player)
784 {
785 if(IsValidVehicle(xVehicle[xid][xv_Veh]) && IsPlayerInVehicle(i, xVehicle[xid][xv_Veh]))
786 {
787 SendClientMessage(i, -1, "{FF0000}[!] {DCDC22}You have removed the vehicle because of this vehicle has been sold.");
788 RemovePlayerFromVehicle(i);
789 }
790 }
791
792 GivePlayerMoney(playerid, -price);
793 GivePlayerMoney(pid, price);
794
795 new query[256];
796 format(query, sizeof(query), "{FFFB93}You sold your {ECEC13}%s {FFFB93}with {ECEC13}%s {FFFB93}plate number, to {ECEC13}%s{FFFB93}, for {00E900}$%d{FFFB93} succesfully!", GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]), xVehicle[xid][xv_Plaka], Isim(playerid), price);
797 ShowPlayerDialog(pid, XV_DIALOGID-1, DIALOG_STYLE_MSGBOX, "Sell Vehicle", query, "OK", "");
798 format(query, sizeof(query), "{FFFB93}You bought a {ECEC13}%s {FFFB93}with {ECEC13}%s {FFFB93}plate number, from {ECEC13}%s, for {00E900}$%d{FFFB93} succesfully!", GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]), xVehicle[xid][xv_Plaka], Isim(pid), price);
799 ShowPlayerDialog(playerid, XV_DIALOGID-1, DIALOG_STYLE_MSGBOX, "Buy Vehicle", query, "OK", "");
800 mysql_format(mysqlB, query, sizeof(query), "DELETE FROM xVehicleKeys WHERE AracID=%d", xid);
801 mysql_query(mysqlB, query);
802 mysql_format(mysqlB, query, sizeof(query), "UPDATE xVehicle SET Sahip='%s' WHERE ID=%d", Isim(playerid), xid);
803 mysql_query(mysqlB, query);
804 }
805 else
806 {
807 SendClientMessage(playerid, -1, "{FF0000}[!] {DCDC22}You have rejected the offer.");
808 if(IsPlayerConnected(GetPVarInt(playerid, "xv_teklif_gonderen"))) SendClientMessage(GetPVarInt(playerid, "xv_teklif_gonderen"), -1, "{FF0000}[!] {DCDC22}The player that you offered your vehicle to sell, has rejected your offer!");
809 }
810 KillTimer(offerTimer[playerid]);
811 SetPVarInt(GetPVarInt(playerid, "xv_teklif_gonderen"), "xv_teklif_id", INVALID_PLAYER_ID);
812 SetPVarInt(playerid, "xv_teklif_gonderen", INVALID_PLAYER_ID);
813 DeletePVar(playerid, "xv_teklif_xid");
814 DeletePVar(playerid, "xv_teklif_fiyat");
815 }
816
817 if(dialogid == XV_DIALOGID+13)
818 {
819 if(response)
820 {
821 new str[150], tmpp[8], xid, pid;
822 GetPVarString(playerid, "selected_veh_plate", tmpp, 8);
823 xid = GetVehiclexIDFromPlate(tmpp);
824 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
825
826 if(sscanf(inputtext, "u", pid)) return ShowPlayerDialog(playerid, XV_DIALOGID+13, DIALOG_STYLE_INPUT, "Give Vehicle Key", "{FF0000}[!] {F0AE0F}You wrote nothing!\n\n{FFFB93}Enter the player's ID or name that you want to give the key:", "Next", "Back");
827 if(!IsPlayerConnected(pid)) return ShowPlayerDialog(playerid, XV_DIALOGID+13, DIALOG_STYLE_INPUT, "Give Vehicle Key", "{FF0000}[!] {F0AE0F}Player is not connected!\n{FFFB93}Enter the player's ID or name that you want to give the key:", "Next", "Back");
828 if(pid == playerid) return ShowPlayerDialog(playerid, XV_DIALOGID+13, DIALOG_STYLE_INPUT, "Give Vehicle Key", "{FF0000}[!] {F0AE0F}You can't give the key to yourself!\n{FFFB93}Enter the player's ID or name that you want to give the key:", "Next", "Back");
829 if(Iter_Contains(xVehicleKeys<pid>, xid)) return ShowPlayerDialog(playerid, XV_DIALOGID+4, DIALOG_STYLE_MSGBOX, "Give Vehicle Key", "{FF0000}[!] {F0AE0F}That player already have this vehicle's key!", "Back", "");
830 Iter_Add(xVehicleKeys<pid>, xid);
831 mysql_format(mysqlB, str, sizeof(str), "INSERT INTO xVehicleKeys SET AracID=%d, Isim='%e'", xid, Isim(pid));
832 mysql_query(mysqlB, str);
833 format(str, sizeof(str), "You gave the keys of the {ECEC13}%s {FFFB93} with {ECEC13}%s {FFFB93}plate number, to {ECEC13}%s {FFFB93}successfully!", GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]), xVehicle[xid][xv_Plaka], Isim(pid));
834 SendClientMessage(playerid, -1, str);
835 format(str, sizeof(str), "{ECEC13}%s {FFFB93}has gave you the keys of {ECEC13}%s {FFFB93}with {ECEC13}%s {FFFB93}plate number!", Isim(playerid), GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]), xVehicle[xid][xv_Plaka]);
836 SendClientMessage(pid, -1, str);
837 } else ShowPlayerDialog(playerid, XV_DIALOGID+2, DIALOG_STYLE_LIST, "Vehicle Keys", "{DCDC22}» {FFFB93}View Key Owners\n{DCDC22}» {FFFB93}Give Someone Key\n{DCDC22}» {FFFB93}Change the Lock", "Select", "Back");
838 }
839
840 if(dialogid == XV_DIALOGID+14)
841 {
842 if(response)
843 {
844 new str[150], tmpp[8], xid, pid;
845 GetPVarString(playerid, "selected_veh_plate", tmpp, 8);
846 xid = GetVehiclexIDFromPlate(tmpp);
847 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
848
849 new p_is[24];
850 GetPVarString(playerid, "tmp_keyname", p_is, 24);
851 pid = GetPlayerIDFromName(p_is);
852 if(IsPlayerConnected(pid))
853 {
854 Iter_Remove(xVehicleKeys<pid>, xid);
855 format(str, sizeof(str), "{ECEC13}%s {FFFB93}has took the keys of {ECEC13}%s {FFFB93} with {ECEC13}%s {FFFB93}plate number, back!", Isim(playerid), GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]), xVehicle[xid][xv_Plaka]);
856 SendClientMessage(pid, -1, str);
857 }
858 mysql_format(mysqlB, str, sizeof(str), "DELETE FROM xVehicleKeys WHERE AracID=%d AND Isim='%e'", xid, p_is);
859 mysql_query(mysqlB, str);
860 format(str, sizeof(str), "You took the keys of {ECEC13}%s {FFFB93} with {ECEC13}%s {FFFB93}plate number, from {ECEC13}%s{FFFB93}", GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]), xVehicle[xid][xv_Plaka], p_is);
861 SendClientMessage(playerid, -1, str);
862 }
863 else ShowPlayerDialog(playerid, XV_DIALOGID+2, DIALOG_STYLE_LIST, "Vehicle Keys", "{DCDC22}» {FFFB93}View Key Owners\n{DCDC22}» {FFFB93}Give Someone Key\n{DCDC22}» {FFFB93}Change the Lock", "Select", "Back");
864 }
865
866 if(dialogid == XV_DIALOGID+15)
867 {
868 if(response)
869 {
870 new str[128], tmpp[8], xid;
871 GetPVarString(playerid, "selected_veh_plate", tmpp, 8);
872 xid = GetVehiclexIDFromPlate(tmpp);
873 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
874
875 foreach(new i : Player)
876 {
877 if(IsPlayerInVehicle(i, xVehicle[xid][xv_Veh]) && xStrcmp(xVehicle[xid][xv_Sahip], Isim(i)))
878 {
879 SendClientMessage(i, -1, "{FF0000}[!] {DCDC22}You have removed from vehicle because of the owner of this vehicle has changed the lock.");
880 RemovePlayerFromVehicle(i);
881 }
882 if(Iter_Contains(xVehicleKeys<i>, xid)) Iter_Remove(xVehicleKeys<i>, xid);
883 }
884 mysql_format(mysqlB, str, sizeof(str), "DELETE FROM xVehicleKeys WHERE AracID=%d", xid);
885 mysql_query(mysqlB, str);
886 SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}You have succesfully changed vehicle's lock!");
887 } else ShowPlayerDialog(playerid, XV_DIALOGID+2, DIALOG_STYLE_LIST, "Vehicle Keys", "{DCDC22}» {FFFB93}View Key Owners\n{DCDC22}» {FFFB93}Give Someone Key\n{DCDC22}» {FFFB93}Change the Lock", "Select", "Back");
888 }
889
890 if(dialogid == XV_DIALOGID+16)
891 {
892 if(response)
893 {
894 switch(listitem)
895 {
896 case 0:
897 {
898 new query[128], Cache:vehs;
899 SetPVarInt(playerid, "xvKeysPage", 0);
900 mysql_format(mysqlB, query, sizeof(query), "SELECT ID FROM xVehicle ORDER BY ID ASC LIMIT %d, 15", GetPVarInt(playerid, "xvKeysPage")*15);
901 vehs = mysql_query(mysqlB, query);
902 new rows = cache_num_rows();
903 if(rows)
904 {
905 new list[512], v_id;
906 format(list, sizeof(list), "Vehicle ID\tPlate Number\tVehicle Name\n");
907 for(new i; i < rows; ++i)
908 {
909 cache_get_value_name_int(i, "ID", v_id);
910 format(list, sizeof(list), "%s%d\t%s\t%s\n", list, v_id, xVehicle[v_id][xv_Plaka], GetVehicleNameFromModel(xVehicle[v_id][xv_ModelID]));
911 }
912 format(list, sizeof(list), "%s{F4D00B}<< Previous Page\n{F4D00B}>> Next Page", list);
913 ShowPlayerDialog(playerid, XV_DIALOGID+17, DIALOG_STYLE_TABLIST_HEADERS, "Vehicle List (Page 1)", list, "Select", "Back");
914 }
915 else
916 {
917 SendClientMessage(playerid, 0xE74C3CFF, "{FF0000}[!] {DCDC22}No vehicles has been created.");
918 }
919 cache_delete(vehs);
920 }
921 case 1:
922 {
923 new str[128];
924 foreach(new i : xVehicles) if(!xVehicle[i][xv_Garajda]) SetVehicleToRespawn(xVehicle[i][xv_Veh]);
925 SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}All vehicles has respawned!");
926 format(str, sizeof(str), "{00BD00}[!] Admin {ECEC13}%s {FFFB93}has respawned all vehicles!", Isim(playerid));
927 SendClientMessageToAll(-1, str);
928 }
929 case 2:
930 {
931 ShowPlayerDialog(playerid, XV_DIALOGID+22, DIALOG_STYLE_INPUT, "Create Vehicle", "{FFFB93}Enter the model ID or the name of the vehicle:", "Next", "Back");
932 }
933 }
934 }
935 }
936
937 if(dialogid == XV_DIALOGID+17)
938 {
939 if(response)
940 {
941 if(!xStrcmp(inputtext, "<< Previous Page"))
942 {
943 SetPVarInt(playerid, "xvKeysPage", GetPVarInt(playerid, "xvKeysPage")-1);
944 if(GetPVarInt(playerid, "xvKeysPage") < 0)
945 {
946 SetPVarInt(playerid, "xvKeysPage", 0);
947 cmd_amenu(playerid, "");
948 return 1;
949 }
950
951 new query[128], Cache:vehs;
952 mysql_format(mysqlB, query, sizeof(query), "SELECT ID FROM xVehicle ORDER BY ID ASC LIMIT %d, 15", GetPVarInt(playerid, "xvKeysPage")*15);
953 vehs = mysql_query(mysqlB, query);
954 new rows = cache_num_rows();
955 if(rows)
956 {
957 new list[512], v_id;
958 format(list, sizeof(list), "Vehicle ID\tPlate Number\tVehicle Name\n");
959 for(new i; i < rows; ++i)
960 {
961 cache_get_value_name_int(i, "ID", v_id);
962 format(list, sizeof(list), "%s%d\t%s\t%s\n", list, v_id, xVehicle[v_id][xv_Plaka], GetVehicleNameFromModel(xVehicle[v_id][xv_ModelID]));
963 }
964 format(list, sizeof(list), "%s{F4D00B}<< Previous Page\n{F4D00B}>> Next Page", list);
965 new head[32];
966 format(head, sizeof(head), "Vehicle List (Page %d)", GetPVarInt(playerid, "xvKeysPage")+1);
967 ShowPlayerDialog(playerid, XV_DIALOGID+17, DIALOG_STYLE_TABLIST_HEADERS, head, list, "Select", "Back");
968 }
969 else
970 {
971 SetPVarInt(playerid, "xvKeysPage", 0);
972 }
973 cache_delete(vehs);
974 }
975 else if(!xStrcmp(inputtext, ">> Next Page"))
976 {
977 SetPVarInt(playerid, "xvKeysPage", GetPVarInt(playerid, "xvKeysPage")+1);
978
979 new query[128], Cache:vehs;
980 mysql_format(mysqlB, query, sizeof(query), "SELECT ID FROM xVehicle ORDER BY ID ASC LIMIT %d, 15", GetPVarInt(playerid, "xvKeysPage")*15);
981 vehs = mysql_query(mysqlB, query);
982 new rows = cache_num_rows();
983 if(rows)
984 {
985 new list[512], v_id;
986 format(list, sizeof(list), "Vehicle ID\tPlate Number\tVehicle Name\n");
987 for(new i; i < rows; ++i)
988 {
989 cache_get_value_name_int(i, "ID", v_id);
990 format(list, sizeof(list), "%s%d\t%s\t%s\n", list, v_id, xVehicle[v_id][xv_Plaka], GetVehicleNameFromModel(xVehicle[v_id][xv_ModelID]));
991 }
992 format(list, sizeof(list), "%s{F4D00B}<< Previous Page\n{F4D00B}>> Next Page", list);
993 new head[32];
994 format(head, sizeof(head), "Vehicle List (Page %d)", GetPVarInt(playerid, "xvKeysPage")+1);
995 ShowPlayerDialog(playerid, XV_DIALOGID+17, DIALOG_STYLE_TABLIST_HEADERS, head, list, "Select", "Back");
996 }
997 else
998 {
999 SetPVarInt(playerid, "xvKeysPage", GetPVarInt(playerid, "xvKeysPage") - 1);
1000 mysql_format(mysqlB, query, sizeof(query), "SELECT ID FROM xVehicle ORDER BY ID ASC LIMIT %d, 15", GetPVarInt(playerid, "xvKeysPage")*15);
1001 vehs = mysql_query(mysqlB, query);
1002 rows = cache_num_rows();
1003 if(rows)
1004 {
1005 new list[512], v_id;
1006 format(list, sizeof(list), "Vehicle ID\tPlate Number\tVehicle Name\n");
1007 for(new i; i < rows; ++i)
1008 {
1009 cache_get_value_name_int(i, "ID", v_id);
1010 format(list, sizeof(list), "%s%d\t%s\t%s\n", list, v_id, xVehicle[v_id][xv_Plaka], GetVehicleNameFromModel(xVehicle[v_id][xv_ModelID]));
1011 }
1012 format(list, sizeof(list), "%s{F4D00B}<< Previous Page\n{F4D00B}>> Next Page", list);
1013 new head[32];
1014 format(head, sizeof(head), "Vehicle List (Page %d)", GetPVarInt(playerid, "xvKeysPage")+1);
1015 ShowPlayerDialog(playerid, XV_DIALOGID+17, DIALOG_STYLE_TABLIST_HEADERS, head, list, "Select", "Back");
1016 }
1017 SendClientMessage(playerid, 0xE74C3CFF, "There is no more vehicle! You are at the last page.");
1018 }
1019 cache_delete(vehs);
1020 }
1021 else
1022 {
1023 new tm[2][8];
1024 split(inputtext, tm, '\t');
1025 SetPVarInt(playerid, "adm_sl_id", strval(tm[0]));
1026 ShowPlayerDialog(playerid, XV_DIALOGID+18, DIALOG_STYLE_LIST, "xVehicle Admin Menu", "{ECCB13}» {FFFFFF}View Vehicle Info\n{ECCB13}» {FFFFFF}Get the Vehicle Here\n{ECCB13}» {FFFFFF}Respawn Vehicle\n{ECCB13}» {FFFFFF}Change Vehicle's Price\n{ECCB13}» {FFFFFF}Remove Vehicle Owner\n{ECCB13}» {FFFFFF}Remove Vehicle", "Select", "Back");
1027 }
1028 } else cmd_amenu(playerid, "");
1029 }
1030
1031 if(dialogid == XV_DIALOGID+18)
1032 {
1033 if(response)
1034 {
1035 new xid = GetPVarInt(playerid, "adm_sl_id");
1036 if(xid == 0 || !Iter_Contains(xVehicles, xid)) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
1037 switch(listitem)
1038 {
1039 case 0: // araç bilgileri
1040 {
1041 new str[256], sahip[24];
1042 if(!strlen(xVehicle[xid][xv_Sahip])) format(sahip, sizeof(sahip), "-For Sale-");
1043 else format(sahip, sizeof(sahip), "%s", xVehicle[xid][xv_Sahip]);
1044 format(str, sizeof(str), "{FFFFFF}----------[ Vehicle Information ]----------\n\n{F0AE0F}-» {ECE913}Owner: {FFFFFF}%s\n{F0AE0F}-» {ECE913}Vehicle Name: {FFFFFF}%s\n{F0AE0F}-» {ECE913}Plate Number: {FFFFFF}%s\n{F0AE0F}-» {ECE913}State: %s", sahip, GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]), xVehicle[xid][xv_Plaka], (xVehicle[xid][xv_Garajda]) ? ("{F0CE0F}In The Garage") : ("{8FE01F}On The Map"));
1045 ShowPlayerDialog(playerid, XV_DIALOGID+19, DIALOG_STYLE_MSGBOX, "Vehicle Info", str, "Back", "");
1046 }
1047 case 1: // aracý çek
1048 {
1049 GetPlayerPos(playerid, xVehicle[xid][xv_Pos][0], xVehicle[xid][xv_Pos][1], xVehicle[xid][xv_Pos][2]);
1050 GetPlayerFacingAngle(playerid, xVehicle[xid][xv_Pos][3]);
1051 xVehicle[xid][xv_Pos][0] += 1;
1052 xVehicle[xid][xv_Pos][1] += 1;
1053 if(xVehicle[xid][xv_Garajda])
1054 {
1055 xVehicle[xid][xv_Veh] = CreateVehicle(xVehicle[xid][xv_ModelID], xVehicle[xid][xv_Pos][0], xVehicle[xid][xv_Pos][1], xVehicle[xid][xv_Pos][2], xVehicle[xid][xv_Pos][3], xVehicle[xid][xv_Renk][0], xVehicle[xid][xv_Renk][1], -1);
1056 xVeh[xVehicle[xid][xv_Veh]] = xid;
1057 SetVehicleNumberPlate(xVehicle[xid][xv_Veh], xVehicle[xid][xv_Plaka]);
1058 SetVehicleToRespawn(xVehicle[xid][xv_Veh]);
1059 xVehicle[xid][xv_Garajda] = 0;
1060 }
1061 else
1062 {
1063 SetVehiclePos(xVehicle[xid][xv_Veh], xVehicle[xid][xv_Pos][0], xVehicle[xid][xv_Pos][1], xVehicle[xid][xv_Pos][2]);
1064 SetVehicleZAngle(xVehicle[xid][xv_Veh], xVehicle[xid][xv_Pos][3]);
1065 }
1066 DeletePVar(playerid, "adm_sl_id");
1067 new str[128];
1068 format(str, sizeof(str), "You have teleported the {ECEC13}%s {FFFB93}with {ECEC13}%s {FFFB93}plate number, to you! {ECB021}(ID: %d)", GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]), xVehicle[xid][xv_Plaka], xid);
1069 SendClientMessage(playerid, -1, str);
1070 }
1071 case 2: // yenile
1072 {
1073 if(xVehicle[xid][xv_Garajda]) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}You can not respawn the vehicle in garage!");
1074 SetVehicleToRespawn(xVehicle[xid][xv_Veh]);
1075 SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}You have respawned the vehicle!");
1076 }
1077 case 3: // fiyatýný deðiþtir
1078 {
1079 new str[128];
1080 format(str, sizeof(str), "{FFFB93}Vehicle's current price: {ECEC13}$%d\n\n{FFFB93}Enter the value you want to change:", xVehicle[xid][xv_Fiyat]);
1081 ShowPlayerDialog(playerid, XV_DIALOGID+26, DIALOG_STYLE_INPUT, "Change the Price", str, "OK", "Back");
1082 }
1083 case 4: // araç sahibini sil
1084 {
1085 new str[256];
1086 format(str, sizeof(str), "{FFFB93}Are you sure that you want to remove the owner of {ECEC13}%s {FFFB93}with {ECEC13}%s {FFFB93}plate number? {ECB021}(ID: %d)\n{AAAAAA}(The vehicle will be put on sale and the vehicle's keys will be removed from the key owners.)", GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]), xVehicle[xid][xv_Plaka], xid);
1087 ShowPlayerDialog(playerid, XV_DIALOGID+20, DIALOG_STYLE_MSGBOX, "Remove Vehicle Owner", str, "Confirm", "Back");
1088 }
1089 case 5: // aracý sil
1090 {
1091 new str[256];
1092 format(str, sizeof(str), "{FFFB93}Are you sure that you want to remove the vehicle {ECEC13}%s {FFFB93}with {ECEC13}%s {FFFB93}plate number? {ECB021}(ID: %d)", GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]), xVehicle[xid][xv_Plaka], xid);
1093 ShowPlayerDialog(playerid, XV_DIALOGID+21, DIALOG_STYLE_MSGBOX, "Remove Vehicle", str, "Confirm", "Back");
1094 }
1095 }
1096 }
1097 else
1098 {
1099 DeletePVar(playerid, "adm_sl_id");
1100 cmd_amenu(playerid, "");
1101 }
1102 }
1103
1104 if(dialogid == XV_DIALOGID+19) ShowPlayerDialog(playerid, XV_DIALOGID+18, DIALOG_STYLE_LIST, "xVehicle Admin Menu", "{ECCB13}» {FFFFFF}View Vehicle Info\n{ECCB13}» {FFFFFF}Get the Vehicle Here\n{ECCB13}» {FFFFFF}Respawn Vehicle\n{ECCB13}» {FFFFFF}Change Vehicle's Price\n{ECCB13}» {FFFFFF}Remove Vehicle Owner\n{ECCB13}» {FFFFFF}Remove Vehicle", "Select", "Back");
1105
1106 if(dialogid == XV_DIALOGID+20)
1107 {
1108 if(response)
1109 {
1110 new xid = GetPVarInt(playerid, "adm_sl_id");
1111 if(xid == 0 || !Iter_Contains(xVehicles, xid)) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
1112 if(!strlen(xVehicle[xid][xv_Sahip])) return ShowPlayerDialog(playerid, XV_DIALOGID+19, DIALOG_STYLE_MSGBOX, "Remove Vehicle Owner", "{FF0000}[!] {DCDC22}This vehicle has no owner!", "Back", "");
1113 format(xVehicle[xid][xv_Sahip], 24, "");
1114 foreach(new i : Player)
1115 {
1116 if(IsPlayerInVehicle(i, xVehicle[xid][xv_Veh]))
1117 {
1118 SendClientMessage(i, -1, "{FF0000}[!] {DCDC22}You have removed from the vehicle because of the admin has removed the owner of this vehicle.");
1119 RemovePlayerFromVehicle(i);
1120 }
1121 if(Iter_Contains(xVehicleKeys<i>, xid)) Iter_Remove(xVehicleKeys<i>, xid);
1122 }
1123 new str[150];
1124 mysql_format(mysqlB, str, sizeof(str), "DELETE FROM xVehicleKeys WHERE AracID=%d", xid);
1125 mysql_query(mysqlB, str);
1126 SavexVehicle(xid);
1127 format(str, sizeof(str), "{00FF00}This Vehicle Is For Sale!\n{FFA500}Vehicle Name: {FFFFFF}%s\n{FFA500}Plate Number: {FFFFFF}%s\n{FFA500}Price: {00FF00}$%d", GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]), xVehicle[xid][xv_Plaka], xVehicle[xid][xv_Fiyat]);
1128 xVehicle[xid][xv_Text] = Create3DTextLabel(str, 0x008080FF, 0.0, 0.0, 0.0, 50.0, 0);
1129 Attach3DTextLabelToVehicle(xVehicle[xid][xv_Text], xVehicle[xid][xv_Veh], 0.0, 0.0, 1.0);
1130 DeletePVar(playerid, "adm_sl_id");
1131 format(str, sizeof(str), "{FFFB93}You have removed the owner of the vehicle ID: {ECB021}%d", xid);
1132 SendClientMessage(playerid, -1, str);
1133 } else ShowPlayerDialog(playerid, XV_DIALOGID+18, DIALOG_STYLE_LIST, "xVehicle Admin Menu", "{ECCB13}» {FFFFFF}View Vehicle Info\n{ECCB13}» {FFFFFF}Get the Vehicle Here\n{ECCB13}» {FFFFFF}Respawn Vehicle\n{ECCB13}» {FFFFFF}Change Vehicle's Price\n{ECCB13}» {FFFFFF}Remove Vehicle Owner\n{ECCB13}» {FFFFFF}Remove Vehicle", "Select", "Back");
1134 }
1135
1136 if(dialogid == XV_DIALOGID+21)
1137 {
1138 if(response)
1139 {
1140 new xid = GetPVarInt(playerid, "adm_sl_id");
1141 if(xid == 0 || !Iter_Contains(xVehicles, xid)) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
1142 DestroyVehicle(xVehicle[xid][xv_Veh]);
1143 Iter_Remove(xVehicles, xid);
1144 DeletePVar(playerid, "adm_sl_id");
1145 foreach(new i : Player)
1146 {
1147 if(Iter_Contains(xVehicleKeys<i>, xid)) Iter_Remove(xVehicleKeys<i>, xid);
1148 }
1149 new query[128];
1150 mysql_format(mysqlB, query, sizeof(query), "DELETE FROM xVehicleKeys WHERE AracID=%d", xid);
1151 mysql_query(mysqlB, query);
1152 mysql_format(mysqlB, query, sizeof(query), "DELETE FROM xVehicle WHERE ID=%d", xid);
1153 mysql_query(mysqlB, query);
1154 format(query, sizeof(query), "{FFFB93}You have removed the vehicle ID:{ECB021}%d", xid);
1155 SendClientMessage(playerid, -1, query);
1156 } else ShowPlayerDialog(playerid, XV_DIALOGID+18, DIALOG_STYLE_LIST, "xVehicle Admin Menu", "{ECCB13}» {FFFFFF}View Vehicle Info\n{ECCB13}» {FFFFFF}Get the Vehicle Here\n{ECCB13}» {FFFFFF}Respawn Vehicle\n{ECCB13}» {FFFFFF}Change Vehicle's Price\n{ECCB13}» {FFFFFF}Remove Vehicle Owner\n{ECCB13}» {FFFFFF}Remove Vehicle", "Select", "Back");
1157 }
1158
1159 if(dialogid == XV_DIALOGID+22)
1160 {
1161 if(response)
1162 {
1163 if(!strlen(inputtext)) return ShowPlayerDialog(playerid, XV_DIALOGID+22, DIALOG_STYLE_INPUT, "Create Vehicle", "{FF0000}[!] {F0AE0F}You wrote nothing!\n\n{FFFB93}Enter the model ID or the name of the vehicle:", "Next", "Back");
1164 new veh;
1165 if(!isNumeric(inputtext)) veh = GetVehicleModelIDFromName(inputtext); else veh = strval(inputtext);
1166 if(veh < 400 || veh > 611) return ShowPlayerDialog(playerid, XV_DIALOGID+22, DIALOG_STYLE_INPUT, "Create Vehicle", "{FF0000}[!] {F0AE0F}Invalid vehicle name or ID!\n\n{FFFB93}Enter the model ID or the name of the vehicle:", "Next", "Back");
1167 SetPVarInt(playerid, "xv_ao_model", veh);
1168 new str[192];
1169 format(str, sizeof(str), "{00BD00}[!] {00FF00}Selected model: {ECEC13}%s {ECB021}(%d)\n\n{FFFB93}Enter the color 1 of the vehicle:\n{AAAAAA}(Between 0-255)", GetVehicleNameFromModel(GetPVarInt(playerid, "xv_ao_model")), GetPVarInt(playerid, "xv_ao_model"));
1170 ShowPlayerDialog(playerid, XV_DIALOGID+23, DIALOG_STYLE_INPUT, "Create Vehicle - Color", str, "Next", "Back");
1171 } else cmd_amenu(playerid, "");
1172 }
1173
1174 if(dialogid == XV_DIALOGID+23)
1175 {
1176 if(response)
1177 {
1178 if(!strlen(inputtext)) return ShowPlayerDialog(playerid, XV_DIALOGID+23, DIALOG_STYLE_INPUT, "Create Vehicle - Color", "{FF0000}[!] {F0AE0F}You wrote nothing!\n\n{FFFB93}Enter the color 1 of the vehicle:\n{AAAAAA}(Between 0-255)", "Next", "Back");
1179 if(!isNumeric(inputtext))return ShowPlayerDialog(playerid, XV_DIALOGID+23, DIALOG_STYLE_INPUT, "Create Vehicle - Color", "{FF0000}[!] {F0AE0F}Only use numbers!\n\n{FFFB93}Enter the color 1 of the vehicle:\n{AAAAAA}(Between 0-255)", "Next", "Back");
1180 if(strval(inputtext) < 0 || strval(inputtext) > 255) return ShowPlayerDialog(playerid, XV_DIALOGID+23, DIALOG_STYLE_INPUT, "Create Vehicle - Color", "{FF0000}[!] {F0AE0F}You must enter a value between 0 - 255!\n\n{FFFB93}Enter the color 1 of the vehicle:\n{AAAAAA}(Between 0-255)", "Next", "Back");
1181 SetPVarInt(playerid, "xv_ao_col1", strval(inputtext));
1182 new str[128];
1183 format(str, sizeof(str), "{00BD00}[!] {00FF00}Selected color 1: {ECEC13}%d\n\n{FFFB93}Enter the color 2 of the vehicle:\n{AAAAAA}(Between 0-255)", GetPVarInt(playerid, "xv_ao_col1"));
1184 ShowPlayerDialog(playerid, XV_DIALOGID+24, DIALOG_STYLE_INPUT, "Create Vehicle - Color", str, "Next", "Back");
1185 } else DeletePVar(playerid, "xv_ao_model"), ShowPlayerDialog(playerid, XV_DIALOGID+22, DIALOG_STYLE_INPUT, "Create Vehicle", "{FFFB93}Enter the model ID or the name of the vehicle:", "Next", "Back");
1186 }
1187
1188 if(dialogid == XV_DIALOGID+24)
1189 {
1190 if(response)
1191 {
1192 if(!strlen(inputtext)) return ShowPlayerDialog(playerid, XV_DIALOGID+24, DIALOG_STYLE_INPUT, "Create Vehicle - Color", "{FF0000}[!] {F0AE0F}You wrote nothing!\n\n{FFFB93}Enter the color 2 of the vehicle:\n{AAAAAA}(Between 0-255)", "Next", "Back");
1193 if(!isNumeric(inputtext))return ShowPlayerDialog(playerid, XV_DIALOGID+24, DIALOG_STYLE_INPUT, "Create Vehicle - Color", "{FF0000}[!] {F0AE0F}Only use numbers!\n\n{FFFB93}Enter the color 2 of the vehicle:\n{AAAAAA}(Between 0-255)", "Next", "Back");
1194 if(strval(inputtext) < 0 || strval(inputtext) > 255) return ShowPlayerDialog(playerid, XV_DIALOGID+24, DIALOG_STYLE_INPUT, "Create Vehicle - Color", "{FF0000}[!] {F0AE0F}You must enter a value between 0 - 255!\n\n{FFFB93}Enter the color 2 of the vehicle:\n{AAAAAA}(Between 0-255)", "Next", "Back");
1195 SetPVarInt(playerid, "xv_ao_col2", strval(inputtext));
1196 new str[128];
1197 format(str, sizeof(str), "{00BD00}[!] {00FF00}Selected color 2: {ECEC13}%d\n\n{FFFB93}Enter the price of the vehicle:", GetPVarInt(playerid, "xv_ao_col2"));
1198 ShowPlayerDialog(playerid, XV_DIALOGID+25, DIALOG_STYLE_INPUT, "Create Vehicle - Price", str, "Create", "Back");
1199 }
1200 else
1201 {
1202 DeletePVar(playerid, "xv_ao_col1");
1203 new str[192];
1204 format(str, sizeof(str), "{00BD00}[!] {00FF00}Selected model: {ECEC13}%s {ECB021}(%d)\n\n{FFFB93}Enter the color 1 of the vehicle:\n{AAAAAA}(Between 0-255)", GetVehicleNameFromModel(GetPVarInt(playerid, "xv_ao_model")), GetPVarInt(playerid, "xv_ao_model"));
1205 ShowPlayerDialog(playerid, XV_DIALOGID+23, DIALOG_STYLE_INPUT, "Create Vehicle - Color", str, "Next", "Back");
1206 }
1207 }
1208
1209 if(dialogid == XV_DIALOGID+25)
1210 {
1211 if(response)
1212 {
1213 if(!strlen(inputtext)) return ShowPlayerDialog(playerid, XV_DIALOGID+25, DIALOG_STYLE_INPUT, "Create Vehicle - Price", "{FF0000}[!] {F0AE0F}You wrote nothing!\n\n{FFFB93}Enter the price of the vehicle:", "Create", "Back");
1214 if(!isNumeric(inputtext))return ShowPlayerDialog(playerid, XV_DIALOGID+25, DIALOG_STYLE_INPUT, "Create Vehicle - Price", "{FF0000}[!] {F0AE0F}Only use numbers!\n\n{FFFB93}Enter the price of the vehicle:", "Create", "Back");
1215 if(strval(inputtext) < 0) return ShowPlayerDialog(playerid, XV_DIALOGID+25, DIALOG_STYLE_INPUT, "Create Vehicle - Price", "{FF0000}[!] {F0AE0F}Only use positive numbers!\n\n{FFFB93}Enter the price of the vehicle:", "Create", "Back");
1216 new tmp_var[3], Float:ppos[4], veh, xid;
1217 tmp_var[0] = GetPVarInt(playerid, "xv_ao_model");
1218 tmp_var[1] = GetPVarInt(playerid, "xv_ao_col1");
1219 tmp_var[2] = GetPVarInt(playerid, "xv_ao_col2");
1220 GetPlayerPos(playerid, ppos[0], ppos[1], ppos[2]);
1221 GetPlayerFacingAngle(playerid, ppos[3]);
1222 veh = CreatexVehicle(tmp_var[0], "", strval(inputtext), ppos[0], ppos[1], ppos[2], ppos[3], tmp_var[1], tmp_var[2]);
1223 xid = xVeh[veh];
1224 PutPlayerInVehicle(playerid, veh, 0);
1225 new str[256];
1226 SendClientMessage(playerid, -1, "------------------------------------------------------------------------------------------------------------");
1227 format(str, sizeof(str), "{00FF00}[!] Vehicle {ECEC13}%s {ECB021}(%d) {FFFB93}has been created with the colors {ECEC13}%d, %d", GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]), xVehicle[xid][xv_ModelID], xVehicle[xid][xv_Renk][0], xVehicle[xid][xv_Renk][1]);
1228 SendClientMessage(playerid, -1, str);
1229 format(str, sizeof(str), "{FFFB93}Plate number: {ECEC13}%s, {FFFB93}Vehicle ID: {ECB021}%d, {FFFB93}Price: {ECB021}$%d", xVehicle[xid][xv_Plaka], xid, xVehicle[xid][xv_Fiyat]);
1230 SendClientMessage(playerid, -1, str);
1231 SendClientMessage(playerid, -1, "{FFFB93}To change the location of the vehicle, get into vehicle, go wherever you want and type {ECEC13}/park");
1232 SendClientMessage(playerid, -1, "------------------------------------------------------------------------------------------------------------");
1233 DeletePVar(playerid, "xv_ao_model");
1234 DeletePVar(playerid, "xv_ao_col1");
1235 DeletePVar(playerid, "xv_ao_col2");
1236 }
1237 else
1238 {
1239 DeletePVar(playerid, "xv_ao_col2");
1240 new str[128];
1241 format(str, sizeof(str), "{00BD00}[!] {00FF00}Selected color 1: {ECEC13}%d\n\n{FFFB93}Enter the color 2 of the vehicle:\n{AAAAAA}(Between 0-255)", GetPVarInt(playerid, "xv_ao_col1"));
1242 ShowPlayerDialog(playerid, XV_DIALOGID+24, DIALOG_STYLE_INPUT, "Create Vehicle - Color", str, "Next", "Back");
1243 }
1244 }
1245
1246 if(dialogid == XV_DIALOGID+26)
1247 {
1248 if(response)
1249 {
1250 new xid = GetPVarInt(playerid, "adm_sl_id");
1251 if(xid == 0 || !Iter_Contains(xVehicles, xid)) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
1252 if(!strlen(inputtext)) return ShowPlayerDialog(playerid, XV_DIALOGID+26, DIALOG_STYLE_INPUT, "Change the Price", "{FF0000}[!] {F0AE0F}HYou wrote nothing!\n\n{FFFB93}Enter the value you want to change:", "OK", "Back");
1253 if(!isNumeric(inputtext)) return ShowPlayerDialog(playerid, XV_DIALOGID+26, DIALOG_STYLE_INPUT, "Change the Price", "{FF0000}[!] {F0AE0F}Only use numbers!\n\n{FFFB93}Enter the value you want to change:", "OK", "Back");
1254 if(strval(inputtext) < 0) return ShowPlayerDialog(playerid, XV_DIALOGID+26, DIALOG_STYLE_INPUT, "Change the Price", "{FF0000}[!] {F0AE0F}Only use positive numbers!\n\n{FFFB93}Enter the value you want to change:", "OK", "Back");
1255 xVehicle[xid][xv_Fiyat] = strval(inputtext);
1256 new str[150];
1257 if(!strlen(xVehicle[xid][xv_Sahip]))
1258 {
1259 Delete3DTextLabel(xVehicle[xid][xv_Text]);
1260 format(str, sizeof(str), "{00FF00}This Vehicle Is For Sale!\n{FFA500}Vehicle Name: {FFFFFF}%s\n{FFA500}Plate Number: {FFFFFF}%s\n{FFA500}Price: {00FF00}$%d", GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]), xVehicle[xid][xv_Plaka], xVehicle[xid][xv_Fiyat]);
1261 xVehicle[xid][xv_Text] = Create3DTextLabel(str, 0x008080FF, 0.0, 0.0, 0.0, 50.0, 0);
1262 Attach3DTextLabelToVehicle(xVehicle[xid][xv_Text], xVehicle[xid][xv_Veh], 0.0, 0.0, 1.0);
1263 }
1264 SavexVehicle(xid);
1265 format(str, sizeof(str), "{00BD00}[!] {00FF00}You have changed the price to {ECEC13}$%d!", xVehicle[xid][xv_Fiyat]);
1266 SendClientMessage(playerid, -1, str);
1267 }
1268 ShowPlayerDialog(playerid, XV_DIALOGID+18, DIALOG_STYLE_LIST, "xVehicle Admin Menu", "{ECCB13}» {FFFFFF}View Vehicle Info\n{ECCB13}» {FFFFFF}Get the Vehicle Here\n{ECCB13}» {FFFFFF}Respawn Vehicle\n{ECCB13}» {FFFFFF}Change Vehicle's Price\n{ECCB13}» {FFFFFF}Remove Vehicle Owner\n{ECCB13}» {FFFFFF}Remove Vehicle", "Select", "Back");
1269 }
1270 return 1;
1271}
1272
1273xvMenuGoster(playerid)
1274{
1275 new str[256], tmp[8], xid;
1276 GetPVarString(playerid, "selected_veh_plate", tmp, 8);
1277 xid = GetVehiclexIDFromPlate(tmp);
1278 if(xid == 0) return 1;
1279 format(str, sizeof(str), "{FFA500}» {FFFFFF} Where Is My Car?\n%s\n{FFA500}» {FFFFFF} Quick Park\n{FFA500}» {%s} Vehicle Keys\n{FFA500}» {%s} Sell the Vehicle\n{FFA500}» {CACACA} Vehicle Info",
1280 (xVehicle[xid][xv_Garajda]) ? (!xStrcmp(xVehicle[xid][xv_Sahip], Isim(playerid))) ? ("{FFA500}» {FFFFFF} Take Out Vehicle From Garage") : ("{FFA500}» {FF0000} Take Out Vehicle From Garage") : (!xStrcmp(xVehicle[xid][xv_Sahip], Isim(playerid))) ? ("{FFA500}» {FFFFFF} Put Vehicle In Garage") : ("{FFA500}» {FF0000} Put Vehicle In Garage"), (xStrcmp(xVehicle[xid][xv_Sahip], Isim(playerid))) ? ("FF0000") : ("FFFFFF"), (xStrcmp(xVehicle[xid][xv_Sahip], Isim(playerid))) ? ("FF0000") : ("FFFFFF"));
1281 ShowPlayerDialog(playerid, XV_DIALOGID, DIALOG_STYLE_LIST, "Vehicle Menu", str, "Select", "Back");
1282 return 1;
1283}
1284
1285forward TeklifBitir(gonderen, alan);
1286public TeklifBitir(gonderen, alan)
1287{
1288 SetPVarInt(alan, "xv_teklif_gonderen", INVALID_PLAYER_ID);
1289 DeletePVar(alan, "xv_teklif_xid");
1290 DeletePVar(alan, "xv_teklif_fiyat");
1291 if(IsPlayerConnected(gonderen)) SetPVarInt(gonderen, "xv_teklif_id", INVALID_PLAYER_ID), SendClientMessage(gonderen, -1, "{FF0000}[!] {DCDC22}The vehicle sale offer has cancelled because of the player didn't respond.");
1292 return 1;
1293}
1294
1295CreatexVehicle(modelid, owner[], price, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, color1, color2)
1296{
1297 new id = Iter_Free(xVehicles);
1298
1299 xVehicle[id][xv_Veh] = CreateVehicle(modelid, spawn_x, spawn_y, spawn_z, z_angle, color1, color2, -1);
1300
1301 xVeh[xVehicle[id][xv_Veh]] = id;
1302 xVehicle[id][xv_ModelID] = modelid;
1303 xVehicle[id][xv_Renk][0] = color1;
1304 xVehicle[id][xv_Renk][1] = color2;
1305 xVehicle[id][xv_Paintjob] = -1;
1306 xVehicle[id][xv_Pos][0] = spawn_x;
1307 xVehicle[id][xv_Pos][1] = spawn_y;
1308 xVehicle[id][xv_Pos][2] = spawn_z;
1309 xVehicle[id][xv_Pos][3] = z_angle;
1310 format(xVehicle[id][xv_Sahip], 24, "%s", owner);
1311 xVehicle[id][xv_Fiyat] = price;
1312 plate_check:
1313 format(xVehicle[id][xv_Plaka], 8, "%s", CreatePlate());
1314 foreach(new i : xVehicles) if(!xStrcmp(xVehicle[id][xv_Plaka], xVehicle[i][xv_Plaka])) goto plate_check;
1315 SetVehicleNumberPlate(xVehicle[id][xv_Veh], xVehicle[id][xv_Plaka]);
1316 SetVehicleToRespawn(xVehicle[id][xv_Veh]);
1317 Iter_Add(xVehicles, id);
1318 new query[256];
1319 format(query, sizeof(query),"INSERT INTO `xVehicle` (`ID`,`Sahip`,`Fiyat`,`X`,`Y`,`Z`,`A`,`Model`,`Renk1`,`Renk2`,`Plaka`) VALUES ('%d','%s','%d','%f','%f','%f','%f','%d','%d','%d','%s')",
1320 id, owner, price, spawn_x, spawn_y, spawn_z, z_angle, modelid, color1, color2, xVehicle[id][xv_Plaka]);
1321 mysql_query(mysqlB, query);
1322
1323 if(!strlen(xVehicle[id][xv_Sahip]))
1324 {
1325 new str[150];
1326 format(str, sizeof(str), "{00FF00}This Vehicle Is For Sale!\n{FFA500}Vehicle Name: {FFFFFF}%s\n{FFA500}Plate Number: {FFFFFF}%s\n{FFA500}Price: {00FF00}$%d", GetVehicleNameFromModel(xVehicle[id][xv_ModelID]), xVehicle[id][xv_Plaka], xVehicle[id][xv_Fiyat]);
1327 xVehicle[id][xv_Text] = Create3DTextLabel(str, 0x008080FF, 0.0, 0.0, 0.0, 50.0, 0);
1328 Attach3DTextLabelToVehicle(xVehicle[id][xv_Text], xVehicle[id][xv_Veh], 0.0, 0.0, 1.0);
1329 }
1330 return xVehicle[id][xv_Veh];
1331}
1332
1333SavexVehicle(xvehid)
1334{
1335 if(xvehid == 0) return 0;
1336 new query[512];
1337
1338 mysql_format(mysqlB, query, sizeof(query), "UPDATE `xVehicle` SET Sahip='%e', Fiyat=%d, X=%f, Y=%f, Z=%f, A=%f, HizliPark=%d, Model=%d, Renk1=%d, Renk2=%d, Plaka='%s', PJ=%d, Garajda=%d, Parca1=%d, Parca2=%d, Parca3=%d, Parca4=%d, Parca5=%d, Parca6=%d, Parca7=%d, Parca8=%d, Parca9=%d, Parca10=%d, Parca11=%d, Parca12=%d, Parca13=%d, Parca14=%d WHERE ID=%d",
1339 xVehicle[xvehid][xv_Sahip], xVehicle[xvehid][xv_Fiyat], xVehicle[xvehid][xv_Pos][0], xVehicle[xvehid][xv_Pos][1], xVehicle[xvehid][xv_Pos][2], xVehicle[xvehid][xv_Pos][3], xVehicle[xvehid][xv_HizliPark], xVehicle[xvehid][xv_ModelID], xVehicle[xvehid][xv_Renk][0], xVehicle[xvehid][xv_Renk][1], xVehicle[xvehid][xv_Plaka], xVehicle[xvehid][xv_Paintjob], xVehicle[xvehid][xv_Garajda],
1340 xVehicle[xvehid][xv_Parca][0],
1341 xVehicle[xvehid][xv_Parca][1],
1342 xVehicle[xvehid][xv_Parca][2],
1343 xVehicle[xvehid][xv_Parca][3],
1344 xVehicle[xvehid][xv_Parca][4],
1345 xVehicle[xvehid][xv_Parca][5],
1346 xVehicle[xvehid][xv_Parca][6],
1347 xVehicle[xvehid][xv_Parca][7],
1348 xVehicle[xvehid][xv_Parca][8],
1349 xVehicle[xvehid][xv_Parca][9],
1350 xVehicle[xvehid][xv_Parca][10],
1351 xVehicle[xvehid][xv_Parca][11],
1352 xVehicle[xvehid][xv_Parca][12],
1353 xVehicle[xvehid][xv_Parca][13],
1354 xvehid);
1355 mysql_query(mysqlB, query);
1356 return 1;
1357}
1358
1359forward LoadxVehicles();
1360public LoadxVehicles()
1361{
1362 new rows = cache_num_rows();
1363 new id, loaded;
1364 if(rows)
1365 {
1366 while(loaded < rows)
1367 {
1368 cache_get_value_name_int(loaded, "ID", id);
1369 cache_get_value_name(loaded, "Sahip", xVehicle[id][xv_Sahip], MAX_PLAYER_NAME);
1370 cache_get_value_name_int(loaded, "Fiyat", xVehicle[id][xv_Fiyat]);
1371 cache_get_value_name_float(loaded, "X", xVehicle[id][xv_Pos][0]);
1372 cache_get_value_name_float(loaded, "Y", xVehicle[id][xv_Pos][1]);
1373 cache_get_value_name_float(loaded, "Z", xVehicle[id][xv_Pos][2]);
1374 cache_get_value_name_float(loaded, "A", xVehicle[id][xv_Pos][3]);
1375 cache_get_value_name_int(loaded, "HizliPark", xVehicle[id][xv_HizliPark]);
1376 cache_get_value_name_int(loaded, "Model", xVehicle[id][xv_ModelID]);
1377 cache_get_value_name_int(loaded, "Renk1", xVehicle[id][xv_Renk][0]);
1378 cache_get_value_name_int(loaded, "Renk2", xVehicle[id][xv_Renk][1]);
1379 cache_get_value_name(loaded, "Plaka", xVehicle[id][xv_Plaka], 8);
1380 cache_get_value_name_int(loaded, "Garajda", xVehicle[id][xv_Garajda]);
1381 cache_get_value_name_int(loaded, "PJ", xVehicle[id][xv_Paintjob]);
1382 cache_get_value_name_int(loaded, "Parca1", xVehicle[id][xv_Parca][0]);
1383 cache_get_value_name_int(loaded, "Parca2", xVehicle[id][xv_Parca][1]);
1384 cache_get_value_name_int(loaded, "Parca3", xVehicle[id][xv_Parca][2]);
1385 cache_get_value_name_int(loaded, "Parca4", xVehicle[id][xv_Parca][3]);
1386 cache_get_value_name_int(loaded, "Parca5", xVehicle[id][xv_Parca][4]);
1387 cache_get_value_name_int(loaded, "Parca6", xVehicle[id][xv_Parca][5]);
1388 cache_get_value_name_int(loaded, "Parca7", xVehicle[id][xv_Parca][6]);
1389 cache_get_value_name_int(loaded, "Parca8", xVehicle[id][xv_Parca][7]);
1390 cache_get_value_name_int(loaded, "Parca9", xVehicle[id][xv_Parca][8]);
1391 cache_get_value_name_int(loaded, "Parca10", xVehicle[id][xv_Parca][9]);
1392 cache_get_value_name_int(loaded, "Parca11", xVehicle[id][xv_Parca][10]);
1393 cache_get_value_name_int(loaded, "Parca12", xVehicle[id][xv_Parca][11]);
1394 cache_get_value_name_int(loaded, "Parca13", xVehicle[id][xv_Parca][12]);
1395 cache_get_value_name_int(loaded, "Parca14", xVehicle[id][xv_Parca][13]);
1396
1397 if(!xVehicle[id][xv_Garajda])
1398 {
1399 xVehicle[id][xv_Veh] = CreateVehicle(xVehicle[id][xv_ModelID], xVehicle[id][xv_Pos][0], xVehicle[id][xv_Pos][1], xVehicle[id][xv_Pos][2], xVehicle[id][xv_Pos][3], xVehicle[id][xv_Renk][0], xVehicle[id][xv_Renk][1], -1);
1400 xVeh[xVehicle[id][xv_Veh]] = id;
1401 SetVehicleNumberPlate(xVehicle[id][xv_Veh], xVehicle[id][xv_Plaka]);
1402 SetVehicleToRespawn(xVehicle[id][xv_Veh]);
1403 }
1404 Iter_Add(xVehicles, id);
1405 loaded++;
1406
1407 if(!strlen(xVehicle[id][xv_Sahip]))
1408 {
1409 new str[150];
1410 format(str, sizeof(str), "{00FF00}This Vehicle Is For Sale!\n{FFA500}Vehicle Name: {FFFFFF}%s\n{FFA500}Plate Number: {FFFFFF}%s\n{FFA500}Price: {00FF00}$%d", GetVehicleNameFromModel(xVehicle[id][xv_ModelID]), xVehicle[id][xv_Plaka], xVehicle[id][xv_Fiyat]);
1411 xVehicle[id][xv_Text] = Create3DTextLabel(str, 0x008080FF, 0.0, 0.0, 0.0, 50.0, 0);
1412 Attach3DTextLabelToVehicle(xVehicle[id][xv_Text], xVehicle[id][xv_Veh], 0.0, 0.0, 1.0);
1413 }
1414 }
1415 }
1416 printf("[xVehicle] %d vehicle loaded.", loaded);
1417 return 1;
1418}
1419
1420stock LoadVehicleMod(xid)
1421{
1422 for(new c; c<14; c++) AddVehicleComponent(xVehicle[xid][xv_Veh], xVehicle[xid][xv_Parca][c]);
1423 ChangeVehiclePaintjob(xVehicle[xid][xv_Veh], xVehicle[xid][xv_Paintjob]);
1424 return 1;
1425}
1426
1427stock LoadxVehicleKeys(playerid)
1428{
1429 Iter_Clear(xVehicleKeys<playerid>);
1430
1431 new query[72];
1432 mysql_format(mysqlB, query, sizeof(query), "SELECT * FROM xVehicleKeys WHERE Isim='%e'", Isim(playerid));
1433 mysql_tquery(mysqlB, query, "LoadCarKeys", "i", playerid);
1434 return 1;
1435}
1436
1437
1438forward LoadCarKeys(playerid);
1439public LoadCarKeys(playerid)
1440{
1441 if(!IsPlayerConnected(playerid)) return 1;
1442 new rows = cache_num_rows();
1443 if(rows)
1444 {
1445 new loaded, vehid;
1446 while(loaded < rows)
1447 {
1448 cache_get_value_name_int(loaded, "AracID", vehid);
1449 Iter_Add(xVehicleKeys<playerid>, vehid);
1450 loaded++;
1451 }
1452 }
1453
1454 return 1;
1455}
1456
1457stock GetVehiclexIDFromPlate(plate[])
1458{
1459 foreach(new i : xVehicles) if(!xStrcmp(plate, xVehicle[i][xv_Plaka])) return i;
1460 return 0;
1461}
1462
1463stock CreatePlate() // Owner: 'KoczkaHUN'
1464{
1465 const len = 7, hyphenpos = 4;
1466 new plate[len+1];
1467 for (new i = 0; i < len; i++)
1468 {
1469 if (i + 1 == hyphenpos)
1470 {
1471 plate[i] = '-';
1472 continue;
1473 }
1474 if (random(2)) plate[i] = 'A' + random(26);
1475 else plate[i] = '0' + random(10);
1476 }
1477 return plate;
1478}
1479
1480stock IsVehicleFlipped(vehicleid)
1481{
1482 new Float:Quat[2];
1483 GetVehicleRotationQuat(vehicleid, Quat[0], Quat[1], Quat[0], Quat[0]);
1484 return (Quat[1] >= 0.60 || Quat[1] <= -0.60);
1485}
1486
1487stock GetPlayerxVehicleCount(playerid)
1488{
1489 new count;
1490 foreach(new i : xVehicles)
1491 {
1492 if(!xStrcmp(xVehicle[i][xv_Sahip], Isim(playerid))) count++;
1493 }
1494 return count;
1495}
1496
1497stock GetPlayerInGarageVehicleCount(playerid)
1498{
1499 new count;
1500 foreach(new i : xVehicles)
1501 {
1502 if(!xStrcmp(xVehicle[i][xv_Sahip], Isim(playerid)) && xVehicle[i][xv_Garajda]) count++;
1503 }
1504 return count;
1505}
1506
1507stock GetVehicleNameFromModel(modelid)
1508{
1509 new String[64];
1510 format(String,sizeof(String),"%s",VehicleNames[modelid - 400]);
1511 return String;
1512}
1513
1514stock GetVehicleModelIDFromName(vname[])
1515{
1516 for(new i = 0; i < 211; i++)
1517 {
1518 if ( strfind(VehicleNames[i], vname, true) != -1 )
1519 return i + 400;
1520 }
1521 return -1;
1522}
1523
1524stock GetPlayerIDFromName(name[])
1525{
1526 foreach(new i : Player) if(!xStrcmp(Isim(i), name)) return i;
1527 return INVALID_PLAYER_ID;
1528}
1529
1530stock xStrcmp(str1[], str2[])
1531{
1532 if(strlen(str1) == strlen(str2) && strcmp(str1, str2) == 0) return 0;
1533 return 1;
1534}
1535
1536stock split(const src[], dest[][], const delimiter) // From: wiki.samp [Owner: Kaliber|Kaliber]
1537{
1538 new n_pos,num,old,str[1];
1539 str[0] = delimiter;
1540 while(n_pos != -1)
1541 {
1542 n_pos = strfind(src,str,false,n_pos+1);
1543 strmid(dest[num++], src, (!num)?0:old+1,(n_pos==-1)?strlen(src):n_pos,256);
1544 old=n_pos;
1545 }
1546 return 1;
1547}
1548
1549stock Isim(playerid)
1550{
1551 new ism[24];
1552 GetPlayerName(playerid, ism, 24);
1553 return ism;
1554}
1555
1556stock isNumeric(const string[]) {
1557 new length=strlen(string);
1558 if (length==0) return false;
1559 for (new i = 0; i < length; i++) {
1560 if (
1561 (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+') // Not a number,'+' or '-'
1562 || (string[i]=='-' && i!=0) // A '-' but not at first.
1563 || (string[i]=='+' && i!=0) // A '+' but not at first.
1564 ) return false;
1565 }
1566 if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
1567 return true;
1568}
1569
1570stock GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
1571{
1572 // Created by Y_Less
1573
1574 new Float:a;
1575
1576 GetPlayerPos(playerid, x, y, a);
1577 GetPlayerFacingAngle(playerid, a);
1578
1579 if (GetPlayerVehicleID(playerid)) {
1580 GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
1581 }
1582
1583 x += (distance * floatsin(-a, degrees));
1584 y += (distance * floatcos(-a, degrees));
1585}