Advertisement
Guest User

I Admin System - v1.0

a guest
Mar 29th, 2013
578
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 83.60 KB | None | 0 0
  1. /*******************************************************************************
  2. *                SCRIPT NAME: I-Admin System
  3. *                SCRIPT VERSION: v1.0
  4. *                SCRIPT DEVELOPER: irfu aka playboy
  5. *
  6. *******************************************************************************/
  7. #define FILTERSCRIPT
  8.  
  9. //includes
  10. #include <a_samp>
  11. #include <YSI\y_ini>
  12. #include <YSI\y_commands>
  13. #include <YSI\y_master>
  14.  
  15. #if defined FILTERSCRIPT
  16.  
  17. //defines
  18. #define DIALOG_REGISTER 1
  19. #define DIALOG_LOGIN 2
  20. #define DIALOG_SUCCESS_1 3
  21. #define DIALOG_SUCCESS_2 4
  22. #define PATH "/IAdmin/Accounts/%s.ini"
  23. #define PlayerFile         "IAdmin/Accounts/%s.ini"
  24.  
  25. //color defines
  26. #define WHITE                   "{FFFFFF}"
  27. #define RED                     "{F81414}"
  28. #define GREEN                   "{00FF22}"
  29. #define COLOUR_GREEN            0x33AA33AA
  30. #define COLOUR_RED              0xAA3333AA
  31. #define COLOUR_YELLOW           0xFFFF00AA
  32. #define COLOUR_LIGHTBLUE        0x33CCFFAA
  33. #define COLOUR_ORANGE           0xFF9900AA
  34. #define blue                    0x375FFFFF
  35. #define blue3                   0xF6BB0AA
  36. #define orange                  0xFF9900AA
  37. #define red                     0xFF0000AA
  38. #define lightred                0xFB0000AA
  39. #define yellow                  0xFFFF00AA
  40. #define green                   0x33FF33AA
  41. #define white                   0xFFFFFFAA
  42. #define grey                    0xC0C0C0AA
  43. #define blue2                   0x0BBF6AA
  44.  
  45. //------------------------------------------------------------------------------
  46. //----------------------------MAIN CONFIGURATIONS-------------------------------
  47. //------------------------------------------------------------------------------
  48. #define POCKET_MONEY                  3000
  49. #define JAIL_COMMANDS                 0
  50. #define ANNOUNCE_SECONDS              6
  51. #define MAX_LEVEL                     10
  52. #define MAX_LEVEL1                    5
  53. #define MAX_WARNINGS                  3
  54. #define MAX_SPAM_MSGS                 3
  55. #define SPAM_TIME                     10
  56. //------------------------------------------------------------------------------
  57. //--------------    True / False -----------------------------------------------
  58. //------------------------------------------------------------------------------
  59. #define AntiAds                       true
  60. #define AntiSpam                      true
  61. //------------------------------------------------------------------------------
  62. //-----------------------------LEVEL CONFIGURATIONS-----------------------------
  63. //------------------------------------------------------------------------------
  64. //------command-------------level-----------------------------------------------
  65. #define setlevel              10
  66.  
  67. #define god                   9
  68.  
  69. #define akill                 7
  70.  
  71. #define armorall              5
  72. #define rac                   5
  73.  
  74. #define setcarhp              4
  75. #define giveweapon            4
  76. #define healall               4
  77.  
  78. #define ban                   3
  79. #define explode               3
  80. #define setarmor              3
  81. #define sethealth             3
  82. #define settime               3
  83. #define setweather            3
  84. #define resetcash             3
  85. #define resetscore            3
  86. #define freeze                3
  87. #define unfreeze              3
  88.  
  89. #define kick                  2
  90. #define flip                  2
  91. #define announce              2
  92. #define get                   2
  93. #define setcash               2
  94. #define setscore              2
  95. #define mute                  2
  96. #define unmute                2
  97.  
  98. #define spec                  1
  99. #define specoff               1
  100. #define onduty                1
  101. #define getip                 1
  102. #define offduty               1
  103. #define goto                  1
  104. #define ahide                 1
  105. #define warn                  1
  106. #define vr                    1
  107. //------------------------------------------------------------------------------
  108.  
  109. enum pInfo
  110. {
  111.     pName[MAX_PLAYER_NAME],
  112.     pIP[16],
  113.     pRegged,
  114.     pLogged,
  115.     pWired,
  116.     pJailed,
  117.     pPass,
  118.     pCash,
  119.     pLevel,
  120.     pKills,
  121.     God,
  122.     pMuted,
  123.     OnDuty,
  124.     Frozen,
  125.     SpamCount,
  126.     SpamTime,
  127.     Hidden,
  128.     Warnings,
  129.     pDeaths
  130. }
  131. new PlayerInfo[MAX_PLAYERS][pInfo];
  132.  
  133. new mutetimer[MAX_PLAYERS];
  134.  
  135. //------spectating----------
  136. new pspecing[MAX_PLAYERS];
  137. new Text:spect;
  138.  
  139. //forwards
  140. forward LoadUser_data(playerid,name[],value[]);
  141. forward SaveTo(filename[],text[]);
  142.  
  143.  
  144. public OnFilterScriptInit()
  145. {
  146.     print("\n--------------------------------------");
  147.     print(" I-Admin system v1.0 Loaded... ");
  148.     print("               By irfu aka playboy ");
  149.     print("--------------------------------------\n");
  150.    
  151.     spect = TextDrawCreate(610.0, 400.0,"");
  152.     TextDrawUseBox(spect, 0);
  153.     TextDrawFont(spect, 2);
  154.     TextDrawSetShadow(spect,0);
  155.     TextDrawSetOutline(spect,1);
  156.     TextDrawBackgroundColor(spect,0x000000FF);
  157.     TextDrawColor(spect,0xFFFFFFFF);
  158.     TextDrawAlignment(spect,3);
  159.    
  160.     return 1;
  161. }
  162.  
  163. public OnFilterScriptExit()
  164. {
  165.     print("\n--------------------------------------");
  166.     print(" I-Admin system v1.0 Unloaded... ");
  167.     print("                 By irfu aka playboy ");
  168.     print("--------------------------------------\n");
  169.     return 1;
  170. }
  171.  
  172. #else
  173.  
  174. main()
  175. {
  176.     print("\n--------------------------------------");
  177.     print("       I-Admin system v1.0 ");
  178.     print("              By irfu aka playboy ");
  179.     print("--------------------------------------\n");
  180. }
  181.  
  182. #endif
  183.  
  184. public OnPlayerRequestClass(playerid, classid)
  185. {
  186.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  187.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  188.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  189.     return 1;
  190. }
  191.  
  192. public OnPlayerConnect(playerid)
  193. {
  194.     if(fexist(UserPath(playerid)))
  195.     {
  196.         INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  197.         SendClientMessage(playerid,COLOUR_ORANGE,"You MUST login or you will be kicked");
  198.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""WHITE"Login",""WHITE"Type your password below to login.","Login","Quit");
  199.     }
  200.     else
  201.     {
  202.         ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""WHITE"Register an Account",""WHITE"Type your password below to register a new account.","Register","Quit");
  203.         SendClientMessage(playerid,COLOUR_ORANGE,"You MUST register or you will be kicked");
  204.     }
  205.     return 1;
  206. }
  207.  
  208. public OnPlayerDisconnect(playerid, reason)
  209. {
  210.     new Ip[16], Name[25];
  211.     GetPlayerName(playerid, Name, sizeof(Name));
  212.     GetPlayerIp(playerid, Ip, sizeof(Ip));
  213.  
  214.     new INI:File = INI_Open(UserPath(playerid));
  215.     INI_SetTag(File,"data");
  216.     INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  217.     INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  218.     INI_WriteInt(File,"Warnings",PlayerInfo[playerid][Warnings]);
  219.     INI_WriteInt(File,"Level",PlayerInfo[playerid][pLevel]);
  220.     INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  221.     INI_WriteString(File,"Name",Name);
  222.     INI_WriteString(File,"Ip",Ip);
  223.     INI_WriteInt(File,"Registered",PlayerInfo[playerid][pRegged]);
  224.     INI_WriteInt(File,"Wired",PlayerInfo[playerid][pWired]);
  225.     INI_WriteInt(File,"Jailed",PlayerInfo[playerid][pJailed]);
  226.     INI_Close(File);
  227.     return 1;
  228. }
  229.  
  230. public OnPlayerDeath(playerid, killerid, reason)
  231. {
  232.     PlayerInfo[killerid][pKills]++;
  233.     PlayerInfo[playerid][pDeaths]++;
  234.     return 1;
  235. }
  236.  
  237. public OnPlayerText(playerid, text[])
  238. {
  239.     if(text[0] == '#')
  240.     {
  241.         if(PlayerInfo[playerid][pLevel] >= 1)
  242.         {
  243.             new str[128], name[24];
  244.             GetPlayerName(playerid, name, 24);
  245.             format(str, 128, "[Admin Chat] %s(%d): %s", name,playerid, text[1]);
  246.             SCMA(red,str);
  247.             return 0;
  248.         }
  249.         return 1;
  250.     }
  251.     if(PlayerInfo[playerid][pMuted] == 1)
  252.     {
  253.         SendClientMessage(playerid,red,"WARNING: You are muted! You cant talk!");
  254.         return 0;
  255.     }
  256.     #if AntiSpam == true
  257.     new pname3[256];
  258.     GetPlayerName(playerid,pname3,sizeof(pname3));
  259.     if(PlayerInfo[playerid][pLevel] == 0 && !IsPlayerAdmin(playerid))
  260.     {
  261.         if(PlayerInfo[playerid][SpamCount] == 0) PlayerInfo[playerid][SpamTime] = TimeStamp();
  262.  
  263.         PlayerInfo[playerid][SpamCount]++;
  264.         if(TimeStamp() - PlayerInfo[playerid][SpamTime] > SPAM_TIME) {
  265.             PlayerInfo[playerid][SpamCount] = 0;
  266.             PlayerInfo[playerid][SpamTime] = TimeStamp();
  267.         }
  268.         else if(PlayerInfo[playerid][SpamCount] == MAX_SPAM_MSGS) {
  269.             new string[64]; format(string,sizeof(string),"|- Player %s (Id:%d) has been Automatically Kicked. | Reason: Flood/Spam Protection", pname3,playerid);
  270.             SendClientMessageToAll(grey,string); print(string);
  271.             SaveTo("KickLog",string);
  272.             Kick(playerid);
  273.         }
  274.         else if(PlayerInfo[playerid][SpamCount] == MAX_SPAM_MSGS-1) {
  275.             SendClientMessage(playerid,red,"ATTENTION: Anti Spam Warning! Next is a Kick!");
  276.             return 0;
  277.         }
  278.     }
  279.     #endif
  280.  
  281.     if(stringhasip(text))
  282.     {
  283.         #if AntiAds == true
  284.         new string[256];
  285.         new name[MAX_PLAYER_NAME];
  286.         GetPlayerName(playerid, name, sizeof(name));
  287.         format(string, sizeof(string), "Player %s (ID:%d) has been kicked from the server! (Reason: Advertisements)", name, playerid);
  288.         SendClientMessageToAll(red, string);
  289.         SaveTo("Adskicklog",string);
  290.         new kickdate[3];
  291.         new TargetString[256];
  292.         getdate(kickdate[0], kickdate[1], kickdate[2]);
  293.         format(TargetString,sizeof(TargetString),"{FF002B}Kicked by: Anti-ads\n\n{FF002B}Reason: Advertisements\n\n{FF002B}Date: {FFFFFF}%02d/%02d/%04d\n\nChange your name and come back!", kickdate[2], kickdate[1], kickdate[0]);
  294.         ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "{FF002B}KICKED!", TargetString, "OK", "");
  295.         return Kick(playerid), false;
  296.         #endif
  297.     }
  298.     return 1;
  299. }
  300.  
  301. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  302. {
  303.     switch( dialogid )
  304.     {
  305.         case DIALOG_REGISTER:
  306.         {
  307.             if (!response) return Kick(playerid);
  308.             if(response)
  309.             {
  310.                 new Ip[16], Name[25];
  311.                 GetPlayerName(playerid, Name, sizeof(Name));
  312.                 GetPlayerIp(playerid, Ip, sizeof(Ip));
  313.                
  314.                 if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""WHITE"Registering...",""RED"You have entered an invalid password.\n"WHITE"Type your password below to register a new account.","Register","Quit");
  315.                 new INI:File = INI_Open(UserPath(playerid));
  316.                 INI_SetTag(File,"data");
  317.                 INI_WriteString(File,"Name",Name);
  318.                 INI_WriteString(File,"Ip",Ip);
  319.                 INI_WriteInt(File,"Registered",-1);
  320.                 INI_WriteInt(File,"Wired",0);
  321.                 INI_WriteInt(File,"Jailed",0);
  322.                 INI_WriteInt(File,"Password",udb_hash(inputtext));
  323.                 INI_WriteInt(File,"Cash",0);
  324.                 INI_WriteInt(File,"Level",0);
  325.                 INI_WriteInt(File,"Warnings",0);
  326.                 INI_WriteInt(File,"Kills",0);
  327.                 INI_WriteInt(File,"Deaths",0);
  328.                 INI_Close(File);
  329.  
  330.                 SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
  331.                 SpawnPlayer(playerid);
  332.                 ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""WHITE"Success!",""GREEN"Great! Your Y_INI system works perfectly. Relog to save your stats!","Ok","");
  333.             }
  334.         }
  335.  
  336.         case DIALOG_LOGIN:
  337.         {
  338.             if ( !response ) return Kick ( playerid );
  339.             if( response )
  340.             {
  341.                 if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  342.                 {
  343.                     INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  344.                     GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  345.                     ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""WHITE"Success!",""GREEN"You have successfully logged in!","Ok","");
  346.                 }
  347.                 else
  348.                 {
  349.                     ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""WHITE"Login",""RED"You have entered an incorrect password.\n"WHITE"Type your password below to login.","Login","Quit");
  350.                 }
  351.                 return 1;
  352.             }
  353.         }
  354.     }
  355.     return 1;
  356. }
  357.  
  358. //------------------------------------------------------------------------------
  359. //--------------------------------COMMANDS--------------------------------------
  360. //------------------------------------------------------------------------------
  361. CMD:ahelp(playerid,params[])
  362. {
  363.     #pragma unused params
  364.     if(PlayerInfo[playerid][pLogged] && PlayerInfo[playerid][pLevel] >= 1)
  365.     {
  366.         SendClientMessage(playerid, white, "___________ .::| I Admin System - Help |::. ___________");
  367.         SendClientMessage(playerid,green, ". Use /acmds to see admin commands list");
  368.         SendClientMessage(playerid,blue, ". Use # before chat for Admin chat");
  369.         SendClientMessage(playerid, white, "_______________________________________________________");
  370.     }
  371.     return 0;
  372. }
  373.  
  374. CMD:acmds(playerid,params[])
  375. {
  376.     if(PlayerInfo[playerid][pLevel] >= 1)
  377.     {
  378.         //======================================================================
  379.         // Level 1
  380.         //======================================================================
  381.         if(PlayerInfo[playerid][pLevel] == 1)
  382.         {
  383.         SendClientMessage(playerid, white, "___________ .::| I admin System - Level 1 |::. ___________");
  384.         SendClientMessage(playerid,green,"Player: getip ");
  385.         SendClientMessage(playerid,green,"Tele: goto ");
  386.         SendClientMessage(playerid,green,"Vehicle: vr");
  387.         SendClientMessage(playerid,green,"Admin: onduty,offduty,ahide,spec,warn");
  388.         SendClientMessage(playerid, white, "__________________________________________________________");
  389.         }
  390.         //======================================================================
  391.         // Level 2
  392.         //======================================================================
  393.         if(PlayerInfo[playerid][pLevel] == 2)
  394.         {
  395.         SendClientMessage(playerid, white, "___________ .::| I admin System - Level 2 |::. ___________");
  396.         SendClientMessage(playerid,orange,"Player: getip ");
  397.         SendClientMessage(playerid,orange,"Tele: goto ");
  398.         SendClientMessage(playerid,orange,"Vehicle: vr");
  399.         SendClientMessage(playerid,orange,"Admin: onduty, offduty, ahide, spec, warn");
  400.         SendClientMessage(playerid,green,"Player: setcash, setscore, (un)mute, mute ,announce");
  401.         SendClientMessage(playerid,green,"Vehicle: flip");
  402.         SendClientMessage(playerid,green,"Tele: get");
  403.         SendClientMessage(playerid,green,"Admin: kick");
  404.         SendClientMessage(playerid, white, "__________________________________________________________");
  405.         }
  406.         //======================================================================
  407.         // Level 3
  408.         //======================================================================
  409.         if(PlayerInfo[playerid][pLevel] == 3)
  410.         {
  411.         SendClientMessage(playerid, white, "___________ .::| I admin System - Level 3 |::. ___________");
  412.         SendClientMessage(playerid,orange,"Player: setcash, setscore, unmute, mute, announce, getip");
  413.         SendClientMessage(playerid,orange,"Vehicle: flip, vr");
  414.         SendClientMessage(playerid,orange,"Tele: get, goto");
  415.         SendClientMessage(playerid,orange,"Admin: onduty, offduty, ahide, spec, warn, kick");
  416.         SendClientMessage(playerid,green,"Player: resetscore, resetcash, setweather, settime, sethealth, setarmor");
  417.         SendClientMessage(playerid,green,"Admin: ban, explode, freeze, unfreeze");
  418.         SendClientMessage(playerid, white, "__________________________________________________________");
  419.         }
  420.         //======================================================================
  421.         // Level 4
  422.         //======================================================================
  423.         if(PlayerInfo[playerid][pLevel] == 4)
  424.         {
  425.         SendClientMessage(playerid, white, "___________ .::| I admin System - Level 4 |::. ___________");
  426.         SendClientMessage(playerid,orange,"Player: setcash, setscore, unmute, mute, announce, getip");
  427.         SendClientMessage(playerid,orange,"Player: resetscore, resetcash, setweather, settime, sethealth, setarmor");
  428.         SendClientMessage(playerid,orange,"Vehicle: flip, vr");
  429.         SendClientMessage(playerid,orange,"Tele: get, goto");
  430.         SendClientMessage(playerid,orange,"Admin: onduty, offduty, ahide, spec, warn, kick");
  431.         SendClientMessage(playerid,orange,"Admin: ban, explode, freeze, unfreeze");
  432.         SendClientMessage(playerid,green,"All: healall");
  433.         SendClientMessage(playerid,green,"Vehicle: setcarhp");
  434.         SendClientMessage(playerid,green,"Player: giveweapon");
  435.         SendClientMessage(playerid, white, "__________________________________________________________");
  436.         }
  437.         //======================================================================
  438.         // Level 5
  439.         //======================================================================
  440.         if(PlayerInfo[playerid][pLevel] == 5)
  441.         {
  442.         SendClientMessage(playerid, white, "___________ .::| I admin System - Level 5 |::. ___________");
  443.         SendClientMessage(playerid,orange,"All: healall");
  444.         SendClientMessage(playerid,orange,"Player: setcash, setscore, unmute, mute, announce, getip, giveweapon");
  445.         SendClientMessage(playerid,orange,"Player: resetscore, resetcash, setweather, settime, sethealth, setarmor");
  446.         SendClientMessage(playerid,orange,"Vehicle: flip, vr, setcarhp");
  447.         SendClientMessage(playerid,orange,"Tele: get, goto");
  448.         SendClientMessage(playerid,orange,"Admin: onduty, offduty, ahide, spec, warn, kick");
  449.         SendClientMessage(playerid,orange,"Admin: ban, explode, freeze, unfreeze");
  450.         SendClientMessage(playerid,green,"All: armorall");
  451.         SendClientMessage(playerid,green,"Vehicle: rac");
  452.         SendClientMessage(playerid, white, "__________________________________________________________");
  453.         }
  454.         //======================================================================
  455.         // Level 6
  456.         //======================================================================
  457.         if(PlayerInfo[playerid][pLevel] == 6)
  458.         {
  459.         SendClientMessage(playerid, white, "___________ .::| I admin System - Level 6 |::. ___________");
  460.         SendClientMessage(playerid,orange,"All: healall, armorall");
  461.         SendClientMessage(playerid,orange,"Player: setcash, setscore, unmute, mute, announce, getip, giveweapon");
  462.         SendClientMessage(playerid,orange,"Player: resetscore, resetcash, setweather, settime, sethealth, setarmor");
  463.         SendClientMessage(playerid,orange,"Vehicle: flip, vr, setcarhp, rac");
  464.         SendClientMessage(playerid,orange,"Tele: get, goto");
  465.         SendClientMessage(playerid,orange,"Admin: onduty, offduty, ahide, spec, warn, kick");
  466.         SendClientMessage(playerid,orange,"Admin: ban, explode, freeze, unfreeze");
  467.         SendClientMessage(playerid, white, "__________________________________________________________");
  468.         }
  469.         //======================================================================
  470.         // Level 7
  471.         //======================================================================
  472.         if(PlayerInfo[playerid][pLevel] == 7)
  473.         {
  474.         SendClientMessage(playerid, white, "___________ .::| I admin System - Level 7 |::. ___________");
  475.         SendClientMessage(playerid,orange,"All: healall, armorall");
  476.         SendClientMessage(playerid,orange,"Player: setcash, setscore, unmute, mute, announce, getip, giveweapon");
  477.         SendClientMessage(playerid,orange,"Player: resetscore, resetcash, setweather, settime, sethealth, setarmor");
  478.         SendClientMessage(playerid,orange,"Vehicle: flip, vr, setcarhp, rac");
  479.         SendClientMessage(playerid,orange,"Tele: get, goto");
  480.         SendClientMessage(playerid,orange,"Admin: onduty, offduty, ahide, spec, warn, kick");
  481.         SendClientMessage(playerid,orange,"Admin: ban, explode, freeze, unfreeze");
  482.         SendClientMessage(playerid,green,"Player: akill");
  483.         SendClientMessage(playerid, white, "__________________________________________________________");
  484.         }
  485.         //======================================================================
  486.         // Level 8
  487.         //======================================================================
  488.         if(PlayerInfo[playerid][pLevel] == 8)
  489.         {
  490.         SendClientMessage(playerid, white, "___________ .::| I admin System - Level 8 |::. ___________");
  491.         SendClientMessage(playerid,orange,"All: healall, armorall");
  492.         SendClientMessage(playerid,orange,"Player: setcash, setscore, unmute, mute, announce, getip, giveweapon, akill");
  493.         SendClientMessage(playerid,orange,"Player: resetscore, resetcash, setweather, settime, sethealth, setarmor");
  494.         SendClientMessage(playerid,orange,"Vehicle: flip, vr, setcarhp, rac");
  495.         SendClientMessage(playerid,orange,"Tele: get, goto");
  496.         SendClientMessage(playerid,orange,"Admin: onduty, offduty, ahide, spec, warn, kick");
  497.         SendClientMessage(playerid,orange,"Admin: ban, explode, freeze, unfreeze");
  498.         SendClientMessage(playerid, white, "__________________________________________________________");
  499.         }
  500.         //======================================================================
  501.         // Level 9
  502.         //======================================================================
  503.         if(PlayerInfo[playerid][pLevel] == 9)
  504.         {
  505.         SendClientMessage(playerid, white, "___________ .::| I admin System - Level 9 |::. ___________");
  506.         SendClientMessage(playerid,orange,"All: healall, armorall");
  507.         SendClientMessage(playerid,orange,"Player: setcash, setscore, unmute, mute, announce, getip, giveweapon, akill");
  508.         SendClientMessage(playerid,orange,"Player: resetscore, resetcash, setweather, settime, sethealth, setarmor");
  509.         SendClientMessage(playerid,orange,"Vehicle: flip, vr, setcarhp, rac");
  510.         SendClientMessage(playerid,orange,"Tele: get, goto");
  511.         SendClientMessage(playerid,orange,"Admin: onduty, offduty, ahide, spec, warn, kick");
  512.         SendClientMessage(playerid,orange,"Admin: ban, explode, freeze, unfreeze");
  513.         SendClientMessage(playerid,green,"Admin: god");
  514.         SendClientMessage(playerid, white, "__________________________________________________________");
  515.         }
  516.         //======================================================================
  517.         // Level 10
  518.         //======================================================================
  519.         if(PlayerInfo[playerid][pLevel] >= 10)
  520.         {
  521.         SendClientMessage(playerid, white, "___________ .::| I admin System - Level 10 |::. ___________");
  522.         SendClientMessage(playerid,orange,"All: healall, armorall");
  523.         SendClientMessage(playerid,orange,"Player: setcash, setscore, unmute, mute, announce, getip, giveweapon, akill");
  524.         SendClientMessage(playerid,orange,"Player: resetscore, resetcash, setweather, settime, sethealth, setarmor");
  525.         SendClientMessage(playerid,orange,"Vehicle: flip, vr, setcarhp, rac");
  526.         SendClientMessage(playerid,orange,"Tele: get, goto");
  527.         SendClientMessage(playerid,orange,"Admin: onduty, offduty, ahide, spec, warn, kick");
  528.         SendClientMessage(playerid,orange,"Admin: ban, explode, freeze, unfreeze, god");
  529.         SendClientMessage(playerid,green,"Admin: setlevel");
  530.         SendClientMessage(playerid, white, "__________________________________________________________");
  531.         }
  532.         else
  533.         {
  534.         SendClientMessage(playerid, red, "ERROR: Invalid Level! (1-10)");
  535.         }
  536.         return 1;
  537.     }
  538.     else return SendClientMessage(playerid, red, "You are not an Admin!");
  539. }
  540. CMD:vr(playerid,params[])
  541. {
  542.     #pragma unused params
  543.     if(PlayerInfo[playerid][pLevel] >= vr)
  544.     {
  545.         if (IsPlayerInAnyVehicle(playerid))
  546.         {
  547.             SetVehicleHealth(GetPlayerVehicleID(playerid),1250.0);
  548.             return SendClientMessage(playerid,blue,"|- Vehicle Fixed! -|");
  549.         }
  550.         else return SendClientMessage(playerid, red, "You are not in a Vehicle!");
  551.     }
  552.     else return SendClientMessage(playerid, red, "You are not an Admin!");
  553. }
  554. CMD:newpass(playerid, params[])
  555. {
  556.     new tmp[30],
  557.         tmp2[30],
  558.         index;
  559.     tmp = strtok(params, index);
  560.     if(!strlen(tmp))
  561.             return SendClientMessage(playerid, COLOUR_ORANGE, "USAGE: /newpass [password] [new password]");
  562.     tmp2 = strtok(params, index);
  563.     if(!strlen(tmp2))
  564.         return SendClientMessage(playerid, COLOUR_ORANGE, "USAGE: /newpass [password] [new password]");
  565.     new oldpassword = num_hash(tmp), newpassword = num_hash(tmp2);
  566.     if(PlayerInfo[playerid][pPass] == oldpassword)
  567.     {
  568.         if(oldpassword == newpassword)
  569.             return SendClientMessage(playerid, COLOUR_ORANGE, "ERROR: Your old password can not be the same as your new password.");
  570.         PlayerInfo[playerid][pPass] = newpassword;
  571.         new string[128]; format(string, sizeof(string), "You have successfully changed your password from \'%s\' to \'%s\'.", tmp, tmp2);
  572.         return SendClientMessage(playerid, COLOUR_LIGHTBLUE, string);
  573.     }
  574.     else return SendClientMessage(playerid, COLOUR_ORANGE, "ERROR: Incorrect password.");
  575. }
  576. CMD:akill(playerid, params[])
  577. {
  578.     if(PlayerInfo[playerid][pLevel] <= akill)
  579.     {
  580.         new string[100];
  581.         format(string, sizeof(string), "You must be administrator level %d to use that command!", akill);
  582.         return SendClientMessage(playerid, COLOUR_ORANGE, string);
  583.     }
  584.     else if(!strlen(params))
  585.         return SendClientMessage(playerid, COLOUR_ORANGE, "USAGE: /akill [id | name]");
  586.     else
  587.     {
  588.     new id = (IsNumeric(params)) ? strval(params) : GetPlayerId(params);
  589.     if(IsPlayerConnected(id) && id != playerid)
  590.     {
  591.         SetPlayerHealth(id, 0.0);
  592.         new string[128];
  593.         format(string, sizeof(string), "You have been admin-killed by administrator \'%s\'.", PlayerInfo[playerid][pName]);
  594.         SendClientMessage(id, COLOUR_ORANGE, string);
  595.         format(string, sizeof(string), "You have successfully admin-killed player \'%s\'.", PlayerInfo[id][pName]);
  596.         return SendClientMessage(playerid, COLOUR_LIGHTBLUE, string);
  597.     }
  598.     else
  599.         return SendClientMessage(playerid, COLOUR_ORANGE, "ERROR: You can not admin-kill yourself or a disconnected player.");
  600.     }
  601. }
  602. CMD:announce(playerid, params[])
  603. {
  604.     if(PlayerInfo[playerid][pLevel] <= announce)
  605.     {
  606.         new string[100];
  607.         format(string, sizeof(string), "You must be administrator level %d to use that command!", announce);
  608.         return SendClientMessage(playerid, COLOUR_ORANGE, string);
  609.     }
  610.     else if(!strlen(params))
  611.         return SendClientMessage(playerid, COLOUR_ORANGE, "USAGE: /announce [message]");
  612.     else
  613.         return GameTextForAll(params, ANNOUNCE_SECONDS * 1000, 3);
  614. }
  615. CMD:armorall(playerid,params[])
  616. {
  617.     #pragma unused params
  618.     if(PlayerInfo[playerid][pLevel] <= armorall)
  619.     {
  620.         for(new i = 0; i < MAX_PLAYERS; i++)
  621.         {
  622.         if(IsPlayerConnected(i) && (i != playerid) && i != MAX_LEVEL1)
  623.         {
  624.         PlayerPlaySound(i,1057,0.0,0.0,0.0);
  625.         SetPlayerArmour(i,100.0);
  626.         }
  627.         }
  628.         new string[128];
  629.         format(string,sizeof(string),"|- Administrator \"%s\" has Restored all players armour -|", PlayerInfo[playerid][pName]);
  630.         return SendClientMessageToAll(blue, string);
  631.     }
  632.     else
  633.     {
  634.     new string[128];
  635.     format(string, sizeof(string), "You must be administrator level %d to use that command!", armorall);
  636.     return SendClientMessage(playerid, COLOUR_ORANGE, string);
  637.     }
  638. }
  639. CMD:ban(playerid,params[])
  640. {
  641.     if(PlayerInfo[playerid][pLevel] <= ban)
  642.     {
  643.         new Index;
  644.         new tmp[256];  tmp  = strtok(params,Index);
  645.         new tmp2[256]; tmp2 = strtok(params,Index);
  646.  
  647.         if(!strlen(params)) return
  648.         SendClientMessage(playerid, blue3, "Usage: /ban [PlayerID] [Reason]") &&
  649.         SendClientMessage(playerid, orange, "Function: Will Ban the specified player");
  650.         if(!strlen(tmp2))
  651.         return SendClientMessage(playerid, red, "ERROR: Reason unspecified!");
  652.         new player1;
  653.         new string[128];
  654.         new playername[MAX_PLAYER_NAME];
  655.         new adminname [MAX_PLAYER_NAME];
  656.         player1 = strval(tmp);
  657.  
  658.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][pLevel] < PlayerInfo[playerid][pLevel]))
  659.         {
  660.             GetPlayerName(player1, playername, sizeof(playername));
  661.             GetPlayerName(playerid, adminname, sizeof(adminname));
  662.             new year,month,day; getdate(year, month, day);
  663.             new hour,minuite,second; gettime(hour,minuite,second);
  664.             format(string,sizeof(string),"|- %s has been Banned by Administrator %s | Reason: %s [Date: %d/%d/%d] [Time: %d:%d]",playername,adminname,params[2],day,month,year,hour,minuite);
  665.             SendClientMessageToAll(lightred,string);
  666.             new str[128];
  667.             format(str,sizeof(str),"%s has been Banned by Administrator %s | Reason: %s",playername,adminname,params[2]);
  668.             SaveTo("BanLog",str);
  669.             print(string);
  670.             format(string,sizeof(string),"Banned by Administrator %s. | Reason: %s",adminname,params[2]);
  671.             return BanEx(player1, string);
  672.         }
  673.         else return SendClientMessage(playerid, red, "ERROR: Player is not connected or is yourself or is the highest level admin");
  674.     }
  675.     else
  676.     {
  677.     new string[128];
  678.     format(string, sizeof(string), "You must be administrator level %d to use that command!", ban);
  679.     return SendClientMessage(playerid, COLOUR_ORANGE, string);
  680.     }
  681. }
  682. CMD:setcarhp(playerid,params[])
  683. {
  684.     if(PlayerInfo[playerid][pLevel] <= setcarhp)
  685.     {
  686.         new Index;
  687.         new tmp[256];  tmp  = strtok(params,Index);
  688.         new tmp2[256]; tmp2 = strtok(params,Index);
  689.  
  690.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return
  691.         SendClientMessage(playerid, blue3, "Usage: /carhealth [PlayerID] [Amount]") &&
  692.         SendClientMessage(playerid, orange, "Function: Will set Car Health of specified player");
  693.         new player1 = strval(tmp);
  694.         new health  = strval(tmp2);
  695.         if(PlayerInfo[player1][pLevel] < PlayerInfo[playerid][pLevel])
  696.         return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  697.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][pLevel] < PlayerInfo[playerid][pLevel]))
  698.         {
  699.             if(IsPlayerInAnyVehicle(player1))
  700.             {
  701.             new string1[128];
  702.             format(string1, sizeof(string1), "|- You have set \"%s's\" Vehicle Health to '%d -|", PlayerInfo[player1][pName], health);
  703.             SendClientMessage(playerid,yellow,string1);
  704.             new string[128];
  705.             format(string,sizeof(string),"|- Administrator \"%s\" has set your Vehicle's Health to '%d' -|", PlayerInfo[player1][pName], health); SendClientMessage(player1,blue,string);
  706.             SetVehicleHealth(GetPlayerVehicleID(player1), health);
  707.             }
  708.             else return SendClientMessage(playerid,red,"ERROR: Player is not in a vehicle");
  709.         }
  710.         else return SendClientMessage(playerid, red, "ERROR: Player is not connected or is yourself or is the highest level admin");
  711.     }
  712.     else
  713.     {
  714.     new string[128];
  715.     format(string, sizeof(string), "You must be administrator level %d to use that command!", setcarhp);
  716.     return SendClientMessage(playerid, COLOUR_ORANGE, string);
  717.     }
  718.     return 0;
  719. }
  720. CMD:explode(playerid,params[])
  721. {
  722.     if(PlayerInfo[playerid][pLevel] <= explode)
  723.     {
  724.         new Index;
  725.         new tmp[256];  tmp  = strtok(params,Index);
  726.         new tmp2[256]; tmp2 = strtok(params,Index);
  727.  
  728.         if(!strlen(params)) return
  729.         SendClientMessage(playerid, blue3, "Usage: /explode [PlayerID] [Reason]") &&
  730.         SendClientMessage(playerid, orange, "Function: Will Explode the specified player");
  731.         new player1;
  732.         new string[128];
  733.         new playername[MAX_PLAYER_NAME];
  734.         new adminname [MAX_PLAYER_NAME];
  735.         player1 = strval(tmp);
  736.  
  737.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && (PlayerInfo[player1][pLevel] < PlayerInfo[playerid][pLevel]))
  738.         {
  739.             GetPlayerName(player1, playername, sizeof(playername));
  740.             GetPlayerName(playerid, adminname, sizeof(adminname));
  741.             new Float:burnx, Float:burny, Float:burnz;
  742.             GetPlayerPos(player1,burnx, burny, burnz);
  743.             CreateExplosion(burnx, burny , burnz, 7,10.0);
  744.  
  745.             if(strlen(tmp2))
  746.             {
  747.                 format(string,sizeof(string),"|- You have been exploded by Administrator %s | Reason: %s -|",adminname,params[2]);
  748.                 SendClientMessage(player1,blue,string);
  749.                 format(string,sizeof(string),"|- You have exploded %s | Reason: %s -|", playername,params[2]);
  750.                 return SendClientMessage(playerid,blue,string);
  751.             }
  752.             else
  753.             {
  754.                 format(string,sizeof(string),"|- You have been exploded by Administrator %s | Reason: Not Specified! -|",adminname);
  755.                 SendClientMessage(player1,blue,string);
  756.                 format(string,sizeof(string),"|- You have Exploded %s -|", playername);
  757.                 return SendClientMessage(playerid,blue,string);
  758.             }
  759.         }
  760.         else return SendClientMessage(playerid, red, "ERROR: Player is not connected or is the highest level admin");
  761.     }
  762.     else
  763.     {
  764.     new string[128];
  765.     format(string, sizeof(string), "You must be administrator level %d to use that command!", explode);
  766.     return SendClientMessage(playerid, COLOUR_ORANGE, string);
  767.     }
  768. }
  769. CMD:flip(playerid,params[])
  770. {
  771.     if(PlayerInfo[playerid][pLevel] >= flip)
  772.     {
  773.         if(!strlen(params))
  774.         {
  775.             if(IsPlayerInAnyVehicle(playerid))
  776.             {
  777.             new VehicleID, Float:X, Float:Y, Float:Z, Float:Angle;
  778.             GetPlayerPos(playerid, X, Y, Z);
  779.             VehicleID = GetPlayerVehicleID(playerid);
  780.             GetVehicleZAngle(VehicleID, Angle);
  781.             SetVehiclePos(VehicleID, X, Y, Z);
  782.             SetVehicleZAngle(VehicleID, Angle);
  783.             SetVehicleHealth(VehicleID,1000.0);
  784.             return SendClientMessage(playerid, green,"|- Vehicle Flipped! -|") &&
  785.             SendClientMessage(playerid, white,"Flip the player's vehicle? (/flip [PlayerID])");
  786.             }
  787.             else return SendClientMessage(playerid,red,"ERROR: You are not in a Vehicle!");
  788.         }
  789.         new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  790.         player1 = strval(params);
  791.  
  792.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid)
  793.           {
  794.             if (IsPlayerInAnyVehicle(player1))
  795.             {
  796.                 new VehicleID, Float:X, Float:Y, Float:Z, Float:Angle;
  797.                 GetPlayerPos(player1, X, Y, Z);
  798.                 VehicleID = GetPlayerVehicleID(player1);
  799.                 GetVehicleZAngle(VehicleID, Angle);
  800.                 SetVehiclePos(VehicleID, X, Y, Z);
  801.                 SetVehicleZAngle(VehicleID, Angle);
  802.                 SetVehicleHealth(VehicleID,1000.0);
  803.                 GetPlayerName(player1, playername, sizeof(playername));
  804.                 GetPlayerName(playerid, adminname, sizeof(adminname));
  805.                 format(string,sizeof(string),"|- Player %s Flipped your Vehicle -|",adminname);
  806.                 SendClientMessage(player1,blue,string);
  807.                 format(string,sizeof(string),"You have Flipped %s's Vehicle!", playername);
  808.                 return SendClientMessage(playerid, blue,string);
  809.             }
  810.             else return SendClientMessage(playerid,red,"ERROR: This player isn't in a vehicle");
  811.         }
  812.         else return SendClientMessage(playerid, red, "ERROR: Player is not connected or is the highest level admin");
  813.     }
  814.     else
  815.     {
  816.     new string[128];
  817.     format(string, sizeof(string), "You must be administrator level %d to use that command!", flip);
  818.     return SendClientMessage(playerid, COLOUR_ORANGE, string);
  819.     }
  820. }
  821. CMD:goto(playerid,params[])
  822. {
  823.     if(PlayerInfo[playerid][pLevel] >= goto)
  824.     {
  825.         if(!strlen(params)) return
  826.         SendClientMessage(playerid, blue3, "Usage: /goto [PlayerID]") &&
  827.         SendClientMessage(playerid, orange, "Function: Will Go to specified player");
  828.         new player1;
  829.         new string[128];
  830.         if(!IsNumeric(params))
  831.         player1 = ReturnPlayerID(params);
  832.         else player1 = strval(params);
  833.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid)
  834.          {
  835.             new Float:x, Float:y, Float:z;  GetPlayerPos(player1,x,y,z);
  836.             SetPlayerInterior(playerid,GetPlayerInterior(player1));
  837.             SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(player1));
  838.             if(GetPlayerState(playerid) == 2)
  839.             {
  840.             SetVehiclePos(GetPlayerVehicleID(playerid),x+3,y,z);
  841.             LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(player1));
  842.             SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(player1));
  843.             }
  844.             else SetPlayerPos(playerid,x+2,y,z);
  845.             format(string,sizeof(string),"|- You have Teleported to \"%s\" -|", PlayerInfo[player1][pName]);
  846.             return SendClientMessage(playerid,blue,string);
  847.         }
  848.         else return SendClientMessage(playerid, red, "ERROR: Player is not connected or is the highest level admin");
  849.     }
  850.     else
  851.     {
  852.     new string[128];
  853.     format(string, sizeof(string), "You must be administrator level %d to use that command!", goto);
  854.     return SendClientMessage(playerid, COLOUR_ORANGE, string);
  855.     }
  856. }
  857. CMD:get(playerid,params[])
  858. {
  859.     if(PlayerInfo[playerid][pLevel] >= get)
  860.     {
  861.         if(!strlen(params)) return
  862.         SendClientMessage(playerid, blue3, "Usage: /get [PlayerID]") &&
  863.         SendClientMessage(playerid, orange, "Function: Will get to you the specified player");
  864.         new player1;
  865.         new string[128];
  866.         if(!IsNumeric(params))
  867.         player1 = ReturnPlayerID(params);
  868.         else player1 = strval(params);
  869.         if(PlayerInfo[player1][pLevel] >= PlayerInfo[playerid][pLevel])
  870.         return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  871.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid)
  872.          {
  873.             new Float:x, Float:y, Float:z;
  874.             GetPlayerPos(playerid,x,y,z);
  875.             SetPlayerInterior(player1,GetPlayerInterior(playerid));
  876.             SetPlayerVirtualWorld(player1,GetPlayerVirtualWorld(playerid));
  877.             if(GetPlayerState(player1) == 2)
  878.             {
  879.             new VehicleID = GetPlayerVehicleID(player1);
  880.             SetVehiclePos(VehicleID,x+3,y,z);
  881.             LinkVehicleToInterior(VehicleID,GetPlayerInterior(playerid));
  882.             SetVehicleVirtualWorld(GetPlayerVehicleID(player1),GetPlayerVirtualWorld(playerid));
  883.             }
  884.             else SetPlayerPos(player1,x+2,y,z);
  885.             format(string,sizeof(string),"|- You have been Teleported to Administrator \"%s's\" position! -|", PlayerInfo[playerid][pName]);
  886.             SendClientMessage(player1,blue,string);
  887.             format(string,sizeof(string),"|- You have Teleported \"%s\" to your Position -|", PlayerInfo[player1][pName]);
  888.             return SendClientMessage(playerid,blue,string);
  889.         }
  890.         else return SendClientMessage(playerid, red, "ERROR: Player is not connected or is the highest level admin");
  891.     }
  892.     else
  893.     {
  894.     new string[128];
  895.     format(string, sizeof(string), "You must be administrator level %d to use that command!", get);
  896.     return SendClientMessage(playerid, COLOUR_ORANGE, string);
  897.     }
  898. }
  899. CMD:setarmor(playerid,params[])
  900. {
  901.     if(PlayerInfo[playerid][pLevel] >= setarmor)
  902.     {
  903.         new Index;
  904.         new tmp[256];  tmp  = strtok(params,Index);
  905.         new tmp2[256]; tmp2 = strtok(params,Index);
  906.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return
  907.         SendClientMessage(playerid, blue3, "Usage: /setarmour [PlayerID] [Value]") &&
  908.         SendClientMessage(playerid, orange, "Function: Will set Armour of specified player!");
  909.  
  910.         if(strval(tmp2) < 0 || strval(tmp2) > 100)
  911.         return SendClientMessage(playerid, red, "ERROR: Invaild Armour Amount!");
  912.         new player1 = strval(tmp);
  913.         new armour = strval(tmp2);
  914.         new string[128];
  915.         if(PlayerInfo[player1][pLevel] == 10 && PlayerInfo[playerid][pLevel] != PlayerInfo[player1][pLevel])
  916.         return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  917.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID)
  918.         {
  919.             format(string, sizeof(string), "|- You have set \"%s's\" Armour to '%d' -|", PlayerInfo[player1][pName], armour);
  920.             SendClientMessage(playerid,blue,string);
  921.             if(player1 != playerid)
  922.             {
  923.             format(string,sizeof(string),"|- Administrator \"%s\" has set your Armour to '%d' -|", PlayerInfo[playerid][pName], armour);
  924.             SendClientMessage(player1,blue,string);
  925.             }
  926.             return SetPlayerArmour(player1, armour);
  927.         }
  928.         else return SendClientMessage(playerid, red, "ERROR: Player is not connected or is the highest level admin");
  929.     }
  930.     else
  931.     {
  932.     new string[128];
  933.     format(string, sizeof(string), "You must be administrator level %d to use that command!", setarmor);
  934.     return SendClientMessage(playerid, COLOUR_ORANGE, string);
  935.     }
  936. }
  937. CMD:sethealth(playerid,params[])
  938. {
  939.     if(PlayerInfo[playerid][pLevel] >= sethealth)
  940.     {
  941.         new Index;
  942.         new tmp[256];  tmp  = strtok(params,Index);
  943.         new tmp2[256]; tmp2 = strtok(params,Index);
  944.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return
  945.         SendClientMessage(playerid, blue3, "Usage: /sethealth [PlayerID] [Value]") &&
  946.         SendClientMessage(playerid, orange, "Function: Will set Armour of specified player!");
  947.  
  948.         if(strval(tmp2) < 0 || strval(tmp2) > 100)
  949.         return SendClientMessage(playerid, red, "ERROR: Invaild Health amount!");
  950.         new player1 = strval(tmp);
  951.         new health = strval(tmp2);
  952.         new string[128];
  953.         if(PlayerInfo[player1][pLevel] == 10 && PlayerInfo[playerid][pLevel] != PlayerInfo[player1][pLevel])
  954.         return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  955.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  956.             format(string, sizeof(string), "|- You have set \"%s's\" Health to '%d' -|", PlayerInfo[player1][pName], health);
  957.             SendClientMessage(playerid,blue,string);
  958.             if(player1 != playerid)
  959.             {
  960.             format(string,sizeof(string),"|- Administrator \"%s\" has set your Health to '%d' -|", PlayerInfo[playerid][pName], health);
  961.             SendClientMessage(player1,blue,string);
  962.             }
  963.             return SetPlayerHealth(player1, health);
  964.         }
  965.         else return SendClientMessage(playerid, red, "ERROR: Player is not connected or is the highest level admin");
  966.     }
  967.     else
  968.     {
  969.     new string[128];
  970.     format(string, sizeof(string), "You must be administrator level %d to use that command!", sethealth);
  971.     return SendClientMessage(playerid, COLOUR_ORANGE, string);
  972.     }
  973. }
  974. CMD:giveweapon(playerid,params[])
  975. {
  976.     if(PlayerInfo[playerid][pLevel] >= giveweapon)
  977.     {
  978.         new Index;
  979.         new tmp[256];  tmp  = strtok(params,Index);
  980.         new tmp2[256]; tmp2 = strtok(params,Index);
  981.         new tmp3[256]; tmp3 = strtok(params,Index);
  982.  
  983.         if(!strlen(tmp) || !strlen(tmp2)) return
  984.         SendClientMessage(playerid, blue3, "Usage: /giveweapon [PlayerID] [Weapon ID/Name] [Ammo]") &&
  985.         SendClientMessage(playerid, orange, "Function: Will Crash a specified player");
  986.         new player1 = strval(tmp);
  987.         new weap, ammo, WeapName[32];
  988.         new string[128];
  989.         if(!strlen(tmp3) || !IsNumeric(tmp3) || strval(tmp3) <= 0 || strval(tmp3) > 99999) ammo = 500;
  990.         else ammo = strval(tmp3);
  991.         if(!IsNumeric(tmp2)) weap = GetWeaponIDFromName(tmp2);
  992.         else weap = strval(tmp2);
  993.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID)
  994.         {
  995.             if(!IsValidWeapon(weap))
  996.             return SendClientMessage(playerid,red,"ERROR: Invalid Weapon ID");
  997.             GetWeaponName(weap,WeapName,32);
  998.             format(string, sizeof(string), "|- You have given \"%s\" a %s (%d) with %d rounds of Ammo -|", PlayerInfo[player1][pName], WeapName, weap, ammo);
  999.             SendClientMessage(playerid,blue,string);
  1000.             if(player1 != playerid)
  1001.             {
  1002.             format(string,sizeof(string),"|- Administrator \"%s\" has given you a %s (%d) with %d rounds of Ammo -|", PlayerInfo[playerid][pName], WeapName, weap, ammo);
  1003.             SendClientMessage(player1,blue,string);
  1004.             }
  1005.             return GivePlayerWeapon(player1, weap, ammo);
  1006.         }
  1007.         else return SendClientMessage(playerid, red, "ERROR: Player is not connected or is the highest level admin");
  1008.     }
  1009.     else
  1010.     {
  1011.     new string[128];
  1012.     format(string, sizeof(string), "You must be administrator level %d to use that command!", giveweapon);
  1013.     return SendClientMessage(playerid, COLOUR_ORANGE, string);
  1014.     }
  1015. }
  1016.  
  1017. CMD:god(playerid,params[])
  1018. {
  1019.     #pragma unused params
  1020.     if(PlayerInfo[playerid][pLevel] >= god)
  1021.     {
  1022.         if(PlayerInfo[playerid][God] == 0)
  1023.         {
  1024.             PlayerInfo[playerid][God] = 1;
  1025.             SetPlayerHealth(playerid,100000);
  1026.             GivePlayerWeapon(playerid,16,50000);
  1027.             GivePlayerWeapon(playerid,26,50000);
  1028.             SendClientMessage(playerid,green,"God Mod for Admins ON");
  1029.         }
  1030.         else
  1031.         {
  1032.             PlayerInfo[playerid][God] = 0;
  1033.             SendClientMessage(playerid,red,"God Mod for Admins OFF");
  1034.             SetPlayerHealth(playerid, 100);
  1035.         }
  1036.         return GivePlayerWeapon(playerid,35,0);
  1037.     }
  1038.     else
  1039.     {
  1040.     new string[128];
  1041.     format(string, sizeof(string), "You must be administrator level %d to use that command!", god);
  1042.     return SendClientMessage(playerid, COLOUR_ORANGE, string);
  1043.     }
  1044. }
  1045.  
  1046. CMD:healall(playerid,params[])
  1047. {
  1048.     #pragma unused params
  1049.     if(PlayerInfo[playerid][pLevel] >= healall)
  1050.     {
  1051.         new adminname [MAX_PLAYER_NAME];
  1052.         for(new i = 0; i < MAX_PLAYERS; i++)
  1053.         {
  1054.         if(IsPlayerConnected(i))
  1055.         {
  1056.         PlayerPlaySound(i,1057,0.0,0.0,0.0);
  1057.         SetPlayerHealth(i,100.0);
  1058.         }
  1059.         }
  1060.         GetPlayerName(playerid, adminname, sizeof(adminname));
  1061.         new string[128];
  1062.         format(string, sizeof(string), "|- Administrator \"%s\" has Healed all players -|", adminname);
  1063.         SendClientMessageToAll(blue, string);
  1064.     }
  1065.     else
  1066.     {
  1067.     new string[128];
  1068.     format(string, sizeof(string), "You must be administrator level %d to use that command!", healall);
  1069.     return SendClientMessage(playerid, COLOUR_ORANGE, string);
  1070.     }
  1071.     return 0;
  1072. }
  1073.  
  1074. CMD:kick(playerid,params[])
  1075. {
  1076.     if(PlayerInfo[playerid][pLevel] >= kick)
  1077.     {
  1078.         new Index;
  1079.         new tmp[256];  tmp  = strtok(params,Index);
  1080.         new tmp2[256]; tmp2 = strtok(params,Index);
  1081.         if(!strlen(params)) return
  1082.         SendClientMessage(playerid, blue3, "Usage: /kick [PlayerID] [Reason]") &&
  1083.         SendClientMessage(playerid, orange, "Function: Will Kick the specified player");
  1084.         new player1;
  1085.         new string[128];
  1086.         new playername[MAX_PLAYER_NAME];
  1087.         new adminname [MAX_PLAYER_NAME];
  1088.         player1 = strval(tmp);
  1089.  
  1090.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid && (PlayerInfo[player1][pLevel] != 10))
  1091.         {
  1092.             GetPlayerName(player1, playername, sizeof(playername));
  1093.             GetPlayerName(playerid, adminname, sizeof(adminname));
  1094.             if(!strlen(tmp2))
  1095.             {
  1096.             format(string,sizeof(string),"|- %s has been kicked by Administrator %s | Reason: Not Specified -|",playername,adminname);
  1097.             SendClientMessageToAll(grey,string);
  1098.             SaveTo("KickLog",string);
  1099.             print(string);
  1100.             return Kick(player1);
  1101.             }
  1102.             else
  1103.             {
  1104.             format(string,sizeof(string),"|- %s has been kicked by Administrator %s | Reason: %s -|",playername,adminname,params[2]);
  1105.             SendClientMessageToAll(grey,string);
  1106.             SaveTo("KickLog",string); print(string);
  1107.             return Kick(player1);
  1108.             }
  1109.         }
  1110.         else return SendClientMessage(playerid, red, "ERROR: Player is not connected or is the highest level admin");
  1111.     }
  1112.     else
  1113.     {
  1114.     new string[128];
  1115.     format(string, sizeof(string), "You must be administrator level %d to use that command!", kick);
  1116.     return SendClientMessage(playerid, COLOUR_ORANGE, string);
  1117.     }
  1118. }
  1119.  
  1120. CMD:setlevel(playerid,params[])
  1121. {
  1122.     if(PlayerInfo[playerid][pLogged] == 1)
  1123.     {
  1124.         if(PlayerInfo[playerid][pLevel] >= setlevel || IsPlayerAdmin(playerid))
  1125.         {
  1126.             new tmp [256];
  1127.             new tmp2[256];
  1128.             new Index;
  1129.             tmp  = strtok(params,Index);
  1130.             tmp2 = strtok(params,Index);
  1131.             if(!strlen(params))
  1132.             {
  1133.             new string[128];
  1134.             format(string,sizeof(string),"Usage: /setlevel [PlayerID] [Level (0-10)]");
  1135.             SendClientMessage(playerid,blue3,string);
  1136.             return SendClientMessage(playerid, orange, "Function: Will set the Level of Administration of the Specific Player");
  1137.             }
  1138.             new player1, level, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
  1139.             player1 = strval(tmp);
  1140.             if(!strlen(tmp2)) return
  1141.             SendClientMessage(playerid, blue3, "Usage: /setlevel [PlayerID] [Level (0/5)]") &&
  1142.             SendClientMessage(playerid, orange, "Function: Will set the Level of Administration of the Specific Player");
  1143.             level = strval(tmp2);
  1144.  
  1145.             if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
  1146.                 if(PlayerInfo[player1][pLogged] == 1)
  1147.                 {
  1148.                 if(level > 10)
  1149.                 return SendClientMessage(playerid,red,"ERROR: Invalid Level");
  1150.                 if(level == PlayerInfo[player1][pLevel])
  1151.                 return SendClientMessage(playerid,red,"ERROR: Player is already this level");
  1152.                 GetPlayerName(player1, playername, sizeof(playername));
  1153.                 GetPlayerName(playerid, adminname, sizeof(adminname));
  1154.                 new year,month,day;
  1155.                 new hour,minute,second;
  1156.                 getdate(year, month, day);
  1157.                 gettime(hour,minute,second);
  1158.                
  1159.                 new AdmRank[256];
  1160.                 switch(level)
  1161.                 {
  1162.                 case 1: AdmRank = "Junior Moderator";
  1163.                 case 2: AdmRank = "Moderator";
  1164.                 case 3: AdmRank = "Senior Moderator";
  1165.                 case 4: AdmRank = "Junior Administrator";
  1166.                 case 5: AdmRank = "Administrator";
  1167.                 case 6: AdmRank = "Master Administrator";
  1168.                 case 7: AdmRank = "Senior Administrator";
  1169.                 case 8: AdmRank = "Head Administrator";
  1170.                 case 9: AdmRank = "Co-Owner/Co-Developer";
  1171.                 case 10: AdmRank = "Owner/Developer/Founder";
  1172.                 }
  1173.                 if(level > 0)
  1174.                 format(string,sizeof(string),"|- Administrator %s has set you to Administrator Status | Level: %d - %s -|",adminname, level, AdmRank);
  1175.                 else
  1176.                 format(string,sizeof(string),"|- Administrator %s has set you to Player Status | Level: %d -|",adminname, level);
  1177.                 SendClientMessage(player1,blue2,string);
  1178.                 if(level > PlayerInfo[player1][pLevel])
  1179.                 GameTextForPlayer(player1,"Promoted", 2000, 3);
  1180.                 else GameTextForPlayer(player1,"Demoted", 2000, 3);
  1181.  
  1182.                 format(string,sizeof(string),"You have given %s Level %d on '%d/%d/%d' at '%d:%d:%d'", playername, level, day, month, year, hour, minute, second);
  1183.                 SendClientMessage(playerid,yellow,string);
  1184.                 format(string,sizeof(string),"Administrator %s has made %s Level %d",adminname, playername, level);
  1185.                 SaveTo("AdminLog",string);
  1186.                 new INI:File = INI_Open(UserPath(player1));
  1187.                 INI_WriteInt(File,"Level",level);
  1188.                 INI_Close(File);
  1189.                 PlayerInfo[player1][pLevel] = level;
  1190.                 return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1191.                 }
  1192.                 else return SendClientMessage(playerid,red,"ERROR: This player is not Registred or Logged!");
  1193.             }
  1194.             else return SendClientMessage(playerid, red, "ERROR: Player is not connected or is the highest level admin");
  1195.         }
  1196.         else
  1197.         {
  1198.         new string[128];
  1199.         format(string, sizeof(string), "You must be administrator level %d to use that command!", setlevel);
  1200.         return SendClientMessage(playerid, COLOUR_ORANGE, string);
  1201.         }
  1202.     }
  1203.     else return SendClientMessage(playerid,red,"ERROR: You must be logged in to use this commands");
  1204. }
  1205.  
  1206. CMD:settime(playerid,params[])
  1207. {
  1208.     if(PlayerInfo[playerid][pLevel] >= settime)
  1209.     {
  1210.         new Index;
  1211.         new tmp[256];  tmp  = strtok(params,Index);
  1212.         new tmp2[256]; tmp2 = strtok(params,Index);
  1213.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return
  1214.         SendClientMessage(playerid, blue3, "Usage: /settime [PlayerID] [Time(Hour)]") &&
  1215.         SendClientMessage(playerid, orange, "Function: Will set the Time of specified player!");
  1216.         new player1 = strval(tmp);
  1217.         new time = strval(tmp2);
  1218.         new string[128];
  1219.         if(PlayerInfo[player1][pLevel] == 10 && PlayerInfo[playerid][pLevel] != 10)
  1220.         return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1221.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID)
  1222.         {
  1223.             format(string, sizeof(string), "|- You have set \"%s's\" Time to %d:00 -|", PlayerInfo[player1][pName], time);
  1224.             SendClientMessage(playerid,blue,string);
  1225.             if(player1 != playerid)
  1226.             {
  1227.             format(string,sizeof(string),"|- Administrator \"%s\" has set your Time to %d:00 -|", PlayerInfo[playerid][pName], time);
  1228.             SendClientMessage(player1,blue,string);
  1229.             }
  1230.             PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1231.             return SetPlayerTime(player1, time, 0);
  1232.         }
  1233.         else return SendClientMessage(playerid, red, "ERROR: Player is not connected or is the highest level admin");
  1234.     }
  1235.     else
  1236.     {
  1237.     new string[128];
  1238.     format(string, sizeof(string), "You must be administrator level %d to use that command!", settime);
  1239.     return SendClientMessage(playerid, COLOUR_ORANGE, string);
  1240.     }
  1241. }
  1242.  
  1243. CMD:setweather(playerid,params[])
  1244. {
  1245.     if(PlayerInfo[playerid][pLevel] >= setweather)
  1246.     {
  1247.         new Index;
  1248.         new tmp[256];  tmp  = strtok(params,Index);
  1249.         new tmp2[256]; tmp2 = strtok(params,Index);
  1250.         if(!strlen(tmp) || !strlen(tmp2) || !IsNumeric(tmp2)) return
  1251.         SendClientMessage(playerid, blue3, "Usage: /setweather [PlayerID] [WeatherID]") &&
  1252.         SendClientMessage(playerid, orange, "Function: Will set the Weather of specified player!");
  1253.         new player1 = strval(tmp), weather = strval(tmp2), string[128];
  1254.         if(PlayerInfo[player1][pLevel] == 10 && PlayerInfo[playerid][pLevel] != 10)
  1255.         return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
  1256.         if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID)
  1257.         {
  1258.             format(string, sizeof(string), "|- You have set \"%s's\" weather to '%d -|", PlayerInfo[player1][pName], weather);
  1259.             SendClientMessage(playerid,blue,string);
  1260.             if(player1 != playerid)
  1261.             {
  1262.             format(string,sizeof(string),"|- Administrator \"%s\" has set your weather to '%d' -|", PlayerInfo[playerid][pName], weather);
  1263.             SendClientMessage(player1,blue,string);
  1264.             }
  1265.             SetPlayerWeather(player1,weather);
  1266.             PlayerPlaySound(player1,1057,0.0,0.0,0.0);
  1267.             return PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  1268.         }
  1269.         else return SendClientMessage(playerid, red, "ERROR: Player is not connected or is the highest level admin");
  1270.     }
  1271.     else
  1272.     {
  1273.     new string[128];
  1274.     format(string, sizeof(string), "You must be administrator level %d to use that command!", settime);
  1275.     return SendClientMessage(playerid, COLOUR_ORANGE, string);
  1276.     }
  1277. }
  1278.  
  1279. CMD:getip(playerid,params[])
  1280. {
  1281.     if(PlayerInfo[playerid][pLevel] >= getip)
  1282.     {
  1283.         if(PlayerInfo[playerid][pLogged] == 1)
  1284.         {
  1285.             new Index;
  1286.             new tmp[256]; tmp = strtok(params,Index);
  1287.             if(!strlen(tmp) || !IsNumeric(tmp))
  1288.             {
  1289.                 new Target = strval(tmp);
  1290.                 if(Target == INVALID_PLAYER_ID) return SendClientMessage(playerid,red,"ERROR: Wrong player ID");
  1291.                 new PIP[30];
  1292.                 GetPlayerIp(Target,PIP,sizeof(PIP));
  1293.                 new pstring[256];
  1294.                 new tname[MAX_PLAYER_NAME];
  1295.                 GetPlayerName(Target,tname,sizeof(tname));
  1296.                 format(pstring,sizeof(pstring),"%s´s IP: %s",tname,PIP);
  1297.                 SendClientMessage(playerid,green,pstring);
  1298.             }
  1299.             else
  1300.             SendClientMessage(playerid,blue3,"Usage: /ip <playerid>");
  1301.             SendClientMessage(playerid,orange,"Function: To get the ip of a specific player");
  1302.         }
  1303.         else SendClientMessage(playerid,red,"ERROR: You must be logged in to use this command!");
  1304.     }
  1305.         else
  1306.     {
  1307.     new string[128];
  1308.     format(string, sizeof(string), "You must be administrator level %d to use that command!", settime);
  1309.     return SendClientMessage(playerid, COLOUR_ORANGE, string);
  1310.     }
  1311.     return 1;
  1312. }
  1313.  
  1314. CMD:spec(playerid,params[])
  1315. {
  1316.     if(PlayerInfo[playerid][pLevel] >= spec)
  1317.     {
  1318.         if(PlayerInfo[playerid][pLogged] == 1)
  1319.         {
  1320.             if(pspecing[playerid] == 0)
  1321.             {
  1322.                 new Target;
  1323.                 new Index;
  1324.                 new tmp[256]; tmp = strtok(params,Index);
  1325.                 if(!strlen(tmp) || !IsNumeric(tmp))
  1326.                 {
  1327.                     Target = strval(tmp);
  1328.                     if(pspecing[Target] == 0)
  1329.                     {
  1330.                         if(Target == playerid) return SendClientMessage(playerid, red, "SERVER: Cant perform this command on yourself!");
  1331.                         if(Target == INVALID_PLAYER_ID) return SendClientMessage(playerid,red,"ERROR: Wrong player ID");
  1332.                         TogglePlayerSpectating(playerid, 1);
  1333.                         PlayerSpectatePlayer(playerid, Target);
  1334.                         SetPlayerInterior(playerid,GetPlayerInterior(Target));
  1335.                         pspecing[playerid] = 1;
  1336.                         new tname[MAX_PLAYER_NAME];
  1337.                         GetPlayerName(Target,tname,sizeof(tname));
  1338.                         new MyString[128];
  1339.                         format(MyString,sizeof MyString, "You are now spectating %s! Type /specoff to stop!", tname);
  1340.                         SendClientMessage(playerid, green, MyString);
  1341.                         new specstring[256];
  1342.                         format(specstring, sizeof(specstring), "~g~SPECTATING: ~w~%s(%d)~n~~w~Type ~r~/specoff ~w~to stop!",tname, Target);
  1343.                         TextDrawHideForPlayer(playerid,spect);
  1344.                         TextDrawSetString(spect,specstring);
  1345.                         TextDrawShowForPlayer(playerid,spect);
  1346.                     }
  1347.                     else SendClientMessage(playerid,red,"ERROR: Player is in spectate mode!");
  1348.                 }
  1349.                 else
  1350.                 SendClientMessage(playerid,blue3,"USAGE: /spec <playerid>");
  1351.                 SendClientMessage(playerid,orange,"Function: To spectate a specific player");
  1352.             }
  1353.             else SendClientMessage(playerid,red,"ERROR: You are already in spectate mode!If you want to off spec,type /specoff");
  1354.         }
  1355.         else SendClientMessage(playerid,red,"ERROR: You must be logged in to perform this command!");
  1356.     }
  1357.     else SendClientMessage(playerid, red, "ERROR: You have to be an Admin level 1 or higher to perform this command!");
  1358.     return 1;
  1359. }
  1360.  
  1361. CMD:specoff(playerid,params[])
  1362. {
  1363.     if(PlayerInfo[playerid][pLevel] >= specoff)
  1364.     {
  1365.         if(PlayerInfo[playerid][pLogged] == 1)
  1366.         {
  1367.             if(pspecing[playerid] == 1)
  1368.             {
  1369.                 TogglePlayerSpectating(playerid, 0);
  1370.                 SetPlayerInterior(playerid,0);
  1371.                 pspecing[playerid] = 0;
  1372.                 TextDrawHideForPlayer(playerid,spect);
  1373.             }
  1374.             else SendClientMessage(playerid,red,"ERROR: You are not in spectate mode!If you want to use spec,type /spec");
  1375.         }
  1376.         else SendClientMessage(playerid,red,"ERROR: You must be logged in to perform this command!");
  1377.     }
  1378.     else SendClientMessage(playerid, red, "ERROR: You have to be an Admin level 1 or higher to perform this command!");
  1379.     return 1;
  1380. }
  1381.  
  1382. CMD:onduty(playerid,params[])
  1383. {
  1384.     if(PlayerInfo[playerid][pLevel] >= onduty)
  1385.     {
  1386.         if(PlayerInfo[playerid][pLogged] == 1)
  1387.         {
  1388.             if(PlayerInfo[playerid][OnDuty] == 0)
  1389.             {
  1390.                 PlayerInfo[playerid][OnDuty] = 1;
  1391.                 PlayerInfo[playerid][Hidden] = 0;
  1392.                 SendClientMessage(playerid, green, "You are now \"On Duty!\"");
  1393.             }
  1394.             else if(PlayerInfo[playerid][OnDuty] == 1)
  1395.             {
  1396.                 SendClientMessage(playerid, red, "You are already \"On Duty!\"! Use /offduty or /ahide to change your status!");
  1397.             }
  1398.         }
  1399.         else SendClientMessage(playerid,red,"ERROR: You must be logged in to perform this command!");
  1400.     }
  1401.     else SendClientMessage(playerid, red, "ERROR: You have to be an Admin level 1 or higher to perform this command!");
  1402.     return 1;
  1403. }
  1404.  
  1405. CMD:offduty(playerid,params[])
  1406. {
  1407.     if(PlayerInfo[playerid][pLevel] >= offduty)
  1408.     {
  1409.         if(PlayerInfo[playerid][pLogged] == 1)
  1410.         {
  1411.             if(PlayerInfo[playerid][OnDuty] == 1)
  1412.             {
  1413.                 PlayerInfo[playerid][OnDuty] = 0;
  1414.                 PlayerInfo[playerid][Hidden] = 0;
  1415.                 SendClientMessage(playerid, green, "You are now \"Off Duty!\"");
  1416.             }
  1417.             else if(PlayerInfo[playerid][OnDuty] == 0)
  1418.             {
  1419.                 SendClientMessage(playerid, red, "You are already \"Off Duty!\"! Use /onduty or /ahide to change your status!");
  1420.             }
  1421.         }
  1422.         else SendClientMessage(playerid,red,"ERROR: You must be logged in to perform this command!");
  1423.     }
  1424.     else SendClientMessage(playerid, red, "ERROR: You have to be an Admin level 1 or higher to perform this command!");
  1425.     return 1;
  1426. }
  1427.  
  1428. CMD:ahide(playerid,params[])
  1429. {
  1430.     if(PlayerInfo[playerid][pLevel] >= ahide)
  1431.     {
  1432.         if(PlayerInfo[playerid][pLogged] == 1)
  1433.         {
  1434.             if(PlayerInfo[playerid][Hidden] == 0)
  1435.             {
  1436.                 PlayerInfo[playerid][OnDuty] = 0;
  1437.                 PlayerInfo[playerid][Hidden] = 1;
  1438.                 SendClientMessage(playerid, green, "You are now \"Hidden as Admin!\"");
  1439.             }
  1440.             else if(PlayerInfo[playerid][Hidden] == 1)
  1441.             {
  1442.                 PlayerInfo[playerid][OnDuty] = 0;
  1443.                 PlayerInfo[playerid][Hidden] = 0;
  1444.                 SendClientMessage(playerid, green, "You are now \"Unhidden as Admin!\"");
  1445.             }
  1446.         }
  1447.         else SendClientMessage(playerid,red,"ERROR: You must be logged in to perform this command!");
  1448.     }
  1449.     else SendClientMessage(playerid, red, "ERROR: You have to be an Admin level 1 or higher to perform this command!");
  1450.     return 1;
  1451. }
  1452.  
  1453. CMD:admins(playerid,params[])
  1454. {
  1455.     new count = 0;
  1456.     new AdmRank[256];
  1457.     new string[128];
  1458.     new status[128] = "";
  1459.     SendClientMessage(playerid,COLOUR_RED,"");
  1460.     SendClientMessage(playerid,COLOUR_GREEN,"________________.:|Online Admins|:.________________");
  1461.     SendClientMessage(playerid,COLOUR_RED,"");
  1462.     for(new i = 0; i < MAX_PLAYERS; i++)
  1463.     {
  1464.         if(IsPlayerConnected(i))
  1465.         {
  1466.             if(PlayerInfo[i][pLevel] > 0)
  1467.             {
  1468.                 if(PlayerInfo[i][pLevel] == 1)
  1469.                 {
  1470.                     AdmRank = "Junior Moderator";
  1471.                     if(PlayerInfo[i][OnDuty] == 1) status = "On Duty!";
  1472.                     if(PlayerInfo[i][OnDuty] == 0) status = "Playing...";
  1473.                 }
  1474.                 else if(PlayerInfo[i][pLevel] == 2)
  1475.                 {
  1476.                     AdmRank = "Moderator";
  1477.                     if(PlayerInfo[i][OnDuty] == 1) status = "On Duty!";
  1478.                     if(PlayerInfo[i][OnDuty] == 0) status = "Playing...";
  1479.                 }
  1480.                 else if(PlayerInfo[i][pLevel] == 3)
  1481.                 {
  1482.                     AdmRank = "Senior Moderator";
  1483.                     if(PlayerInfo[i][OnDuty] == 1) status = "On Duty!";
  1484.                     if(PlayerInfo[i][OnDuty] == 0) status = "Playing...";
  1485.                 }
  1486.                 else if(PlayerInfo[i][pLevel] == 4)
  1487.                 {
  1488.                     AdmRank = "Junior Administrator";
  1489.                     if(PlayerInfo[i][OnDuty] == 1) status = "On Duty!";
  1490.                     if(PlayerInfo[i][OnDuty] == 0) status = "Playing...";
  1491.                 }
  1492.                 else if(PlayerInfo[i][pLevel] >= 5)
  1493.                 {
  1494.                     AdmRank = "Adminstrator";
  1495.                     if(PlayerInfo[i][OnDuty] == 1) status = "On Duty!";
  1496.                     if(PlayerInfo[i][OnDuty] == 0) status = "Playing...";
  1497.                 }
  1498.                 else if(PlayerInfo[i][pLevel] == 6)
  1499.                 {
  1500.                     AdmRank = "Master Adminstrator";
  1501.                     if(PlayerInfo[i][OnDuty] == 1) status = "On Duty!";
  1502.                     if(PlayerInfo[i][OnDuty] == 0) status = "Playing...";
  1503.                 }
  1504.                 else if(PlayerInfo[i][pLevel] == 7)
  1505.                 {
  1506.                     AdmRank = "Senior Adminstrator";
  1507.                     if(PlayerInfo[i][OnDuty] == 1) status = "On Duty!";
  1508.                     if(PlayerInfo[i][OnDuty] == 0) status = "Playing...";
  1509.                 }
  1510.                 else if(PlayerInfo[i][pLevel] == 8)
  1511.                 {
  1512.                     AdmRank = "Head Adminstrator";
  1513.                     if(PlayerInfo[i][OnDuty] == 1) status = "On Duty!";
  1514.                     if(PlayerInfo[i][OnDuty] == 0) status = "Playing...";
  1515.                 }
  1516.                 else if(PlayerInfo[i][pLevel] == 9)
  1517.                 {
  1518.                     AdmRank = "Co-Owner/Co-developer";
  1519.                     if(PlayerInfo[i][OnDuty] == 1) status = "On Duty!";
  1520.                     if(PlayerInfo[i][OnDuty] == 0) status = "Playing...";
  1521.                 }
  1522.                 else if(PlayerInfo[i][pLevel] >= 10)
  1523.                 {
  1524.                     AdmRank = "Owner/Developer/Founder";
  1525.                     if(PlayerInfo[i][OnDuty] == 1) status = "On Duty!";
  1526.                     if(PlayerInfo[i][OnDuty] == 0) status = "Playing...";
  1527.                 }
  1528.                 new Name[MAX_PLAYER_NAME];
  1529.                 GetPlayerName(i,Name,sizeof(Name));
  1530.                 if(PlayerInfo[i][Hidden] == 0)
  1531.                 {
  1532.                     format(string, sizeof(string), "Name: %s (ID:%i) | Level: %d | Rank: %s | Status: %s", Name, PlayerInfo[i][pLevel], i, AdmRank, status);
  1533.                     SendClientMessage(playerid,blue,string);
  1534.                     count++;
  1535.                 }
  1536.                 else if(PlayerInfo[i][Hidden] == 1)
  1537.                 {
  1538.                     SendClientMessage(playerid,COLOUR_RED,"No Admins online!");
  1539.                     SendClientMessage(playerid,COLOUR_GREEN,"_________________________________________________");
  1540.                 }
  1541.             }
  1542.         }
  1543.     }
  1544.     return 0;
  1545. }
  1546.  
  1547. CMD:warn(playerid,params[])
  1548. {
  1549.     if(PlayerInfo[playerid][pLevel] >= warn)
  1550.     {
  1551.         if(PlayerInfo[playerid][pLogged] == 1)
  1552.         {
  1553.             new Target;
  1554.             new Index;
  1555.             new tmp[256]; tmp = strtok(params,Index);
  1556.             new tmp2[256]; tmp2 = strtok(params,Index);
  1557.             if(!strlen(tmp) || !strlen(tmp2))
  1558.             {
  1559.                 Target = strval(tmp);
  1560.                 if(Target == playerid) return SendClientMessage(playerid, red, "SERVER: Cant perform this command on yourself!" );
  1561.                 if(Target == INVALID_PLAYER_ID) return SendClientMessage(playerid,red,"ERROR: Wrong player ID");
  1562.                 if(PlayerInfo[Target][pLevel] >= PlayerInfo[playerid][pLevel]) return SendClientMessage(playerid,red,"ERROR: You cant perform this on Admins that are equal or higher than your level!");
  1563.                 PlayerInfo[Target][Warnings]++;
  1564.                 new tname[MAX_PLAYER_NAME];
  1565.                 GetPlayerName(Target,tname,sizeof(tname));
  1566.                 new pname[MAX_PLAYER_NAME];
  1567.                 GetPlayerName(playerid,pname,sizeof(pname));
  1568.                 new MyString[256];
  1569.                 new TargetString[256];
  1570.                 format(MyString,sizeof MyString, "You have warned %s! (Reason: %s) (Warnings: %d/%d)", tname, params[1+strlen(tmp)], PlayerInfo[Target][Warnings],MAX_WARNINGS);
  1571.                 format(TargetString,sizeof TargetString, "You have been warned by %s! (Reason: %s) (Warnings: %d/%d)", pname, params[1+strlen(tmp)],PlayerInfo[Target][Warnings],MAX_WARNINGS);
  1572.                 SendClientMessage(Target, COLOUR_RED, TargetString);
  1573.                 SendClientMessage(playerid, COLOUR_GREEN, MyString);
  1574.                 if(PlayerInfo[Target][Warnings] == MAX_WARNINGS)
  1575.                 {
  1576.                     new kstring[256];
  1577.                     new name[MAX_PLAYER_NAME];
  1578.                     GetPlayerName(Target,name,sizeof(name));
  1579.                     format(kstring,sizeof(kstring),"Player %s (ID:%d) got kicked! (Reason: Maximum warnings)", name, Target);
  1580.                     SendClientMessageToAll(red,kstring);
  1581.                     PlayerInfo[Target][Warnings] = 0;
  1582.                     new kickdate[3];
  1583.                     new TargetString2[256];
  1584.                     getdate(kickdate[0], kickdate[1], kickdate[2]);
  1585.                     format(TargetString2,sizeof(TargetString2),"{FF002B}Kicked by: Server\n\n{FF002B}Reason: Too much warnings\n\n{FF002B}Date: {FFFFFF}%02d/%02d/%04d", kickdate[2], kickdate[1], kickdate[0]);
  1586.                     ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "{FF002B}KICKED!", TargetString2, "OK", "");
  1587.                     Kick(Target);
  1588.                 }
  1589.             }
  1590.             else
  1591.             SendClientMessage(playerid,blue3,"USAGE: /warn <playerid> <reason>");
  1592.             SendClientMessage(playerid,orange,"Function: To warn a specific player");
  1593.         }
  1594.         else SendClientMessage(playerid,red,"ERROR: You must be logged in to use this command!");
  1595.     }
  1596.     else SendClientMessage(playerid,red,"ERROR: You must be an Admin level 3 or higher to perform this command!");
  1597.     return 1;
  1598. }
  1599.  
  1600. CMD:setcash(playerid,params[])
  1601. {
  1602.     if(PlayerInfo[playerid][pLevel] >= setcash)
  1603.     {
  1604.         if(PlayerInfo[playerid][pLogged] == 1)
  1605.         {
  1606.             new Target;
  1607.             new Amount;
  1608.             new Index;
  1609.             new tmp[256]; tmp = strtok(params,Index);
  1610.             new tmp2[256]; tmp2 = strtok(params,Index);
  1611.             if(!strlen(tmp) || !strlen(tmp2))
  1612.             {
  1613.                 Target = strval(tmp);
  1614.                 Amount = strval(tmp2);
  1615.                 if(Target == INVALID_PLAYER_ID) return SendClientMessage(playerid,red,"ERROR: Wrong player ID");
  1616.                 if(PlayerInfo[Target][pLevel] >= PlayerInfo[playerid][pLevel]) return SendClientMessage(playerid,red,"ERROR: You cant perform this on Admins that are equal or higher than your level!");
  1617.                 if(Amount > 9999999) return SendClientMessage(playerid,red,"ERROR: Money ammount from 0 to 9999999");
  1618.                 ResetPlayerMoney(Target);
  1619.                 GivePlayerMoney(Target,Amount);
  1620.                 new tname[MAX_PLAYER_NAME];
  1621.                 GetPlayerName(Target,tname,sizeof(tname));
  1622.                 new pname[MAX_PLAYER_NAME];
  1623.                 GetPlayerName(playerid,pname,sizeof(pname));
  1624.                 new tstring[256];
  1625.                 new pstring[256];
  1626.                 format(tstring,sizeof(tstring),"Your money has been set to $%d by %s",Amount,pname);
  1627.                 format(pstring,sizeof(pstring),"You have set %s´s(%d) money to $%d",tname,Target,Amount);
  1628.                 SendClientMessage(Target,green,tstring);
  1629.                 SendClientMessage(playerid,green,pstring);
  1630.             }
  1631.             else
  1632.             SendClientMessage(playerid,blue3,"USAGE: /setmoney <playerid> <amount>");
  1633.             SendClientMessage(playerid,orange,"Function: To set cash of a specific player");
  1634.         }
  1635.         else SendClientMessage(playerid,red,"ERROR: You must be logged in to use this command!");
  1636.     }
  1637.     else SendClientMessage(playerid,red,"ERROR: You must be an Admin level 2 or higher to perform this command!");
  1638.     return 1;
  1639. }
  1640.  
  1641. CMD:setscore(playerid,params[])
  1642. {
  1643.     if(PlayerInfo[playerid][pLevel] >= setscore)
  1644.     {
  1645.         if(PlayerInfo[playerid][pLogged] == 1)
  1646.         {
  1647.             new Target;
  1648.             new Amount;
  1649.             new Index;
  1650.             new tmp[256]; tmp = strtok(params,Index);
  1651.             new tmp2[256]; tmp2 = strtok(params,Index);
  1652.             if(!strlen(tmp) || !strlen(tmp2))
  1653.             {
  1654.                 Target = strval(tmp);
  1655.                 Amount = strval(tmp2);
  1656.                 if(Target == INVALID_PLAYER_ID) return SendClientMessage(playerid,red,"ERROR: Wrong player ID");
  1657.                 if(PlayerInfo[Target][pLevel] >= PlayerInfo[playerid][pLevel]) return SendClientMessage(playerid,red,"ERROR: You cant perform this on Admins that are equal or higher than your level!");
  1658.                 if(Amount > 100000) return SendClientMessage(playerid,red,"ERROR: Score ammount from 0 to 100000");
  1659.                 SetPlayerScore(Target,Amount);
  1660.                 new tname[MAX_PLAYER_NAME];
  1661.                 GetPlayerName(Target,tname,sizeof(tname));
  1662.                 new pname[MAX_PLAYER_NAME];
  1663.                 GetPlayerName(playerid,pname,sizeof(pname));
  1664.                 new tstring[256];
  1665.                 new pstring[256];
  1666.                 format(tstring,sizeof(tstring),"Your score has been set to %d by %s",Amount,pname);
  1667.                 format(pstring,sizeof(pstring),"You have set %s´s(%d) score to %d",tname,Target,Amount);
  1668.                 SendClientMessage(Target,green,tstring);
  1669.                 SendClientMessage(playerid,green,pstring);
  1670.             }
  1671.             else
  1672.             SendClientMessage(playerid,blue3,"USAGE: /setscore <playerid> <amount>");
  1673.             SendClientMessage(playerid,orange,"Function: To set score of a specific player");
  1674.         }
  1675.         else SendClientMessage(playerid,red,"ERROR: You must be logged in to use this command!");
  1676.     }
  1677.     else SendClientMessage(playerid,red,"ERROR: You must be an Admin level 2 or higher to perform this command!");
  1678.     return 1;
  1679. }
  1680.  
  1681. COMMAND:resetcash(playerid,params[])
  1682. {
  1683.     if(PlayerInfo[playerid][pLevel] >= resetcash)
  1684.     {
  1685.         if(PlayerInfo[playerid][pLogged] == 1)
  1686.         {
  1687.             new Target;
  1688.             new Index;
  1689.             new tmp[256]; tmp = strtok(params,Index);
  1690.             if(!strlen(tmp))
  1691.             {
  1692.                 Target = strval(tmp);
  1693.                 if(Target == INVALID_PLAYER_ID) return SendClientMessage(playerid,red,"ERROR: Wrong player ID");
  1694.                 if(PlayerInfo[Target][pLevel] >= PlayerInfo[playerid][pLevel]) return SendClientMessage(playerid,red,"ERROR: You cant perform this on Admins that are equal or higher than your level!");
  1695.                 ResetPlayerMoney(Target);
  1696.                 new tname[MAX_PLAYER_NAME];
  1697.                 GetPlayerName(Target,tname,sizeof(tname));
  1698.                 new pname[MAX_PLAYER_NAME];
  1699.                 GetPlayerName(playerid,pname,sizeof(pname));
  1700.                 new tstring[256];
  1701.                 new pstring[256];
  1702.                 format(tstring,sizeof(tstring),"Your money has been reseted by %s",pname);
  1703.                 format(pstring,sizeof(pstring),"You have reseted %s´s(%d) money",tname,Target);
  1704.                 SendClientMessage(Target,green,tstring);
  1705.                 SendClientMessage(playerid,green,pstring);
  1706.             }
  1707.             else
  1708.             SendClientMessage(playerid,blue3,"USAGE: /resetmoney <playerid>");
  1709.             SendClientMessage(playerid,orange,"Function: To reset cash of a specific player");
  1710.         }
  1711.         else SendClientMessage(playerid,red,"ERROR: You must be logged in to use this command!");
  1712.     }
  1713.     else SendClientMessage(playerid,red,"ERROR: You must be an Admin level 3 or higher to perform this command!");
  1714.     return 1;
  1715. }
  1716.  
  1717. CMD:resetscore(playerid,params[])
  1718. {
  1719.     if(PlayerInfo[playerid][pLevel] >= resetscore)
  1720.     {
  1721.         if(PlayerInfo[playerid][pLogged] == 1)
  1722.         {
  1723.             new Target;
  1724.             new Index;
  1725.             new tmp[256]; tmp = strtok(params,Index);
  1726.             if(!strlen(tmp))
  1727.             {
  1728.                 Target = strval(tmp);
  1729.                 if(Target == INVALID_PLAYER_ID) return SendClientMessage(playerid,red,"ERROR: Wrong player ID");
  1730.                 if(PlayerInfo[Target][pLevel] >= PlayerInfo[playerid][pLevel]) return SendClientMessage(playerid,red,"ERROR: You cant perform this on Admins that are equal or higher than your level!");
  1731.                 SetPlayerScore(Target,0);
  1732.                 new tname[MAX_PLAYER_NAME];
  1733.                 GetPlayerName(Target,tname,sizeof(tname));
  1734.                 new pname[MAX_PLAYER_NAME];
  1735.                 GetPlayerName(playerid,pname,sizeof(pname));
  1736.                 new tstring[256];
  1737.                 new pstring[256];
  1738.                 format(tstring,sizeof(tstring),"Your score has been reseted by %s",pname);
  1739.                 format(pstring,sizeof(pstring),"You have reseted %s´s(%d) score",tname,Target);
  1740.                 SendClientMessage(Target,green,tstring);
  1741.                 SendClientMessage(playerid,green,pstring);
  1742.             }
  1743.             else
  1744.             SendClientMessage(playerid,blue3,"USAGE: /resetscore <playerid>");
  1745.             SendClientMessage(playerid,orange,"Function: To reset score of a specific player");
  1746.         }
  1747.         else SendClientMessage(playerid,red,"ERROR: You must be logged in to use this command!");
  1748.     }
  1749.     else SendClientMessage(playerid,red,"ERROR: You must be an Admin level 3 or higher to perform this command!");
  1750.     return 1;
  1751. }
  1752.  
  1753. CMD:rac(playerid,params[])
  1754. {
  1755.     if(PlayerInfo[playerid][pLevel] >= rac)
  1756.     {
  1757.         if(PlayerInfo[playerid][pLogged] == 1)
  1758.         {
  1759.             SendClientMessage(playerid, green, "Vehicles respawned!");
  1760.             GameTextForAll("~n~~n~~n~~n~~n~~n~~r~Vehicles have ~g~been Respawned!", 2000,3);
  1761.             for(new cars=0; cars<MAX_VEHICLES; cars++)
  1762.             {
  1763.                 if(!IsVehicleOccupied(cars))
  1764.                 {
  1765.                     SetVehicleToRespawn(cars);
  1766.                 }
  1767.             }
  1768.             return 1;
  1769.         }
  1770.         else SendClientMessage(playerid,red,"ERROR: You must be logged in to perform this command!");
  1771.     }
  1772.     else SendClientMessage(playerid, red, "ERROR: You have to be an Admin level 5 or higher to perform this command!");
  1773.     return 1;
  1774. }
  1775.  
  1776. CMD:mute(playerid,params[])
  1777. {
  1778.     if(PlayerInfo[playerid][pLevel] >= mute)
  1779.     {
  1780.         if(PlayerInfo[playerid][pLogged] == 1)
  1781.         {
  1782.             new Target, seconds;
  1783.             new Index;
  1784.             new tmp[256]; tmp = strtok(params,Index);
  1785.             new tmp2[256]; tmp2 = strtok(params,Index);
  1786.             if(!strlen(tmp))
  1787.             {
  1788.                 Target = strval(tmp);
  1789.                 seconds = strval(tmp2);
  1790.                 if(Target == playerid) return SendClientMessage(playerid, COLOUR_RED, "SERVER: Cant perform this command on yourself!" );
  1791.                 if(Target == INVALID_PLAYER_ID) return SendClientMessage(playerid,red,"ERROR: Wrong player ID");
  1792.                 if(PlayerInfo[Target][pLevel] >= PlayerInfo[playerid][pLevel]) return SendClientMessage(playerid,red,"ERROR: You cant perform this on Admins that are equal or higher than your level!");
  1793.                 if(seconds != 0)
  1794.                 {
  1795.                     new tname[MAX_PLAYER_NAME];
  1796.                     GetPlayerName(Target,tname,sizeof(tname));
  1797.                     new pname[MAX_PLAYER_NAME];
  1798.                     GetPlayerName(playerid,pname,sizeof(pname));
  1799.                     new tstring[256];
  1800.                     new pstring[256];
  1801.                     format(tstring,sizeof(tstring),"You have been muted by %s! You cant talk!",pname);
  1802.                     format(pstring,sizeof(pstring),"You have muted player %s(%d)",tname,Target);
  1803.                     SendClientMessage(Target,red,tstring);
  1804.                     SendClientMessage(playerid,COLOUR_GREEN,pstring);
  1805.                     PlayerInfo[Target][pMuted] = 1;
  1806.                 }
  1807.                 else if(seconds >= 0)
  1808.                 {
  1809.                     new tname[MAX_PLAYER_NAME];
  1810.                     GetPlayerName(Target,tname,sizeof(tname));
  1811.                     new pname[MAX_PLAYER_NAME];
  1812.                     GetPlayerName(playerid,pname,sizeof(pname));
  1813.                     new tstring[256];
  1814.                     new pstring[256];
  1815.                     format(tstring,sizeof(tstring),"You have been muted by %s for %d seconds! You cant talk!",pname, seconds);
  1816.                     format(pstring,sizeof(pstring),"You have muted player %s(%d) for %d seconds",tname,Target,seconds);
  1817.                     SendClientMessage(Target,red,tstring);
  1818.                     SendClientMessage(playerid,COLOUR_GREEN,pstring);
  1819.                     PlayerInfo[Target][pMuted] = 1;
  1820.                     mutetimer[playerid] = SetTimerEx("UnmutePlayer", seconds * 1000, false, "d", Target);
  1821.                 }
  1822.             }
  1823.             else
  1824.             SendClientMessage(playerid,blue3,"USAGE: /mute <playerid> <seconds-optional>");
  1825.             SendClientMessage(playerid,orange,"Function: To mute a specific player");
  1826.         }
  1827.         else SendClientMessage(playerid,red,"ERROR: You must be logged in to use this command!");
  1828.     }
  1829.     else SendClientMessage(playerid,red,"ERROR: You must be an Admin level 2 or higher to perform this command!");
  1830.     return 1;
  1831. }
  1832.  
  1833. CMD:unmute(playerid,params[])
  1834. {
  1835.     if(PlayerInfo[playerid][pLevel] >= unmute)
  1836.     {
  1837.         if(PlayerInfo[playerid][pLogged] == 1)
  1838.         {
  1839.             new Target;
  1840.             new Index;
  1841.             new tmp[256]; tmp = strtok(params,Index);
  1842.             if(!strlen(tmp))
  1843.             {
  1844.                 Target = strval(tmp);
  1845.                 if(Target == playerid) return SendClientMessage(playerid, COLOUR_RED, "SERVER: Cant perform this command on yourself!" );
  1846.                 if(Target == INVALID_PLAYER_ID) return SendClientMessage(playerid,red,"ERROR: Wrong player ID");
  1847.                 if(PlayerInfo[Target][pLevel] >= PlayerInfo[playerid][pLevel]) return SendClientMessage(playerid,red,"ERROR: You cant perform this on Admins that are equal or higher than your level!");
  1848.                 new tname[MAX_PLAYER_NAME];
  1849.                 GetPlayerName(Target,tname,sizeof(tname));
  1850.                 new pname[MAX_PLAYER_NAME];
  1851.                 GetPlayerName(playerid,pname,sizeof(pname));
  1852.                 new tstring[256];
  1853.                 new pstring[256];
  1854.                 format(tstring,sizeof(tstring),"You have been unmuted by %s! You can talk now!",pname);
  1855.                 format(pstring,sizeof(pstring),"You have unmuted player %s(%d)",tname,Target);
  1856.                 SendClientMessage(Target,red,tstring);
  1857.                 SendClientMessage(playerid,COLOUR_GREEN,pstring);
  1858.                 PlayerInfo[Target][pMuted] = 0;
  1859.             }
  1860.             else
  1861.             SendClientMessage(playerid,blue3,"USAGE: /unmute <playerid>");
  1862.             SendClientMessage(playerid,orange,"Function: To unmute a specific player");
  1863.         }
  1864.         else SendClientMessage(playerid,red,"ERROR: You must be logged in to use this command!");
  1865.     }
  1866.     else SendClientMessage(playerid,red,"ERROR: You must be an Admin level 2 or higher to perform this command!");
  1867.     return 1;
  1868. }
  1869.  
  1870. CMD:freeze(playerid,params[])
  1871. {
  1872.     if(PlayerInfo[playerid][pLevel] >= freeze)
  1873.     {
  1874.         if(PlayerInfo[playerid][pLogged] == 1)
  1875.         {
  1876.             new Target;
  1877.             new Index;
  1878.             new tmp[256]; tmp = strtok(params,Index);
  1879.             if(!strlen(tmp))
  1880.             {
  1881.                 Target = strval(tmp);
  1882.                 if(Target == playerid) return SendClientMessage(playerid, COLOUR_RED, "SERVER: Cant perform this command on yourself!" );
  1883.                 if(Target == INVALID_PLAYER_ID) return SendClientMessage(playerid,red,"ERROR: Wrong player ID");
  1884.                 if(PlayerInfo[Target][pLevel] >= PlayerInfo[playerid][pLevel]) return SendClientMessage(playerid,red,"ERROR: You cant perform this on Admins that are equal or higher than your level!");
  1885.                 new tname[MAX_PLAYER_NAME];
  1886.                 GetPlayerName(Target,tname,sizeof(tname));
  1887.                 new pname[MAX_PLAYER_NAME];
  1888.                 GetPlayerName(playerid,pname,sizeof(pname));
  1889.                 new tstring[256];
  1890.                 new pstring[256];
  1891.                 format(tstring,sizeof(tstring),"You have been frozen by %s! You cant move!",pname);
  1892.                 format(pstring,sizeof(pstring),"You have frozen player %s(%d)",tname,Target);
  1893.                 SendClientMessage(Target,red,tstring);
  1894.                 SendClientMessage(playerid,COLOUR_GREEN,pstring);
  1895.                 TogglePlayerControllable(Target,0);
  1896.                 PlayerInfo[Target][Frozen] = 1;
  1897.             }
  1898.             else
  1899.             SendClientMessage(playerid,blue3,"USAGE: /freeze <playerid>");
  1900.             SendClientMessage(playerid,orange,"Function: To freeze a specific player");
  1901.         }
  1902.         else SendClientMessage(playerid,red,"ERROR: You must be logged in to use this command!");
  1903.     }
  1904.     else SendClientMessage(playerid,red,"ERROR: You must be an Admin level 3 or higher to perform this command!");
  1905.     return 1;
  1906. }
  1907.  
  1908. CMD:unfreeze(playerid,params[])
  1909. {
  1910.     if(PlayerInfo[playerid][pLevel] >= unfreeze)
  1911.     {
  1912.         if(PlayerInfo[playerid][pLogged] == 1)
  1913.         {
  1914.             new Target;
  1915.             new Index;
  1916.             new tmp[256]; tmp = strtok(params,Index);
  1917.             if(!strlen(tmp))
  1918.             {
  1919.                 Target = strval(tmp);
  1920.                 if(Target == playerid) return SendClientMessage(playerid, COLOUR_RED, "SERVER: Cant perform this command on yourself!" );
  1921.                 if(Target == INVALID_PLAYER_ID) return SendClientMessage(playerid,red,"ERROR: Wrong player ID");
  1922.                 if(PlayerInfo[Target][pLevel] >= PlayerInfo[playerid][pLevel]) return SendClientMessage(playerid,red,"ERROR: You cant perform this on Admins that are equal or higher than your level!");
  1923.                 new tname[MAX_PLAYER_NAME];
  1924.                 GetPlayerName(Target,tname,sizeof(tname));
  1925.                 new pname[MAX_PLAYER_NAME];
  1926.                 GetPlayerName(playerid,pname,sizeof(pname));
  1927.                 new tstring[256];
  1928.                 new pstring[256];
  1929.                 format(tstring,sizeof(tstring),"You have been unfrozen by %s! You can move now!",pname);
  1930.                 format(pstring,sizeof(pstring),"You have unfrozen player %s(%d)",tname,Target);
  1931.                 SendClientMessage(Target,red,tstring);
  1932.                 SendClientMessage(playerid,COLOUR_GREEN,pstring);
  1933.                 TogglePlayerControllable(Target,1);
  1934.                 PlayerInfo[Target][Frozen] = 0;
  1935.             }
  1936.             else
  1937.             SendClientMessage(playerid,blue3,"USAGE: /unfreeze <playerid>");
  1938.             SendClientMessage(playerid,orange,"Function: To unfreeze a specific player");
  1939.         }
  1940.         else SendClientMessage(playerid,red,"ERROR: You must be logged in to use this command!");
  1941.     }
  1942.     else SendClientMessage(playerid,red,"ERROR: You must be an Admin level 3 or higher to perform this command!");
  1943.     return 1;
  1944. }
  1945. //================================================================================================================================================================
  1946. public LoadUser_data(playerid,name[],value[])
  1947. {
  1948.     INI_Int("Password",PlayerInfo[playerid][pPass]);
  1949.     INI_Int("Cash",PlayerInfo[playerid][pCash]);
  1950.     INI_Int("Level",PlayerInfo[playerid][pLevel]);
  1951.     INI_Int("Kills",PlayerInfo[playerid][pKills]);
  1952.     INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  1953.     INI_Int("Name",PlayerInfo[playerid][pName]);
  1954.     INI_Int("Ip",PlayerInfo[playerid][pIP]);
  1955.     INI_Int("Warnings",PlayerInfo[playerid][Warnings]);
  1956.     INI_Int("Registered",PlayerInfo[playerid][pRegged]);
  1957.     INI_Int("Wired",PlayerInfo[playerid][pWired]);
  1958.     INI_Int("Jailed",PlayerInfo[playerid][pJailed]);
  1959.     return 1;
  1960. }
  1961. public SaveTo(filename[],text[])
  1962. {
  1963.     new File:Lfile;
  1964.     new filepath[256];
  1965.     new string[256];
  1966.     new year,month,day;
  1967.     new hour,minute,second;
  1968.  
  1969.     getdate(year,month,day);
  1970.     gettime(hour,minute,second);
  1971.     format(filepath,sizeof(filepath),"IAdmin/Logs/%s.txt",filename);
  1972.     Lfile = fopen(filepath,io_append);
  1973.     format(string,sizeof(string),"[%02d/%02d/%02d | %02d:%02d:%02d] %s\r\n",day,month,year,hour,minute,second,text);
  1974.     fwrite(Lfile,string);
  1975.     fclose(Lfile);
  1976.     return 1;
  1977. }
  1978.  
  1979. //------------------------------------------------------------------------------
  1980. //----------------STOCKS--------------------------------------------------------
  1981. //------------------------------------------------------------------------------
  1982. stock IsVehicleOccupied(vehicleid)
  1983. {
  1984.     for(new i=0;i<MAX_PLAYERS;i++) if(IsPlayerInVehicle(i,vehicleid)) return 1;
  1985.     return 0;
  1986. }
  1987. stock UserPath(playerid)
  1988. {
  1989.     new string[128],playername[MAX_PLAYER_NAME];
  1990.     GetPlayerName(playerid,playername,sizeof(playername));
  1991.     format(string,sizeof(string),PATH,playername);
  1992.     return string;
  1993. }
  1994. stock udb_hash(buf[]) {
  1995.     new length=strlen(buf);
  1996.     new s1 = 1;
  1997.     new s2 = 0;
  1998.     new n;
  1999.     for (n=0; n<length; n++)
  2000.     {
  2001.        s1 = (s1 + buf[n]) % 65521;
  2002.        s2 = (s2 + s1)     % 65521;
  2003.     }
  2004.     return (s2 << 16) + s1;
  2005. }
  2006. stock num_hash(buf[])
  2007. {
  2008.     new length=strlen(buf);
  2009.     new s1 = 1;
  2010.     new s2 = 0;
  2011.     new n;
  2012.     for (n=0; n<length; n++) {
  2013.        s1 = (s1 + buf[n]) % 65521;
  2014.        s2 = (s2 + s1)     % 65521;
  2015.     }
  2016.     return (s2 << 16) + s1;
  2017. }
  2018. strtok(const string[], &index)
  2019. {
  2020. new length = strlen(string);
  2021. while ((index < length) && (string[index] <= ' '))
  2022. {
  2023. index++;
  2024. }
  2025.  
  2026. new offset = index;
  2027. new result[20];
  2028. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  2029. {
  2030. result[index - offset] = string[index];
  2031. index++;
  2032. }
  2033. result[index - offset] = EOS;
  2034. return result;
  2035. }
  2036. stock IsNumeric(const string[]) {
  2037.     new length=strlen(string);
  2038.     if (length==0) return false;
  2039.     for (new i = 0; i < length; i++) {
  2040.         if (
  2041.         (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+')
  2042.         || (string[i]=='-' && i!=0)                                             //
  2043.         || (string[i]=='+' && i!=0)                                             //
  2044.         ) return false;
  2045.     }
  2046.     if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
  2047.     return true;
  2048. }
  2049. stock GetPlayerId(const Name[])
  2050. {
  2051.     for(new i; i<MAX_PLAYERS; i++)
  2052.     {
  2053.       if(IsPlayerConnected(i))
  2054.       {
  2055.         new plName[MAX_PLAYER_NAME];
  2056.         GetPlayerName(i, plName, sizeof(plName));
  2057.         if(strcmp(Name, plName, true)==0)
  2058.         {
  2059.           return i;
  2060.         }
  2061.       }
  2062.     }
  2063.     return -1;
  2064. }
  2065. stock ReturnPlayerID(name[]) {
  2066.   for(new i = 0; i < MAX_PLAYERS; i++) {
  2067.     if(strfind(ReturnPlayerName(i), name, true) != -1 || (IsPlayerConnected(i) && strval(name) == i && IsNumeric(name))) {
  2068.       return i;
  2069.     }
  2070.   }
  2071.  
  2072.   return -1;
  2073. }
  2074. stock GetWeaponIDFromName(WeaponName[])
  2075. {
  2076.     if(strfind("molotov",WeaponName,true)!=-1)
  2077.     return 18;
  2078.     for(new i = 0; i <= 46; i++)
  2079.     {
  2080.     switch(i)
  2081.     {
  2082.     case 0,19,20,21,44,45: continue;
  2083.     default:
  2084.     {
  2085.     new name[32]; GetWeaponName(i,name,32);
  2086.     if(strfind(name,WeaponName,true) != -1)
  2087.     return i;
  2088.     }
  2089.     }
  2090.     }
  2091.     return -1;
  2092. }
  2093. stock IsValidWeapon(weaponid)
  2094. {
  2095.     if (weaponid > 0 && weaponid < 19 || weaponid > 21 && weaponid < 47) return 1;
  2096.     return 0;
  2097. }
  2098. stock SCMA(color,const string[])
  2099. {
  2100.     for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) == 1) if(PlayerInfo[i][pLevel] >= 1) SendClientMessage(i, color, string);
  2101.     return 1;
  2102. }
  2103. stock stringhasip(string[])
  2104. {
  2105.     new dotCount;
  2106.     for(new i; string[i] != EOS; ++i)
  2107.     {
  2108.         if(('0' <= string[i] <= '9') || string[i] == '.' || string[i] == ':')
  2109.         {
  2110.             if((string[i] == '.') && (string[i + 1] != '.') && ('0' <= string[i - 1] <= '9'))
  2111.             {
  2112.                 ++dotCount;
  2113.             }
  2114.             continue;
  2115.         }
  2116.     }
  2117.     return (dotCount > 2);
  2118. }
  2119. stock TimeStamp()
  2120. {
  2121.     new time = GetTickCount() / 1000;
  2122.     return time;
  2123. }
  2124. //------------------------------------------------------------------------------
  2125. //------------------------------------------------------------------------------
  2126. //------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement