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

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

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

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

Изменить high_ping_kicker и lame_connection_punisher

, Под себя
Статус пользователя otec_cs
сообщение 31.1.2011, 13:41
Сообщение #1
Стаж: 16 лет

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

*.sma
Код
/* 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[])
  client_print( param[0] ,print_chat,"* Players with ping higher than %d will be kicked!", 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)
  client_print(0,print_chat,"** Player %s disconnected due to high ping",name)
  server_cmd("kick #%d ^"Sorry but you have too high ping, try later...^"",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    
}
Хочу чтобы побыстрее кикал при пинге больше 200 но не совсем быстро так как иногда при смане карты вначале раунда пинг прыгает у некоторых игроков.

*.sma
Код
/*===============================================================================
=
    
    ------------------------------------
    -*- Lame Connection Punisher 1.1 -*-
    ------------------------------------
    
    ~~~~~~~~~~~~~~~
    - Description -
    ~~~~~~~~~~~~~~~
    
    This plugin improves your server's gameplay experience by automatically
    rejecting clients with "bad" conections, so that you'll never have to
    deal with players skipping around the map or being hard to hit anymore.
    
    It can also detect clients running any background applications that may
    be affecting their connection, such as P2P programs using up too many
    bandwidth.
    
    ~~~~~~~~~~~~~~~~~~~~
    - How Does It Work -
    ~~~~~~~~~~~~~~~~~~~~
    
    It checks for player's ping fluctuations and packet loss rates, since
    these seem to be the most trustable factors in determining if there are
    any issues, in my experience.
    
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    - What Makes It Different -
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Other solutions, such as Hing Ping Kickers, usually can't tell apart
    players with good or bad connections accurately. They may not detect
    a bad connection if the player's ping is too low, and likewise, they
    may end up kicking a player who's ping exceeds the limit but has a
    nice connection nonetheless, thus making you loose potential players.
    
    ~~~~~~~~~
    - CVARS -
    ~~~~~~~~~
    
    There are 2 main cvars to control the plugin's behavior (tolerance),
    though the default values are recommended.
    
    Please note that small ping fluctuations and packet loss occur even
    on the best connections, so DO NOT set these too low, unless you are
    on for some nasty results!
    
    * lcp_flux_limit [100] - Ping fluctuation limit (in ms.)
    * lcp_loss_limit [10] - Loss limit (% of packets)
    
    Additionally, you can specify whether the plugin should kick or ban
    these players by changing the following settings.
    
    * lcp_punishment [0/1/2] - 0 = Kick / 1 = Ban by SteamID / 2 = Ban by IP
    * lcp_ban_time [5] - Ban time in minutes (use 0 to permanently ban)
    
    Lastly, players with the immunity flags will not be checked at all.
    
    * lcp_immunity ["a"] - Immunity flags
    
    ~~~~~~~~~~~~~
    - Changelog -
    ~~~~~~~~~~~~~
    
    * v1.0: (Jan 05, 2009)
       - Public release
       - Added ban support
       - Added immunity feature
    
    * v1.1: (Feb 08, 2009)
       - Code optimized
    
    * v1.1a: (Feb 24, 2009)
       - Fixed IP ban code retrieving unneeded port number
    
    * v1.1b: (Mar 15, 2009)
       - Immunity flags now checked more efficiently
       - Extra optimization: CVARs are now cached at round start
    
================================================================================
=*/

#include <amxmodx>

const TASK_JOINMSG = 100
const TASK_DOCHECKS = 200
#define ID_JOINMSG (taskid-TASK_JOINMSG)

new cvar_flux, cvar_loss, cvar_punishment, cvar_bantime, cvar_immunity
new g_maxflux, g_maxloss, g_immunityflags, g_maxplayers, g_connected[33]
new g_lastping[33], g_fluxcounter[33], g_losscounter[33], g_immune[33]

// I wouldn't recommend lowering these unless
// you wanna pick up a lot of false positives
const Float:CHECK_FREQ = 5.0
const FLUX_TESTS = 12
const LOSS_TESTS = 12

public plugin_init()
{
    register_plugin("Lame Connection Punisher", "1.1b", "MeRcyLeZZ")
    register_dictionary("lame_connection_punisher.txt")
    register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
    
    cvar_flux = register_cvar("lcp_flux_limit", "100")
    cvar_loss = register_cvar("lcp_loss_limit", "10")
    cvar_punishment = register_cvar("lcp_punishment", "0")
    cvar_bantime = register_cvar("lcp_ban_time", "5")
    cvar_immunity = register_cvar("lcp_immunity", "a")
    g_maxplayers = get_maxplayers()
}

