Advertisement
Guest User

Source J-Admin

a guest
Oct 26th, 2012
467
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 73.24 KB | None | 0 0
  1. /*
  2.  
  3. j_admin system by Jarnu!
  4.  
  5. Features:
  6.  
  7. -Over 50 commands
  8. -MySQL based saving system
  9. -Great register system
  10. -Advanced admin commands
  11. -Player commands available too!
  12. -Anti-High ping
  13. -Anti-AFK system
  14.  
  15. Don't be selfish and don't remove credits!
  16.  
  17. */
  18.  
  19. #include <a_samp>
  20. #include <zcmd> //Credits to Zeex
  21. #include <a_mysql> //Credits to BlueG
  22. #include <sscanf2> //Credits to Y_Less
  23. #include <SII> //Credits to the author
  24.  
  25. //===============MySQL DB Connection information================================
  26. #define MYSQL_HOST "127.0.0.1"
  27. #define MYSQL_USER "root"
  28. #define MYSQL_PASS ""
  29. #define MYSQL_DB "sa-mp"
  30. //==============================================================================
  31.  
  32. //------- Config Editable----------
  33.  
  34. #define MAX_WARNS 5 // Maximum warnings
  35. #define MAX_AFK_TIME 120000 //Maximum away time limit (in mili-seconds) 1 second = 1000 mili-seconds
  36. #define MSG_TIME_LIMIT 1000 //Counted in miliseconds-------
  37. //----------Dialog ID-----------------
  38. #define L_DIALOG 554 //Login dialog id
  39. #define R_DIALOG 555 //Register dialog id
  40. //----------------------------------
  41. //----Credits------
  42. /*
  43.  
  44. All of the credits goes to JARNU for making script
  45. Y_Less for sscanf
  46. BlueG for MySQL (FTW!)
  47.  
  48. */
  49. #define WEBSITE "Your website here" // Edit it to change your website
  50. //----------------
  51. #pragma tabsize 0 //Removes Loose indentation warning!
  52. //=========================Register system stocks, enums ,variables=============
  53. //----Enumerators------
  54. enum sInfo
  55. {
  56. DCHAT,
  57. Ping,
  58. Spam,
  59. AFK,
  60. AllowedPing,
  61. MaxLevel
  62. };
  63. enum pData
  64. {
  65. pAdmin,
  66. pHelper,
  67. pJailed,
  68. pJailTime,
  69. pMuted,
  70. pMuteTime,
  71. pBanned,
  72. pWarns,
  73. pKills,
  74. pScores,
  75. pSpamTime,
  76. pPingTime,
  77. pPingCount,
  78. pMoney,
  79. pLogged,
  80. Paused,
  81. AdminDuty,
  82. pDeaths
  83. };
  84. //-------Variable------
  85. new PlayerInfo[MAX_PLAYERS][pData];
  86. new SInfo[sInfo];
  87. new HasSpawnedCar[MAX_PLAYERS];
  88. new JailTimer[MAX_PLAYERS];
  89. new DND[MAX_PLAYERS];
  90. new Spectating[MAX_PLAYERS];
  91. new SpecTime[MAX_PLAYERS];
  92. new Float:pHealth;
  93. new PauseKickTimer[MAX_PLAYERS];
  94. new unmute[MAX_PLAYERS];
  95. new PingTimer[MAX_PLAYERS];
  96. //==============================================================================
  97. //----Colors--------
  98. #define cred "{E10000}"
  99. #define corange "{FF7E19}"
  100. #define cyellow "{FF9E00}"
  101. #define cblue "{0087FF}"
  102. #define cwhite "{FFFFFF}"
  103. #define cgreen "{00FF28}"
  104. #define cgrey "{969696}"
  105. //------------------------------------------------------------------------------
  106. #define GREEN 0x15FF00AA
  107. #define RED 0xFF0000FF
  108. #define BLUE 0x375FFFFF
  109. #define WHITE 0xFFFFFFFF
  110. #define YELLOW 0xF2FF00AA
  111. #define GREY 0xAAAAAAAA
  112. #define LIGHTBLUE 0x515BC7AA
  113. //------------------------------------------------------------------------------
  114. //-------Change me!!--------------------
  115. #define SERVERNAME "My Server" //Change this to change the server name for login dialog!
  116. //--------Extra stocks----------------------------------------------------------
  117. //------------ [ Valid Weapon ] ---------
  118. stock IsValidWeapon(weaponid)
  119. {
  120. if (weaponid > 0 && weaponid < 19 || weaponid > 21 && weaponid < 47 || weaponid != 38 || weaponid != 44 || weaponid != 45 || weaponid != 36) return 1;
  121. return 0;
  122. }
  123. //------------- [ Start Spectate ] ------------------
  124. stock Spectate(playerid, player1)
  125. {
  126. new world = GetPlayerVirtualWorld(player1), interior = GetPlayerInterior(player1),invehicle = IsPlayerInAnyVehicle(player1), Float:x, Float:y, Float:z;
  127. GetPlayerPos(player1, x, y, z);
  128. TogglePlayerSpectating(playerid, true);
  129. SetPlayerPos(playerid, x, y, z);
  130. SetPlayerVirtualWorld(playerid, world);
  131. SetPlayerInterior(playerid, interior);
  132. if(invehicle == 1)
  133. {
  134. PlayerSpectateVehicle(playerid, GetPlayerVehicleID(player1));
  135. Spectating[playerid] = 1;
  136. }
  137. else
  138. {
  139. PlayerSpectatePlayer(playerid, player1);
  140. Spectating[playerid] = 1;
  141. }
  142. new str[150], name[MAX_PLAYER_NAME], Float:health, Float:armour;
  143. GetPlayerHealth(playerid, health);
  144. GetPlayerArmour(playerid, armour);
  145. GetPlayerName(player1, name, MAX_PLAYER_NAME);
  146. format(str, sizeof(str),"~n~~n~~n~~n~~n~~n~~n~~n~~g~ID:%d ~y~Name:%s~n~~b~Health: %0.1f ~g~Armour:%0.1f~n~~r~Money:$%d", player1, name, health, armour, GetPlayerMoney(playerid));
  147. GameTextForPlayer(playerid, str, 250000, 3);
  148. return 1;
  149. }
  150. stock StopSpectate(playerid)
  151. {
  152. Spectating[playerid] = 0;
  153. TogglePlayerSpectating(playerid, false);
  154. SpawnPlayer(playerid);
  155. return 1;
  156. }
  157. //==============================================================================
  158. stock MySQL_BanCheck(playerid)
  159. {
  160. new query[200], admin[50], pname[50], IP[16], string1[100];
  161. GetPlayerIp(playerid, IP, 16);
  162. format(query, sizeof(query),"SELECT * FROM `bandata` WHERE(`player`='%s' OR `IP`='%s') AND `banned`=1 LIMIT 1", escpname(playerid), IP);
  163. mysql_query(query);
  164. mysql_store_result();
  165. if(mysql_num_rows() != 0)
  166. {
  167. while(mysql_fetch_row(query))
  168. {
  169. mysql_fetch_field_row(admin, "admin");
  170. mysql_fetch_field_row(pname, "player");
  171. mysql_fetch_field_row(string1, "reason");
  172. }
  173. new string[50], str[50], str1[100];
  174. format(string, sizeof(string),"Admin: {FFFFFF}%s", admin);
  175. format(str, sizeof(str),"Player: {FFFFFF}%s", pname);
  176. format(str1, sizeof(str1),"Reason: {FFFFFF}%s", string1);
  177. SendClientMessage(playerid, RED,"You are banned from this server!");
  178. SendClientMessage(playerid, RED,"___________________");
  179. SendClientMessage(playerid, RED, str);
  180. SendClientMessage(playerid, RED, string);
  181. SendClientMessage(playerid, RED, str1);
  182. SendClientMessage(playerid, RED,"___________________");
  183. SendClientMessage(playerid, RED, "If you think you this is a mistake please visit our website");
  184. SendClientMessage(playerid, RED, WEBSITE); //Change ME!
  185. Kick(playerid);
  186. }
  187. mysql_free_result();
  188. return 1;
  189. }
  190. //===================Saving and login stocks====================================
  191. stock MySQL_Login(playerid)
  192. {
  193. new query[300], pname[24], savingstring[20];
  194. GetPlayerName(playerid, pname, 24);
  195. format(query, sizeof(query), "SELECT * FROM playerdata WHERE user = '%s'", pname);
  196. mysql_query(query);
  197. mysql_store_result();
  198. while(mysql_fetch_row_format(query,"|"))
  199. {
  200. mysql_fetch_field_row(savingstring, "scores"); SetPlayerScore(playerid, strval(savingstring));
  201. mysql_fetch_field_row(savingstring, "money"); GivePlayerMoney(playerid, strval(savingstring));
  202. mysql_fetch_field_row(savingstring, "adminlevel"); PlayerInfo[playerid][pAdmin] = strval(savingstring);
  203. mysql_fetch_field_row(savingstring, "helperlevel"); PlayerInfo[playerid][pHelper] = strval(savingstring);
  204. mysql_fetch_field_row(savingstring, "kills"); PlayerInfo[playerid][pKills] = strval(savingstring);
  205. mysql_fetch_field_row(savingstring, "deaths"); PlayerInfo[playerid][pDeaths] = strval(savingstring);
  206. }
  207. mysql_free_result();
  208. new string[400];
  209. PlayerInfo[playerid][pLogged] = 1;
  210. format(string, sizeof(string),""cwhite"Scores: "corange"%d\n\n"cwhite"Money: "cyellow"$%d\n\n"cwhite"Kills: "cred"%d\n\n"cwhite"Deaths: "cred"%d\n\n"cwhite"Level: "cblue"%d\n\n"cwhite"Helper: "corange"%d\n\n"cwhite"Welcome to "cred"%s", GetPlayerScore(playerid), GetPlayerMoney(playerid), PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][pHelper], SERVERNAME);
  211. ShowPlayerDialog(playerid, 1111, DIALOG_STYLE_MSGBOX,""cgreen"Logged in", string,"Close","");
  212. return 1;
  213. }
  214. stock MySQL_Save(playerid)
  215. {
  216. if(PlayerInfo[playerid][pLogged] == 1)
  217. {
  218. new query[200], scores = GetPlayerScore(playerid), money = GetPlayerMoney(playerid), level = PlayerInfo[playerid][pAdmin], helper = PlayerInfo[playerid][pHelper], kills = PlayerInfo[playerid][pKills], deaths = PlayerInfo[playerid][pDeaths];
  219. format(query, sizeof(query),"UPDATE `playerdata` SET scores=%d, kills=%d ,deaths=%d ,money=%d ,adminlevel=%d ,helperlevel=%d WHERE user='%s'",scores, kills, deaths, money, level, helper, PlayerName(playerid));
  220. mysql_query(query);
  221. }
  222. return 1;
  223. }
  224. //==============================================================================
  225. //-----------admin stocks-------------------------
  226. stock MessageToAdmins(color, const string[])
  227. {
  228. for(new i = 0; i < MAX_PLAYERS; i++)
  229. {
  230. if(IsPlayerConnected(i))
  231. {
  232. if(PlayerInfo[i][pAdmin] >= 1)
  233. {
  234. SendClientMessage(i, color, string);
  235. }
  236. }
  237. }
  238. return 1;
  239. }
  240. stock MessageToHelpers(color, const string[])
  241. {
  242. for(new i = 0; i < MAX_PLAYERS; i++)
  243. {
  244. if(IsPlayerConnected(i))
  245. {
  246. if(PlayerInfo[i][pAdmin] >= 1 || PlayerInfo[i][pHelper] == 1)
  247. {
  248. SendClientMessage(i, color, string);
  249. }
  250. }
  251. }
  252. return 1;
  253. }
  254. stock TargetCMDMessage(playerid, target, command[])
  255. {
  256. new name[MAX_PLAYER_NAME], name1[MAX_PLAYER_NAME];
  257. GetPlayerName(target, name, sizeof(name));
  258. GetPlayerName(playerid, name1, sizeof(name1));
  259. new string[128];
  260. format(string, sizeof(string),"[ADM.CMD] Administrator %s[%i] has used %s on %s[%i]", name1, playerid, command, name, target);
  261. return MessageToAdmins(BLUE, string);
  262. }
  263. stock CMDMessage(playerid, command[])
  264. {
  265. new name1[MAX_PLAYER_NAME];
  266. GetPlayerName(playerid, name1, sizeof(name1));
  267. new string[128];
  268. format(string, sizeof(string),"[ADM.CMD] Administrator %s[%i] has used %s", name1, playerid, command);
  269. return MessageToHelpers(BLUE, string);
  270. }
  271. stock escpname(playerid)
  272. {
  273. new escname[24], Pname[24];
  274. GetPlayerName(playerid, Pname, 24);
  275. mysql_real_escape_string(Pname, escname);
  276. return escname;
  277. }
  278. stock PlayerName(playerid)
  279. {
  280. new name[MAX_PLAYER_NAME];
  281. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  282. return name;
  283. }
  284. stock CreateConfig()
  285. {
  286. new file[100];
  287. format(file, sizeof(file),"JADMIN/config.cfg");
  288. if(!fexist(file))
  289. {
  290. INI_Open(file);
  291. INI_WriteInt("AntiHighPing", 0);
  292. INI_WriteInt("AntiAFK", 0);
  293. INI_WriteInt("ChatDisabled", 0);
  294. INI_WriteInt("AntiSpam", 0);
  295. INI_WriteInt("MaxLevel", 7);
  296. INI_Save();
  297. INI_Close();
  298. }
  299. else
  300. {
  301. INI_Open(file);
  302. SInfo[DCHAT] = INI_ReadInt("ChatDisabled");
  303. SInfo[Ping] = INI_ReadInt("AntiHighPing");
  304. SInfo[AFK] = INI_ReadInt("AntiAFK");
  305. SInfo[MaxLevel] = INI_ReadInt("MaxLevel");
  306. SInfo[Spam] = INI_ReadInt("AntiSpam");
  307. INI_Close();
  308. print(" ");
  309. print(" -------------[ J_Admin configuration ] ---------");
  310. printf(" ChatDisabled: %d | AntiHighPing: %d | AntiAFK: %d ", SInfo[DCHAT], SInfo[Ping], SInfo[AFK]);
  311. printf(" MaxAdminLevel: %d | AntiSpam: %d", SInfo[MaxLevel], SInfo[Spam]);
  312. print(" ");
  313. }
  314. return 1;
  315. }
  316. stock UpdateConfig()
  317. {
  318. new file[100];
  319. format(file, sizeof(file),"JADMIN/config.cfg");
  320. INI_Open(file);
  321. INI_WriteInt("AntiHighPing", SInfo[Ping]);
  322. INI_WriteInt("AntiAFK", SInfo[AFK]);
  323. INI_WriteInt("ChatDisabled", SInfo[DCHAT]);
  324. INI_WriteInt("MaxLevel", SInfo[MaxLevel]);
  325. INI_WriteInt("AntiSpam", SInfo[Spam]);
  326. INI_Save();
  327. INI_Close();
  328. return 1;
  329. }
  330. //------------------------------------------------------------------------------
  331. public OnFilterScriptInit()
  332. {
  333. mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DB, MYSQL_PASS);
  334. mysql_query("CREATE TABLE IF NOT EXISTS playerdata(user VARCHAR(24), password VARCHAR(40), IP VARCHAR(16), money INT(20), scores INT(30), adminlevel INT(10), helperlevel INT(10), kills INT(20), deaths INT(20))");
  335. mysql_query("CREATE TABLE IF NOT EXISTS bandata(admin VARCHAR(20), player VARCHAR(20), reason VARCHAR(50), IP VARCHAR(16), banned INT(10))");
  336. mysql_debug();
  337. CreateConfig();
  338. return 1;
  339. }
  340.  
  341. public OnFilterScriptExit()
  342. {
  343. print("\n--------------------------------------");
  344. print("J_ADMIN unloaded by JARNU version BETA");
  345. print("--------------------------------------\n");
  346. UpdateConfig();
  347. return 1;
  348. }
  349.  
  350. public OnPlayerConnect(playerid)
  351. {
  352. //--------------------------------
  353. PlayerInfo[playerid][pAdmin] = 0;
  354. PlayerInfo[playerid][pHelper] = 0;
  355. PlayerInfo[playerid][pJailed] = 0;
  356. PlayerInfo[playerid][pKills] = 0;
  357. PlayerInfo[playerid][pDeaths] = 0;
  358. PlayerInfo[playerid][pScores] = 0;
  359. PlayerInfo[playerid][pMoney] = 0;
  360. PlayerInfo[playerid][AdminDuty] = 0;
  361. PlayerInfo[playerid][pWarns] = 0;
  362. PlayerInfo[playerid][pSpamTime] = 0;
  363. PlayerInfo[playerid][pPingTime] = 0;
  364. PlayerInfo[playerid][pPingCount] = 0;
  365. PlayerInfo[playerid][Paused] = 0;
  366. HasSpawnedCar[playerid] = 0;
  367. DND[playerid] = 0;
  368. Spectating[playerid] = 0;
  369. //--------------------------------
  370. MySQL_BanCheck(playerid);
  371. //--------------------------------
  372. PingTimer[playerid] = SetTimerEx("PingChecker", 1000, true,"d", playerid);
  373. //--------Account registration----
  374. new query[200];
  375. format(query, sizeof(query),"SELECT IP FROM `playerdata` WHERE user = '%s' LIMIT 1", escpname(playerid));
  376. mysql_query(query);
  377. mysql_store_result();
  378. new rows = mysql_num_rows();
  379. if(!rows)
  380. {
  381. ShowPlayerDialog(playerid, R_DIALOG, DIALOG_STYLE_PASSWORD,""cgreen"Register",""corange"Your account is "cred"not "corange"registered\n"cgreen"Please type your password to register","Register","Quit");
  382. }
  383. if(rows == 1)
  384. {
  385. ShowPlayerDialog(playerid, L_DIALOG, DIALOG_STYLE_PASSWORD,""cgreen"Login",""corange"Your account is already registered\n"cgreen"Please type your password to login","Login","Quit");
  386. }
  387. mysql_free_result();
  388. //---------------------------------
  389. return 1;
  390. }
  391. public OnPlayerSpawn(playerid)
  392. {
  393. if(PlayerInfo[playerid][pLogged] == 1 && SInfo[AFK] == 1)
  394. {
  395. /*
  396. Do not edit the following timer's time till you know what you are doing!
  397. */
  398. SetTimer("IsPaused", MAX_AFK_TIME, true); //If the player paused for more than a minute!
  399. }
  400. if(PlayerInfo[playerid][AdminDuty] == 1)
  401. {
  402. SetPlayerHealth(playerid, 99999.0);
  403. GivePlayerWeapon(playerid, 38, 20000);
  404. SetPlayerSkin(playerid, 217);
  405. SetPlayerColor(playerid, 0xFD01FDAA);
  406. }
  407. return 1;
  408. }
  409. public OnPlayerDisconnect(playerid, reason)
  410. {
  411. MySQL_Save(playerid); //-----------------To Save--------------------------//
  412. return 1;
  413. }
  414. public OnPlayerDeath(playerid, killerid, reason)
  415. {
  416. PlayerInfo[playerid][pDeaths] ++;
  417. PlayerInfo[killerid][pKills] ++;
  418. MySQL_Save(playerid); //-----------------To Save--------------------------//
  419. SendClientMessage(playerid, 0xAAAAAAAA,"--------------");
  420. SendClientMessage(playerid, GREEN,"Stats saved");
  421. SendClientMessage(playerid, 0xAAAAAAAA,"---------------");
  422. return 1;
  423. }
  424. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  425. {
  426. //-------REGISTER SYSTEM------------------
  427. if(dialogid == R_DIALOG)
  428. {
  429. if(!response) return Kick(playerid);
  430. if(!strlen(inputtext) || strlen(inputtext) > 100)
  431. {
  432. SendClientMessage(playerid, RED,"[JADMIN]: Password lenght must be greater than 1 and lesser than 100 words!");
  433. ShowPlayerDialog(playerid, R_DIALOG, DIALOG_STYLE_PASSWORD,""cgreen"Register",""corange"Your account is "cred"not "corange"registered\n"cgreen"Please type your password to register","Register","");
  434. }
  435. else if(strlen(inputtext) > 0 && strlen(inputtext) < 100)
  436. {
  437. new escapepass[100];
  438. mysql_real_escape_string(inputtext, escapepass);
  439. new query[200], IP[16];
  440. GetPlayerIp(playerid, IP, 16);
  441. format(query, sizeof(query),"INSERT INTO playerdata(user, password, IP, money, scores, adminlevel, helperlevel, kills, deaths) VALUES('%s', SHA1('%s'), '%s', 0, 0, 0, 0, 0, 0)", escpname(playerid), escapepass, IP);
  442. mysql_query(query);
  443. PlayerInfo[playerid][pLogged] = 1;
  444. SendClientMessage(playerid, GREEN,"[ACCOUNT]: You have been successfully registered!");
  445. SendClientMessage(playerid, -1,"Generating your password...");
  446. new string[100];
  447. format(string, sizeof(string),"Your password is: "cgreen"%s", inputtext);
  448. SendClientMessage(playerid, RED, string);
  449. }
  450. }
  451. if(dialogid == L_DIALOG)
  452. {
  453. if(!response) return Kick(playerid);
  454. if(response)
  455. {
  456. new query[200], pname[24], escapepass[100];
  457. GetPlayerName(playerid, pname, 24);
  458. mysql_real_escape_string(inputtext, escapepass);
  459. format(query, sizeof(query), "SELECT `user` FROM playerdata WHERE user = '%s' AND password = SHA1('%s')", pname, escapepass);
  460. mysql_query(query);
  461. mysql_store_result();
  462. new numrows = mysql_num_rows();
  463. if(numrows == 1) MySQL_Login(playerid);
  464. if(!numrows)
  465. {
  466. SendClientMessage(playerid, RED,"[JADMIN]: Incorrect password!");
  467. ShowPlayerDialog(playerid, L_DIALOG, DIALOG_STYLE_PASSWORD,""cgreen"Login",""corange"Your account is already registered\n"cgreen"Please type your password to login","Login","");
  468. }
  469. mysql_free_result();
  470. }
  471. }
  472. return 1;
  473. }
  474. //------------------------------------------------------------------------------
  475. CMD:jcredits(playerid, params[])
  476. {
  477. SendClientMessage(playerid, -1, " | --------------- jAdmin [ BETA ] ------------ | ");
  478. SendClientMessage(playerid, GREEN,"[JADMIN]: All credits to Jarnu for creating this admin system!");
  479. SendClientMessage(playerid, GREEN,"[JADMIN]: Y_Less - sscanf and BlueG - MySQL");
  480. return 1;
  481. }
  482. CMD:ahelp(playerid, params[])
  483. {
  484. new string[300];
  485. strcat(string,""cwhite" | ----------- J_Admin by Jarnu --------- | ");
  486. strcat(string," Use /acmds to see all the commands!");
  487. strcat(string," If you use this admin system you must not remove the credits!");
  488. SendClientMessage(playerid, GREEN, string);
  489. return 1;
  490. }
  491. CMD:acmds(playerid, params[])
  492. {
  493. if(PlayerInfo[playerid][pAdmin] == 0)
  494. {
  495. SendClientMessage(playerid, RED,"[JADMIN]: You have nothing to do with this command! :)");
  496. }
  497. else if(PlayerInfo[playerid][pAdmin] == 1)
  498. {
  499. SendClientMessage(playerid, LIGHTBLUE,"========= Level 1 Commands!========");
  500. SendClientMessage(playerid, BLUE,"Access to helper commands!");
  501. SendClientMessage(playerid, BLUE,"/kick /warn /mute /unmute /adminduty /acar /jail");
  502. SendClientMessage(playerid, BLUE,"/unjail /muted /jailed /jspec /jspecoff /goto /get");
  503. }
  504. else if(PlayerInfo[playerid][pAdmin] == 2)
  505. {
  506. SendClientMessage(playerid, LIGHTBLUE,"========= Level 2 Commands!========");
  507. SendClientMessage(playerid, BLUE,"Access to level 1 and helper commands!");
  508. SendClientMessage(playerid, BLUE,"/ban /unban /spawn /slap /clearchat");
  509. SendClientMessage(playerid, BLUE,"/sban /explode /abike /admincmds");
  510. }
  511. else if(PlayerInfo[playerid][pAdmin] == 3)
  512. {
  513. SendClientMessage(playerid, LIGHTBLUE,"========= Level 3 Commands!========");
  514. SendClientMessage(playerid, BLUE,"Access to level 1, level 2 and helper commands!");
  515. SendClientMessage(playerid, BLUE,"/armourall /healall /giveweapon /sethealth /carhealth");
  516. SendClientMessage(playerid, BLUE,"/givecash /givescore /vheli");
  517. }
  518. else if(PlayerInfo[playerid][pAdmin] == 4)
  519. {
  520. SendClientMessage(playerid, LIGHTBLUE,"========= Level 4 Commands!========");
  521. SendClientMessage(playerid, BLUE,"Access to level 1, level 2, level 3 and helper commands!");
  522. SendClientMessage(playerid, BLUE,"/giveallweapon /giveallscore /giveallcash /setcash /setdeaths");
  523. SendClientMessage(playerid, BLUE,"/setkills /setscore");
  524. }
  525. else if(PlayerInfo[playerid][pAdmin] >= 5)
  526. {
  527. SendClientMessage(playerid, LIGHTBLUE,"========= Level 5 Commands!========");
  528. SendClientMessage(playerid, BLUE,"Access to level 1, level 2, level 3, level 4 and helper commands!");
  529. SendClientMessage(playerid, BLUE,"/setadmin /sethelper /unsethelper /disablechat /disablespam");
  530. SendClientMessage(playerid, BLUE,"/disableafk /setping /enableping");
  531. }
  532. return 1;
  533. }
  534. CMD:admincmds(playerid, params[])
  535. {
  536. if(PlayerInfo[playerid][pAdmin] >= 2)
  537. {
  538. SendClientMessage(playerid, LIGHTBLUE,"========= Level 1 Commands!========");
  539. SendClientMessage(playerid, BLUE,"Access to helper commands!");
  540. SendClientMessage(playerid, BLUE,"/kick /warn /mute /unmute /adminduty /acar /jail");
  541. SendClientMessage(playerid, BLUE,"/unjail /muted /jailed /jspec /jspecoff /goto /get");
  542. SendClientMessage(playerid, LIGHTBLUE,"========= Level 2 Commands!========");
  543. SendClientMessage(playerid, BLUE,"Access to level 1 and helper commands!");
  544. SendClientMessage(playerid, BLUE,"/ban /unban /spawn /slap /clearchat");
  545. SendClientMessage(playerid, BLUE,"/sban /explode /abike");
  546. SendClientMessage(playerid, LIGHTBLUE,"========= Level 3 Commands!========");
  547. SendClientMessage(playerid, BLUE,"Access to level 1, level 2 and helper commands!");
  548. SendClientMessage(playerid, BLUE,"/armourall /healall /giveweapon /sethealth /carhealth");
  549. SendClientMessage(playerid, BLUE,"/givecash /givescore /vheli");
  550. SendClientMessage(playerid, LIGHTBLUE,"========= Level 4 Commands!========");
  551. SendClientMessage(playerid, BLUE,"Access to level 1, level 2, level 3 and helper commands!");
  552. SendClientMessage(playerid, BLUE,"/giveallweapon /giveallscore /giveallcash /setcash /setdeaths");
  553. SendClientMessage(playerid, BLUE,"/setkills /setscore");
  554. SendClientMessage(playerid, LIGHTBLUE,"========= Level 5 Commands!========");
  555. SendClientMessage(playerid, BLUE,"Access to level 1, level 2, level 3, level 5 and helper commands!");
  556. SendClientMessage(playerid, BLUE,"/setadmin /sethelper /unsethelper /disablechat /disablespam");
  557. SendClientMessage(playerid, BLUE,"/disableafk /setping /enableping");
  558. }
  559. return 1;
  560. }
  561. //------------------------------------------------------------------------------
  562. //========== [ NORMAL PLAYER COMMANDS ] ========================================
  563. //------------------------------------------------------------------------------
  564. CMD:admins(playerid, params[])
  565. {
  566. new count = 0, string[256];
  567. SendClientMessage(playerid, BLUE,"Current online admins:");
  568. for(new i = 0; i < MAX_PLAYERS; i ++)
  569. {
  570. if(IsPlayerConnected(i))
  571. {
  572. if(PlayerInfo[i][pAdmin] >= 1)
  573. {
  574. format(string, sizeof(string),"Admin ID:[%d] %s Level: %d", i, PlayerName(i), PlayerInfo[i][pAdmin]);
  575. SendClientMessage(playerid, BLUE, string);
  576. count++;
  577. }
  578. }
  579. }
  580. if(count == 0)
  581. {
  582. SendClientMessage(playerid, BLUE,"No admins are online right now!");
  583. }
  584. return 1;
  585. }
  586. CMD:helpers(playerid, params[])
  587. {
  588. new count = 0, string[256];
  589. SendClientMessage(playerid, BLUE,"Current online helpers:");
  590. for(new i = 0; i < MAX_PLAYERS; i ++)
  591. {
  592. if(IsPlayerConnected(i))
  593. {
  594. if(PlayerInfo[i][pHelper] == 1)
  595. {
  596. format(string, sizeof(string),"Helper ID:[%d] %s", i, PlayerName(i));
  597. SendClientMessage(playerid, BLUE, string);
  598. count++;
  599. }
  600. }
  601. }
  602. if(count == 0)
  603. {
  604. SendClientMessage(playerid, BLUE,"No helpers are online right now!");
  605. }
  606. return 1;
  607. }
  608. CMD:changepass(playerid, params[])
  609. {
  610. new pass[30];
  611. if(sscanf(params,"s[30]", pass)) return SendClientMessage(playerid, RED,"[USAGE]: /changepass [new password]");
  612. new query[200];
  613. format(query, sizeof(query),"UPDATE `playerdata` SET password=SHA1('%s') WHERE `user`='%s'", pass, escpname(playerid));
  614. mysql_query(query);
  615. mysql_free_result();
  616. new str[120];
  617. format(str, sizeof(str),"Your password has been successfully changed to "cred"%s", pass);
  618. SendClientMessage(playerid, GREEN,str);
  619. return 1;
  620. }
  621. CMD:changename(playerid, params[])
  622. {
  623. new name[50];
  624. if(sscanf(params,"s[50]", name)) return SendClientMessage(playerid, RED,"[USAGE]: /changename [ New name ]");
  625. new uquery[200];
  626. format(uquery, sizeof(uquery),"SELECT `user` FROM `playerdata` WHERE `user`='%s' LIMIT 1",name);
  627. mysql_query(uquery);
  628. mysql_store_result();
  629. new rows = mysql_num_rows();
  630. if(rows == 1)
  631. {
  632. SendClientMessage(playerid, RED,"[JADMIN]: This name already exists in our database! Try any other name");
  633. }
  634. else
  635. {
  636. new query[200];
  637. format(query, sizeof(query),"UPDATE `playerdata` SET user='%s' WHERE user='%s'", name, escpname(playerid));
  638. mysql_query(query);
  639. SetPlayerName(playerid, name);
  640. new str[120];
  641. format(str, sizeof(str),"Your name has been changed to "cred"'%s'", name);
  642. SendClientMessage(playerid, GREEN, str);
  643. }
  644. mysql_free_result();
  645. return 1;
  646. }
  647. CMD:report(playerid, params[])
  648. {
  649. new player1, str[150], reason[66];
  650. if(sscanf(params,"ds[66]", player1, reason)) return SendClientMessage(playerid, RED,"[USAGE]: /report [playerid] [reason]");
  651. if(IsPlayerConnected(player1))
  652. {
  653. format(str, sizeof(str),"@New Report| Reporter: %s | Victim: %s | Reason: %s", PlayerName(playerid), PlayerName(player1), reason);
  654. MessageToAdmins(GREEN, str);
  655. SendClientMessage(playerid, YELLOW,"Your report has been sent to online administrators!");
  656. }
  657. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected!");
  658. return 1;
  659. }
  660. //------------------------------------------------------------------------------
  661. //---------Admin system commands and stocks-------------------------------------
  662. //---------------Level 5 Admin Commands-----------------------------------------
  663. CMD:setadmin(playerid, params[])
  664. {
  665. if(PlayerInfo[playerid][pAdmin] >= 5 || IsPlayerAdmin(playerid))
  666. {
  667. new string[125], level, player1;
  668. if(sscanf(params,"dd",player1, level)) return SendClientMessage(playerid, RED,"[USAGE]: /setadmin ( playerid ) ( level )");
  669. if(!IsPlayerConnected(playerid) && player1 != INVALID_PLAYER_ID)
  670. {
  671. SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected");
  672. }
  673. if(level > SInfo[MaxLevel])
  674. {
  675. SendClientMessage(playerid, RED,"[JADMIN]: Incorrect level");
  676. }
  677. else if(level >= PlayerInfo[playerid][pAdmin])
  678. {
  679. new aname[MAX_PLAYER_NAME];
  680. GetPlayerName(playerid, aname, sizeof(aname));
  681. format(string, sizeof(string),""cblue"Administrator "cgreen"'%s' "cblue"has "cgreen"promoted "cblue"you to "cgreen"[Level %d]", aname,level);
  682. SendClientMessage(player1, BLUE, string);
  683. GameTextForPlayer(player1,"Promoted", 1500, 3);
  684. TargetCMDMessage(playerid, player1,"SETADMIN");
  685. PlayerPlaySound(player1,1057,0.0,0.0,0.0); //Will send a sound to player 1
  686. PlayerInfo[player1][pAdmin] = level;
  687. MySQL_Save(player1);
  688. }
  689. else if(level < PlayerInfo[playerid][pAdmin] && level != 0)
  690. {
  691. new aname[MAX_PLAYER_NAME];
  692. GetPlayerName(playerid, aname, sizeof(aname));
  693. format(string, sizeof(string),""cblue"Administrator "cgreen"'%s' "cblue"has "cred"demoted "cblue"you to "cgreen"[Level %d]", aname,level);
  694. SendClientMessage(player1, BLUE, string);
  695. GameTextForPlayer(player1,"Demoted", 1500, 3);
  696. PlayerPlaySound(player1,1057,0.0,0.0,0.0); //Will send a sound to player1
  697. TargetCMDMessage(playerid, player1,"SETADMIN");
  698. PlayerInfo[player1][pAdmin] = level;
  699. MySQL_Save(player1);
  700. }
  701. else if(level == 0)
  702. {
  703. new aname[MAX_PLAYER_NAME];
  704. GetPlayerName(playerid, aname, sizeof(aname));
  705. format(string, sizeof(string),""cblue"Administrator "cgreen"'%s' "cblue"has "cred"fired "cblue"you from your admin status", aname);
  706. SendClientMessage(player1, BLUE, string);
  707. GameTextForPlayer(player1,"Fired", 1500, 3);
  708. PlayerPlaySound(player1,1057,0.0,0.0,0.0); //Will send a notification sound to player1
  709. TargetCMDMessage(playerid, player1,"SETADMIN");
  710. PlayerInfo[player1][pAdmin] = 0;
  711. MySQL_Save(player1);
  712. }
  713. }
  714. else return SendClientMessage(playerid, RED,"[JADMIN]: You need to be RCON admin or level 5 admin to use this command");
  715. return 1;
  716. }
  717. CMD:sethelper(playerid, params[])
  718. {
  719. if(PlayerInfo[playerid][pAdmin] >= 5 || IsPlayerAdmin(playerid))
  720. {
  721. new string[125], player1;
  722. if(sscanf(params,"d",player1)) return SendClientMessage(playerid, RED,"[USAGE]: /sethelper ( playerid )");
  723. if(!IsPlayerConnected(playerid) && player1 != INVALID_PLAYER_ID)
  724. {
  725. SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected");
  726. }
  727. else
  728. {
  729. new aname[MAX_PLAYER_NAME];
  730. GetPlayerName(playerid, aname, sizeof(aname));
  731. format(string, sizeof(string),""cblue"Administrator "cgreen"'%s' "cblue"has set you to helper status", aname);
  732. SendClientMessage(player1, BLUE, string);
  733. TargetCMDMessage(playerid, player1,"SETHELPER");
  734. PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  735. PlayerInfo[player1][pHelper] = 1;
  736. GameTextForPlayer(player1,"Promoted to Helper Status", 1500, 3);
  737. }
  738. }
  739. else return SendClientMessage(playerid, RED,"[JADMIN]: You need to be RCON admin or level 5 admin to use this command");
  740. return 1;
  741. }
  742. CMD:unsethelper(playerid, params[])
  743. {
  744. if(PlayerInfo[playerid][pAdmin] >= 5 || IsPlayerAdmin(playerid))
  745. {
  746. new string[125], player1;
  747. if(sscanf(params,"d",player1)) return SendClientMessage(playerid, RED,"[USAGE]: /unsethelper ( playerid )");
  748. if(!IsPlayerConnected(playerid) && player1 != INVALID_PLAYER_ID)
  749. {
  750. SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected");
  751. }
  752. else
  753. {
  754. new aname[MAX_PLAYER_NAME];
  755. GetPlayerName(playerid, aname, sizeof(aname));
  756. format(string, sizeof(string),""cblue"Administrator "cgreen"'%s' "cblue"has "cred"fired "cblue"you from your helper status", aname);
  757. SendClientMessage(player1, BLUE, string);
  758. TargetCMDMessage(playerid, player1,"UNSETHELPER");
  759. PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  760. PlayerInfo[player1][pHelper] = 0;
  761. GameTextForPlayer(player1,"Fired from Helper Status", 1500, 3);
  762. }
  763. }
  764. else return SendClientMessage(playerid, RED,"[JADMIN]: You need to be RCON admin or level 5 admin to use this command");
  765. return 1;
  766. }
  767. CMD:disablechat(playerid, params[])
  768. {
  769. if(PlayerInfo[playerid][pAdmin] >= 5)
  770. {
  771. if(SInfo[DCHAT] == 1)
  772. {
  773. SInfo[DCHAT] = 0;
  774. new str[128];
  775. format(str, sizeof(str),"Administrator %s has enabled the chat!", PlayerName(playerid));
  776. CMDMessage(playerid,"DISABLECHAT");
  777. SendClientMessageToAll(BLUE, str);
  778. UpdateConfig();
  779. }
  780. else if(SInfo[DCHAT] == 0)
  781. {
  782. SInfo[DCHAT] = 1;
  783. CMDMessage(playerid,"DISABLECHAT");
  784. new str[128];
  785. format(str, sizeof(str),"Administrator %s has disabled the chat!", PlayerName(playerid));
  786. SendClientMessageToAll(BLUE, str);
  787. UpdateConfig();
  788. }
  789. }
  790. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  791. return 1;
  792. }
  793. CMD:disableafk(playerid, params[])
  794. {
  795. if(PlayerInfo[playerid][pAdmin] >= 5)
  796. {
  797. if(SInfo[AFK] == 1)
  798. {
  799. SInfo[AFK] = 0;
  800. new str[128];
  801. format(str, sizeof(str),"Administrator %s has disabled the anti-afk!", PlayerName(playerid));
  802. CMDMessage(playerid,"DISABLEAFK");
  803. SendClientMessageToAll(BLUE, str);
  804. UpdateConfig();
  805. }
  806. else if(SInfo[AFK] == 0)
  807. {
  808. SInfo[AFK] = 1;
  809. CMDMessage(playerid,"DISABLEAFK");
  810. new str[128];
  811. format(str, sizeof(str),"Administrator %s has enabled the anti-afk!", PlayerName(playerid));
  812. SendClientMessageToAll(BLUE, str);
  813. UpdateConfig();
  814. }
  815. }
  816. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  817. return 1;
  818. }
  819. CMD:disablespam(playerid, params[])
  820. {
  821. if(PlayerInfo[playerid][pAdmin] >= 5)
  822. {
  823. if(SInfo[Spam] == 1)
  824. {
  825. SInfo[Spam] = 0;
  826. new str[128];
  827. format(str, sizeof(str),"Administrator %s has disabled the anti-spam!", PlayerName(playerid));
  828. CMDMessage(playerid,"DISABLESPAM");
  829. SendClientMessageToAll(BLUE, str);
  830. UpdateConfig();
  831. }
  832. else if(SInfo[Spam] == 0)
  833. {
  834. SInfo[Spam] = 1;
  835. CMDMessage(playerid,"DISABLESPAM");
  836. new str[128];
  837. format(str, sizeof(str),"Administrator %s has enabled the anti-spam!", PlayerName(playerid));
  838. SendClientMessageToAll(BLUE, str);
  839. UpdateConfig();
  840. }
  841. }
  842. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  843. return 1;
  844. }
  845. CMD:enableping(playerid, params[])
  846. {
  847. if(PlayerInfo[playerid][pAdmin] >= 5)
  848. {
  849. SInfo[Ping] = 1;
  850. new str[128];
  851. format(str, sizeof(str),"Administrator %s has enabled the anti-highping!", PlayerName(playerid));
  852. CMDMessage(playerid,"ENABLEPING");
  853. SendClientMessageToAll(BLUE, str);
  854. UpdateConfig();
  855. }
  856. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  857. return 1;
  858. }
  859. CMD:setping(playerid, params[])
  860. {
  861. if(PlayerInfo[playerid][pAdmin] >= 5)
  862. {
  863. if(SInfo[Ping] == 1)
  864. {
  865. new ping;
  866. if(sscanf(params,"d",ping)) return SendClientMessage(playerid, RED,"[USAGE]: /setping [ping]");
  867. if(ping == 0)
  868. {
  869. SInfo[Ping] = 0;
  870. new str[100];
  871. format(str, sizeof(str),"Administrator %s has disable high ping kick", PlayerName(playerid));
  872. SendClientMessageToAll(BLUE, str);
  873. }
  874. else
  875. {
  876. SInfo[AllowedPing] = ping;
  877. new str[100];
  878. format(str, sizeof(str),"Administrator %s has set maximum ping to %d", PlayerName(playerid), ping);
  879. SendClientMessageToAll(BLUE, str);
  880. }
  881. }
  882. else return SendClientMessage(playerid, RED,"High ping kick is disabled! use /enableping first!");
  883. }
  884. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not level 5!");
  885. return 1;
  886. }
  887. //---------------Level 2 admin commands-----------------------------------------
  888. CMD:clearchat(playerid, params[])
  889. {
  890. if(PlayerInfo[playerid][pAdmin] >= 2)
  891. {
  892. for(new i = 0; i < 15; i++)
  893. {
  894. SendClientMessageToAll(WHITE," ");
  895. }
  896. }
  897. else return SendClientMessage(playerid, RED,"[ERROR]: You need to be admin level 2 to use this command!");
  898. return 1;
  899. }
  900. CMD:vbike(playerid, params[])
  901. {
  902. if(PlayerInfo[playerid][pAdmin] >= 2)
  903. {
  904. if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, RED,"[ERROR]: You already have a vehicle!");
  905. new Float:X, Float:Y, Float:Z;
  906. GetPlayerPos(playerid, X, Y, Z);
  907. PutPlayerInVehicle(playerid, CreateVehicle(522, X, Y, Z, 0.0,0, 1, 60), 0);
  908. SendClientMessage(playerid, BLUE,"Enjoy your new admin bike!");
  909. HasSpawnedCar[playerid] = 1;
  910. }
  911. else return SendClientMessage(playerid, RED,"[ERROR]: You need to be admin level 2 to use this command!");
  912. return 1;
  913. }
  914. CMD:spawn(playerid, params[])
  915. {
  916. new player1;
  917. if(PlayerInfo[playerid][pAdmin] >= 2)
  918. {
  919. if(IsPlayerConnected(player1))
  920. {
  921. new str[100];
  922. if(sscanf(params,"d",player1)) return SendClientMessage(playerid, RED,"[USAGE]: /spawn [playerid] ");
  923. SpawnPlayer(player1);
  924. format(str, sizeof(str),"Administrator %s has spawned you!", PlayerName(player1));
  925. SendClientMessage(player1, BLUE, str);
  926. TargetCMDMessage(playerid, player1, "SPAWN");
  927. }
  928. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected!");
  929. }
  930. else return SendClientMessage(playerid, RED,"[JADMIN]: You cannot use this command!");
  931. return 1;
  932. }
  933. CMD:explode(playerid, params[])
  934. {
  935. if(PlayerInfo[playerid][pAdmin] >= 2)
  936. {
  937. new player1, Float:x, Float:y, Float:z, str[70];
  938. if(sscanf(params,"d", player1)) return SendClientMessage(playerid, RED,"[USAGE]: /explode [playerid] ");
  939. if(IsPlayerConnected(player1))
  940. {
  941. GetPlayerPos(player1, x, y, z);
  942. CreateExplosion(x, y, z, 7, 10.0);
  943. format(str, sizeof(str),"You have exploded %s!", PlayerName(player1));
  944. SendClientMessage(playerid, BLUE, str);
  945. TargetCMDMessage(playerid, player1,"EXPLODE");
  946. }
  947. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected!");
  948. }
  949. else return SendClientMessage(playerid, RED,"[JADMIN]: You need to be level 2 admin to use this command!");
  950. return 1;
  951. }
  952. CMD:slap(playerid, params[])
  953. {
  954. if(PlayerInfo[playerid][pAdmin] >= 2)
  955. {
  956. new player1, Float:x, Float:y, Float:z, str[70];
  957. if(sscanf(params,"d", player1)) return SendClientMessage(playerid, RED,"[USAGE]: /slap [playerid] ");
  958. if(IsPlayerConnected(player1))
  959. {
  960. GetPlayerPos(player1, x, y, z);
  961. SetPlayerPos(player1, x, y, z+6);
  962. format(str, sizeof(str),"You have slapped %s!", PlayerName(player1));
  963. SendClientMessage(playerid, BLUE, str);
  964. TargetCMDMessage(playerid, player1,"SLAP");
  965. PlayerPlaySound(player1,1190,0.0,0.0,0.0);
  966. PlayerPlaySound(playerid,1190,0.0,0.0,0.0);
  967. }
  968. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected!");
  969. }
  970. else return SendClientMessage(playerid, RED,"[JADMIN]: You need to be level 2 admin to use this command!");
  971. return 1;
  972. }
  973. CMD:ban(playerid, params[])
  974. {
  975. if(PlayerInfo[playerid][pAdmin] >= 2 || IsPlayerAdmin(playerid))
  976. {
  977. new targetid, reason[100];
  978. if(sscanf(params,"ds[100]", targetid, reason)) return SendClientMessage(playerid, RED,"[USAGE]: /ban [playerid][reason]");
  979. if(!IsPlayerConnected(playerid) && targetid != INVALID_PLAYER_ID)
  980. {
  981. SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected!");
  982. }
  983. if(PlayerInfo[targetid][pAdmin] > PlayerInfo[playerid][pAdmin])
  984. {
  985. SendClientMessage(playerid, RED,"You have been kicked for trying to ban your senior!");
  986. Kick(playerid);
  987. }
  988. else
  989. {
  990. new bquery[200], IP[16];
  991. GetPlayerIp(targetid, IP, 16);
  992. format(bquery, sizeof(bquery),"INSERT INTO bandata(admin, player, reason, IP, banned) VALUES('%s', '%s', '%s','%s', 1)", PlayerName(playerid),PlayerName(targetid), reason, IP);
  993. mysql_query(bquery);
  994. CMDMessage(playerid,"BAN");
  995. new string[256];
  996. format(string, sizeof(string),"%s has been banned by Admin %s [Reason: %s]", PlayerName(targetid), PlayerName(playerid), reason);
  997. SendClientMessageToAll(RED, string);
  998. mysql_free_result();
  999. Kick(targetid);
  1000. }
  1001. }
  1002. else return SendClientMessage(playerid, RED,"[JADMIN]: You need to be RCON admin or level 2 admin to use this command!");
  1003. return 1;
  1004. }
  1005. CMD:unban(playerid, params[])
  1006. {
  1007. if(PlayerInfo[playerid][pAdmin] >= 2 || IsPlayerAdmin(playerid))
  1008. {
  1009. new target[50];
  1010. if(sscanf(params,"s[50]", target)) return SendClientMessage(playerid, RED,"[USAGE]: /unban [player name]");
  1011. new query[200];
  1012. format(query, sizeof(query),"SELECT * FROM `bandata` WHERE `player`='%s' AND `banned`=1 LIMIT 1", target);
  1013. mysql_query(query);
  1014. mysql_store_result();
  1015. new rows = mysql_num_rows();
  1016. if(rows == 1)
  1017. {
  1018. new uquery[200];
  1019. format(uquery, sizeof(uquery),"DELETE FROM `bandata` WHERE player='%s'", target);
  1020. mysql_query(uquery);
  1021. mysql_store_result();
  1022. new string[200];
  1023. CMDMessage(playerid,"UNBAN");
  1024. format(string, sizeof(string),"You have unbanned %s", target);
  1025. SendClientMessage(playerid, BLUE,string);
  1026. }
  1027. else if(!rows)
  1028. {
  1029. new str[128];
  1030. format(str, sizeof(str),"[JADMIN]: No ban found on this name %s", target);
  1031. SendClientMessage(playerid, RED, str);
  1032. mysql_free_result();
  1033. }
  1034. } else return SendClientMessage(playerid, RED,"[JADMIN]: You need to be RCON admin or level 2 admin to use this command!");
  1035. return 1;
  1036. }
  1037. CMD:sban(playerid, params[])
  1038. {
  1039. if(PlayerInfo[playerid][pAdmin] >= 2 || IsPlayerAdmin(playerid))
  1040. {
  1041. new target[50], admin[50], player[50], reason[100], IP[16];
  1042. if(sscanf(params,"s[50]", target)) return SendClientMessage(playerid, RED,"[USAGE]: /sban [player name]");
  1043. new query[200];
  1044. format(query, sizeof(query),"SELECT admin,player,reason,IP FROM `bandata` WHERE `player`='%s' AND `banned`=1 LIMIT 1", target);
  1045. mysql_query(query);
  1046. mysql_store_result();
  1047. new rows = mysql_num_rows();
  1048. if(rows == 1)
  1049. {
  1050. while(mysql_fetch_row(query))
  1051. {
  1052. mysql_fetch_field_row(admin, "admin");
  1053. mysql_fetch_field_row(player, "player");
  1054. mysql_fetch_field_row(IP, "IP");
  1055. mysql_fetch_field_row(reason, "reason");
  1056. }
  1057. new string[128];
  1058. format(string, sizeof(string),"Admin: %s | Player: %s | Reason: %s | IP: %s " , admin, player, reason, IP);
  1059. SendClientMessage(playerid, RED, string);
  1060. print(string); // DEBUG!
  1061. }
  1062. if(!rows)
  1063. {
  1064. SendClientMessage(playerid, RED,"[JADMIN]: No ban found on this name!");
  1065. }
  1066. }
  1067. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  1068. return 1;
  1069. }
  1070. //==============================================================================
  1071. //-----------------------------------ADMIN COMMANDS STARTING--------------------
  1072. //---------------------Helper Commands------------------------------------------
  1073. CMD:jspec(playerid, params[])
  1074. {
  1075. if(PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pHelper] == 1)
  1076. {
  1077. new specid, str[120];
  1078. if(sscanf(params,"d", specid)) return SendClientMessage(playerid, RED,"[USAGE]: /jspec [playerid] ");
  1079. if(PlayerInfo[specid][pAdmin] != SInfo[MaxLevel])
  1080. {
  1081. if(GetPlayerState(specid) != PLAYER_STATE_SPECTATING || specid != INVALID_PLAYER_ID)
  1082. {
  1083. Spectate(playerid, specid);
  1084. Spectating[playerid] = 1;
  1085. TargetCMDMessage(playerid, specid, "JSPEC");
  1086. format(str, sizeof(str),"You are now spectating id %d", specid);
  1087. SendClientMessage(playerid, BLUE,str);
  1088. }
  1089. else return SendClientMessage(playerid, RED,"[JADMIN]: Invalid playerid");
  1090. }
  1091. else return SendClientMessage(playerid, RED,"[JADMIN]: You cannot use this command on this admin!");
  1092. }
  1093. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not admin or helper!");
  1094. return 1;
  1095. }
  1096. CMD:jspecoff(playerid, params[])
  1097. {
  1098. if(PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pHelper] == 1)
  1099. {
  1100. if(Spectating[playerid] == 0)
  1101. {
  1102. KillTimer(SpecTime[playerid]);
  1103. SendClientMessage(playerid, BLUE,"Spectating off");
  1104. Spectating[playerid] = 0;
  1105. }
  1106. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not spectating!");
  1107. }
  1108. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not helper or admin!");
  1109. return 1;
  1110. }
  1111. CMD:warn(playerid, params[])
  1112. {
  1113. if(PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pHelper] == 1)
  1114. {
  1115. new reason[100], player1, str[100], dstr[102];
  1116. if(sscanf(params,"ds[100]", player1, reason)) return SendClientMessage(playerid, RED,"[USAGE]: /warn [playerid] [reason]");
  1117. if(IsPlayerConnected(player1))
  1118. {
  1119. if(PlayerInfo[playerid][pAdmin] >= 1)
  1120. {
  1121. PlayerInfo[player1][pWarns] ++;
  1122. format(str, sizeof(str),"Administrator %s has warned %s [Reason: %s] (Warnings: %d/%d)", PlayerName(playerid),PlayerName(player1),reason,PlayerInfo[playerid][pWarns], MAX_WARNS);
  1123. SendClientMessageToAll(YELLOW, str);
  1124. format(dstr, sizeof(dstr),""cwhite"Warnings: %d/%d\nAdmin: %s\nReason:%s\n",PlayerInfo[playerid][pWarns], MAX_WARNS, PlayerName(playerid), reason);
  1125. ShowPlayerDialog(player1, 1100, DIALOG_STYLE_MSGBOX,""cwhite"Recieved a warning!",dstr,"Close","");
  1126. if(PlayerInfo[player1][pWarns] >= MAX_WARNS)
  1127. {
  1128. format(str, sizeof(str),"Administrator %s has kicked %s [Reason: %s] (Warnings: %d/%d)", PlayerName(playerid),PlayerName(player1),reason,PlayerInfo[playerid][pWarns], MAX_WARNS);
  1129. SendClientMessageToAll(RED, str);
  1130. format(dstr, sizeof(dstr),""cwhite"Warnings: %d/%d\nAdmin: %s\nReason:%s\n",PlayerInfo[playerid][pWarns], MAX_WARNS, PlayerName(playerid), reason);
  1131. ShowPlayerDialog(player1, 1100, DIALOG_STYLE_MSGBOX,""cwhite"Recieved a warning!",dstr,"Close","");
  1132. Kick(player1);
  1133. }
  1134. }
  1135. else if(PlayerInfo[playerid][pHelper] == 1)
  1136. {
  1137. PlayerInfo[player1][pWarns] ++;
  1138. format(str, sizeof(str),"Helper %s has warned %s [Reason: %s] (Warnings: %d/%d)", PlayerName(playerid),PlayerName(player1),reason,PlayerInfo[playerid][pWarns], MAX_WARNS);
  1139. SendClientMessageToAll(YELLOW, str);
  1140. format(dstr, sizeof(dstr),""cwhite"Warnings: %d/%d\nHelper: %s\nReason:%s\n",PlayerInfo[playerid][pWarns], MAX_WARNS, PlayerName(playerid), reason);
  1141. ShowPlayerDialog(player1, 1100, DIALOG_STYLE_MSGBOX,""cwhite"Recieved a warning!",dstr,"Close","");
  1142. if(PlayerInfo[player1][pWarns] >= MAX_WARNS)
  1143. {
  1144. format(str, sizeof(str),"Helper %s has kicked %s [Reason: %s] (Warnings: %d/%d)", PlayerName(playerid),PlayerName(player1),reason,PlayerInfo[playerid][pWarns], MAX_WARNS);
  1145. SendClientMessageToAll(RED, str);
  1146. format(dstr, sizeof(dstr),""cwhite"Warnings: %d/%d\nHelper: %s\nReason:%s\n",PlayerInfo[playerid][pWarns], MAX_WARNS, PlayerName(playerid), reason);
  1147. ShowPlayerDialog(player1, 1100, DIALOG_STYLE_MSGBOX,""cwhite"Recieved a warning!",dstr,"Close","");
  1148. Kick(player1);
  1149. }
  1150. }
  1151. }
  1152. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected!");
  1153. }
  1154. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  1155. return 1;
  1156. }
  1157. CMD:kick(playerid, params[])
  1158. {
  1159. if(PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pHelper] == 1)
  1160. {
  1161. new player1, reason[100], str[100];
  1162. if(sscanf(params,"ds[100]", player1, reason)) return SendClientMessage(playerid, RED,"[USAGE]: /kick [playerid] [reason]");
  1163. if(IsPlayerConnected(player1))
  1164. {
  1165. if(PlayerInfo[playerid][pAdmin] >= 1)
  1166. {
  1167. format(str, sizeof(str),"%s has been kicked by Admin %s [Reason: %s]", PlayerName(player1), PlayerName(playerid), reason);
  1168. SendClientMessageToAll(RED, str);
  1169. TargetCMDMessage(playerid, player1,"KICK");
  1170. Kick(player1);
  1171. }
  1172. else if(PlayerInfo[playerid][pHelper] == 1)
  1173. {
  1174. format(str, sizeof(str),"%s has been kicked by Helper %s [Reason: %s]", PlayerName(player1), PlayerName(playerid), reason);
  1175. SendClientMessageToAll(RED, str);
  1176. CMDMessage(playerid,"KICK");
  1177. Kick(player1);
  1178. }
  1179. }
  1180. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected!");
  1181. }
  1182. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  1183. return 1;
  1184. }
  1185. CMD:hh(playerid, params[])
  1186. {
  1187. if(PlayerInfo[playerid][pHelper] == 1 || PlayerInfo[playerid][pAdmin] >= 1)
  1188. {
  1189. SendClientMessage(playerid, -1, "--------| JADMIN [Helper Commands] | -------");
  1190. SendClientMessage(playerid, BLUE,"/kick /warn /jspec /jspecoff");
  1191. SendClientMessage(playerid, -1, "----------- | | ----------------- | | -------");
  1192. }
  1193. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  1194. return 1;
  1195. }
  1196. //-------------------Level 3 commands-------------------------------------------
  1197. CMD:vheli(playerid, params[])
  1198. {
  1199. if(PlayerInfo[playerid][pAdmin] >= 3)
  1200. {
  1201. if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, RED,"[ERROR]: You already have a vehicle!");
  1202. new Float:X, Float:Y, Float:Z;
  1203. GetPlayerPos(playerid, X, Y, Z);
  1204. PutPlayerInVehicle(playerid, CreateVehicle(487, X, Y, Z, 0.0,0, 1, 60), 0);
  1205. SendClientMessage(playerid, BLUE,"Enjoy your new helicopter!");
  1206. HasSpawnedCar[playerid] = 1;
  1207. }
  1208. else return SendClientMessage(playerid, RED,"[ERROR]: You need to be admin level 3 to use this command!");
  1209. return 1;
  1210. }
  1211. CMD:sethealth(playerid, params[])
  1212. {
  1213. if(PlayerInfo[playerid][pAdmin] >= 3)
  1214. {
  1215. new player1, str[120], amount;
  1216. if(sscanf(params,"dd", player1, amount)) return SendClientMessage(playerid, RED,"[USAGE]: /sethealth [playerid] [health]");
  1217. if(IsPlayerConnected(player1))
  1218. {
  1219. SetPlayerHealth(player1, amount);
  1220. format(str, sizeof(str),"You have setted %s's health to %d", PlayerName(player1), amount);
  1221. SendClientMessage(playerid, BLUE, str);
  1222. TargetCMDMessage(playerid, player1,"SETHEALTH");
  1223. }
  1224. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected!");
  1225. }
  1226. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  1227. return 1;
  1228. }
  1229. CMD:carhealth(playerid, params[])
  1230. {
  1231. if(PlayerInfo[playerid][pAdmin] >= 3)
  1232. {
  1233. new player1, str[120], amount;
  1234. if(sscanf(params,"dd", player1, amount)) return SendClientMessage(playerid, RED,"[USAGE]: /carhealth [playerid] [health]");
  1235. if(IsPlayerConnected(player1) && IsPlayerInAnyVehicle(playerid))
  1236. {
  1237. SetVehicleHealth(GetPlayerVehicleID(player1), amount);
  1238. format(str, sizeof(str),"You have setted %s's vehicle's health to %d", PlayerName(player1), amount);
  1239. SendClientMessage(playerid, BLUE, str);
  1240. TargetCMDMessage(playerid, player1,"CARHEALTH");
  1241. }
  1242. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected or is not in any vehicle!");
  1243. }
  1244. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  1245. return 1;
  1246. }
  1247. CMD:healall(playerid, params[])
  1248. {
  1249. if(PlayerInfo[playerid][pAdmin] >= 3)
  1250. {
  1251. for(new i =0; i < MAX_PLAYERS; i ++ )
  1252. {
  1253. if(IsPlayerConnected(i))
  1254. {
  1255. SetPlayerHealth(i, 100.0);
  1256. new str[100];
  1257. format(str, sizeof(str),"Administrator %s has healed all players!", PlayerName(playerid));
  1258. SendClientMessage(i, BLUE, str);
  1259. CMDMessage(playerid,"HEALALL");
  1260. }
  1261. }
  1262. }
  1263. else return SendClientMessage(playerid, RED,"[JADMIN]: You need to be admin level 3 to use this command!");
  1264. return 1;
  1265. }
  1266. CMD:armourall(playerid, params[])
  1267. {
  1268. if(PlayerInfo[playerid][pAdmin] >= 3)
  1269. {
  1270. for(new i =0; i < MAX_PLAYERS; i ++ )
  1271. {
  1272. if(IsPlayerConnected(i))
  1273. {
  1274. SetPlayerArmour(i, 100.0);
  1275. new str[100];
  1276. format(str, sizeof(str),"Administrator %s has armoured all players!", PlayerName(playerid));
  1277. SendClientMessage(i, BLUE, str);
  1278. CMDMessage(playerid,"ARMOURALL");
  1279. }
  1280. }
  1281. }
  1282. else return SendClientMessage(playerid, RED,"[JADMIN]: You need to be admin level 3 to use this command!");
  1283. return 1;
  1284. }
  1285. CMD:giveweapon(playerid, params[])
  1286. {
  1287. if(PlayerInfo[playerid][pAdmin] >= 3)
  1288. {
  1289. new target, weapid, ammo;
  1290. if(sscanf(params,"ddd", target, weapid, ammo)) return SendClientMessage(playerid, RED,"[USAGE]: /giveweapon [playerid] [weapon] [ammo]");
  1291. if(IsValidWeapon(weapid))
  1292. {
  1293. if(IsPlayerConnected(target))
  1294. {
  1295. GivePlayerWeapon(target, weapid, ammo);
  1296. new str[150];
  1297. format(str, sizeof(str),"Administrator %s has given you %d ammo of weapon %d", PlayerName(playerid), ammo, weapid);
  1298. SendClientMessage(target, BLUE, str);
  1299. TargetCMDMessage(playerid, target,"GIVEWEAPON");
  1300. }
  1301. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected!");
  1302. }
  1303. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not allowed to give this weapon!");
  1304. }
  1305. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  1306. return 1;
  1307. }
  1308. CMD:givecash(playerid, params[])
  1309. {
  1310. if(PlayerInfo[playerid][pAdmin] >= 3)
  1311. {
  1312. new player1, amount, string[128];
  1313. if(sscanf(params,"dd", player1, amount)) return SendClientMessage(playerid, RED,"[USAGE]: /givecash [playerid] [amount]");
  1314. if(IsPlayerConnected(player1))
  1315. {
  1316. GivePlayerMoney(player1, amount);
  1317. format(string, sizeof(string),"Administrator %s has given you $%d amount of cash!", PlayerName(playerid), amount);
  1318. SendClientMessage(player1, BLUE, string);
  1319. TargetCMDMessage(playerid, player1,"GIVECASH");
  1320. }
  1321. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected!");
  1322. }
  1323. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  1324. return 1;
  1325. }
  1326. CMD:givescore(playerid, params[])
  1327. {
  1328. if(PlayerInfo[playerid][pAdmin] >= 3)
  1329. {
  1330. new player1, amount, string[128];
  1331. if(sscanf(params,"dd", player1, amount)) return SendClientMessage(playerid, RED,"[USAGE]: /givescore [playerid] [amount]");
  1332. if(IsPlayerConnected(player1))
  1333. {
  1334. SetPlayerScore(player1, GetPlayerScore(player1)+amount);
  1335. format(string, sizeof(string),"Administrator %s has given you %d score(s)!", PlayerName(playerid), amount);
  1336. SendClientMessage(player1, BLUE, string);
  1337. TargetCMDMessage(playerid, player1,"GIVESCORE");
  1338. }
  1339. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected!");
  1340. }
  1341. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  1342. return 1;
  1343. }
  1344. //--------------Level 1 commands------------------------------------------------
  1345. CMD:muted(playerid, params[])
  1346. {
  1347. new mutedcount = 0, string[152];
  1348. if(PlayerInfo[playerid][pAdmin] >= 1)
  1349. {
  1350. SendClientMessage(playerid, WHITE,"Muted Players:");
  1351. for(new i = 0; i < MAX_PLAYERS; i ++)
  1352. {
  1353. if(IsPlayerConnected(i))
  1354. {
  1355. if(PlayerInfo[i][pMuted] == 1)
  1356. {
  1357. format(string, sizeof(string),"%s", PlayerName(i));
  1358. SendClientMessage(playerid, WHITE, string);
  1359. mutedcount++;
  1360. }
  1361. }
  1362. }
  1363. if(mutedcount == 0)
  1364. {
  1365. SendClientMessage(playerid, WHITE,"No player is muted right now!");
  1366. }
  1367. }
  1368. else return SendClientMessage(playerid, RED,"[JADMIN]: You need to be admin level 1 to use this command!");
  1369. return 1;
  1370. }
  1371. CMD:jailed(playerid, params[])
  1372. {
  1373. new jailedcount = 0, string[152];
  1374. if(PlayerInfo[playerid][pAdmin] >= 1)
  1375. {
  1376. SendClientMessage(playerid, BLUE,"Jailed Players:");
  1377. for(new i = 0; i < MAX_PLAYERS; i ++)
  1378. {
  1379. if(IsPlayerConnected(i))
  1380. {
  1381. if(PlayerInfo[i][pJailed] == 1)
  1382. {
  1383. format(string, sizeof(string),"%s", PlayerName(i));
  1384. SendClientMessage(playerid, WHITE, string);
  1385. jailedcount++;
  1386. }
  1387. }
  1388. }
  1389. if(jailedcount == 0)
  1390. {
  1391. SendClientMessage(playerid, BLUE,"No player is jailed right now!");
  1392. }
  1393. }
  1394. else return SendClientMessage(playerid, RED,"[JADMIN]: You need to be admin level 1 to use this command!");
  1395. return 1;
  1396. }
  1397. CMD:mute(playerid, params[])
  1398. {
  1399. if(PlayerInfo[playerid][pAdmin] >= 1)
  1400. {
  1401. new player1, time, str[123], reason[30];
  1402. if(sscanf(params,"dds[30]", player1, time)) return SendClientMessage(playerid, RED,"[USAGE]: /mute [playerid] [time (counted in minutes)] [reason]");
  1403. if(IsPlayerConnected(player1))
  1404. {
  1405. if(PlayerInfo[player1][pMuted] == 0)
  1406. {
  1407. PlayerInfo[player1][pMuted] = 1;
  1408. PlayerInfo[player1][pMuteTime] = time*60000;
  1409. format(str, sizeof(str),"Administrator %s has muted %s for %i minutes [Reason: %s]", PlayerName(playerid), PlayerName(player1), time, reason);
  1410. SendClientMessageToAll(BLUE, str);
  1411. unmute[player1] = SetTimerEx("UnMuteMe", PlayerInfo[player1][pMuteTime], false, "d", playerid);
  1412. TargetCMDMessage(playerid, player1,"MUTE");
  1413. }
  1414. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is already muted!");
  1415. }
  1416. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected!");
  1417. }
  1418. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  1419. return 1;
  1420. }
  1421. CMD:unmute(playerid, params[])
  1422. {
  1423. if(PlayerInfo[playerid][pAdmin] >= 1)
  1424. {
  1425. new player1, str[123];
  1426. if(sscanf(params,"d", player1)) return SendClientMessage(playerid, RED,"[USAGE]: /unmute [playerid]");
  1427. if(IsPlayerConnected(player1))
  1428. {
  1429. if(PlayerInfo[player1][pMuted] == 1)
  1430. {
  1431. PlayerInfo[player1][pMuted] = 0;
  1432. PlayerInfo[player1][pMuteTime] = 0;
  1433. format(str, sizeof(str),"Administrator %s has unmuted %s", PlayerName(playerid), PlayerName(player1));
  1434. SendClientMessageToAll(BLUE, str);
  1435. TargetCMDMessage(playerid, player1,"UNMUTE");
  1436. KillTimer(unmute[player1]);
  1437. }
  1438. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not muted!");
  1439. }
  1440. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected!");
  1441. }
  1442. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  1443. return 1;
  1444. }
  1445. CMD:goto(playerid, params[])
  1446. {
  1447. if(PlayerInfo[playerid][pAdmin] >= 1)
  1448. {
  1449. new player1, Float:X, Float:Y, Float:Z,str[123];
  1450. if(sscanf(params,"d", player1)) return SendClientMessage(playerid, RED,"[USAGE]: /goto [playerid]");
  1451. if(IsPlayerConnected(player1))
  1452. {
  1453. GetPlayerPos(player1, X, Y, Z);
  1454. new interior = GetPlayerInterior(player1);
  1455. new world = GetPlayerVirtualWorld(player1);
  1456. SetPlayerInterior(playerid, interior);
  1457. SetPlayerVirtualWorld(playerid, world);
  1458. SetPlayerPos(playerid, X, Y, Z);
  1459. format(str, sizeof(str),"You have been teleported to %s", PlayerName(player1));
  1460. SendClientMessage(playerid, BLUE, str);
  1461. TargetCMDMessage(playerid, player1,"GOTO");
  1462. }
  1463. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected!");
  1464. }
  1465. else return SendClientMessage(playerid, RED,"[JADMIN]: You need to be level 1 to use this command!");
  1466. return 1;
  1467. }
  1468. CMD:get(playerid, params[])
  1469. {
  1470. if(PlayerInfo[playerid][pAdmin] >= 1 )
  1471. {
  1472. new player1, Float:X, Float:Y, Float:Z;
  1473. new string[120];
  1474. if(sscanf(params,"d", player1)) return SendClientMessage(playerid, RED,"[USAGE]: /get [playerid]");
  1475. if(IsPlayerConnected(player1))
  1476. {
  1477. GetPlayerPos(playerid, X, Y, Z);
  1478. new interior = GetPlayerInterior(playerid);
  1479. new world = GetPlayerVirtualWorld(playerid);
  1480. SetPlayerInterior(playerid, interior);
  1481. SetPlayerPos(player1, X, Y, Z);
  1482. SetPlayerVirtualWorld(player1, world);
  1483. format(string, sizeof(string),"Administrator %s has teleported you to his position!", PlayerName(playerid));
  1484. SendClientMessage(player1, BLUE, string);
  1485. TargetCMDMessage(playerid, player1,"GET");
  1486. }
  1487. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected!");
  1488. }
  1489. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  1490. return 1;
  1491. }
  1492. CMD:acar(playerid, params[])
  1493. {
  1494. if(PlayerInfo[playerid][pAdmin] >= 1)
  1495. {
  1496. if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, RED,"[JADMIN]: You already have a vehicle!");
  1497. new Float:X, Float:Y, Float:Z;
  1498. GetPlayerPos(playerid, X, Y, Z);
  1499. PutPlayerInVehicle(playerid, CreateVehicle(415, X, Y, Z, 0.0,0, 1, 60), 0);
  1500. CMDMessage(playerid, "ACAR");
  1501. SendClientMessage(playerid, BLUE,"Enjoy your admin car");
  1502. HasSpawnedCar[playerid] = 1;
  1503. }
  1504. else return SendClientMessage(playerid, RED,"[JADMIN]: You need to be admin level 1 to use this command");
  1505. return 1;
  1506. }
  1507. CMD:jail(playerid, params[])
  1508. {
  1509. if(PlayerInfo[playerid][pAdmin] >= 1)
  1510. {
  1511. new player1, jtime, reason[100], adminname[MAX_PLAYER_NAME], playername[MAX_PLAYER_NAME], string[256];
  1512. GetPlayerName(playerid, adminname, MAX_PLAYER_NAME);
  1513. GetPlayerName(player1, playername, MAX_PLAYER_NAME);
  1514. if(sscanf(params,"dds[24]", player1, jtime, reason)) return SendClientMessage(playerid, RED,"[USAGE]: /jail [playerid][minutes][reason]");
  1515. if(IsPlayerConnected(player1) && PlayerInfo[player1][pAdmin] < SInfo[MaxLevel])
  1516. {
  1517. if(PlayerInfo[player1][pJailed] == 0)
  1518. {
  1519. TargetCMDMessage(playerid, player1,"JAIL");
  1520. TogglePlayerControllable(player1,true);
  1521. SetPlayerPos(player1,197.6661,173.8179,1003.0234);
  1522. SetPlayerInterior(player1,3);
  1523. SetCameraBehindPlayer(player1);
  1524. JailTimer[player1] = SetTimerEx("ReleaseFromJail",jtime*60000,0,"d",player1);
  1525. PlayerInfo[player1][pJailed] = 1;
  1526. format(string, sizeof(string),"Administrator %s has jailed %s for %i minutes [Reason: %s]", adminname, playername, jtime, reason);
  1527. return SendClientMessageToAll(BLUE, string);
  1528. }
  1529. else return SendClientMessage(playerid,RED,"[JADMIN]: Player is already in jail!");
  1530. }
  1531. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected or is the highest level admin");
  1532. }
  1533. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  1534. }
  1535. CMD:unjail(playerid, params[])
  1536. {
  1537. if(PlayerInfo[playerid][pAdmin] >= 1)
  1538. {
  1539. new player1, adminname[MAX_PLAYER_NAME], playername[MAX_PLAYER_NAME], string[256];
  1540. GetPlayerName(playerid, adminname, MAX_PLAYER_NAME);
  1541. GetPlayerName(player1, playername, MAX_PLAYER_NAME);
  1542. if(sscanf(params,"d", player1)) return SendClientMessage(playerid, RED,"[USAGE]: /unjail [playerid]");
  1543. if(IsPlayerConnected(player1))
  1544. {
  1545. if(PlayerInfo[player1][pJailed] == 1)
  1546. {
  1547. TargetCMDMessage(playerid, player1,"UNJAIL");
  1548. ReleaseFromJail(player1);
  1549. PlayerInfo[player1][pJailed] = 0;
  1550. format(string, sizeof(string),"Administrator %s has unjailed %s", adminname, playername);
  1551. return SendClientMessageToAll(BLUE, string);
  1552. }
  1553. else return SendClientMessage(playerid,RED,"[JADMIN]: Player is not in jail!");
  1554. }
  1555. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected or is the highest level admin");
  1556. }
  1557. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  1558. }
  1559. CMD:adminduty(playerid, params[])
  1560. {
  1561. if(PlayerInfo[playerid][pAdmin] >= 1)
  1562. {
  1563. if(PlayerInfo[playerid][AdminDuty] == 0)
  1564. {
  1565. new string[100];
  1566. format(string, sizeof(string),"%s is now on admin duty!", PlayerName(playerid));
  1567. SendClientMessageToAll(RED, string);
  1568. PlayerInfo[playerid][AdminDuty] = 1;
  1569. SetPlayerHealth(playerid, 99999.0);
  1570. GivePlayerWeapon(playerid, 38, 20000);
  1571. SetPlayerSkin(playerid, 217);
  1572. SetPlayerColor(playerid, 0xFD01FDAA);
  1573. }
  1574. else if(PlayerInfo[playerid][AdminDuty] == 1)
  1575. {
  1576. new string[100];
  1577. format(string, sizeof(string),"%s is now off admin duty!", PlayerName(playerid));
  1578. SendClientMessageToAll(RED, string);
  1579. PlayerInfo[playerid][AdminDuty] = 0;
  1580. SetPlayerHealth(playerid, 0.0);
  1581. ForceClassSelection(playerid);
  1582. }
  1583. }
  1584. else return SendClientMessage(playerid, RED,"[JADMIN]: You need to be admin to use this command!");
  1585. return 1;
  1586. }
  1587. //---------------------Level 4+ Commands----------------------------------------
  1588. CMD:giveallcash(playerid, params[])
  1589. {
  1590. for(new i = 0; i < MAX_PLAYERS; i ++)
  1591. {
  1592. if(PlayerInfo[playerid][pAdmin] >= 4)
  1593. {
  1594. new ammount;
  1595. if(sscanf(params,"d", ammount)) return SendClientMessage(playerid, RED,"[USAGE]: /giveallcash [ammount]");
  1596. if(IsPlayerConnected(i))
  1597. {
  1598. GivePlayerMoney(i, ammount);
  1599. new str[150];
  1600. format(str, sizeof(str),"Administrator %s has given everyone $%d money", PlayerName(playerid), ammount);
  1601. SendClientMessage(i, BLUE, str);
  1602. }
  1603. }
  1604. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  1605. }
  1606. return 1;
  1607. }
  1608. CMD:giveallscore(playerid, params[])
  1609. {
  1610. for(new i = 0; i < MAX_PLAYERS; i ++)
  1611. {
  1612. if(PlayerInfo[playerid][pAdmin] >= 4)
  1613. {
  1614. new ammount;
  1615. if(sscanf(params,"d", ammount)) return SendClientMessage(playerid, RED,"[USAGE]: /giveallscore [ammount]");
  1616. if(IsPlayerConnected(i))
  1617. {
  1618. SetPlayerScore(i, GetPlayerScore(i)+ammount);
  1619. new str[150];
  1620. format(str, sizeof(str),"Administrator %s has given everyone %d score(s)", PlayerName(playerid), ammount);
  1621. SendClientMessage(i, BLUE, str);
  1622. }
  1623. }
  1624. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  1625. }
  1626. return 1;
  1627. }
  1628. CMD:giveallweapon(playerid, params[])
  1629. {
  1630. for(new i = 0; i < MAX_PLAYERS; i ++)
  1631. {
  1632. if(PlayerInfo[playerid][pAdmin] >= 4)
  1633. {
  1634. new weapid, ammo;
  1635. if(sscanf(params,"dd", weapid, ammo)) return SendClientMessage(playerid, RED,"[USAGE]: /giveallweapon [weapon] [ammo]");
  1636. if(IsValidWeapon(weapid))
  1637. {
  1638. if(IsPlayerConnected(i))
  1639. {
  1640. GivePlayerWeapon(i, weapid, ammo);
  1641. new str[150];
  1642. format(str, sizeof(str),"Administrator %s has given everyone %d ammo of weapon %d", PlayerName(playerid), ammo, weapid);
  1643. SendClientMessage(i, BLUE, str);
  1644. }
  1645. }
  1646. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not allowed to give this weapon!");
  1647. }
  1648. else return SendClientMessage(playerid, RED,"[JADMIN]: You are not high enough level to use this command!");
  1649. }
  1650. return 1;
  1651. }
  1652. CMD:setscore(playerid, params[])
  1653. {
  1654. new player1, amount;
  1655. if(PlayerInfo[playerid][pAdmin] >= 4)
  1656. {
  1657. if(sscanf(params,"dd", player1, amount)) return SendClientMessage(playerid, RED,"USAGE: /setscore [playerid][amount]");
  1658. if(!IsPlayerConnected(player1)) return SendClientMessage(playerid, RED,"[JADMIN]: Player not connected!");
  1659. SetPlayerScore(player1, amount);
  1660. TargetCMDMessage(playerid, player1,"SETSCORE");
  1661. new str[100], str1[100];
  1662. format(str, sizeof(str),"Administrator %s has setted your score(s) to %d", PlayerName(playerid),amount);
  1663. format(str1, sizeof(str1),"You have setted %s's score(s) to %d", PlayerName(player1), amount);
  1664. SendClientMessage(player1, BLUE, str);
  1665. SendClientMessage(playerid, BLUE, str1);
  1666. }
  1667. else return SendClientMessage(playerid, RED,"[JADMIN]: You need to be admin level 4 to use this command!");
  1668. return 1;
  1669. }
  1670. CMD:setcash(playerid, params[])
  1671. {
  1672. new player1, amount;
  1673. if(PlayerInfo[playerid][pAdmin] >= 4)
  1674. {
  1675. if(sscanf(params,"dd", player1, amount)) return SendClientMessage(playerid, RED,"USAGE: /setcash [playerid][amount]");
  1676. if(!IsPlayerConnected(player1)) return SendClientMessage(playerid, RED,"[JADMIN]: Player not connected!");
  1677. GivePlayerMoney(player1, amount);
  1678. TargetCMDMessage(playerid, player1,"SETCASH");
  1679. new str[100], str1[100];
  1680. format(str, sizeof(str),"Administrator %s has setted your cash to $%d", PlayerName(playerid),amount);
  1681. format(str1, sizeof(str1),"You have setted %s's cash to $%d", PlayerName(player1), amount);
  1682. SendClientMessage(player1, BLUE, str);
  1683. SendClientMessage(playerid, BLUE, str1);
  1684. }
  1685. else return SendClientMessage(playerid, RED,"[JADMIN]: You need to be admin level 4 to use this command!");
  1686. return 1;
  1687. }
  1688. CMD:setkills(playerid, params[])
  1689. {
  1690. new player1, amount;
  1691. if(PlayerInfo[playerid][pAdmin] >= 4)
  1692. {
  1693. if(sscanf(params,"dd", player1, amount)) return SendClientMessage(playerid, RED,"USAGE: /setkills [playerid][amount]");
  1694. if(!IsPlayerConnected(player1)) return SendClientMessage(playerid, RED,"[JADMIN]: Player not connected!");
  1695. PlayerInfo[playerid][pKills] = amount;
  1696. TargetCMDMessage(playerid, player1,"SETKILLS");
  1697. new str[100], str1[100];
  1698. format(str, sizeof(str),"Administrator %s has setted your kill(s) to %d", PlayerName(playerid),amount);
  1699. format(str1, sizeof(str1),"You have setted %s's kill(s) to %d", PlayerName(player1), amount);
  1700. SendClientMessage(player1, BLUE, str);
  1701. SendClientMessage(playerid, BLUE, str1);
  1702. }
  1703. else return SendClientMessage(playerid, RED,"[JADMIN]: You need to be admin level 4 to use this command!");
  1704. return 1;
  1705. }
  1706. CMD:setdeaths(playerid, params[])
  1707. {
  1708. new player1, amount;
  1709. if(PlayerInfo[playerid][pAdmin] >= 4)
  1710. {
  1711. if(sscanf(params,"dd", player1, amount)) return SendClientMessage(playerid, RED,"USAGE: /setdeaths [playerid][amount]");
  1712. if(!IsPlayerConnected(player1)) return SendClientMessage(playerid, RED,"[JADMIN]: Player not connected!");
  1713. PlayerInfo[playerid][pDeaths] = amount;
  1714. TargetCMDMessage(playerid, player1,"SETDEATHS");
  1715. new str[100], str1[100];
  1716. format(str, sizeof(str),"Administrator %s has setted your death(s) to %d", PlayerName(playerid),amount);
  1717. format(str1, sizeof(str1),"You have setted %s's death(s) to %d", PlayerName(player1), amount);
  1718. SendClientMessage(player1, BLUE, str);
  1719. SendClientMessage(playerid, BLUE, str1);
  1720. }
  1721. else return SendClientMessage(playerid, RED,"[JADMIN]: You need to be admin level 4 to use this command!");
  1722. return 1;
  1723. }
  1724. //--------------------- [ Ping Check ] -----------------------------------------
  1725. forward PingChecker(playerid);
  1726. public PingChecker(playerid)
  1727. {
  1728. if(PlayerInfo[playerid][pAdmin] < 7 && SInfo[AllowedPing] != 0)
  1729. {
  1730. new ping = GetPlayerPing(playerid);
  1731. if(ping > SInfo[AllowedPing])
  1732. {
  1733. new str[100];
  1734. format(str, sizeof(str),"%s has been kicked for exceeding ping limit ( Ping: %d | Allowed: %d )", PlayerName(playerid), ping, SInfo[AllowedPing]);
  1735. SendClientMessageToAll(RED, str);
  1736. Kick(playerid);
  1737. }
  1738. }
  1739. return 1;
  1740. }
  1741. //---------------------- [ UnMuteMe] -------------------------------------------
  1742. forward UnMuteMe(playerid);
  1743. public UnMuteMe(playerid)
  1744. {
  1745. PlayerInfo[playerid][pMuted] = 0;
  1746. PlayerInfo[playerid][pMuteTime] = 0;
  1747. SendClientMessage(playerid, BLUE,"You have been 'Un-Muted'");
  1748. return 1;
  1749. }
  1750. //-------------- [ OnPlayerPause ] ---------------------------------------------
  1751. forward IsPaused(playerid);
  1752. public IsPaused(playerid)
  1753. {
  1754. for(new p = 0; p != GetMaxPlayers(); p ++)
  1755. {
  1756. if(!IsPlayerConnected(p)) continue;
  1757. {
  1758. GetPlayerHealth(p, pHealth);
  1759. if(pHealth < 0) continue;
  1760. /*
  1761. i = interger (p)
  1762. f = float (pHealth)
  1763. */
  1764. SetTimerEx("CheckPlayerPaused", 1500, false, "if", p, pHealth); //Checking that player is paused
  1765. SetPlayerHealth(p, pHealth-0.1);
  1766. }
  1767. }
  1768. return 1;
  1769. }
  1770. forward CheckPlayerPaused(playerid, Float:health);
  1771. public CheckPlayerPaused(playerid, Float:health)
  1772. {
  1773. GetPlayerHealth(playerid, pHealth);
  1774. if(!floatcmp(pHealth, health))
  1775. {
  1776. if(PlayerInfo[playerid][Paused] == 0)
  1777. {
  1778. PlayerInfo[playerid][Paused] = 1;
  1779. PauseKickTimer[playerid] = SetTimerEx("PauseKick", 1000, false, "d", playerid);
  1780. }
  1781. }
  1782. else
  1783. {
  1784. if(PlayerInfo[playerid][Paused] == 1)
  1785. {
  1786. PlayerInfo[playerid][Paused] = 0;
  1787. KillTimer(PauseKickTimer[playerid]);
  1788. }
  1789. }
  1790. SetPlayerHealth(playerid, pHealth+0.1);
  1791. return 1;
  1792. }
  1793. forward PauseKick(playerid);
  1794. public PauseKick(playerid)
  1795. {
  1796. if(PlayerInfo[playerid][Paused] == 1)
  1797. {
  1798. new str[120], name[MAX_PLAYER_NAME];
  1799. GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  1800. format(str, sizeof(str),"%s has been kicked from server for being Away from Keyboard for more than %d seconds!", name, MAX_AFK_TIME);
  1801. SendClientMessageToAll(RED, str);
  1802. KillTimer(PauseKickTimer[playerid]);
  1803. Kick(playerid);
  1804. }
  1805. return 1;
  1806. }
  1807. //--------------------Jail CMD forwards and stocks------------------------------
  1808.  
  1809.  
  1810. forward ReleaseFromJail(player1);
  1811. public ReleaseFromJail(player1)
  1812. {
  1813. KillTimer( JailTimer[player1] );
  1814. PlayerInfo[player1][pJailTime] = 0; PlayerInfo[player1][pJailed] = 0;
  1815. SetPlayerInterior(player1,0); SetPlayerPos(player1, 0.0, 0.0, 0.0); SpawnPlayer(player1);
  1816. PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1817. GameTextForPlayer(player1,"~g~Released",3000,3);
  1818. SendClientMessage(player1,RED, "You have been released from jail by admin!");
  1819. }
  1820. //---------------------------------------------Normal players-------------------
  1821. CMD:pm(playerid, params[])
  1822. {
  1823. new player1, str[100], pstr[100], astr[102], msg[133];
  1824. if(sscanf(params,"ds[133]", player1, msg)) return SendClientMessage(playerid, RED,"[USAGE]: /pm [ id ] [ message ]");
  1825. if(IsPlayerConnected(player1))
  1826. {
  1827. if(player1 != playerid)
  1828. {
  1829. if(DND[player1] != 1)
  1830. {
  1831. format(str, sizeof(str),"PM [TO] %s[%d]: %s", PlayerName(player1), player1, msg);
  1832. format(pstr, sizeof(str),"PM [FROM] %s[%d]: %s", PlayerName(playerid), playerid, msg);
  1833. format(astr, sizeof(astr),"PM [FROM] %s[%d] [TO] %s[%d]: %s", PlayerName(playerid), playerid, PlayerName(player1), player1, msg);
  1834. SendClientMessage(playerid, YELLOW, str);
  1835. SendClientMessage(player1, YELLOW, pstr);
  1836. MessageToAdmins(GREY, astr);
  1837. }
  1838. else return SendClientMessage(playerid, RED,"User is in [NO PM] mode!");
  1839. }
  1840. else return SendClientMessage(playerid, RED,"[JADMIN]: You cannot PM yourself!");
  1841. }
  1842. else return SendClientMessage(playerid, RED,"[JADMIN]: Player is not connected!");
  1843. return 1;
  1844. }
  1845. CMD:nopm(playerid, params)
  1846. {
  1847. if(DND[playerid] == 0)
  1848. {
  1849. DND[playerid] = 1;
  1850. SendClientMessage(playerid, GREEN,"No PM mode enabled! "cred"You will not recieve any more PMs");
  1851. }
  1852. else if(DND[playerid] == 1)
  1853. {
  1854. DND[playerid] = 0;
  1855. SendClientMessage(playerid, RED,"No PM mode disabled! "cgreen"You will now recieve PMs");
  1856. }
  1857. return 1;
  1858. }
  1859. //=================== [ OnPlayerCommandRecieved ] =============================
  1860.  
  1861. public OnPlayerCommandReceived(playerid, cmdtext[])
  1862. {
  1863. if(PlayerInfo[playerid][pJailed] == 1 && PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid,RED,"[JADMIN]: You cannot use commands in jail");
  1864. if(PlayerInfo[playerid][pLogged] == 0) return SendClientMessage(playerid, RED,"[JADMIN]: You need to be logged-in before using any command!");
  1865. new string[128], pnamee[MAX_PLAYER_NAME];
  1866. GetPlayerName(playerid, pnamee, sizeof(pnamee));
  1867. format(string, sizeof(string), "*** %s [%d] used: %s", pnamee,playerid,cmdtext);
  1868. for(new i = 0; i < MAX_PLAYERS; i++)
  1869. {
  1870. if(IsPlayerConnected(i))
  1871. {
  1872. if( (PlayerInfo[i][pAdmin] > PlayerInfo[playerid][pAdmin]) && (PlayerInfo[i][pAdmin] > 5) && (i != playerid) )
  1873. {
  1874. SendClientMessage(i, 0xAAAAAAFF, string);
  1875. }
  1876. }
  1877. }
  1878. return 1;
  1879. }
  1880. //================ [ OnPlayerText ] ============================================
  1881. public OnPlayerText(playerid, text[])
  1882. {
  1883. if(text[0] == '.' && PlayerInfo[playerid][pAdmin] >= 1)
  1884. {
  1885. new str[128];
  1886. format(str, sizeof(str),"A.Chat %s: %s", PlayerName(playerid), text[1]);
  1887. MessageToAdmins(0x690069AA, str);
  1888. return 0;
  1889. }
  1890. if(SInfo[DCHAT] == 1)
  1891. {
  1892. SendClientMessage(playerid, RED,"Chat has been disabled!");
  1893. return 0;
  1894. }
  1895. if(SInfo[Spam] == 1 && !IsPlayerAdmin(playerid) && PlayerInfo[playerid][pAdmin] < 7)
  1896. {
  1897. if(GetTickCount() - PlayerInfo[playerid][pSpamTime] < MSG_TIME_LIMIT)
  1898. {
  1899. new string[128];
  1900. format(string, sizeof(string),"[JADMIN]: Anti-Spam warning! You must wait for %d seconds for each message!", MSG_TIME_LIMIT/1000);
  1901. SendClientMessage(playerid, RED,string);
  1902. return 0;
  1903. }
  1904. PlayerInfo[playerid][pSpamTime] = GetTickCount();
  1905. }
  1906. if(PlayerInfo[playerid][pMuted] == 1)
  1907. {
  1908. SendClientMessage(playerid, RED,"[JADMIN]: You cannot speak! you are muted!");
  1909. return 0;
  1910. }
  1911. switch(PlayerInfo[playerid][AdminDuty])
  1912. {
  1913. case 0:
  1914. {
  1915. new str[128];
  1916. format(str, sizeof(str),"%s [%d]: {FFFFFF}%s", PlayerName(playerid), playerid, text);
  1917. SendClientMessageToAll(GetPlayerColor(playerid),str);
  1918. return 0;
  1919. }
  1920. case 1:
  1921. {
  1922. new string[128];
  1923. format(string, sizeof(string),"Admin %s: %s", PlayerName(playerid), text);
  1924. SendClientMessageToAll(0xFD01FDAA, string);
  1925. return 0;
  1926. }
  1927. }
  1928. return 1;
  1929. }
  1930. //==================== [ OnPlayerStateChange ] =================================
  1931. public OnPlayerStateChange(playerid, newstate, oldstate)
  1932. {
  1933. return 1;
  1934. }
  1935. //================ [ OnPlayerExitVehicle ] =====================================
  1936. public OnPlayerExitVehicle(playerid, vehicleid)
  1937. {
  1938. if(HasSpawnedCar[playerid] == 1)
  1939. {
  1940. DestroyVehicle(vehicleid);
  1941. }
  1942. return 1;
  1943. }
  1944. //=========Thank you============================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement