[FilterScript] ColdFusionZ Administrationv1.0
#1

ColdFusionZ Administration 1.0


Commands: (Total: 24)

/kick [playerid] [reason]
/ban [playerid] [reason]
/setmoney [playerid] [reason]
/meto [playerid]
/tome [playerid]
/akill [playerid]
/explode [playerid]
/ann [message]
/freeze [playerid]
/unfreeze [playerid]
/mute [playerid]
/unmute [playerid]
/login [password]
/register [password]
/setadmin [playerid] [level]
/sethp [playerid] [amount]
/setarmour [playerid] [amount]
/whois [playerid]
/achat [message]
/slap [playerid]
/gmx
/amsg
/ahelp
/cchat


Short description of the commands:

Kick - Kicks the player from the server, also shows the reason.
Ban - Bans the player from the server, also shows the reason.
Setmoney - Gives the wanted amount of money to the selected player.
Meto - Teleports you to the person.
Tome - Teleports the person to you.
Akill - Kills the player.
Explode - Creates an explosion at a player. (Explosion Range: 3.00)
Ann - Shows a global announcement. (PlayerName: message)
Freeze - Freezes the player.
Unfreeze - Unfreezes the player.
Mute - Mutes the player-
Unmute - Unmutes the player-
Login - Logs you in and allows you to save your statistics.
Register - Creates an account with your playername.
Setadmin - Gives administrator rights to the selected player. (Levels: 1-3)
Sethp - Sets the players health to the amount you want.
Setarmour - Sets the players armour to the amount you want.
Whois - Shows the players name, ping, IP, armour, health, money and skin ID.
Achat - Sends a message to all online admins.
Slap - Slaps the player, lifts him up by 5.00 meters.
gmx - GMX's the server.
Amsg - Sends an admin message to the server. ([Admin]: Welcome to my server)
Ahelp - Shows a list of admin commands, also the admin level you must have in-order to use them.
Cchat - Clears the entire chat-box.

Saved on player disconnect: Admin level, player's kicks & bans.
Note: Only RCON & level 3 admins can use the '/setadmin' command.


Includes Needed:-


Dutils- http://dracoblue.net/download/dutils-110/30/

Download: - http://www.mediafire.com/?pea1v0lxb2b68b6- [Admin.pwn]
____________

Код:
    /*
    ________________________________________________________________________________
                           ColdFusionZ Administrationv1.0
                              by RanSEE
    ________________________________________________________________________________
                                 Credits:
                                 ________
                                   RanSEE
                                   ******
                                   Brook
                                   T_Pain
    ________________________________________________________________________________
    */
     
    #include <a_samp>
    #include <dutils>
    #include <dudb>
    #include <float>
     
    #define COLOR_SYSTEM 0xEFEFF7AA
    #define COLOR_RED 0xFF0000AA
    #define COLOR_GREY 0xAFAFAFAA
    #define COLOR_WHITE 0xFFFFFFAA
    #define COLOR_LIGHTBLUE 0x33CCFFAA
    #define COLOR_PINK 0xE100E1FF
    #define COLOR_GREY 0xAFAFAFAA
    #define FILTERSCRIPT
     
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
    #if defined FILTERSCRIPT
    #pragma unused ret_memcpy
    #pragma tabsize 4
     
    enum PlayerInfo
    {
        AdminLevel,
        Logged,
        Muted,
        Kicks,
        Bans
    }
     
    new PlayerData[MAX_PLAYERS][PlayerInfo];
     
    forward AdminMessage(color, string[]);
     
    public OnFilterScriptInit()
    {
        print(" BasicAdmin 1.0 loaded");
        SendClientMessageToAll(COLOR_LIGHTBLUE, "SERVER NOTICE: (v1.0) BasicAdmin loaded!");
        return true;
    }
     
    public OnFilterScriptExit()
    {
        print(" BasicAdmin 1.0 loaded");
        SendClientMessageToAll(COLOR_LIGHTBLUE, "SERVER NOTICE: (v1.0) BasicAdmin un-loaded!");
        return true;
    }
     
    #else
     
    main()
    {
        print(" (v1.0) BasicAdmin loaded");
    }
     
    #endif
     
    public OnPlayerText(playerid, text[])
    {
        if(PlayerData[playerid][Muted] == 1)
        {
            SendClientMessage(playerid, COLOR_RED, "Unable to talk. (REASON: Muted)");
            return 0;
        }
        return true;
    }
     
    public OnPlayerConnect(playerid)
    {
          if(!udb_Exists(PlayerName(playerid)))
        {
            SendClientMessage(playerid, COLOR_WHITE, "Your nickname is not registered, please use /register [password].");
            return true;
        }
        if(udb_Exists(PlayerName(playerid)))
        {
            SendClientMessage(playerid, COLOR_WHITE, "Your nickname is registered, please use /login [password].");
            return true;
        }
        PlayerData[playerid][Logged] = 0;
        PlayerData[playerid][Muted] = 0;
        PlayerData[playerid][AdminLevel] = 0;
        PlayerData[playerid][Kicks] = 0;
        PlayerData[playerid][Bans] = 0;
        return true;
    }
     
    public OnPlayerDisconnect(playerid, reason)
    {
        new string[256];
     
        if(PlayerData[playerid][Logged])
        {
            dUserSetINT(PlayerName(playerid)).("AdminLevel", PlayerData[playerid][AdminLevel]);
            dUserSetINT(PlayerName(playerid)).("PlayerKicks", PlayerData[playerid][Kicks]);
            dUserSetINT(PlayerName(playerid)).("PlayerBans", PlayerData[playerid][Bans]);
          }
        switch(reason)
          {
              case 0: format(string, sizeof(string), "%s has left the server. (Timeout)", PlayerName(playerid));
              case 1: format(string, sizeof(string), "%s has left the server. (Left)", PlayerName(playerid));
              case 2: format(string, sizeof(string), "%s has left the server. (Kicked)", PlayerName(playerid));
          }
        SendClientMessageToAll(COLOR_GREY, string);
        PlayerData[playerid][Logged] = 0;
        PlayerData[playerid][Muted] = 0;
        return false;
    }
     
    dcmd_kick(playerid,params[])
    {
      if(PlayerData[playerid][AdminLevel] >= 1)
      {
      new tmp[256], idx;
      tmp = strtok(params,idx);
      if(!strlen(tmp))
      {
          SendClientMessage(playerid,COLOR_GREY,"Usage: /kick [playerid] [reason]");
          return true;
      }
      new pid = strval(tmp);
      if(!IsPlayerConnected(pid))
      {
          SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid.");
          return true;
      }
      tmp = strrest(params,idx);
      new pname[MAX_PLAYER_NAME], pname2[MAX_PLAYER_NAME], string[256];
      GetPlayerName(pid, pname, sizeof(pname));
      GetPlayerName(playerid, pname2, sizeof(pname2));
      tmp = strrest(params, idx);
      format(string, sizeof(string), "NOTICE: %s was kicked by Administrator %s. (REASON: %s)", pname, pname2, tmp);
      SendClientMessageToAll(COLOR_RED, string);
      PlayerData[pid][Kicks]++;
      Kick(pid);
      return true;
      }
      else return SendClientMessage(playerid, COLOR_GREY, "NOTICE: This is an admin (level 1-3) command only.");
    }
     
    dcmd_ban(playerid,params[])
    {
      if(PlayerData[playerid][AdminLevel] >= 2)
      {
      new tmp[256], idx;
      tmp = strtok(params, idx);
      if(!strlen(tmp))
      {
          SendClientMessage(playerid,COLOR_GREY,"Usage: /ban [playerid] [reason]");
          return true;
      }
      new pid = strval(tmp);
      if(!IsPlayerConnected(pid))
      {
          SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid.");
          return true;
      }
      tmp = strrest(params,idx);
      new pname[MAX_PLAYER_NAME], pname2[MAX_PLAYER_NAME], string[256];
      GetPlayerName(pid, pname, sizeof(pname));
      GetPlayerName(playerid, pname2, sizeof(pname2));
      tmp = strrest(params,idx);
      format(string, sizeof(string), "NOTICE: %s was banned by Administrator %s. (REASON: %s)", pname, pname2, tmp);
      SendClientMessageToAll(COLOR_RED, string);
      PlayerData[pid][Bans]++;
      Ban(pid);
      return true;
      }
      else return SendClientMessage(playerid, COLOR_GREY, "NOTICE: This is an admin (level 2-3) command only.");
    }
     
     
    dcmd_setmoney(playerid,params[])
    {
        if(PlayerData[playerid][AdminLevel] >= 3)
        {
        new tmp[256], idx;
        tmp = strtok(params,idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, COLOR_GREY, "Usage: /setmoney [playerid] [amount]");
            return true;
        }
        new pid = strval(tmp);
        if(!IsPlayerConnected(pid))
        {
            SendClientMessage(playerid, COLOR_GREY, "Incorrect playerid.");
            return true;
        }
        tmp = strtok(params,idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, COLOR_GREY, "Usage: /setmoney [playerid] [amount]");
            return true;
        }
        new amount = strval(tmp), string[256], pname[MAX_PLAYER_NAME], pname2[MAX_PLAYER_NAME];
        GetPlayerName(pid, pname, sizeof(pname));
        GetPlayerName(playerid, pname2, sizeof(pname2));
        format(string, sizeof(string), "NOTICE: %s was given $%d by Administrator %s.", pname2, amount, pname);
        SendClientMessageToAll(COLOR_WHITE, string);
        GivePlayerMoney(pid, amount);
        return true;
        }
        else return SendClientMessage(playerid, COLOR_GREY, "NOTICE: This is an admin (level 3) command only.");
    }
     
    dcmd_meto(playerid,params[])
    {
        if(PlayerData[playerid][AdminLevel] >= 2)
        {
        new idx,tmpit[256];
        tmpit = strtok(params,idx);
        if(!strlen(tmpit))
        {
            SendClientMessage(playerid,COLOR_GREY,"Usage: /meto [playerid]");
            return true;
        }
        new pid = strval(tmpit);
        if(!IsPlayerConnected(pid))
        {
            SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid.");
            return true;
        }
        new Float:playerpos[4],pint;
        GetPlayerPos(pid,playerpos[0],playerpos[1],playerpos[2]);
        GetPlayerFacingAngle(pid,playerpos[3]);
        pint = GetPlayerInterior(pid);
        if(playerpos[3] > 180.0)
        {
            playerpos[3]-=180.0;
        }
        else
        {
            playerpos[3]+=180.0;
        }
        GetXYBehindPlayer(pid,playerpos[0],playerpos[1],3.0);
        SetPlayerPos(playerid,playerpos[0],playerpos[1],playerpos[2]);
        SetPlayerFacingAngle(playerid,playerpos[3]);
        SetPlayerFacingAngle(playerid,playerpos[3]);
        SetPlayerInterior(playerid,pint);
        return true;
        }
        else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 2-3) command only.");
    }
     
    dcmd_tome(playerid,params[])
    {
        if(PlayerData[playerid][AdminLevel] >= 2)
        {
        new idx,tmpit[256];
        tmpit = strtok(params,idx);
     
        if(!strlen(tmpit))
        {
            SendClientMessage(playerid,COLOR_GREY,"Usage: /tome [playerid]");
            return true;
        }
        new pid = strval(tmpit);
     
        if(!IsPlayerConnected(pid))
        {
            SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid.");
            return true;
        }
        new Float:playerpos[4],pint;
        GetPlayerPos(playerid,playerpos[0],playerpos[1],playerpos[2]);
        GetPlayerFacingAngle(playerid,playerpos[3]);
        pint = GetPlayerInterior(playerid);
        if(playerpos[3] > 180.0)
        {
            playerpos[3]-=180.0;
        }
        else
        {
            playerpos[3]+=180.0;
        }
        GetXYInFrontOfPlayer(playerid,playerpos[0],playerpos[1],3.0);
        SetPlayerPos(pid,playerpos[0],playerpos[1],playerpos[2]);
        SetPlayerFacingAngle(pid,playerpos[3]);
        SetPlayerInterior(pid,pint);
        return true;
        }
        else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 2-3) command only.");
    }
     
    dcmd_ann(playerid,params[])
    {
        if(PlayerData[playerid][AdminLevel] >= 1)
        {
            new tmp[256],idx;
            new string[256];
            tmp = strtok(params,idx);
            if(!strlen(params))
            return
            SendClientMessage(playerid,COLOR_GREY,"Usage: /ann [text]");
            format(string, sizeof(string), "~r~%s: ~w~%s",PlayerName(playerid), tmp);
            GameTextForAll(string, 5000, 3);
            return true;
        }
        else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 1-3) command only.");
    }
     
    dcmd_akill(playerid,params[])
    {
      if(PlayerData[playerid][AdminLevel] >= 3)
      {
      new tmp[256],idx;
      tmp = strtok(params,idx);
      if(!strlen(tmp))
      {
          SendClientMessage(playerid,COLOR_GREY,"Usage: /akill [playerid]");
          return true;
      }
      new pid = strval(tmp);
      if(!IsPlayerConnected(pid))
      {
          SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid.");
          return true;
      }
      new pname[MAX_PLAYER_NAME],pname2[MAX_PLAYER_NAME],string[256];
      GetPlayerName(pid,pname,sizeof(pname));
      GetPlayerName(playerid,pname2,sizeof(pname2));
      tmp = strrest(params,idx);
      format(string,sizeof(string),"%s was killed by Administrator %s.",pname2,pname);
      SendClientMessageToAll(COLOR_WHITE,string);
      SetPlayerHealth(pid,0.00);
      return true;
      }
      else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 3) command only");
    }
     
    dcmd_explode(playerid,params[])
    {
      if(PlayerData[playerid][AdminLevel] >= 2)
      {
      new tmp[256],idx;
      tmp = strtok(params,idx);
      if(!strlen(tmp))
      {
          SendClientMessage(playerid,COLOR_GREY,"Usage: /explode [playerid]");
          return true;
      }
      new pid = strval(tmp);
      if(!IsPlayerConnected(pid))
      {
          SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid.");
          return true;
      }
      tmp = strrest(params,idx);
      new pname[MAX_PLAYER_NAME],pname2[MAX_PLAYER_NAME],string[256],Float:X,Float:Y,Float:Z;
      GetPlayerName(pid,pname,sizeof(pname));
      GetPlayerName(playerid,pname2,sizeof(pname2));
      GetPlayerName(playerid,pname2,24);
      GetPlayerName(pid,pname,24);
      if(!IsPlayerInAnyVehicle(pid))
      GetPlayerPos(pid,X,Y,Z);
      else
      GetVehiclePos(GetPlayerVehicleID(pid),X,Y,Z);
      for(new i = 1; i <= 5; i++)
      CreateExplosion(X,Y,Z,3,0);
      format(string,sizeof(string),"%s has been exploded by Administrator %s.",pname2,pname);
      SendClientMessageToAll(COLOR_WHITE,string);
      return true;
      }
      else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 2-3) command only");
    }
     
    dcmd_mute(playerid,params[])
    {
      if(PlayerData[playerid][AdminLevel] >= 1)
      {
      new tmp[256],idx;
      tmp = strtok(params,idx);
      if(!strlen(tmp))
      {
          SendClientMessage(playerid,COLOR_GREY,"Usage: /mute [playerid]");
          return true;
      }
      new pid = strval(tmp);
      if(!IsPlayerConnected(pid))
      {
          SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid.");
          return true;
      }
      tmp = strrest(params,idx);
      new pname[MAX_PLAYER_NAME],pname2[MAX_PLAYER_NAME],string[256];
      GetPlayerName(pid,pname,sizeof(pname));
      GetPlayerName(playerid,pname2,sizeof(pname2));
      tmp = strrest(params,idx);
      format(string,sizeof(string),"%s has been muted by Administrator %s.",pname,pname2);
      SendClientMessageToAll(COLOR_WHITE,string);
      PlayerData[pid][Muted] = 1;
      return true;
      }
      else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 1-3) command only");
    }
     
    dcmd_unmute(playerid,params[])
    {
      if(PlayerData[playerid][AdminLevel] >= 1)
      {
      new tmp[256],idx;
      tmp = strtok(params,idx);
      if(!strlen(tmp))
      {
          SendClientMessage(playerid,COLOR_GREY,"Usage: /unmute [playerid]");
          return true;
      }
      new pid = strval(tmp);
      if(!IsPlayerConnected(pid))
      {
          SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid.");
          return true;
      }
      tmp = strrest(params,idx);
      new pname[MAX_PLAYER_NAME],pname2[MAX_PLAYER_NAME],string[256];
      GetPlayerName(pid,pname,sizeof(pname));
      GetPlayerName(playerid,pname2,sizeof(pname2));
      format(string,sizeof(string),"%s has been voiced by Administrator %s.",pname,pname2);
      SendClientMessageToAll(COLOR_WHITE,string);
      PlayerData[pid][Muted] = 0;
      return true;
      }
      else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 1-3) command only");
    }
     
    dcmd_freeze(playerid,params[])
    {
      if(PlayerData[playerid][AdminLevel] >= 1)
      {
      new tmp[256],idx;
      tmp = strtok(params,idx);
      if(!strlen(tmp))
      {
          SendClientMessage(playerid,COLOR_GREY,"Usage: /freeze [playerid]");
          return true;
      }
      new pid = strval(tmp);
      if(!IsPlayerConnected(pid))
      {
          SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid.");
          return true;
      }
      tmp = strrest(params,idx);
      new pname[MAX_PLAYER_NAME],pname2[MAX_PLAYER_NAME],string[256];
      GetPlayerName(pid,pname,sizeof(pname));
      GetPlayerName(playerid,pname2,sizeof(pname2));
      format(string,sizeof(string),"%s has been frozen by Administrator %s.",pname,pname2);
      SendClientMessageToAll(COLOR_WHITE,string);
      TogglePlayerControllable(pid,0);
      return true;
      }
      else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 1-3) command only.");
    }
     
    dcmd_unfreeze(playerid,params[])
    {
        if(PlayerData[playerid][AdminLevel] >= 1)
        {
            if(!strlen(params))
            return
            SendClientMessage(playerid,COLOR_GREY,"Usage: /unfreeze [playerid]");
              new pid;
            if(!IsNumeric(params))
            pid = ReturnPlayerID(params);
            else
            pid = strval(params);
            if(IsPlayerConnected(pid) && pid != INVALID_PLAYER_ID)
            {
                new pname[MAX_PLAYER_NAME],pname2[MAX_PLAYER_NAME],string[256];
                  GetPlayerName(pid,pname,sizeof(pname));
                  GetPlayerName(playerid,pname2,sizeof(pname2));
                format(string,256,"%s has been unfreezed by Administrator %s.",pname,pname2);
                SendClientMessageToAll(COLOR_WHITE,string);
                return
                TogglePlayerControllable(pid,1);
            }
            else return SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid.");
        }
        else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 1-3) command only.");
    }
     
    dcmd_setadmin(playerid,params[])
    {
        if(IsPlayerAdmin(playerid) || PlayerData[playerid][AdminLevel] == 3)
        {
        new tmp[256],idx;
        tmp = strtok(params,idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid,COLOR_GREY,"Usage: /setadmin [playerid] [level]");
            return true;
        }
        new pid = strval(tmp);
        if(!IsPlayerConnected(pid))
        {
            SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid.");
            return true;
        }
        tmp = strtok(params,idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid,COLOR_GREY,"Usage: /setadmin [playerid] [level]");
            return true;
        }
        new level = strval(tmp);
        if(level > 3)
        {
          SendClientMessage(playerid,COLOR_GREY,"Error: Maximum level - 3");
          return true;
        }
        new string[256], pname[MAX_PLAYER_NAME], pname2[MAX_PLAYER_NAME];
        GetPlayerName(pid,pname,sizeof(pname));
        GetPlayerName(playerid,pname2,sizeof(pname2));
        format(string,sizeof(string),"Congratulations, %s has made you an administrator (Level: %d)",pname2,level);
        SendClientMessage(pid,COLOR_PINK,string);
        PlayerData[pid][AdminLevel] = level;
        return true;
        }
        else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 3) command only.");
    }
     
    dcmd_sethp(playerid,params[])
    {
        if(PlayerData[playerid][AdminLevel] >= 2)
        {
        new tmp[256],idx;
        tmp = strtok(params,idx);
        if(!strlen(tmp))
        {
             SendClientMessage(playerid,COLOR_GREY,"Usage: /sethp [playerid] [amount]");
             return true;
        }
        new pid = strval(tmp);
        if(!IsPlayerConnected(pid))
        {
            SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid.");
            return true;
        }
        tmp = strtok(params,idx);
        if(!strlen(tmp))
        {
             SendClientMessage(playerid,COLOR_GREY,"Usage: /sethp [playerid] [amount]");
             return true;
        }
        new newhealth = strval(tmp),string[256],pname[MAX_PLAYER_NAME],pname2[MAX_PLAYER_NAME];
        GetPlayerName(pid,pname,sizeof(pname));
        GetPlayerName(playerid,pname2,sizeof(pname2));
        format(string,sizeof(string),"Your health has been set to %d by Administrator %s.",newhealth, pname2);
        SendClientMessage(pid, COLOR_WHITE,string);
        SetPlayerHealth(pid,newhealth);
        return true;
        }
        else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 2-3) command only.");
    }
     
    dcmd_setarmour(playerid,params[])
    {
        if(PlayerData[playerid][AdminLevel] >= 2)
        {
        new tmp[256],idx;
        tmp = strtok(params,idx);
        if(!strlen(tmp))
        {
             SendClientMessage(playerid,COLOR_GREY,"Usage: /setarmour [playerid] [amount]");
            return true;
        }
        new pid = strval(tmp);
        if(!IsPlayerConnected(pid))
        {
            SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid.");
            return true;
        }
        tmp = strtok(params,idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid,COLOR_GREY,"Usage: /setarmour [playerid] [amount]");
            return true;
        }
        new newarmour = strval(tmp),string[256],pname[MAX_PLAYER_NAME],pname2[MAX_PLAYER_NAME];
        GetPlayerName(pid,pname,sizeof(pname));
        GetPlayerName(playerid,pname2,sizeof(pname2));
        format(string,sizeof(string),"Your armour has been set to %d by Administrator %s.",newarmour, pname2);
        SendClientMessage(pid, COLOR_WHITE,string);
        SetPlayerArmour(pid,newarmour);
        return true;
        }
        else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 2-3) command only.");
    }
     
    dcmd_whois(playerid,params[])
    {
        if(PlayerData[playerid][AdminLevel] >= 2)
        {
        new tmp[256],idx;
        tmp = strtok(params,idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid,COLOR_GREY,"Usage: /whois [playerid]");
            return true;
        }
        new pid = strval(tmp);
        if(!IsPlayerConnected(pid))
        {
            SendClientMessage(playerid,COLOR_GREY,"Incorrect playerid.");
            return true;
        }
        new Float:armour, Float:health;
        new string[256], vehicleid, pname[MAX_PLAYER_NAME], IP[15], pname2[MAX_PLAYER_NAME];
        GetPlayerName(pid,pname,sizeof(pname));
        GetPlayerName(playerid,pname2,sizeof(pname2));
        GetPlayerArmour(pid,armour);
        GetPlayerHealth(pid,health);
        GetPlayerIp(pid, IP, 15);
        vehicleid = GetVehicleModel(vehicleid);
        format(string,sizeof(string), "WHOIS: Player name: %s ",pname);
        SendClientMessage(playerid, COLOR_GREY,string);
        format(string,sizeof(string), "WHOIS: IP: %s || Ping: %d", IP, GetPlayerPing(pid));
        SendClientMessage(playerid, COLOR_GREY,string);
        format(string,sizeof(string), "WHOIS: Skin ID: %d || Money: $%d",GetPlayerSkin(pid), GetPlayerMoney(pid));
        SendClientMessage(playerid, COLOR_GREY,string);
        format(string,sizeof(string), "WHOIS: Armour: %0.0f || Health: %0.0f", armour, health);
        SendClientMessage(playerid, COLOR_GREY,string);
        return true;
        }
        else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 2-3) command only.");
    }
     
    dcmd_achat(playerid,params[])
    {
        if(PlayerData[playerid][AdminLevel] >= 1)
        {
            new tmp[256], string[256], idx, pname2[MAX_PLAYERS];
            tmp = strtok(params, idx);
        
            if(!strlen(tmp))
            {
                SendClientMessage(playerid,COLOR_GREY,"Usage: /achat [text]");
                return true;
            }
            GetPlayerName(playerid,pname2,sizeof(pname2));
            format(string, sizeof(string), "[ADMIN] %s: %s", pname2, params);
              AdminMessage(COLOR_PINK, string);
            return true;
        }
        else return SendClientMessage(playerid, COLOR_GREY,"NOTICE: This is an admin (level 1-3) command only.");
    }
     
    dcmd_slap(playerid,params[])
    {
          if(PlayerData[playerid][AdminLevel] == 3)
        {
        new tmp[256],idx;
        tmp = strtok(params,idx);
        new pid = strval(tmp);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, COLOR_GREY, "Usage: /slap [playerid]");
            return true;
        }
        if(IsPlayerConnected(pid))
        {
            new Float:posX, Float:posY, Float:posZ, Float:health;
            new pname[MAX_PLAYER_NAME], pname2[MAX_PLAYER_NAME], string[256];
            GetPlayerName(pid,pname,sizeof(pname));
            GetPlayerName(playerid,pname2,sizeof(pname2));
            GetPlayerHealth(pid, health);
            SetPlayerHealth(pid, health-5);
            GetPlayerPos(pid, posX, posY, posZ);
            SetPlayerPos(pid, posX, posY, posZ+5);
            SetCameraBehindPlayer(pid);
            format(string,sizeof(string),"%s has been slapped by Administrator %s.",pname,pname2);
            SendClientMessageToAll(COLOR_WHITE, string);
            return true;
        }
        else return SendClientMessage(playerid, COLOR_GREY, "Incorrect playerid.");
        }
        else return SendClientMessage(playerid, COLOR_GREY, "NOTICE: This is an admin (level 3) command only.");
    }
     
    dcmd_register(playerid,params[])
    {
        if(PlayerData[playerid][Logged])
        return SendClientMessage(playerid,COLOR_WHITE,"Already logged in.");
        if(udb_Exists(PlayerName(playerid)))
        return SendClientMessage(playerid,COLOR_WHITE,"Account already exists, please use /login [password].");
        if(strlen(params)==0)
        return SendClientMessage(playerid,COLOR_GREY,"Usage: /register [password]");
        if(udb_Create(PlayerName(playerid),params))
        return SendClientMessage(playerid,COLOR_WHITE,"Succesfully register. Please login now, using /login [password]");
        return true;
    }
     
    dcmd_login(playerid,params[])
    {
        if(PlayerData[playerid][Logged])
        {
            SendClientMessage(playerid,COLOR_WHITE,"Already logged in.");
            return true;
        }
        if(!udb_Exists(PlayerName(playerid)))
        {
            SendClientMessage(playerid,COLOR_WHITE,"Account doesn't exist, please use /register [password].");
            return true;
        }
        if(!strlen(params))
        {
            SendClientMessage(playerid,COLOR_GREY,"Usage: /login password");
            return true;
        }
        if(udb_CheckLogin(PlayerName(playerid),params))
        {
            PlayerData[playerid][Logged] = 1;
            PlayerData[playerid][Kicks] = (dUserINT(PlayerName(playerid)).("PlayerKicks"));
            PlayerData[playerid][Bans] = (dUserINT(PlayerName(playerid)).("PlayerBans"));
            PlayerData[playerid][AdminLevel] = (dUserINT(PlayerName(playerid)).("AdminLevel"));
            SendClientMessage(playerid,COLOR_WHITE,"Successfully logged in!");
            return true;
        }
        else return SendClientMessage(playerid,COLOR_WHITE,"Incorrect password!");
    }
     
    dcmd_amsg(playerid,params[])
    {
        if(PlayerData[playerid][AdminLevel] == 3)
        {
            new tmp[256], idx;
            new string[256];
            tmp = strtok(params, idx);
            if(!strlen(params))
            return
            SendClientMessage(playerid, COLOR_GREY,"Usage: /amsg [text]");
            format(string, sizeof(string), "[Admin]: %s", params);
            SendClientMessageToAll(COLOR_LIGHTBLUE, string);
            return true;
        }
        else return SendClientMessage(playerid, COLOR_GREY,"NOTICE: This is an admin (level 3) command only.");
    }
     
    dcmd_gmx(playerid,params[])
    {
        #pragma unused params
     
        if(PlayerData[playerid][AdminLevel] == 3)
        {
            GameModeExit();
            return true;
        }
        else return SendClientMessage(playerid,COLOR_GREY, "NOTICE: This is an admin (level 3) command only.");
    }
     
    public OnPlayerCommandText(playerid, cmdtext[])
    {
        dcmd(kick, 4, cmdtext);
          dcmd(ban, 3, cmdtext);
          dcmd(setmoney, 8, cmdtext);
        dcmd(meto, 4, cmdtext);
        dcmd(tome, 4, cmdtext);
        dcmd(akill, 5, cmdtext);
        dcmd(explode, 7, cmdtext);
        dcmd(ann,3,cmdtext);
        dcmd(freeze, 6, cmdtext);
        dcmd(unfreeze, 8, cmdtext);
        dcmd(mute, 4, cmdtext);
        dcmd(unmute, 6, cmdtext);
        dcmd(login, 5, cmdtext);
        dcmd(register, 8, cmdtext);
        dcmd(setadmin, 8, cmdtext);
        dcmd(sethp, 5, cmdtext);
        dcmd(setarmour, 9, cmdtext);
        dcmd(whois, 5, cmdtext);
        dcmd(achat, 5, cmdtext);
        dcmd(slap, 4, cmdtext);
        dcmd(gmx, 3, cmdtext);
        dcmd(amsg, 4, cmdtext);
     
        if(strcmp(cmdtext,"/ahelp", true) == 0)
        {
            if(PlayerData[playerid][AdminLevel] >= 1)
              {
                  SendClientMessage(playerid,COLOR_LIGHTBLUE, "    *|* Administrator Commands *|*");
                SendClientMessage(playerid,COLOR_WHITE, "Level 1+: /kick /(un)freeze /(un)mute /ann /cchat /achat");
                SendClientMessage(playerid,COLOR_WHITE, "Level 2+: /ban /tome /meto /explode /whois /setarmour /sethp");
                SendClientMessage(playerid,COLOR_WHITE, "Lead (3): /setadmin /gmx /amsg /slap /akill");
                return true;
            }
            else return SendClientMessage(playerid,COLOR_GREY,"NOTICE: This is an admin (level 1-3) command only");
        }
     
          if(strcmp(cmdtext, "/cchat", true) == 0)
        {
            if(PlayerData[playerid][AdminLevel] >= 1)
            {
                for(new i = 1; i <= 49; i++)
                {
                    SendClientMessageToAll(0, "\n");
                }
                SendClientMessageToAll(COLOR_SYSTEM, "The chat-screen was cleared by an admin.");
                return true;
            }
              else return SendClientMessage(playerid, COLOR_GREY,"NOTICE: This is an admin (level 1-3) command only");
        }
        return 0;
    }
     
    public AdminMessage(color,string[])
    {
        for(new i = 0; i < GetMaxPlayers(); i++)
        {
            if(IsPlayerConnected(i))
            {
                if(PlayerData[i][AdminLevel] >= 1)
                {
                    SendClientMessage(i, color, string);
                }
            }
        }
        return true;
    }
     
    stock IsNumeric(const string[])
    {
        for (new i = 0, j = strlen(string); i < j; i++)
        if (string[i] > '9' || string[i] < '0')
        return 0;
        return true;
    }
     
    stock PlayerName(playerid)
    {
        new playername[MAX_PLAYER_NAME];
        GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
          return playername;
    }
     
    stock ReturnPlayerID(PlayerName[])
    {
        for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i))
        {
            new name[24]; GetPlayerName(i,name,24);
            if(strfind(name,PlayerName,true)!=-1)
            return i;
        }
        return INVALID_PLAYER_ID;
    }
     
    stock GetXYInFrontOfPlayer(playerid,&Float:x,&Float:y,Float:dis)
    {
        new Float:pos[3];
        GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
        GetPlayerFacingAngle(playerid,pos[2]);
        GetXYInFrontOfPoint(pos[0],pos[1],x,y,pos[2],dis);
    }
     
    stock GetXYInFrontOfPoint(Float:x,Float:y,&Float:x2,&Float:y2,Float:angle,Float:distance)
    {
        x2 = x + (distance * floatsin(-angle,degrees));
        y2 = y + (distance * floatcos(-angle,degrees));
    }
     
    stock strrest(const string[], index)
    {
        new length = strlen(string),offset = index,result[256];
        while ((index < length) && ((index - offset) < (sizeof(result) - 1)) && (string[index] > '\r'))
        {
            result[index - offset] = string[index];
            index++;
        }
        result[index - offset] = EOS;
        return result;
    }
     
    stock GetXYBehindPlayer(playerid,&Float:x,&Float:y,Float:dis)
    {
        new Float:pos[3];
        GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
        GetPlayerFacingAngle(playerid,pos[2]);
        GetXYBehindPoint(pos[0],pos[1],x,y,pos[2],dis);
    }
     
    stock GetXYBehindPoint(Float:x,Float:y,&Float:x2,&Float:y2,Float:angle,Float:distance)
    {
        x2 = x - (distance * floatsin(-angle,degrees));
        y2 = y - (distance * floatcos(-angle,degrees));
    }
Reply
#2

Very nice!
Reply
#3

Wow man, that's a great script.
How long did it take to make in total ?
Reply
#4

Nice
Reply
#5

@sniperwars,
it took me 4 hours.
Soon i've release the second version too.
Reply
#6

i have errors
C:\Program Files (x86)\Rockstar Games\Samp Server\filterscripts\admin.pwn(8 : error 012: invalid function call, not a valid address
C:\Program Files (x86)\Rockstar Games\Samp Server\filterscripts\admin.pwn(8 : warning 215: expression has no effect
C:\Program Files (x86)\Rockstar Games\Samp Server\filterscripts\admin.pwn(8 : error 001: expected token: ";", but found ")"
C:\Program Files (x86)\Rockstar Games\Samp Server\filterscripts\admin.pwn(8 : error 029: invalid expression, assumed zero
C:\Program Files (x86)\Rockstar Games\Samp Server\filterscripts\admin.pwn(8 : fatal error 107: too many error messages on one line
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)