public plugin_cfg()
{
    // Cache CVARs after configs are loaded
    set_task(0.5, "event_round_start")
    
    // Start checking players
    set_task(CHECK_FREQ, "do_checks", TASK_DOCHECKS, _, _, "b")
}

public event_round_start()
{
    // Cache CVARs
    new flags[6]
    get_pcvar_string(cvar_immunity, flags, charsmax(flags))
    g_immunityflags = read_flags(flags)
    g_maxflux = get_pcvar_num(cvar_flux)
    g_maxloss = get_pcvar_num(cvar_loss)
    
    // Check flags again for all players
    for (new id = 1; id <= g_maxplayers; id++)
        if (g_connected[id]) check_flags(id)
}

public client_putinserver(id)
{
    set_task(16.0, "join_message", id+TASK_JOINMSG)
    g_connected[id] = true
}

public client_authorized(id)
{
    check_flags(id)
}

public client_infochanged(id)
{
    check_flags(id)
}

public client_disconnect(id)
{
    remove_task(id+TASK_JOINMSG)
    g_fluxcounter[id] = 0
    g_losscounter[id] = 0
    g_lastping[id] = 0
    g_immune[id] = 0
    g_connected[id] = false
}

public do_checks()
{
    static id, ping, loss, name[32], auth[32], userid, minutes
    
    for (id = 1; id <= g_maxplayers; id++)
    {
        if (!g_connected[id] || g_immune[id])
            continue;
        
        get_user_ping(id, ping, loss)
        
        if (loss > g_maxloss)
            g_losscounter[id]++
        else if (g_losscounter[id] > 0)
            g_losscounter[id]--
        
        if (g_losscounter[id] >= LOSS_TESTS)
        {
            get_user_name(id, name , sizeof name - 1)
            userid = get_user_userid(id)
            
            switch (get_pcvar_num(cvar_punishment))
            {
                case 1:
                {
                    get_user_authid(id, auth, sizeof auth - 1)
                    minutes = get_pcvar_num(cvar_bantime)
                    
                    if (minutes > 0)
                    {
                        client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_BAN", name, minutes)
                        log_amx("%L", LANG_SERVER, "MSG_ALL_BAN", name, minutes)
                        server_cmd("kick #%d ^"%L^";wait;banid %d ^"%s^";wait;writeid", userid, id, "MSG_TARGET_LOSS", minutes, auth)
                    }
                    else
                    {
                        client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_PBAN", name)
                        log_amx("%L", LANG_SERVER, "MSG_ALL_PBAN", name)
                        server_cmd("kick #%d ^"%L^";wait;banid 0 ^"%s^";wait;writeid", userid, id, "MSG_TARGET_LOSS", auth)
                    }
                }
                case 2:
                {
                    get_user_ip(id, auth, sizeof auth - 1, 1)
                    minutes = get_pcvar_num(cvar_bantime)
                    
                    if (minutes > 0)
                    {
                        client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_BAN", name, minutes)
                        log_amx("%L", LANG_SERVER, "MSG_ALL_BAN", name, minutes)
                        server_cmd("kick #%d ^"%L^";wait;addip %d ^"%s^";wait;writeip", userid, id, "MSG_TARGET_LOSS", minutes, auth)
                    }
                    else
                    {
                        client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_PBAN", name)
                        log_amx("%L", LANG_SERVER, "MSG_ALL_PBAN", name)
                        server_cmd("kick #%d ^"%L^";wait;addip 0 ^"%s^";wait;writeip", userid, id, "MSG_TARGET_LOSS", auth)
                    }
                }
                default:
                {
                    client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_KICK", name)
                    log_amx("%L", LANG_SERVER, "MSG_ALL_KICK", name)
                    server_cmd("kick #%d ^"%L^"", userid, id, "MSG_TARGET_LOSS")
                }
            }
            continue;
        }
        
        if (abs(ping - g_lastping[id]) > g_maxflux)
            g_fluxcounter[id]++
        else if (g_fluxcounter[id] > 0)
            g_fluxcounter[id]--
        
        if (g_fluxcounter[id] >= FLUX_TESTS)
        {
            get_user_name(id, name , sizeof name - 1)
            userid = get_user_userid(id)
            
            switch (get_pcvar_num(cvar_punishment))
            {
                case 1:
                {
                    get_user_authid(id, auth, sizeof auth - 1)
                    minutes = get_pcvar_num(cvar_bantime)
                    
                    if (minutes > 0)
                    {
                        client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_BAN", name, minutes)
                        log_amx("%L", LANG_SERVER, "MSG_ALL_BAN", name, minutes)
                        server_cmd("kick #%d ^"%L^";wait;banid %d ^"%s^";wait;writeid", userid, id, "MSG_TARGET_FLUX", minutes, auth)
                    }
                    else
                    {
                        client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_PBAN", name)
                        log_amx("%L", LANG_SERVER, "MSG_ALL_PBAN", name)
                        server_cmd("kick #%d ^"%L^";wait;banid 0 ^"%s^";wait;writeid", userid, id, "MSG_TARGET_FLUX", auth)
                    }
                }
                case 2:
                {
                    get_user_ip(id, auth, sizeof auth - 1, 1)
                    minutes = get_pcvar_num(cvar_bantime)
                    
                    if (minutes > 0)
                    {
                        client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_BAN", name, minutes)
                        log_amx("%L", LANG_SERVER, "MSG_ALL_BAN", name, minutes)
                        server_cmd("kick #%d ^"%L^";wait;addip %d ^"%s^";wait;writeip", userid, id, "MSG_TARGET_FLUX", minutes, auth)
                    }
                    else
                    {
                        client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_PBAN", name)
                        log_amx("%L", LANG_SERVER, "MSG_ALL_PBAN", name)
                        server_cmd("kick #%d ^"%L^";wait;addip 0 ^"%s^";wait;writeip", userid, id, "MSG_TARGET_FLUX", auth)
                    }
                }
                default:
                {
                    client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_KICK", name)
                    log_amx("%L", LANG_SERVER, "MSG_ALL_KICK", name)
                    server_cmd("kick #%d ^"%L^"", userid, id, "MSG_TARGET_FLUX")
                }
            }
            continue;
        }
        
        g_lastping[id] = ping
    }
}

public join_message(taskid)
{
    client_print(ID_JOINMSG, print_chat, "[AMXX] %L", ID_JOINMSG, "JOIN_MSG", g_maxflux, g_maxloss)
}

check_flags(id)
{
    g_immune[id] = get_user_flags(id) & g_immunityflags
}
Здесь тоже ускорить процесс у кого пинг прыгает, непонимаю за что отвечает этот параметр const TASK_DOCHECKS = 200. Что 200 раз чекает игрока на прыжки пинга ? Также неясен параметр const TASK_JOINMSG = 100

Также неясно что за потери пакетов 10 стоит стандарт если я к примеру сделаю 1 что будет ?

Также хотелось бы убрать в чате слово
AMXX JOIN_MSG = Players with a lame connection will be punished (ping flux limit: 100, loss limit: 10).
что нужно убрать в коде чтобы это дело не высвечивалось в чате


Админы почините Спойлер. Уже бесит год не работает ubeysya.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя STR@TEG
сообщение 31.1.2011, 22:16
Сообщение #2
Стаж: 16 лет

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

Цитата(otec_cs @ 31.1.2011, 14:41) *
Хочу чтобы побыстрее кикал при пинге больше 200 но не совсем быстро так как иногда при смане карты вначале раунда пинг прыгает у некоторых игроков.
В amxx.cfg:
Цитата
amx_hpk_ping "200"
amx_hpk_check "6"
amx_hpk_tests "3"
amx_hpk_delay "60"


Цитата(otec_cs @ 31.1.2011, 14:41) *
Здесь тоже ускорить процесс у кого пинг прыгает, непонимаю за что отвечает этот параметр const TASK_DOCHECKS = 200. Что 200 раз чекает игрока на прыжки пинга ? Также неясен параметр const TASK_JOINMSG = 100

Также неясно что за потери пакетов 10 стоит стандарт если я к примеру сделаю 1 что будет ?
В этом плагине вообще ничего не трогай, все изначально идеально настроено.

