Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 74.78 KB | None | 0 0
  1. /*x---------------------------------Important-------------------------------------x*/
  2. //**INCLUDES**//
  3. #include <a_samp>
  4. //**PRAGMAS**//
  5. #pragma tabsize 0
  6. //**MISC**//
  7.  
  8. /*x---------------------------------Defining-------------------------------------x*/
  9. //**COLORS*//
  10. #define GREEN 0x21DD00FF
  11. #define RED 0xE60000FF
  12. #define ADMIN_RED 0xFB0000FF
  13. #define YELLOW 0xFFFF00FF
  14. #define ORANGE 0xF97804FF
  15. #define LIGHTRED 0xFF8080FF
  16. #define LIGHTBLUE 0x00C2ECFF
  17. #define PURPLE 0xB360FDFF
  18. #define PLAYER_COLOR 0xFFFFFFFF
  19. #define BLUE 0x1229FAFF
  20. #define LIGHTGREEN 0x38FF06FF
  21. #define DARKPINK 0xE100E1FF
  22. #define DARKGREEN 0x008040FF
  23. #define ANNOUNCEMENT 0x00CACAFB
  24. #define COLOR_SYSTEM 0xEFEFF7AA
  25. #define NICESKY 0x99FFFFAA
  26. #define GRAY 0xCECECEFF
  27. //**MISC**//
  28. #define STRING 128
  29. //**VARIABLES**//
  30. enum Info
  31. {
  32. AdminLevel,
  33. Password[128],
  34. Cash,
  35. Warns,
  36. Jail,
  37. Logged,
  38. Mute,
  39. };
  40. new CountText[5][30] ={
  41. "~w~countdown~n~~r~~h~1",
  42. "~w~countdown~n~~r~2",
  43. "~w~countdown~n~~y~3",
  44. "~w~countdown~n~~b~4",
  45. "~w~countdown~n~~b~~h~5"
  46. };
  47. new AccountInfo[MAX_PLAYERS][Info];
  48. new SuperPunch[MAX_PLAYERS];
  49. new ViewCmds[MAX_PLAYERS];
  50. new Count=5;
  51. new player[24];
  52. new giveplayer[24];
  53. new Hide[200];
  54. new Drugs[200];
  55. new Admin;
  56. //**FORWARDS**//
  57. forward SendClientMessageToAdmins(color,string[],alevel);
  58. forward OnPlayerRegister(playerid,password[]);
  59. forward OnPlayerLogin(playerid,password[]);
  60. forward OnPlayerUpdate(playerid);
  61. forward BanLog(string[]);
  62. forward KickLog(string[]);
  63. forward VehicleLog(string[]);
  64. forward CountDown();
  65. forward Encrypt(string[]);
  66. /*x---------------------------------CallBacks-------------------------------------x*/
  67. stock strtok(const string[], &index,seperator=' ')
  68. {
  69. new length = strlen(string);
  70. new offset = index;
  71. new result[128];
  72. while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
  73. {
  74. result[index - offset] = string[index];
  75. index++;
  76. }
  77.  
  78. result[index - offset] = EOS;
  79. if ((index < length) && (string[index] == seperator))
  80. {
  81. index++;
  82. }
  83. return result;
  84. }
  85. stock IsNumeric(const string[])
  86. {
  87. for (new i = 0, j = strlen(string); i < j; i++)
  88. if (string[i] > '9' || string[i] < '0')
  89. return 0;
  90. return 1;
  91. }
  92.  
  93. ReturnUser(text[], playerid = INVALID_PLAYER_ID)
  94. {
  95. new pos = 0;
  96. while (text[pos] < 0x21)
  97. {
  98. if (text[pos] == 0) return INVALID_PLAYER_ID;
  99. pos++;
  100. }
  101. new userid = INVALID_PLAYER_ID;
  102. if (IsNumeric(text[pos]))
  103. {
  104. userid = strval(text[pos]);
  105. if (userid >=0 && userid < MAX_PLAYERS)
  106. {
  107. if(!IsPlayerConnected(userid))
  108. userid = INVALID_PLAYER_ID;
  109. else return userid;
  110. }
  111. }
  112. new len = strlen(text[pos]);
  113. new count = 0;
  114. new pname[MAX_PLAYER_NAME];
  115. for (new i = 0; i < MAX_PLAYERS; i++)
  116. {
  117. if (IsPlayerConnected(i))
  118. {
  119. GetPlayerName(i, pname, sizeof (pname));
  120. if (strcmp(pname, text[pos], true, len) == 0)
  121. {
  122. if (len == strlen(pname)) return i;
  123. else
  124. {
  125. count++;
  126. userid = i;
  127. }
  128. }
  129. }
  130. }
  131. if (count != 1)
  132. {
  133. if (playerid != INVALID_PLAYER_ID)
  134. {
  135. if (count) SendClientMessage(playerid, COLOR_SYSTEM, "There are multiple users, enter full playername.");
  136. else SendClientMessage(playerid, COLOR_SYSTEM, "Playername not found.");
  137. }
  138. userid = INVALID_PLAYER_ID;
  139. }
  140. return userid;
  141. }
  142. stock ini_GetKey( line[] )
  143. {
  144. new keyRes[256];
  145. keyRes[0] = 0;
  146. if ( strfind( line , "=" , true ) == -1 ) return keyRes;
  147. strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
  148. return keyRes;
  149. }
  150.  
  151. stock ini_GetValue( line[] )
  152. {
  153. new valRes[256];
  154. valRes[0]=0;
  155. if ( strfind( line , "=" , true ) == -1 ) return valRes;
  156. strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
  157. return valRes;
  158. }
  159.  
  160. public VehicleLog(string[])
  161. {
  162. new entry[256];
  163. format(entry, sizeof(entry), "%s\r\n",string);
  164. new File:hFile;
  165. hFile = fopen("vehiclespawn.log", io_append);
  166. if (hFile)
  167. {
  168. fwrite(hFile, entry);
  169. fclose(hFile);
  170. }
  171. }
  172.  
  173. public KickLog(string[])
  174. {
  175. new entry[256];
  176. format(entry, sizeof(entry), "%s\r\n",string);
  177. new File:hFile;
  178. hFile = fopen("kick.log", io_append);
  179. if (hFile)
  180. {
  181. fwrite(hFile, entry);
  182. fclose(hFile);
  183. }
  184. }
  185.  
  186. public BanLog(string[])
  187. {
  188. new entry[256];
  189. format(entry, sizeof(entry), "%s\r\n",string);
  190. new File:hFile;
  191. hFile = fopen("ban.log", io_append);
  192. if (hFile)
  193. {
  194. fwrite(hFile, entry);
  195. fclose(hFile);
  196. }
  197. }
  198. public SendClientMessageToAdmins(color,string[],alevel)
  199. {
  200. for(new i = 0; i < MAX_PLAYERS; i++)
  201. {
  202. if(IsPlayerConnected(i))
  203. {
  204. if (AccountInfo[i][AdminLevel] >= alevel)
  205. {
  206. SendClientMessage(i, color, string);
  207. printf("%s", string);
  208. }
  209. }
  210. }
  211. return 1;
  212. }
  213. public OnPlayerRegister(playerid, password[])
  214. {
  215. if(IsPlayerConnected(playerid))
  216. {
  217. GetPlayerName(playerid, player, 50);
  218. new string3[32];
  219. new playername3[MAX_PLAYER_NAME];
  220. GetPlayerName(playerid, playername3, sizeof(playername3));
  221. format(string3, sizeof(string3), "/sAccounts/%s.ini", playername3);
  222. new ip[20];
  223. GetPlayerIp(playerid,ip,sizeof(ip));
  224. new File: hFile = fopen(string3, io_write);
  225. if (hFile)
  226. {
  227. strmid(AccountInfo[playerid][Password], password, 0, strlen(password), 255);
  228. AccountInfo[playerid][Cash] = GetPlayerMoney(playerid);
  229. new var[128];
  230. format(var, 128, "Password=%s\n", AccountInfo[playerid][Password]);fwrite(hFile, var);
  231. format(var, 128, "Cash=%d\n", AccountInfo[playerid][Cash]);fwrite(hFile, var);
  232. format(var, 128, "AdminLevel=%d\n",AccountInfo[playerid][AdminLevel]);fwrite(hFile, var);
  233. format(var, 128, "Warnings=%d\n",AccountInfo[playerid][Warns]);fwrite(hFile, var);
  234. format(var, 128, "IP=%s\n",ip);fwrite(hFile, var);
  235. fclose(hFile);
  236. SendClientMessage(playerid, GREEN, "|- Account successfully registered. You can now login ( /login [password] ) -|");
  237. }
  238. }
  239. return 1;
  240. }
  241.  
  242. public OnPlayerUpdate(playerid)
  243. {
  244. if(IsPlayerConnected(playerid))
  245. {
  246. if(AccountInfo[playerid][Logged] == 1)
  247. {
  248. new string3[128];
  249. new playername3[MAX_PLAYER_NAME];
  250. GetPlayerName(playerid, playername3, sizeof(playername3));
  251. format(string3, sizeof(string3), "/sAccounts/%s.ini", playername3);
  252. new ip[20];
  253. GetPlayerIp(playerid,ip,sizeof(ip));
  254. new File: hFile = fopen(string3, io_write);
  255. if (hFile)
  256. {
  257. AccountInfo[playerid][Cash] = GetPlayerMoney(playerid);
  258. new var[128];
  259. format(var, 128, "Password=%s\n", AccountInfo[playerid][Password]);fwrite(hFile, var);
  260. format(var, 128, "Cash=%d\n", AccountInfo[playerid][Cash]);fwrite(hFile, var);
  261. format(var, 128, "AdminLevel=%d\n",AccountInfo[playerid][AdminLevel]);fwrite(hFile, var);
  262. format(var, 128, "Warnings=%d\n",AccountInfo[playerid][Warns]);fwrite(hFile, var);
  263. format(var, 128, "IP=%s\n",ip);fwrite(hFile, var);
  264. fclose(hFile);
  265. }
  266. }
  267. }
  268. return 1;
  269. }
  270.  
  271. public OnPlayerLogin(playerid,password[])
  272. {
  273. // new tmp2[256];
  274. new string2[128];
  275. new playername2[MAX_PLAYER_NAME];
  276. GetPlayerName(playerid, playername2, sizeof(playername2));
  277. format(string2, sizeof(string2), "/sAccounts/%s.ini", playername2);
  278. new File: UserFile = fopen(string2, io_read);
  279. if ( UserFile )
  280. {
  281. new PassData[256];
  282. new keytmp[256], valtmp[256];
  283. fread( UserFile , PassData , sizeof( PassData ) );
  284. keytmp = ini_GetKey( PassData );
  285. if( strcmp( keytmp , "Password" , true ) == 0 )
  286. {
  287. valtmp = ini_GetValue( PassData );
  288. strmid(AccountInfo[playerid][Password], valtmp, 0, strlen(valtmp)-1, 255);
  289. }
  290. if(strcmp(AccountInfo[playerid][Password],password, true ) == 0 )
  291. {
  292. new key[256] , val[256];
  293. new Data[256];
  294. while ( fread( UserFile , Data , sizeof( Data ) ) )
  295. {
  296. key = ini_GetKey( Data );
  297. if( strcmp( key , "AdminLevel" , true ) == 0 ) { val = ini_GetValue( Data ); AccountInfo[playerid][AdminLevel] = strval( val ); }
  298. if( strcmp( key , "Cash" , true ) == 0 ) { val = ini_GetValue( Data ); AccountInfo[playerid][Cash] = strval( val ); }
  299. if( strcmp( key , "Warnings" , true ) == 0 ) { val = ini_GetValue( Data ); AccountInfo[playerid][Warns] = strval( val ); }
  300. }
  301. fclose(UserFile);
  302. AccountInfo[playerid][Logged] = 1;
  303.  
  304. }
  305. else
  306. {
  307. SendClientMessage(playerid, RED, "Incorrect Password.");
  308. fclose(UserFile);
  309. return 1;
  310. }
  311. GivePlayerMoney(playerid,AccountInfo[playerid][Cash]);
  312. format(string2, sizeof(string2), " |- You have successfully logged in as %s -|",playername2);
  313. SendClientMessage(playerid, GREEN,string2);
  314. printf("%s has logged in.",playername2);
  315. if (AccountInfo[playerid][AdminLevel] >= 1)
  316. {
  317. format(string2, sizeof(string2), "|» You are now logged in as a Level %d Admin «|",AccountInfo[playerid][AdminLevel]);
  318. SendClientMessage(playerid, LIGHTGREEN,string2);
  319. ViewCmds[playerid] = 1;
  320. Admin++;
  321. }
  322. }
  323. return 1;
  324. }
  325.  
  326. public OnFilterScriptInit()
  327. {
  328. print("<|-----------------------------------------|>");
  329. print(" | .: [ - argh! admin system by mincer - ] :. |");
  330. print("<|-----------------------------------------|>");
  331. Admin = 0;
  332. return 1;
  333. }
  334.  
  335. public OnFilterScriptExit()
  336. {
  337. return 1;
  338. }
  339.  
  340. public OnPlayerRequestSpawn(playerid)
  341. {
  342. new string[128];
  343. GetPlayerName(playerid,player,24);
  344. format(string,128,"/sAccounts/%s.ini",player);
  345. if (fexist(string) && AccountInfo[playerid][Logged] == 0)
  346. {
  347. SendClientMessage(playerid,RED,"Your account is registered. You must first login in order to spawn.");
  348. return 0;
  349. }
  350. else return 1;
  351. }
  352.  
  353. public OnPlayerConnect(playerid)
  354. {
  355. AccountInfo[playerid][Jail] = 0;
  356. AccountInfo[playerid][AdminLevel] = 0;
  357. AccountInfo[playerid][Warns] = 0;
  358. AccountInfo[playerid][Logged] = 0;
  359. AccountInfo[playerid][Mute] = 0;
  360. Drugs[playerid] = 0;
  361. Hide[playerid] = 0;
  362. SuperPunch[playerid] = 0;
  363. ViewCmds[playerid] = 0;
  364. new string[128];
  365. GetPlayerName(playerid, player, 50);
  366. format(string, sizeof(string), "/sAccounts/%s.ini", player);
  367. if(fexist(string))
  368. {
  369. SendClientMessage(playerid, GRAY, "[LOGIN]: That account is registered.");
  370. SendClientMessage(playerid, GRAY, "Please login to retrieve your account info/stats ( /login [password] )");
  371. }
  372. else SendClientMessage(playerid,RED,"[REGISTER]: Your account isn't registered. Please register. ( /register [password] )");
  373. return 1;
  374. }
  375.  
  376. public OnPlayerDisconnect(playerid, reason)
  377. {
  378. if (AccountInfo[playerid][AdminLevel] >= 1) Admin++;
  379. OnPlayerUpdate(playerid);
  380.  
  381. AccountInfo[playerid][Jail] = 0;
  382. AccountInfo[playerid][AdminLevel] = 0;
  383. AccountInfo[playerid][Warns] = 0;
  384. AccountInfo[playerid][Logged] = 0;
  385. AccountInfo[playerid][Mute] = 0;
  386. Drugs[playerid] = 0;
  387. Hide[playerid] = 0;
  388. SuperPunch[playerid] = 0;
  389. ViewCmds[playerid] = 0;
  390. return 1;
  391. }
  392.  
  393. public OnPlayerSpawn(playerid)
  394. {
  395. return 1;
  396. }
  397.  
  398. public OnPlayerDeath(playerid, killerid, reason)
  399. {
  400. SendDeathMessage(killerid, playerid, reason);
  401. return 1;
  402. }
  403.  
  404. public OnVehicleSpawn(vehicleid)
  405. {
  406. return 1;
  407. }
  408.  
  409. public OnVehicleDeath(vehicleid, killerid)
  410. {
  411. return 1;
  412. }
  413.  
  414. public OnPlayerText(playerid, text[])
  415. {
  416. if (AccountInfo[playerid][Mute] == 1)
  417. {
  418. SendClientMessage(playerid, RED, "You are muted! You cannot talk.");
  419. return 0;
  420. }
  421. return 1;
  422. }
  423.  
  424. public OnPlayerCommandText(playerid, cmdtext[])
  425. {
  426. new cmd[128];
  427. new tmp[128];
  428. new idx;
  429. new giveplayerid;
  430. new sendername[24];
  431. new string[STRING];
  432. cmd = strtok(cmdtext,idx);
  433. /*»»»»»»»»»»»»»»»»»»»»»»»»»»»» [ADMINS] «««««««««««««««««««««««««««*/
  434. if(strcmp(cmd, "/makeadmin", true) == 0)
  435. {
  436. if (AccountInfo[playerid][AdminLevel] >= 5 || IsPlayerAdmin(playerid))
  437. {
  438. tmp = strtok(cmdtext, idx);
  439. if(!strlen(tmp))
  440. {
  441. SendClientMessage(playerid, ORANGE, "USAGE: /makeadmin [playerid] [level 1-5]");
  442. SendClientMessage(playerid, ORANGE, "FUNCTION: Player will be an admin.");
  443. return 1;
  444. }
  445. giveplayerid = ReturnUser(tmp);
  446. tmp = strtok(cmdtext, idx);
  447. new level = strval(tmp);
  448. if(giveplayerid != INVALID_PLAYER_ID)
  449. {
  450. if (level >= 0 && level <= 6)
  451. {
  452. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  453. GetPlayerName(playerid, sendername, sizeof(sendername));
  454. printf("[ADMIN NEWS]: %s made %s a level %d admin.", sendername, giveplayer, level);
  455. format(string, sizeof(string), "You are now an administrator level %d thanks to %s.", level, sendername);
  456. SendClientMessage(giveplayerid, LIGHTBLUE, string);
  457. format(string, sizeof(string), "|- Administrator %s has given %s an Admin Level. [Level: %d] -|", sendername,giveplayer,level);
  458. SendClientMessage(playerid, ADMIN_RED, string);
  459. AccountInfo[giveplayerid][AdminLevel] = level;
  460. format(string, sizeof(string), "You have given %s level %d admin.", giveplayer,AccountInfo[giveplayerid][AdminLevel]);
  461. SendClientMessage(playerid, LIGHTBLUE, string);
  462. }
  463. else return SendClientMessage(playerid, RED, "Level must be at least 0(player) or 6(Lead Admin-Hidden in the admin list) !");
  464. }
  465. else if(giveplayerid == INVALID_PLAYER_ID)
  466. {
  467. format(string, sizeof(string), "%i is not an active player.", giveplayerid);
  468. SendClientMessage(playerid, RED, string);
  469. }
  470. }
  471. else SendClientMessage(playerid, RED, "You are not a lead admin!");
  472. return 1;
  473. }
  474. if(strcmp(cmd, "/kickall", true) == 0)
  475. {
  476. new reason[STRING];
  477. if (AccountInfo[playerid][AdminLevel] >= 5 || IsPlayerAdmin(playerid))
  478. {
  479. GetPlayerName(playerid, sendername, sizeof(sendername));
  480. new length = strlen(cmdtext);
  481. while ((idx < length) && (cmdtext[idx] <= ' '))
  482. {
  483. idx++;
  484. }
  485. new offset = idx;
  486. while ((idx < length) && ((idx - offset) < (sizeof(reason) - 1)))
  487. {
  488. reason[idx - offset] = cmdtext[idx];
  489. idx++;
  490. }
  491. reason[idx - offset] = EOS;
  492. if(!strlen(reason))
  493. {
  494. SendClientMessage(playerid, ORANGE, "USAGE: /kickall [reason]");
  495. SendClientMessage(playerid, ORANGE, "FUNCTION: Will kick all the players.");
  496. return 1;
  497. }
  498. printf("[ADMIN NEWS]: Admin %s kicked everyone. Reason: %s", sendername, reason);
  499. format(string, sizeof(string), "-| Administrator %s kicked everyone. [Reason: %s ]|-", sendername,reason);
  500. SendClientMessageToAll(ADMIN_RED, string);
  501. for(new i = 0; i < MAX_PLAYERS; i++)
  502. {
  503. if (i != playerid)
  504. {
  505. Kick(i);
  506. KickLog(string);
  507. }
  508. }
  509. }
  510. else SendClientMessage(playerid, RED, "You are not a lead admin!");
  511. return 1;
  512. }
  513. if(strcmp(cmd, "/nuke", true) == 0)
  514. {
  515. if (AccountInfo[playerid][AdminLevel] >= 3)
  516. {
  517. tmp = strtok(cmdtext, idx);
  518. if(!strlen(tmp))
  519. {
  520. SendClientMessage(playerid, ORANGE, "USAGE: /nuke [playerid]");
  521. SendClientMessage(playerid, ORANGE, "FUNCTION: Player will explode.");
  522. return 1;
  523. }
  524. new Float:X,Float:Y,Float:Z;
  525. giveplayerid = ReturnUser(tmp);
  526. if(IsPlayerConnected(giveplayerid))
  527. {
  528. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  529. GetPlayerName(playerid, player, sizeof(player));
  530. GetPlayerPos(giveplayerid, X,Y,Z);
  531. CreateExplosion(X,Y,Z,2,7.0);
  532. SetPlayerHealth(giveplayerid, 0.0);
  533. format(string, sizeof(string), "-| Administrator %s nuked %s |-",player,giveplayer);
  534. SendClientMessageToAdmins(ADMIN_RED, string,1);
  535. }
  536. else if (!IsPlayerConnected(giveplayerid))
  537. {
  538. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  539. SendClientMessage(playerid, RED, string);
  540. }
  541. }
  542. else
  543. {
  544. SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  545. }
  546. return 1;
  547. }
  548. if(strcmp(cmd, "/score", true) == 0)
  549. {
  550. new score;
  551. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  552. if (IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 1)
  553. {
  554. tmp = strtok(cmdtext, idx);
  555. if(!strlen(tmp))
  556. {
  557. SendClientMessage(playerid, ORANGE, "USAGE: /score [playerid] [score]");
  558. SendClientMessage(playerid, ORANGE, "FUNCTION: Will set a specified player's score");
  559. return 1;
  560. }
  561. giveplayerid = ReturnUser(tmp);
  562. tmp = strtok(cmdtext, idx);
  563. if(!strlen(tmp))
  564. {
  565. SendClientMessage(playerid, ORANGE, "USAGE: /score [playerid] [score]");
  566. SendClientMessage(playerid, ORANGE, "FUNCTION: Will set a specified player's score");
  567. return 1;
  568. }
  569. score = strval(tmp);
  570. if(IsPlayerConnected(giveplayerid))
  571. {
  572. GetPlayerName(giveplayerid,giveplayer,24);
  573. GetPlayerScore(giveplayerid);
  574. SetPlayerScore(giveplayerid, score);
  575. format(string, sizeof(string), "You have changed %s's score number to %d.",giveplayer, score);
  576. SendClientMessage(playerid, GREEN, string);
  577. }
  578. else if (!IsPlayerConnected(giveplayerid))
  579. {
  580. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  581. SendClientMessage(playerid, RED, string);
  582. }
  583. }
  584. else
  585. {
  586. SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  587. }
  588. return 1;
  589. }
  590. if(strcmp(cmd, "/angle", true) == 0)
  591. {
  592. if (IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 1)
  593. {
  594. new Float:angle;
  595. tmp = strtok(cmdtext, idx);
  596. if(!strlen(tmp))
  597. {
  598. SendClientMessage(playerid, ORANGE, "USAGE: /angle [angle degree]");
  599. SendClientMessage(playerid, ORANGE, "FUNCTION: Will change your current angle.");
  600. GetPlayerFacingAngle(playerid,angle);
  601. format(string, sizeof(string), "HELP: Your current angle is %f **NOTE**: Bugged a little.",angle);
  602. SendClientMessage(playerid, ORANGE, string);
  603. return 1;
  604. }
  605. angle = strval(tmp);
  606. if (GetPlayerState(playerid)==PLAYER_STATE_DRIVER)
  607. {
  608. SetVehicleZAngle(GetPlayerVehicleID(playerid),angle);
  609. format(string, sizeof(string), "You have changed your angle degree to %f",angle);
  610. SendClientMessage(playerid, GREEN, string);
  611. }
  612. else
  613. {
  614. SetPlayerFacingAngle(playerid,angle);
  615. format(string, sizeof(string), "You have changed your angle degree to %f",angle);
  616. SendClientMessage(playerid, GREEN, string);
  617. }
  618. }
  619. else
  620. {SendClientMessage(playerid, RED, "You're not an admin with the required level.");}
  621. return 1;
  622. }
  623. if(strcmp(cmd, "/banip", true) == 0)
  624. {
  625. tmp = strtok(cmdtext,idx);
  626. if (AccountInfo[playerid][AdminLevel] >= 5)
  627. {
  628. new ip[128],ban[128];
  629. giveplayerid = ReturnUser(tmp);
  630. if (IsPlayerConnected(giveplayerid))
  631. {
  632. GetPlayerName(giveplayerid,giveplayer,24);
  633. GetPlayerIp(giveplayerid,ip,128);
  634. strdel(ip,strlen(ip)-2,strlen(ip));
  635. format(ip,128,"%s**",ip);
  636. format(ban,128,"banip %s",ip);
  637. SendRconCommand(ban);
  638. SendClientMessage(playerid, GREEN, "Player Banned");
  639. }
  640. else
  641. {
  642. format(string, sizeof(string), "%i is not an active player.", giveplayerid);
  643. SendClientMessage(playerid, RED, string);
  644. }
  645. }
  646. else
  647. {
  648. SendClientMessage(playerid, RED, "You're not a lead admin !");
  649. }
  650. return 1;
  651. }
  652.  
  653. if(strcmp(cmd, "/getip", true) == 0)
  654. {
  655. if (AccountInfo[playerid][AdminLevel] >= 1 || IsPlayerAdmin(playerid))
  656. {
  657. tmp = strtok(cmdtext, idx);
  658. if(!strlen(tmp))
  659. {
  660. SendClientMessage(playerid, ORANGE, "USAGE: /getip [playerid]");
  661. SendClientMessage(playerid, ORANGE, "FUNCTION: Will view a player's IP.");
  662. return 1;
  663. }
  664.  
  665. giveplayerid = ReturnUser(tmp);
  666. if(IsPlayerConnected(giveplayerid))
  667. {
  668. new sstring[256];
  669. new ip[128];
  670. GetPlayerIp(giveplayerid,ip,128);
  671. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  672. format(sstring, sizeof(sstring), "-| %s's IP: %s |-", giveplayer,ip);
  673. SendClientMessage(playerid,LIGHTBLUE, sstring);
  674. }
  675. else
  676. {
  677. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  678. SendClientMessage(playerid, RED, string);
  679. }
  680. }
  681. else
  682. {
  683. SendClientMessage(playerid, RED, "You are not an admin.");
  684. }
  685. return 1;
  686. }
  687. if(strcmp(cmd, "/ban", true) == 0)
  688. {
  689. new reason[128];
  690. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  691. {
  692. tmp = strtok(cmdtext, idx);
  693. if(!strlen(tmp))
  694. {
  695. SendClientMessage(playerid, ORANGE, "USAGE: /ban [playerid] [reason]");
  696. SendClientMessage(playerid, ORANGE, "FUNCTION: Will BAN the specified player.");
  697. return 1;
  698. }
  699. giveplayerid = ReturnUser(tmp);
  700. if (AccountInfo[giveplayerid][AdminLevel] > AccountInfo[playerid][AdminLevel])
  701. {
  702. format(string, sizeof(string), "-| [%i]%s tried to ban you! |-",playerid,player);
  703. SendClientMessage(giveplayerid, ADMIN_RED,string);
  704. SendClientMessage(playerid, ADMIN_RED, "You are not allowed to ban an admin with a higher level than you!");
  705. }
  706. else if(giveplayerid != INVALID_PLAYER_ID)
  707. {
  708. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  709. GetPlayerName(playerid, sendername, sizeof(sendername));
  710. new length = strlen(cmdtext);
  711. while ((idx < length) && (cmdtext[idx] <= ' '))
  712. {
  713. idx++;
  714. }
  715. new offset = idx;
  716. while ((idx < length) && ((idx - offset) < (sizeof(reason) - 1)))
  717. {
  718. reason[idx - offset] = cmdtext[idx];
  719. idx++;
  720. }
  721. reason[idx - offset] = EOS;
  722. if(!strlen(reason))
  723. {
  724. SendClientMessage(playerid, ORANGE, "USAGE: /ban [playerid] [reason]");
  725. return 1;
  726. }
  727. else
  728. {
  729. new sstring[256];
  730. new ip[128];
  731. printf("[ADMIN NEWS]: Admin %s banned %s. Reason: %s", sendername, giveplayer, reason);
  732. format(string, sizeof(string), "-| Administrator %s banned %s. [Reason: %s ]|-", sendername,giveplayer,reason);
  733. SendClientMessageToAll(ADMIN_RED, string);
  734. GetPlayerIp(giveplayerid,ip,128);
  735. format(sstring, sizeof(sstring), "-| Banned Player's IP: %s |-", ip);
  736. SendClientMessageToAdmins(ADMIN_RED, sstring,1);
  737. AccountInfo[giveplayerid][AdminLevel] = 0;
  738. BanEx(giveplayerid,reason);
  739. }
  740. }
  741. else if(giveplayerid == INVALID_PLAYER_ID)
  742. {
  743. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  744. SendClientMessage(playerid, RED, string);
  745. }
  746. }
  747. else
  748. {
  749. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  750. }
  751. return 1;
  752. }
  753. if(strcmp(cmd, "/kick", true) == 0)
  754. {
  755. new reason[256];
  756. if (AccountInfo[playerid][AdminLevel] >= 1 || IsPlayerAdmin(playerid))
  757. {
  758. tmp = strtok(cmdtext, idx);
  759. if(!strlen(tmp))
  760. {
  761. SendClientMessage(playerid, ORANGE, "USAGE: /kick [playerid] [reason]");
  762. SendClientMessage(playerid, ORANGE, "FUNCTION: Will kick the specified player.");
  763. return 1;
  764. }
  765.  
  766. giveplayerid = ReturnUser(tmp);
  767. if(giveplayerid != INVALID_PLAYER_ID)
  768. {
  769. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  770. GetPlayerName(playerid, sendername, sizeof(sendername));
  771. new length = strlen(cmdtext);
  772. while ((idx < length) && (cmdtext[idx] <= ' '))
  773. {
  774. idx++;
  775. }
  776. new offset = idx;
  777. while ((idx < length) && ((idx - offset) < (sizeof(reason) - 1)))
  778. {
  779. reason[idx - offset] = cmdtext[idx];
  780. idx++;
  781. }
  782. reason[idx - offset] = EOS;
  783. if(!strlen(reason))
  784. {
  785. SendClientMessage(playerid, ORANGE, "USAGE: /kick [playerid] [reason]");
  786. return 1;
  787. }
  788. else
  789. {
  790. printf("[ADMIN NEWS]: Admin %s kicked %s. Reason: %s", sendername, giveplayer, reason);
  791. format(string, sizeof(string), "-| Administrator %s kicked %s. [Reason: %s ]|-", sendername,giveplayer,reason);
  792. SendClientMessageToAll(ADMIN_RED, string);
  793. Kick(giveplayerid);
  794. KickLog(string);
  795. format(string, sizeof(string), "** [%i]%s left the server. ( Kicked ) **",playerid,player);
  796. SendClientMessageToAll(GRAY, string);
  797. }
  798. }
  799.  
  800. else if(giveplayerid == INVALID_PLAYER_ID)
  801. {
  802. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  803. SendClientMessage(playerid, RED, string);
  804. }
  805. }
  806. else
  807. {
  808. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  809. }
  810. return 1;
  811. }
  812. if(strcmp(cmd, "/mute", true) == 0)
  813. {
  814. new reason[164];
  815. if (AccountInfo[playerid][AdminLevel] >= 1 || IsPlayerAdmin(playerid))
  816. {
  817. tmp = strtok(cmdtext, idx);
  818. if(!strlen(tmp))
  819. {
  820. SendClientMessage(playerid, ORANGE, "USAGE: /mute [playerid] [reason]");
  821. SendClientMessage(playerid, ORANGE, "FUNCTION: Will mute the specified player.");
  822. return 1;
  823. }
  824.  
  825. giveplayerid = ReturnUser(tmp);
  826.  
  827. if(giveplayerid != INVALID_PLAYER_ID)
  828. {
  829. if (AccountInfo[giveplayerid][Mute] == 0)
  830. {
  831. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  832. GetPlayerName(playerid, sendername, sizeof(sendername));
  833. new length = strlen(cmdtext);
  834. while ((idx < length) && (cmdtext[idx] <= ' '))
  835. {
  836. idx++;
  837. }
  838. new offset = idx;
  839. while ((idx < length) && ((idx - offset) < (sizeof(reason) - 1)))
  840. {
  841. reason[idx - offset] = cmdtext[idx];
  842. idx++;
  843. }
  844. reason[idx - offset] = EOS;
  845. if(!strlen(reason))
  846. {
  847. SendClientMessage(playerid, ORANGE, "USAGE: /mute [playerid] [reason]");
  848. return 1;
  849. }
  850. else
  851. {
  852. printf("[ADMIN NEWS]: Admin %s muted %s. Reason: %s", sendername, giveplayer, reason);
  853. format(string, sizeof(string), "-| Administrator %s muted %s. [Reason: %s ]|-", sendername,giveplayer,reason);
  854. SendClientMessageToAll(ADMIN_RED, string);
  855. AccountInfo[giveplayerid][Mute] = 1;
  856. }
  857. }
  858. else if (AccountInfo[giveplayerid][Mute] == 1)
  859. {
  860. SendClientMessage(playerid, RED, "Player is already muted!");
  861. }
  862. }
  863.  
  864. else if(giveplayerid == INVALID_PLAYER_ID)
  865. {
  866. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  867. SendClientMessage(playerid, RED, string);
  868. }
  869. }
  870. else
  871. {
  872. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  873. }
  874. return 1;
  875. }
  876. if(strcmp(cmd, "/unmute", true) == 0)
  877. {
  878. if (AccountInfo[playerid][AdminLevel] >= 2 || IsPlayerAdmin(playerid))
  879. {
  880. tmp = strtok(cmdtext, idx);
  881. if(!strlen(tmp))
  882. {
  883. SendClientMessage(playerid, ORANGE, "USAGE: /unmute [playerid]");
  884. SendClientMessage(playerid, ORANGE, "FUNCTION: Will unmute the specified player. ");
  885. return 1;
  886. }
  887.  
  888. giveplayerid = ReturnUser(tmp);
  889.  
  890. if(giveplayerid != INVALID_PLAYER_ID)
  891. {
  892. if (AccountInfo[giveplayerid][Mute] == 1)
  893. {
  894. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  895. GetPlayerName(playerid, sendername, sizeof(sendername));
  896. printf("[ADMIN NEWS]: Admin %s unmuted %s.", sendername, giveplayer);
  897. format(string, sizeof(string), "-| Administrator %s unmuted %s |-", sendername,giveplayer);
  898. SendClientMessageToAll(ADMIN_RED, string);
  899. AccountInfo[giveplayerid][Mute] = 0;
  900. }
  901. else if (AccountInfo[giveplayerid][Mute] == 0)
  902. {
  903. SendClientMessage(playerid, RED, "Player isn't muted.");
  904. }
  905. }
  906.  
  907. else if(giveplayerid == INVALID_PLAYER_ID)
  908. {
  909. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  910. SendClientMessage(playerid, RED, string);
  911. }
  912. }
  913. else
  914. {
  915. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  916. }
  917. return 1;
  918. }
  919.  
  920. if(strcmp(cmd, "/freeze", true) == 0)
  921. {
  922. new reason[64];
  923. if (AccountInfo[playerid][AdminLevel] >= 1 || IsPlayerAdmin(playerid))
  924. {
  925. tmp = strtok(cmdtext, idx);
  926. if(!strlen(tmp))
  927. {
  928. SendClientMessage(playerid, ORANGE, "USAGE: /freeze [playerid] [reason]");
  929. SendClientMessage(playerid, ORANGE, "FUNCTION: Will freeze the specified player. ");
  930. return 1;
  931. }
  932.  
  933. giveplayerid = ReturnUser(tmp);
  934. if(giveplayerid != INVALID_PLAYER_ID)
  935. {
  936. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  937. GetPlayerName(playerid, sendername, sizeof(sendername));
  938. new length = strlen(cmdtext);
  939. while ((idx < length) && (cmdtext[idx] <= ' '))
  940. {
  941. idx++;
  942. }
  943. new offset = idx;
  944. while ((idx < length) && ((idx - offset) < (sizeof(reason) - 1)))
  945. {
  946. reason[idx - offset] = cmdtext[idx];
  947. idx++;
  948. }
  949. reason[idx - offset] = EOS;
  950. if(!strlen(reason))
  951. {
  952. SendClientMessage(playerid, ORANGE, "USAGE: /freeze [playerid] [reason]");
  953. return 1;
  954. }
  955. else
  956. {
  957. printf("[ADMIN NEWS]: Admin %s froze %s. Reason: %s", sendername, giveplayer, reason);
  958. format(string, sizeof(string), "-| Administrator %s froze %s. [Reason: %s ]|-", sendername,giveplayer,reason);
  959. SendClientMessageToAdmins(ADMIN_RED, string,1);
  960. TogglePlayerControllable(giveplayerid,0);
  961. }
  962. }
  963.  
  964. else if(giveplayerid == INVALID_PLAYER_ID)
  965. {
  966. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  967. SendClientMessage(playerid, RED, string);
  968. }
  969. }
  970. else
  971. {
  972. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  973. }
  974. return 1;
  975. }
  976. if(strcmp(cmd, "/unfreeze", true) == 0)
  977. {
  978. if (AccountInfo[playerid][AdminLevel] >= 1 || IsPlayerAdmin(playerid))
  979. {
  980. tmp = strtok(cmdtext, idx);
  981. if(!strlen(tmp))
  982. {
  983. SendClientMessage(playerid, ORANGE, "USAGE: /unfreeze [playerid]");
  984. SendClientMessage(playerid, ORANGE, "FUNCTION: Will unfreeze the specified player. ");
  985. return 1;
  986. }
  987.  
  988. giveplayerid = ReturnUser(tmp);
  989. if(giveplayerid != INVALID_PLAYER_ID)
  990. {
  991. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  992. GetPlayerName(playerid, sendername, sizeof(sendername));
  993. printf("[ADMIN NEWS]: Admin %s unfroze %s.", sendername, giveplayer);
  994. format(string, sizeof(string), "-| Administrator %s unfroze %s |-", sendername,giveplayer);
  995. SendClientMessageToAdmins(ADMIN_RED, string,1);
  996. TogglePlayerControllable(giveplayerid,1);
  997. }
  998.  
  999. else if(giveplayerid == INVALID_PLAYER_ID)
  1000. {
  1001. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1002. SendClientMessage(playerid, RED, string);
  1003. }
  1004. }
  1005. else
  1006. {
  1007. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1008. }
  1009. return 1;
  1010. }
  1011. if(strcmp(cmd, "/setname", true) == 0)
  1012. {
  1013. new newname[128];
  1014. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  1015. {
  1016. tmp = strtok(cmdtext, idx);
  1017. if(!strlen(tmp))
  1018. {
  1019. SendClientMessage(playerid, ORANGE, "USAGE: /setname [playerid] [newname]");
  1020. SendClientMessage(playerid, ORANGE, "FUNCTION: Will change the player's current name. ");
  1021. return 1;
  1022. }
  1023.  
  1024. giveplayerid = ReturnUser(tmp);
  1025. if(giveplayerid != INVALID_PLAYER_ID)
  1026. {
  1027. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  1028. GetPlayerName(playerid, sendername, sizeof(sendername));
  1029. new length = strlen(cmdtext);
  1030. while ((idx < length) && (cmdtext[idx] <= ' '))
  1031. {
  1032. idx++;
  1033. }
  1034. new offset = idx;
  1035. while ((idx < length) && ((idx - offset) < (sizeof(newname) - 1)))
  1036. {
  1037. newname[idx - offset] = cmdtext[idx];
  1038. idx++;
  1039. }
  1040. newname[idx - offset] = EOS;
  1041. if(!strlen(newname))
  1042. {
  1043. SendClientMessage(playerid, ORANGE, "USAGE: /setname [playerid] [newname]");
  1044. return 1;
  1045. }
  1046. else
  1047. {
  1048. printf("[ADMIN NEWS]: Admin %s renamed %s.", sendername, giveplayer);
  1049. format(string, sizeof(string), "-| Administrator %s renamed %s. [New Name: %s ] |-", sendername,giveplayer,newname);
  1050. SendClientMessageToAdmins(ADMIN_RED, string,1);
  1051. SetPlayerName(giveplayerid, newname);
  1052. }
  1053. }
  1054.  
  1055. else if(giveplayerid == INVALID_PLAYER_ID)
  1056. {
  1057. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1058. SendClientMessage(playerid, RED, string);
  1059. }
  1060. }
  1061. else
  1062. {
  1063. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1064. }
  1065. return 1;
  1066. }
  1067. if(strcmp(cmd, "/givecash", true) == 0)
  1068. {
  1069. new cash;
  1070. if (AccountInfo[playerid][AdminLevel] >= 5 || IsPlayerAdmin(playerid))
  1071. {
  1072. tmp = strtok(cmdtext, idx);
  1073. if(!strlen(tmp))
  1074. {
  1075. SendClientMessage(playerid, ORANGE, "USAGE: /givecash [playerid] [cash]");
  1076. SendClientMessage(playerid, ORANGE, "FUNCTION: Will give the player some cash. ");
  1077. return 1;
  1078. }
  1079.  
  1080. giveplayerid = ReturnUser(tmp);
  1081. if(giveplayerid != INVALID_PLAYER_ID)
  1082. {
  1083. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  1084. GetPlayerName(playerid, sendername, sizeof(sendername));
  1085. tmp = strtok(cmdtext, idx);
  1086. cash = strval(tmp);
  1087. if(!strlen(tmp))
  1088. {
  1089. SendClientMessage(playerid, ORANGE, "USAGE: /givecash [playerid] [cash]");
  1090. return 1;
  1091. }
  1092. else
  1093. {
  1094. printf("[ADMIN NEWS]: Admin %s gave %s $%d.", sendername, giveplayer, cash);
  1095. format(string, sizeof(string), "-| Administrator %s gave %s $%d |-", sendername,giveplayer,cash);
  1096. SendClientMessageToAdmins(ADMIN_RED, string,1);
  1097. GivePlayerMoney(giveplayerid, cash);
  1098. }
  1099. }
  1100.  
  1101. else if(giveplayerid == INVALID_PLAYER_ID)
  1102. {
  1103. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1104. SendClientMessage(playerid, RED, string);
  1105. }
  1106. }
  1107. else
  1108. {
  1109. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1110. }
  1111. return 1;
  1112. }
  1113. if(strcmp(cmd, "/kill", true) == 0)
  1114. {
  1115. if (AccountInfo[playerid][AdminLevel] >= 1 || IsPlayerAdmin(playerid))
  1116. {
  1117. tmp = strtok(cmdtext, idx);
  1118. if(!strlen(tmp))
  1119. {
  1120. SendClientMessage(playerid, ORANGE, "USAGE: /kill [playerid]");
  1121. SendClientMessage(playerid, ORANGE, "FUNCTION: Will kill the specified player.");
  1122. return 1;
  1123. }
  1124.  
  1125. giveplayerid = ReturnUser(tmp);
  1126. if(giveplayerid != INVALID_PLAYER_ID)
  1127. {
  1128. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  1129. GetPlayerName(playerid, sendername, sizeof(sendername));
  1130. printf("[ADMIN NEWS]: Admin %s killed %s", sendername, giveplayer);
  1131. format(string, sizeof(string), "-| Administrator %s killed %s |-", sendername,giveplayer);
  1132. SendClientMessageToAdmins(ADMIN_RED, string,1);
  1133. SetPlayerHealth(giveplayerid, 0.0);
  1134. }
  1135.  
  1136. else if(giveplayerid == INVALID_PLAYER_ID)
  1137. {
  1138. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1139. SendClientMessage(playerid, RED, string);
  1140. }
  1141. }
  1142. else
  1143. {
  1144. SendClientMessage(playerid, RED, "You have committed suicide.");
  1145. SetPlayerHealth(playerid,0.0);
  1146. }
  1147. return 1;
  1148. }
  1149. if(strcmp(cmd, "/goto", true) == 0)
  1150. {
  1151. new Float:pX,Float:pY,Float:pZ;
  1152. if (AccountInfo[playerid][AdminLevel] >= 1 || IsPlayerAdmin(playerid))
  1153. {
  1154. tmp = strtok(cmdtext, idx);
  1155. if(!strlen(tmp))
  1156. {
  1157. SendClientMessage(playerid, ORANGE, "USAGE: /goto [playerid]");
  1158. SendClientMessage(playerid, ORANGE, "FUNCTION: Will teleport to the specified player.");
  1159. return 1;
  1160. }
  1161. giveplayerid = ReturnUser(tmp);
  1162. if(giveplayerid != INVALID_PLAYER_ID)
  1163. {
  1164. GetPlayerName(playerid,player,50);
  1165. GetPlayerName(giveplayerid,giveplayer,50);
  1166. if (GetPlayerState(playerid) == 2)
  1167. {
  1168. GetPlayerPos(giveplayerid,pX,pY,pZ);
  1169. SetVehiclePos(GetPlayerVehicleID(playerid),pX,pY,pZ+2);
  1170. }
  1171. else
  1172. {
  1173. GetPlayerPos(giveplayerid,pX,pY,pZ);
  1174. SetPlayerPos(playerid,pX,pY,pZ+2);
  1175. }
  1176. SetPlayerInterior(playerid,GetPlayerInterior(giveplayerid));
  1177. printf("[ADMIN NEWS]: Admin %s teleported to %s. ( /goto )", player, giveplayer);
  1178. }
  1179. else if(giveplayerid == INVALID_PLAYER_ID)
  1180. {
  1181. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1182. SendClientMessage(playerid, RED, string);
  1183. }
  1184. }
  1185. else
  1186. {
  1187. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1188. }
  1189. return 1;
  1190. }
  1191. if(strcmp(cmd, "/get", true) == 0)
  1192. {
  1193. new Float:pX,Float:pY,Float:pZ;
  1194. if (AccountInfo[playerid][AdminLevel] >= 2 || IsPlayerAdmin(playerid))
  1195. {
  1196. tmp = strtok(cmdtext, idx);
  1197. if(!strlen(tmp))
  1198. {
  1199. SendClientMessage(playerid, ORANGE, "USAGE: /get [playerid]");
  1200. SendClientMessage(playerid, ORANGE, "FUNCTION: Will teleport the specified player to you.");
  1201. return 1;
  1202. }
  1203. giveplayerid = ReturnUser(tmp);
  1204. if(giveplayerid != INVALID_PLAYER_ID)
  1205. {
  1206. GetPlayerName(playerid,player,50);
  1207. GetPlayerName(giveplayerid,giveplayer,50);
  1208. if (GetPlayerState(giveplayerid) == PLAYER_STATE_DRIVER)
  1209. {
  1210. GetPlayerPos(playerid,pX,pY,pZ);
  1211. SetVehiclePos(GetPlayerVehicleID(giveplayerid),pX,pY,pZ+2);
  1212. }
  1213. else
  1214. {
  1215. GetPlayerPos(playerid,pX,pY,pZ);
  1216. SetPlayerPos(giveplayerid,pX,pY,pZ+2);
  1217. }
  1218. SetPlayerInterior(giveplayerid,GetPlayerInterior(playerid));
  1219. printf("[ADMIN NEWS]: Admin %s teleported %s to him. ( /get )", player, giveplayer);
  1220. }
  1221. else if(giveplayerid == INVALID_PLAYER_ID)
  1222. {
  1223. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1224. SendClientMessage(playerid, RED, string);
  1225. }
  1226. }
  1227. else
  1228. {
  1229. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1230. }
  1231. return 1;
  1232. }
  1233. if(!strcmp(cmdtext, "//", true, 2))
  1234. {
  1235. if (AccountInfo[playerid][AdminLevel] >= 1 || IsPlayerAdmin(playerid))
  1236. {
  1237. if(!strlen(cmdtext[2])) return SendClientMessage(playerid, ORANGE, "USAGE: '/a<text>'");
  1238. GetPlayerName(playerid, player, sizeof(player));
  1239. format(string, sizeof(string), "Admin [%i]%s: %s" ,playerid,player, cmdtext[2]);
  1240. SendClientMessageToAdmins(DARKPINK,string,1);
  1241. return 1;
  1242. }
  1243. else return SendClientMessage(playerid, RED, "You are not an admin!");
  1244. }
  1245.  
  1246. if(strcmp(cmd, "/slap", true) == 0)
  1247. {
  1248. new Float:pX,Float:pY,Float:pZ;
  1249. if (AccountInfo[playerid][AdminLevel] >= 1 || IsPlayerAdmin(playerid))
  1250. {
  1251. tmp = strtok(cmdtext, idx);
  1252. if(!strlen(tmp))
  1253. {
  1254. SendClientMessage(playerid, ORANGE, "USAGE: /slap [playerid]");
  1255. SendClientMessage(playerid, ORANGE, "FUNCTION: Will slap the specified player(He will teleport 5 meters higher)");
  1256. return 1;
  1257. }
  1258.  
  1259. giveplayerid = ReturnUser(tmp);
  1260. if(giveplayerid != INVALID_PLAYER_ID)
  1261. {
  1262. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  1263. GetPlayerName(playerid, sendername, sizeof(sendername));
  1264. GetPlayerPos(giveplayerid,pX,pY,pZ);
  1265. SetPlayerPos(giveplayerid,pX,pY,pZ+5);
  1266. printf("[ADMIN NEWS]: Admin %s slapped %s.", sendername, giveplayer);
  1267. format(string, sizeof(string), "-| Administrator %s slapped %s |-",sendername, giveplayer);
  1268. SendClientMessageToAdmins(ADMIN_RED,string,1);
  1269. }
  1270. else if(giveplayerid == INVALID_PLAYER_ID)
  1271. {
  1272. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1273. SendClientMessage(playerid, RED, string);
  1274. }
  1275. }
  1276. else
  1277. {
  1278. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1279. }
  1280. return 1;
  1281. }
  1282. if(strcmp(cmd, "/bslap", true) == 0)
  1283. {
  1284. new Float:pX,Float:pY,Float:pZ;
  1285. if (AccountInfo[playerid][AdminLevel] >= 2 || IsPlayerAdmin(playerid))
  1286. {
  1287. tmp = strtok(cmdtext, idx);
  1288. if(!strlen(tmp))
  1289. {
  1290. SendClientMessage(playerid, ORANGE, "USAGE: /bslap [playerid]");
  1291. SendClientMessage(playerid, ORANGE, "FUNCTION: Will double slap the specified player(He will teleport 10 meters higher)");
  1292. return 1;
  1293. }
  1294.  
  1295. giveplayerid = ReturnUser(tmp);
  1296. if(giveplayerid != INVALID_PLAYER_ID)
  1297. {
  1298. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  1299. GetPlayerName(playerid, sendername, sizeof(sendername));
  1300. GetPlayerPos(giveplayerid,pX,pY,pZ);
  1301. SetPlayerPos(giveplayerid,pX,pY,pZ+10);
  1302. printf("[ADMIN NEWS]: Admin %s bitch slapped %s.", sendername, giveplayer);
  1303. format(string, sizeof(string), "-| Administrator %s bitch slapped %s |-",sendername, giveplayer);
  1304. SendClientMessageToAdmins(ADMIN_RED,string,1);
  1305. }
  1306. else if(giveplayerid == INVALID_PLAYER_ID)
  1307. {
  1308. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1309. SendClientMessage(playerid, RED, string);
  1310. }
  1311. }
  1312. else
  1313. {
  1314. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1315. }
  1316. return 1;
  1317. }
  1318.  
  1319. if(strcmp(cmd, "/disarm", true) == 0)
  1320. {
  1321. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  1322. {
  1323. tmp = strtok(cmdtext, idx);
  1324. if(!strlen(tmp))
  1325. {
  1326. SendClientMessage(playerid, ORANGE, "USAGE: /disarm [playerid]");
  1327. SendClientMessage(playerid, ORANGE, "FUNCTION: Will disarm the player.");
  1328. return 1;
  1329. }
  1330.  
  1331. giveplayerid = ReturnUser(tmp);
  1332. if(giveplayerid != INVALID_PLAYER_ID)
  1333. {
  1334. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  1335. GetPlayerName(playerid, sendername, sizeof(sendername));
  1336. ResetPlayerWeapons(giveplayerid);
  1337. format(string, sizeof(string), "-| Administrator %s disarmed %s |-",sendername, giveplayer);
  1338. SendClientMessageToAdmins(ADMIN_RED,string,1);
  1339. }
  1340. else if(giveplayerid == INVALID_PLAYER_ID)
  1341. {
  1342. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1343. SendClientMessage(playerid, RED, string);
  1344. }
  1345. }
  1346. else
  1347. {
  1348. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1349. }
  1350. return 1;
  1351. }
  1352. if(strcmp(cmd, "/say", true) == 0)
  1353. {
  1354. if (AccountInfo[playerid][AdminLevel] >= 1 || IsPlayerAdmin(playerid))
  1355. {
  1356. GetPlayerName(playerid, player, sizeof(player));
  1357. new length = strlen(cmdtext);
  1358. while ((idx < length) && (cmdtext[idx] <= ' '))
  1359. {
  1360. idx++;
  1361. }
  1362. new offset = idx;
  1363. new result[256];
  1364. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  1365. {
  1366. result[idx - offset] = cmdtext[idx];
  1367. idx++;
  1368. }
  1369. result[idx - offset] = EOS;
  1370. if(!strlen(result))
  1371. {
  1372. SendClientMessage(playerid, ORANGE, "USAGE: /say [message]");
  1373. SendClientMessage(playerid, ORANGE, "FUNCTION: Will broadcast an admin message.");
  1374. return 1;
  1375. }
  1376. format(string, sizeof(string), "* Admin: %s", result);
  1377. SendClientMessageToAll(LIGHTRED, string);
  1378. printf("%s", string);
  1379. }
  1380. else
  1381. {
  1382. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1383. }
  1384. return 1;
  1385. }
  1386. if(strcmp(cmd, "/bc", true) == 0 || strcmp(cmd, "/broadcast", true) == 0)
  1387. {
  1388. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  1389. {
  1390. GetPlayerName(playerid, player, sizeof(player));
  1391. new length = strlen(cmdtext);
  1392. while ((idx < length) && (cmdtext[idx] <= ' '))
  1393. {
  1394. idx++;
  1395. }
  1396. new offset = idx;
  1397. new result[256];
  1398. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  1399. {
  1400. result[idx - offset] = cmdtext[idx];
  1401. idx++;
  1402. }
  1403. result[idx - offset] = EOS;
  1404. if(!strlen(result))
  1405. {
  1406. SendClientMessage(playerid, ORANGE, "USAGE: /bc [message]");
  1407. SendClientMessage(playerid, ORANGE, "FUNCTION: Will broadcast a screen message");
  1408. return 1;
  1409. }
  1410. format(string, sizeof(string), "~w~%s", result);
  1411. GameTextForAll(string,5000,4);
  1412. printf("%s", string);
  1413. }
  1414. else
  1415. {
  1416. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1417. }
  1418. return 1;
  1419. }
  1420. if(strcmp(cmd, "/veh", true) == 0)
  1421. {
  1422. if (AccountInfo[playerid][AdminLevel] >= 2 || IsPlayerAdmin(playerid))
  1423. {
  1424. tmp = strtok(cmdtext, idx);
  1425. if(!strlen(tmp))
  1426. {
  1427. SendClientMessage(playerid, ORANGE, "USAGE: /veh [carid] [color1] [color2]");
  1428. return 1;
  1429. }
  1430. new car;
  1431. car = strval(tmp);
  1432. if(car < 400 || car > 611) { SendClientMessage(playerid, RED, "Vehicle ID can't be below 400 nor above 611 !"); return 1; }
  1433. tmp = strtok(cmdtext, idx);
  1434. if(!strlen(tmp))
  1435. {
  1436. SendClientMessage(playerid, ORANGE, "USAGE: /veh [carid] [color1] [color2]");
  1437. return 1;
  1438. }
  1439. new color1;
  1440. color1 = strval(tmp);
  1441. if(color1 < 0 || color1 > 126) { SendClientMessage(playerid, RED, "Color ID can't be below 0 nor above 126 !"); return 1; }
  1442. tmp = strtok(cmdtext, idx);
  1443. if(!strlen(tmp))
  1444. {
  1445. SendClientMessage(playerid, ORANGE, "USAGE: /veh [carid] [color1] [color2]");
  1446. return 1;
  1447. }
  1448. new color2;
  1449. color2 = strval(tmp);
  1450. if(color2 < 0 || color2 > 126) { SendClientMessage(playerid, RED, "Color ID can't be below 0 nor above 126 !"); return 1; }
  1451. new Float:X,Float:Y,Float:Z;
  1452. GetPlayerPos(playerid, X,Y,Z);
  1453. new carid = CreateVehicle(car, X,Y,Z, 0.0, color1, color2, 600000000);
  1454. format(string, sizeof(string), "Vehicle ID %d spawned.", carid);
  1455. SendClientMessage(playerid, GREEN, string);
  1456. GetPlayerName(playerid,player,sizeof(player));
  1457. format(string, sizeof(string), "-| Administrator %s spawned a vehicle [ ID: %d (%d) ]|-",player, carid,GetVehicleModel(carid));
  1458. SendClientMessageToAdmins(ADMIN_RED,string,1);
  1459. }
  1460. else
  1461. {
  1462. SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  1463. }
  1464. return 1;
  1465. }
  1466.  
  1467. if(strcmp(cmd, "/weaps", true) == 0)
  1468. {
  1469. if(IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 1)
  1470. {
  1471. tmp = strtok(cmdtext, idx);
  1472. if(!strlen(tmp))
  1473. {
  1474. SendClientMessage(playerid, ORANGE, "USAGE: /weaps [playerid/name]");
  1475. return 1;
  1476. }
  1477. giveplayerid = ReturnUser(tmp);
  1478. if (giveplayerid != INVALID_PLAYER_ID)
  1479. {
  1480. new bullets[12];
  1481. new weapons[12];
  1482. new weapname[12][50];
  1483. GetPlayerWeaponData(giveplayerid,1,weapons[0],bullets[0]);
  1484. GetPlayerWeaponData(giveplayerid,2,weapons[1],bullets[1]);
  1485. GetPlayerWeaponData(giveplayerid,3,weapons[2],bullets[2]);
  1486. GetPlayerWeaponData(giveplayerid,4,weapons[3],bullets[3]);
  1487. GetPlayerWeaponData(giveplayerid,5,weapons[4],bullets[4]);
  1488. GetPlayerWeaponData(giveplayerid,6,weapons[5],bullets[5]);
  1489. GetPlayerWeaponData(giveplayerid,7,weapons[6],bullets[6]);
  1490. GetPlayerWeaponData(giveplayerid,8,weapons[7],bullets[7]);
  1491. GetPlayerWeaponData(giveplayerid,9,weapons[8],bullets[8]);
  1492. GetPlayerWeaponData(giveplayerid,10,weapons[9],bullets[9]);
  1493. GetPlayerWeaponData(giveplayerid,11,weapons[10],bullets[10]);
  1494. GetPlayerWeaponData(giveplayerid,12,weapons[11],bullets[11]);
  1495. GetWeaponName(weapons[0],weapname[0],50);
  1496. GetWeaponName(weapons[1],weapname[1],50);
  1497. GetWeaponName(weapons[2],weapname[2],50);
  1498. GetWeaponName(weapons[3],weapname[3],50);
  1499. GetWeaponName(weapons[4],weapname[4],50);
  1500. GetWeaponName(weapons[5],weapname[5],50);
  1501. GetWeaponName(weapons[6],weapname[6],50);
  1502. GetWeaponName(weapons[7],weapname[7],50);
  1503. GetWeaponName(weapons[8],weapname[8],50);
  1504. GetWeaponName(weapons[9],weapname[9],50);
  1505. GetWeaponName(weapons[10],weapname[10],50);
  1506. GetWeaponName(weapons[11],weapname[11],50);
  1507. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  1508. format(string,sizeof(string)," |- %s's Weapons -|",giveplayer);
  1509. SendClientMessage(playerid,LIGHTGREEN,string);
  1510. format(string, sizeof(string),"%s(0) - %s(%d) - %s(%d) - %s(%d) - %s(%d) - %s(%d)",weapname[0],weapname[1],bullets[1],weapname[2],bullets[2],weapname[3],bullets[3],weapname[4],bullets[4],weapname[5],bullets[5]);
  1511. SendClientMessage(playerid,YELLOW,string);
  1512. format(string,sizeof(string),"%s(%d) - %s(%d) - %s(%d) - %s(0) - %s(0) - %s(0)",weapname[6],bullets[6],weapname[7],bullets[7],weapname[8],bullets[8],weapname[9],weapname[10],weapname[11]);
  1513. SendClientMessage(playerid,YELLOW,string);
  1514. }
  1515. else SendClientMessage(playerid, RED, "Player is not active.");
  1516. }
  1517. else SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  1518. return 1;
  1519. }
  1520. if(strcmp(cmd, "/sethp", true) == 0)
  1521. {
  1522. if(IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 3)
  1523. {
  1524. tmp = strtok(cmdtext, idx);
  1525. if(!strlen(tmp))
  1526. {
  1527. SendClientMessage(playerid, ORANGE, "USAGE: /sethp [playerid/name] [health]");
  1528. return 1;
  1529. }
  1530. giveplayerid = ReturnUser(tmp);
  1531. tmp = strtok(cmdtext, idx);
  1532. new hp = strval(tmp);
  1533. if (giveplayerid != INVALID_PLAYER_ID)
  1534. {
  1535. if (!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /sethp [playerid/name] [health]");
  1536. SetPlayerHealth(giveplayerid,hp);
  1537. Drugs[giveplayerid] = 0;
  1538. GetPlayerName(playerid, sendername, sizeof(sendername));
  1539. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  1540. format(string,sizeof(string),"|- Administrator %s has changed %s's HP. [HP: %d] -|",sendername,giveplayer,hp);
  1541. SendClientMessageToAdmins(ADMIN_RED,string,1);
  1542. }
  1543. else
  1544. {
  1545. SendClientMessage(playerid, RED, "Player is not active.");
  1546. }
  1547. }
  1548. else
  1549. {
  1550. SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  1551. }
  1552. return 1;
  1553. }
  1554. if (strcmp(cmd, "/logout", true) ==0 )
  1555. {
  1556. if(AccountInfo[playerid][Logged] == 1)
  1557. {
  1558. if(AccountInfo[playerid][AdminLevel] >= 1)
  1559. {
  1560. OnPlayerUpdate(playerid);
  1561. AccountInfo[playerid][Logged] = 0;
  1562. AccountInfo[playerid][AdminLevel] = 0;
  1563. SendClientMessage(playerid, GREEN, "You have successfuly logged out.");
  1564. }
  1565. else SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  1566. }
  1567. else return SendClientMessage(playerid, RED, "You're not logged in! ( /login [password] )");
  1568. return 1;
  1569. }
  1570. if(strcmp(cmd, "/warn", true) == 0)
  1571. {
  1572. if (AccountInfo[playerid][AdminLevel] >= 1)
  1573. {
  1574. tmp = strtok(cmdtext, idx);
  1575. if(!strlen(tmp))
  1576. {
  1577. SendClientMessage(playerid, ORANGE, "USAGE: /warn [playerid] [reason]");
  1578. return 1;
  1579. }
  1580. giveplayerid = ReturnUser(tmp);
  1581. if(IsPlayerConnected(giveplayerid))
  1582. {
  1583. if(giveplayerid != INVALID_PLAYER_ID)
  1584. {
  1585. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  1586. GetPlayerName(playerid, player, sizeof(player));
  1587. new length = strlen(cmdtext);
  1588. while ((idx < length) && (cmdtext[idx] <= ' '))
  1589. {
  1590. idx++;
  1591. }
  1592. new offset = idx;
  1593. new reason[256];
  1594. while ((idx < length) && ((idx - offset) < (sizeof(reason) - 1)))
  1595. {
  1596. reason[idx - offset] = cmdtext[idx];
  1597. idx++;
  1598. }
  1599. reason[idx - offset] = EOS;
  1600. if(!strlen(reason))
  1601. {
  1602. SendClientMessage(playerid, ORANGE, "USAGE: /warn [playerid] [reason]");
  1603. return 1;
  1604. }
  1605. new sstring[256];
  1606. AccountInfo[giveplayerid][Warns] += 1;
  1607. format(string, sizeof(string), "You got warned by Admin %s. Reason: %s", player, reason);
  1608. SendClientMessage(giveplayerid, ADMIN_RED, string);
  1609. SendClientMessage(giveplayerid, RED, "6 Warnings = Auto-Ban! Check your stats to see how many warnings you have. ( /stats )");
  1610. format(string, sizeof(string), "-| Administrator %s warned %s. [Reason: %s ] |-",player ,giveplayer, reason);
  1611. SendClientMessageToAdmins(ADMIN_RED,string,1);
  1612. format(string, sizeof(string), "-| %s's warnings: %d |-",giveplayer, AccountInfo[giveplayerid][Warns]);
  1613. SendClientMessageToAdmins(ADMIN_RED,string,1);
  1614. if(AccountInfo[giveplayerid][Warns] >= 3)
  1615. {
  1616. new ip[128];
  1617. format(string, sizeof(string), "-| Administrator %s banned %s. [Reason: 3 Warnings.] |-", player,giveplayer);
  1618. BanLog(string);
  1619. format(string, sizeof(string), "-| Administrator %s banned %s. [Reason: 3 Warnings.] |-", player,giveplayer);
  1620. SendClientMessageToAll(ADMIN_RED, string);
  1621. GetPlayerIp(giveplayerid,ip,128);
  1622. format(sstring, sizeof(sstring), "-| Banned Player's IP: %s |-", ip);
  1623. SendClientMessageToAdmins(ADMIN_RED, sstring,1);
  1624. AccountInfo[giveplayerid][AdminLevel]= 0;
  1625. Ban(giveplayerid);
  1626. return 1;
  1627. }
  1628. return 1;
  1629. }
  1630. else
  1631. {
  1632. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1633. SendClientMessage(playerid, RED, string);
  1634. }
  1635. }
  1636. else
  1637. {
  1638. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1639. SendClientMessage(playerid, RED, string);
  1640. }
  1641. }
  1642. else
  1643. {
  1644. format(string, sizeof(string), "You are not an admin with the required level.");
  1645. SendClientMessage(playerid, RED, string);
  1646. }
  1647. return 1;
  1648. }
  1649. if(strcmp(cmd, "/pstats", true) == 0)
  1650. {
  1651. if(IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 1)
  1652. {
  1653. tmp = strtok(cmdtext, idx);
  1654. if(!strlen(tmp))
  1655. {
  1656. SendClientMessage(playerid, ORANGE, "USAGE: /pstats [playerid]");
  1657. return 1;
  1658. }
  1659. giveplayerid = ReturnUser(tmp);
  1660. if (giveplayerid != INVALID_PLAYER_ID)
  1661. {
  1662. new Float:health,Float:armor;
  1663. GetPlayerHealth(giveplayerid,health);
  1664. GetPlayerArmour(giveplayerid,armor);
  1665. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  1666. format(string, sizeof(string), "Stats of %s:- Health: %.0f - Cash: %d - Warnings: %d - Armor: %.0f",giveplayer, health,GetPlayerMoney(giveplayerid),AccountInfo[giveplayerid][Warns],armor);
  1667. SendClientMessage(playerid,PURPLE,string);
  1668. if(AccountInfo[giveplayerid][Logged] == 1) SendClientMessage(playerid, PURPLE, "Logged In: Yes");
  1669. else if(AccountInfo[giveplayerid][Logged] == 0) SendClientMessage(playerid, PURPLE, "Logged In: No");
  1670. SendClientMessage(playerid,YELLOW,"Type /pweapons [playerid/name] to check the player's weapons");
  1671. }
  1672. else
  1673. {
  1674. SendClientMessage(playerid, RED, "Player is not active.");
  1675. }
  1676. }
  1677. else
  1678. {
  1679. SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  1680. }
  1681. return 1;
  1682. }
  1683. if(strcmp(cmd, "/fuck", true) == 0)
  1684. {
  1685. new Float:pX,Float:pY,Float:pZ;
  1686. new Float:X,Float:Y,Float:Z;
  1687. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  1688. {
  1689. tmp = strtok(cmdtext, idx);
  1690. if(!strlen(tmp))
  1691. {
  1692. SendClientMessage(playerid, ORANGE, "USAGE: /fuck [playerid]");
  1693. SendClientMessage(playerid, ORANGE, "FUNCTION: Will fuck up a player.");
  1694. return 1;
  1695. }
  1696.  
  1697. giveplayerid = ReturnUser(tmp);
  1698. if(giveplayerid != INVALID_PLAYER_ID)
  1699. {
  1700. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  1701. GetPlayerName(playerid, sendername, sizeof(sendername));
  1702. GetPlayerPos(giveplayerid,pX,pY,pZ);
  1703. SetPlayerPos(giveplayerid,pX,pY,pZ+50);
  1704. GetPlayerPos(giveplayerid,X,Y,Z);
  1705. CreateExplosion(X,Y,Z,2,5.0);
  1706. format(string, sizeof(string), "-| Administrator %s fucked up %s |-",sendername, giveplayer);
  1707. SendClientMessageToAdmins(ADMIN_RED,string,1);
  1708. SendClientMessage(giveplayerid, RED, "You are being fucked up by an admin.");
  1709. }
  1710. else if(giveplayerid == INVALID_PLAYER_ID)
  1711. {
  1712. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1713. SendClientMessage(playerid, RED, string);
  1714. }
  1715. }
  1716. else
  1717. {
  1718. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1719. }
  1720. return 1;
  1721. }
  1722. if(strcmp(cmd, "/giveweapon", true) == 0)
  1723. {
  1724. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  1725. {
  1726. tmp = strtok(cmdtext, idx);
  1727. if(!strlen(tmp))
  1728. {
  1729. SendClientMessage(playerid, ORANGE, "USAGE: /giveweapon [playerid] [weaponid] [ammo]");
  1730. return 1;
  1731. }
  1732. new gun;
  1733. new ammo;
  1734. giveplayerid = ReturnUser(tmp);
  1735. tmp = strtok(cmdtext, idx);
  1736. gun = strval(tmp);
  1737. if(!strlen(tmp))
  1738. {
  1739. SendClientMessage(playerid, ORANGE, "USAGE: /giveweapon [playerid] [weaponid] [ammo]");
  1740. return 1;
  1741. }
  1742. tmp = strtok(cmdtext, idx);
  1743. ammo = strval(tmp);
  1744. if(ammo <1||ammo > 10000)
  1745. { SendClientMessage(playerid, RED, "You can only give a maximum capacity of 10 000 bullets and not less than 1."); return 1; }
  1746. if(giveplayerid != INVALID_PLAYER_ID)
  1747. {
  1748. GetPlayerName(playerid, sendername, sizeof(sendername));
  1749. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  1750. GivePlayerWeapon(giveplayerid, gun, ammo);
  1751. format(string, sizeof(string), "-| Administrator %s gave a weapon to %s |-",sendername, giveplayer);
  1752. SendClientMessageToAdmins(ADMIN_RED,string,1);
  1753. }
  1754. else if(giveplayerid == INVALID_PLAYER_ID)
  1755. {
  1756. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1757. SendClientMessage(playerid, RED, string);
  1758. }
  1759. }
  1760. else
  1761. {
  1762. SendClientMessage(playerid, RED, "You are not an admin with the required level!");
  1763. }
  1764. return 1;
  1765. }
  1766.  
  1767. if(strcmp(cmd, "/setwarn", true) == 0)
  1768. {
  1769. new warnings;
  1770. if (AccountInfo[playerid][AdminLevel] >= 4 || IsPlayerAdmin(playerid))
  1771. {
  1772. tmp = strtok(cmdtext, idx);
  1773. if(!strlen(tmp))
  1774. {
  1775. SendClientMessage(playerid, ORANGE, "USAGE: /setwarn [playerid] [warning]");
  1776. SendClientMessage(playerid, ORANGE, "FUNCTION: Will set a certain player's warning.");
  1777. return 1;
  1778. }
  1779. giveplayerid = ReturnUser(tmp);
  1780. if(giveplayerid != INVALID_PLAYER_ID)
  1781. {
  1782. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  1783. GetPlayerName(playerid, sendername, sizeof(sendername));
  1784. tmp = strtok(cmdtext, idx);
  1785. warnings = strval(tmp);
  1786. if(!strlen(tmp))
  1787. {
  1788. SendClientMessage(playerid, ORANGE, "USAGE: /setwarn [playerid] [warning]");
  1789. return 1;
  1790. }
  1791. else
  1792. {
  1793. AccountInfo[giveplayerid][Warns] = warnings;
  1794. format(string, sizeof(string), "Admin %s changed your warnings to %d", player, warnings);
  1795. SendClientMessage(giveplayerid, GREEN, string);
  1796. SendClientMessage(giveplayerid, RED, "3 Warnings = Auto-Ban! Ask an admin to check how many warnings you have");
  1797. format(string, sizeof(string), "-| Administrator %s changed %s's warnings. [Warnings: %d ] |-",player ,giveplayer, AccountInfo[giveplayerid][Warns]);
  1798. SendClientMessageToAdmins(ADMIN_RED,string,1);
  1799. }
  1800. }
  1801.  
  1802. else if(giveplayerid == INVALID_PLAYER_ID)
  1803. {
  1804. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1805. SendClientMessage(playerid, RED, string);
  1806. }
  1807. }
  1808. else
  1809. {
  1810. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1811. }
  1812. return 1;
  1813. }
  1814. if(strcmp(cmd, "/an", true) == 0)
  1815. {
  1816. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  1817. {
  1818. GetPlayerName(playerid, player, sizeof(player));
  1819. new length = strlen(cmdtext);
  1820. while ((idx < length) && (cmdtext[idx] <= ' '))
  1821. {
  1822. idx++;
  1823. }
  1824. new offset = idx;
  1825. new result[256];
  1826. while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
  1827. {
  1828. result[idx - offset] = cmdtext[idx];
  1829. idx++;
  1830. }
  1831. result[idx - offset] = EOS;
  1832. if(!strlen(result))
  1833. {
  1834. SendClientMessage(playerid, ORANGE, "USAGE: /an [message]");
  1835. SendClientMessage(playerid, ORANGE, "FUNCTION: Will broadcast an announcement.");
  1836. return 1;
  1837. }
  1838. format(string, sizeof(string), "%s", result);
  1839. SendClientMessageToAll(ANNOUNCEMENT, string);
  1840. printf("%s", string);
  1841. }
  1842. else
  1843. {
  1844. SendClientMessage(playerid, RED, "You are not a lead admin.");
  1845. }
  1846. return 1;
  1847. }
  1848. if(strcmp(cmd, "/superpunch", true) == 0)
  1849. {
  1850. if (AccountInfo[playerid][AdminLevel] >= 5 || IsPlayerAdmin(playerid))
  1851. {
  1852. tmp = strtok(cmdtext,idx);
  1853. if(!strlen(tmp))
  1854. {
  1855. SendClientMessage(playerid, ORANGE, "USAGE: /superpunch [on/off]");
  1856. SendClientMessage(playerid, ORANGE, "FUNCTION: Will give you the power of Super Punch. When pressing 'PUNCH' button, you will explode but will live.");
  1857. }
  1858. else if(strcmp(tmp,"on",true) == 0)
  1859. {
  1860. SuperPunch[playerid] = 1;
  1861. SendClientMessage(playerid,GREEN,"You are now blessed with SUPER PUNCH! Go knock someone out, now.");
  1862. }
  1863. else if(strcmp(tmp,"off",true) == 0)
  1864. {
  1865. SuperPunch[playerid] = 0;
  1866. SendClientMessage(playerid,GREEN,"Your super punch is now disabled.");
  1867. }
  1868. }
  1869. else
  1870. {
  1871. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1872. }
  1873. return 1;
  1874. }
  1875. if (strcmp(cmd, "/superpunchp", true) ==0 )
  1876. {
  1877. new tmp2[256];
  1878. if (AccountInfo[playerid][AdminLevel] > 5 || IsPlayerAdmin(playerid))
  1879. {
  1880. tmp = strtok(cmdtext,idx);
  1881. if(!strlen(tmp))
  1882. {
  1883. SendClientMessage(playerid,ORANGE,"USAGE: /superpunchp [playerid] [on/off]");
  1884. SendClientMessage(playerid,ORANGE,"FUNCTION: Will give the player the power of SuperPunch.");
  1885. }
  1886. giveplayerid = ReturnUser(tmp);
  1887. if(giveplayerid != INVALID_PLAYER_ID)
  1888. {
  1889. tmp2 = strtok(cmdtext,idx);
  1890. if(strcmp(tmp2,"on",true) == 0)
  1891. {
  1892. GetPlayerName(playerid, player, sizeof(player));
  1893. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  1894. SuperPunch[giveplayerid] = 1;
  1895. format(string, sizeof(string), "Admin %s blessed you with the power of Super Punch !", player);
  1896. SendClientMessage(giveplayerid,GREEN,string);
  1897. format(string, sizeof(string), "-| Administrator %s blessed %s with the power of Super Punch |-", player,giveplayer);
  1898. SendClientMessageToAdmins(ADMIN_RED,string,1);
  1899. }
  1900. else if(strcmp(tmp2,"off",true) == 0)
  1901. {
  1902. format(string, sizeof(string), "Admin %s removed your Super Punch power.", player);
  1903. SendClientMessage(giveplayerid,RED,string);
  1904. SuperPunch[giveplayerid] = 0;
  1905. }
  1906. }
  1907. else if(giveplayerid == INVALID_PLAYER_ID)
  1908. {
  1909. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1910. SendClientMessage(playerid,RED,string);
  1911. }
  1912. }
  1913. else
  1914. {
  1915. SendClientMessage(playerid,RED,"You are not an admin with the required level.");
  1916. }
  1917. return 1;
  1918. }
  1919. if(strcmp(cmd, "/viewcmds", true) == 0)
  1920. {
  1921. if (AccountInfo[playerid][AdminLevel] >= 1 || IsPlayerAdmin(playerid))
  1922. {
  1923. tmp = strtok(cmdtext,idx);
  1924. if(!strlen(tmp))
  1925. {
  1926. SendClientMessage(playerid, ORANGE, "USAGE: /viewcmds [on/off]");
  1927. SendClientMessage(playerid, ORANGE, "FUNCTION: Will see the players typing '/count' and wrong commands.");
  1928. }
  1929. else if(strcmp(tmp,"on",true) == 0)
  1930. {
  1931. ViewCmds[playerid] = 1;
  1932. SendClientMessage(playerid,GREEN,"You can know view players typing '/count' and wrong commands.");
  1933. }
  1934. else if(strcmp(tmp,"off",true) == 0)
  1935. {
  1936. ViewCmds[playerid] = 0;
  1937. SendClientMessage(playerid,GREEN,"You can no longer view players typing '/count' and wrong commands.");
  1938. }
  1939. }
  1940. else
  1941. {
  1942. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  1943. }
  1944. return 1;
  1945. }
  1946. if(strcmp(cmd, "/jail", true) == 0)
  1947. {
  1948. if (AccountInfo[playerid][AdminLevel] >= 2)
  1949. {
  1950. tmp = strtok(cmdtext, idx);
  1951. if(!strlen(tmp))
  1952. {
  1953. SendClientMessage(playerid, ORANGE, "USAGE: /jail [playerid] [reason]");
  1954. return 1;
  1955. }
  1956. giveplayerid = ReturnUser(tmp);
  1957. if(IsPlayerConnected(giveplayerid))
  1958. {
  1959. if(giveplayerid != INVALID_PLAYER_ID)
  1960. {
  1961. if(AccountInfo[giveplayerid][Jail] == 0)
  1962. {
  1963. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  1964. GetPlayerName(playerid, player, sizeof(player));
  1965. new length = strlen(cmdtext);
  1966. while ((idx < length) && (cmdtext[idx] <= ' '))
  1967. {
  1968. idx++;
  1969. }
  1970. new offset = idx;
  1971. new reason[256];
  1972. while ((idx < length) && ((idx - offset) < (sizeof(reason) - 1)))
  1973. {
  1974. reason[idx - offset] = cmdtext[idx];
  1975. idx++;
  1976. }
  1977. reason[idx - offset] = EOS;
  1978. if(!strlen(reason))
  1979. {
  1980. SendClientMessage(playerid, ORANGE, "USAGE: /jail [playerid] [reason]");
  1981. return 1;
  1982. }
  1983. format(string, sizeof(string), "You got jailed by Admin %s. Reason: %s", player, reason);
  1984. SendClientMessage(giveplayerid, ADMIN_RED, string);
  1985. format(string, sizeof(string), "-| Administrator %s jailed %s. [ Reason: %s ] |-",player ,giveplayer, reason);
  1986. SendClientMessageToAll(ADMIN_RED,string);
  1987. AccountInfo[giveplayerid][Jail] = 1;
  1988. OnPlayerJailed(giveplayerid);
  1989. return 1;
  1990. }
  1991. else
  1992. {
  1993. SendClientMessage(playerid, RED, "Player is already jailed!");
  1994. }
  1995. }
  1996. else
  1997. {
  1998. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  1999. SendClientMessage(playerid, RED, string);
  2000. }
  2001. }
  2002. else
  2003. {
  2004. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  2005. SendClientMessage(playerid, RED, string);
  2006. }
  2007. }
  2008. else
  2009. {
  2010. format(string, sizeof(string), "You are not an admin with the required level.");
  2011. SendClientMessage(playerid, RED, string);
  2012. }
  2013. return 1;
  2014. }
  2015.  
  2016. if(strcmp(cmd, "/unjail", true) == 0)
  2017. {
  2018. if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  2019. {
  2020. tmp = strtok(cmdtext, idx);
  2021. if(!strlen(tmp))
  2022. {
  2023. SendClientMessage(playerid, ORANGE, "USAGE: /unjail [playerid]");
  2024. return 1;
  2025. }
  2026.  
  2027. giveplayerid = ReturnUser(tmp);
  2028. if(giveplayerid != INVALID_PLAYER_ID)
  2029. {
  2030. if(AccountInfo[giveplayerid][Jail] == 1)
  2031. {
  2032. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  2033. GetPlayerName(playerid, sendername, sizeof(sendername));
  2034. printf("[ADMIN NEWS]: Admin %s unjailed %s.", sendername, giveplayer);
  2035. format(string, sizeof(string), "-| Administrator %s unjailed %s |-",sendername, giveplayer);
  2036. SendClientMessageToAll(ADMIN_RED,string);
  2037. AccountInfo[giveplayerid][Jail] = 0;
  2038. OnPlayerUnjailed(giveplayerid);
  2039. }
  2040. else
  2041. {
  2042. SendClientMessage(playerid, RED, "Player is not jailed!");
  2043. }
  2044. }
  2045. else
  2046. {
  2047. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  2048. SendClientMessage(playerid, RED, string);
  2049. }
  2050. }
  2051. else
  2052. {
  2053. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  2054. }
  2055. return 1;
  2056. }
  2057.  
  2058. if(!strcmp(cmdtext, "/aclearchat", true))
  2059. {
  2060. if(AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
  2061. {
  2062. for(new chat=0; chat<51; chat++)
  2063. {
  2064. SendClientMessageToAll(GREEN, " ");
  2065. }
  2066. GetPlayerName(playerid, player, 20);
  2067. format(string, 256, "-| Administrator %s cleared the chat |-", player);
  2068. SendClientMessageToAll(ADMIN_RED, string);
  2069. return 1;
  2070. }
  2071. else
  2072. {
  2073. SendClientMessage(playerid, RED, "You are not an admin with the required level.");
  2074. }
  2075. return 1;
  2076. }
  2077. if(strcmp(cmd, "/hide", true) == 0)
  2078. {
  2079. if (AccountInfo[playerid][AdminLevel] >= 1)
  2080. {
  2081. Hide[playerid] = 1;
  2082. SendClientMessage(playerid,GREEN,"|- You're now hidden from the admin list -|");
  2083. Admin--;
  2084. }
  2085. return 1;
  2086. }
  2087. if(strcmp(cmd, "/unhide", true) == 0)
  2088. {
  2089. if (AccountInfo[playerid][AdminLevel] >= 1)
  2090. {
  2091. if (Hide[playerid] != 1) return SendClientMessage(playerid,RED,"You're not hidden in the admin list!");
  2092. Hide[playerid] = 0;
  2093. Admin++;
  2094. SendClientMessage(playerid,GREEN,"|- You're now visible in the admin list -|");
  2095. }
  2096. return 1;
  2097. }
  2098. if(strcmp(cmd, "/virtual", true) == 0)
  2099. {
  2100. if(IsPlayerAdmin(playerid) || AccountInfo[playerid][AdminLevel] >= 2)
  2101. {
  2102. tmp = strtok(cmdtext, idx);
  2103. if(!strlen(tmp))
  2104. {
  2105. SendClientMessage(playerid, ORANGE, "USAGE: /virtual [playerid/name] [virtual world (1-6)]");
  2106. return 1;
  2107. }
  2108. giveplayerid = ReturnUser(tmp);
  2109. tmp = strtok(cmdtext, idx);
  2110. new v = strval(tmp);
  2111. if (giveplayerid != INVALID_PLAYER_ID)
  2112. {
  2113. if (!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /virtual [playerid/name] [virtual world (1-6)]");
  2114. SetPlayerVirtualWorld(giveplayerid,v);
  2115. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  2116. format(string,sizeof(string),"|- Administrator %s has changed %s's Virtual World. [World: %d] -|",player,giveplayer,v);
  2117. SendClientMessageToAdmins(ADMIN_RED,string,1);
  2118. }
  2119. else
  2120. {
  2121. SendClientMessage(playerid, RED, "Player is not active.");
  2122. }
  2123. }
  2124. else
  2125. {
  2126. SendClientMessage(playerid, RED, "You're not an admin with the required level.");
  2127. }
  2128. return 1;
  2129. }
  2130. if(strcmp(cmdtext,"/count",true) == 0)
  2131. {
  2132. if (AccountInfo[playerid][AdminLevel] < 1) return SendClientMessage(playerid,RED,"You're not an admin");
  2133. if(Count >= 5)
  2134. {
  2135. format(string,sizeof(string),"|- Administrator %s started a Countdown -|",player);
  2136. SendClientMessageToAll(LIGHTGREEN, string);
  2137. CountDown();
  2138. for(new a = 0; a < MAX_PLAYERS; a++)
  2139. {
  2140. if(IsPlayerConnected(a))
  2141. {
  2142. if (AccountInfo[a][AdminLevel] >= 1)
  2143. {
  2144. if (ViewCmds[a] == 1)
  2145. {
  2146. GetPlayerName(playerid, player, sizeof(player));
  2147. format(string, sizeof(string), "[%i] %s: %s",playerid,player,cmdtext);
  2148. SendClientMessage(a,PURPLE,string);
  2149. }
  2150. }
  2151. }
  2152. break;
  2153. }
  2154. }
  2155. else SendClientMessage(playerid, RED, "Countdown is already in progress.");
  2156. return 1;
  2157. }
  2158. if(strcmp(cmd, "/spec", true) == 0)
  2159. {
  2160. if (AccountInfo[playerid][AdminLevel] < 1) return SendClientMessage(playerid,RED,"You're not an admin !");
  2161. tmp = strtok(cmdtext, idx);
  2162. if(!strlen(tmp))
  2163. {
  2164. SendClientMessage(playerid, ORANGE, "|__________________________________|");
  2165. SendClientMessage(playerid, ORANGE, "USAGE: /spec [playerid]");
  2166. SendClientMessage(playerid, ORANGE, "FUNCTION: Will spectate a player.");
  2167. SendClientMessage(playerid, ORANGE, "HELP: /spec off to stop spectating");
  2168. SendClientMessage(playerid, ORANGE, "|__________________________________|");
  2169. return 1;
  2170. }
  2171. giveplayerid = ReturnUser(tmp);
  2172. if (giveplayerid != INVALID_PLAYER_ID)
  2173. {
  2174. if (AccountInfo[playerid][AdminLevel] < 1) return SendClientMessage(playerid,RED,"You're not an admin !");
  2175. TogglePlayerSpectating(playerid, 1);
  2176. SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(giveplayerid));
  2177. SetPlayerInterior(playerid,GetPlayerInterior(giveplayerid));
  2178. if (IsPlayerInAnyVehicle(giveplayerid)) PlayerSpectateVehicle(playerid, GetPlayerVehicleID(giveplayerid));
  2179. else PlayerSpectatePlayer(playerid, giveplayerid);
  2180. SendClientMessage(playerid, ORANGE, "HELP: '/view off' to stop spectating");
  2181. }
  2182. else if(strcmp(tmp, "off", true) == 0)
  2183. {
  2184. TogglePlayerSpectating(playerid, 0);
  2185. SetPlayerVirtualWorld(playerid,0);
  2186. }
  2187. else
  2188. {
  2189. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  2190. SendClientMessage(playerid, RED, string);
  2191. }
  2192. return 1;
  2193. }
  2194. if(strcmp(cmd, "/report", true) == 0)
  2195. {
  2196. new reason[STRING];
  2197. tmp = strtok(cmdtext, idx);
  2198. if(!strlen(tmp))
  2199. {
  2200. SendClientMessage(playerid, ORANGE, "USAGE: /report [playerid] [reason]");
  2201. SendClientMessage(playerid, ORANGE, "FUNCTION: Will report the specified player to the administrators(online).");
  2202. return 1;
  2203. }
  2204. giveplayerid = ReturnUser(tmp);
  2205. if(giveplayerid != INVALID_PLAYER_ID)
  2206. {
  2207. GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
  2208. GetPlayerName(playerid, sendername, sizeof(sendername));
  2209. new length = strlen(cmdtext);
  2210. while ((idx < length) && (cmdtext[idx] <= ' '))
  2211. {
  2212. idx++;
  2213. }
  2214. new offset = idx;
  2215. while ((idx < length) && ((idx - offset) < (sizeof(reason) - 1)))
  2216. {
  2217. reason[idx - offset] = cmdtext[idx];
  2218. idx++;
  2219. }
  2220. reason[idx - offset] = EOS;
  2221. if(!strlen(reason))
  2222. {
  2223. SendClientMessage(playerid, ORANGE, "USAGE: /report [playerid] [reason]");
  2224. return 1;
  2225. }
  2226. format(string, sizeof(string), "[REPORT]: %s reported %s for: %s", sendername,giveplayer,reason);
  2227. SendClientMessageToAdmins(ADMIN_RED, string,1);
  2228. format(string, sizeof(string), "Your report on '%s' has been sent to the current online admins. Thank you.", giveplayer);
  2229. SendClientMessage(playerid, GREEN, string);
  2230. }
  2231.  
  2232. else if(giveplayerid == INVALID_PLAYER_ID)
  2233. {
  2234. format(string, sizeof(string), "%d is not an active player.", giveplayerid);
  2235. SendClientMessage(playerid, RED, string);
  2236. }
  2237. return 1;
  2238. }
  2239. if(strcmp(cmd, "/ah", true) == 0)
  2240. {
  2241. if (AccountInfo[playerid][AdminLevel] >= 1 || IsPlayerAdmin(playerid))
  2242. {
  2243. SendClientMessage(playerid, YELLOW, " |- Server Admin Commands -|");
  2244. SendClientMessage(playerid, ORANGE, "LEAD(5): /makeadmin /kickall ");
  2245. SendClientMessage(playerid, ORANGE, "LEVEL 1+: /(un)freeze /score /angle /kick /kill /goto /getip /weaps /spec /warn");
  2246. SendClientMessage(playerid, ORANGE, "LEVEL 2+: /(un)mute /givecash /get /pstats /setname /logout /demolish /virtual");
  2247. SendClientMessage(playerid, ORANGE, "LEVEL 3+: /nuke /ban /disarm /say /giveweapon /slap /viewcmds //(un jail");
  2248. SendClientMessage(playerid, ORANGE, "LEVEL 4+: /fuck /bc /setwarn /an /aclearchat /bslap /(un)hide /sethp");
  2249. SendClientMessage(playerid, ORANGE, "ADMIN CHAT: // Example: //hello");
  2250. }
  2251. else SendClientMessage(playerid, RED, "You are not an admin!");
  2252. return 1;
  2253. }
  2254.  
  2255.  
  2256. if (strcmp(cmd, "/admins", true) == 0)
  2257. {
  2258. new count = 0;
  2259. SendClientMessage(playerid, GREEN, " [Online Admins]");
  2260. for(new i = 0; i < MAX_PLAYERS; i++)
  2261. {
  2262. if (IsPlayerConnected(i))
  2263. {
  2264. if(AccountInfo[i][AdminLevel] >= 1 && AccountInfo[i][AdminLevel] <= 5 && Hide[i] == 0)
  2265. {
  2266. GetPlayerName(i, player, sizeof(player));
  2267. format(string, 128, "Level %d [%i]%s", AccountInfo[i][AdminLevel],i,player);
  2268. SendClientMessage(playerid, LIGHTGREEN, string);
  2269. count++;
  2270. }
  2271. }
  2272. }
  2273. if (count == 0) SendClientMessage(playerid,RED,"No admin online in the list");
  2274. SendClientMessage(playerid, GREEN, "[____________________________________]");
  2275. return 1;
  2276. }
  2277.  
  2278. if (strcmp(cmd, "/register", true) ==0 )
  2279. {
  2280. if(IsPlayerConnected(playerid))
  2281. {
  2282. if(AccountInfo[playerid][Logged] == 1)
  2283. {
  2284. SendClientMessage(playerid, RED, "You are already logged in.");
  2285. return 1;
  2286. }
  2287. GetPlayerName(playerid, sendername, sizeof(sendername));
  2288. format(string, sizeof(string), "/sAccounts/%s.ini", sendername);
  2289. new File: hFile = fopen(string, io_read);
  2290. if (hFile)
  2291. {
  2292. SendClientMessage(playerid, RED, "That name is already taken. Please reconnect using a different username.");
  2293. fclose(hFile);
  2294. return 1;
  2295. }
  2296. new tmppass[128];
  2297. tmp = strtok(cmdtext, idx);
  2298. if(!strlen(tmp))
  2299. {
  2300. SendClientMessage(playerid, ORANGE, "USAGE: /register [password]");
  2301. return 1;
  2302. }
  2303. strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
  2304. Encrypt(tmppass);
  2305. OnPlayerRegister(playerid,tmppass);
  2306. }
  2307. return 1;
  2308. }
  2309. if (strcmp(cmd, "/login", true) ==0 )
  2310. {
  2311. new tmppass[128];
  2312. if(AccountInfo[playerid][Logged] == 1)
  2313. {
  2314. SendClientMessage(playerid, RED, "You are already logged in.");
  2315. return 1;
  2316. }
  2317. tmp = strtok(cmdtext, idx);
  2318. if(!strlen(tmp))
  2319. {
  2320. SendClientMessage(playerid, ORANGE, "USAGE: /login [password]");
  2321. return 1;
  2322. }
  2323. new plname[MAX_PLAYER_NAME];
  2324. GetPlayerName(playerid, plname, sizeof(plname));
  2325. format(string, sizeof(string), "/sAccounts/%s.ini", plname);
  2326. if(!fexist(string))
  2327. {
  2328. SendClientMessage(playerid, RED, "That account isn't registered! Please register: /register [password]");
  2329. return 1;
  2330. }
  2331. strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
  2332. Encrypt(tmppass);
  2333. OnPlayerLogin(playerid,tmppass);
  2334. return 1;
  2335. }
  2336. /*»»»»»»»»»»»»»»»»»»»»»»»»»»»» [WRONG COMMAND] «««««««««««««««««««««««««««*/
  2337. return 0;
  2338. }
  2339.  
  2340. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  2341. {
  2342. if (SuperPunch[playerid] == 1)
  2343. {
  2344. if (GetPlayerState(playerid) != 2)
  2345. {
  2346. if (newkeys == KEY_FIRE && Drugs[playerid] == 0)
  2347. {
  2348. new Float:X,Float:Y,Float:Z,Float:Health;
  2349. GetPlayerHealth(playerid,Health);
  2350. if (GetPlayerWeapon(playerid) == 0)
  2351. {
  2352. GetPlayerPos(playerid,X,Y,Z);
  2353. CreateExplosion(X,Y,Z,7,7.0);
  2354. SetPlayerHealth(playerid,Health);
  2355. }
  2356. }
  2357. else if (newkeys == KEY_FIRE && Drugs[playerid] == 1)
  2358. {
  2359. new Float:X,Float:Y,Float:Z;
  2360. if (GetPlayerWeapon(playerid) == 0)
  2361. {
  2362. SetPlayerHealth(playerid,10000);
  2363. GetPlayerPos(playerid,X,Y,Z);
  2364. CreateExplosion(X,Y,Z,7,7.0);
  2365. SetPlayerHealth(playerid,10000);
  2366. }
  2367. }
  2368. }
  2369. }
  2370. }
  2371.  
  2372. OnPlayerJailed(playerid)
  2373. {
  2374. SetPlayerInterior(playerid, 0);
  2375. SetPlayerPos(playerid, -18.6314,2322.3423,24.3034);
  2376. return 1;
  2377. }
  2378.  
  2379. OnPlayerUnjailed(playerid)
  2380. {
  2381. SetPlayerHealth(playerid, 0);
  2382. return 1;
  2383. }
  2384.  
  2385. public CountDown()
  2386. {
  2387. if (Count > 0)
  2388. {
  2389. GameTextForAll(CountText[Count-1],2500,3);
  2390. Count--;
  2391. SetTimer("CountDown",1000,0);
  2392. }
  2393. else
  2394. {
  2395. GameTextForAll("~g~~h~!!! GoGoGo !!!",2500,3);
  2396. Count = 5;
  2397. }
  2398. return 1;
  2399. }
  2400.  
  2401. public Encrypt(string[])
  2402. {
  2403. for(new x=0; x < strlen(string); x++)
  2404. {
  2405. string[x] += (3^x) * (x % 15);
  2406. if(string[x] > (0xff))
  2407. {
  2408. string[x] -= 256;
  2409. }
  2410. }
  2411. return 1;
  2412. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement