Is this working?
#1

is my script working my friend say no
if its not working please can some repair
my admin system

Код:
/*

                       Xteme AdminScript System v1.0
                        ---------------------------
                       Made by Mr.Kakashi & GAMER_PS2
                    Associate with Wolf Pack Clan Management
                                Sponsors:
                        ---------------------------
                        SP Community Management
                        Wolf Pack Clan Community
                            TSU Community
                         Mr.Kakashi's Community
                        ---------------------------
                Copyright©, [SP]Mr.Kakashi[WP] & GAMER_PS2™

*/

//============================================================================//

/*
________________________________________________________________________________
****** - Y_INI/Sscanf/YSI
Zeex - ZCMD/sscanf
[SP]Mr.Kakashi[WP] (me) - Owner of Filterscript
________________________________________________________________________________

BEHIND THE SCENES:

October 6.2011 - 2:30PM
The Xtreme Gangwar is the 5th idea of me to be a Project and release it to public
Xtreme Gangwar almost the same as the 3rd idea (Xtreme Kakashi Gamemode). Xtreme
Gangwar has been announce to be release after the Xtreme Kakashi
construction is finish. Since the 3rd Idea (Xtreme Kakashi) has been finish on
August 29,2011. the 4th idea is the message filterscript.

INFORMATION:

DEFINITAION: Gangwar
MAP: Xtreme Gangwar World

October 9,2011 - 9:30AM
Another script is made this is have connection between the gamemode and the
admin script. This is the 6th Idea of me. This would be the Xtreme Admin which
is gonna be use on Xtreme Gangwar. Xtreme Admin can support the Gamemode. if
You change the Admin System like LuxAdmin, LuxAdmin will not support the gamemode
little bit it look like a fail script, and theres missing commands for server.
Xtreme Admin is already connect on Xtreme Gangwar. so dont change it.

*/

//============================================================================//

#include <a_samp>
#include <YSI\y_ini>
#include <zcmd>
#include <sscanf2>

//============================================================================//

#define ADMLVL1             301   //Dialog ID for /acmds Level 1
#define ADMLVL2             302   //Dialog ID for /acmds Level 2
#define ADMLVL3             303   //Dialog ID for /acmds Level 3
#define ADMLVL4             304   //Dialog ID for /acmds Level 4
#define ADMLVL5             305   //Dialog ID for /acmds Level 5
#define ADMLVL6             306   //Dialog ID for /acmds Level 6
#define ADMLVL7             307   //Dialog ID for /acmds Level 7
#define ADMLVL8             308   //Dialog ID for /acmds Level 8
#define ADMLVL9             309   //Dialog ID for /acmds Level 9
#define ADMLVL10            310   //Dialog ID for /acmds Level 10
#define RULEDIALOG          311   //Dialog ID for /forcerules
#define WARNDIALOG          455   //Dialog ID for /warn
#define MAX_WARNINGS         3    //Max Warning of /warn command
#define ADM_CHAT_LOG        true  //Turns off/on Saving Admin Chat!
#define SERVER_OWN_CHAT_LOG true  //Turns off/on Saving Server Owner Chat!
#define SaveLogs            true  //Turns off/on Save Logs To The Admin Folder
#define Playerconnect       false //Turns off/on OnPlayerConnect Message
#define Disconnect          false //Turns off/on OnPlayerDisconnect Message

//============================================================================//

enum pInfo
{
    pPass,
    pCash,
    pScore,
    pAdmin,
    pKills,
    pFreeze,
    pBanned,
    pDeaths,
    pGod,
    pJail,
    pWarn,
};
new PlayerInfo[MAX_PLAYERS][pInfo],
    AdmRank[128],
    adminduty[MAX_PLAYERS], //ADMINDUTY FUNCTION
    Count;

new Text3D:GODMODE[MAX_PLAYERS]; //GOD MODE TEXTLABEL

forward SaveIn(filename[],text[]);
forward LoadUser_data(playerid,name[],value[]);
forward UnjailTime(playerid);
forward Counting(playerid);
forward Counting4(playerid);
forward Counting3(playerid);
forward Counting2(playerid);
forward Counting1(playerid);
forward GO(playerid);


#define DIALOG_REGISTER 451
#define DIALOG_LOGIN 452

#define PATH "Server/Users/%s.ini"
#define REGISTERED_MONEY 5000

//============================================================================//

#define red "{FF002B}"
#define pink "{FF00D9}"
#define purple "{DFA7F2}"
#define blue "{A1C2FF}"
#define green "{008000}"
#define yellow "{FAF623}"
#define black "{69670C}"
#define orange "{F2C80C}"
#define ice "{03F2FF}"
#define white "{FFFFFF}"
#define lime "{00FF40}"

#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_RED 0xFF0000FF
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_PINK 0xFF66FFAA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_DARKRED 0x660000AA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_BRIGHTRED 0xFF0000AA
#define COLOR_INDIGO 0x4B00B0AA
#define COLOR_VIOLET 0x9955DEEE
#define COLOR_LIGHTRED 0xFF99AADD
#define COLOR_SEAGREEN 0x00EEADDF
#define COLOR_GRAYWHITE 0xEEEEFFC4
#define COLOR_LIGHTNEUTRALBLUE 0xabcdef66
#define COLOR_GREENISHGOLD 0xCCFFDD56
#define COLOR_LIGHTBLUEGREEN 0x0FFDD349
#define COLOR_NEUTRALBLUE 0xABCDEF01
#define COLOR_LIGHTCYAN 0xAAFFCC33
#define COLOR_LEMON 0xDDDD2357
#define COLOR_MEDIUMBLUE 0x63AFF00A
#define COLOR_NEUTRAL 0xABCDEF97
#define COLOR_BLACK 0x00000000
#define COLOR_NEUTRALGREEN 0x81CFAB00
#define COLOR_DARKGREEN 0x12900BBF
#define COLOR_LIGHTGREEN 0x24FF0AB9
#define COLOR_DARKBLUE 0x300FFAAB
#define COLOR_BLUEGREEN 0x46BBAA00
#define COLOR_PINK 0xFF66FFAA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_DARKRED 0x660000AA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_PURPLE 0x800080AA
#define COLOR_GRAD1 0xB4B5B7FF
#define COLOR_GRAD2 0xBFC0C2FF
#define COLOR_RED1 0xFF0000AA
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_BROWN 0x993300AA
#define COLOR_CYAN 0x99FFFFAA
#define COLOR_TAN 0xFFFFCCAA
#define COLOR_PINK 0xFF66FFAA
#define COLOR_KHAKI 0x999900AA
#define COLOR_LIME 0x99FF00AA
#define COLOR_SYSTEM 0xEFEFF7AA
#define COLOR_GRAD2 0xBFC0C2FF
#define COLOR_GRAD4 0xD8D8D8FF
#define COLOR_GRAD6 0xF0F0F0FF
#define COLOR_GRAD2 0xBFC0C2FF
#define COLOR_GRAD3 0xCBCCCEFF
#define COLOR_GRAD5 0xE3E3E3FF
#define COLOR_GRAD1 0xB4B5B7FF

//============================================================================//

#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print("        Xtreme Administration V1.0.0    ");
    print("            Made by Mr.Kakashi          ");
    print("          Copyright 2011 - 2020         ");
    print("--------------------------------------\n");
	return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

#endif

public LoadUser_data(playerid,name[],value[])
{
    INI_Int("Password", PlayerInfo[playerid][pPass]);
    INI_Int("Cash",PlayerInfo[playerid][pCash]);
    INI_Int("Score",PlayerInfo[playerid][pScore]);
    INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
    INI_Int("Banned",PlayerInfo[playerid][pBanned]);
    INI_Int("Jailed",PlayerInfo[playerid][pJail]);
    INI_Int("Kills",PlayerInfo[playerid][pKills]);
    INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
    return 1;
}