Цитата(otec_cs @ 31.1.2011, 14:41) *
Также хотелось бы убрать в чате слово
AMXX JOIN_MSG = Players with a lame connection will be punished (ping flux limit: 100, loss limit: 10).
что нужно убрать в коде чтобы это дело не высвечивалось в чате
Найди в исходнике следующие строчки и удали их:
Код
const TASK_JOINMSG = 100
...

#define ID_JOINMSG (taskid-TASK_JOINMSG)

...

set_task(16.0, "join_message", id+TASK_JOINMSG)

...

remove_task(id+TASK_JOINMSG)

...

public join_message(taskid)
{
    client_print(ID_JOINMSG, print_chat, "[AMXX] %L", ID_JOINMSG, "JOIN_MSG", g_maxflux, g_maxloss)
}


Цитата(otec_cs @ 31.1.2011, 14:41) *
Админы почините Спойлер. Уже бесит год не работает ubeysya.gif
Да, админы, почините спойлер. Уже бесит, год как работает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя otec_cs
сообщение 1.2.2011, 10:45
Сообщение #3
Стаж: 16 лет

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

.sma
Код
/*===============================================================================
=
    
    ------------------------------------
    -*- Lame Connection Punisher 1.1 -*-
    ------------------------------------
    
    ~~~~~~~~~~~~~~~
    - Description -
    ~~~~~~~~~~~~~~~
    
    This plugin improves your server's gameplay experience by automatically
    rejecting clients with "bad" conections, so that you'll never have to
    deal with players skipping around the map or being hard to hit anymore.
    
    It can also detect clients running any background applications that may
    be affecting their connection, such as P2P programs using up too many
    bandwidth.
    
    ~~~~~~~~~~~~~~~~~~~~
    - How Does It Work -
    ~~~~~~~~~~~~~~~~~~~~
    
    It checks for player's ping fluctuations and packet loss rates, since
    these seem to be the most trustable factors in determining if there are
    any issues, in my experience.
    
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    - What Makes It Different -
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Other solutions, such as Hing Ping Kickers, usually can't tell apart
    players with good or bad connections accurately. They may not detect
    a bad connection if the player's ping is too low, and likewise, they
    may end up kicking a player who's ping exceeds the limit but has a
    nice connection nonetheless, thus making you loose potential players.
    
    ~~~~~~~~~
    - CVARS -
    ~~~~~~~~~
    
    There are 2 main cvars to control the plugin's behavior (tolerance),
    though the default values are recommended.
    
    Please note that small ping fluctuations and packet loss occur even
    on the best connections, so DO NOT set these too low, unless you are
    on for some nasty results!
    
    * lcp_flux_limit [100] - Ping fluctuation limit (in ms.)
    * lcp_loss_limit [10] - Loss limit (% of packets)
    
    Additionally, you can specify whether the plugin should kick or ban
    these players by changing the following settings.
    
    * lcp_punishment [0/1/2] - 0 = Kick / 1 = Ban by SteamID / 2 = Ban by IP
    * lcp_ban_time [5] - Ban time in minutes (use 0 to permanently ban)
    
    Lastly, players with the immunity flags will not be checked at all.
    
    * lcp_immunity ["a"] - Immunity flags
    
    ~~~~~~~~~~~~~
    - Changelog -
    ~~~~~~~~~~~~~
    
    * v1.0: (Jan 05, 2009)
       - Public release
       - Added ban support
       - Added immunity feature
    
    * v1.1: (Feb 08, 2009)
       - Code optimized
    
    * v1.1a: (Feb 24, 2009)
       - Fixed IP ban code retrieving unneeded port number
    
    * v1.1b: (Mar 15, 2009)
       - Immunity flags now checked more efficiently
       - Extra optimization: CVARs are now cached at round start
    
================================================================================
=*/

#include <amxmodx>

const TASK_DOCHECKS = 200

new cvar_flux, cvar_loss, cvar_punishment, cvar_bantime, cvar_immunity
new g_maxflux, g_maxloss, g_immunityflags, g_maxplayers, g_connected[33]
new g_lastping[33], g_fluxcounter[33], g_losscounter[33], g_immune[33]

// I wouldn't recommend lowering these unless
// you wanna pick up a lot of false positives
const Float:CHECK_FREQ = 5.0
const FLUX_TESTS = 5
const LOSS_TESTS = 5

public plugin_init()
{
    register_plugin("Lame Connection Punisher", "1.1b", "MeRcyLeZZ")
    register_dictionary("lame_connection_punisher.txt")
    register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
    
    cvar_flux = register_cvar("lcp_flux_limit", "100")
    cvar_loss = register_cvar("lcp_loss_limit", "10")
    cvar_punishment = register_cvar("lcp_punishment", "0")
    cvar_bantime = register_cvar("lcp_ban_time", "5")
    cvar_immunity = register_cvar("lcp_immunity", "a")
    g_maxplayers = get_maxplayers()
}

public plugin_cfg()
{
    // Cache CVARs after configs are loaded
    set_task(0.5, "event_round_start")
    
    // Start checking players
    set_task(CHECK_FREQ, "do_checks", TASK_DOCHECKS, _, _, "b")
}

public event_round_start()
{
    // Cache CVARs
    new flags[6]
    get_pcvar_string(cvar_immunity, flags, charsmax(flags))
    g_immunityflags = read_flags(flags)
    g_maxflux = get_pcvar_num(cvar_flux)
    g_maxloss = get_pcvar_num(cvar_loss)
    
    // Check flags again for all players
    for (new id = 1; id <= g_maxplayers; id++)
        if (g_connected[id]) check_flags(id)
}

public client_putinserver(id)
{
    g_connected[id] = true
}

public client_authorized(id)
{
    check_flags(id)
}

public client_infochanged(id)
{
    check_flags(id)
}

public client_disconnect(id)
{
    g_fluxcounter[id] = 0
    g_losscounter[id] = 0
    g_lastping[id] = 0
    g_immune[id] = 0
    g_connected[id] = false
}

public do_checks()
{
    static id, ping, loss, name[32], auth[32], userid, minutes
    
    for (id = 1; id <= g_maxplayers; id++)
    {
        if (!g_connected[id] || g_immune[id])
            continue;
        
        get_user_ping(id, ping, loss)
        
        if (loss > g_maxloss)
            g_losscounter[id]++
        else if (g_losscounter[id] > 0)
            g_losscounter[id]--
        
        if (g_losscounter[id] >= LOSS_TESTS)
        {
            get_user_name(id, name , sizeof name - 1)
            userid = get_user_userid(id)
            
            switch (get_pcvar_num(cvar_punishment))
            {
                case 1:
                {
                    get_user_authid(id, auth, sizeof auth - 1)
                    minutes = get_pcvar_num(cvar_bantime)
                    
                    if (minutes > 0)
                    {
                        client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_BAN", name, minutes)
                        log_amx("%L", LANG_SERVER, "MSG_ALL_BAN", name, minutes)
                        server_cmd("kick #%d ^"%L^";wait;banid %d ^"%s^";wait;writeid", userid, id, "MSG_TARGET_LOSS", minutes, auth)
                    }
                    else
                    {
                        client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_PBAN", name)
                        log_amx("%L", LANG_SERVER, "MSG_ALL_PBAN", name)
                        server_cmd("kick #%d ^"%L^";wait;banid 0 ^"%s^";wait;writeid", userid, id, "MSG_TARGET_LOSS", auth)
                    }
                }
                case 2:
                {
                    get_user_ip(id, auth, sizeof auth - 1, 1)
                    minutes = get_pcvar_num(cvar_bantime)
                    
                    if (minutes > 0)
                    {
                        client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_BAN", name, minutes)
                        log_amx("%L", LANG_SERVER, "MSG_ALL_BAN", name, minutes)
                        server_cmd("kick #%d ^"%L^";wait;addip %d ^"%s^";wait;writeip", userid, id, "MSG_TARGET_LOSS", minutes, auth)
                    }
                    else
                    {
                        client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_PBAN", name)
                        log_amx("%L", LANG_SERVER, "MSG_ALL_PBAN", name)
                        server_cmd("kick #%d ^"%L^";wait;addip 0 ^"%s^";wait;writeip", userid, id, "MSG_TARGET_LOSS", auth)
                    }
                }
                default:
                {
                    client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_KICK", name)
                    log_amx("%L", LANG_SERVER, "MSG_ALL_KICK", name)
                    server_cmd("kick #%d ^"%L^"", userid, id, "MSG_TARGET_LOSS")
                }
            }
            continue;
        }
        
        if (abs(ping - g_lastping[id]) > g_maxflux)
            g_fluxcounter[id]++
        else if (g_fluxcounter[id] > 0)
            g_fluxcounter[id]--
        
        if (g_fluxcounter[id] >= FLUX_TESTS)
        {
            get_user_name(id, name , sizeof name - 1)
            userid = get_user_userid(id)
            
            switch (get_pcvar_num(cvar_punishment))
            {
                case 1:
                {
                    get_user_authid(id, auth, sizeof auth - 1)
                    minutes = get_pcvar_num(cvar_bantime)
                    
                    if (minutes > 0)
                    {
                        client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_BAN", name, minutes)
                        log_amx("%L", LANG_SERVER, "MSG_ALL_BAN", name, minutes)
                        server_cmd("kick #%d ^"%L^";wait;banid %d ^"%s^";wait;writeid", userid, id, "MSG_TARGET_FLUX", minutes, auth)
                    }
                    else
                    {
                        client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_PBAN", name)
                        log_amx("%L", LANG_SERVER, "MSG_ALL_PBAN", name)
                        server_cmd("kick #%d ^"%L^";wait;banid 0 ^"%s^";wait;writeid", userid, id, "MSG_TARGET_FLUX", auth)
                    }
                }
                case 2:
                {
                    get_user_ip(id, auth, sizeof auth - 1, 1)
                    minutes = get_pcvar_num(cvar_bantime)
                    
                    if (minutes > 0)
                    {
                        client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_BAN", name, minutes)
                        log_amx("%L", LANG_SERVER, "MSG_ALL_BAN", name, minutes)
                        server_cmd("kick #%d ^"%L^";wait;addip %d ^"%s^";wait;writeip", userid, id, "MSG_TARGET_FLUX", minutes, auth)
                    }
                    else
                    {
                        client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_PBAN", name)
                        log_amx("%L", LANG_SERVER, "MSG_ALL_PBAN", name)
                        server_cmd("kick #%d ^"%L^";wait;addip 0 ^"%s^";wait;writeip", userid, id, "MSG_TARGET_FLUX", auth)
                    }
                }
                default:
                {
                    client_print(0, print_chat, "[AMXX] %L", LANG_PLAYER, "MSG_ALL_KICK", name)
                    log_amx("%L", LANG_SERVER, "MSG_ALL_KICK", name)
                    server_cmd("kick #%d ^"%L^"", userid, id, "MSG_TARGET_FLUX")
                }
            }
            continue;
        }
        
        g_lastping[id] = ping
    }
}

{

check_flags(id)
{
    g_immune[id] = get_user_flags(id) & g_immunityflags
}


Ошибка при комплинировании error 055

Strateg ответь в л.с

Отредактировал: otec_cs, - 1.2.2011, 10:52
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 1.2.2011, 16:13
Сообщение #4
Стаж: 16 лет

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

otec_cs,
У тебя одна лишняя фигурная скобка перед функцией check_flags.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя otec_cs
сообщение 3.2.2011, 13:09
Сообщение #5
Стаж: 16 лет

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

Спасибо. А почему ты не занимаешся написание плагинов если так хорошо понимаеш в этом языке, что за язык кстати написания плагинов ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 3.2.2011, 17:17
Сообщение #6
Стаж: 16 лет

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

Цитата(otec_cs @ 3.2.2011, 14:09) *
А почему ты не занимаешся написание плагинов если так хорошо понимаеш в этом языке
Некогда...

Цитата(otec_cs @ 3.2.2011, 14:09) *
что за язык кстати написания плагинов ?
Pawn (Small).
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя otec_cs
сообщение 5.2.2011, 23:59
Сообщение #7
Стаж: 16 лет

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

А к примеру подойдет язык perl delfy ci++ php для написание плагинов для кс ? yy.gif
На чем написан мод dproto metamod ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 6.2.2011, 2:59
Сообщение #8
Стаж: 16 лет

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

Цитата(otec_cs @ 6.2.2011, 0:59) *
А к примеру подойдет язык perl delfy ci++ php для написание плагинов для кс ? yy.gif
C++ похож по-моему. Точно сказать не могу.

Цитата(otec_cs @ 6.2.2011, 0:59) *
На чем написан мод dproto metamod ?
C++.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GODZILLA
сообщение 6.2.2011, 17:25
Сообщение #9


Стаж: 18 лет

Сообщений: 1471
Благодарностей: 440
Полезность: 716

otec_cs,
разумеется не подойдёт! тем более delFy !

Отредактировал: GODZILLA, - 6.2.2011, 17:25
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: