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