public OnPlayerConnect(playerid)
{
    #if Playerconnect == true
	new name[MAX_PLAYER_NAME], string[39 + MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s has joined the server", name);
    SendClientMessageToAll(COLOR_GREY, string);
    #endif
    if(fexist(UserPath(playerid)))
    {
        INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
        ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""white"Login",""red"Note:"white"If this is not your account please leave to this account and create your own one.\n\n"white"Type your password below to login to your account","Login","Exit");
    }
    else
    {
        ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""white"Register",""red"Note:"white"If you crash ingame your account will be save.\n\n"white"Type the password below to create new account","Register","Exit");
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    #if Disconnect == true
	new pname[MAX_PLAYER_NAME], string[39 + MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, sizeof(pname));
    switch(reason)
    {
        case 0: format(string, sizeof(string), "%s has left the server (Lost Connection/Crash)", pname);
        case 1: format(string, sizeof(string), "%s has left the server (Leaving)", pname);
        case 2: format(string, sizeof(string), "%s has left the server (Kicked/Banned)", pname);
    }
    SendClientMessageToAll(COLOR_GREY, string);
    #endif
    new INI:File = INI_Open(UserPath(playerid));
    INI_SetTag(File,"data");
    INI_WriteInt(File,"Cash",PlayerInfo[playerid][pCash]);
    INI_WriteInt(File,"Score",PlayerInfo[playerid][pScore]);
    INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
    INI_WriteInt(File,"Banned",PlayerInfo[playerid][pBanned]);
    INI_WriteInt(File,"Jailed",PlayerInfo[playerid][pJail]);
    INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
    INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
    INI_Close(File);
    return 1;
}

public Counting(playerid)
{
    Count = 1;
    GameTextForAll("~b~5",1000,3);
    PlayerPlaySound(playerid, 1056,0,0,0);
    SetTimer("Counting4",1000,false);
    return 1;
}
public Counting4(playerid)
{
    Count = 1;
    GameTextForAll("~y~4",1000,3);
    PlayerPlaySound(playerid, 1056,0,0,0);
    SetTimer("Counting3",1000,false);
    return 1;
}
public Counting3(playerid)
{
    Count = 1;
    GameTextForAll("~p~3",1000,3);
    PlayerPlaySound(playerid, 1056,0,0,0);
    SetTimer("Counting2",1000,false);
    return 1;
}
public Counting2(playerid)
{
    Count = 1;
    GameTextForAll("~g~2",1000,3);
    PlayerPlaySound(playerid, 1056,0,0,0);
    SetTimer("Counting1",1000,false);
    return 1;
}
public Counting1(playerid)
{
    Count = 1;
    GameTextForAll("~r~1",1000,3);
    PlayerPlaySound(playerid, 1056,0,0,0);
    SetTimer("GO",1000,false);
    return 1;
}
public GO(playerid)
{
    Count = 0;
    PlayerPlaySound(playerid, 1057,0,0,0);
    GameTextForAll("~g~Server Restart Activate!",1000,3);
    SendRconCommand("gmx");
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    return 1;
}

public OnPlayerSpawn(playerid)
{
    if(PlayerInfo[playerid][pJail] == 1)
    {
       new str[128];
       new pname[MAX_PLAYER_NAME],time;
       GetPlayerName(playerid, pname,MAX_PLAYER_NAME);
       format(str, sizeof(str), "%s has been autojailed <Reason: Jailed Evading>",pname);
       SendClientMessageToAll(COLOR_RED, str);
       SendClientMessage(playerid,COLOR_RED,"You cannot evade escaping from Jailed. You have been automatic jailed");
	   SetPlayerInterior(playerid, 3);
	   SetPlayerPos(playerid, 198.5319,162.3093,1003.0300);
	   SetTimerEx("UnjailTime", time*1000, 0, "%d", playerid);
    }
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    PlayerInfo[killerid][pKills]++;
    PlayerInfo[playerid][pDeaths]++;
    return 1;
}

public OnPlayerText(playerid, text[])
{
    if(text[0] == '#' && PlayerInfo[playerid][pAdmin] >= 1 && strlen(text[1]))
    {
        new string[128];
        new adminname[MAX_PLAYER_NAME];
        GetPlayerName(playerid,adminname,sizeof(string));
        format(string,sizeof(string),"Admin Chat: %s: "white"%s",adminname,text[1]);
        MessageToAdmins(COLOR_RED,string);
        #if ADM_CHAT_LOG == true
        SaveIn("AdminChat",string);
        #endif
        return 0;
    }

    if(text[0] == '!' && PlayerInfo[playerid][pAdmin] >= 10 && strlen(text[1]))
    {
        new string[128];
        new adminname[MAX_PLAYER_NAME];
        GetPlayerName(playerid,adminname,sizeof(string));
        format(string,sizeof(string),"Server Owner Chat: %s: "white"%s",adminname,text[1]);
        MessageToAdmins(COLOR_RED,string);
        #if SERVER_OWN_CHAT_LOG == true
        SaveIn("ServerOwnChat",string);
        #endif
        return 0;
    }
    return 1;
}

public SaveIn(filename[],text[])
{
    #if SaveLogs == true
    new File:Lfile;
    new filepath[256];
    new string[256];
    new year,month,day;
    new hour,minute,second;

    getdate(year,month,day);
    gettime(hour,minute,second);
    format(filepath,sizeof(filepath),"Server/Logs/%s.txt",filename);
    Lfile = fopen(filepath,io_append);
    format(string,sizeof(string),"[%02d/%02d/%02d | %02d:%02d:%02d] %s\r\n",month,day,year,hour,minute,second,text);
    fwrite(Lfile,string);
    fclose(Lfile);
    #endif
    return 1;
}

public OnRconCommand(cmd[])
{
    return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    return 1;
}

public OnPlayerUpdate(playerid)
{
    return 1;
}

public UnjailTime(playerid)
{
	new string[256];
	new playername[MAX_PLAYER_NAME];
	GetPlayerName(playerid, playername, sizeof(playername));
	if(IsPlayerConnected(playerid))
	SetPlayerInterior(playerid, 0);
	SpawnPlayer(playerid);
	PlayerInfo[playerid][pJail] = 0;
	format(string, sizeof(string), "%s has been unjailed <Reason: Time Ended>", playername);
	SendClientMessageToAll(COLOR_GREEN, string);
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	if(dialogid == DIALOG_REGISTER)
    {
          if (!response) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""white"Register",""red"Note:"white"If you crash ingame your account will be save.\n\n"white"Type the password below to create new account","Register","Exit");
          if(response)
          {
             if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""white"Register",""red"Note:"white"If you crash ingame your account will be save.\n\n"white"Type the password below to create new account","Register","Exit");
             new INI:File = INI_Open(UserPath(playerid));
             INI_SetTag(File,"data");
             INI_WriteInt(File,"Password",udb_hash(inputtext));
             INI_WriteInt(File,"Cash",REGISTERED_MONEY);
             INI_WriteInt(File,"Score",0);
             INI_WriteInt(File,"Admin",0);
             INI_WriteInt(File,"Banned",0);
             INI_WriteInt(File,"Jailed",0);
             INI_WriteInt(File,"Kills",0);
             INI_WriteInt(File,"Deaths",0);
             INI_Close(File);
             SendClientMessage(playerid, COLOR_GREEN, "You have successfully register!");
             return 1;
         }
    }

    if(dialogid == DIALOG_LOGIN)
    {
        if (!response) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""white"Login",""red"Note:"white"If this is not your account please leave to this account and create your own one.\n\n"white"Type your password below to login to your account","Login","Exit");
        if(response)
        {
            if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
            {
                INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
                GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
                SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
                if(PlayerInfo[playerid][pAdmin] == 0)
                {
                   SendClientMessage(playerid, COLOR_GREEN, "You have successfully login to your account");
                }
                else
                {
                   switch(PlayerInfo[playerid][pAdmin])
                   {
                      case 1: AdmRank = "Trial Moderator";
                      case 2: AdmRank = "Moderator";
                      case 3: AdmRank = "Global Moderator";
                      case 4: AdmRank = "Tester";
                      case 5: AdmRank = "Head Administrator";
                      case 6: AdmRank = "Senior Administrator";
                      case 7: AdmRank = "Junior Administrator";
                      case 8: AdmRank = "Scripter/Mapper";
                      case 9: AdmRank = "Co-Owner";
                   }
                   if(PlayerInfo[playerid][pAdmin] >= 10)
                   {
                      AdmRank = "Server Owner";
                   }
                   new string[128];
                   new PlayerName[MAX_PLAYER_NAME];
                   GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
                   format(string,sizeof(string),"You have been automaticlly login | - Level %d - %s - |",PlayerInfo[playerid][pAdmin],AdmRank);
                   SendClientMessage(playerid,COLOR_GREEN,string);
                }
            }
            else
            {
              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","Exit");
            }
            return 1;
        }
    }

    if(dialogid == RULEDIALOG)
    {
      if(response == 1)
      {
        if(GetPVarInt(playerid,"RulesAccepted")!=1)
        {
            SetPVarInt(playerid,"RulesAccepted",1);
        }
        else
        {
            SendClientMessage(playerid, COLOR_RED, "You Already Accepted The Rules");
        }
      }
      else
      {
        new name[MAX_PLAYER_NAME], string[128];
        GetPlayerName(playerid, name, sizeof(name));
        format(string, sizeof(string), "ANTIRULES: %s has been kicked, Reason: Ignoring Rules",name);
        SendClientMessageToAll(COLOR_RED,string);
        SendClientMessage(playerid, COLOR_RED, "You Ignore The Rules");
        SendClientMessage(playerid, COLOR_RED, "You Have Been Kicked!, Reason : Ignoring The Rules");
        Kick(playerid);
      }
    }
    return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
	return 1;
}

//==========================COMMANDS==========================//

CMD:freeze(playerid, params[])
{
    new victimname[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], reason[128], id;
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
        if (sscanf(params, "rs", id, reason)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /freeze <playerid/name> <reason>");
        if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID && id != playerid)
        {
           GetPlayerName(id, victimname, sizeof(victimname));
           GetPlayerName(playerid, adminname, sizeof(adminname));
           new str[128];
           if(PlayerInfo[id][pFreeze] == 0)
           {
              if(PlayerInfo[playerid][pAdmin] < PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid,COLOR_RED,"ERROR: You cant freeze higher rank administrators");
              format(str,128,"Administrator %s has frozen %s <Reason: %s>",adminname,victimname,reason);
              SendClientMessageToAll(COLOR_RED,str);
              format(str, sizeof(str), "Administrator %s has freeze you <Reason: %s>",adminname,reason);
              SendClientMessage(id,COLOR_GREEN,str);
              format(str, sizeof(str), "~r~Freezed by Administrator %s",adminname);
              GameTextForPlayer(id,str,1300,3);
              format(str, sizeof(str), "You freeze %s <Reason: %s>",victimname,reason);
              SendClientMessage(id,COLOR_GREEN,str);
              TogglePlayerControllable(id,0);
              format(str, sizeof(str), "Administrator %s has freeze %s",adminname,victimname);
              SendToAdmins(COLOR_GREY,str);
              format(str, sizeof(str), "Administrator %s has freeze %s",adminname,victimname);
              printf(str);
              PlayerInfo[id][pFreeze] = 1;
           }
           else return SendClientMessage(playerid,COLOR_RED, "ERROR: Player is Already Freeze");
        }
        else return SendClientMessage(playerid, COLOR_RED, "ERROR: Player is not connected or its yourself.");
    }
    else return SendClientMessage(playerid,COLOR_RED,"ERROR: You must be Administrator Level 1 to use this command");
    return 1;
}

CMD:unfreeze(playerid, params[])
{
    new victimname[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], id;
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
        if (sscanf(params, "rs", id)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /unfreeze <playerid/name>");
        if(IsPlayerConnected(id) && id != INVALID_PLAYER_ID)
        {
           GetPlayerName(id, victimname, sizeof(victimname));
           GetPlayerName(playerid, adminname, sizeof(adminname));
           new str[128];
           if(PlayerInfo[id][pFreeze] == 1)
           {
              format(str,128,"Administrator %s has unfreeze %s",adminname,victimname);
              SendClientMessageToAll(COLOR_RED,str);
              format(str, sizeof(str), "Administrator %s has unfreeze you",adminname);
              SendClientMessage(id,COLOR_GREEN,str);
              format(str, sizeof(str), "~g~Unfreezed by Administrator %s",adminname);
              GameTextForPlayer(id,str,1300,3);
              format(str, sizeof(str), "You unfreeze %s",victimname);
              SendClientMessage(id,COLOR_GREEN,str);
              TogglePlayerControllable(id,1);
              format(str, sizeof(str), "Administrator %s has unfreeze %s",adminname,victimname);
              SendToAdmins(COLOR_GREY,str);
              format(str, sizeof(str), "Administrator %s has unfreeze %s",adminname,victimname);
              printf(str);
              PlayerInfo[id][pFreeze] = 0;
           }
           else return SendClientMessage(playerid,COLOR_RED, "ERROR: Player is not Frozen");
        }
        else return SendClientMessage(playerid, COLOR_RED, "ERROR: Player is not connected!");
    }
    else return SendClientMessage(playerid,COLOR_RED,"ERROR: You must be Administrator Level 1 to use this command");
    return 1;
}

CMD:explode(playerid, params[])
{
	new pid;
	new adminname[MAX_PLAYER_NAME],playername[MAX_PLAYER_NAME];
	GetPlayerName(playerid,adminname,MAX_PLAYER_NAME);
	GetPlayerName(pid,playername,MAX_PLAYER_NAME);
    if(sscanf(params, "u", pid, params[2])) return SendClientMessage(playerid,COLOR_RED, "USGAE: /explode <playername/id> <reason>");
	if(PlayerInfo[playerid][pAdmin] >= 1)
	{
		if(PlayerInfo[playerid][pAdmin] < PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid,COLOR_RED,"ERROR: You cant explode higher rank administrators");
	    if(pid == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED, "ERROR: Player is not connected!");
		if(pid == playerid) return SendClientMessage(playerid,COLOR_RED,"ERROR: You cant explode yourself");
		new Float:X, Float:Y, Float:Z;
	    GetPlayerPos(pid, X, Y, Z);
	    CreateExplosion(X, Y, Z, 2, 10);
	    new string[128];
	    format(string,sizeof(string),"Administrator %s has explode %s <Reason: %s>",adminname,playername,params[2]);
	    SendClientMessageToAll(COLOR_RED,string);
	    format(string,sizeof(string),"Administrator %s has explode you <Reason: %s>",adminname,params[2]);
	    SendClientMessage(pid,COLOR_RED,string);
	    format(string,sizeof(string),"You explode %s <Reason: %s>",playername,params[2]);
	    SendClientMessage(playerid,COLOR_RED,string);
	}
	else return SendClientMessage(playerid,COLOR_RED, "ERROR: You must be Administrator Level 1 to use this command");
    return 1;
}

CMD:jail(playerid, params[])
{
	new pid, time;
	new adminname[MAX_PLAYER_NAME], playername[MAX_PLAYER_NAME];
	GetPlayerName(pid, playername, sizeof(playername));
	GetPlayerName(playerid, adminname, sizeof(adminname));
	if(PlayerInfo[playerid][pAdmin] >= 2)
	{
        if(sscanf(params, "udz", pid, time, params[2])) return SendClientMessage(playerid,COLOR_RED, "USAGE: /jail <playername/id> <time> <reason>");
		if(PlayerInfo[playerid][pAdmin] < PlayerInfo[pid][pAdmin]) return SendClientMessage(playerid,COLOR_RED, "ERROR: You cant jail higher rank administrators");
	    if(pid == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED, "ERROR: Player is not connected!");
        if(PlayerInfo[pid][pJail] == 0)
        {
		   new string[128];
		   format(string, sizeof(string), "Administator %s has jailed %s for %d seconds <Reason: %s>", adminname,playername,time,params[2]);
		   SendClientMessageToAll(COLOR_RED, string);
		   format(string, sizeof(string), "Administator %s has jailed you for %d seconds <Reason: %s>", adminname,time,params[2]);
		   SendClientMessage(pid,COLOR_RED, string);
		   format(string, sizeof(string), "You jailed %s for %d seconds <Reason: %s>",playername, time, params[2]);
		   SendClientMessage(playerid,COLOR_RED, string);
		   TogglePlayerControllable(pid, 1);
		   SetPlayerInterior(pid, 3);
		   SetPlayerPos(pid, 198.5319,162.3093,1003.0300);
		   SetTimerEx("UnjailTime", time*1000, 0, "%d", pid);
		   PlayerInfo[pid][pJail] = 1;
		}
		else return SendClientMessage(playerid,COLOR_RED, "ERROR: Player is already jailed!");
	}
	else return SendClientMessage(playerid,COLOR_RED, "ERROR: You must be Administrar Level 2 to use this command");
	return 1;
}

CMD:unjail(playerid, params[])
{
    new pid,reason[128];
    new adminname[MAX_PLAYER_NAME];
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,adminname,MAX_PLAYER_NAME);
    GetPlayerName(pid,pname,MAX_PLAYER_NAME);
    if(PlayerInfo[playerid][pAdmin] >= 2)
    {
        if(sscanf(params, "uz", pid, reason)) return SendClientMessage(playerid,COLOR_RED, "USAGE: /unjail <playername/id> <reason>");
		if(PlayerInfo[playerid][pAdmin] < PlayerInfo[pid][pAdmin]) return SendClientMessage(playerid,COLOR_RED, "ERROR: You cant unjail higher rank administrators");
		if(pid == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED, "ERROR: Player is not connected!");
        if(PlayerInfo[pid][pJail] == 1)
        {
		   new string[128];
		   format(string, sizeof(string), "Administator %s has unjail %s <Reason: %s>", adminname,pname,reason[2]);
		   SendClientMessageToAll(COLOR_RED, string);
		   format(string, sizeof(string), "Administator %s has unjail you <Reason: %s>", adminname,reason);
		   SendClientMessage(pid,COLOR_GREEN, string);
		   format(string, sizeof(string), "You unjail %s <Reason: %s>",pname,reason[2]);
		   SendClientMessage(playerid,COLOR_GREEN, string);
		   TogglePlayerControllable(pid, 1);
		   SetPlayerInterior(pid, 0);
		   SpawnPlayer(pid);
		   PlayerInfo[pid][pJail] = 0;
		}
		else return SendClientMessage(playerid,COLOR_RED,"ERROR: This Player is already unjail");
	}
	else return SendClientMessage(playerid,COLOR_RED,"ERROR: You must be Administrator Level 2 to use this command");
	return 1;
}

CMD:acmds(playerid, params[])
{
	if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, COLOR_RED, "ERROR: You must be Administrator to use this command!");
    switch(PlayerInfo[playerid][pAdmin])
    {
       case 1: ShowPlayerDialog(playerid, ADMLVL1, DIALOG_STYLE_MSGBOX, "Admin Level 1: Trial Moderator","/adminduty /slap /ann(ounce) /showadmlvl /god /(un)freeze /akill /asay /clearchat /jetpack","OK","Exit");
       case 2: ShowPlayerDialog(playerid, ADMLVL2, DIALOG_STYLE_MSGBOX, "Admin Level 2: Moderator","/kick /goto /get /forcerules /(clear)warn /(un)jail","OK","Exit");
       case 3: ShowPlayerDialog(playerid, ADMLVL3, DIALOG_STYLE_MSGBOX, "Admin Level 3: Global Moderator","/ban","OK","Exit");
       case 4: ShowPlayerDialog(playerid, ADMLVL4, DIALOG_STYLE_MSGBOX, "Admin Level 4: Tester","","OK","Exit");
       case 5: ShowPlayerDialog(playerid, ADMLVL5, DIALOG_STYLE_MSGBOX, "Admin Level 5: Head Administrator","","OK","Exit");
       case 6: ShowPlayerDialog(playerid, ADMLVL6, DIALOG_STYLE_MSGBOX, "Admin Level 6: Senior Administrator","/healall /armourall","OK","Exit");
       case 7: ShowPlayerDialog(playerid, ADMLVL7, DIALOG_STYLE_MSGBOX, "Admin Level 7: Junior Administrator","","OK","Exit");
       case 8: ShowPlayerDialog(playerid, ADMLVL8, DIALOG_STYLE_MSGBOX, "Admin Level 8: Scripter/Mapper","","OK","Exit");
       case 9: ShowPlayerDialog(playerid, ADMLVL9, DIALOG_STYLE_MSGBOX, "Admin Level 9: Co-Owner","/gmx /setscore","OK","Exit");
       case 10: ShowPlayerDialog(playerid, ADMLVL10, DIALOG_STYLE_MSGBOX, "Admin Level 10: Server Owner","No commands yet!","OK","Exit");
    }
    return 1;
}

CMD:god(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
      if(PlayerInfo[playerid][pGod] == 0)
      {
         PlayerInfo[playerid][pGod] = 1;
         SetPlayerHealth(playerid,100000);
         SetPlayerArmour(playerid,100000);
         GivePlayerWeapon(playerid,16,50000);
         GivePlayerWeapon(playerid,8,1);
         GivePlayerWeapon(playerid,28,50000);
         GivePlayerWeapon(playerid,34,50000);
         GivePlayerWeapon(playerid,22,50000);
         PlayerPlaySound(playerid,1085,0.0,0.0,0.0);
         GODMODE[playerid] = Create3DTextLabel("God Mode On",COLOR_GREEN, 30.0, 40.0, 50.0, 40.0, 0);
         Attach3DTextLabelToPlayer(GODMODE[playerid], playerid, 0.0, 0.0, 0.6);
         SendClientMessage(playerid,COLOR_GREEN,"| - God Mode On - |");
      }
      else
      {
         PlayerInfo[playerid][pGod] = 0;
         Delete3DTextLabel(GODMODE[playerid]);
         SendClientMessage(playerid,COLOR_RED,"| - God Mode Off - |");
         SetPlayerHealth(playerid, 100.0);
         SetPlayerArmour(playerid, 100.0);
         ResetPlayerWeapons(playerid);
         PlayerPlaySound(playerid,1085,0.0,0.0,0.0);
         SpawnPlayer(playerid);
      }
    }
    else return SendClientMessage(playerid,COLOR_RED,"ERROR: You must be Administrator Level 1 to use this command");
    return 1;
}

CMD:adminduty(playerid, params[])
{
    new string[128],skin,adminname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, adminname, sizeof(adminname));
    if(PlayerInfo[playerid][pAdmin] >= 1 || IsPlayerAdmin(playerid))
    {
        if(adminduty[playerid] == 0)
        {
            if(sscanf(params,"i",skin)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /adminduty <skin>");
            if(skin < 0 || skin > 299) return SendClientMessage(playerid,COLOR_RED,"ERROR: Invalid Skin Id (0-299)");
            format(string,sizeof(string),""yellow"Administrator %s is on "green"Admin Duty!",adminname);
            SendClientMessageToAll(COLOR_RED,string);
            SendClientMessage(playerid,COLOR_GREEN,"| - Your Now on Admin Duty - |");
            SetPVarInt(playerid, "skin", GetPlayerSkin(playerid));
            SetPVarInt(playerid, "color", GetPlayerColor(playerid));
            SetPlayerColor(playerid,COLOR_RED);
            SetPlayerSkin(playerid,skin);
            SetPlayerHealth(playerid,999999.999);
            SetPlayerArmour(playerid,999999.999);
            GivePlayerWeapon(playerid,16,50000);
            GivePlayerWeapon(playerid,8,1);
            GivePlayerWeapon(playerid,28,50000);
            GivePlayerWeapon(playerid,34,50000);
            GivePlayerWeapon(playerid,22,50000);
            format(string,sizeof(string),"Administrator %s is on Admin Duty!",adminname);
            SendToAdmins(COLOR_GREY,string);
            format(string,sizeof(string),"Administrator %s is on Admin Duty!",adminname);
            printf(string);
            adminduty[playerid] = 1;
        }
        else
        {
            format(string,sizeof(string),""yellow"Administrator %s is now off "red"Duty!",adminname);
            SendClientMessageToAll(COLOR_RED,string);
            SetPlayerSkin(playerid, GetPVarInt(playerid,"skin"));
            SetPlayerColor(playerid, GetPVarInt(playerid,"color"));
            SendClientMessage(playerid,COLOR_RED,"| - Your Now off Duty - |");
            SetPlayerHealth(playerid,100);
            SetPlayerArmour(playerid,100);
            SpawnPlayer(playerid);
            format(string,sizeof(string),"Administrator %s is now off Duty!",adminname);
            SendToAdmins(COLOR_GREY,string);
            format(string,sizeof(string),"Administrator %s is now off Duty!",adminname);
            printf(string);
            adminduty[playerid] = 0;
        }
    } else return SendClientMessage(playerid,COLOR_RED,"ERROR: You must be Administrator Level 1 to use this command");
    return 1;
}

