Advertisement
Guest User

JAdmin Updated.

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