· 5 years ago · Feb 27, 2020, 01:40 PM
1/*------------------------------------------------------------------------------
2 [0.3.DL/0.3.7] Jakarta Cops And Robbers
3 Script developer -Irwan Ibrahim
4 ---PLEASE DONT REMOVE CREDITS---
5--------------------------------------------------------------------------------
6Harap ganti login register system nya dengan https://pastebin.com/vKUVvTJA?fbclid=IwAR1MBpuW714em1ojyJeXPohiqAfTNs3Yd4lvXWBnEEhrn05UJzUgs9_wvR0 <-- Credits untuk fix bug login ini kepada Hreesang*/
7
8
9#include <a_samp>
10#include <zcmd>
11#include <sscanf2>
12#include <foreach>
13#include <mysql_R412>
14#include <streamer>
15#include <YSI\y_ini>
16#include <y_iterate>
17native IsValidVehicle(vehicleid);
18native WP_Hash(_buffer[], len, const str[]);
19
20//all defines
21#define CURRENT_MESSAGES 4
22#define MESSAGE_INTERVAL 300
23
24#define SQL_HOST "127.0.0.1"
25#define SQL_USER "Server_3367"
26#define SQL_PASSWORD "sibqtp5678"
27#define SQL_DBNAME "Server_3367_Irwans"
28
29// Settings (You can change this setting as you want):
30#define OYUNCU_MAX_ARAC 10 // Maximum car amount that one player can buy.
31#define GARAJ_MAX_ARAC 15 // Maximum car amount that one player can put into the garage.
32#define XV_DIALOGID 3500 // If dialogs make trouble, only change this ID.
33
34
35#define DIALOG_STATS 3000
36#define DIALOG_REPORT 3001
37#define DIALOG_REPORTS 3002
38#define DIALOG_DELREPORT 3003
39#define DIALOG_HREPORT 3004
40#define DIALOG_AREPORT 3005
41#define DIALOG_AREPORT2 3006
42#define DIALOG_LOGIN 3007
43#define DIALOG_REGISTER 3008
44#define DIALOG_SUCCESS_1 3009
45#define DIALOG_SUCCESS_2 3010
46#define DIALOG_CHOOSE_LEVEL 3011
47#define DIALOG_ACMDS 3012
48#define DIALOG_CVC 3013
49#define DIALOG_VCMDS 3014
50#define DIALOG_RCON_PANEL 3015
51#define DIALOG_2ND_RCON 3026
52
53#define ANTI_JETPACK 1 // 1 = Kick - 2 = Ban - 3 = Nothing
54
55#define PATH "WazAdmin/Users/%s.ini"
56
57//Bot system
58
59#define BOT_FEATURE true
60#define BOT_NAME "J-CNR"
61
62//2ND rcon system
63
64#define RCON_PASS "changeme"
65#define MAX_RCON_WARNINGS 3
66
67//Logs
68
69#define CHAT_LOG false
70#define BAN_LOG false
71#define KICK_LOG false
72
73//Colors
74#define COLOR_RED 0xFF0000C8
75#define red "{FF0000}"
76
77#define COLOR_YELLOW 0xFFFF00AA
78#define yellow "{E1E11E}"
79
80#define COLOR_GREEN 0x33CC33C8
81#define green "{33CC33}"
82
83#define COLOR_ORANGE 0xFF8000C8
84#define orange "{FF8000}"
85
86#define COLOR_WHITE 0xFFFFFFFF
87#define white "{FFFFFF}"
88
89#define brown "{A86565}"
90
91#define YELLOW2 0xF5DEB3FF
92
93#define COLOR_GREY 0xAFAFAFAA
94#define COLOR_ACTIVEBORDER 0xB4B4B4FF
95#define COLOR_ACTIVECAPTION 0x99B4D1FF
96#define COLOR_ACTIVECAPTIONTEXT 0x000000FF
97#define COLOR_ALICEBLUE 0xF0F8FFFF
98#define COLOR_ANTIQUEWHITE 0xFAEBD7FF
99#define COLOR_APPWORKSPACE 0xABABABFF
100#define COLOR_AQUA 0x00FFFFFF
101#define COLOR_AQUAMARINE 0x7FFFD4FF
102#define COLOR_AZURE 0xF0FFFFFF
103#define COLOR_BEIGE 0xF5F5DCFF
104#define COLOR_BISQUE 0xFFE4C4FF
105#define COLOR_BLACK 0x000000FF
106#define COLOR_BLANCHEDALMOND 0xFFEBCDFF
107#define COLOR_BLUE 0x0000FFFF
108#define COLOR_BLUEVIOLET 0x8A2BE2FF
109#define COLOR_BROWN 0xA52A2AFF
110#define COLOR_BURLYWOOD 0xDEB887FF
111#define COLOR_BUTTONFACE 0xF0F0F0FF
112#define COLOR_BUTTONHIGHLIGHT 0xFFFFFFFF
113#define COLOR_BUTTONSHADOW 0xA0A0A0FF
114#define COLOR_CADETBLUE 0x5F9EA0FF
115#define COLOR_CHARTREUSE 0x7FFF00FF
116#define COLOR_CHOCOLATE 0xD2691EFF
117#define COLOR_CONTROL 0xF0F0F0FF
118#define COLOR_CONTROLDARK 0xA0A0A0FF
119#define COLOR_CONTROLDARKDARK 0x696969FF
120#define COLOR_CONTROLLIGHT 0xE3E3E3FF
121#define COLOR_CONTROLLIGHTLIGHT 0xFFFFFFFF
122#define COLOR_CONTROLTEXT 0x000000FF
123#define COLOR_CORAL 0xFF7F50FF
124#define COLOR_CORNFLOWERBLUE 0x6495EDFF
125#define COLOR_CORNSILK 0xFFF8DCFF
126#define COLOR_CRIMSON 0xDC143CFF
127#define COLOR_CYAN 0x00FFFFFF
128#define COLOR_DARKBLUE 0x00008BFF
129#define COLOR_DARKCYAN 0x008B8BFF
130#define COLOR_DARKGOLDENROD 0xB8860BFF
131#define COLOR_DARKGRAY 0xA9A9A9FF
132#define COLOR_DARKGREEN 0x006400FF
133#define COLOR_DARKKHAKI 0xBDB76BFF
134#define COLOR_DARKMAGENTA 0x8B008BFF
135#define COLOR_DARKOLIVEGREEN 0x556B2FFF
136#define COLOR_DARKORANGE 0xFF8C00FF
137#define COLOR_DARKORCHID 0x9932CCFF
138#define COLOR_DARKRED 0x8B0000FF
139#define COLOR_DARKSALMON 0xE9967AFF
140#define COLOR_DARKSEAGREEN 0x8FBC8BFF
141#define COLOR_DARKSLATEBLUE 0x483D8BFF
142#define COLOR_DARKSLATEGRAY 0x2F4F4FFF
143#define COLOR_DARKTURQUOISE 0x00CED1FF
144#define COLOR_DARKVIOLET 0x9400D3FF
145#define COLOR_DEEPPINK 0xFF1493FF
146#define COLOR_DEEPSKYBLUE 0x00BFFFFF
147#define COLOR_DESKTOP 0x000000FF
148#define COLOR_DIMGRAY 0x696969FF
149#define COLOR_DODGERBLUE 0x1E90FFFF
150#define COLOR_FIREBRICK 0xB22222FF
151#define COLOR_FLORALWHITE 0xFFFAF0FF
152#define COLOR_FORESTGREEN 0x228B22FF
153#define COLOR_FUCHSIA 0xFF00FFFF
154#define COLOR_GAINSBORO 0xDCDCDCFF
155#define COLOR_GHOSTWHITE 0xF8F8FFFF
156#define COLOR_GOLD 0xFFD700FF
157#define COLOR_GOLDENROD 0xDAA520FF
158#define COLOR_GRADIENTACTIVECAPTION 0xB9D1EAFF
159#define COLOR_GRADIENTINACTIVECAPTION 0xD7E4F2FF
160#define COLOR_GRAY 0x808080FF
161#define COLOR_GRAYTEXT 0x808080FF
162#define COLOR_GREENYELLOW 0xADFF2FFF
163#define COLOR_HIGHLIGHT 0x3399FFFF
164#define COLOR_HIGHLIGHTTEXT 0xFFFFFFFF
165#define COLOR_HONEYDEW 0xF0FFF0FF
166#define COLOR_HOTPINK 0xFF69B4FF
167#define COLOR_HOTTRACK 0x0066CCFF
168#define COLOR_INACTIVEBORDER 0xF4F7FCFF
169#define COLOR_INACTIVECAPTION 0xBFCDDBFF
170#define COLOR_INACTIVECAPTIONTEXT 0x434E54FF
171#define COLOR_INDIANRED 0xCD5C5CFF
172#define COLOR_INDIGO 0x4B0082FF
173#define COLOR_INFO 0xFFFFE1FF
174#define COLOR_INFOTEXT 0x000000FF
175#define COLOR_IVORY 0xFFFFF0FF
176#define COLOR_KHAKI 0xF0E68CFF
177#define COLOR_LAVENDER 0xE6E6FAFF
178#define COLOR_LAVENDERBLUSH 0xFFF0F5FF
179#define COLOR_LAWNGREEN 0x7CFC00FF
180#define COLOR_LEMONCHIFFON 0xFFFACDFF
181#define COLOR_LIGHTBLUE 0xADD8E6FF
182#define COLOR_LIGHTCORAL 0xF08080FF
183#define COLOR_LIGHTCYAN 0xE0FFFFFF
184#define COLOR_LIGHTGOLDENRODYELLOW 0xFAFAD2FF
185#define COLOR_LIGHTGRAY 0xD3D3D3FF
186#define COLOR_LIGHTGREEN 0x90EE90FF
187#define COLOR_LIGHTPINK 0xFFB6C1FF
188#define COLOR_LIGHTSALMON 0xFFA07AFF
189#define COLOR_LIGHTSEAGREEN 0x20B2AAFF
190#define COLOR_LIGHTSKYBLUE 0x87CEFAFF
191#define COLOR_LIGHTSLATEGRAY 0x778899FF
192#define COLOR_LIGHTSTEELBLUE 0xB0C4DEFF
193#define COLOR_LIGHTYELLOW 0xFFFFE0FF
194#define COLOR_LIME 0x00FF00FF
195#define COLOR_LIMEGREEN 0x32CD32FF
196#define COLOR_LINEN 0xFAF0E6FF
197#define COLOR_MAGENTA 0xFF00FFFF
198#define COLOR_MAROON 0x800000FF
199#define COLOR_MEDIUMAQUAMARINE 0x66CDAAFF
200#define COLOR_MEDIUMBLUE 0x0000CDFF
201#define COLOR_MEDIUMORCHID 0xBA55D3FF
202#define COLOR_MEDIUMPURPLE 0x9370DBFF
203#define COLOR_MEDIUMSEAGREEN 0x3CB371FF
204#define COLOR_MEDIUMSLATEBLUE 0x7B68EEFF
205#define COLOR_MEDIUMSPRINGGREEN 0x00FA9AFF
206#define COLOR_MEDIUMTURQUOISE 0x48D1CCFF
207#define COLOR_MEDIUMVIOLETRED 0xC71585FF
208#define COLOR_MENU 0xF0F0F0FF
209#define COLOR_MENUBAR 0xF0F0F0FF
210#define COLOR_MENUHIGHLIGHT 0x3399FFFF
211#define COLOR_MENUTEXT 0x000000FF
212#define COLOR_MIDNIGHTBLUE 0x191970FF
213#define COLOR_MINTCREAM 0xF5FFFAFF
214#define COLOR_MISTYROSE 0xFFE4E1FF
215#define COLOR_MOCCASIN 0xFFE4B5FF
216#define COLOR_NAVAJOWHITE 0xFFDEADFF
217#define COLOR_NAVY 0x000080FF
218#define COLOR_OLDLACE 0xFDF5E6FF
219#define COLOR_OLIVE 0x808000FF
220#define COLOR_OLIVEDRAB 0x6B8E23FF
221#define COLOR_ORANGERED 0xFF4500FF
222#define COLOR_ORCHID 0xDA70D6FF
223#define COLOR_PALEGOLDENROD 0xEEE8AAFF
224#define COLOR_PALEGREEN 0x98FB98FF
225#define COLOR_PALETURQUOISE 0xAFEEEEFF
226#define COLOR_PALEVIOLETRED 0xDB7093FF
227#define COLOR_PAPAYAWHIP 0xFFEFD5FF
228#define COLOR_PEACHPUFF 0xFFDAB9FF
229#define COLOR_PERU 0xCD853FFF
230#define COLOR_PINK 0xFFC0CBFF
231#define COLOR_PLUM 0xDDA0DDFF
232#define COLOR_POWDERBLUE 0xB0E0E6FF
233#define COLOR_PURPLE 0x800080FF
234#define COLOR_ROSYBROWN 0xBC8F8FFF
235#define COLOR_ROYALBLUE 0x4169E1FF
236#define COLOR_SADDLEBROWN 0x8B4513FF
237#define COLOR_SALMON 0xFA8072FF
238#define COLOR_SANDYBROWN 0xF4A460FF
239#define COLOR_SCROLLBAR 0xC8C8C8FF
240#define COLOR_SEAGREEN 0x2E8B57FF
241#define COLOR_SEASHELL 0xFFF5EEFF
242#define COLOR_SIENNA 0xA0522DFF
243#define COLOR_SILVER 0xC0C0C0FF
244#define COLOR_SKYBLUE 0x87CEEBFF
245#define COLOR_SLATEBLUE 0x6A5ACDFF
246#define COLOR_SLATEGRAY 0x708090FF
247#define COLOR_SNOW 0xFFFAFAFF
248#define COLOR_SPRINGGREEN 0x00FF7FFF
249#define COLOR_STEELBLUE 0x4682B4FF
250#define COLOR_TAN 0xD2B48CFF
251#define COLOR_TEAL 0x008080FF
252#define COLOR_THISTLE 0xD8BFD8FF
253#define COLOR_TOMATO 0xFF6347FF
254#define COLOR_TRANSPARENT 0xFFFFFF00
255#define COLOR_TURQUOISE 0x40E0D0FF
256#define COLOR_VIOLET 0xEE82EEFF
257#define COLOR_WHEAT 0xF5DEB3FF
258
259#define COLOR_WHITESMOKE 0xF5F5F5FF
260#define COLOR_WINDOW 0xFFFFFFFF
261#define COLOR_WINDOWFRAME 0x646464FF
262#define COLOR_WINDOWTEXT 0x000000FF
263#define COLOR_YELLOWGREEN 0x9ACD32FF
264#define STEALTH_ORANGE 0xFF880000
265#define STEALTH_OLIVE 0x66660000
266#define STEALTH_GREEN 0x33DD1100
267#define STEALTH_PINK 0xFF22EE00
268#define STEALTH_BLUE 0x0077BB00
269
270#define MAX_REPORTS 200 // you can edit this
271#define USE_DIALOG_FOR_REPORT true // if you want the report with dialog then use true and if not you can use false to use /report [text]
272//Finished the define and include
273
274enum xv_data
275{
276 xv_Veh,
277 xv_ModelID,
278 xv_Renk[2],
279 Float:xv_Pos[4],
280 xv_Paintjob,
281 xv_Parca[14],
282 xv_Sahip[24],
283 xv_Plaka[8],
284 xv_Garajda,
285 Text3D:xv_Text,
286 xv_Fiyat,
287 xv_HizliPark
288};
289
290new
291 xVehicle[MAX_VEHICLES][xv_data],
292 xVeh[MAX_VEHICLES],
293 offerTimer[MAX_PLAYERS],
294 Iterator:xVehicles<MAX_VEHICLES>,
295 Iterator:xVehicleKeys<MAX_PLAYERS, MAX_VEHICLES>,
296 MySQL:mysqlB
297;
298
299new VehicleNames[][] =
300{
301 "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel",
302 "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus",
303 "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam",
304 "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BFInjection",
305 "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus",
306 "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie",
307 "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral",
308 "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder",
309 "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "BerkleysRCVan",
310 "Skimmer", "PCJ-600", "Faggio", "Freeway", "RCBaron", "RCRaider", "Glendale",
311 "Oceanic","Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy",
312 "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX",
313 "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "NewsChopper",
314 "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking",
315 "BlistaCompact", "PoliceMaverick", "Boxvillde", "Benson", "Mesa", "RCGoblin",
316 "HotringRacerA", "HotringRacerB", "BloodringBanger", "Rancher", "SuperGT",
317 "Elegant", "Journey", "Bike", "MountainBike", "Beagle", "Cropduster", "Stunt",
318 "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra",
319 "FCR-900", "NRG-500", "HPV1000", "CementTruck", "TowTruck", "Fortune",
320 "Cadrona", "FBITruck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer",
321 "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent",
322 "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo",
323 "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite",
324 "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratium",
325 "Elegy", "Raindance", "RCTiger", "Flash", "Tahoma", "Savanna", "Bandito",
326 "FreightFlat", "StreakCarriage", "Kart", "Mower", "Dune", "Sweeper",
327 "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400",
328 "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club",
329 "FreightBox", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "LSPD",
330 "SFPD", "LVPD", "PoliceRanger", "Picador", "S.W.A.T", "Alpha",
331 "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville",
332 "Tiller", "UtilityTrailer"
333};
334
335enum PlayerInfo
336{
337 Pass,
338 RconWarn,
339 WazzAdmLevel,
340 WazzVIPLevel,
341 Cash,
342 Warn,
343 Banned,
344 Jailed,
345 Muted,
346 Freeze,
347 Kills,
348 Deaths
349}
350new pInfo[MAX_PLAYERS][PlayerInfo],
351 Duting[MAX_PLAYERS],
352 DutyWeapon[MAX_PLAYERS][7],
353 admspec[MAX_PLAYERS],
354 reported[MAX_PLAYERS],
355 sLocked,
356 JP[MAX_PLAYERS],
357 GodCar[MAX_VEHICLES],
358 iscountactivated = 0,
359 countamount,
360 CountTimer;
361
362enum rInfo
363{
364 Reporter[MAX_PLAYER_NAME],
365 ReportString[149],
366 ReportAnswered,
367 Listitem[MAX_REPORTS + 2]
368}
369new ReportInfo[MAX_REPORTS + 1][rInfo];
370new ReportIDTaken[MAX_REPORTS + 1];
371new AcceptingAdminID[MAX_PLAYERS];
372new PlayerThatReported[MAX_PLAYERS];
373new ReportCount = 0;
374
375new String[128], Float:SpecX[MAX_PLAYERS], Float:SpecY[MAX_PLAYERS], Float:SpecZ[MAX_PLAYERS], vWorld[MAX_PLAYERS], Inter[MAX_PLAYERS];
376new IsSpecing[MAX_PLAYERS], Name[MAX_PLAYER_NAME], IsBeingSpeced[MAX_PLAYERS],spectatorid[MAX_PLAYERS],agate,agate1;
377
378forward Count();
379
380forward LoadUser_data(playerid,name[],value[]);
381public LoadUser_data(playerid,name[],value[])
382{
383 INI_Int("Password",pInfo[playerid][Pass]);
384 INI_Int("WazzAdmin",pInfo[playerid][WazzAdmLevel]);
385 INI_Int("WazzVip",pInfo[playerid][WazzVIPLevel]);
386 INI_Int("Warn",pInfo[playerid][Warn]);
387 INI_Int("Banned",pInfo[playerid][Banned]);
388 INI_Int("Jailed",pInfo[playerid][Jailed]);
389 INI_Int("Freeze",pInfo[playerid][Freeze]);
390 INI_Int("Cash",pInfo[playerid][Cash]);
391 INI_Int("Kills",pInfo[playerid][Kills]);
392 INI_Int("Deaths",pInfo[playerid][Deaths]);
393 return 1;
394}
395
396stock UserPath(playerid)
397{
398 new string[128];
399 format(string,sizeof(string),PATH,GetName(playerid));
400 return string;
401}
402
403stock udb_hash(buf[]) {
404 new length=strlen(buf);
405 new s1 = 1;
406 new s2 = 0;
407 new n;
408 for (n=0; n<length; n++)
409 {
410 s1 = (s1 + buf[n]) % 65521;
411 s2 = (s2 + s1) % 65521;
412 }
413 return (s2 << 16) + s1;
414}
415
416stock SetPlayerWazzAdminLevel(playerid, level)
417{
418 switch(level)
419 {
420 case 0: pInfo[playerid][WazzAdmLevel] = 0;
421 case 1: pInfo[playerid][WazzAdmLevel] = 1;
422 case 2: pInfo[playerid][WazzAdmLevel] = 2;
423 case 3: pInfo[playerid][WazzAdmLevel] = 3;
424 case 4: pInfo[playerid][WazzAdmLevel] = 4;
425 case 5: pInfo[playerid][WazzAdmLevel] = 5;
426 }
427}
428
429stock Error(playerid, id)
430{
431 switch(id)
432 {
433 case 1: SendClientMessage(playerid,COLOR_RED,"You not authorzired to use this command");
434 case 2: SendClientMessage(playerid,COLOR_RED,"You need to be admin level 2 to use this command");
435 case 3: SendClientMessage(playerid,COLOR_RED,"You need to be admin level 3 to use this command");
436 case 4: SendClientMessage(playerid,COLOR_RED,"You need to be admin level 4 to use this command");
437 case 5: SendClientMessage(playerid,COLOR_RED,"You need to be admin level 5 to use this command");
438 case 6: SendClientMessage(playerid,COLOR_RED,"Player don't found");
439 case 11: SendClientMessage(playerid,COLOR_RED,"You need to be vip level 1 to use this command");
440 case 12: SendClientMessage(playerid,COLOR_RED,"You need to be vip level 2 to use this command");
441 case 13: SendClientMessage(playerid,COLOR_RED,"You need to be vip level 3 to use this command");
442 }
443 return 1;
444}
445
446stock RemovePlayerWeapon(playerid, weaponid)
447{
448 new pWeaponData[13][2];
449 for (new i = 0; i < 13; i++)
450 {
451 GetPlayerWeaponData(playerid, i, pWeaponData[i][0], pWeaponData[i][1]);
452 }
453
454 ResetPlayerWeapons(playerid);
455 for(new i=0; i<13; i++)
456 {
457 if(pWeaponData[i][0] != 0 && pWeaponData[i][0] != weaponid)
458 {
459 GivePlayerWeapon(playerid, pWeaponData[i][0], pWeaponData[i][1]);
460 }
461 }
462 return 0;
463}
464
465forward ReportedLoop();
466
467//enum login/register
468new RM[CURRENT_MESSAGES][128];
469forward SendRandomMessage();
470
471//all stock
472stock NAMEGET(playerid)
473{
474 new name[MAX_PLAYER_NAME];
475 GetPlayerName(playerid,name,sizeof(name));
476 for(new i = 0; i < MAX_PLAYER_NAME; i++)
477 {
478 if(name[i] == '_') name[i] = ' ';
479 }
480 return name;
481}
482stock ProxDetectorNew(playerid,Float:Radi=10.0,color,text[])
483{
484 new Float:pos[3];
485 GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
486 for(new i;i<MAX_PLAYERS;i++)
487 {
488 if(!IsPlayerConnected(i)) continue; //
489 if(IsPlayerInRangeOfPoint(i,Radi,pos[0],pos[1],pos[2]))
490 {
491 if(GetPlayerVirtualWorld(i) == GetPlayerVirtualWorld(playerid) && GetPlayerInterior(playerid) == GetPlayerInterior(i))SendClientMessage(i,color,text);
492 }
493 }
494}
495stock AddRandomMessage(text[])
496{
497 for(new m; m < CURRENT_MESSAGES; m++)
498 {
499 if(!strlen(RM[m]))
500 {
501 strmid(RM[m], text, 0, 127);
502 return 1;
503 }
504 }
505 return 0;
506}
507//stock ended
508
509main()
510{
511 print("\n----------------------------------");
512 print(" Gamemode by Irwan Ibrahim");
513 print("----------------------------------\n");
514}
515
516public OnGameModeInit()
517{
518 print("[xVeh MySql] Connecting to database...");
519
520 mysqlB = mysql_connect(SQL_HOST, SQL_USER, SQL_PASSWORD, SQL_DBNAME);
521 mysql_log(ALL);
522 if (mysql_errno(mysqlB) == 0) print("[xVeh MySql] Connection successful!");
523 else print("[xVeh MySql] The connection has failed!\n\n[!!! xVehicle v2 couldn't init !!!]\n\n");
524
525 new query[1024];
526
527 strcat(query, "CREATE TABLE IF NOT EXISTS `xVehicle` (\
528 `ID` int(11),\
529 `Sahip` varchar(48) default '',\
530 `Fiyat` int(11) default '0',\
531 `X` float default '0',\
532 `Y` float default '0',\
533 `Z` float default '0',\
534 `A` float default '0',\
535 `HizliPark` int(2) default '0',\
536 `Model` int(5) default '0',\
537 `Renk1` int(5) default '0',\
538 `Renk2` int(5) default '0',\
539 `Plaka` varchar(8),\
540 `Garajda` int(2) default '0',\
541 `PJ` int(5) default '-1',");
542
543 strcat(query, "`Parca1` int(8) default '0',\
544 `Parca2` int(8) default '0',\
545 `Parca3` int(8) default '0',\
546 `Parca4` int(8) default '0',\
547 `Parca5` int(8) default '0',\
548 `Parca6` int(8) default '0',\
549 `Parca7` int(8) default '0',\
550 `Parca8` int(8) default '0',");
551
552
553 strcat(query, "`Parca9` int(8) default '0',\
554 `Parca10` int(8) default '0',\
555 `Parca11` int(8) default '0',\
556 `Parca12` int(8) default '0',\
557 `Parca13` int(8) default '0',\
558 `Parca14` int(8) default '0',\
559 PRIMARY KEY (`ID`),\
560 UNIQUE KEY `ID_2` (`ID`),\
561 KEY `ID` (`ID`)\
562 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
563
564 mysql_query(mysqlB, query);
565
566 mysql_query(mysqlB, "CREATE TABLE IF NOT EXISTS `xVehicleKeys` (\
567 `AracID` int(11) NOT NULL,\
568 `Isim` varchar(24) NOT NULL\
569 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
570
571 Iter_Add(xVehicles, 0);
572
573 mysql_tquery(mysqlB, "SELECT * FROM `xVehicle`", "LoadxVehicles");
574 SetTimer("ReportedLoop",1000,true);
575 SetTimer("SendRandomMsgToAll", 60000, 1);
576 for(new i = 0;i < MAX_PLAYERS;i += 1)
577 {
578 if(IsPlayerConnected(i))
579 {
580 AcceptingAdminID[i] = -1;
581 PlayerThatReported[i] = -1;
582 }
583 }
584 SetGameModeText("J-CNR Re-Build!");
585 AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
586 AddRandomMessage("Add any news here");
587 AddRandomMessage("Add any news here");
588 AddRandomMessage("Add any news here");
589 AddRandomMessage("Add any news here");
590 SetTimer("SendRandomMessage", MESSAGE_INTERVAL * 1000, 1);
591 return 1;
592}
593
594public SendRandomMessage()
595{
596 static lastmessage = 0;
597 new rand = random(CURRENT_MESSAGES);
598 while(rand == lastmessage && CURRENT_MESSAGES != 1) { rand = random(CURRENT_MESSAGES); }
599 lastmessage = rand;
600 SendClientMessageToAll(COLOR_LIME, RM[lastmessage]);
601}
602
603public OnGameModeExit()
604{
605 return 1;
606}
607
608public OnPlayerRequestClass(playerid, classid)
609{
610 SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
611 SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
612 SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
613 return 1;
614}
615
616public OnPlayerConnect(playerid)
617{
618 SetPVarInt(playerid, "xv_teklif_id", INVALID_PLAYER_ID);
619 SetPVarInt(playerid, "xv_teklif_gonderen", INVALID_PLAYER_ID);
620 LoadxVehicleKeys(playerid);
621 reported[playerid] = 0;
622 AcceptingAdminID[playerid] = -1;
623 PlayerThatReported[playerid] = -1;
624 if(sLocked == 1) return Kick(playerid);
625 if(fexist(UserPath(playerid)))
626 {
627 INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
628 ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,""white"J-CNR Login Panel",""white"Masukan password kamu untuk login!","Login","Quit");
629 }
630 else
631 {
632 ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,""white"J-CNR Registering Panel",""white"Silahkan buat password kamu, karena akun kamu belum terdaftar","Register","Quit");
633 }
634 return 1;
635}
636
637public OnPlayerDisconnect(playerid, reason)
638{
639 if(GetPVarInt(playerid, "xv_teklif_gonderen") != INVALID_PLAYER_ID)
640 {
641 new gonderen = GetPVarInt(playerid, "xv_teklif_gonderen");
642 KillTimer(offerTimer[playerid]);
643 SetPVarInt(gonderen, "xv_teklif_id", INVALID_PLAYER_ID);
644 SendClientMessage(gonderen, -1, "{FF0000}[!] {DCDC22}Your vehicle offer has cancelled because of the player that you offered has disconnected.");
645 }
646
647 if(GetPVarInt(playerid, "xv_teklif_id") != INVALID_PLAYER_ID)
648 {
649 new alan = GetPVarInt(playerid, "xv_teklif_id");
650 SetPVarInt(alan, "xv_teklif_gonderen", INVALID_PLAYER_ID);
651 DeletePVar(alan, "xv_teklif_xid");
652 DeletePVar(alan, "xv_teklif_fiyat");
653 KillTimer(offerTimer[alan]);
654 SendClientMessage(alan, -1, "{FF0000}[!] {DCDC22}The offer has cancelled because of the player that make the offer has disconnected.");
655 }
656
657 if(IsPlayerInAnyVehicle(playerid))
658 {
659 new xid = xVeh[GetPlayerVehicleID(playerid)], Float:xvHP;
660 GetVehicleHealth(GetPlayerVehicleID(playerid), xvHP);
661 if(xid != 0 && xVehicle[xid][xv_HizliPark] == 1 && !IsVehicleFlipped(GetPlayerVehicleID(playerid)) && xvHP > 300)
662 {
663 GetVehiclePos(GetPlayerVehicleID(playerid), xVehicle[xid][xv_Pos][0], xVehicle[xid][xv_Pos][1], xVehicle[xid][xv_Pos][2]);
664 GetVehicleZAngle(GetPlayerVehicleID(playerid), xVehicle[xid][xv_Pos][3]);
665 SavexVehicle(xid);
666 }
667 }
668 new INI:File = INI_Open(UserPath(playerid));
669 INI_SetTag(File,"data");
670 INI_WriteInt(File,"Password",pInfo[playerid][Pass]);
671 INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
672 INI_WriteInt(File,"WazzLevel",pInfo[playerid][WazzAdmLevel]);
673 INI_WriteInt(File,"WazzVIPLevel",pInfo[playerid][WazzVIPLevel]);
674 INI_WriteInt(File,"Warn",pInfo[playerid][Warn]);
675 INI_WriteInt(File,"Banned",pInfo[playerid][Banned]);
676 INI_WriteInt(File,"Freeze",pInfo[playerid][Freeze]);
677 INI_WriteInt(File,"Muted",pInfo[playerid][Muted]);
678 INI_WriteInt(File,"Kills",pInfo[playerid][Kills]);
679 INI_WriteInt(File,"Deaths",pInfo[playerid][Deaths]);
680 INI_Close(File);
681
682 JP[playerid] = 0;
683
684 if(IsBeingSpeced[playerid] == 1)
685 {
686 foreach(new i: Player)
687 {
688 if(spectatorid[i] == playerid)
689 {
690 TogglePlayerSpectating(i,false);
691 }
692 }
693 }
694 new str[128];
695 new PlayerName[MAX_PLAYER_NAME];
696 GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
697 format(str,sizeof(str),"%s has left/quit the server",PlayerName);
698 SendClientMessageToAll(-1,str);
699 return 1;
700}
701
702public OnPlayerSpawn(playerid)
703{
704 if(IsSpecing[playerid] == 1)
705 {
706 SetPlayerPos(playerid,SpecX[playerid],SpecY[playerid],SpecZ[playerid]);// Remember earlier we stored the positions in these variables, now we're gonna get them from the variables.
707 SetPlayerInterior(playerid,Inter[playerid]);//Setting the player's interior to when they typed '/spec'
708 SetPlayerVirtualWorld(playerid,vWorld[playerid]);//Setting the player's virtual world to when they typed '/spec'
709 IsSpecing[playerid] = 0;//Just saying you're free to use '/spec' again YAY :D
710 IsBeingSpeced[spectatorid[playerid]] = 0;//Just saying that the player who was being spectated, is not free from your stalking >:D
711 }
712 new str[128];
713 new PlayerName[MAX_PLAYER_NAME];
714 GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
715 format(str,sizeof(str),"%s has joined the server",PlayerName);
716 SendClientMessageToAll(-1,str);
717 return 1;
718}
719
720public OnPlayerDeath(playerid, killerid, reason)
721{
722 pInfo[playerid][Deaths] ++;
723 pInfo[killerid][Kills] ++;
724 if(IsBeingSpeced[playerid] == 1)
725 {
726 foreach(new i: Player)
727 {
728 if(spectatorid[i] == playerid)
729 {
730 TogglePlayerSpectating(i,false);
731 }
732 }
733 }
734 return 1;
735}
736
737public OnVehicleSpawn(vehicleid)
738{
739 new xid = xVeh[vehicleid];
740 if(xid != 0)
741 {
742 DestroyVehicle(xVehicle[xid][xv_Veh]);
743 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);
744 xVeh[xVehicle[xid][xv_Veh]] = xid;
745 SetVehicleNumberPlate(xVehicle[xid][xv_Veh], xVehicle[xid][xv_Plaka]);
746 LoadVehicleMod(xid);
747 }
748 return 1;
749}
750
751public OnVehicleDeath(vehicleid, killerid)
752{
753 return 1;
754}
755
756public OnPlayerText(playerid, text[])
757{
758 if(pInfo[playerid][Muted] == 1)
759 {
760 SendClientMessage(playerid,COLOR_RED,"You have been muted. Type /report to ask admin about unmute");
761 return 0;
762 }
763 #if CHAT_LOG == true
764 new string[128];
765 format(string,sizeof(string),"%s: %s",GetName(playerid),text);
766 SaveIn("Chat.log",string);
767 #endif
768 return 1;
769}
770
771public OnPlayerCommandText(playerid, cmdtext[])
772{
773 return 1;
774}
775
776//========[COMMANDS]=========//
777CMD:stats(playerid,params[])
778{
779 new string[128];
780 new Admin = pInfo[playerid][WazzAdmLevel];
781 new VIP = pInfo[playerid][WazzVIPLevel];
782 new Money = pInfo[playerid][Cash];
783 new warning = pInfo[playerid][Warn];
784 new muted = pInfo[playerid][Muted];
785 new freezed = pInfo[playerid][Freeze];
786 new kills = pInfo[playerid][Kills];
787 new deaths = pInfo[playerid][Deaths];
788 format(string,sizeof(string),"Admin: %i\nVIP: %i\nMoney: %s\nWarnings: %i\nMuted: %i\nFreezed: %i\nKills: %i\nDeaths: %i",Admin,VIP,Money,warning,muted,freezed,kills,deaths);
789 ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Your Status",string,"Ok","");
790 return 1;
791}
792CMD:changepass(playerid,params[])
793{
794 new opass[128],npass[64];
795 if(sscanf(params,"s[128]s[64]",opass,npass)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /changepass [old pass] [new pass]");
796 if(udb_hash(opass) == pInfo[playerid][Pass])
797 {
798 new string[128];
799 new INI:File = INI_Open(UserPath(playerid));
800 INI_WriteInt(File,"Password",strlen(npass));
801 INI_Close(File);
802 format(string,sizeof(string),"You has change you pass %s to %s. Have a nice day :)",opass,npass);
803 SendClientMessage(playerid,COLOR_YELLOW,string);
804 }
805 else return SendClientMessage(playerid,COLOR_RED,"You has entered a wrong password. Please type right old password to make a new pass");
806 return 1;
807}
808CMD:admins(playerid,params[])
809{
810 new count = 0;
811 new string[128];
812 new AdminRank[128];
813 SendClientMessage(playerid,COLOR_RED,"");
814 SendClientMessage(playerid,COLOR_GREEN,"________________|ONLINE ADMINS|________________");
815 SendClientMessage(playerid,COLOR_RED,"");
816 for(new i = 0; i < MAX_PLAYERS; i++)
817 {
818 if(IsPlayerConnected(i))
819 {
820 if(pInfo[i][WazzAdmLevel] > 0)
821 {
822 if(pInfo[i][WazzAdmLevel] == 1)
823 {
824 AdminRank = "Helper";
825 }
826 else if(pInfo[i][WazzAdmLevel] == 2)
827 {
828 AdminRank = "Moderator";
829 }
830 else if(pInfo[i][WazzAdmLevel] == 3)
831 {
832 AdminRank = "Administrator";
833 }
834 else if(pInfo[i][WazzAdmLevel] == 4)
835 {
836 AdminRank = "UnBan Manager";
837 }
838 else if(pInfo[i][WazzAdmLevel] == 5)
839 {
840 AdminRank = "Server Owner";
841 }
842 new aName[MAX_PLAYER_NAME];
843 GetPlayerName(i,aName,sizeof(aName));
844 format(string, sizeof(string), "Level: %d | Name: %s (ID:%i) | Rank: %s ", pInfo[i][WazzAdmLevel], aName,i,AdminRank);
845 SendClientMessage(playerid,COLOR_CYAN,string);
846 count++;
847 }
848 }
849 }
850 if(count == 0)
851 SendClientMessage(playerid,COLOR_RED,"No Admins online!");
852 SendClientMessage(playerid,COLOR_GREEN,"_________________________________________________");
853 return 1;
854}
855CMD:vips(playerid,params[])
856{
857 new count = 0;
858 new string[128];
859 new VIPRank[128];
860 SendClientMessage(playerid,COLOR_RED,"");
861 SendClientMessage(playerid,COLOR_GREEN,"________________|ONLINE VIPS|________________");
862 SendClientMessage(playerid,COLOR_RED,"");
863 for(new i = 0; i < MAX_PLAYERS; i++)
864 {
865 if(IsPlayerConnected(i))
866 {
867 if(pInfo[i][WazzVIPLevel] > 0)
868 {
869 if(pInfo[i][WazzVIPLevel] == 1)
870 {
871 VIPRank = "Bronze";
872 }
873 else if(pInfo[i][WazzVIPLevel] == 2)
874 {
875 VIPRank = "Silver";
876 }
877 else if(pInfo[i][WazzVIPLevel] == 3)
878 {
879 VIPRank = "Golden";
880 }
881 new vName[MAX_PLAYER_NAME];
882 GetPlayerName(i,vName,sizeof(vName));
883 format(string, sizeof(string), "Level: %d | Name: %s (ID:%i) | Rank: %s ", pInfo[i][WazzVIPLevel],vName,i,VIPRank);
884 SendClientMessage(playerid,COLOR_CYAN,string);
885 count++;
886 }
887 }
888 }
889 if(count == 0)
890 SendClientMessage(playerid,COLOR_RED,"No VIPs online!");
891 SendClientMessage(playerid,COLOR_GREEN,"_________________________________________________");
892 return 1;
893}
894CMD:report(playerid,params[])
895{
896 new string[96];
897 if (reported[playerid] != 0)
898 {
899 format(string, sizeof(string), "You must wait %d more seconds before reporting.", reported[playerid]);
900 return SendClientMessage(playerid, COLOR_GREY, string);
901 }
902 #if USE_DIALOG_FOR_REPORT true
903 ShowPlayerDialog(playerid,DIALOG_REPORT, DIALOG_STYLE_INPUT, "Reporting", "Please enter what you want to report to the administrators in the box below.\n\nNOTE: This command is for reporting ONLY and speaking to administrators. Abuse of this command will result in a mute of the command.", "Report", "Cancel");
904 #else
905 if (isnull(params)) return UsageMessage(playerid, "/report [text]");
906 AddReport(playerid, params);
907 #endif
908 return 1;
909}
910CMD:closereport(playerid,params[])
911{
912 new string[96];
913 if (GetPVarInt(playerid, "ReportID") != 0)
914 {
915 new reportid = GetPVarInt(playerid, "ReportID");
916 new reporter = PlayerThatReported[playerid];
917
918 SendClientMessage(reporter, COLOR_YELLOW, "An administrator has closed your report.");
919 format(string, sizeof(string), "You've closed report #%d.", reportid);
920 SendClientMessage(playerid, COLOR_YELLOW, string);
921 AcceptingAdminID[reporter] = -1;
922 PlayerThatReported[playerid] = -1;
923
924 strmid(ReportInfo[reportid][Reporter], "", 0, strlen(""), 255);
925 strmid(ReportInfo[reportid][ReportString], "", 0, strlen(""), 255);
926 ReportInfo[reportid][ReportAnswered] = 0;
927 ReportIDTaken[reportid] = 0;
928 ReportInfo[reportid][Listitem][ReportInfo[reportid][Listitem]] = -1;
929 ReportCount -= 1;
930
931 ShuffleListitems();
932 DeletePVar(playerid, "ReportID");
933 return 1;
934 }
935 else SendClientMessage(playerid, COLOR_GREY, "You haven't accepted any report.");
936 return 1;
937}
938//Admin level 1 commands
939CMD:adoor(playerid,params[])
940{
941 if(pInfo[playerid][WazzAdmLevel] >= 1)
942 {
943 MoveObject(agate,259.10000610352,3114.411,-2, 4.00);
944 SetTimer("close", 4000, 0);
945 SendClientMessage(playerid,COLOR_LIME,"You are opening Admin Gate it will be closed in 4 seconds");
946 }
947 else return Error(playerid,1);
948 return 1;
949}
950CMD:agate(playerid,params[])
951{
952 if(pInfo[playerid][WazzAdmLevel] >= 1)
953 {
954 MoveObject(agate1, 264.62, 3254.86, -3.5, 4.00);
955 SetTimer("close1", 4000, 0);
956 SendClientMessage(playerid,COLOR_LIME,"You are opening Boat Admin Gate it will be closed in 4 seconds");
957 }
958 else return Error(playerid,1);
959 return 1;
960}
961CMD:aland(playerid,params[])
962{
963 if(pInfo[playerid][WazzAdmLevel] >= 1)
964 {
965 SetPlayerPos(playerid,256.6633,2934.7346,1.8637);
966 SendClientMessage(playerid,COLOR_LIME,"Welcome to admin island!! Have a good day!!");
967 }
968 else return Error(playerid,1);
969 return 1;
970}
971CMD:achat(playerid,params[])
972{
973 if(pInfo[playerid][WazzAdmLevel] >= 1)
974 {
975 new text[256],an[MAX_PLAYER_NAME],string[128];
976 if(sscanf(params,"s[256]",text)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /a(chat) [text]");
977 GetPlayerName(playerid,an,sizeof(an));
978 for(new i; i < MAX_PLAYERS; i++)
979 {
980 if(pInfo[i][WazzAdmLevel] >= 1)
981 {
982 format(string,sizeof(string),"%s: %s",an,text);
983 SendClientMessage(i,COLOR_YELLOW,string);
984 }
985 }
986 }
987 else return Error(playerid,1);
988 return 1;
989}
990CMD:a(playerid,params[])
991{
992 if(pInfo[playerid][WazzAdmLevel] >= 1)
993 {
994 new text[256],an[MAX_PLAYER_NAME],string[128];
995 if(sscanf(params,"s[256]",text)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /a(chat) [text]");
996 GetPlayerName(playerid,an,sizeof(an));
997 for(new i; i < MAX_PLAYERS; i++)
998 {
999 if(pInfo[i][WazzAdmLevel] >= 1)
1000 {
1001 format(string,sizeof(string),"%s: %s",an,text);
1002 SendClientMessage(i,COLOR_YELLOW,string);
1003 }
1004 }
1005 }
1006 else return Error(playerid,1);
1007 return 1;
1008}
1009CMD:acmds(playerid,params[])
1010{
1011 if(pInfo[playerid][WazzAdmLevel] >= 1)
1012 {
1013 ShowPlayerDialog(playerid,DIALOG_CHOOSE_LEVEL,DIALOG_STYLE_LIST,"List Commands","Level 1\nLevel 2\nLevel 3\nLevel 4\nLevel 5","Choose","Cancel");
1014 }
1015 else return Error(playerid,1);
1016 return 1;
1017}
1018CMD:duty(playerid,params[])
1019{
1020 if(pInfo[playerid][WazzAdmLevel] >= 1)
1021 {
1022 if(Duting[playerid] == 0)
1023 {
1024 OnDuty(playerid);
1025 SendClientMessage(playerid,COLOR_GREEN,"Your now on duty!");
1026 }
1027 else
1028 {
1029 OffDuty(playerid);
1030 SendClientMessage(playerid,COLOR_GREEN,"Your now off duty!");
1031 }
1032 }
1033 else return Error(playerid,1);
1034 return 1;
1035}
1036CMD:count(playerid,params[])
1037{
1038 static amount;
1039 if(sscanf(params,"i",amount)) return SendClientMessage(playerid,-1,"USAGE: /count [amount]");
1040 if(iscountactivated == 1) return SendClientMessage(playerid,-1,"The countdown is already activated!");
1041 if(amount > 10 || amount <= 0) return SendClientMessage(playerid,-1,"The amount can't be greater than 10");
1042 CountTimer = SetTimer("Count",1000,true);
1043 countamount = amount;
1044 iscountactivated = 1;
1045 return 1;
1046}
1047CMD:reports(playerid,params[])
1048{
1049 if(pInfo[playerid][WazzAdmLevel] >= 1)
1050 {
1051 if(Duting[playerid] != 0)
1052 {
1053 if(GetPVarInt(playerid, "ReportID") != 0) return SendClientMessage(playerid, COLOR_GREY, "You're already handling a report. Use /closereport if you want to handle another one.");
1054 ShowPlayerDialog(playerid, DIALOG_REPORTS, DIALOG_STYLE_LIST, "Reports", "List Reports\nDelete Reports", "Select", "Cancel");
1055 }
1056 else return SendClientMessage(playerid,COLOR_RED,"You have to on duty first then use this command");
1057 }
1058 else return Error(playerid,1);
1059 return 1;
1060}
1061CMD:goto(playerid,params[])
1062{
1063 if(pInfo[playerid][WazzAdmLevel] >= 1)
1064 {
1065 new Float:x,Float:y,Float:z,id;
1066 if(sscanf(params,"u",id)) return SendClientMessage(playerid,COLOR_BLUE,"USAGE: /goto [playerid]");
1067 if(id == INVALID_PLAYER_ID) return Error(playerid,6);
1068 GetPlayerPos(id,x,y,z);
1069 SetPlayerPos(playerid,x,y,z);
1070 }
1071 else return Error(playerid,1);
1072 return 1;
1073}
1074CMD:gethere(playerid,params[])
1075{
1076 if(pInfo[playerid][WazzAdmLevel] >= 1)
1077 {
1078 new Float:x,Float:y,Float:z,id;
1079 if(sscanf(params,"u",id)) return SendClientMessage(playerid,COLOR_BLUE,"USAGE: /gethere [playerid]");
1080 if(id == INVALID_PLAYER_ID) return Error(playerid,6);
1081 if(pInfo[id][WazzAdmLevel] > pInfo[playerid][WazzAdmLevel]) return SendClientMessage(playerid,COLOR_RED,"You can't use this command on a nother admin high level than you");
1082 GetPlayerPos(playerid,x,y,z);
1083 SetPlayerPos(id,x,y,z);
1084 }
1085 else return Error(playerid,1);
1086 return 1;
1087}
1088CMD:mute(playerid,params[])
1089{
1090 if(pInfo[playerid][WazzAdmLevel] >= 1)
1091 {
1092 new id;
1093 if(sscanf(params,"u",id)) return SendClientMessage(playerid,COLOR_BLUE,"USAGE: /mute [playerid]");
1094 if(id == INVALID_PLAYER_ID) return Error(playerid,6);
1095 if(pInfo[id][WazzAdmLevel] > pInfo[playerid][WazzAdmLevel]) return SendClientMessage(playerid,COLOR_RED,"You can't use this command on a nother admin high level than you");
1096 pInfo[id][Muted] = 1;
1097 }
1098 else return Error(playerid,1);
1099 return 1;
1100}
1101CMD:unmute(playerid,params[])
1102{
1103 if(pInfo[playerid][WazzAdmLevel] >= 1)
1104 {
1105 new id;
1106 if(sscanf(params,"u",id)) return SendClientMessage(playerid,COLOR_BLUE,"USAGE: /unmute [playerid]");
1107 if(id == INVALID_PLAYER_ID) return Error(playerid,6);
1108 if(pInfo[id][WazzAdmLevel] > pInfo[playerid][WazzAdmLevel]) return SendClientMessage(playerid,COLOR_RED,"You can't use this command on a nother admin high level than you");
1109 pInfo[id][Muted] = 0;
1110 }
1111 else return Error(playerid,1);
1112 return 1;
1113}
1114CMD:getinfo(playerid,params[])
1115{
1116 if(pInfo[playerid][WazzAdmLevel] >= 1)
1117 {
1118 new id,string[128];
1119 if(sscanf(params,"u",id)) return SendClientMessage(playerid,COLOR_ORANGE,"USAGE: /getip [playerid]");
1120 if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,"Player not found!");
1121 new pip[32];
1122 GetPlayerIp(id,pip,sizeof(pip));
1123 format(string,sizeof(string),"[NAME]: %s, [IP]: %s",GetName(id),pip);
1124 SendClientMessage(playerid,COLOR_RED,string);
1125 }
1126 else return Error(playerid,2);
1127 return 1;
1128}
1129CMD:clearchat(playerid,params[])
1130{
1131 if(pInfo[playerid][WazzAdmLevel] >= 1)
1132 {
1133 for(new i = 0; i < 250; i++) SendClientMessageToAll(0x00000000," ");
1134 }
1135 else return Error(playerid,2);
1136 return 1;
1137}
1138CMD:slap(playerid,params[])
1139{
1140 if(pInfo[playerid][WazzAdmLevel] >= 1)
1141 {
1142 new Float:x,Float:y,Float:z,id;
1143 if(sscanf(params,"u",id)) return SendClientMessage(playerid,COLOR_ORANGE,"USAGE: /slap [playerid]");
1144 if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,"Player not found!");
1145 if(pInfo[id][WazzAdmLevel] > pInfo[playerid][WazzAdmLevel]) return SendClientMessage(playerid,COLOR_RED,"You can't use this command on a nother admin high level than you");
1146 PlayerPlaySound(id,1190,0.0,0.0,0.0);
1147 GetPlayerPos(id,x,y,z);
1148 SetPlayerPos(id,x,y,z+4);
1149 }
1150 else return Error(playerid,1);
1151 return 1;
1152}
1153CMD:asay(playerid,params[])
1154{
1155 if(pInfo[playerid][WazzAdmLevel] >= 1)
1156 {
1157 new text[256],string[128];
1158 if(sscanf(params,"s[256]",text)) return SendClientMessage(playerid,COLOR_GREEN,"USAGE: /asay [text]");
1159 format(string,sizeof(string),"Admin %s say: %s",GetName(playerid),text);
1160 SendClientMessageToAll(COLOR_PINK,string);
1161 }
1162 else return Error(playerid,2);
1163 return 1;
1164}
1165CMD:repair(playerid,params[])
1166{
1167 if(pInfo[playerid][WazzAdmLevel] >= 1)
1168 {
1169 if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_RED,"You must to be in a vehicle to use this");
1170 RepairVehicle(GetPlayerVehicleID(playerid));
1171 SendClientMessage(playerid,COLOR_ORANGE,"Vehicle has repair success");
1172 }
1173 else return Error(playerid,1);
1174 return 1;
1175}
1176//End
1177//Admin level 2 commands
1178CMD:jail(playerid,params[])
1179{
1180 if(pInfo[playerid][WazzAdmLevel] >= 2)
1181 {
1182 new id,stime,reason[50];
1183 if(sscanf(params,"uis[50]",id,stime,reason)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /jail [playerid] [seconds] [reason]");
1184 SetPlayerPos(id, 197.6661,173.8179,1003.0234);
1185 SetPlayerInterior(id, 3);
1186 SetTimerEx("FreePlayer",stime*1000,false,"i",id);
1187 new string[128];
1188 format(string,sizeof(string),"AdminCMD: %s has been jailed by admin %s [REASON]: %s",GetName(id),GetName(playerid),reason);
1189 SendClientMessageToAll(COLOR_RED,string);
1190
1191 pInfo[id][Jailed] = 1;
1192 }
1193 else return Error(playerid,2);
1194 return 1;
1195}
1196CMD:unjail(playerid,params[])
1197{
1198 if(pInfo[playerid][WazzAdmLevel] >= 2)
1199 {
1200 new id,reason[50];
1201 if(sscanf(params,"us[50]",id,reason)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /jail [playerid] [reason]");
1202 SpawnPlayer(playerid);
1203 new string[128];
1204 format(string,sizeof(string),"AdminCMD: %s has been unjailed by admin %s [REASON]: %s",GetName(id),GetName(playerid),reason);
1205 SendClientMessageToAll(COLOR_RED,string);
1206
1207 pInfo[id][Jailed] = 0;
1208 }
1209 else return Error(playerid,2);
1210 return 1;
1211}
1212CMD:freeze(playerid,params[])
1213{
1214 if(pInfo[playerid][WazzAdmLevel] >= 2)
1215 {
1216 new id,string[128],reason[64];
1217 if(sscanf(params,"us[64]",id,reason)) return SendClientMessage(playerid,COLOR_BLUE,"USAGE: /freeze [playerid] [reason]");
1218 if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,"Player not found!");
1219 if(pInfo[id][WazzAdmLevel] > pInfo[playerid][WazzAdmLevel]) return SendClientMessage(playerid,COLOR_RED,"You can't use this command on a nother admin high level than you");
1220 if(pInfo[id][Freeze] == 1) SendClientMessage(playerid,COLOR_RED,"This player has been freezed");
1221 format(string,sizeof(string),"Admin %s has freezed %s. [Reason]: %s",GetName(playerid),GetName(id),reason);
1222 SendClientMessageToAll(COLOR_BLUE,string);
1223 pInfo[id][Freeze] = 1;
1224 TogglePlayerControllable(id,0);
1225 }
1226 else return Error(playerid,2);
1227 return 1;
1228}
1229CMD:unfreeze(playerid,params[])
1230{
1231 if(pInfo[playerid][WazzAdmLevel] >= 2)
1232 {
1233 new id,string[128];
1234 if(sscanf(params,"u",id)) return SendClientMessage(playerid,COLOR_BLUE,"USAGE: /unfreeze [playerid]");
1235 if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,"Player not found!");
1236 if(pInfo[id][WazzAdmLevel] > pInfo[playerid][WazzAdmLevel]) return SendClientMessage(playerid,COLOR_RED,"You can't use this command on a nother admin high level than you");
1237 if(pInfo[id][Freeze] == 0) SendClientMessage(playerid,COLOR_RED,"This player has been unfreezed");
1238 format(string,sizeof(string),"Admin %s has unfreezed %s",GetName(playerid),GetName(id));
1239 SendClientMessageToAll(COLOR_BLUE,string);
1240 TogglePlayerControllable(id,1);
1241 }
1242 else return Error(playerid,2);
1243 return 1;
1244}
1245CMD:announce(playerid,params[])
1246{
1247 if(pInfo[playerid][WazzAdmLevel] >= 2)
1248 {
1249 new text[64],string[128];
1250 if(sscanf(params,"s[64]",text)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /announce [text]");
1251 format(string,sizeof(string),"%s",text);
1252 GameTextForAll(string,5000,1);
1253 }
1254 else return Error(playerid,2);
1255 return 1;
1256}
1257CMD:spec(playerid,params[])
1258{
1259 new id;// This will hold the ID of the player you are going to be spectating.
1260 if(!IsPlayerAdmin(playerid))return 0;// This checks if the player is logged into RCON, if not it will return 0; (Showing "SERVER: Unknown Command") You can replace it with your own admin check.
1261 if(sscanf(params,"u", id))return SendClientMessage(playerid, COLOR_GREY, "Usage: /spec [id]");// Now this is where we use sscanf to check if the params were filled, if not we'll ask you to fill them
1262 if(id == playerid)return SendClientMessage(playerid,COLOR_GREY,"You cannot spec yourself.");// Just making sure.
1263 if(id == INVALID_PLAYER_ID)return SendClientMessage(playerid, COLOR_GREY, "Player not found!");// This is to ensure that you don't fill the param with an invalid player id.
1264 if(IsSpecing[playerid] == 1)return SendClientMessage(playerid,COLOR_GREY,"You are already specing someone.");// This will make you not automatically spec someone else by mistake.
1265 GetPlayerPos(playerid,SpecX[playerid],SpecY[playerid],SpecZ[playerid]);// This is getting and saving the player's position in a variable so they'll respawn at the same place they typed '/spec'
1266 Inter[playerid] = GetPlayerInterior(playerid);// Getting and saving the interior.
1267 vWorld[playerid] = GetPlayerVirtualWorld(playerid);//Getting and saving the virtual world.
1268 TogglePlayerSpectating(playerid, true);// Now before we use any of the 3 functions listed above, we need to use this one. It turns the spectating mode on.
1269 if(IsPlayerInAnyVehicle(id))//Checking if the player is in a vehicle.
1270 {
1271 if(GetPlayerInterior(id) > 0)//If the player's interior is more than 0 (the default) then.....
1272 {
1273 SetPlayerInterior(playerid,GetPlayerInterior(id));//.....set the spectator's interior to that of the player being spectated.
1274 }
1275 if(GetPlayerVirtualWorld(id) > 0)//If the player's virtual world is more than 0 (the default) then.....
1276 {
1277 SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(id));//.....set the spectator's virtual world to that of the player being spectated.
1278 }
1279 PlayerSpectateVehicle(playerid,GetPlayerVehicleID(id));// Now remember we checked if the player is in a vehicle, well if they're in a vehicle then we'll spec the vehicle.
1280 }
1281 else// If they're not in a vehicle, then we'll spec the player.
1282 {
1283 if(GetPlayerInterior(id) > 0)
1284 {
1285 SetPlayerInterior(playerid,GetPlayerInterior(id));
1286 }
1287 if(GetPlayerVirtualWorld(id) > 0)
1288 {
1289 SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(id));
1290 }
1291 PlayerSpectatePlayer(playerid,id);// Letting the spectator spec the person and not a vehicle.
1292 }
1293 GetPlayerName(id, Name, sizeof(Name));//Getting the name of the player being spectated.
1294 format(String, sizeof(String),"You have started to spectate %s.",Name);// Formatting a string to send to the spectator.
1295 SendClientMessage(playerid,0x0080C0FF,String);//Sending the formatted message to the spectator.
1296 IsSpecing[playerid] = 1;// Just saying that the spectator has begun to spectate someone.
1297 IsBeingSpeced[id] = 1;// Just saying that a player is being spectated (You'll see where this comes in)
1298 spectatorid[playerid] = id;// Saving the spectator's id into this variable.
1299 return 1;// Returning 1 - saying that the command has been sent.
1300}
1301CMD:specoff(playerid,params[])
1302{
1303 if(!IsPlayerAdmin(playerid))return 0;// This checks if the player is logged into RCON, if not it will return 0; (Showing "SERVER: Unknown Command")
1304 if(IsSpecing[playerid] == 0)return SendClientMessage(playerid,COLOR_GREY,"You are not spectating anyone.");
1305 TogglePlayerSpectating(playerid, 0);//Toggling spectate mode, off. Note: Once this is called, the player will be spawned, there we'll need to reset their positions, virtual world and interior to where they typed '/spec'
1306 return 1;
1307}
1308CMD:acar(playerid,params[])
1309{
1310 if(pInfo[playerid][WazzAdmLevel] >= 2)
1311 {
1312 CreateCarForAdmin(playerid,411,-1,-1);
1313 }
1314 else return Error(playerid,2);
1315 return 1;
1316}
1317CMD:abike(playerid,params[])
1318{
1319 if(pInfo[playerid][WazzAdmLevel] >= 2)
1320 {
1321 CreateCarForAdmin(playerid,522,-1,-1);
1322 }
1323 else return Error(playerid,2);
1324 return 1;
1325}
1326CMD:aboat(playerid,params[])
1327{
1328 if(pInfo[playerid][WazzAdmLevel] >= 2)
1329 {
1330 CreateCarForAdmin(playerid,452,-1,-1);
1331 }
1332 else return Error(playerid,2);
1333 return 1;
1334}
1335CMD:aplane(playerid,params[])
1336{
1337 if(pInfo[playerid][WazzAdmLevel] >= 2)
1338 {
1339 CreateCarForAdmin(playerid,520,-1,-1);
1340 }
1341 else return Error(playerid,2);
1342 return 1;
1343}
1344CMD:park(playerid, params[])
1345{
1346 if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Kamu harus didalam kendaraan untuk menggunakan command ini!");
1347 new xid = xVeh[GetPlayerVehicleID(playerid)];
1348 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Kamu gabisa park kendaraan ini, ini bukan kendaraan kamu atau bukan dari sistem!");
1349 if(xStrcmp(Isim(playerid), xVehicle[xid][xv_Sahip]) && !Iter_Contains(xVehicleKeys<playerid>, xid) && !IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Kamu gabisa park kendaraan ini karena kamu gapunya kuncinya!");
1350 if(xVehicle[xid][xv_HizliPark]) SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}Kendaraan kamu telah dipark {FFFB93}Auto park telah dinonaktifkan");
1351 else SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}Kendaraan kamu telah kamu Park!");
1352 xVehicle[xid][xv_HizliPark] = 0;
1353 GetVehiclePos(GetPlayerVehicleID(playerid), xVehicle[xid][xv_Pos][0], xVehicle[xid][xv_Pos][1], xVehicle[xid][xv_Pos][2]);
1354 GetVehicleZAngle(GetPlayerVehicleID(playerid), xVehicle[xid][xv_Pos][3]);
1355 SavexVehicle(xid);
1356 return 1;
1357}
1358
1359CMD:v(playerid, params[])
1360{
1361 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");
1362 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");
1363 return 1;
1364}
1365
1366CMD:amenu(playerid, params[])
1367{
1368 if(pInfo[playerid][WazzAdmLevel] >= 2)
1369 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");
1370 else return Error(playerid,2);
1371 return 1;
1372}
1373
1374CMD:aheal(playerid,params[])
1375{
1376 if(pInfo[playerid][WazzAdmLevel] >= 2)
1377 {
1378 SetPlayerHealth(playerid,100);
1379 }
1380 else return Error(playerid,2);
1381 return 1;
1382}
1383CMD:armour(playerid,params[])
1384{
1385 if(pInfo[playerid][WazzAdmLevel] >= 2)
1386 {
1387 SetPlayerArmour(playerid,100);
1388 }
1389 else return Error(playerid,2);
1390 return 1;
1391}
1392CMD:car(playerid,params[])
1393{
1394 if(pInfo[playerid][WazzAdmLevel] >= 2)
1395 {
1396 new id,c1,c2;
1397 if(sscanf(params,"iii",id,c1,c2)) return SendClientMessage(playerid,COLOR_PINK,"USAGE: /car [car id] [color 1] [color 2]");
1398 CreateCarForAdmin(playerid,id,c1,c2);
1399 }
1400 else return Error(playerid,2);
1401 return 1;
1402}
1403CMD:fstyle(playerid,params[])
1404{
1405 if(pInfo[playerid][WazzAdmLevel] >= 2)
1406 {
1407 new f;
1408 if(sscanf(params,"i",f)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /fstyle [1-5]");
1409 if(f < 0) return SendClientMessage(playerid,COLOR_RED,"Invalid fight style id (1-5)");
1410 if(f > 5) return SendClientMessage(playerid,COLOR_RED,"Invalid fight style id (1-5)");
1411 SetPlayerFightingStyle(playerid,f);
1412 }
1413 else return Error(playerid,2);
1414 return 1;
1415}
1416CMD:explode(playerid,params[])
1417{
1418 if(pInfo[playerid][WazzAdmLevel] >= 2)
1419 {
1420 new Float:x,Float:y,Float:z,id;
1421 if(sscanf(params,"u",id)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /explode [playerid]");
1422 GetPlayerPos(id,x,y,z);
1423 CreateExplosion(x,y,z,6,50.0);
1424 }
1425 else return Error(playerid,2);
1426 return 1;
1427}
1428CMD:kick(playerid,params[])
1429{
1430 if(pInfo[playerid][WazzAdmLevel] >= 2)
1431 {
1432 new id;
1433 if(sscanf(params,"u",id)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /kick [playerid]");
1434 if(id == INVALID_PLAYER_ID) return Error(playerid,6);
1435 if(pInfo[playerid][WazzAdmLevel] < pInfo[id][WazzAdmLevel]) return SendClientMessage(playerid,COLOR_RED,"You can't kick a higher admin level than you");
1436 Kick(id);
1437 #if KICK_LOG == true
1438 SaveIn("Kick.logs",GetName(id));
1439 #endif
1440 }
1441 else return Error(playerid,2);
1442 return 1;
1443}
1444//Admin level 3 commands
1445CMD:akill(playerid,params[])
1446{
1447 if(pInfo[playerid][WazzAdmLevel] >= 3)
1448 {
1449 new id;
1450 if(sscanf(params,"u",id)) return SendClientMessage(playerid,COLOR_BLUE,"USAGE: /akill [playerid]");
1451 if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,"Player not found!");
1452 if(pInfo[id][WazzAdmLevel] > pInfo[playerid][WazzAdmLevel]) return SendClientMessage(playerid,COLOR_RED,"You can't use this command on a nother admin high level than you");
1453 SetPlayerHealth(id,0);
1454 }
1455 else return Error(playerid,3);
1456 return 1;
1457}
1458CMD:jetpack(playerid,params[])
1459{
1460 if(pInfo[playerid][WazzAdmLevel] >= 3)
1461 {
1462 SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USEJETPACK);
1463 JP[playerid] ++;
1464 }
1465 else return Error(playerid,3);
1466 return 1;
1467}
1468CMD:gethereall(playerid,params[])
1469{
1470 foreach(new i: Player)
1471 {
1472 new Float:x,Float:y,Float:z;
1473 GetPlayerPos(playerid,x,y,z);
1474 SetPlayerPos(i,x,y,z);
1475 }
1476 return 1;
1477}
1478CMD:godcar(playerid,params[])
1479{
1480 if(pInfo[playerid][WazzAdmLevel] >= 3)
1481 {
1482 if(GodCar[GetPlayerVehicleID(playerid)] != 0)
1483 {
1484 SetVehicleHealth(GetPlayerVehicleID(playerid),1000);
1485 SendClientMessage(playerid,COLOR_ORANGE,"God vehicle off !!!!");
1486 }
1487 else
1488 {
1489 if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_RED,"You must to be in a vehicle to use this");
1490 SetVehicleHealth(GetPlayerVehicleID(playerid),999999.0);
1491 SendClientMessage(playerid,COLOR_ORANGE,"God vehicle !!!!");
1492 GodCar[GetPlayerVehicleID(playerid)] = 1;
1493 }
1494 }
1495 else return Error(playerid,3);
1496 return 1;
1497}
1498CMD:givemoney(playerid,params[])
1499{
1500 if(pInfo[playerid][WazzAdmLevel] >= 3)
1501 {
1502 new id,money;
1503 if(sscanf(params,"ui",id,money)) return SendClientMessage(playerid,COLOR_BLUE,"USAGE: /givemoney [playerid] [ammount]");
1504 if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,"Player not found!");
1505 GivePlayerMoney(id,money);
1506 }
1507 else return Error(playerid,3);
1508 return 1;
1509}
1510CMD:giveweapon(playerid,params[])
1511{
1512 if(pInfo[playerid][WazzAdmLevel] >= 3)
1513 {
1514 new id,wid;
1515 if(sscanf(params,"ui",id,wid)) return SendClientMessage(playerid,COLOR_BLUE,"USAGE: /giveweapon [playerid] [gun id]");
1516 if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,"Player not found!");
1517 GivePlayerWeapon(id,wid,999999);
1518 }
1519 else return Error(playerid,3);
1520 return 1;
1521}
1522CMD:setmoney(playerid,params[])
1523{
1524 if(pInfo[playerid][WazzAdmLevel] >= 3)
1525 {
1526 new id,money;
1527 if(sscanf(params,"ui",id,money)) return SendClientMessage(playerid,COLOR_BLUE,"USAGE: /setmoney [playerid] [ammount]");
1528 if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,"Player not found!");
1529 ResetPlayerMoney(id);
1530 GivePlayerMoney(id,money);
1531 }
1532 else return Error(playerid,3);
1533 return 1;
1534}
1535CMD:sethp(playerid,params[])
1536{
1537 if(pInfo[playerid][WazzAdmLevel] >= 3)
1538 {
1539 new id,Float:health;
1540 if(sscanf(params,"uf",id,health)) return SendClientMessage(playerid,COLOR_BLUE,"USAGE: /sethp [playerid] [hp]");
1541 if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,"Player not found!");
1542 if(pInfo[id][WazzAdmLevel] > pInfo[playerid][WazzAdmLevel]) return SendClientMessage(playerid,COLOR_RED,"You can't use this command on a nother admin high level than you");
1543 SetPlayerHealth(id,health);
1544 }
1545 return 1;
1546}
1547CMD:setarmor(playerid,params[])
1548{
1549 if(pInfo[playerid][WazzAdmLevel] >= 3)
1550 {
1551 new id,Float:ar;
1552 if(sscanf(params,"uf",id,ar)) return SendClientMessage(playerid,COLOR_BLUE,"USAGE: /setarmor [playerid] [armour]");
1553 if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,"Player not found!");
1554 if(pInfo[id][WazzAdmLevel] > pInfo[playerid][WazzAdmLevel]) return SendClientMessage(playerid,COLOR_RED,"You can't use this command on a nother admin high level than you");
1555 SetPlayerArmour(id,ar);
1556 }
1557 return 1;
1558}
1559CMD:setfstyle(playerid,params[])
1560{
1561 if(pInfo[playerid][WazzAdmLevel] >= 2)
1562 {
1563 new id,f;
1564 if(sscanf(params,"ui",f)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /setfstyle [playerid] [1-5]");
1565 if(f < 0) return SendClientMessage(playerid,COLOR_RED,"Invalid fight style id (1-5)");
1566 if(f > 5) return SendClientMessage(playerid,COLOR_RED,"Invalid fight style id (1-5)");
1567 SetPlayerFightingStyle(id,f);
1568 }
1569 else return Error(playerid,2);
1570 return 1;
1571}
1572CMD:setskin(playerid,params[])
1573{
1574 new id,skinid;
1575 if(sscanf(params,"i",id,skinid)) return SendClientMessage(playerid,COLOR_ORANGE,"USAGE: /setskin [playerid] [skin id]");
1576 SetPlayerSkin(id,skinid);
1577 return 1;
1578}
1579CMD:setcolor(playerid,params[])
1580{
1581 if(pInfo[playerid][WazzAdmLevel] >= 2)
1582 {
1583 new id,color;
1584 if(sscanf(params, "ui",id,color))
1585 {
1586 SendClientMessage(playerid, COLOR_RED, "USAGE: /setcolour [playerid] [color]");
1587 SendClientMessage(playerid, COLOR_GREY, "Colors: [0]Black, [1]White, [2]Red, [3]Orange, [4]Yellow, [5]Green, [6]Blue, [7]Purple, [8]Brown, [9]Pink");
1588 return 1;
1589 }
1590 if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED,"Player Not Found");
1591 if(color > 9) return SendClientMessage(playerid, COLOR_RED, "ERROR: Inavlid Color! (/setcolor)");
1592 switch(color)
1593 {
1594 case 0:
1595 {
1596 SetPlayerColor(id, COLOR_BLACK);
1597 }
1598 case 1:
1599 {
1600 SetPlayerColor(id, COLOR_WHITE);
1601 }
1602 case 2:
1603 {
1604 SetPlayerColor(id, COLOR_RED);
1605 }
1606 case 3:
1607 {
1608 SetPlayerColor(id, COLOR_ORANGE);
1609 }
1610 case 4:
1611 {
1612 SetPlayerColor(id, COLOR_YELLOW);
1613 }
1614 case 5:
1615 {
1616 SetPlayerColor(id, COLOR_GREEN);
1617 }
1618 case 6:
1619 {
1620 SetPlayerColor(id, COLOR_BLUE);
1621 }
1622 case 7:
1623 {
1624 SetPlayerColor(id, COLOR_PURPLE);
1625 }
1626 case 8:
1627 {
1628 SetPlayerColor(id, COLOR_BROWN);
1629 }
1630 case 9:
1631 {
1632 SetPlayerColor(id, COLOR_PINK);
1633 }
1634 }
1635 }
1636 else return Error(playerid,3);
1637 return 1;
1638}
1639CMD:ban(playerid,params[])
1640{
1641 new id;
1642 if(sscanf(params,"u",id)) return SendClientMessage(playerid, -1, "USAGE: /ban [playerid]");
1643 if(!fexist(UserPath(playerid))) return SendClientMessage(playerid, -1, "Error: The player name you have chosen was not found in our system.");
1644 else
1645 {
1646 WazBan(playerid);
1647 #if BAN_LOG == true
1648 new string[128];
1649 format(string,sizeof(string),"%s",GetName(id));
1650 SaveIn("Ban.logs",string);
1651 #endif
1652 }
1653 return 1;
1654}
1655CMD:unban(playerid,params[])
1656{
1657 new bname[24],fstring[128];
1658 if(sscanf(params,"s[24]",bname)) return SendClientMessage(playerid, -1, "USAGE: /unban [player's name]");
1659 format(fstring,sizeof(fstring),PATH,bname);
1660 if(!fexist(fstring)) return SendClientMessage(playerid, -1, "Error: The player name you have chosen was not found in our system.");
1661 else
1662 {
1663 new INI:File = INI_Open(fstring);
1664 INI_WriteInt(File,"Banned",0);
1665 INI_Close(File);
1666 }
1667 return 1;
1668}
1669//Admin level 4 commands
1670CMD:slapall(playerid,params[])
1671{
1672 if(pInfo[playerid][WazzAdmLevel] >= 4)
1673 {
1674 foreach(new i: Player)
1675 {
1676 if(!IsPlayerWAdmin(i))
1677 {
1678 new Float:x,Float:y,Float:z;
1679 PlayerPlaySound(i,1190,0.0,0.0,0.0);
1680 GetPlayerPos(i,x,y,z);
1681 SetPlayerPos(i,x,y,z+4);
1682 }
1683 }
1684 }
1685 else return Error(playerid,4);
1686 return 1;
1687}
1688CMD:explodeall(playerid,params[])
1689{
1690 if(pInfo[playerid][WazzAdmLevel] >= 4)
1691 {
1692 foreach(new i: Player)
1693 {
1694 if(!IsPlayerWAdmin(i))
1695 {
1696 new Float:x,Float:y,Float:z;
1697 GetPlayerPos(i,x,y,z);
1698 CreateExplosion(x,y,z,6,50.0);
1699 }
1700 }
1701 }
1702 else return Error(playerid,4);
1703 return 1;
1704}
1705CMD:killall(playerid,params[])
1706{
1707 if(pInfo[playerid][WazzAdmLevel] >= 4)
1708 {
1709 foreach(new i: Player)
1710 {
1711 if(!IsPlayerWAdmin(i))
1712 {
1713 SetPlayerHealth(i,0);
1714 }
1715 }
1716 }
1717 else return Error(playerid,4);
1718 return 1;
1719}
1720CMD:muteall(playerid,params[])
1721{
1722 if(pInfo[playerid][WazzAdmLevel] >= 4)
1723 {
1724 foreach(new i: Player)
1725 {
1726 if(!IsPlayerWAdmin(i))
1727 {
1728 pInfo[i][Muted] = 1;
1729 }
1730 }
1731 }
1732 else return Error(playerid,4);
1733 return 1;
1734}
1735CMD:unmuteall(playerid,params[])
1736{
1737 if(pInfo[playerid][WazzAdmLevel] >= 4)
1738 {
1739 foreach(new i: Player)
1740 {
1741 if(!IsPlayerWAdmin(i))
1742 {
1743 pInfo[i][Muted] = 0;
1744 }
1745 }
1746 }
1747 else return Error(playerid,4);
1748 return 1;
1749}
1750CMD:healall(playerid,params[])
1751{
1752 if(pInfo[playerid][WazzAdmLevel] >= 4)
1753 {
1754 foreach(new i: Player)
1755 {
1756 SetPlayerHealth(i,100);
1757 }
1758 }
1759 else return Error(playerid,4);
1760 return 1;
1761}
1762CMD:armourall(playerid,params[])
1763{
1764 if(pInfo[playerid][WazzAdmLevel] >= 4)
1765 {
1766 foreach(new i: Player)
1767 {
1768 SetPlayerArmour(i,100);
1769 }
1770 }
1771 else return Error(playerid,4);
1772 return 1;
1773}
1774//admin level 5 commands
1775CMD:setallskin(playerid,params[])
1776{
1777 if(pInfo[playerid][WazzAdmLevel] >= 5)
1778 {
1779 new skinid;
1780 if(sscanf(params,"i",skinid)) return SendClientMessage(playerid,COLOR_ORANGE,"USAGE: /setallskin [id]");
1781 foreach(new i: Player)
1782 {
1783 SetPlayerSkin(i,skinid);
1784 }
1785 }
1786 else return Error(playerid,5);
1787 return 1;
1788}
1789CMD:lockserver(playerid,params[])
1790{
1791 if(pInfo[playerid][WazzAdmLevel] >= 5)
1792 {
1793 sLocked = 1;
1794 SendClientMessageToAll(COLOR_RED,".:: SERVER LOCKED ::.");
1795 SendClientMessageToAll(COLOR_RED,".:: SERVER LOCKED ::.");
1796 SendClientMessageToAll(COLOR_RED,".:: SERVER LOCKED ::.");
1797 SendClientMessageToAll(COLOR_RED,".:: SERVER LOCKED ::.");
1798 SendClientMessageToAll(COLOR_RED,".:: BYE BYE ::.");
1799
1800 SetTimer("KickAll",2000,false);
1801 }
1802 else return Error(playerid,5);
1803 return 1;
1804}
1805CMD:unlockserver(playerid,params[])
1806{
1807 if(pInfo[playerid][WazzAdmLevel] >= 5)
1808 {
1809 sLocked = 0;
1810 }
1811 else return Error(playerid,5);
1812 return 1;
1813}
1814CMD:gmx(playerid,params[])
1815{
1816 if(pInfo[playerid][WazzAdmLevel] >= 5)
1817 {
1818 SendRconCommand("gmx");
1819 }
1820 else return Error(playerid,5);
1821 return 1;
1822}
1823CMD:fakeban(playerid, params[])
1824{
1825 if(pInfo[playerid][WazzAdmLevel] >= 5)
1826 {
1827 new id;
1828 if(sscanf(params,"u",id)) return SendClientMessage(playerid, 0x1F36E0FF, "USAGE: /fakeban [playerid]");
1829 if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xF50A0AFF, "NOTICE: Player not found.");
1830 new string[128];
1831 format(string,sizeof(string),"%s has been banned by %s for Speed hack", GetName(id), GetName(playerid));
1832 SendClientMessageToAll(0x1F36E0FF, string);
1833 SendClientMessage(id, 0xa9c4e4FF, "Server closed the connection.");
1834 }
1835 else return Error(playerid,5);
1836 return 1;
1837}
1838CMD:fakekick(playerid, params[])
1839{
1840 if(pInfo[playerid][WazzAdmLevel] >= 5)
1841 {
1842 new id;
1843 if(sscanf(params, "u", id)) return SendClientMessage(playerid, 0x1F36E0FF, "USAGE: /fakekick [playerid]");
1844 if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xF50A0AFF, "NOTICE: Player not found.");
1845 new string[128];
1846 format(string,sizeof(string),"%s has been kicked by %s for S0beit Hacks", GetName(id), GetName(playerid));
1847 SendClientMessageToAll(0x1F36E0FF, string);
1848 SendClientMessage(id, 0xa9c4e4FF, "Server closed the connection.");
1849 }
1850 else return Error(playerid,5);
1851 return 1;
1852}
1853CMD:fakemute(playerid, params[])
1854{
1855 if(pInfo[playerid][WazzAdmLevel] >= 5)
1856 {
1857 new id;
1858 if(sscanf(params, "u", id)) return SendClientMessage(playerid, 0x1F36E0FF, "USAGE: /fakemute [playerid]");
1859 if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xF50A0AFF, "NOTICE: Player not found.");
1860 new string[128];
1861 format(string,sizeof(string),"%s has been mute by %s for STOP SPAMMING", GetName(id), GetName(playerid));
1862 SendClientMessageToAll(0x1F36E0FF, string);
1863 SendClientMessage(id, 0xa9c4e4FF, "Server: You have been muted");
1864 }
1865 else return Error(playerid,5);
1866 return 1;
1867}
1868CMD:warn(playerid,params[])
1869{
1870 if(pInfo[playerid][WazzAdmLevel] >= 5)
1871 {
1872 new id;
1873 if(sscanf(params,"u",id)) return SendClientMessage(playerid,COLOR_ORANGE,"USAGE: /warn [playerid]");
1874 pInfo[id][Warn] ++;
1875 SendClientMessage(playerid,COLOR_RED,"Your warnings has been +");
1876 }
1877 else return Error(playerid,5);
1878 return 1;
1879}
1880CMD:frozed(playerid,params[])
1881{
1882 new count = 0;
1883 new string[128];
1884 SendClientMessage(playerid,COLOR_RED,"");
1885 SendClientMessage(playerid,COLOR_GREEN,"________________|FROZED PLAYERS|________________");
1886 SendClientMessage(playerid,COLOR_RED,"");
1887 for(new i = 0; i < MAX_PLAYERS; i++)
1888 {
1889 if(IsPlayerConnected(i))
1890 {
1891 if(pInfo[i][Freeze] > 0)
1892 {
1893 new aName[MAX_PLAYER_NAME];
1894 GetPlayerName(i,aName,sizeof(aName));
1895 format(string, sizeof(string), "Name: %s (ID:%i)",aName,i);
1896 SendClientMessage(playerid,COLOR_CYAN,string);
1897 count++;
1898 }
1899 }
1900 }
1901 if(count == 0)
1902 SendClientMessage(playerid,COLOR_RED,"No any frozed players!");
1903 SendClientMessage(playerid,COLOR_GREEN,"_________________________________________________");
1904 return 1;
1905}
1906CMD:muted(playerid,params[])
1907{
1908 new count = 0;
1909 new string[128];
1910 SendClientMessage(playerid,COLOR_RED,"");
1911 SendClientMessage(playerid,COLOR_GREEN,"________________|MUTED PLAYERS|________________");
1912 SendClientMessage(playerid,COLOR_RED,"");
1913 for(new i = 0; i < MAX_PLAYERS; i++)
1914 {
1915 if(IsPlayerConnected(i))
1916 {
1917 if(pInfo[i][Muted] > 0)
1918 {
1919 new aName[MAX_PLAYER_NAME];
1920 GetPlayerName(i,aName,sizeof(aName));
1921 format(string, sizeof(string), "Name: %s (ID:%i)",aName,i);
1922 SendClientMessage(playerid,COLOR_CYAN,string);
1923 count++;
1924 }
1925 }
1926 }
1927 if(count == 0)
1928 SendClientMessage(playerid,COLOR_RED,"No any muted players!");
1929 SendClientMessage(playerid,COLOR_GREEN,"_________________________________________________");
1930 return 1;
1931}
1932//Rcon Commands
1933CMD:makeadmin(playerid,params[])
1934{
1935 if(IsPlayerAdmin(playerid))
1936 {
1937 new id,level,string[128];
1938 if(sscanf(params,"ui",id,level)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /makeadmin [playerid] [level 1-5]");
1939 if(level < 1 && level > 5) return SendClientMessage(playerid,COLOR_RED,"Don't know that level :D");
1940 format(string,sizeof(string),"You has been PROMOTE to admin level %i",level);
1941 SendClientMessage(id,COLOR_ORANGE,string);
1942 pInfo[id][WazzAdmLevel] = level;
1943 }
1944 else return SendClientMessage(playerid,COLOR_RED,"You must be rcon admin to use this command");
1945 return 1;
1946}
1947CMD:makevip(playerid,params[])
1948{
1949 if(IsPlayerAdmin(playerid))
1950 {
1951 new id,level,string[128];
1952 if(sscanf(params,"ui",id,level)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /makevip [playerid] [level 1-3]");
1953 if(level < 1 && level > 3) return SendClientMessage(playerid,COLOR_RED,"Don't know that level :D");
1954 format(string,sizeof(string),"You has been PROMOTE to VIP level %i",level);
1955 SendClientMessage(id,COLOR_ORANGE,string);
1956 pInfo[id][WazzVIPLevel] = level;
1957 }
1958 else return SendClientMessage(playerid,COLOR_RED,"You must be rcon admin to use this command");
1959 return 1;
1960}
1961CMD:makemegodadmin(playerid,params[])
1962{
1963 if(IsPlayerAdmin(playerid))
1964 {
1965 GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~g~Authorized ~w~Access!~n~~y~Welcome Administrator!", 3000, 3);
1966 pInfo[playerid][WazzAdmLevel] = 5;
1967 }
1968 else return SendClientMessage(playerid,COLOR_RED,"You must be rcon admin to use this command");
1969 return 1;
1970}
1971//VIP SYSTEM
1972CMD:vcmds(playerid,params[])
1973{
1974 if(pInfo[playerid][WazzVIPLevel] >= 1)
1975 {
1976 ShowPlayerDialog(playerid,DIALOG_CVC,DIALOG_STYLE_LIST,"VIP commands",""brown"VIP Bronze\n"white"VIP Silver\n"yellow"VIP Golden","Choose","Cancel");
1977 }
1978 else return Error(playerid,11);
1979 return 1;
1980}
1981CMD:vtime(playerid,params[])
1982{
1983 if(pInfo[playerid][WazzVIPLevel] >= 1)
1984 {
1985 new hour,minu;
1986 if(sscanf(params,"i",hour,minu)) return SendClientMessage(playerid,COLOR_YELLOW,"USAGE: /vtime [hours] [minutes]");
1987 if(hour > 12 && hour < 0) return SendClientMessage(playerid,COLOR_RED,"Hours must be 0 - 12");
1988 if(minu > 60 && minu < 0) return SendClientMessage(playerid,COLOR_RED,"Minutes must be 0 - 60");
1989 SetPlayerTime(playerid,hour,minu);
1990 }
1991 else return Error(playerid,11);
1992 return 1;
1993}
1994CMD:vworld(playerid,params[])
1995{
1996 if(pInfo[playerid][WazzVIPLevel] >= 1)
1997 {
1998 new world;
1999 if(sscanf(params,"i",world)) return SendClientMessage(playerid,COLOR_GREEN,"USAGE: /vworld [world 0-10]");
2000 if(world > 10 && world < 0) return SendClientMessage(playerid,COLOR_RED,"Unknow world (0-10)");
2001 SetPlayerVirtualWorld(playerid,world);
2002 }
2003 else return Error(playerid,11);
2004 return 1;
2005}
2006CMD:vfix(playerid,params[])
2007{
2008 if(pInfo[playerid][WazzVIPLevel] >= 1)
2009 {
2010 if(IsPlayerInAnyVehicle(playerid))
2011 {
2012 SetVehicleHealth(GetPlayerVehicleID(playerid),1000);
2013 SendClientMessage(playerid,COLOR_LIGHTBLUE,"The vehicles engine has been fully fixed.");
2014 }
2015 else return SendClientMessage(playerid,COLOR_RED,"You don't in any cars!!!");
2016 }
2017 else return Error(playerid,11);
2018 return 1;
2019}
2020CMD:vcarcolor(playerid,params[])
2021{
2022 if(pInfo[playerid][WazzVIPLevel] >= 1)
2023 {
2024 new c1,c2;
2025 if(sscanf(params,"ii",c1,c2)) return SendClientMessage(playerid,COLOR_YELLOW,"USAGE: /vcarcolor [color 1] [color 2]");
2026 if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_RED,"You don't in any cars!!!");
2027 ChangeVehicleColor(GetPlayerVehicleID(playerid),c1,c2);
2028 }
2029 else return Error(playerid,11);
2030 return 1;
2031}
2032CMD:vchat(playerid,params[])
2033{
2034 if(pInfo[playerid][WazzVIPLevel] >= 1)
2035 {
2036 new text[128];
2037 if(sscanf(params,"s[128]",text)) return SendClientMessage(playerid,COLOR_BLUE,"USAGE: /vc(hat) [text]");
2038 foreach(new i: Player)
2039 {
2040 if(pInfo[i][WazzVIPLevel] >= 1)
2041 {
2042 new string[64];
2043 format(string,sizeof(string),"%s",text);
2044 SendClientMessage(i,COLOR_PINK,string);
2045 }
2046 }
2047 }
2048 else return Error(playerid,11);
2049 return 1;
2050}
2051CMD:vc(playerid,params[])
2052{
2053 if(pInfo[playerid][WazzVIPLevel] >= 1)
2054 {
2055 new text[128];
2056 if(sscanf(params,"s[128]",text)) return SendClientMessage(playerid,COLOR_BLUE,"USAGE: /vc(hat) [text]");
2057 foreach(new i: Player)
2058 {
2059 if(pInfo[i][WazzVIPLevel] >= 1)
2060 {
2061 new string[64];
2062 format(string,sizeof(string),"%s",text);
2063 SendClientMessage(i,COLOR_PINK,string);
2064 }
2065 }
2066 }
2067 else return Error(playerid,11);
2068 return 1;
2069}
2070//VIP SILVER
2071CMD:vskin(playerid,params[])
2072{
2073 if(pInfo[playerid][WazzVIPLevel] >= 2)
2074 {
2075 new sid;
2076 if(sscanf(params,"i",sid)) return SendClientMessage(playerid,COLOR_BLUE,"USAGE: /vskin [skin id]");
2077 if(sid < 0 && sid > 299) return SendClientMessage(playerid,COLOR_RED,"Unknow skin ( 0 - 299 )");
2078 SetPlayerSkin(playerid,sid);
2079 }
2080 else return Error(playerid,12);
2081 return 1;
2082}
2083CMD:vbike(playerid,params[])
2084{
2085 if(pInfo[playerid][WazzVIPLevel] >= 2)
2086 {
2087 CreateCarForAdmin(playerid,522,-1,-1);
2088 }
2089 else return Error(playerid,12);
2090 return 1;
2091}
2092CMD:vheli(playerid,params[])
2093{
2094 if(pInfo[playerid][WazzVIPLevel] >= 2)
2095 {
2096 CreateCarForAdmin(playerid,411,-1,-1);
2097 }
2098 else return Error(playerid,12);
2099 return 1;
2100}
2101CMD:vboat(playerid,params[])
2102{
2103 if(pInfo[playerid][WazzVIPLevel] >= 2)
2104 {
2105 CreateCarForAdmin(playerid,452,-1,-1);
2106 }
2107 else return Error(playerid,12);
2108 return 1;
2109}
2110CMD:vplane(playerid,params[])
2111{
2112 if(pInfo[playerid][WazzVIPLevel] >= 2)
2113 {
2114 CreateCarForAdmin(playerid,593,-1,-1);
2115 }
2116 else return Error(playerid,12);
2117 return 1;
2118}
2119CMD:vjetpack(playerid,params[])
2120{
2121 if(pInfo[playerid][WazzVIPLevel] >= 2)
2122 {
2123 SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USEJETPACK);
2124 }
2125 else return Error(playerid,12);
2126 return 1;
2127}
2128//VIP GOLD
2129CMD:vcar(playerid,params[])
2130{
2131 if(pInfo[playerid][WazzVIPLevel] >= 3)
2132 {
2133 new id,c1,c2;
2134 if(sscanf(params,"iii",id,c1,c2)) return SendClientMessage(playerid,COLOR_PINK,"USAGE: /car [car id] [color 1] [color 2]");
2135 CreateCarForAdmin(playerid,id,c1,c2);
2136 }
2137 else return Error(playerid,13);
2138 return 1;
2139}
2140CMD:vheal(playerid,params[])
2141{
2142 if(pInfo[playerid][WazzVIPLevel] >= 3)
2143 {
2144 SetPlayerHealth(playerid,100);
2145 }
2146 else return Error(playerid,13);
2147 return 1;
2148}
2149CMD:varmour(playerid,params[])
2150{
2151 if(pInfo[playerid][WazzVIPLevel] >= 3)
2152 {
2153 SetPlayerArmour(playerid,100);
2154 }
2155 else return Error(playerid,13);
2156 return 1;
2157}
2158CMD:vnos(playerid,params[])
2159{
2160 if(pInfo[playerid][WazzVIPLevel] >= 3)
2161 {
2162 new vehicleid = GetPlayerVehicleID(playerid);
2163 if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_RED,"You need to be in a vehicle.");
2164 AddVehicleComponent(vehicleid, 1010);
2165 SendClientMessage(playerid, 0x00CC00FF, "A cute NOS bottle has been added to your vehicle.");
2166 }
2167 else return Error(playerid,13);
2168 return 1;
2169}
2170CMD:kill(playerid,params[])
2171{
2172 SetPlayerHealth(playerid, 0.0);
2173 SendClientMessage(playerid, -1, "You have killed yourself so you lost 1000$.");
2174 GivePlayerMoney(playerid, -1000);
2175 return 1;
2176}
2177
2178CMD:help(playerid,params[])
2179{
2180 new string [1000], irwan [1000], PlayerName[MAX_PLAYER_NAME];
2181 format(irwan, sizeof(irwan), "/stats\n/admins\n/vips\n/changepass\n/report\n/closereport", PlayerName);
2182 strcat(string, irwan);
2183 ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_LIST, "{FFFFFF}J-CNR Help Menu", string, "CLOSE", "");
2184 return 1;
2185}
2186
2187CMD:time(playerid, params[])
2188{
2189 static
2190 string[128],
2191 month[12],
2192 date[6];
2193
2194 getdate(date[2], date[1], date[0]);
2195 gettime(date[3], date[4], date[5]);
2196
2197 switch (date[1]) {
2198 case 1: month = "January";
2199 case 2: month = "February";
2200 case 3: month = "March";
2201 case 4: month = "April";
2202 case 5: month = "May";
2203 case 6: month = "June";
2204 case 7: month = "July";
2205 case 8: month = "August";
2206 case 9: month = "September";
2207 case 10: month = "October";
2208 case 11: month = "November";
2209 case 12: month = "December";
2210 }
2211 format(string, sizeof(string), "~g~%s %02d %d~n~~b~%02d:%02d:%02d", month, date[0], date[2], date[3], date[4], date[5]);
2212 GameTextForPlayer(playerid, string, 6000, 1);
2213 return 1;
2214}
2215//========[END OF COMMANDS]=========//
2216public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
2217{
2218 return 1;
2219}
2220
2221public OnPlayerExitVehicle(playerid, vehicleid)
2222{
2223 new xid = xVeh[vehicleid], Float:xvHP;
2224 GetVehicleHealth(vehicleid, xvHP);
2225 if(xid != 0 && xVehicle[xid][xv_HizliPark] == 1 && !IsVehicleFlipped(vehicleid) && xvHP > 300)
2226 {
2227 GetVehiclePos(vehicleid, xVehicle[xid][xv_Pos][0], xVehicle[xid][xv_Pos][1], xVehicle[xid][xv_Pos][2]);
2228 GetVehicleZAngle(vehicleid, xVehicle[xid][xv_Pos][3]);
2229 SavexVehicle(xid);
2230 }
2231 return 1;
2232}
2233
2234public OnPlayerStateChange(playerid, newstate, oldstate)
2235{
2236 if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
2237 {
2238 if(IsBeingSpeced[playerid] == 1)
2239 {
2240 foreach(new i: Player)
2241 {
2242 if(spectatorid[i] == playerid)
2243 {
2244 PlayerSpectateVehicle(i, GetPlayerVehicleID(playerid));
2245 }
2246 }
2247 }
2248 }
2249 if(newstate == PLAYER_STATE_ONFOOT)
2250 {
2251 if(IsBeingSpeced[playerid] == 1)
2252 {
2253 foreach(new i: Player)
2254 {
2255 if(spectatorid[i] == playerid)
2256 {
2257 PlayerSpectatePlayer(i, playerid);
2258 }
2259 }
2260 }
2261 }
2262 if(newstate == PLAYER_STATE_DRIVER)
2263 {
2264 new xid = xVeh[GetPlayerVehicleID(playerid)];
2265 if(xid != 0)
2266 {
2267 if(!strlen(xVehicle[xid][xv_Sahip]))
2268 {
2269 new str[512];
2270 format(str, sizeof str, "{FFFFFF}---------------------------[J-CNR Vehicle Sell]---------------------------\n", str);
2271 format(str, sizeof str, "%s\n", str);
2272 format(str, sizeof str, "%s{00D700}Kendaraan ini dijual!\n", str);
2273 format(str, sizeof str, "%s\n{0098FF}Nama mobil: {FFFF00}%s\n", str, GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]));
2274 format(str, sizeof str, "%s{0098FF}Plate mobil: {FFFF00}%s\n", str, xVehicle[xid][xv_Plaka]);
2275 format(str, sizeof str, "%s{0098FF}Harga: {FFFF00}$%d\n", str, xVehicle[xid][xv_Fiyat]);
2276 format(str, sizeof str, "%s\n{FF8000}Kamu ingin membeli mobil ini?{00D700}\n", str);
2277 format(str, sizeof str, "%s\n{FFFFFF}-------------------------------------------------------------------------", str);
2278 ShowPlayerDialog(playerid, XV_DIALOGID+5, DIALOG_STYLE_MSGBOX, "J-CNR Vehicle Sell", str, "Buy", "Close");
2279 }
2280 else if(xStrcmp(Isim(playerid), xVehicle[xid][xv_Sahip]) && !Iter_Contains(xVehicleKeys<playerid>, xid))
2281 {
2282 SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Kamu tidak punya kunci untuk kendaraan ini!");
2283 RemovePlayerFromVehicle(playerid);
2284 }
2285 else
2286 {
2287 SendClientMessage(playerid, -1, "{00FF00}[!] {DCDC22}Gunakan {ECB021}/v {DCDC22}untuk melihat vehicle menu.");
2288 }
2289 }
2290 }
2291 return 1;
2292}
2293
2294public OnPlayerEnterCheckpoint(playerid)
2295{
2296 DisablePlayerCheckpoint(playerid);
2297 return 1;
2298}
2299
2300public OnPlayerLeaveCheckpoint(playerid)
2301{
2302 return 1;
2303}
2304
2305public OnPlayerEnterRaceCheckpoint(playerid)
2306{
2307 return 1;
2308}
2309
2310public OnPlayerLeaveRaceCheckpoint(playerid)
2311{
2312 return 1;
2313}
2314
2315public OnRconCommand(cmd[])
2316{
2317 if(!strcmp(cmd,"wrcon",true))
2318 {
2319 for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
2320 {
2321 ShowPlayerDialog(playerid,DIALOG_RCON_PANEL,DIALOG_STYLE_LIST,"WazzAdmin Rcon Panel","1. Restart Server\n2. Host Name\n3. Game Mode TXT\n4. Reload Bans\n5. Ban IP\n6. Unban IP\n7. Gravity\n8. Weather\n9. Load FS\n10. Unload FS\n11. Reload FS\n12. Change RCON PW\n13. Stop Server","Ok","Cancel");
2322 }
2323 }
2324 return 1;
2325}
2326
2327public OnPlayerRequestSpawn(playerid)
2328{
2329 return 1;
2330}
2331
2332public OnObjectMoved(objectid)
2333{
2334 return 1;
2335}
2336
2337public OnPlayerObjectMoved(playerid, objectid)
2338{
2339 return 1;
2340}
2341
2342public OnPlayerPickUpPickup(playerid, pickupid)
2343{
2344 return 1;
2345}
2346
2347public OnVehicleMod(playerid, vehicleid, componentid)
2348{
2349 new xid = xVeh[vehicleid];
2350 if(xid != 0)
2351 {
2352 for(new i; i<14; i++)
2353 {
2354 xVehicle[xid][xv_Parca][i] = GetVehicleComponentInSlot(vehicleid, i);
2355 }
2356 }
2357 return 1;
2358}
2359
2360public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
2361{
2362 new xid = xVeh[vehicleid];
2363 if(xid != 0) xVehicle[xid][xv_Paintjob] = paintjobid;
2364 return 1;
2365}
2366
2367public OnVehicleRespray(playerid, vehicleid, color1, color2)
2368{
2369 new xid = xVeh[vehicleid];
2370 if(xid != 0)
2371 {
2372 xVehicle[xid][xv_Renk][0] = color1;
2373 xVehicle[xid][xv_Renk][1] = color2;
2374 }
2375 return 1;
2376}
2377
2378public OnPlayerSelectedMenuRow(playerid, row)
2379{
2380 return 1;
2381}
2382
2383public OnPlayerExitedMenu(playerid)
2384{
2385 return 1;
2386}
2387
2388public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
2389{
2390 if(IsBeingSpeced[playerid] == 1)
2391 {
2392 foreach(new i: Player)
2393 {
2394 if(spectatorid[i] == playerid)
2395 {
2396 SetPlayerInterior(i,GetPlayerInterior(playerid));
2397 SetPlayerVirtualWorld(i,GetPlayerVirtualWorld(playerid));
2398 }
2399 }
2400 }
2401 return 1;
2402}
2403
2404public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
2405{
2406 if(admspec[playerid] == 1 && newkeys == KEY_YES)
2407 {
2408 SetCameraBehindPlayer(playerid);
2409 admspec[playerid] = 0;
2410 }
2411 return 1;
2412}
2413
2414public OnRconLoginAttempt(ip[], password[], success)
2415{
2416 if(success)
2417 {
2418 for(new i=0; i<MAX_PLAYERS; i++)
2419 {
2420 ShowPlayerDialog(i,DIALOG_2ND_RCON,DIALOG_STYLE_INPUT,"2ND RCON",""white"This server is "green"protected "white"rcon system by "red"WazAdmin. "white"Please input the 2nd rcon password here to login","Login","Kick me");
2421 }
2422 }
2423 return 1;
2424}
2425
2426public OnPlayerUpdate(playerid)
2427{
2428 if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK)
2429 {
2430 #if ANTI_JETPACK == 1
2431 if(JP[playerid] == 0) return Kick(playerid);
2432 #if ANTI_JETPACK == 2
2433 if(JP[playerid] == 0) return WazBan(playerid);
2434 #if ANTI_JETPACK == 3
2435 return 1;
2436 #endif
2437 #endif
2438 #endif
2439 }
2440 if(pInfo[playerid][Warn] >= 5) return Kick(playerid);
2441 return 1;
2442}
2443
2444public OnPlayerStreamIn(playerid, forplayerid)
2445{
2446 return 1;
2447}
2448
2449public OnPlayerStreamOut(playerid, forplayerid)
2450{
2451 return 1;
2452}
2453
2454public OnVehicleStreamIn(vehicleid, forplayerid)
2455{
2456 return 1;
2457}
2458
2459public OnVehicleStreamOut(vehicleid, forplayerid)
2460{
2461 return 1;
2462}
2463
2464public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
2465{
2466 switch(dialogid)
2467 {
2468 case DIALOG_REGISTER:
2469 {
2470 if (!response) return Kick(playerid);
2471 if(response)
2472 {
2473 if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""white"Registering...",""red"You have entered an invalid password.\n"white"Type your password below to register a new account.","Register","Quit");
2474 new INI:File = INI_Open(UserPath(playerid));
2475 INI_SetTag(File,"data");
2476 INI_WriteInt(File,"Password",udb_hash(inputtext));
2477 INI_WriteInt(File,"WazzLevel",0);
2478 INI_WriteInt(File,"WazzVIPLevel",0);
2479 INI_WriteInt(File,"Warn",0);
2480 INI_WriteInt(File,"Banned",0);
2481 INI_WriteInt(File,"Muted",0);
2482 INI_WriteInt(File,"Freeze",0);
2483 INI_WriteInt(File,"Cash",0);
2484 INI_WriteInt(File,"Kills",0);
2485 INI_WriteInt(File,"Deaths",0);
2486 INI_Close(File);
2487
2488 SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
2489 SpawnPlayer(playerid);
2490 ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""white"Success!",""green"Akun kamu telah terdaftar dan kamu diwajibkan relog untuk mengsave akun kamu","Ok","");
2491 }
2492 }
2493 case DIALOG_LOGIN:
2494 {
2495 if ( !response ) return Kick ( playerid );
2496 if( response )
2497 {
2498 if(udb_hash(inputtext) == pInfo[playerid][Pass])
2499 {
2500 INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
2501 if(pInfo[playerid][Banned] >= 1) return Kick(playerid);
2502 if(pInfo[playerid][Jailed] == 1)
2503 {
2504 SetPlayerPos(playerid, 264.8763,81.9862,1001.0390);
2505 SetPlayerInterior(playerid, 6);
2506 }
2507 if(pInfo[playerid][Freeze] == 1)
2508 {
2509 TogglePlayerControllable(playerid,false);
2510 }
2511 GivePlayerMoney(playerid, pInfo[playerid][Cash]);
2512 ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""white"Success!",""green"You have successfully logged in!","Ok","");
2513 }
2514 else
2515 {
2516 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""white"Login",""red"You have entered an incorrect password.\n"white"Type your password below to login.","Login","Quit");
2517 }
2518 return 1;
2519 }
2520 }
2521 case DIALOG_REPORT:
2522 {
2523 if(response)
2524 {
2525 AddReport(playerid, inputtext);
2526 }
2527 }
2528 case DIALOG_REPORTS:
2529 {
2530 new string[128];
2531 if(response)
2532 {
2533 switch(listitem)
2534 {
2535 case 0:
2536 {
2537 ListReports(playerid);
2538 return 1;
2539 }
2540 case 1:
2541 {
2542 if (!ReportCount) return SendClientMessage(playerid, COLOR_GREY, "There is no reports to delete."), ShowPlayerDialog(playerid, 21430, DIALOG_STYLE_LIST, "Reports", "List Reports\nDelete Reports", "Select", "Cancel");
2543 format(string, sizeof(string), "Do you wish to delete all %d reports?", ReportCount);
2544 ShowPlayerDialog(playerid,DIALOG_DELREPORT, DIALOG_STYLE_MSGBOX, "Delete Reports", string, "Yes", "No");
2545 return 1;
2546 }
2547 }
2548 }
2549 }
2550 case DIALOG_DELREPORT:
2551 {
2552 if (response)
2553 {
2554 for (new i = 0; i < MAX_REPORTS + 1; i += 1)
2555 {
2556 if (ReportIDTaken[i])
2557 {
2558 strmid(ReportInfo[i][Reporter], "", 0, strlen(""), 255);
2559 strmid(ReportInfo[i][ReportString], "", 0, strlen(""), 255);
2560 ReportInfo[i][ReportAnswered] = 0;
2561 ReportIDTaken[i] = 0;
2562 ReportInfo[i][Listitem][ReportInfo[i][Listitem]] = -1;
2563 }
2564 }
2565 ReportCount = 0;
2566 SendClientMessage(playerid,COLOR_GREY, "All reports deleted.");
2567 return ShowPlayerDialog(playerid, DIALOG_DELREPORT, DIALOG_STYLE_LIST, "Reports", "List Reports\nDelete Reports", "Select", "Cancel");
2568 }
2569 else return ShowPlayerDialog(playerid, DIALOG_DELREPORT, DIALOG_STYLE_LIST, "Reports", "List Reports\nDelete Reports", "Select", "Cancel");
2570 }
2571 case DIALOG_HREPORT:
2572 {
2573 new string[255];
2574 if(response)
2575 {
2576 for (new i = 0; i < MAX_REPORTS + 1; i += 1)
2577 {
2578 if (ReportIDTaken[i] == 0) continue;
2579 if (ReportInfo[i][Listitem][listitem] == 1)
2580 {
2581 SetPVarInt(playerid, "ReportID", i);
2582 format(string, sizeof(string), "Report #%d by %s:\n%s\n\nWould you like to handle this report or go back?", i, ReportInfo[i][Reporter], ReportInfo[i][ReportString]);
2583 ShowPlayerDialog(playerid, DIALOG_AREPORT, DIALOG_STYLE_MSGBOX, "Report Handling", string, "Handle", "Back");
2584 break;
2585 }
2586 }
2587 }
2588 else return ShowPlayerDialog(playerid, DIALOG_REPORTS, DIALOG_STYLE_LIST, "Reports", "List Reports\nDelete Reports", "Select", "Cancel");
2589 }
2590 case DIALOG_AREPORT:
2591 {
2592 if (response) ShowPlayerDialog(playerid, DIALOG_AREPORT2, DIALOG_STYLE_MSGBOX, "Choose", "Accept or deny report?", "Accept", "Deny");
2593 else { ListReports(playerid); DeletePVar(playerid, "ReportID"); }
2594 }
2595 case DIALOG_AREPORT2:
2596 {
2597 if (response)
2598 {
2599 AcceptReport(playerid, GetPVarInt(playerid, "ReportID"));
2600 }
2601 else DenyReport(playerid, GetPVarInt(playerid, "ReportID"));
2602 }
2603 case DIALOG_CHOOSE_LEVEL:
2604 {
2605 if(response)
2606 {
2607 switch(listitem)
2608 {
2609 case 0:
2610 {
2611 ShowPlayerDialog(playerid,DIALOG_ACMDS,DIALOG_STYLE_MSGBOX,"Level 1",""green"/acmds\n/aland\n/adoor\n/agate\n/duty\n/reports\n/goto\n/gethere\n/mute\n/unmute\n/getinfo\n/clearchat\n/slap\n/asay\n/repair\n/a(chat)","Ok","");
2612 }
2613 case 1:
2614 {
2615 if(pInfo[playerid][WazzAdmLevel] >= 2)
2616 {
2617 ShowPlayerDialog(playerid,DIALOG_ACMDS,DIALOG_STYLE_MSGBOX,"Level 2",""green"/freeze\n/unfreeze\n/jail\n/unjail\n/announce\n/spec\n/specoff\n/acar\n/abike\n/aboat\n/aplane\n/heal\n/armour\n/car\n/fstyle\n/explode\n/kick","Ok","");
2618 }
2619 else return Error(playerid,2);
2620 }
2621 case 2:
2622 {
2623 if(pInfo[playerid][WazzAdmLevel] >= 3)
2624 {
2625 ShowPlayerDialog(playerid,DIALOG_ACMDS,DIALOG_STYLE_MSGBOX,"Level 3",""green"/akill\n/jetpack\n/gethereall\n/godcar\n/givemoney\n/giveweapon\n/setmoney\n/sethp\n/setarmor\n/setfstyle\n/setskin\n/setcolor\n/ban\n/unban","Ok","");
2626 }
2627 else return Error(playerid,3);
2628 }
2629 case 3:
2630 {
2631 if(pInfo[playerid][WazzAdmLevel] >= 4)
2632 {
2633 ShowPlayerDialog(playerid,DIALOG_ACMDS,DIALOG_STYLE_MSGBOX,"Level 4",""green"/slapall\n/explodeall\n/killall\n/muteall\n/unmuteall\n/healall\n/armourall","Ok","");
2634 }
2635 else return Error(playerid,4);
2636 }
2637 case 4:
2638 {
2639 if(pInfo[playerid][WazzAdmLevel] >= 5)
2640 {
2641 ShowPlayerDialog(playerid,DIALOG_ACMDS,DIALOG_STYLE_MSGBOX,"Level 5",""green"/setallskin\n/lockserver\n/unlockserver\n/gmx\n/fakeban\n/fakekick\n/fakemute\n/warn\n/frozed\n/muted","Ok","");
2642 }
2643 else return Error(playerid,5);
2644 }
2645 }
2646 }
2647 }
2648 case DIALOG_CVC:
2649 {
2650 if(response)
2651 {
2652 switch(listitem)
2653 {
2654 case 0:
2655 {
2656 ShowPlayerDialog(playerid,DIALOG_VCMDS,DIALOG_STYLE_MSGBOX,"Bronze VIP","vcmds\n/vtime\n/vworld\n/vfix\n/vcarcolor\n/vc(hat)","OK","");
2657 }
2658 case 1:
2659 {
2660 if(pInfo[playerid][WazzVIPLevel] >= 2)
2661 {
2662 ShowPlayerDialog(playerid,DIALOG_VCMDS,DIALOG_STYLE_MSGBOX,"Silver VIP","/vskin\n/vbike\n/vheli\n/vboat\n/vplane\n/vjetpack","OK","");
2663 }
2664 else return Error(playerid,12);
2665 }
2666 case 2:
2667 {
2668 if(pInfo[playerid][WazzVIPLevel] >= 3)
2669 {
2670 ShowPlayerDialog(playerid,DIALOG_VCMDS,DIALOG_STYLE_MSGBOX,"Golden VIP","/vcar\n/vheal\n/varmour\n/vnos","OK","");
2671 }
2672 else return Error(playerid,13);
2673 }
2674 }
2675 }
2676 }
2677 case DIALOG_VCMDS:
2678 {
2679 if(response) return ShowPlayerDialog(playerid,DIALOG_CVC,DIALOG_STYLE_LIST,"VIP commands",""brown"VIP Bronze\n"white"VIP Silver\n"yellow"VIP Golden","Choose","Cancel");
2680 }
2681 case DIALOG_RCON_PANEL:
2682 {
2683 if(response)
2684 {
2685 switch(listitem)
2686 {
2687 case 0: SendRconCommand("gmx");
2688 case 1: ShowPlayerDialog(playerid,DIALOG_RCON_PANEL+1,DIALOG_STYLE_INPUT,"wPanel - HostName","Input Below", "Ok", "Cancel");
2689 case 2: ShowPlayerDialog(playerid,DIALOG_RCON_PANEL+2,DIALOG_STYLE_INPUT,"wPanel - GM Text","Input Below", "Ok", "Cancel");
2690 case 3: SendRconCommand("reloadbans");
2691 case 4: ShowPlayerDialog(playerid,DIALOG_RCON_PANEL+3,DIALOG_STYLE_INPUT,"wPanel - Ban IP","Input Below", "Ok", "Cancel");
2692 case 5: ShowPlayerDialog(playerid,DIALOG_RCON_PANEL+4,DIALOG_STYLE_INPUT,"wPanel - UnBan IP","Input Below", "Ok", "Cancel");
2693 case 6: ShowPlayerDialog(playerid,DIALOG_RCON_PANEL+5,DIALOG_STYLE_INPUT,"wPanel - Gravity (Be Careful with this)","Input Below", "Ok", "Cancel");
2694 case 7: ShowPlayerDialog(playerid,DIALOG_RCON_PANEL+6,DIALOG_STYLE_INPUT,"wPanel - Weather","Input Below", "Ok", "Cancel");
2695 case 8: ShowPlayerDialog(playerid,DIALOG_RCON_PANEL+7,DIALOG_STYLE_INPUT,"wPanel - Load FS","Input Below", "Ok", "Cancel");
2696 case 9: ShowPlayerDialog(playerid,DIALOG_RCON_PANEL+8,DIALOG_STYLE_INPUT,"wPanel - UnLoad FS","Input Below", "Ok", "Cancel");
2697 case 10: ShowPlayerDialog(playerid,DIALOG_RCON_PANEL+9,DIALOG_STYLE_INPUT,"wPanel - ReLoad FS","Input Below", "Ok", "Cancel");
2698 case 11: ShowPlayerDialog(playerid,DIALOG_RCON_PANEL+10,DIALOG_STYLE_INPUT,"wPanel - Change PW","Input Below", "Ok", "Cancel");
2699 case 12: SendRconCommand("exit");
2700 }
2701 }
2702 }
2703 case DIALOG_RCON_PANEL+1:
2704 {
2705 if(response)
2706 {
2707 new str[128];
2708 format(str,sizeof(str), "hostname %s", inputtext);
2709 SendRconCommand(str);
2710 }
2711 }
2712 case DIALOG_RCON_PANEL+2:
2713 {
2714 if(response)
2715 {
2716 new str[128];
2717 format(str,sizeof(str), "gamemodetext %s", inputtext);
2718 SendRconCommand(str);
2719 }
2720 }
2721 case DIALOG_RCON_PANEL+3:
2722 {
2723 if(response)
2724 {
2725 new str[128];
2726 format(str,sizeof(str), "banip %s", inputtext);
2727 SendRconCommand(str);
2728 }
2729 }
2730 case DIALOG_RCON_PANEL+4:
2731 {
2732 if(response)
2733 {
2734 new str[128];
2735 format(str,sizeof(str), "unbanip %s", inputtext);
2736 SendRconCommand(str);
2737 }
2738 }
2739 case DIALOG_RCON_PANEL+5:
2740 {
2741 if(response)
2742 {
2743 new str[128];
2744 format(str,sizeof(str), "gravity %s", inputtext);
2745 SendRconCommand(str);
2746 }
2747 }
2748 case DIALOG_RCON_PANEL+6:
2749 {
2750 if(response)
2751 {
2752 new str[128];
2753 format(str,sizeof(str), "weather %s", inputtext);
2754 SendRconCommand(str);
2755 }
2756 }
2757 case DIALOG_RCON_PANEL+7:
2758 {
2759 if(response)
2760 {
2761 new str[128];
2762 format(str,sizeof(str), "loadfs %s", inputtext);
2763 SendRconCommand(str);
2764 }
2765 }
2766 case DIALOG_RCON_PANEL+8:
2767 {
2768 if(response)
2769 {
2770 new str[128];
2771 format(str,sizeof(str), "unloadfs %s", inputtext);
2772 SendRconCommand(str);
2773 }
2774 }
2775 case DIALOG_RCON_PANEL+9:
2776 {
2777 if(response)
2778 {
2779 new str[128];
2780 format(str,sizeof(str), "reloadfs %s", inputtext);
2781 SendRconCommand(str);
2782 }
2783 }
2784 case DIALOG_RCON_PANEL+10:
2785 {
2786 new str[128];
2787 format(str,sizeof(str), "rcon_password %s", inputtext);
2788 SendRconCommand(str);
2789 }
2790 case DIALOG_2ND_RCON:
2791 {
2792 if(!response) return Kick(playerid);
2793 if(response)
2794 {
2795 if(strlen(inputtext) == strlen(RCON_PASS))
2796 {
2797 GameTextForPlayer(playerid,"Admin accepted. Have a nice day sir.",5000,0);
2798 }
2799 else
2800 {
2801 if(pInfo[playerid][RconWarn] == MAX_RCON_WARNINGS)
2802 {
2803 pInfo[playerid][RconWarn] = 0;
2804 Kick(playerid);
2805 }
2806 else
2807 {
2808 new string[256];
2809 pInfo[playerid][RconWarn] ++;
2810 format(string,sizeof(string),""white"This server is "green"protected "white"rcon system by "red"WazAdmin. "white"Please input the 2nd rcon password here to login. "red" Warnings: %i",pInfo[playerid][RconWarn]);
2811 ShowPlayerDialog(playerid,DIALOG_2ND_RCON,DIALOG_STYLE_INPUT,"2ND RCON",string,"Login","Kick me");
2812 }
2813 }
2814 }
2815 }
2816 }
2817 if(dialogid == XV_DIALOGID)
2818 {
2819 if(response)
2820 {
2821 new tmp[8], xid;
2822 GetPVarString(playerid, "selected_veh_plate", tmp, 8);
2823 xid = GetVehiclexIDFromPlate(tmp);
2824 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
2825
2826 switch(listitem)
2827 {
2828 case 0: // arac nerede?
2829 {
2830 if(xVehicle[xid][xv_Garajda])
2831 {
2832 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", "");
2833 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", "");
2834 }
2835 else
2836 {
2837 new Float:vpos[3];
2838 GetVehiclePos(xVehicle[xid][xv_Veh], vpos[0], vpos[1], vpos[2]);
2839 SetPlayerCheckpoint(playerid, vpos[0], vpos[1], vpos[2], 3);
2840 SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}Vehicle has marked on the map!");
2841 }
2842 }
2843 case 1: // garaj sok/çýkar
2844 {
2845 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", "");
2846 if(xVehicle[xid][xv_Garajda])
2847 {
2848 new str[128];
2849 GetPlayerPos(playerid, xVehicle[xid][xv_Pos][0], xVehicle[xid][xv_Pos][1], xVehicle[xid][xv_Pos][2]);
2850 GetPlayerFacingAngle(playerid, xVehicle[xid][xv_Pos][3]);
2851 xVehicle[xid][xv_Pos][3] += 90;
2852 GetXYInFrontOfPlayer(playerid, xVehicle[xid][xv_Pos][0], xVehicle[xid][xv_Pos][1], 3);
2853 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);
2854 xVeh[xVehicle[xid][xv_Veh]] = xid;
2855 SetVehicleNumberPlate(xVehicle[xid][xv_Veh], xVehicle[xid][xv_Plaka]);
2856 SetVehicleToRespawn(xVehicle[xid][xv_Veh]);
2857 xVehicle[xid][xv_Garajda] = 0;
2858 SavexVehicle(xid);
2859 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]);
2860 SendClientMessage(playerid, -1, str);
2861 }
2862 else
2863 {
2864 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.");
2865 new str[128];
2866 DestroyVehicle(xVehicle[xid][xv_Veh]);
2867 xVehicle[xid][xv_Garajda] = 1;
2868 SavexVehicle(xid);
2869 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]);
2870 SendClientMessage(playerid, -1, str);
2871 }
2872 }
2873 case 2:
2874 {
2875 new str[288];
2876 format(str, sizeof(str), "{FFFB93}Auto park adalah system ketika kamu keluar dari kendaraan kamu, maka akan auto park\nTapi ketika darah kendaraan kamu dibawah 300 atau tebalik park otomatis tidak akan bisa\n\nAuto park status : %s", (xVehicle[xid][xv_HizliPark]) ? ("{00FF00}Active") : ("{FF0000}Deactive"));
2877 ShowPlayerDialog(playerid, XV_DIALOGID+1, DIALOG_STYLE_MSGBOX, "Auto Park System", str, (xVehicle[xid][xv_HizliPark]) ? ("Deactivate") : ("Activate"), "Back");
2878 }
2879 case 3:
2880 {
2881 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", "");
2882 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");
2883 }
2884 case 4:
2885 {
2886 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", "");
2887 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");
2888 }
2889 case 5:
2890 {
2891 new str[256];
2892 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]);
2893 ShowPlayerDialog(playerid, XV_DIALOGID+4, DIALOG_STYLE_MSGBOX, " Vehicle Information", str, "Back", "");
2894 }
2895 }
2896 }
2897 else
2898 {
2899 DeletePVar(playerid, "selected_veh_plate");
2900 cmd_v(playerid, "");
2901 }
2902 }
2903
2904 if(dialogid == XV_DIALOGID+1)
2905 {
2906 new tmp[8], xid;
2907 GetPVarString(playerid, "selected_veh_plate", tmp, 8);
2908 xid = GetVehiclexIDFromPlate(tmp);
2909 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
2910
2911 if(response)
2912 {
2913 switch(xVehicle[xid][xv_HizliPark])
2914 {
2915 case 0:
2916 {
2917 SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}Auto Park has activated!");
2918 xVehicle[xid][xv_HizliPark] = 1;
2919 xvMenuGoster(playerid);
2920 }
2921 case 1:
2922 {
2923 SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}Auto Park has deactivated!");
2924 xVehicle[xid][xv_HizliPark] = 0;
2925 xvMenuGoster(playerid);
2926 }
2927 }
2928 } else xvMenuGoster(playerid);
2929 }
2930
2931 if(dialogid == XV_DIALOGID+2)
2932 {
2933 if(response)
2934 {
2935 new tmp[8], xid;
2936 GetPVarString(playerid, "selected_veh_plate", tmp, 8);
2937 xid = GetVehiclexIDFromPlate(tmp);
2938 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
2939
2940 switch(listitem)
2941 {
2942 case 0:
2943 {
2944 new query[128], Cache:keys;
2945 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);
2946 keys = mysql_query(mysqlB, query);
2947 new rows = cache_num_rows();
2948 if(rows)
2949 {
2950 new list[512], o_isim[MAX_PLAYER_NAME];
2951 format(list, sizeof(list), "Player Name\n");
2952 for(new i; i < rows; ++i)
2953 {
2954 cache_get_value_name(i, "Isim", o_isim);
2955 format(list, sizeof(list), "%s%s\n", list, o_isim);
2956 }
2957 format(list, sizeof(list), "%s{F4D00B}<< Previous Page\n{F4D00B}>> Next Page", list);
2958 ShowPlayerDialog(playerid, XV_DIALOGID+3, DIALOG_STYLE_TABLIST_HEADERS, "Key Owners (Page 1)", list, "Select", "Back");
2959 }
2960 else
2961 {
2962 SendClientMessage(playerid, 0xE74C3CFF, "No one has your vehicle's keys!");
2963 }
2964 cache_delete(keys);
2965 }
2966 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");
2967 case 2:
2968 {
2969 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");
2970 }
2971 }
2972 } else xvMenuGoster(playerid);
2973 }
2974
2975 if(dialogid == XV_DIALOGID+3)
2976 {
2977 if(response)
2978 {
2979 new tmp[8], xid;
2980 GetPVarString(playerid, "selected_veh_plate", tmp, 8);
2981 xid = GetVehiclexIDFromPlate(tmp);
2982 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
2983
2984 if(!xStrcmp(inputtext, "<< Previous Page"))
2985 {
2986 SetPVarInt(playerid, "xvKeysPage", GetPVarInt(playerid, "xvKeysPage")-1);
2987 if(GetPVarInt(playerid, "xvKeysPage") < 0)
2988 {
2989 SetPVarInt(playerid, "xvKeysPage", 0);
2990 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");
2991 return 1;
2992 }
2993
2994 new query[128], Cache:keys;
2995 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);
2996 keys = mysql_query(mysqlB, query);
2997 new rows = cache_num_rows();
2998 if(rows)
2999 {
3000 new list[512], o_isim[MAX_PLAYER_NAME];
3001 format(list, sizeof(list), "Player Name\n");
3002 for(new i; i < rows; ++i)
3003 {
3004 cache_get_value_name(i, "Isim", o_isim);
3005 format(list, sizeof(list), "%s%s\n", list, o_isim);
3006 }
3007 format(list, sizeof(list), "%s{F4D00B}<< Previous Page\n{F4D00B}>> Next Page", list);
3008 new head[32];
3009 format(head, sizeof(head), "Key Owners (Page %d)", GetPVarInt(playerid, "xvKeysPage")+1);
3010 ShowPlayerDialog(playerid, XV_DIALOGID+3, DIALOG_STYLE_TABLIST_HEADERS, head, list, "Select", "Back");
3011 }
3012 else
3013 {
3014 /*SetPVarInt(playerid, "xvKeysPage", 0);
3015 ShowPlayerDialog(playerid, XV_DIALOGID+2, DIALOG_STYLE_LIST, "Aracýn Anahtarlarý", "Anahtarý Olanlarý Gör\nBirine Anahtar Ver\nKilidi Deðiþtir", "Select", "Back");
3016 */
3017 SendClientMessage(playerid, 0xE74C3CFF, "There is no more key owners!");
3018 }
3019 cache_delete(keys);
3020 }
3021 else if(!xStrcmp(inputtext, ">> Next Page"))
3022 {
3023 SetPVarInt(playerid, "xvKeysPage", GetPVarInt(playerid, "xvKeysPage")+1);
3024
3025 new query[128], Cache:keys;
3026 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);
3027 keys = mysql_query(mysqlB, query);
3028 new rows = cache_num_rows();
3029 if(rows)
3030 {
3031 new list[512], o_isim[MAX_PLAYER_NAME];
3032 format(list, sizeof(list), "Player Name\n");
3033 for(new i; i < rows; ++i)
3034 {
3035 cache_get_value_name(i, "Isim", o_isim);
3036 format(list, sizeof(list), "%s%s\n", list, o_isim);
3037 }
3038 format(list, sizeof(list), "%s{F4D00B}<< Previous Page\n{F4D00B}>> Next Page", list);
3039 new head[32];
3040 format(head, sizeof(head), "Key Owners (Sayfa %d)", GetPVarInt(playerid, "xvKeysPage")+1);
3041 ShowPlayerDialog(playerid, XV_DIALOGID+3, DIALOG_STYLE_TABLIST_HEADERS, head, list, "Select", "Back");
3042 }
3043 else
3044 {
3045 SetPVarInt(playerid, "xvKeysPage", GetPVarInt(playerid, "xvKeysPage") - 1);
3046 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);
3047 keys = mysql_query(mysqlB, query);
3048 rows = cache_num_rows();
3049 if(rows)
3050 {
3051 new list[512], o_isim[MAX_PLAYER_NAME];
3052 format(list, sizeof(list), "Player Name\n");
3053 for(new i; i < rows; ++i)
3054 {
3055 cache_get_value_name(i, "Isim", o_isim);
3056 format(list, sizeof(list), "%s%s\n", list, o_isim);
3057 }
3058 format(list, sizeof(list), "%s{F4D00B}<< Previous Page\n{F4D00B}>> Next Page", list);
3059 new head[32];
3060 format(head, sizeof(head), "Key Owners (Sayfa %d)", GetPVarInt(playerid, "xvKeysPage")+1);
3061 ShowPlayerDialog(playerid, XV_DIALOGID+3, DIALOG_STYLE_TABLIST_HEADERS, head, list, "Select", "Back");
3062 }
3063 SendClientMessage(playerid, 0xE74C3CFF, "There is no more key owners!");
3064 }
3065 cache_delete(keys);
3066 }
3067 else
3068 {
3069 SetPVarString(playerid, "tmp_keyname", inputtext);
3070 ShowPlayerDialog(playerid, XV_DIALOGID+14, DIALOG_STYLE_LIST, "Vehicle Key", "{DCDC22}» {FFFB93}Take The Key Back", "Apply", "Back");
3071 }
3072 }
3073 }
3074
3075 if(dialogid == XV_DIALOGID+4) xvMenuGoster(playerid);
3076
3077 if(dialogid == XV_DIALOGID+5)
3078 {
3079 if(response)
3080 {
3081 new xid = xVeh[GetPlayerVehicleID(playerid)];
3082 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);
3083 if(GetPlayerMoney(playerid) < xVehicle[xid][xv_Fiyat]) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}You don't have enough money!"), RemovePlayerFromVehicle(playerid);
3084 GivePlayerMoney(playerid, -xVehicle[xid][xv_Fiyat]);
3085 format(xVehicle[xid][xv_Sahip], 24, "%s", Isim(playerid));
3086 SavexVehicle(xid);
3087 Delete3DTextLabel(xVehicle[xid][xv_Text]);
3088 SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}Kamu telah berhasil membeli kendaraan ini, gunakan cmd {ECB021}/v {00FF00} untuk memanage kendaraan!");
3089 }
3090 else
3091 {
3092 if(!IsPlayerAdmin(playerid)) RemovePlayerFromVehicle(playerid);
3093 }
3094 }
3095
3096 if(dialogid == XV_DIALOGID+6)
3097 {
3098 if(response)
3099 {
3100 if(!xStrcmp(inputtext, "» This Vehicle"))
3101 {
3102 SetPVarString(playerid, "selected_veh_plate", xVehicle[xVeh[GetPlayerVehicleID(playerid)]][xv_Plaka]);
3103 xvMenuGoster(playerid);
3104 }
3105 else if(!xStrcmp(inputtext, "» My Own Vehicles"))
3106 {
3107 new str[256], cnt;
3108 format(str, sizeof(str), "Plate Number\tVehicle Name\tState");
3109 foreach(new i : xVehicles)
3110 {
3111 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++;
3112 }
3113 if(!cnt) ShowPlayerDialog(playerid, XV_DIALOGID-1, DIALOG_STYLE_MSGBOX, "My Own Vehicles", "{FF0000}[!] {F0AE0F}You don't have any vehicle!", "OK", "");
3114 else ShowPlayerDialog(playerid, XV_DIALOGID+7, DIALOG_STYLE_TABLIST_HEADERS, "My Own Vehicles", str, "Choose Car", "Back");
3115 }
3116 else if(!xStrcmp(inputtext, "» Vehicles That I Have Keys"))
3117 {
3118 new str[256], cnt;
3119 format(str, sizeof(str), "Plate Number\tVehicle Name\tState");
3120 foreach(new i : xVehicleKeys<playerid>)
3121 {
3122 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"));
3123 cnt++;
3124 }
3125 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", "");
3126 else ShowPlayerDialog(playerid, XV_DIALOGID+7, DIALOG_STYLE_TABLIST_HEADERS, "Vehicles That I Have Keys", str, "Choose Car", "Back");
3127 }
3128 }
3129 }
3130
3131 if(dialogid == XV_DIALOGID+7)
3132 {
3133 if(response)
3134 {
3135 new tmp[2][8];
3136 split(inputtext, tmp, '\t');
3137 SetPVarString(playerid, "selected_veh_plate", tmp[0]);
3138 xvMenuGoster(playerid);
3139 } else cmd_v(playerid, "");
3140 }
3141
3142 if(dialogid == XV_DIALOGID+8)
3143 {
3144 if(response)
3145 {
3146 new str[256], tmpp[8], xid;
3147 GetPVarString(playerid, "selected_veh_plate", tmpp, 8);
3148 xid = GetVehiclexIDFromPlate(tmpp);
3149 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
3150
3151 switch(listitem)
3152 {
3153 case 0:
3154 {
3155 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);
3156 ShowPlayerDialog(playerid, XV_DIALOGID+9, DIALOG_STYLE_MSGBOX, "Sell Vehicle To Car Dealer", str, "Confirm", "Back");
3157 }
3158 case 1:
3159 {
3160 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.");
3161 if(xVehicle[xid][xv_Garajda]) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Before you sell your vehicle, take it out from the garage!");
3162 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");
3163 }
3164 }
3165 } else xvMenuGoster(playerid);
3166 }
3167
3168 if(dialogid == XV_DIALOGID+9)
3169 {
3170 if(response)
3171 {
3172 new query[128], tmpp[8], xid;
3173 GetPVarString(playerid, "selected_veh_plate", tmpp, 8);
3174 xid = GetVehiclexIDFromPlate(tmpp);
3175 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
3176
3177 GivePlayerMoney(playerid, (xVehicle[xid][xv_Fiyat] / 100) * 70);
3178 if(IsValidVehicle(xVehicle[xid][xv_Veh])) DestroyVehicle(xVehicle[xid][xv_Veh]);
3179 Iter_Remove(xVehicles, xid);
3180 DeletePVar(playerid, "selected_veh_plate");
3181 foreach(new i : Player)
3182 {
3183 if(Iter_Contains(xVehicleKeys<i>, xid)) Iter_Remove(xVehicleKeys<i>, xid);
3184 }
3185
3186 mysql_format(mysqlB, query, sizeof(query), "DELETE FROM xVehicleKeys WHERE AracID=%d", xid);
3187 mysql_query(mysqlB, query);
3188 mysql_format(mysqlB, query, sizeof(query), "DELETE FROM xVehicle WHERE ID=%d", xid);
3189 mysql_query(mysqlB, query);
3190 SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}You sold your vehicle!");
3191 } 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");
3192 }
3193
3194 if(dialogid == XV_DIALOGID+10)
3195 {
3196 if(response)
3197 {
3198 new pid;
3199 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");
3200 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");
3201 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");
3202 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");
3203 SetPVarInt(playerid, "xv_teklif_id", pid);
3204 new str[128];
3205 format(str, sizeof(str), "{FFFB93}Selected player: {ECEC13}%s {ECB021}(%d)\n\n{FFFB93}Enter the price you want:", Isim(pid), pid);
3206 ShowPlayerDialog(playerid, XV_DIALOGID+11, DIALOG_STYLE_INPUT, "Sell the Vehicle - Price", str, "Send Offer", "Back");
3207 } 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");
3208 }
3209
3210 if(dialogid == XV_DIALOGID+11)
3211 {
3212 if(response)
3213 {
3214 new tmpp[8], xid;
3215 GetPVarString(playerid, "selected_veh_plate", tmpp, 8);
3216 xid = GetVehiclexIDFromPlate(tmpp);
3217 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
3218
3219 new pid = GetPVarInt(playerid, "xv_teklif_id");
3220 if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, -1, "{FF0000}[!] {DCDC22}Offer has cancelled because of the player has disconnected.");
3221 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");
3222 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");
3223 SetPVarInt(pid, "xv_teklif_gonderen", playerid);
3224 SetPVarInt(pid, "xv_teklif_fiyat", strval(inputtext));
3225 SetPVarInt(pid, "xv_teklif_xid", xid);
3226 offerTimer[pid] = SetTimerEx("TeklifBitir", 30000, false, "uu", playerid, pid);
3227 new str[400];
3228 format(str, sizeof(str), "{00BD00}[!] {FFFB93}Offer has sent to {ECEC13}%s", Isim(pid));
3229 SendClientMessage(playerid, -1, str);
3230 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));
3231 ShowPlayerDialog(pid, XV_DIALOGID+12, DIALOG_STYLE_MSGBOX, "Vehicle Sale Offer", str, "Accept", "Reject");
3232 }
3233 else
3234 {
3235 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");
3236 SetPVarInt(playerid, "xv_teklif_id", INVALID_PLAYER_ID);
3237 }
3238 }
3239
3240 if(dialogid == XV_DIALOGID+12)
3241 {
3242 if(response)
3243 {
3244 new pid = GetPVarInt(playerid, "xv_teklif_gonderen");
3245 new xid = GetPVarInt(playerid, "xv_teklif_xid");
3246 new price = GetPVarInt(playerid, "xv_teklif_fiyat");
3247 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}This offers time is up.");
3248 if(!IsPlayerConnected(pid)) return SendClientMessage(playerid, -1, "{FF0000}[!] {DCDC22}This offer has cancelled because of the player that offered has disconnected.");
3249 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.");
3250 if(GetPlayerMoney(playerid) < price)
3251 {
3252 SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}This offer has cancelled because of you don't have enough money!");
3253 SendClientMessage(pid, -1, "{FF0000}[!] {F0AE0F}This offer has cancelled because of that player doesn't have enough money!");
3254 }
3255
3256 format(xVehicle[xid][xv_Sahip], 24, "%s", Isim(playerid));
3257 xVehicle[xid][xv_Fiyat] = price;
3258 SavexVehicle(xid);
3259 foreach(new i : Player)
3260 {
3261 if(IsValidVehicle(xVehicle[xid][xv_Veh]) && IsPlayerInVehicle(i, xVehicle[xid][xv_Veh]))
3262 {
3263 SendClientMessage(i, -1, "{FF0000}[!] {DCDC22}You have removed the vehicle because of this vehicle has been sold.");
3264 RemovePlayerFromVehicle(i);
3265 }
3266 }
3267
3268 GivePlayerMoney(playerid, -price);
3269 GivePlayerMoney(pid, price);
3270
3271 new query[256];
3272 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);
3273 ShowPlayerDialog(pid, XV_DIALOGID-1, DIALOG_STYLE_MSGBOX, "Sell Vehicle", query, "OK", "");
3274 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);
3275 ShowPlayerDialog(playerid, XV_DIALOGID-1, DIALOG_STYLE_MSGBOX, "Buy Vehicle", query, "OK", "");
3276 mysql_format(mysqlB, query, sizeof(query), "DELETE FROM xVehicleKeys WHERE AracID=%d", xid);
3277 mysql_query(mysqlB, query);
3278 mysql_format(mysqlB, query, sizeof(query), "UPDATE xVehicle SET Sahip='%s' WHERE ID=%d", Isim(playerid), xid);
3279 mysql_query(mysqlB, query);
3280 }
3281 else
3282 {
3283 SendClientMessage(playerid, -1, "{FF0000}[!] {DCDC22}You have rejected the offer.");
3284 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!");
3285 }
3286 KillTimer(offerTimer[playerid]);
3287 SetPVarInt(GetPVarInt(playerid, "xv_teklif_gonderen"), "xv_teklif_id", INVALID_PLAYER_ID);
3288 SetPVarInt(playerid, "xv_teklif_gonderen", INVALID_PLAYER_ID);
3289 DeletePVar(playerid, "xv_teklif_xid");
3290 DeletePVar(playerid, "xv_teklif_fiyat");
3291 }
3292
3293 if(dialogid == XV_DIALOGID+13)
3294 {
3295 if(response)
3296 {
3297 new str[150], tmpp[8], xid, pid;
3298 GetPVarString(playerid, "selected_veh_plate", tmpp, 8);
3299 xid = GetVehiclexIDFromPlate(tmpp);
3300 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
3301
3302 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");
3303 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");
3304 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");
3305 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", "");
3306 Iter_Add(xVehicleKeys<pid>, xid);
3307 mysql_format(mysqlB, str, sizeof(str), "INSERT INTO xVehicleKeys SET AracID=%d, Isim='%e'", xid, Isim(pid));
3308 mysql_query(mysqlB, str);
3309 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));
3310 SendClientMessage(playerid, -1, str);
3311 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]);
3312 SendClientMessage(pid, -1, str);
3313 } 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");
3314 }
3315
3316 if(dialogid == XV_DIALOGID+14)
3317 {
3318 if(response)
3319 {
3320 new str[150], tmpp[8], xid, pid;
3321 GetPVarString(playerid, "selected_veh_plate", tmpp, 8);
3322 xid = GetVehiclexIDFromPlate(tmpp);
3323 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
3324
3325 new p_is[24];
3326 GetPVarString(playerid, "tmp_keyname", p_is, 24);
3327 pid = GetPlayerIDFromName(p_is);
3328 if(IsPlayerConnected(pid))
3329 {
3330 Iter_Remove(xVehicleKeys<pid>, xid);
3331 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]);
3332 SendClientMessage(pid, -1, str);
3333 }
3334 mysql_format(mysqlB, str, sizeof(str), "DELETE FROM xVehicleKeys WHERE AracID=%d AND Isim='%e'", xid, p_is);
3335 mysql_query(mysqlB, str);
3336 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);
3337 SendClientMessage(playerid, -1, str);
3338 }
3339 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");
3340 }
3341
3342 if(dialogid == XV_DIALOGID+15)
3343 {
3344 if(response)
3345 {
3346 new str[128], tmpp[8], xid;
3347 GetPVarString(playerid, "selected_veh_plate", tmpp, 8);
3348 xid = GetVehiclexIDFromPlate(tmpp);
3349 if(xid == 0) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
3350
3351 foreach(new i : Player)
3352 {
3353 if(IsPlayerInVehicle(i, xVehicle[xid][xv_Veh]) && xStrcmp(xVehicle[xid][xv_Sahip], Isim(i)))
3354 {
3355 SendClientMessage(i, -1, "{FF0000}[!] {DCDC22}You have removed from vehicle because of the owner of this vehicle has changed the lock.");
3356 RemovePlayerFromVehicle(i);
3357 }
3358 if(Iter_Contains(xVehicleKeys<i>, xid)) Iter_Remove(xVehicleKeys<i>, xid);
3359 }
3360 mysql_format(mysqlB, str, sizeof(str), "DELETE FROM xVehicleKeys WHERE AracID=%d", xid);
3361 mysql_query(mysqlB, str);
3362 SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}You have succesfully changed vehicle's lock!");
3363 } 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");
3364 }
3365
3366 if(dialogid == XV_DIALOGID+16)
3367 {
3368 if(response)
3369 {
3370 switch(listitem)
3371 {
3372 case 0:
3373 {
3374 new query[128], Cache:vehs;
3375 SetPVarInt(playerid, "xvKeysPage", 0);
3376 mysql_format(mysqlB, query, sizeof(query), "SELECT ID FROM xVehicle ORDER BY ID ASC LIMIT %d, 15", GetPVarInt(playerid, "xvKeysPage")*15);
3377 vehs = mysql_query(mysqlB, query);
3378 new rows = cache_num_rows();
3379 if(rows)
3380 {
3381 new list[512], v_id;
3382 format(list, sizeof(list), "Vehicle ID\tPlate Number\tVehicle Name\n");
3383 for(new i; i < rows; ++i)
3384 {
3385 cache_get_value_name_int(i, "ID", v_id);
3386 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]));
3387 }
3388 format(list, sizeof(list), "%s{F4D00B}<< Previous Page\n{F4D00B}>> Next Page", list);
3389 ShowPlayerDialog(playerid, XV_DIALOGID+17, DIALOG_STYLE_TABLIST_HEADERS, "Vehicle List (Page 1)", list, "Select", "Back");
3390 }
3391 else
3392 {
3393 SendClientMessage(playerid, 0xE74C3CFF, "{FF0000}[!] {DCDC22}No vehicles has been created.");
3394 }
3395 cache_delete(vehs);
3396 }
3397 case 1:
3398 {
3399 new str[128];
3400 foreach(new i : xVehicles) if(!xVehicle[i][xv_Garajda]) SetVehicleToRespawn(xVehicle[i][xv_Veh]);
3401 SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}All vehicles has respawned!");
3402 format(str, sizeof(str), "{00BD00}[!] Admin {ECEC13}%s {FFFB93}has respawned all vehicles!", Isim(playerid));
3403 SendClientMessageToAll(-1, str);
3404 }
3405 case 2:
3406 {
3407 ShowPlayerDialog(playerid, XV_DIALOGID+22, DIALOG_STYLE_INPUT, "Create Vehicle", "{FFFB93}Enter the model ID or the name of the vehicle:", "Next", "Back");
3408 }
3409 }
3410 }
3411 }
3412
3413 if(dialogid == XV_DIALOGID+17)
3414 {
3415 if(response)
3416 {
3417 if(!xStrcmp(inputtext, "<< Previous Page"))
3418 {
3419 SetPVarInt(playerid, "xvKeysPage", GetPVarInt(playerid, "xvKeysPage")-1);
3420 if(GetPVarInt(playerid, "xvKeysPage") < 0)
3421 {
3422 SetPVarInt(playerid, "xvKeysPage", 0);
3423 cmd_amenu(playerid, "");
3424 return 1;
3425 }
3426
3427 new query[128], Cache:vehs;
3428 mysql_format(mysqlB, query, sizeof(query), "SELECT ID FROM xVehicle ORDER BY ID ASC LIMIT %d, 15", GetPVarInt(playerid, "xvKeysPage")*15);
3429 vehs = mysql_query(mysqlB, query);
3430 new rows = cache_num_rows();
3431 if(rows)
3432 {
3433 new list[512], v_id;
3434 format(list, sizeof(list), "Vehicle ID\tPlate Number\tVehicle Name\n");
3435 for(new i; i < rows; ++i)
3436 {
3437 cache_get_value_name_int(i, "ID", v_id);
3438 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]));
3439 }
3440 format(list, sizeof(list), "%s{F4D00B}<< Previous Page\n{F4D00B}>> Next Page", list);
3441 new head[32];
3442 format(head, sizeof(head), "Vehicle List (Page %d)", GetPVarInt(playerid, "xvKeysPage")+1);
3443 ShowPlayerDialog(playerid, XV_DIALOGID+17, DIALOG_STYLE_TABLIST_HEADERS, head, list, "Select", "Back");
3444 }
3445 else
3446 {
3447 SetPVarInt(playerid, "xvKeysPage", 0);
3448 }
3449 cache_delete(vehs);
3450 }
3451 else if(!xStrcmp(inputtext, ">> Next Page"))
3452 {
3453 SetPVarInt(playerid, "xvKeysPage", GetPVarInt(playerid, "xvKeysPage")+1);
3454
3455 new query[128], Cache:vehs;
3456 mysql_format(mysqlB, query, sizeof(query), "SELECT ID FROM xVehicle ORDER BY ID ASC LIMIT %d, 15", GetPVarInt(playerid, "xvKeysPage")*15);
3457 vehs = mysql_query(mysqlB, query);
3458 new rows = cache_num_rows();
3459 if(rows)
3460 {
3461 new list[512], v_id;
3462 format(list, sizeof(list), "Vehicle ID\tPlate Number\tVehicle Name\n");
3463 for(new i; i < rows; ++i)
3464 {
3465 cache_get_value_name_int(i, "ID", v_id);
3466 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]));
3467 }
3468 format(list, sizeof(list), "%s{F4D00B}<< Previous Page\n{F4D00B}>> Next Page", list);
3469 new head[32];
3470 format(head, sizeof(head), "Vehicle List (Page %d)", GetPVarInt(playerid, "xvKeysPage")+1);
3471 ShowPlayerDialog(playerid, XV_DIALOGID+17, DIALOG_STYLE_TABLIST_HEADERS, head, list, "Select", "Back");
3472 }
3473 else
3474 {
3475 SetPVarInt(playerid, "xvKeysPage", GetPVarInt(playerid, "xvKeysPage") - 1);
3476 mysql_format(mysqlB, query, sizeof(query), "SELECT ID FROM xVehicle ORDER BY ID ASC LIMIT %d, 15", GetPVarInt(playerid, "xvKeysPage")*15);
3477 vehs = mysql_query(mysqlB, query);
3478 rows = cache_num_rows();
3479 if(rows)
3480 {
3481 new list[512], v_id;
3482 format(list, sizeof(list), "Vehicle ID\tPlate Number\tVehicle Name\n");
3483 for(new i; i < rows; ++i)
3484 {
3485 cache_get_value_name_int(i, "ID", v_id);
3486 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]));
3487 }
3488 format(list, sizeof(list), "%s{F4D00B}<< Previous Page\n{F4D00B}>> Next Page", list);
3489 new head[32];
3490 format(head, sizeof(head), "Vehicle List (Page %d)", GetPVarInt(playerid, "xvKeysPage")+1);
3491 ShowPlayerDialog(playerid, XV_DIALOGID+17, DIALOG_STYLE_TABLIST_HEADERS, head, list, "Select", "Back");
3492 }
3493 SendClientMessage(playerid, 0xE74C3CFF, "There is no more vehicle! You are at the last page.");
3494 }
3495 cache_delete(vehs);
3496 }
3497 else
3498 {
3499 new tm[2][8];
3500 split(inputtext, tm, '\t');
3501 SetPVarInt(playerid, "adm_sl_id", strval(tm[0]));
3502 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");
3503 }
3504 } else cmd_amenu(playerid, "");
3505 }
3506
3507 if(dialogid == XV_DIALOGID+18)
3508 {
3509 if(response)
3510 {
3511 new xid = GetPVarInt(playerid, "adm_sl_id");
3512 if(xid == 0 || !Iter_Contains(xVehicles, xid)) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
3513 switch(listitem)
3514 {
3515 case 0: // araç bilgileri
3516 {
3517 new str[256], sahip[24];
3518 if(!strlen(xVehicle[xid][xv_Sahip])) format(sahip, sizeof(sahip), "-For Sale-");
3519 else format(sahip, sizeof(sahip), "%s", xVehicle[xid][xv_Sahip]);
3520 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"));
3521 ShowPlayerDialog(playerid, XV_DIALOGID+19, DIALOG_STYLE_MSGBOX, "Vehicle Info", str, "Back", "");
3522 }
3523 case 1: // aracý çek
3524 {
3525 GetPlayerPos(playerid, xVehicle[xid][xv_Pos][0], xVehicle[xid][xv_Pos][1], xVehicle[xid][xv_Pos][2]);
3526 GetPlayerFacingAngle(playerid, xVehicle[xid][xv_Pos][3]);
3527 xVehicle[xid][xv_Pos][0] += 1;
3528 xVehicle[xid][xv_Pos][1] += 1;
3529 if(xVehicle[xid][xv_Garajda])
3530 {
3531 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);
3532 xVeh[xVehicle[xid][xv_Veh]] = xid;
3533 SetVehicleNumberPlate(xVehicle[xid][xv_Veh], xVehicle[xid][xv_Plaka]);
3534 SetVehicleToRespawn(xVehicle[xid][xv_Veh]);
3535 xVehicle[xid][xv_Garajda] = 0;
3536 }
3537 else
3538 {
3539 SetVehiclePos(xVehicle[xid][xv_Veh], xVehicle[xid][xv_Pos][0], xVehicle[xid][xv_Pos][1], xVehicle[xid][xv_Pos][2]);
3540 SetVehicleZAngle(xVehicle[xid][xv_Veh], xVehicle[xid][xv_Pos][3]);
3541 }
3542 DeletePVar(playerid, "adm_sl_id");
3543 new str[128];
3544 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);
3545 SendClientMessage(playerid, -1, str);
3546 }
3547 case 2: // yenile
3548 {
3549 if(xVehicle[xid][xv_Garajda]) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}You can not respawn the vehicle in garage!");
3550 SetVehicleToRespawn(xVehicle[xid][xv_Veh]);
3551 SendClientMessage(playerid, -1, "{00BD00}[!] {00FF00}You have respawned the vehicle!");
3552 }
3553 case 3: // fiyatýný deðiþtir
3554 {
3555 new str[128];
3556 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]);
3557 ShowPlayerDialog(playerid, XV_DIALOGID+26, DIALOG_STYLE_INPUT, "Change the Price", str, "OK", "Back");
3558 }
3559 case 4: // araç sahibini sil
3560 {
3561 new str[256];
3562 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);
3563 ShowPlayerDialog(playerid, XV_DIALOGID+20, DIALOG_STYLE_MSGBOX, "Remove Vehicle Owner", str, "Confirm", "Back");
3564 }
3565 case 5: // aracý sil
3566 {
3567 new str[256];
3568 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);
3569 ShowPlayerDialog(playerid, XV_DIALOGID+21, DIALOG_STYLE_MSGBOX, "Remove Vehicle", str, "Confirm", "Back");
3570 }
3571 }
3572 }
3573 else
3574 {
3575 DeletePVar(playerid, "adm_sl_id");
3576 cmd_amenu(playerid, "");
3577 }
3578 }
3579
3580 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");
3581
3582 if(dialogid == XV_DIALOGID+20)
3583 {
3584 if(response)
3585 {
3586 new xid = GetPVarInt(playerid, "adm_sl_id");
3587 if(xid == 0 || !Iter_Contains(xVehicles, xid)) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
3588 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", "");
3589 format(xVehicle[xid][xv_Sahip], 24, "");
3590 foreach(new i : Player)
3591 {
3592 if(IsPlayerInVehicle(i, xVehicle[xid][xv_Veh]))
3593 {
3594 SendClientMessage(i, -1, "{FF0000}[!] {DCDC22}You have removed from the vehicle because of the admin has removed the owner of this vehicle.");
3595 RemovePlayerFromVehicle(i);
3596 }
3597 if(Iter_Contains(xVehicleKeys<i>, xid)) Iter_Remove(xVehicleKeys<i>, xid);
3598 }
3599 new str[150];
3600 mysql_format(mysqlB, str, sizeof(str), "DELETE FROM xVehicleKeys WHERE AracID=%d", xid);
3601 mysql_query(mysqlB, str);
3602 SavexVehicle(xid);
3603 format(str, sizeof(str), "{00FF00}Kendaraan ini dijual!\n{FFA500}Nama mobil: {FFFFFF}%s\n{FFA500}Plate mobil: {FFFFFF}%s\n{FFA500}Harga: {00FF00}$%d", GetVehicleNameFromModel(xVehicle[xid][xv_ModelID]), xVehicle[xid][xv_Plaka], xVehicle[xid][xv_Fiyat]);
3604 xVehicle[xid][xv_Text] = Create3DTextLabel(str, 0x008080FF, 0.0, 0.0, 0.0, 50.0, 0);
3605 Attach3DTextLabelToVehicle(xVehicle[xid][xv_Text], xVehicle[xid][xv_Veh], 0.0, 0.0, 1.0);
3606 DeletePVar(playerid, "adm_sl_id");
3607 format(str, sizeof(str), "{FFFB93}You have removed the owner of the vehicle ID: {ECB021}%d", xid);
3608 SendClientMessage(playerid, -1, str);
3609 } 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");
3610 }
3611
3612 if(dialogid == XV_DIALOGID+21)
3613 {
3614 if(response)
3615 {
3616 new xid = GetPVarInt(playerid, "adm_sl_id");
3617 if(xid == 0 || !Iter_Contains(xVehicles, xid)) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
3618 DestroyVehicle(xVehicle[xid][xv_Veh]);
3619 Iter_Remove(xVehicles, xid);
3620 DeletePVar(playerid, "adm_sl_id");
3621 foreach(new i : Player)
3622 {
3623 if(Iter_Contains(xVehicleKeys<i>, xid)) Iter_Remove(xVehicleKeys<i>, xid);
3624 }
3625 new query[128];
3626 mysql_format(mysqlB, query, sizeof(query), "DELETE FROM xVehicleKeys WHERE AracID=%d", xid);
3627 mysql_query(mysqlB, query);
3628 mysql_format(mysqlB, query, sizeof(query), "DELETE FROM xVehicle WHERE ID=%d", xid);
3629 mysql_query(mysqlB, query);
3630 format(query, sizeof(query), "{FFFB93}You have removed the vehicle ID:{ECB021}%d", xid);
3631 SendClientMessage(playerid, -1, query);
3632 } 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");
3633 }
3634
3635 if(dialogid == XV_DIALOGID+22)
3636 {
3637 if(response)
3638 {
3639 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");
3640 new veh;
3641 if(!isNumeric(inputtext)) veh = GetVehicleModelIDFromName(inputtext); else veh = strval(inputtext);
3642 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");
3643 SetPVarInt(playerid, "xv_ao_model", veh);
3644 new str[192];
3645 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"));
3646 ShowPlayerDialog(playerid, XV_DIALOGID+23, DIALOG_STYLE_INPUT, "Create Vehicle - Color", str, "Next", "Back");
3647 } else cmd_amenu(playerid, "");
3648 }
3649
3650 if(dialogid == XV_DIALOGID+23)
3651 {
3652 if(response)
3653 {
3654 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");
3655 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");
3656 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");
3657 SetPVarInt(playerid, "xv_ao_col1", strval(inputtext));
3658 new str[128];
3659 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"));
3660 ShowPlayerDialog(playerid, XV_DIALOGID+24, DIALOG_STYLE_INPUT, "Create Vehicle - Color", str, "Next", "Back");
3661 } 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");
3662 }
3663
3664 if(dialogid == XV_DIALOGID+24)
3665 {
3666 if(response)
3667 {
3668 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");
3669 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");
3670 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");
3671 SetPVarInt(playerid, "xv_ao_col2", strval(inputtext));
3672 new str[128];
3673 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"));
3674 ShowPlayerDialog(playerid, XV_DIALOGID+25, DIALOG_STYLE_INPUT, "Create Vehicle - Price", str, "Create", "Back");
3675 }
3676 else
3677 {
3678 DeletePVar(playerid, "xv_ao_col1");
3679 new str[192];
3680 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"));
3681 ShowPlayerDialog(playerid, XV_DIALOGID+23, DIALOG_STYLE_INPUT, "Create Vehicle - Color", str, "Next", "Back");
3682 }
3683 }
3684
3685 if(dialogid == XV_DIALOGID+25)
3686 {
3687 if(response)
3688 {
3689 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");
3690 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");
3691 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");
3692 new tmp_var[3], Float:ppos[4], veh, xid;
3693 tmp_var[0] = GetPVarInt(playerid, "xv_ao_model");
3694 tmp_var[1] = GetPVarInt(playerid, "xv_ao_col1");
3695 tmp_var[2] = GetPVarInt(playerid, "xv_ao_col2");
3696 GetPlayerPos(playerid, ppos[0], ppos[1], ppos[2]);
3697 GetPlayerFacingAngle(playerid, ppos[3]);
3698 veh = CreatexVehicle(tmp_var[0], "", strval(inputtext), ppos[0], ppos[1], ppos[2], ppos[3], tmp_var[1], tmp_var[2]);
3699 xid = xVeh[veh];
3700 PutPlayerInVehicle(playerid, veh, 0);
3701 new str[256];
3702 SendClientMessage(playerid, -1, "------------------------------------------------------------------------------------------------------------");
3703 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]);
3704 SendClientMessage(playerid, -1, str);
3705 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]);
3706 SendClientMessage(playerid, -1, str);
3707 SendClientMessage(playerid, -1, "{FFFB93}To change the location of the vehicle, get into vehicle, go wherever you want and type {ECEC13}/park");
3708 SendClientMessage(playerid, -1, "------------------------------------------------------------------------------------------------------------");
3709 DeletePVar(playerid, "xv_ao_model");
3710 DeletePVar(playerid, "xv_ao_col1");
3711 DeletePVar(playerid, "xv_ao_col2");
3712 }
3713 else
3714 {
3715 DeletePVar(playerid, "xv_ao_col2");
3716 new str[128];
3717 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"));
3718 ShowPlayerDialog(playerid, XV_DIALOGID+24, DIALOG_STYLE_INPUT, "Create Vehicle - Color", str, "Next", "Back");
3719 }
3720 }
3721
3722 if(dialogid == XV_DIALOGID+26)
3723 {
3724 if(response)
3725 {
3726 new xid = GetPVarInt(playerid, "adm_sl_id");
3727 if(xid == 0 || !Iter_Contains(xVehicles, xid)) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}Couldn't find the vehicle!");
3728 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");
3729 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");
3730 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");
3731 xVehicle[xid][xv_Fiyat] = strval(inputtext);
3732 new str[150];
3733 if(!strlen(xVehicle[xid][xv_Sahip]))
3734 {
3735 Delete3DTextLabel(xVehicle[xid][xv_Text]);
3736 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]);
3737 xVehicle[xid][xv_Text] = Create3DTextLabel(str, 0x008080FF, 0.0, 0.0, 0.0, 50.0, 0);
3738 Attach3DTextLabelToVehicle(xVehicle[xid][xv_Text], xVehicle[xid][xv_Veh], 0.0, 0.0, 1.0);
3739 }
3740 SavexVehicle(xid);
3741 format(str, sizeof(str), "{00BD00}[!] {00FF00}You have changed the price to {ECEC13}$%d!", xVehicle[xid][xv_Fiyat]);
3742 SendClientMessage(playerid, -1, str);
3743 }
3744 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");
3745 }
3746 return 1;
3747}
3748
3749public OnPlayerClickPlayer(playerid, clickedplayerid, source)
3750{
3751 return 1;
3752}
3753
3754public OnPlayerCommandPerformed( playerid, cmdtext[ ], success )
3755{
3756 if( success == 0 )
3757 return SendClientMessage(playerid, -1, "Unknown command, please check /help for the list of commands." );
3758 return 1;
3759}
3760forward SaveIn(filename[],text[]);
3761public SaveIn(filename[],text[]) //Credits to Luxirion - Recover from RomAdmin
3762{
3763 new File:file;
3764 new filepath[256];
3765 new string[256];
3766 new year, month, day;
3767 new hour, minute, second;
3768
3769 getdate(year, month, day);
3770 gettime(hour, minute, second);
3771 format(filepath, sizeof(filepath), "JCNRLogs/%s", filename);
3772 file = fopen(filepath, io_append);
3773 format(string, sizeof(string),"[%02d/%02d/%02d | %02d:%02d:%02d] %s\r\n", day, month, year, hour, minute, second, text);
3774 fwrite(file, string);
3775 fclose(file);
3776 return 1;
3777}
3778
3779forward KickPlayer(playerid);
3780public KickPlayer(playerid)
3781{
3782 return Kick(playerid);
3783}
3784
3785forward KickAll();
3786public KickAll()
3787{
3788 foreach(new i: Player)
3789 {
3790 if(!IsPlayerWAdmin(i))
3791 {
3792 Kick(i);
3793 }
3794 }
3795}
3796
3797forward OnDuty(playerid);
3798public OnDuty(playerid)
3799{
3800 Duting[playerid] = 1;
3801 SetPlayerHealth(playerid,9999999.0);
3802 DutyWeapon[playerid][0] = GivePlayerWeapon(playerid,24,99999);
3803 DutyWeapon[playerid][1] = GivePlayerWeapon(playerid,27,99999);
3804 DutyWeapon[playerid][2] = GivePlayerWeapon(playerid,32,99999);
3805 DutyWeapon[playerid][3] = GivePlayerWeapon(playerid,32,99999);
3806 DutyWeapon[playerid][4] = GivePlayerWeapon(playerid,34,99999);
3807 DutyWeapon[playerid][5] = GivePlayerWeapon(playerid,37,99999);
3808 DutyWeapon[playerid][6] = GivePlayerWeapon(playerid,38,99999);
3809 return 1;
3810}
3811
3812forward OffDuty(playerid);
3813public OffDuty(playerid)
3814{
3815 Duting[playerid] = 0;
3816 SetPlayerHealth(playerid,100);
3817 RemovePlayerWeapon(playerid,DutyWeapon[playerid][0]);
3818 RemovePlayerWeapon(playerid,DutyWeapon[playerid][1]);
3819 RemovePlayerWeapon(playerid,DutyWeapon[playerid][2]);
3820 RemovePlayerWeapon(playerid,DutyWeapon[playerid][3]);
3821 RemovePlayerWeapon(playerid,DutyWeapon[playerid][4]);
3822 RemovePlayerWeapon(playerid,DutyWeapon[playerid][5]);
3823 RemovePlayerWeapon(playerid,DutyWeapon[playerid][6]);
3824 return 1;
3825}
3826
3827public Count()
3828{
3829 if(!iscountactivated){KillTimer(CountTimer);}
3830 else
3831 {
3832 new string[4];
3833 format(string,sizeof(string),"%i",countamount);
3834 GameTextForAll(string,1000,3);
3835 countamount--;
3836 if(countamount == -1) {iscountactivated = 0, GameTextForAll("~g~~h~Go!",1000,3);}
3837 }
3838 return 1;
3839}
3840
3841public ReportedLoop()
3842{
3843 for (new i = 0; i < MAX_PLAYERS; i += 1)
3844 {
3845 if (reported[i] > 0) reported[i] -= 1;
3846 }
3847 return 1;
3848}
3849
3850stock GetName(playerid)
3851{
3852 new PlayerName[MAX_PLAYER_NAME];
3853 GetPlayerName(playerid,PlayerName,MAX_PLAYER_NAME);
3854 return PlayerName;
3855}
3856
3857stock CreateCarForAdmin(playerid,vehicleid,color1,color2)
3858{
3859 new SpawnedVehicle[MAX_PLAYERS];
3860 if(SpawnedVehicle[playerid] != 0)
3861 {
3862 DestroyVehicle(SpawnedVehicle[playerid]);
3863 }
3864 new Float:X, Float:Y, Float:Z, Float:Angle;
3865 GetPlayerPos(playerid, Float:X, Float:Y, Float:Z);
3866 GetPlayerFacingAngle(playerid, Float:Angle);
3867 SpawnedVehicle[playerid] = CreateVehicle(vehicleid, X, Y, Z + 2.0, Angle, color1, color2, 600);
3868 SetVehicleVirtualWorld(SpawnedVehicle[playerid], GetPlayerVirtualWorld(playerid));
3869 LinkVehicleToInterior(SpawnedVehicle[playerid], GetPlayerInterior(playerid));
3870 PutPlayerInVehicle(playerid, SpawnedVehicle[playerid], 0);
3871}
3872
3873stock AcceptReport(playerid, reportid)
3874{
3875 new
3876 reporter = -1,
3877 string[128];
3878 for (new i = 0; i < MAX_PLAYERS; i += 1)
3879 {
3880 if (strcmp(ReportInfo[reportid][Reporter], GetName(i), false) == 0)
3881 {
3882 reporter = i;
3883 break;
3884 }
3885 }
3886 if (reporter != -1)
3887 {
3888 SendClientMessage(reporter, COLOR_YELLOW, "An administrator has accepted your report and it is now currently being resolved.");
3889 format(string, sizeof(string), "You've accepted report #%d, reported by %s (ID: %d).", reportid, GetName(reporter), reporter);
3890 SendClientMessage(playerid, COLOR_YELLOW, string);
3891 SendClientMessage(playerid, COLOR_WHITE, "HINT: Use /closereport when you've resolved the report.");
3892 AcceptingAdminID[reporter] = playerid;
3893 PlayerThatReported[playerid] = reporter;
3894 ReportInfo[reportid][ReportAnswered] = 1;
3895 return 1;
3896 }
3897 else SendClientMessage(playerid, COLOR_GREY, "The reporter is currently offline.");
3898 return 1;
3899}
3900
3901stock DenyReport(playerid, reportid)
3902{
3903 new
3904 reporter = -1,
3905 string[128];
3906 for (new i = 0; i < MAX_PLAYERS; i += 1)
3907 {
3908 if (strcmp(ReportInfo[reportid][Reporter], GetName(i), false) == 0)
3909 {
3910 reporter = i;
3911 break;
3912 }
3913 }
3914 if (reporter != -1)
3915 {
3916 new weburl[128];
3917 GetServerVarAsString("weburl", weburl, sizeof(weburl));
3918
3919 SendClientMessage(reporter, COLOR_YELLOW, "An administrator has denied your report, therefore it has not been resolved.");
3920 format(string, sizeof(string), "If you think this is an issue, submit a complaint on our forums (%s).", weburl);
3921 SendClientMessage(reporter, COLOR_YELLOW, string);
3922 format(string, sizeof(string), "You've denied report #%d, reported by %s (ID: %d).", reportid, GetName(reporter), reporter);
3923 SendClientMessage(playerid, COLOR_YELLOW, string);
3924 AcceptingAdminID[reporter] = -1;
3925 PlayerThatReported[playerid] = -1;
3926
3927 strmid(ReportInfo[reportid][Reporter], "", 0, strlen(""), 255);
3928 strmid(ReportInfo[reportid][ReportString], "", 0, strlen(""), 255);
3929 ReportInfo[reportid][ReportAnswered] = 0;
3930 ReportInfo[reportid][Listitem][ReportInfo[reportid][Listitem]] = -1;
3931 ReportIDTaken[reportid] = 0;
3932 ReportCount -= 1;
3933 DeletePVar(playerid, "ReportID");
3934 ShuffleListitems();
3935 return 1;
3936 }
3937 else SendClientMessage(playerid, COLOR_GREY, "The reporter is currently offline.");
3938 return 1;
3939}
3940
3941stock ShuffleListitems()
3942{
3943 new l;
3944 for (new i = 0; i < MAX_REPORTS + 1; i += 1)
3945 {
3946 if (ReportIDTaken[i])
3947 {
3948 ReportInfo[i][Listitem][l] = l;
3949 l += 1;
3950 }
3951 }
3952 return 1;
3953}
3954
3955stock ListReports(playerid)
3956{
3957 new l;
3958 new s[149];
3959 new str[128];
3960 new string[MAX_REPORTS * 64];
3961 if (ReportCount != 0)
3962 {
3963 for (new i = 0; i < MAX_REPORTS + 1; i += 1)
3964 {
3965 strmid(s, ReportInfo[i][ReportString], 0, strlen(ReportInfo[i][ReportString]), 255);
3966 if (ReportIDTaken[i])
3967 {
3968 if (ReportInfo[i][ReportAnswered]) continue;
3969 format(str, sizeof(str), "Report #%d by %s: %s\n", i, ReportInfo[i][Reporter], s);
3970 strcat(string, str);
3971 ReportInfo[i][Listitem][l] = 1;
3972 l += 1;
3973 }
3974 }
3975 ShowPlayerDialog(playerid, DIALOG_HREPORT, DIALOG_STYLE_LIST, "Reports", string, "Select", "Back");
3976 }
3977 else
3978 {
3979 SendClientMessage(playerid, COLOR_GREY, "There are no reports to be listed.");
3980 ShowPlayerDialog(playerid, DIALOG_REPORTS, DIALOG_STYLE_LIST, "Reports", "List Reports\nDelete Reports", "Select", "Cancel");
3981 }
3982 return 1;
3983}
3984
3985stock AddReport(playerid, report[])
3986{
3987 if (IsPlayerConnected(playerid))
3988 {
3989 if (ReportCount >= MAX_REPORTS) return SendClientMessage(playerid, COLOR_GREY, "There are too many unresolved reports at the moment, try again later.");
3990 if (strlen(report) < 3) return SendClientMessage(playerid, COLOR_GREY, "Your report must be more than 2 characters in length.");
3991 new reportid = -1;
3992 new string[176];
3993 for (new i = 0; i < MAX_REPORTS + 1; i += 1)
3994 {
3995 if (!ReportIDTaken[i])
3996 {
3997 reportid = i;
3998 break;
3999 }
4000 }
4001 if (reportid != -1)
4002 {
4003 new weburl[128];
4004 GetServerVarAsString("weburl", weburl, sizeof(weburl));
4005
4006 format(string, sizeof(string), "Report from %s (ID: %d): %s", GetName(playerid), playerid, report);
4007 ReportBroadCast(YELLOW2, string);
4008 SendClientMessage(playerid, COLOR_YELLOW, "You've just submitted a report. Your report will be reviewed by any online administrators.");
4009 format(string, sizeof(string), "If your report is not resolved, you can always take it to our forums (%s)", weburl);
4010 SendClientMessage(playerid, COLOR_YELLOW, string);
4011 reported[playerid] = 10;
4012
4013 strmid(ReportInfo[reportid][Reporter], GetName(playerid), 0, strlen(GetName(playerid)), 255);
4014 strmid(ReportInfo[reportid][ReportString], report, 0, strlen(report), 255);
4015 ReportInfo[reportid][ReportAnswered] = 0;
4016 ReportIDTaken[reportid] = 1;
4017 ReportCount += 1;
4018 return 1;
4019 }
4020 else return SendClientMessage(playerid,COLOR_GREY, "Your report could not be submitted.");
4021 }
4022 return 0;
4023}
4024
4025stock StringBlank(string[])
4026{
4027 if (strlen(string) <= 0) return 1;
4028 return 0;
4029}
4030
4031stock ReportBroadCast(color, const string[])
4032{
4033 for (new i = 0; i < MAX_PLAYERS; i += 1)
4034 {
4035 if(pInfo[i][WazzAdmLevel] >= 1)
4036 {
4037 SendClientMessage(i, color, string);
4038 }
4039 }
4040 return 1;
4041}
4042
4043stock UsageMessage(playerid, msg[])
4044{
4045 new
4046 string[128];
4047
4048 format(string, sizeof(string), "{AFAFAF}USAGE:{FFFFFF} %s", msg);
4049 return SendClientMessage(playerid, COLOR_WHITE, string);
4050}
4051
4052stock IsPlayerWAdmin(playerid)
4053{
4054 if(pInfo[playerid][WazzAdmLevel] >= 1)
4055 return pInfo[playerid][WazzAdmLevel];
4056 else
4057 return 0;
4058}
4059
4060stock WazBan(playerid)
4061{
4062 new INI:File = INI_Open(UserPath(playerid));
4063 INI_WriteInt(File,"Banned",1);
4064 INI_Close(File);
4065 SendClientMessage(playerid,COLOR_RED,"You has been banned from this server.");
4066 Kick(playerid);
4067}
4068
4069stock INI_Get(filename[],key[])
4070{
4071 new File:F,string[128];
4072 new sname[24],sval[24];
4073 F = fopen(filename,io_read);
4074 if(!F) return sname;
4075 while(fread(F,string))
4076 {
4077 sscanf(string,"p<=>s[24]s[24]",sname,sval);
4078 if(!strcmp(sname,key))
4079 {
4080 sval[strlen(sval)-2] = 0;
4081 fclose(F);
4082 return sval;
4083 }
4084 }
4085 fclose(F);
4086 sname[0] = '\0';
4087 return sname;
4088}
4089
4090forward FreePlayer(playerid);
4091public FreePlayer(playerid)
4092{
4093 SendClientMessage(playerid,COLOR_RED,"You have been free! [REASON]: Run out of time!");
4094 SpawnPlayer(playerid);
4095 pInfo[playerid][Jailed] = 0;
4096 return 1;
4097}
4098
4099#if BOT_FEATURE == true
4100forward SendRandomMsgToAll();
4101public SendRandomMsgToAll()
4102{
4103 new string[128];
4104 switch(random(3))
4105 {
4106 case 0:
4107 {
4108 format(string,sizeof(string),""green"%s:"white" Hello i'm WazAdmin's Bot",BOT_NAME);
4109 SendClientMessageToAll(COLOR_WHITE,string);
4110 }
4111 case 1:
4112 {
4113 format(string,sizeof(string),""green"%s:"white" WazzUp say thank you to you for using WazAdmin system",BOT_NAME);
4114 SendClientMessageToAll(COLOR_WHITE,string);
4115 }
4116 case 2:
4117 {
4118 format(string,sizeof(string),""green"%s:"white" My Master is WazzUp",BOT_NAME);
4119 SendClientMessageToAll(COLOR_WHITE,string);
4120 }
4121 }
4122}
4123#endif
4124
4125xvMenuGoster(playerid)
4126{
4127 new str[256], tmp[8], xid;
4128 GetPVarString(playerid, "selected_veh_plate", tmp, 8);
4129 xid = GetVehiclexIDFromPlate(tmp);
4130 if(xid == 0) return 1;
4131 format(str, sizeof(str), "{FFA500}» {FFFFFF} Where Is My Car?\n%s\n{FFA500}» {FFFFFF} Auto Park System\n{FFA500}» {%s} Vehicle Keys\n{FFA500}» {%s} Sell the Vehicle\n{FFA500}» {CACACA} Vehicle Info",
4132 (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"));
4133 ShowPlayerDialog(playerid, XV_DIALOGID, DIALOG_STYLE_LIST, "Vehicle Menu", str, "Select", "Back");
4134 return 1;
4135}
4136
4137forward TeklifBitir(gonderen, alan);
4138public TeklifBitir(gonderen, alan)
4139{
4140 SetPVarInt(alan, "xv_teklif_gonderen", INVALID_PLAYER_ID);
4141 DeletePVar(alan, "xv_teklif_xid");
4142 DeletePVar(alan, "xv_teklif_fiyat");
4143 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.");
4144 return 1;
4145}
4146
4147CreatexVehicle(modelid, owner[], price, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, color1, color2)
4148{
4149 new id = Iter_Free(xVehicles);
4150
4151 xVehicle[id][xv_Veh] = CreateVehicle(modelid, spawn_x, spawn_y, spawn_z, z_angle, color1, color2, -1);
4152
4153 xVeh[xVehicle[id][xv_Veh]] = id;
4154 xVehicle[id][xv_ModelID] = modelid;
4155 xVehicle[id][xv_Renk][0] = color1;
4156 xVehicle[id][xv_Renk][1] = color2;
4157 xVehicle[id][xv_Paintjob] = -1;
4158 xVehicle[id][xv_Pos][0] = spawn_x;
4159 xVehicle[id][xv_Pos][1] = spawn_y;
4160 xVehicle[id][xv_Pos][2] = spawn_z;
4161 xVehicle[id][xv_Pos][3] = z_angle;
4162 format(xVehicle[id][xv_Sahip], 24, "%s", owner);
4163 xVehicle[id][xv_Fiyat] = price;
4164 plate_check:
4165 format(xVehicle[id][xv_Plaka], 8, "%s", CreatePlate());
4166 foreach(new i : xVehicles) if(!xStrcmp(xVehicle[id][xv_Plaka], xVehicle[i][xv_Plaka])) goto plate_check;
4167 SetVehicleNumberPlate(xVehicle[id][xv_Veh], xVehicle[id][xv_Plaka]);
4168 SetVehicleToRespawn(xVehicle[id][xv_Veh]);
4169 Iter_Add(xVehicles, id);
4170 new query[256];
4171 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')",
4172 id, owner, price, spawn_x, spawn_y, spawn_z, z_angle, modelid, color1, color2, xVehicle[id][xv_Plaka]);
4173 mysql_query(mysqlB, query);
4174
4175 if(!strlen(xVehicle[id][xv_Sahip]))
4176 {
4177 new str[150];
4178 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]);
4179 xVehicle[id][xv_Text] = Create3DTextLabel(str, 0x008080FF, 0.0, 0.0, 0.0, 50.0, 0);
4180 Attach3DTextLabelToVehicle(xVehicle[id][xv_Text], xVehicle[id][xv_Veh], 0.0, 0.0, 1.0);
4181 }
4182 return xVehicle[id][xv_Veh];
4183}
4184
4185SavexVehicle(xvehid)
4186{
4187 if(xvehid == 0) return 0;
4188 new query[512];
4189
4190 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",
4191 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],
4192 xVehicle[xvehid][xv_Parca][0],
4193 xVehicle[xvehid][xv_Parca][1],
4194 xVehicle[xvehid][xv_Parca][2],
4195 xVehicle[xvehid][xv_Parca][3],
4196 xVehicle[xvehid][xv_Parca][4],
4197 xVehicle[xvehid][xv_Parca][5],
4198 xVehicle[xvehid][xv_Parca][6],
4199 xVehicle[xvehid][xv_Parca][7],
4200 xVehicle[xvehid][xv_Parca][8],
4201 xVehicle[xvehid][xv_Parca][9],
4202 xVehicle[xvehid][xv_Parca][10],
4203 xVehicle[xvehid][xv_Parca][11],
4204 xVehicle[xvehid][xv_Parca][12],
4205 xVehicle[xvehid][xv_Parca][13],
4206 xvehid);
4207 mysql_query(mysqlB, query);
4208 return 1;
4209}
4210
4211forward LoadxVehicles();
4212public LoadxVehicles()
4213{
4214 new rows = cache_num_rows();
4215 new id, loaded;
4216 if(rows)
4217 {
4218 while(loaded < rows)
4219 {
4220 cache_get_value_name_int(loaded, "ID", id);
4221 cache_get_value_name(loaded, "Sahip", xVehicle[id][xv_Sahip], MAX_PLAYER_NAME);
4222 cache_get_value_name_int(loaded, "Fiyat", xVehicle[id][xv_Fiyat]);
4223 cache_get_value_name_float(loaded, "X", xVehicle[id][xv_Pos][0]);
4224 cache_get_value_name_float(loaded, "Y", xVehicle[id][xv_Pos][1]);
4225 cache_get_value_name_float(loaded, "Z", xVehicle[id][xv_Pos][2]);
4226 cache_get_value_name_float(loaded, "A", xVehicle[id][xv_Pos][3]);
4227 cache_get_value_name_int(loaded, "HizliPark", xVehicle[id][xv_HizliPark]);
4228 cache_get_value_name_int(loaded, "Model", xVehicle[id][xv_ModelID]);
4229 cache_get_value_name_int(loaded, "Renk1", xVehicle[id][xv_Renk][0]);
4230 cache_get_value_name_int(loaded, "Renk2", xVehicle[id][xv_Renk][1]);
4231 cache_get_value_name(loaded, "Plaka", xVehicle[id][xv_Plaka], 8);
4232 cache_get_value_name_int(loaded, "Garajda", xVehicle[id][xv_Garajda]);
4233 cache_get_value_name_int(loaded, "PJ", xVehicle[id][xv_Paintjob]);
4234 cache_get_value_name_int(loaded, "Parca1", xVehicle[id][xv_Parca][0]);
4235 cache_get_value_name_int(loaded, "Parca2", xVehicle[id][xv_Parca][1]);
4236 cache_get_value_name_int(loaded, "Parca3", xVehicle[id][xv_Parca][2]);
4237 cache_get_value_name_int(loaded, "Parca4", xVehicle[id][xv_Parca][3]);
4238 cache_get_value_name_int(loaded, "Parca5", xVehicle[id][xv_Parca][4]);
4239 cache_get_value_name_int(loaded, "Parca6", xVehicle[id][xv_Parca][5]);
4240 cache_get_value_name_int(loaded, "Parca7", xVehicle[id][xv_Parca][6]);
4241 cache_get_value_name_int(loaded, "Parca8", xVehicle[id][xv_Parca][7]);
4242 cache_get_value_name_int(loaded, "Parca9", xVehicle[id][xv_Parca][8]);
4243 cache_get_value_name_int(loaded, "Parca10", xVehicle[id][xv_Parca][9]);
4244 cache_get_value_name_int(loaded, "Parca11", xVehicle[id][xv_Parca][10]);
4245 cache_get_value_name_int(loaded, "Parca12", xVehicle[id][xv_Parca][11]);
4246 cache_get_value_name_int(loaded, "Parca13", xVehicle[id][xv_Parca][12]);
4247 cache_get_value_name_int(loaded, "Parca14", xVehicle[id][xv_Parca][13]);
4248
4249 if(!xVehicle[id][xv_Garajda])
4250 {
4251 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);
4252 xVeh[xVehicle[id][xv_Veh]] = id;
4253 SetVehicleNumberPlate(xVehicle[id][xv_Veh], xVehicle[id][xv_Plaka]);
4254 SetVehicleToRespawn(xVehicle[id][xv_Veh]);
4255 }
4256 Iter_Add(xVehicles, id);
4257 loaded++;
4258
4259 if(!strlen(xVehicle[id][xv_Sahip]))
4260 {
4261 new str[150];
4262 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]);
4263 xVehicle[id][xv_Text] = Create3DTextLabel(str, 0x008080FF, 0.0, 0.0, 0.0, 50.0, 0);
4264 Attach3DTextLabelToVehicle(xVehicle[id][xv_Text], xVehicle[id][xv_Veh], 0.0, 0.0, 1.0);
4265 }
4266 }
4267 }
4268 printf("[xVehicle] %d vehicle loaded.", loaded);
4269 return 1;
4270}
4271
4272stock LoadVehicleMod(xid)
4273{
4274 for(new c; c<14; c++) AddVehicleComponent(xVehicle[xid][xv_Veh], xVehicle[xid][xv_Parca][c]);
4275 ChangeVehiclePaintjob(xVehicle[xid][xv_Veh], xVehicle[xid][xv_Paintjob]);
4276 return 1;
4277}
4278
4279stock LoadxVehicleKeys(playerid)
4280{
4281 Iter_Clear(xVehicleKeys<playerid>);
4282
4283 new query[72];
4284 mysql_format(mysqlB, query, sizeof(query), "SELECT * FROM xVehicleKeys WHERE Isim='%e'", Isim(playerid));
4285 mysql_tquery(mysqlB, query, "LoadCarKeys", "i", playerid);
4286 return 1;
4287}
4288
4289
4290forward LoadCarKeys(playerid);
4291public LoadCarKeys(playerid)
4292{
4293 if(!IsPlayerConnected(playerid)) return 1;
4294 new rows = cache_num_rows();
4295 if(rows)
4296 {
4297 new loaded, vehid;
4298 while(loaded < rows)
4299 {
4300 cache_get_value_name_int(loaded, "AracID", vehid);
4301 Iter_Add(xVehicleKeys<playerid>, vehid);
4302 loaded++;
4303 }
4304 }
4305
4306 return 1;
4307}
4308
4309stock GetVehiclexIDFromPlate(plate[])
4310{
4311 foreach(new i : xVehicles) if(!xStrcmp(plate, xVehicle[i][xv_Plaka])) return i;
4312 return 0;
4313}
4314
4315stock CreatePlate() // Owner: 'KoczkaHUN'
4316{
4317 const len = 7, hyphenpos = 4;
4318 new plate[len+1];
4319 for (new i = 0; i < len; i++)
4320 {
4321 if (i + 1 == hyphenpos)
4322 {
4323 plate[i] = '-';
4324 continue;
4325 }
4326 if (random(2)) plate[i] = 'A' + random(26);
4327 else plate[i] = '0' + random(10);
4328 }
4329 return plate;
4330}
4331
4332stock IsVehicleFlipped(vehicleid)
4333{
4334 new Float:Quat[2];
4335 GetVehicleRotationQuat(vehicleid, Quat[0], Quat[1], Quat[0], Quat[0]);
4336 return (Quat[1] >= 0.60 || Quat[1] <= -0.60);
4337}
4338
4339stock GetPlayerxVehicleCount(playerid)
4340{
4341 new count;
4342 foreach(new i : xVehicles)
4343 {
4344 if(!xStrcmp(xVehicle[i][xv_Sahip], Isim(playerid))) count++;
4345 }
4346 return count;
4347}
4348
4349stock GetPlayerInGarageVehicleCount(playerid)
4350{
4351 new count;
4352 foreach(new i : xVehicles)
4353 {
4354 if(!xStrcmp(xVehicle[i][xv_Sahip], Isim(playerid)) && xVehicle[i][xv_Garajda]) count++;
4355 }
4356 return count;
4357}
4358
4359stock GetVehicleNameFromModel(modelid)
4360{
4361 new string[64];
4362 format(string,sizeof(string),"%s",VehicleNames[modelid - 400]);
4363 return string;
4364}
4365
4366stock GetVehicleModelIDFromName(vname[])
4367{
4368 for(new i = 0; i < 211; i++)
4369 {
4370 if ( strfind(VehicleNames[i], vname, true) != -1 )
4371 return i + 400;
4372 }
4373 return -1;
4374}
4375
4376stock GetPlayerIDFromName(name[])
4377{
4378 foreach(new i : Player) if(!xStrcmp(Isim(i), name)) return i;
4379 return INVALID_PLAYER_ID;
4380}
4381
4382stock xStrcmp(str1[], str2[])
4383{
4384 if(strlen(str1) == strlen(str2) && strcmp(str1, str2) == 0) return 0;
4385 return 1;
4386}
4387
4388stock split(const src[], dest[][], const delimiter) // From: wiki.samp [Owner: Kaliber|Kaliber]
4389{
4390 new n_pos,num,old,str[1];
4391 str[0] = delimiter;
4392 while(n_pos != -1)
4393 {
4394 n_pos = strfind(src,str,false,n_pos+1);
4395 strmid(dest[num++], src, (!num)?0:old+1,(n_pos==-1)?strlen(src):n_pos,256);
4396 old=n_pos;
4397 }
4398 return 1;
4399}
4400
4401stock Isim(playerid)
4402{
4403 new ism[24];
4404 GetPlayerName(playerid, ism, 24);
4405 return ism;
4406}
4407
4408stock isNumeric(const string[]) {
4409 new length=strlen(string);
4410 if (length==0) return false;
4411 for (new i = 0; i < length; i++) {
4412 if (
4413 (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+') // Not a number,'+' or '-'
4414 || (string[i]=='-' && i!=0) // A '-' but not at first.
4415 || (string[i]=='+' && i!=0) // A '+' but not at first.
4416 ) return false;
4417 }
4418 if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
4419 return true;
4420}
4421
4422stock GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
4423{
4424 // Created by Y_Less
4425
4426 new Float:a;
4427
4428 GetPlayerPos(playerid, x, y, a);
4429 GetPlayerFacingAngle(playerid, a);
4430
4431 if (GetPlayerVehicleID(playerid)) {
4432 GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
4433 }
4434
4435 x += (distance * floatsin(-a, degrees));
4436 y += (distance * floatcos(-a, degrees));
4437}