CMD:announce(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
       if(isnull(params)) return SendClientMessage(playerid,COLOR_RED, "USAGE: /announce <Text>");
       GameTextForAll(params,4000,3);
    }
    else return SendClientMessage(playerid,COLOR_RED,"ERROR: You must be Administrator Level 1 to use this command");
    return 1;
}

CMD:ann(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
       if(isnull(params)) return SendClientMessage(playerid,COLOR_RED, "USAGE: /announce <Text>");
       GameTextForAll(params,4000,3);
    }
    else return SendClientMessage(playerid,COLOR_RED,"ERROR: You must be Administrator Level 1 to use this command");
    return 1;
}

CMD:akill(playerid, params[])
{
    new victimname[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], reason[128], id;
    GetPlayerName(id, victimname, sizeof(victimname));
    GetPlayerName(playerid, adminname, sizeof(adminname));
    new str[128];
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
        if(sscanf(params, "rs", id, reason)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /akill <playerid/name> <reason>");
        if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED, "ERROR: Player is not connected!");
        if(id == playerid) return SendClientMessage(playerid,COLOR_RED, "ERROR: You cant akill yourself!");
        if(PlayerInfo[playerid][pAdmin] < PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid,COLOR_RED,"ERROR: You cant akill higher rank administrators");
		format(str,sizeof(str),"ADMKILL: Administrator %s has kill %s <Reason: %s>",adminname,victimname,reason);
        SendClientMessageToAll(COLOR_RED,str);
        format(str, sizeof(str), "ADMKILL: Administrator %s has killed you <Reason: %s>",adminname,reason);
        SendClientMessage(id,COLOR_RED,str);
        format(str, sizeof(str), "You kill %s <Reason: %s>",victimname,reason);
        SendClientMessage(id,COLOR_RED,str);
        SetPlayerHealth(id,0.0);
    }
    else return SendClientMessage(playerid,COLOR_RED,"ERROR: You must be Administrator Level 2 to use this command");
    return 1;
}

CMD:healall(playerid,params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 6)
    {
      for(new i=0; i<MAX_PLAYERS; i++)
      {
          if(IsPlayerConnected(i))
          {
              new str[128], adminname[MAX_PLAYER_NAME];
              GetPlayerName(i,adminname,MAX_PLAYER_NAME);
              format(str,sizeof(str),"Administrator %s has healed all players!",adminname);
              SendClientMessageToAll(COLOR_GREEN,str);
              SetPlayerHealth(i,100);
          }
      }
    }
    else return SendClientMessage(playerid,COLOR_RED,"ERROR: You must be Administrator Level 6 to use this command");
    return 1;
}

CMD:armourall(playerid,params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 6)
    {
      new str[128], name[MAX_PLAYER_NAME];
      GetPlayerName(playerid,name,sizeof(name));
      format(str,sizeof(str),"Administrator %s has restored all players armour!",name);
      SendClientMessageToAll(COLOR_GREEN,str);
      for(new i=0; i<MAX_PLAYERS; i++)
      {
          if (IsPlayerConnected(i))
          {
              SetPlayerArmour(i,100);
          }
      }
    }
    else return SendClientMessage(playerid,COLOR_RED,"ERROR: You must be Administrator Level 6 to use this command");
    return 1;
}

CMD:setscore(playerid, params[])
{
    new string[128], pName[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], pID, score;
    if(PlayerInfo[playerid][pAdmin] >= 9)
    {
        if(sscanf(params, "ud", pID, score)) return SendClientMessage(playerid,COLOR_RED, "USAGE: /setscore <playerid/name> <amount>");
        if(IsPlayerConnected(pID) && pID != INVALID_PLAYER_ID)
        {
           if(score == 1000000000)
           {
             SendClientMessage(playerid,COLOR_RED, "ERROR: Instead of the ammount you put, The System Automaticlly change it to 9782321");
             SendClientMessage(playerid,COLOR_RED, "SYSTEM REASON: "white"Too many ammount!");
             return SetPlayerScore(pID,9782321);
           }
           if(PlayerInfo[playerid][pAdmin] < PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid,COLOR_RED,"ERROR: You cant setscore of higher rank administrators");
           GetPlayerName(playerid, adminname, sizeof(adminname));
           GetPlayerName(pID, pName, sizeof(pName));
           format(string, sizeof(string), "Administrator %s has set %s's score to %d", adminname,pName,score);
           SendClientMessageToAll(COLOR_GREEN, string);
           format(string, sizeof(string), "Administrator %s has set your score to %d", adminname, score);
           SendClientMessage(pID,COLOR_GREEN, string);
           format(string, sizeof(string), "You set %s's score to %d score",pName,score);
           SendClientMessage(playerid,COLOR_GREEN, string);
           SetPlayerScore(pID, score);
           format(string, sizeof(string), "Administrator %s has set %s's Score to %d",adminname,pName,score);
           SendToAdmins(COLOR_GREY,string);
           format(string, sizeof(string), "Administrator %s has set %s's Score to %d",adminname,pName,score);
           printf(string);
        }
        else return SendClientMessage(playerid,COLOR_RED, "ERROR: Player is not connected!");
    }
    else return SendClientMessage(playerid,COLOR_RED, "ERROR:You must be Administrator Level 4 to use this command");
    return 1;
}

CMD:slap(playerid,params[])
{
    new id,
		string[128],
        reason[128],
        adminname[MAX_PLAYER_NAME],
        pname[MAX_PLAYER_NAME],
        Float:x, Float:y, Float:z,
        Float:health;
    GetPlayerName(id,pname,MAX_PLAYER_NAME);
    GetPlayerName(playerid,adminname,MAX_PLAYER_NAME);
    GetPlayerHealth(id, health);
    GetPlayerPos(id, x, y, z);
	if(PlayerInfo[playerid][pAdmin] >= 1)
	{
	    if(sscanf(params,"us[128]",id, reason)) return SendClientMessage(playerid,COLOR_RED,"USAGE: /slap <playername/id> <reason>");
        if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED,"ERROR: Player is not connected!");
		if(id == playerid) return SendClientMessage(playerid,COLOR_RED,"ERROR: You cannot slap yourself");
		SetPlayerHealth(id, health -20.0);
        format(string,sizeof(string),"Administrator %s has slap %s <Reason: %s>",adminname,pname,reason);
        SendClientMessageToAll(COLOR_RED,string);
        format(string,sizeof(string),"Administrator %s has slap you <Reason: %s>",adminname,reason);
        SendClientMessage(id,COLOR_RED,string);
        format(string,sizeof(string),"You slap %s <Reason: %s>",pname,reason);
        SendClientMessage(playerid,COLOR_RED,string);
        format(string,sizeof(string),"Administrator %s has slap %s",adminname,pname);
        SendToAdmins(COLOR_GREY,string);
        SetPlayerPos(id, x, y, z+7.5);
        PlayerPlaySound(id,1190,0.0,0.0,0.0);
    }
    else return SendClientMessage(playerid,COLOR_RED,"ERROR: You must be Administrator Level 1 to use this command");
    return 1;
}

CMD:goto(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 2)
    {
      new string[128],ID,adminname[MAX_PLAYER_NAME],pname[MAX_PLAYER_NAME];
      GetPlayerName(playerid,adminname,MAX_PLAYER_NAME);
      GetPlayerName(ID,pname,MAX_PLAYER_NAME);
      if(sscanf(params, "u", ID)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /goto <playername/id>");
      if(IsPlayerConnected(ID) && ID != INVALID_PLAYER_ID && ID != playerid)
      {
         new Float:x, Float:y, Float:z;
         new vehicleid = GetPlayerVehicleID(playerid);
         GetPlayerPos(ID, x, y, z);
         SetPlayerPos(playerid, x+1, y+1, z);
         format(string, sizeof(string), "You teleported to %s",pname);
         SendClientMessage(playerid,COLOR_BLUE,string);
         format(string, sizeof(string), "Administrator %s has been teleport to you",adminname);
         SendClientMessage(ID,COLOR_GREEN,string);
         if(IsPlayerInVehicle(playerid,vehicleid))
         {
           SetVehiclePos(GetPlayerVehicleID(playerid),x+3,y,z);
           LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(ID));
           SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(ID));
         }
      }
      else return SendClientMessage(playerid, COLOR_RED, "ERROR: Player is not connected or its yourself.");
    }
    else return SendClientMessage(playerid,COLOR_RED, "ERROR: You must be Administrator Level 2 to use this command");
    return 1;
}

CMD:showadmlvl(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
        new string[128],AdminName[24],Level;
        Level = PlayerInfo[playerid][pAdmin];
        GetPlayerName(playerid,AdminName,128);
        format(string, sizeof(string), ""white"<LEVEL>:"yellow" Administrator "red"%s "yellow"| Level %d - %s |",AdminName,Level,AdmRank);
        SendClientMessageToAll(COLOR_RED,string);
    }
    else return SendClientMessage(playerid,COLOR_RED, "ERROR: You must be Administrator Level 1 to use this command");
    return 1;
}

CMD:get(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 2)
    {
       new targetid, string[128];
       if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /get <playerid/name>");
       if(IsPlayerConnected(targetid) && targetid != INVALID_PLAYER_ID && targetid != playerid)
       {
           new AdminName[24];
           new pName[24];
           new Float:x, Float:y, Float:z;
           GetPlayerName(playerid,AdminName,128);
           GetPlayerName(targetid,pName,128);
           format(string, sizeof(string), "You have been teleported to Administrator %s",AdminName);
           SendClientMessage(targetid,COLOR_BLUE,string);
           format(string, sizeof(string), "%s has been teleport to you",pName);
           SendClientMessage(playerid,COLOR_GREEN,string);
           SetPlayerInterior(targetid,GetPlayerInterior(playerid));
           if(PlayerInfo[playerid][pAdmin] < PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid,COLOR_RED,"ERROR: You cant get the higher rank administrators");
           if(GetPlayerState(targetid) == PLAYER_STATE_DRIVER)
           {
                new veh = GetPlayerVehicleID(targetid);
                SetPlayerVirtualWorld(targetid, GetPlayerVirtualWorld(playerid));
                SetPlayerInterior(targetid, GetPlayerInterior(playerid));
                GetPlayerPos(playerid,x,y,z);
                SetVehiclePos(veh,x,y+1,z);
                PutPlayerInVehicle(targetid, veh, 0);
           }
           else
           {
                SetPlayerVirtualWorld(targetid, GetPlayerVirtualWorld(playerid));
                SetPlayerInterior(targetid, GetPlayerInterior(playerid));
                GetPlayerPos(playerid,x,y,z);
                SetPlayerPos(targetid,x,y+1,z);
           }
       }
       else return SendClientMessage(playerid, COLOR_RED, "ERROR: Player is not connected or its yourself.");
    }
    else return SendClientMessage(playerid,COLOR_RED, "ERROR: You must be Administrator Level 2 to use this command");
    return 1;
}

CMD:warn(playerid, params[])
{
    new id,reason[128];
    if(PlayerInfo[playerid][pAdmin] >= 2 || IsPlayerAdmin(playerid))
    {
        if(sscanf(params, "us[128]",id, reason)) return SendClientMessage(playerid,COLOR_RED, "USAGE: /warn <playerid/name> <reason>");
        if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED, "ERROR: Player is not connected!");
        if(id == playerid) return SendClientMessage(playerid,COLOR_RED, "ERROR: You cant warn yourself!");
        new adminname[MAX_PLAYER_NAME], victimname[MAX_PLAYER_NAME], string[180];
        GetPlayerName(id, victimname, sizeof(victimname));
        GetPlayerName(playerid, adminname, sizeof(adminname));
        PlayerInfo[id][pWarn]++;
        if(PlayerInfo[playerid][pAdmin] < PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid,COLOR_RED,"ERROR: You cant warn the higher rank administrators");
        if(PlayerInfo[id][pWarn] <= PlayerInfo[id][pWarn])
        {
           format(string, sizeof(string), ""red"WARNING:"white"You have recieve some message!\n\n"red"Administrator %s has warn you\nReason:%s\nWarnings:%d/%d",adminname,reason,PlayerInfo[id][pWarn],MAX_WARNINGS);
           ShowPlayerDialog(id,WARNDIALOG, DIALOG_STYLE_MSGBOX,""red"Warning Message!:",string,"Ok","");
        }
        if(PlayerInfo[id][pWarn] == MAX_WARNINGS)
        {
           format(string, sizeof(string), "Administrator %s has warn %s <Reason: %s> <Warnings %d/%d>",adminname,victimname,reason,PlayerInfo[id][pWarn],MAX_WARNINGS);
           SendClientMessageToAll(COLOR_RED, string);
           format(string, sizeof(string), "%s has been Kicked! <Reason: Over Reach Warnings!> <Warnings %d/%d>",victimname,PlayerInfo[id][pWarn],MAX_WARNINGS);
           SendClientMessageToAll(COLOR_RED, string);
           format(string, sizeof(string), ""red"You have over reach the Maxium Warnings You Have Been Kicked!\n\nAdministrator:%s has warn you\nReason:%s\nWarnings:%d/%d",adminname,reason,PlayerInfo[id][pWarn],MAX_WARNINGS);
           ShowPlayerDialog(id,456, DIALOG_STYLE_MSGBOX,""red"Over Reach! (KICKED!):",string,"Ok","");
           Kick(id);
        }
        format(string, sizeof(string), "Administrator %s has warn %s <Reason: %s> <Warnings %d/%d>",adminname,victimname,reason,PlayerInfo[id][pWarn],MAX_WARNINGS);
        SendClientMessageToAll(COLOR_RED, string);
        format(string, sizeof(string), "Administrator %s has warn %s <Reason: %s> <Warnings %d/%d>",adminname,victimname,reason,PlayerInfo[id][pWarn],MAX_WARNINGS);
        SendToAdmins(COLOR_GREY, string);
        format(string, sizeof(string), "Administrator %s has warn %s <Reason: %s> <Warnings %d/%d>",adminname,victimname,reason,PlayerInfo[id][pWarn],MAX_WARNINGS);
        printf(string);
    }
    else return SendClientMessage(playerid,COLOR_RED, "ERROR: You must be Administrator Level 2 to use this command");
    return 1;
}

CMD:clearwarn(playerid, params[])
{
    new id;
    if(PlayerInfo[playerid][pAdmin] >= 2 || IsPlayerAdmin(playerid))
    {
        if(sscanf(params, "u",id)) return SendClientMessage(playerid,COLOR_RED, "USAGE: /clearwarn <playerid/name>");
        if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED, "ERROR: Player is not connected!");
        new adminname[MAX_PLAYER_NAME], victimname[MAX_PLAYER_NAME], string[180];
        GetPlayerName(id, victimname, sizeof(victimname));
        GetPlayerName(playerid, adminname, sizeof(adminname));
        if(PlayerInfo[id][pWarn] == 0)
        {
            SendClientMessage(playerid,COLOR_RED, "ERROR: This Player is already clear warned!");
            return 1;
        }
        PlayerInfo[id][pWarn]=0;
        if(PlayerInfo[id][pWarn] >= PlayerInfo[id][pWarn])
        {
           format(string, sizeof(string), ""white"You have recieve some message!\n\n"green"Administrator %s has clear your warn\nWarnings:%d/%d\n\n"white"Congratz!:"green"Your Warnings has been remove!",adminname,PlayerInfo[id][pWarn],MAX_WARNINGS);
           ShowPlayerDialog(id,WARNDIALOG, DIALOG_STYLE_MSGBOX,""red"Warning Message!:",string,"Ok","");
        }
        format(string, sizeof(string), "Administrator %s has clear the warn of %s <Warnings %d/%d>",adminname,victimname,PlayerInfo[id][pWarn],MAX_WARNINGS);
        SendClientMessageToAll(COLOR_GREEN, string);
        format(string, sizeof(string), "Administrator %s has clear the warn of %s <Warnings %d/%d>",adminname,victimname,PlayerInfo[id][pWarn],MAX_WARNINGS);
        SendToAdmins(COLOR_GREY, string);
        format(string, sizeof(string), "Administrator %s has clear the warn of %s <Warnings %d/%d>",adminname,victimname,PlayerInfo[id][pWarn],MAX_WARNINGS);
        printf(string);
    }
    else return SendClientMessage(playerid,COLOR_RED, "ERROR: You must be Administrator Level 2 to use this command");
    return 1;
}

CMD:kick(playerid, params[])
{
    new pid;
    if(PlayerInfo[playerid][pAdmin] >= 2 || IsPlayerAdmin(playerid))
    {
        if(sscanf(params, "us[128]", pid, params[2])) return SendClientMessage(playerid,COLOR_RED, "USAGE: /kick <playerid/name> <reason>");
        if(pid == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED, "ERROR: Player is not connected!");
        if(pid == playerid) return SendClientMessage(playerid,COLOR_RED, "ERROR: You cant kick yourself!");
        new adminname[MAX_PLAYER_NAME], paramname[MAX_PLAYER_NAME], string[180];
        GetPlayerName(pid, paramname, sizeof(paramname));
        GetPlayerName(playerid, adminname, sizeof(adminname));
        if(PlayerInfo[playerid][pAdmin] < PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid,COLOR_RED,"ERROR: You cant kick higher rank administrators");
        format(string, sizeof(string), "Administrator %s has kicked %s <Reason: %s>",adminname,paramname, params[2]);
        SendClientMessageToAll(COLOR_RED, string);
        SaveIn("KickLog",string);
        format(string, sizeof(string), "You have been kicked by Administrator %s <Reason: %s>", paramname, params[2]);
        SendClientMessage(pid,COLOR_RED, string);
        format(string, sizeof(string), "You kicked %s <Reason: %s>", paramname, params[2]);
        SendClientMessage(playerid,COLOR_GREEN, string);
        Kick(pid);
        format(string,sizeof(string),"Administrator %s has kicked %s",adminname,paramname);
        SendToAdmins(COLOR_GREY,string);
        format(string, sizeof(string), "Administrator %s has kicked %s <Reason:%s>",adminname,paramname,params[2]);
        printf(string);
    }
    else return SendClientMessage(playerid,COLOR_RED, "ERROR: You must be Administrator Level 2 to use this command");
    return 1;
}

COMMAND:kickall(playerid, params[])
{
	if(PlayerInfo[playerid][pAdmin] >= 9 || IsPlayerAdmin(playerid))
	{
	   new string[128],
		   adminname[MAX_PLAYER_NAME];
	   GetPlayerName(playerid,adminname,MAX_PLAYER_NAME);
       format(string,sizeof(string),"Administrator %s has kick all!",adminname);
       SendClientMessageToAll(COLOR_RED,string);
	   for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) && !IsPlayerAdmin(i) && PlayerInfo[i][pAdmin] >= 1)
       {
           Kick(i);
       }
	}
	else return SendClientMessage(playerid,COLOR_RED, "ERROR: You must be Administrator Level 9 to use this command");
    return 1;
}

CMD:gmx(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 9 || !IsPlayerAdmin(playerid))
    {
       new adminname[MAX_PLAYER_NAME],string[180];
       GetPlayerName(playerid, adminname, sizeof(adminname));
       if(Count == 0)
       {
          SetTimer("Counting",1000,false);
          SendClientMessage(playerid,COLOR_RED, "Server Restart Activate!");
          SendClientMessage(playerid,COLOR_GREEN, "Server Restart Launch Start!");
          format(string,sizeof(string),"Administrator %s has start a countdown for the server restart!",adminname);
          SendClientMessageToAll(COLOR_RED,string);
          GameTextForAll("~r~Server Restart Countdown Launched!",3000,3);
          format(string,sizeof(string),"Administrator %s has restart the server!",adminname);
          SendToAdmins(COLOR_GREY,string);
       }else{
       SendClientMessage(playerid,COLOR_RED,"Server Restart is Already Launching!");
       }
    }
    else return SendClientMessage(playerid,COLOR_RED, "ERROR: You must be Administrator Level 9 to use this command");
    return 1;
}

CMD:jetpack(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] > 1 || !IsPlayerAdmin(playerid))
    {
       new adminname[MAX_PLAYER_NAME],string[180];
       GetPlayerName(playerid, adminname, sizeof(adminname));
       SetPlayerSpecialAction(playerid, 2);
       SendClientMessage(playerid,COLOR_GREEN, "|- Jetpack Spawned! -|");
       format(string,sizeof(string),"Administrator %s has spawned a jetpack!",adminname);
       SendToAdmins(COLOR_GREY,string);
    }
    else return SendClientMessage(playerid,COLOR_RED, "ERROR: You must be Administrator Level 1 to use this command");
    return 1;
}

CMD:ban(playerid, params[])
{
    new pid;
    new ip[128];
    GetPlayerIp(pid,ip,128);
    if(PlayerInfo[playerid][pAdmin] >= 3 || IsPlayerAdmin(playerid))
    {
        if(sscanf(params, "us[128]", pid, params[2])) return SendClientMessage(playerid,COLOR_RED, "USAGE: /ban <playerid/name> <reason>");
        if(pid == INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_RED, "ERROR: Player is not connected!");
        if(pid == playerid) return SendClientMessage(playerid,COLOR_RED, "ERROR: You cant ban yourself!");
        new adminname[MAX_PLAYER_NAME], paramname[MAX_PLAYER_NAME], string[180];
        new year,month,day; getdate(year, month, day);
        new hour,minute,second; gettime(hour,minute,second);
        GetPlayerName(pid, paramname, sizeof(paramname));
        GetPlayerName(playerid, adminname, sizeof(adminname));
        if(PlayerInfo[playerid][pAdmin] < PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid,COLOR_RED,"ERROR: You cant ban higher rank administrators");
        format(string, sizeof(string), "Administrator %s has ban %s <Reason: %s> <Date: %d/%d/%d> <Time: %d:%d>",adminname,paramname, params[2],month,day,year,hour,minute);
        SendClientMessageToAll(COLOR_RED, string);
        SaveIn("BanLog",string);
        format(string, sizeof(string), "You have been ban by Administrator %s <Reason: %s>", paramname, params[2]);
        SendClientMessage(pid,COLOR_RED, string);
        format(string, sizeof(string), ""red"Administrator Bans You: %s\nTime: %d:%d\nDate: %d/%d/%d\nReason: %n\nNote:"white"If you are mistakely get banned go to our forums at http://www.server.com\nand make unban appeal", adminname, params[2],hour,minute,month,day,year,params[2]);
        ShowPlayerDialog(pid,453, DIALOG_STYLE_MSGBOX,""white"Banned Info:",string,"Ok","");
        SendClientMessage(pid,COLOR_WHITE, "==============================================");
        format(string, sizeof(string), "You have been ban by Administrator %s <Reason: %s>", paramname, params[2]);
        SendClientMessage(pid,COLOR_RED, string);
        SendClientMessage(pid,COLOR_RED, "Make unban appeal at our forums. www.server.com");
        SendClientMessage(pid,COLOR_WHITE, "==============================================");
        format(string, sizeof(string), "You ban %s <Reason: %s>", paramname, params[2]);
        SendClientMessage(playerid,COLOR_RED, string);
        Ban(pid);
        format(ip,128,"%s**",ip);
        format(ip,128,"banip %s",params[2]);
        SendRconCommand(ip);
        new INI:File = INI_Open(UserPath(playerid));
        PlayerInfo[pid][pBanned] = 1;
        INI_WriteInt(File,"Banned",1);
        INI_Close(File);
        format(string,sizeof(string),"Administrator %s has banned %s",adminname,paramname);
        SendToAdmins(COLOR_GREY,string);
        format(string, sizeof(string), "Administrator %s has banned %s <Reason:%s>",adminname,paramname,params[2]);
        printf(string);
    }
    else return SendClientMessage(playerid,COLOR_RED, "ERROR: You must be Administrator Level 3 to use this command");
    return 1;
}

CMD:stats(playerid,params[])
{
    new string[128];
    new name[MAX_PLAYER_NAME];
    new deaths = PlayerInfo[playerid][pDeaths];
    new kills = PlayerInfo[playerid][pKills];
    new admin = PlayerInfo[playerid][pAdmin];
    new money = PlayerInfo[playerid][pCash];
    new score = PlayerInfo[playerid][pScore];
    new stats[1024];
    GetPlayerName(playerid, name, sizeof(string));
    format(string, sizeof(string), "Name:%s\nScore:%d\nMoney:%d\nAdmin Level:%d\nKills:%d\nDeaths:%d",name,score,money,admin,kills,deaths);
    format(stats, sizeof(stats), "%s", string);
    ShowPlayerDialog(playerid,454, DIALOG_STYLE_MSGBOX,""white"Stats:",stats,"Ok","");
    return 1;
}

CMD:clearchat(playerid,params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
       for(new i = 0; i < 100; i++)
       SendClientMessageToAll(COLOR_GREY,"");
       new string[128];
       new adminname[MAX_PLAYER_NAME];
       GetPlayerName(playerid, adminname, sizeof(string));
       format(string, sizeof(string), "Administrator %s has cleared the chat", adminname);
       SendClientMessageToAll(COLOR_RED, string);
       format(string, sizeof(string), "Administrator %s has cleared the chat",adminname);
       printf(string);
    }
    else return SendClientMessage(playerid,COLOR_RED,"ERROR: You must be Administrator Level 2 to use this command");
    return 1;
}

CMD:kill(playerid,params[])
{
    SetPlayerHealth(playerid, 0);
    PlayerPlaySound(playerid,1085,0.0,0.0,0.0);
    PlayerInfo[playerid][pDeaths]++;
    return 1;
}

CMD:suicide(playerid,params[])
{
    SetPlayerHealth(playerid, 0);
    PlayerPlaySound(playerid,1085,0.0,0.0,0.0);
    PlayerInfo[playerid][pDeaths]++;
    return 1;
}

CMD:asay(playerid, params[])
{
    new string[128], pname[MAX_PLAYER_NAME];
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
       if(isnull(params)) return SendClientMessage(playerid,COLOR_RED, "USAGE: /asay <text>");
       GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
       format(string, sizeof(string), "Admin %s: "white"%s", pname, params);
       SendClientMessageToAll(COLOR_RED,string);
    }
    else return SendClientMessage(playerid,COLOR_RED,"ERROR: You must be Administrator Level 1 to use this command");
    return 1;
}

CMD:forcerules(playerid, params[])
{
    new pid;
    if(PlayerInfo[playerid][pAdmin] >= 2)
    {
        if(sscanf(params, "us[128]", pid, params[2])) return SendClientMessage(playerid,COLOR_RED, "USAGE: /forcerules <playerid/name> <reason>");
        if(IsPlayerConnected(pid) && pid != INVALID_PLAYER_ID && pid != playerid)
        {
           new adminname[MAX_PLAYER_NAME], paramname[MAX_PLAYER_NAME], string[180];
           GetPlayerName(pid, paramname, sizeof(paramname));
           GetPlayerName(playerid, adminname, sizeof(adminname));
           if(PlayerInfo[playerid][pAdmin] < PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid,COLOR_RED,"ERROR: You cant force rules higher rank administrators");
           format(string, sizeof(string), "Administrator %s has force to read rules %s <Reason: %s> <Warning %d/%d>",adminname,paramname, params[2],PlayerInfo[pid][pWarn],MAX_WARNINGS);
           SendClientMessageToAll(COLOR_RED, string);
           format(string, sizeof(string), "You have been force to read rules by Administrator %s <Reason: %s> <Warning: %d/%d>", paramname, params[2],PlayerInfo[pid][pWarn],MAX_WARNINGS);
           SendClientMessage(pid,COLOR_RED, string);
           format(string, sizeof(string), "You force to read rules %s <Reason: %s>", paramname, params[2]);
           SendClientMessage(playerid,COLOR_GREEN, string);
           PlayerInfo[pid][pWarn]++;
           if(PlayerInfo[pid][pWarn] == MAX_WARNINGS)
           {
              format(string, sizeof(string), "%s has been Kicked! <Reason: Over Reach Warnings!> <Warnings %d/%d>",paramname,PlayerInfo[pid][pWarn],MAX_WARNINGS);
              SendClientMessageToAll(COLOR_RED, string);
              format(string, sizeof(string), ""red"You have over reach the Maxium Warnings You Have Been Kicked!\n\nAdministrator:%s has warn you\nReason:%s\nWarnings:%d/%d",adminname,params[2],PlayerInfo[pid][pWarn],MAX_WARNINGS);
              ShowPlayerDialog(pid,456, DIALOG_STYLE_MSGBOX,""red"Over Reach! (KICKED!):",string,"Ok","");
              Kick(pid);
           }
           ShowPlayerDialog(pid,RULEDIALOG, DIALOG_STYLE_MSGBOX, "Rules:", "1.)Do Not Hack/Cheat/Mods\n2.)Respect Admins/Players\n3.)Ask To Be Admin if we are Hiring\n4.)No Insulting/Flamming\n5.)Dont AFK on Spawn Areas\n6.)Dont Team Carjack\n7.)Dont Team Kill\n\nIf you break those rules you may Punishment by Our Server Administrators", "Accept", "Ignore");
           format(string,sizeof(string),"Administrator %s has force to read rules %s",adminname,paramname);
           SendToAdmins(COLOR_GREY,string);
        }
        else return SendClientMessage(playerid,COLOR_RED, "ERROR: Player is not connected or its yourself.");
    }
    else return SendClientMessage(playerid,COLOR_RED, "ERROR: You must be Administrator Level 2 to use this command");
    return 1;
}

//============================================================================//

stock MessageToOwners(COLOR,message[])
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
       if(PlayerInfo[i][pAdmin] > 10 || IsPlayerAdmin(i))
       SendClientMessage(i,COLOR,message);
    }
    return 1;
}

stock MessageToAdmins(COLOR,message[])
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
       if(PlayerInfo[i][pAdmin] > 1 || IsPlayerAdmin(i))
       SendClientMessage(i,COLOR,message);
    }
    return 1;
}

stock SendToAdmins(COLOR,message[])
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
       if(PlayerInfo[i][pAdmin] > 1 || IsPlayerAdmin(i))
       SendClientMessage(i,COLOR,message);
    }
    return 1;
}

stock UserPath(playerid) {
    new iStr[256],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(iStr,sizeof(iStr),PATH,name);
    return iStr;
}

stock udb_hash(buf[]) {
    new length=strlen(buf);
    new s1 = 1;
    new s2 = 0;
    new n;
    for (n=0; n<length; n++)
    {
       s1 = (s1 + buf[n]) % 65521;
       s2 = (s2 + s1)     % 65521;
    }
    return (s2 << 16) + s1;
}
Reply


Messages In This Thread
Is this working? - by GAMER_PS2 - 13.11.2011, 09:08
Re: Is this working? - by SmiT - 13.11.2011, 09:13
Re: Is this working? - by GAMER_PS2 - 13.11.2011, 09:15
Re: Is this working? - by Stigg - 13.11.2011, 09:20
Re: Is this working? - by GAMER_PS2 - 13.11.2011, 09:22
Re: Is this working? - by Stigg - 13.11.2011, 09:28
Re: Is this working? - by GAMER_PS2 - 13.11.2011, 09:35
Re: Is this working? - by Stigg - 13.11.2011, 09:42
Re: Is this working? - by GAMER_PS2 - 13.11.2011, 09:47

Forum Jump:


Users browsing this thread: 1 Guest(s)