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

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

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

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

> Правила раздела

Перед созданием новой темы убедитесь, не искал ли кто-нибудь подобный плагин до вас, для этого следует воспользоваться поиском.

Все вновь созданные темы, с названием типа "Помогите найти", "А что это за плагин", "Ищу плагин", "Нужен плагин", "Подскажите пожалуйста название плагина" - будут удалены.
При создании темы постарайтесь максимально понятно сформулировать её заголовок так, чтобы он соответствовал функциям плагина который Вы ищите. В том случае, если Вам не удается сформулировать мысль и правильно расписать всё в теме, воспользуйтесь графическим редактором, к примеру Paint, что бы примерно изобразить функции нужного Вам плагина.

пинг кикер

Статус пользователя lLeDoKl
сообщение 5.4.2014, 18:40
Сообщение #1


Стаж: 13 лет

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

Пинг кикер ребят подскажите где такой скачать. все что знаю о нем это вот что пишет в консоле
Kicked by Console: "Извините, но ваш пинг слишком высокий, повторите попытку позже..." Kicked :"Извините, но ваш пинг слишком высокий, повторите попытку позже..."
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Kristl
сообщение 5.4.2014, 18:42
Сообщение #2


Стаж: 14 лет

Сообщений: 329
Благодарностей: 96
Полезность: 215

Скрытый текст
Код
/* AMX Mod X скрипт.

*

*================================

* Название:  HPK

* Версия перевода: 1.0.0

* Автор перевода: MastaMan

* Источник: amx-server.blogspot.com

*================================

*

Команды:

amx_hpk <макс пинг> <кол-во проверок> <время между проверками> <время перед проверкой>



Переменные:

amx_hpk_ping - Максимальный пинг перед тем, как кто то будет кикнут. По умолчанию 200.

amx_hpk_check - Интервал в секундах, для проверки пинга. По умолчанию 12 секунд.

amx_hpk_tests - Количество проверок, перед тем как игрок с большим пингом будет кикнут. По умолчанию 5.

amx_hpk_delay - Время задержки, после подключения игрока на сервер для проверки пинга. По умолчанию 60 секунд.

amx_hpk_immunity - ВКЛ/ВЫКЛ иммунитет

*****************************************************************************

*/



#include <amxmodx>

#include <amxmisc>



new const PLUGIN[]  = "High Ping Kicker"

new const VERSION[] = "1.0"

new const AUTHOR[]  = "Shadow/Bo0m!"



// Feel free to change this flag

#define HPK_IMMUNE ADMIN_IMMUNITY



// PCvars

new hpk_ping, hpk_check, hpk_tests, hpk_delay, hpk_immunity



new g_Ping[33]

new g_Samples[33]



public plugin_init() {



        register_plugin(PLUGIN, VERSION, AUTHOR)



        register_concmd("amx_hpk","cmdHpk",ADMIN_CVAR,"- configures high ping kicker")



        hpk_ping = register_cvar("amx_hpk_ping","120")

        hpk_check = register_cvar("amx_hpk_check","12")

        hpk_tests = register_cvar("amx_hpk_tests","5")

        hpk_delay = register_cvar("amx_hpk_delay","60")

        hpk_immunity = register_cvar("amx_hpk_immunity","1")



        if (get_pcvar_num(hpk_check) < 5) set_pcvar_num(hpk_check,5)

        if (get_pcvar_num(hpk_tests) < 3) set_pcvar_num(hpk_tests,3)

}



public client_disconnect(id)

        remove_task(id)



public client_putinserver(id) {    

        g_Ping[id] = 0

        g_Samples[id] = 0



        if ( !is_user_bot(id) )

        {

                new param[1]

                param[0] = id

                set_task( 15.0 , "showWarn" , id , param , 1 )

    

                if (get_pcvar_num(hpk_delay) != 0) {

                        set_task( float(get_pcvar_num(hpk_delay)), "taskSetting", id, param , 1)

                }

                else {      

                        set_task( float(get_pcvar_num(hpk_check)) , "checkPing" , id , param , 1 , "b" )

                }

        }

}



public showWarn(param[])

        client_print( param[0] ,print_chat,"Игроки с пингом больше чем %d, будут кикнуты!", get_cvar_num( "amx_hpk_ping" ) )



public taskSetting(param[]) {

        new name[32]

        get_user_name(param[0],name,31)

        set_task( float(get_pcvar_num(hpk_check)) , "checkPing" , param[0] , param , 1 , "b" )

}



kickPlayer(id) {

        new name[32],authid[36]

        get_user_name(id,name,31)

        get_user_authid(id,authid,35)

        client_print(0,print_chat,"Игрок %s кикнут из за высокого пинга",name)

        server_cmd("kick #%d ^"Извините, но ваш пинг слишком высокий, повторите попытку позже...^"",get_user_userid(id))

        log_amx("^"%s<%d><%s>^" кикнут из за высокого пинга (Средний пинг ^"%d^")", name,get_user_userid(id),authid,(g_Ping[id] / g_Samples[id]))

}



public checkPing(param[]) {



        if (get_pcvar_num(hpk_tests) < 3)

                set_pcvar_num(hpk_tests,3)



        new id = param[ 0 ]



        if ( get_user_flags(id) & HPK_IMMUNE && get_pcvar_num(hpk_immunity) == 1 ) {

                remove_task(id)

                client_print(id, print_chat, "Проверка пинга отключена благодаря иммунитету...")

                return PLUGIN_CONTINUE

        }



        new ping, loss



        get_user_ping(id,ping,loss)



        g_Ping[ id ] += ping

        ++g_Samples[ id ]



        if ( (g_Samples[ id ] > get_pcvar_num(hpk_tests)) && (g_Ping[id] / g_Samples[id] > get_pcvar_num(hpk_ping))  )    

                kickPlayer(id)



        return PLUGIN_CONTINUE

}



  

public cmdHpk(id,level,cid) {

        if (!cmd_access(id,level,cid,1))

                return PLUGIN_HANDLED



        if (read_argc() < 6) {

                console_print(id,"Использование: amx_hpk <макс пинг> <кол-во проверок> <время между проверками> <время перед проверкой> <1 для включения иммунитета|0 для отключения")

                console_print(id,"Текущие настройки:")

                console_print(id,"Макс. пинг: %d | Проверок пинга: %d | Частота проверок: %d | Начальная задерка: %d | Иммунитет: %d",get_pcvar_num(hpk_ping),get_pcvar_num(hpk_tests),get_pcvar_num(hpk_check),get_pcvar_num(hpk_delay),get_pcvar_num(hpk_immunity))

                return PLUGIN_HANDLED

        }



        new name[32], authid[36]

        get_user_name(id,name,31)

        get_user_authid(id,authid,35)



        new ping_arg[5], check_arg[5], tests_arg[5], delay_arg[5], immune_arg[5]

        read_argv(1,ping_arg,4)

        read_argv(2,tests_arg,4)

        read_argv(3,check_arg,4)

        read_argv(4,delay_arg,4)

        read_argv(5,immune_arg,4)

  

        new ping = str_to_num(ping_arg)

        new tests = str_to_num(tests_arg)

        new check = str_to_num(check_arg)

        new delay = str_to_num(delay_arg)

        new immune = str_to_num(immune_arg)



        if ( check < 5 ) check = 5

        if ( tests < 3 ) tests = 3



        set_pcvar_num(hpk_ping,ping)

        set_pcvar_num(hpk_tests,tests)

        set_pcvar_num(hpk_check,check)

        set_pcvar_num(hpk_delay,delay)

        set_pcvar_num(hpk_immunity,immune)



        console_print(id,"Следующие параметры для НРК были установлены:")

        console_print(id,"Макс. пинг: %d | Проверок пинга: %d | Частота проверок: %d | Начальная задержка: %d | Иммунитет: %d",get_pcvar_num(hpk_ping),get_pcvar_num(hpk_tests),get_pcvar_num(hpk_check),get_pcvar_num(hpk_delay),get_pcvar_num(hpk_immunity))

        log_amx("^"%s<%d><%s>^" применил параметры - Макс. пинг: %d | Проверок пинга: %d | Частота проверок: %d | Начальная задержка: %d | Иммунитет: %d", name,get_user_userid(id),authid,get_pcvar_num(hpk_ping),get_pcvar_num(hpk_tests),get_pcvar_num(hpk_check),get_pcvar_num(hpk_delay),get_pcvar_num(hpk_immunity))



        return PLUGIN_HANDLED    

}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя lLeDoKl
сообщение 5.4.2014, 19:39
Сообщение #3


Стаж: 13 лет

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

такой вопрос кто может добавить сюда колор чат?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 5.4.2014, 19:56
Сообщение #4


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

lLeDoKl, самому? Там делов на 15 минут...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя lLeDoKl
сообщение 5.4.2014, 19:57
Сообщение #5


Стаж: 13 лет

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

Цитата(Bloo @ 5.4.2014, 21:56) *
lLeDoKl, самому? Там делов на 15 минут...

дело в том что я не умею
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
trollface
сообщение 5.4.2014, 20:03
Сообщение #6
Стаж: 12 лет

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

lLeDoKl,
у меня в подписи нормальный пинг контроль с цветным чатом =)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя WOODYM4N
сообщение 5.4.2014, 20:05
Сообщение #7
Стаж: 12 лет

Сообщений: 40
Благодарностей: 6
Полезность: 54

Цитата(lLeDoKl @ 5.4.2014, 19:57) *
дело в том что я не умею


Скрытый текст
Код
#include <amxmodx>
#include <amxmisc>

enum ChatColor
{
    CHATCOLOR_NORMAL = 1,
    CHATCOLOR_GREEN,
    CHATCOLOR_TEAM_COLOR,
    CHATCOLOR_GREY,
    CHATCOLOR_RED,
    CHATCOLOR_BLUE,
}

new g_TeamName[][] =
{
    "",
    "TERRORIST",
    "CT",
    "SPECTATOR"
}

new g_msgSayText;
new g_msgTeamInfo;

new g_Ping[33]
new g_Samples[33]

public plugin_init()
{
    register_plugin("High Ping Kicker","0.16.2","by BahogaAa")
    register_concmd("amx_hpk","cmdHpk",ADMIN_KICK,"- configures high_ping_kicker plugin")
    register_cvar("amx_hpk_ping","120")
    register_cvar("amx_hpk_check","12")
    register_cvar("amx_hpk_tests","5")
    register_cvar("amx_hpk_delay","60")
  
    if ( get_cvar_num( "amx_hpk_check" ) < 5 ) set_cvar_num( "amx_hpk_check" , 5 )
    if ( get_cvar_num( "amx_hpk_tests" ) < 3 ) set_cvar_num( "amx_hpk_tests" , 3 )
  
      g_msgSayText = get_user_msgid("SayText");
    g_msgTeamInfo = get_user_msgid("TeamInfo");
}

public client_disconnect(id)
  remove_task( id )

public client_putinserver(id)
{    
  g_Ping[id] = 0
  g_Samples[id] = 0

  if ( !is_user_bot(id) )
  {
    new param[1]
    param[0] = id
    set_task( 10.0 , "showWarn" , id , param , 1 )
    
    if (get_cvar_num("amx_hpk_tests") != 0) {
        set_task( float(get_cvar_num("amx_hpk_delay")), "taskSetting", id, param , 1)
    }
    else {        
        set_task( float(get_cvar_num( "amx_hpk_tests" )) , "checkPing" , id , param , 1 , "b" )
    }
    
  }
}

public showWarn(param[])
{
new id = param[ 0 ]
if ( get_user_flags(id) & ADMIN_IMMUNITY ){
colorChat(param[0], CHATCOLOR_NORMAL, "^1[^4Bad ping^1] Проверка пинга отключена благодаря иммунитету")
}else{
colorChat(param[0], CHATCOLOR_NORMAL, "^1[^4Bad ping^1] Игроки с пингом больше^x03 %d ^x01будут кикнуты", get_cvar_num( "amx_hpk_ping" ) )
}
}
  
public taskSetting(param[]) {
    new name[32]
    get_user_name(param[0],name,31)
    set_task( float(get_cvar_num( "amx_hpk_tests" )) , "checkPing" , param[0] , param , 1 , "b" )
}

kickPlayer( id )
{
    new name[32],authid[32]
    get_user_name(id,name,31)
    get_user_authid(id,authid,31)

    colorChat(0, CHATCOLOR_NORMAL, "^1[^4Bad ping^1] Игрок ^3%s^1 отключен из-за высокого пинга",name)
    client_cmd(id,"echo ^"Ваш пинг слишком высокий^";disconnect")
    remove_task(id)
    log_amx("Highpingkick: ^"%s<%d><%s>^" was kicked due highping (Average Ping ^"%d^")",
    name,get_user_userid(id),authid,(g_Ping[id] / g_Samples[id]))

}

public checkPing(param[])
{
  new id = param[ 0 ]

  if ( get_user_flags(id) & ADMIN_IMMUNITY ) return

  new p, l

  get_user_ping( id , p , l )

  g_Ping[ id ] += p
  ++g_Samples[ id ]

  if ( (g_Samples[ id ] > get_cvar_num( "amx_hpk_tests" )) && (g_Ping[id] / g_Samples[id] > get_cvar_num( "amx_hpk_ping" ))  )    
    kickPlayer(id)
}

  
public cmdHpk(id,level,cid){
  if (!cmd_access(id,level,cid,1))
    return PLUGIN_HANDLED
    
  new ping[5]
  new check_arr[5]
  new tests_arr[5]
  new delay_arr[5]
  read_argv(1,ping,4)
  read_argv(2,check_arr,4)
  read_argv(3,tests_arr,4)
  read_argv(4,delay_arr,4)
  
  new check = str_to_num(check_arr)
  new tests = str_to_num(tests_arr)
  new delay = str_to_num(delay_arr)
  
  
  if ( check < 5 ) check = 5
  if ( tests < 3 ) tests = 3
  

  if (read_argc() > 1){
    set_cvar_string("amx_hpk_ping",ping)
  }
  if (read_argc() > 2) {
    set_cvar_num("amx_hpk_check",check)
  }
  if (read_argc() > 3) {
    set_cvar_num("amx_hpk_tests",tests)
  }
  if (read_argc() > 4) {
      set_cvar_num("amx_hpk_delay",delay)
}

  console_print(id,"Syntax: amx_hpk <ping to get kicked> <checks before kicks> <time between checks> <delay before first check in sec.>")
  console_print(id,"Current High_Ping_Kicker Settings:")
  console_print(id,"Maxping: %d  Time between checks: %d Checkcount: %d Delay: %d",get_cvar_num("amx_hpk_ping"),get_cvar_num("amx_hpk_check"),get_cvar_num("amx_hpk_tests"),get_cvar_num("amx_hpk_delay"))
  return PLUGIN_HANDLED    
}

colorChat(id, ChatColor:color, const msg[], {Float,Sql,Result,_}:...)
{
    new team, index, MSG_Type
    new bool:teamChanged = false
    static message[192]
    
    switch(color)
    {
        case CHATCOLOR_NORMAL:
        {
            message[0] = 0x01
        }
        case CHATCOLOR_GREEN:
        {
            message[0] = 0x04
        }
        default:
        {
            message[0] = 0x03
        }
    }
    
    vformat(message[1], 190, msg, 4)
    
    if(id == 0)
    {
        index = findAnyPlayer()
        MSG_Type = MSG_ALL
    }
    else
    {
        index = id
        MSG_Type = MSG_ONE
    }
    
    if(index != 0)
    {
        team = get_user_team(index)
        
        if(color == CHATCOLOR_RED && team != 1)
        {
            messageTeamInfo(index, MSG_Type, g_TeamName[1])
            teamChanged = true
        }
        else if(color == CHATCOLOR_BLUE && team != 2)
        {
            messageTeamInfo(index, MSG_Type, g_TeamName[2])
            teamChanged = true
        }
        else if(color == CHATCOLOR_GREY && team != 0)
        {
            messageTeamInfo(index, MSG_Type, g_TeamName[0])
            teamChanged = true
        }
        
        messageSayText(index, MSG_Type, message)
        
        if(teamChanged)
        {
            messageTeamInfo(index, MSG_Type, g_TeamName[team])
        }
    }
}

messageSayText(id, type, message[])
{
    message_begin(type, g_msgSayText, _, id)
    write_byte(id)        
    write_string(message)
    message_end()
}
    
messageTeamInfo(id, type, team[])
{
    message_begin(type, g_msgTeamInfo, _, id)
    write_byte(id)
    write_string(team)
    message_end()
}

findAnyPlayer()
{
    static players[32], inum, pid

    get_players(players, inum, "ch")

    for (new a = 0; a < inum; a++)
    {
        pid = players[a]

        if(is_user_connected(pid))
        return pid
    }

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