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

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

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

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

5 страниц V  « 3 4 5

High Ping Kicker

, Плагин для контроля пинга
Статус пользователя STR@TEG
сообщение 27.8.2010, 23:41
Сообщение #61
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Цитата(UnLimited @ 28.8.2010, 0:51) *
1. Русифицированный плагин.
Подробнее.

Цитата(UnLimited @ 28.8.2010, 0:51) *
2. Цветной, как был выложенный на 3 странице в этой теме.
Подробнее.

Цитата(UnLimited @ 28.8.2010, 0:51) *
3. И вот с такими настройками

amx_hpp_ping 100
amx_hpp_check 5
amx_hpp_tests 1
amx_hpp_delay 5
Пропиши их в amxx.cfg
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя UnLimited
сообщение 28.8.2010, 17:43
Сообщение #62
Стаж: 17 лет

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

да конечно респект тебе и спасибка, но это я уже читал и перечитал. Вышло всё норм...но вот в чём прикол...Я добавил настройки в amxx.cfg, но по-прежнему у меня высвечивает в КС: с пингом 200...бла-бла-бла...вместо прописанных 100 ...Можешь помочь с этим?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя vkontakte
сообщение 21.9.2010, 21:10
Сообщение #63


Стаж: 16 лет

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

выложи конфиг сюда
второе, после запуска сервера нужно прописывать рестарт, вот тогда все квары вступят в силу
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя vkontakte
сообщение 12.10.2010, 20:22
Сообщение #64


Стаж: 16 лет

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

Цитата(roman_real @ 18.4.2010, 10:40) *
на :)


исходник плиз выложи
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 13.10.2010, 0:31
Сообщение #65
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

vkontakte,
https://c-s.net.ua/forum/topic100.html?view...st&p=161916
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя vkontakte
сообщение 13.10.2010, 0:35
Сообщение #66


Стаж: 16 лет

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

Цитата(STR@TEG @ 13.10.2010, 1:31) *


а какой из плагинов именно тот что этот юзер переделывал?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 13.10.2010, 11:51
Сообщение #67
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

vkontakte,
Этого тебе хватит, чтобы сделать самому:
https://c-s.net.ua/forum/topic100.html?view...st&p=161842
https://c-s.net.ua/forum/topic100.html?view...st&p=161916
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя vkontakte
сообщение 13.10.2010, 11:58
Сообщение #68


Стаж: 16 лет

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

Цитата(STR@TEG @ 13.10.2010, 12:51) *
vkontakte,
Этого тебе хватит, чтобы сделать самому:
https://c-s.net.ua/forum/topic100.html?view...st&p=161842
https://c-s.net.ua/forum/topic100.html?view...st&p=161916


цц

Прикрепленное изображение
Код
/* AMX Mod script.
*
* (c) 2002-2003, OLO
* modified by shadow
* This file is provided as is (no warranties).
*
* Players with immunity won't be checked
*/

#include <amxmodx>
#include <amxmisc>

new g_Ping[33]
new g_Samples[33]

public plugin_init()
{
  register_plugin("High Ping Kicker (Steam)","0.16.2","OLO/shadow")
  register_concmd("amx_hpk","cmdHpk",ADMIN_KICK,"- configures high_ping_kicker plugin")
  register_cvar("amx_hpk_ping","200")
  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 )
}

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[0])
    ColorChat(param[0], GREEN, "^x04[GCN] ^x01Игроки с пингом выше ^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)
  СolorChat(param[0], GREEN, "^x04[GCN] ^x01Игрок ^x03%s ^x01был отключён за высокий пинг",name)
  server_cmd("kick #%d ^"Ваш пинг слишком высокий^"",get_user_userid(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    
}

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 13.10.2010, 12:18
Сообщение #69
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

vkontakte,
После:
Код
#include <amxmodx>
#include <amxmisc>
Добавь:
Код
#include <colorchat>

Строку:
Код
СolorChat(param[0], GREEN, "^x04[GCN] ^x01Игрок ^x03%s ^x01был отключён за высокий пинг",name)
Замени на эту:
Код
ColorChat(0, GREEN, "^x04[GCN] ^x01Игрок ^x03%s ^x01был отключён за высокий пинг", name)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя vkontakte
сообщение 13.10.2010, 12:26
Сообщение #70


Стаж: 16 лет

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

Цитата(STR@TEG @ 13.10.2010, 13:18) *
vkontakte,
После:
Код
#include <amxmodx>
#include <amxmisc>
Добавь:
Код
#include <colorchat>

Строку:
Код
СolorChat(param[0], GREEN, "^x04[GCN] ^x01Игрок ^x03%s ^x01был отключён за высокий пинг",name)
Замени на эту:
Код
ColorChat(0, GREEN, "^x04[GCN] ^x01Игрок ^x03%s ^x01был отключён за высокий пинг", name)



а жесть, как я пропустил такую важную строчку)

Прикрепленное изображение
код

Код
/* AMX Mod script.
*
* (c) 2002-2003, OLO
* modified by shadow
* This file is provided as is (no warranties).
*
* Players with immunity won't be checked
*/

#include <amxmodx>
#include <amxmisc>
#include <colorchat>

new g_Ping[33]
new g_Samples[33]

public plugin_init()
{
  register_plugin("High Ping Kicker (Steam)","0.16.2","OLO/shadow")
  register_concmd("amx_hpk","cmdHpk",ADMIN_KICK,"- configures high_ping_kicker plugin")
  register_cvar("amx_hpk_ping","200")
  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 )
}

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[0])
    ColorChat(param[0], GREEN, "^x04[GCN] ^x01Игроки с пингом выше ^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, GREEN, "^x04[GCN] ^x01Игрок ^x03%s ^x01был отключён за высокий пинг", name)
  server_cmd("kick #%d ^"Ваш пинг слишком высокий^"",get_user_userid(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    
}


ничего страшного?

Отредактировал: vkontakte, - 13.10.2010, 12:32
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 13.10.2010, 12:38
Сообщение #71
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Цитата(vkontakte @ 13.10.2010, 14:26) *
ничего страшного?
Нет, просто на 68 и 69 строке неправильные отступы :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Rejiser
сообщение 13.10.2010, 14:35
Сообщение #72


Стаж: 15 лет

Сообщений: 2261
Благодарностей: 1068
Полезность: 870

А как например со словарем правильно ?
Код
client_print(0, print_chat, "[%s] %L", PREFIX, LANG_PLAYER, "AFK_KICK", name)

словарь:
AFK_KICK = %s кикнут за AFK!

так?
Код
ColorChat(0, GREEN, "^x04[%s] ^x01%L", PREFIX, LANG_PLAYER, "AFK_KICK", name)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 13.10.2010, 16:01
Сообщение #73
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Rejiser,
Ничего не мешает экспериментировать. Думаю должно работать.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Rejiser
сообщение 13.10.2010, 16:39
Сообщение #74


Стаж: 15 лет

Сообщений: 2261
Благодарностей: 1068
Полезность: 870

Цитата(STR@TEG @ 13.10.2010, 18:01) *
Rejiser,
Ничего не мешает экспериментировать. Думаю должно работать.

Я вот только не понимаю как отдельную фразу в словаре выделить..
например слово AFK зеленым цветом
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 13.10.2010, 17:26
Сообщение #75
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Цитата(Rejiser @ 13.10.2010, 18:39) *
Я вот только не понимаю как отдельную фразу в словаре выделить..
например слово AFK зеленым цветом
Можно формировать нужную фразу в исходнике, а затем выводить ее в сообщение.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя eXe_GLOKE
сообщение 29.1.2011, 15:33
Сообщение #76


Стаж: 18 лет

Сообщений: 234
Благодарностей: 11
Полезность: 53

Народ, кто сможет прикрутить к этому плагину файл lang.txt У меня сервер на трех языках и мне нужно сообщения чтобы выдавало соответствующими языками (En, Ru, Ua).
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ehd2347
сообщение 1.2.2011, 9:42
Сообщение #77
Стаж: 16 лет

Сообщений: 30
Благодарностей: 3
Полезность: 78

High Ping Kicker v2.9
High Ping Kicker

Описание:
Этот плагин был написан, чтобы помочь администраторам серверов обеспечить контроль пинга игроков, которые играют. Он принимает во внимание cmdrate игроков и tickrate серверов, когда делает проверки. Она не будет проверять игроков, которые в настоящее время подключаются или не находятся в команде.

Требования:
Этот плагин был подготовлен и испытан на Orange Box и не Orange Box серверах, он требует, SM 1.0.x или 1.1.x , которые могут быть загружены по ссылке: http://www.sourcemod.net/snapshots.php

Установка:
Скопируйте плагин (или скомпилируйте из исходника в случае возникновения проблем) в каталог addons\sourcemod\plugins на вашем сервере. После этого пропишите в консоли сервера sm plugins load hpk или перезапустите сервер.
Редактируете конфигурационный файл в директории <mod>/cfg/sourcemod/hpk.cfg , установите в нём максимально приемлемый пинг (По умолчанию 150). Этот файл автоматически генерируется при первом запуске плагина.

Настройки:
CVars:
sm_checkping "1" – Проверять пинг игроков. 1 = вкл, 0 = выкл.
sm_checkchoke "1" -- Проверять choke игроков. 1 = вкл, 0 = выкл.
sm_checkloss "1" – Проверять потерянные пакеты (loss) у игроков. 1 = вкл, 0 = выкл.
sm_checkpackets "1" – Проверять пакеты отсылаемые игроками. 1 = вкл. 0 = выкл.

sm_maxping "150" – Максимальный разрешенный пинг на сервере.
sm_maxchoke "30.0" – Максимальный разрешенный choke у игроков.
sm_maxloss "30.0" – Максимальные потери (loss) разрешенные игрокам .
sm_minpacketin "30.0" – Минимальное количество пакетов входящих игроку.
sm_minpacketout "55.0" – Минимальное количество пакетов исходящих от игрока.

sm_ping_admins_immune "1" – Использовать админский иммунитет. 1 = Да, 2 = Нет
Прикрепленные файлы:
Прикрепленный файл  High_Ping_Kicker_v2.9.zip ( 10,24 килобайт ) Кол-во скачиваний: 86
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ehd2347
сообщение 1.2.2011, 10:20
Сообщение #78
Стаж: 16 лет

Сообщений: 30
Благодарностей: 3
Полезность: 78

как сделать чтоб банил на 5минут через amxbans5
CODE
/* AMX Mod script

Better High Ping Kicker © 2009 by Lev
This file is provided as is (no warranties).

URL: http://forums.alliedmods.net/showthread.php?t=85911

This is mainly a modification of HPK by DynAstY.
Thanks to all other HPK authors (OLO, DynAstY, shadow, EKS) - your plugins provided the base.

Features:
Players with immunity and slot reservations won't be checked.
At night max ping defined by different CVAR (so usually it will be higher).
By default keeps min 3 players (bots and hltv are not included)
at server if they are not exceed night max ping twice.
Player is banned for 1 minute, not just simply kicked.

CVARs (Supplied values are defaults):
hpk_ping_max 175 ; maximim ping to check for at day time
hpk_ping_max_night 180 ; maximim ping to check for at night time
hpk_ping_time 10 ; interval at which ping will be checked
hpk_ping_tests 5 ; number of violations of maximum ping at which to kick
hpk_min_players 3 ; don't kick player if there is this count or less players (bots and hltv are not included)
at server and player's ping doesn't exceed night ping twice.
hpk_night_start_hour 3 ; night period start hour (hour included)
hpk_night_end_hour 9 ; night period end hour (hour excluded)

How it is different from other HPK plugins:
using pointers to CVARs;
code flow is optimized;
there is night period when ping defined by different CVAR, period also defined by CVARs;
changes to max pings applies immediately;
immunity for admins and slot reservations players;
keeps min players at server (count defined by CVAR) if their ping is not too high (double night max ping);

ChangeLog:
v2.4 [2009.03.01]
Initial release.
v2.5 [2009.10.02]
! Change: bots and hltv are now excluded from players count for comparision with hpk_min_players.
v2.6 [2009.10.10]
! Change: changed from ban ID to ban IP.
*/

#pragma semicolon 1
#pragma ctrlchar '\'

#include <amxmodx>
#include <amxmisc>

#define AUTHOR "Lev"
#define PLUGIN "Better High Ping Kicker"
#define VERSION "2.6"
#define VERSION_CVAR "bhpk_version"

#define ALWAYS_KICK_MULTIPLIER 2 // Player will be kicked even there is less then or equal min_players
// if player's ping exceed night max ping by this factor.
#define DELAY_BEFORE_START_TESTING 20.0 // Delay before showing warning and start ping checking.
//Real testing starts after hpk_ping_time also passed.

const TASK_ID_BASE = 52635; // random number

const min_hpk_ping_max = 10;
const min_hpk_ping_time = 10;
const min_hpk_ping_tests = 4;

new pcvar_hpk_ping_max;
new pcvar_hpk_ping_max_night;
new pcvar_hpk_ping_time;
new pcvar_hpk_ping_tests;
new pcvar_hpk_min_players;
new pcvar_hpk_night_start_hour;
new pcvar_hpk_night_end_hour;

new ping_violations[33];

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_cvar(VERSION_CVAR, VERSION, FCVAR_SERVER);

pcvar_hpk_ping_max = register_cvar("hpk_ping_max", "175");
pcvar_hpk_ping_max_night = register_cvar("hpk_ping_max_night", "180");
pcvar_hpk_ping_time = register_cvar("hpk_ping_time", "10");
pcvar_hpk_ping_tests = register_cvar("hpk_ping_tests", "5");
pcvar_hpk_min_players = register_cvar("hpk_min_players", "3");
pcvar_hpk_night_start_hour = register_cvar("hpk_night_start_hour", "3");
pcvar_hpk_night_end_hour = register_cvar("hpk_night_end_hour", "9");
}

public client_putinserver(plrid)
{
ping_violations[plrid] = 0;
if (!is_user_bot(plrid) && !is_user_hltv(plrid))
set_task(DELAY_BEFORE_START_TESTING, "showInfo", TASK_ID_BASE + plrid);
return PLUGIN_CONTINUE;
}

public client_infochanged(plrid)
{
remove_task(TASK_ID_BASE + plrid);
if (!is_user_bot(plrid) && !is_user_hltv(plrid))
set_task(DELAY_BEFORE_START_TESTING, "showInfo", TASK_ID_BASE + plrid);
return PLUGIN_CONTINUE;
}

public client_disconnect(plrid)
{
remove_task(TASK_ID_BASE + plrid);
return PLUGIN_CONTINUE;
}

public showInfo(taskid)
{
new plrid = taskid - TASK_ID_BASE;
if (access(plrid, ADMIN_IMMUNITY) || access(plrid, ADMIN_RESERVATION))
client_print(plrid, print_chat, "[BHPK] Ping checking disabled due to immunity...");
else
{
client_print(plrid, print_chat, "[BHPK] Players with ping higher than %dms will be kicked!", get_hpk_ping_max());
set_task(float(get_hpk_ping_time()), "checkPing", TASK_ID_BASE + plrid, _, _, "b");
}
return PLUGIN_CONTINUE;
}

public checkPing(taskid)
{
new plrid = taskid - TASK_ID_BASE;
new ping, loss;

get_user_ping(plrid, ping, loss);

if (ping > get_hpk_ping_max()) ping_violations[plrid]++;
else if (ping_violations[plrid] > 0) ping_violations[plrid]--;

new hpk_ping_tests = get_hpk_ping_tests();
if (ping_violations[plrid] >= hpk_ping_tests)
{
static players[32];
new playerCount;
get_players(players, playerCount, "ch");
// Allow player to stay if there is less or equal than 'min_players' players and player ping is not too high.
if (playerCount <= get_pcvar_num(pcvar_hpk_min_players) &&
ping < get_pcvar_num(pcvar_hpk_ping_max_night) * ALWAYS_KICK_MULTIPLIER)
{
ping_violations[plrid] = hpk_ping_tests;
return PLUGIN_CONTINUE;
}
kickPlayer(plrid);
}

return PLUGIN_CONTINUE;
}

kickPlayer(plrid)
{
new name[33], ip[15];
get_user_name(plrid, name, sizeof(name) - 1);
get_user_ip(plrid, ip, charsmax(ip), 1);

client_cmd(plrid, "echo \"[BHPK] Sorry but you have high ping, try later...\"; disconnect");
server_cmd("addip 1 %s", ip);
client_print(0, print_chat, "[BHPK] %s was disconnected due to high ping!", name);
return PLUGIN_CONTINUE;
}

get_hpk_ping_max()
{
new ping_max;
new hour, minute, second;

time(hour, minute, second);

// At night we use different CVAR
if (hour >= get_pcvar_num(pcvar_hpk_night_start_hour) &&
hour < get_pcvar_num(pcvar_hpk_night_end_hour))
ping_max = get_pcvar_num(pcvar_hpk_ping_max_night);
else
ping_max = get_pcvar_num(pcvar_hpk_ping_max);
// Check to be no less then minimum value
if (ping_max < min_hpk_ping_max) return min_hpk_ping_max;
return ping_max;
}
get_hpk_ping_time()
{
new time = get_pcvar_num(pcvar_hpk_ping_time);
// Check to be no less then minimum value
if (time < min_hpk_ping_time) return min_hpk_ping_time;
return time;
}
get_hpk_ping_tests()
{
new tests = get_pcvar_num(pcvar_hpk_ping_tests);
// Check to be no less then minimum value
if (tests < min_hpk_ping_tests) return min_hpk_ping_tests;
return tests;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 1.2.2011, 16:18
Сообщение #79
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

ehd2347,
Работай с этой функцией:
Код
kickPlayer(plrid)
{
    new name[33], ip[15];
    get_user_name(plrid, name, sizeof(name) - 1);
    get_user_ip(plrid, ip, charsmax(ip), 1);
    
    client_cmd(plrid, "echo "[BHPK] Sorry but you have high ping, try later..."; disconnect");
    server_cmd("addip 1 %s", ip);
    client_print(0, print_chat, "[BHPK] %s was disconnected due to high ping!", name);
    return PLUGIN_CONTINUE;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя anti_KLOUN
сообщение 8.2.2011, 15:12
Сообщение #80
Стаж: 15 лет

Сообщений: 24
Благодарностей: 2
Полезность: 64

Измените пожалуйста обычный high_ping_kicker.amxx, чтобы в нем всё было точно так же, только чтобы он не кикал а банил и 2 переменных: amx_hpk_ping 150 и например amx_hpk_time 60. При каком пинге и на сколько банит. И чтобы в чате так же писал по русски: Игроки с пингом выше 150 будут забанены на 60 минут.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
5 страниц V  « 3 4 5
 
Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: