Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Помогите совместить KinDBanSystem с AmxBans

Статус пользователя vasilenko
сообщение 12.11.2014, 9:57
Сообщение #1
Стаж: 13 лет

Сообщений: 5
Благодарностей: 1
Полезность: 0

Нашел на просторах сети плагин KinDBanSystem, который банит читеров сразу по трем признакам SteamID, IP, Nick.

Раньше все работало отлично, но после установки AMXbans плагин перестал работать.

Когда пишешь в консоле команду ban_menu, выбираешь игрока для бана, но дальше ничего не происходит.

При это все баны пишутся в файл addons/amxmodx/configs/ban_list.ini

Цитата
"@ndrux@" "STEAM_0:0:1675781972" "94.231.177.184" "Р’РҐ"
"@ SkiLLeT @ BoJIk :D" "STEAM_0:0:586081528" "31.41.128.112" "Р’РҐ"
"aimbat;j" "STEAM_0:0:2032026712" "176.49.135.61" "Р’РҐ"

В консоле после бана пишет:
Цитата
[AMXBans] amx_ban <время в минутах> <SteamID | ник> <причи

Подскажите можно ли совместить их работу?
Исходники:
Код
#include <amxmodx>
#pragma tabsize 0
#define BAN_FILE "addons/amxmodx/configs/ban_list.ini"
new Array:Name_ban; // Ник
new Array:STEAM_ID_ban; // STEAM_ID
new Array:IP_ban; // IP
new Array:Reason; // Причина
new Count = 0
new reason_ban[33];

new const REASON[][] = {
"ВХ",
"Speed Hack",
"Идиот",
"Аим",
"Выйти из меню"
}

public plugin_init()
{
    register_plugin("New ban system", "1.0", "daywer")
    register_clcmd("ban_me","banan")
    register_clcmd("ban_menu","show_ban_menu")
    set_task(0.1,"load_ban")
}    

public show_ban_menu(id)
{
    if(!is_user_connected(id)) return;
    if(!(get_user_flags(id) & ADMIN_SLAY)) return;
    new title_msg[125]
    if(reason_ban[id]==4)
    {
       formatex(title_msg,charsmax(title_msg),"Выбрать игрока")
    }
    else
    {
       formatex(title_msg,charsmax(title_msg),"Выбрать игрока ^nПричина : %s ",REASON[reason_ban[id]])
    }    
    new Menu = menu_create(title_msg, "ban_handler")
    new Players[32], i_Num, Player

     new name[50], s_Player[10]

     get_players(Players, i_Num)

     for (new i; i < i_Num; i++)
     {  
       new msg_additem[70]
         Player = Players[i];
         get_user_name(Player, name, charsmax(name))
         num_to_str(Player, s_Player, charsmax(s_Player))
       if(get_user_flags(Player) & ADMIN_IMMUNITY)
          formatex(msg_additem,charsmax(msg_additem),"\r[Имунитет]%s",name)
       else
          formatex(msg_additem,charsmax(msg_additem),"\w%s",name)
        
       if(id !=Player)
          menu_additem(Menu, msg_additem, s_Player, 0)
        
    }
    new msg[75]
    if(reason_ban [id]== 4)
    {
       formatex(msg,charsmax(msg),"%s",REASON[reason_ban[id]])
    }
    else
    {
       formatex(msg,charsmax(msg),"%s",REASON[reason_ban[id]+1])
    }    
        
    client_print(id,print_chat,"You display menu")
    menu_setprop(Menu, MPROP_EXITNAME, msg)
    menu_display(id, Menu, 0)
      
}

public ban_handler(id, menu, item)
{
     if (item == MENU_EXIT)
     {
       if(reason_ban[id]==4)
       {
          reason_ban [id]= 0;
          menu_destroy( menu );  
          return PLUGIN_HANDLED
       }
       else
       {
          reason_ban [id]+= 1;
          show_ban_menu(id)
       }    
     }

     new s_Data[6], s_Name[64], i_Access, i_Callback
     menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

     new Player = str_to_num(s_Data)

    if(!is_user_connected(Player)) return PLUGIN_HANDLED;
      
     if (is_user_connected(Player))
    {
       if(get_user_flags(Player) & ADMIN_IMMUNITY)
       {
          client_print(id,print_chat,"У данного игрока имунитет!")
       }    
       else
       {
          ban_player(Player,REASON[reason_ban[id]])    
       }    
     }    

     menu_destroy(menu)
     return PLUGIN_HANDLED
  }
      

public plugin_precache()
{
    Name_ban = ArrayCreate(128, 1);
    STEAM_ID_ban = ArrayCreate(128, 1);
    IP_ban = ArrayCreate(128, 1);
    Reason = ArrayCreate(128, 1);
}

public banan(id)
{
    new msg[100]
    formatex(msg,charsmax(msg),"Аим")
    ban_player(id,msg)
}    

public client_connect( id )
{
    new name[46],ip[23],steam_id[40];
    get_user_ip(id, ip, 22,1)  
    get_user_name(id,name,45)
    get_user_authid(id,steam_id,39)
      
    for (new i = 0; i < Count; i++)
    {
       new Ban_name[46],Ban_ip[23],Ban_steam_id[40],Reas[70];
       ArrayGetString(Name_ban,i, Ban_name, charsmax(Ban_name));
       ArrayGetString(STEAM_ID_ban,i, Ban_steam_id, charsmax(Ban_steam_id));
       ArrayGetString(IP_ban,i, Ban_ip, charsmax(Ban_ip));
        
       if(equali(name,Ban_name))  
       {
          ArrayGetString(Reason,i, Reas, charsmax(Reas));
          server_cmd("kick #%d ^"%s^"", get_user_userid(id),Reas)
          break;
       }    
        
       if(equali(Ban_steam_id,steam_id))  
       {
          ArrayGetString(Reason,i, Reas, charsmax(Reas));
          server_cmd("kick #%d ^"%s^"", get_user_userid(id),Reas)
          break;
       }    
        
       if(equali(Ban_ip,ip))
       {
          ArrayGetString(Reason,i, Reas, charsmax(Reas));
          server_cmd("kick #%d ^"%s^"", get_user_userid(id),Reas)
          break;
       }    
    }
    reason_ban [id]= 0;
}    

stock ban_player(index,reason[])
{
    if(!is_user_connected(index)) return
      
    new name[46],ip[23],steam_id[40];
    get_user_ip(index, ip, 22,1)  
    get_user_name(index,name,45)
    get_user_authid(index,steam_id,39)
    new msg[250]
    formatex(msg,charsmax(msg),"^"%s^" ^"%s^" ^"%s^" ^"%s^"",name,steam_id,ip,reason)
    write_file(BAN_FILE,msg,-1)
    server_cmd("amx_ban #%d 1 ^"Reason: %s!^"", get_user_userid(index),reason)
    set_task(10.0,"load_ban")
}    
      
        
public load_ban()
{
    new File=fopen(BAN_FILE,"r");
    new Counts = 0
    if (File)
    {
       new Text[1024];
       new Name[44];
       new STEAM_ID[40]
       new IP[40]
       new Reasons[100]
        
       while (!feof(File))
       {
          fgets(File,Text,sizeof(Text)-1);
            
          trim(Text);
            
          if (Text[0]==';')  
          {
             continue;
          }
            
          Name[0]=0;
            
          parse(Text,Name,sizeof(Name)-1,STEAM_ID,charsmax(STEAM_ID),IP,charsmax(IP),Reasons,charsmax(Reasons))
            
          ArrayPushString(Name_ban, Name);    
          ArrayPushString(STEAM_ID_ban, STEAM_ID);    
          ArrayPushString(IP_ban, IP);
          ArrayPushString(Reason, Reasons);    

          Counts++;
       }
       Count = Counts
        
       fclose(File);
    }
}


Причина: Длинные тексты выкладываем под спойлер
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: