AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   ban2 scripting (https://forums.alliedmods.net/showthread.php?t=45823)

SAMURAI16 10-12-2006 11:31

ban2 scripting
 
i try to make this plugins..but i have some errors . initial is cmd ban from amx 2006 with some codes implemented . please remake it :)
Code:

#include <amxmodx>
#include <amxmisc>

#define MAXRCONCVARS 20

new g_cvarRcon[MAXRCONCVARS][32]
new g_cvarRconNum
new g_logFile[16]
new g_pauseCon
new Float:g_pausAble
new bool:g_Paused
new bool:g_CanPause
new g_addCvar[] = "amx_cvar add %s"


public disable_natives_check() {
}

public plugin_init() {
  register_plugin("Ban2", "0.2", "?")
  register_concmd("amx_ban", "cmdBan", ADMIN_BAN, "<name or #userid> <minutes> [reason]")

public cmdBan(id, level, cid)
{
  if(!cmd_access(id,level,cid,2))
    return PLUGIN_HANDLED

  new arg[32], len, i = 0, found = 0, myname[32], myauthid[32], kicked = 0
  new player, minutes = 0, reason[128], freason[128]
  new players[32], pnum, startarg
  new flags = get_user_flags(id)

  get_players(players, pnum, "c")
  get_user_name(id, myname, 31)
  get_user_authid(id, myauthid, 31)

  len = read_argv(1, arg, 31)
  if(arg[0] != '#')
    player = find_player("bl", arg)
  else
    player = find_player("k", str_to_num(arg[1]))

  if(player) {
    if(arg[0] != '#' && player != find_player("blj", arg))
      console_print(id, _T("There are more than one client matching to your argument"))
    else {
      new authid[32], arg2[32]
      get_user_authid(player, authid, 31)

      read_argv(2, arg2, 31)
      if(equali(arg2, "ip"))
        startarg = 3
      else
        startarg = 2

      if(startarg == 2 && equal(authid,"HLTV")) {
        console_print(id, _T("Sorry, you can't ban HLTV proxies! Use sv_proxies (server Cvar) instead"))
        return PLUGIN_HANDLED
      }

      get_user_name(player, arg, 31)

      if(get_user_flags(player) & ADMIN_IMMUNITY) {
        console_print(id, _T("Client ^"%s^" has immunity"), arg)
        return PLUGIN_HANDLED
      }

      getBanArgs(startarg, minutes, reason, 127)
      /*if((minutes == 0 || minutes > ADMIN_TEMPBAN_MAXTIME) && ((flags & ADMIN_PERMBAN) == 0)) {
        console_print(id, _T("You can only ban for less than %d minutes."), ADMIN_TEMPBAN_MAXTIME)
        return PLUGIN_HANDLED
      }*/

      if(reason[0])
        format(freason, 127, _T("Banned: %s",player), reason)
      else
        copy(freason, 127, _T("Banned.",player))

      found = 1
      kicked--

      if(get_cvar_num("sv_lan") || startarg == 3) {
        new address[32], address2[32]
        get_user_ip(player, address, 31, 1)
        for(i = 0; i < pnum; i++) {
          get_user_ip(players[i], address2, 31, 1)
          if(equal(address, address2)) {
            server_cmd("kick #%d %s", get_user_userid(players[i]), freason)
            kicked++
          }
        }
        new ipadd[32], CurrentTime[9], hostname[64]
        get_user_ip(player,ipadd,31)
        get_cvar_string("hostname",hostname,63)

        client_print(player,print_chat, "[Banned] %s",hostname)
        client_print(player,print_chat, "[Banned] %s [Steamid] %s @ IP - %s",arg,ipadd,authid)
        get_time("%m/%d/%Y - %H:%M:%S",CurrentTime,31)
        client_print(player,print_chat, "[Banned] %s",CurrentTime)

        console_print(player,"[Banned] %s",hostname)
        console_print(player,"[Banned] %s [Steamid] %s @ IP - %s",arg,ipadd,authid)
        console_print(player,"[Banned] %s",CurrentTime)

        new param[3]
        param[0] = player
        param[1] = minutes
        set_task(0.3, "screen", 5411+player, param, 2)
        //server_cmd("addip %d ^"%s^";wait;writeip", minutes, address)
      }
      else {
        new authid2[32]
        get_user_authid(player, authid, 31)
        for(i = 0; i < pnum; i++) {
          if(players[i] != player) {
            get_user_authid(players[i], authid2, 31)
            if(equal(authid, authid2)) {
              server_cmd("kick #%d %s", get_user_userid(players[i]), freason)
              kicked++
            }
          }
        }
        new ipadd[32], CurrentTime[9], hostname[64]
        get_user_ip(player,ipadd,31)
        get_cvar_string("hostname",hostname,63)
       
        client_print(player,print_chat, "[Banned] %s",hostname)
        client_print(player,print_chat, "[Banned] %s [Steamid] %s @ IP - %s",arg,ipadd,authid)
        get_time("%m/%d/%Y - %H:%M:%S",CurrentTime,31)
        client_print(player,print_chat, "[Banned] %s",CurrentTime)

        console_print(player,"[Banned] %s",hostname)
        console_print(player,"[Banned] %s [Steamid] %s @ IP - %s",arg,ipadd,authid)
        console_print(player,"[Banned] %s",CurrentTime)

        new param[3]
        param[0] = player
        param[1] = minutes
        set_task(0.3, "screen", 5411+player, param, 2)

        //server_cmd("banid %d ^"%s^" kick;wait;writeid", minutes, authid)
      }

      if(found) {
        log_to_file(g_logFile,"Ban: ^"%s<%d><%s><>^" ban and kick ^"%s<%d><%s><>^" (minutes ^"%d^") (reason ^"%s^")",
          myname,get_user_userid(id),myauthid,arg,player,authid,minutes,reason)
        console_print(id, _T("Client ^"%s^" kicked and banned"), arg)
        if(kicked)
          console_print(id, _T("%d other player(s) with same %s kicked and banned as well"), kicked,
            (get_cvar_num("sv_lan") || startarg == 3) ? _T("IP")
                                                      : _T("AuthID") )
      }
    }
  }
  else {
    strtoupper(arg)
    if(contain(arg, ".") == -1) {
      startarg = 2
      if(len == 7 && equali(arg, "STEAM_", 6)) {
        new str[16]
        read_argv(3, str, 15)
        add(arg, 31, ":")
        add(arg, 31, str)
        read_argv(5, str, 15)
        add(arg, 31, ":")
        len = add(arg, 31, str)
        startarg = 6
      }
      if(len > 10 && equali(arg, "STEAM_", 6) && arg[7] == ':' && arg[9] == ':' && str_to_num(arg[10])) {
        if(hasImmunity(arg, 1) == 1) {
          console_print(id, _T("Client ^"%s^" has immunity"), arg)
          return PLUGIN_HANDLED
        }
           
        new authid[32]
        getBanArgs(startarg, minutes, reason, 127)
      }
        return PLUGIN_HANDLED
}

public screen(param[]) {
  new id = param[0]
  if(is_user_connected(id)) {
    client_cmd(id,"snapshot")
    set_task(0.3, "kickplayer", 87457+id, param, 2)
  }
}

public kickplayer(param[]) {
  new id = param[0]
  if(is_user_connected(id)) {
    new ipadd[32]
    get_user_ip(id, ipadd, 31, 1)
    client_cmd(id, "echo ^"Banned.^";disconnect")
    server_cmd("addip %d ^"%s^";wait;writeip", param[1], ipadd)
  } return PLUGIN_HANDLED
}



All times are GMT -4. The time now is 04:58.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.