Русское сообщество по скриптингу

Nick Plus Kicker

Новые плагины для AMX Mod X, которые были добавлены в базу плагинов нашего форума. Плагины еще не утвеждены администратором/модератором.

Модератор: Leonidddd

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

Данный раздел форума служит для добавления новых плагинов в базу нашего форума. После того, как администратор/модератор утвердит плагин, он будет перемещен в раздел "Утвежденные плагины".

Правила при добавлении новых плагинов:

1. При вставке кода плагина необходимо использовать тег [pawn], в противном случае, если тег [pawn] не отображает ваш код, можно использовать тег [code].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. Обязательно выкладывайте исходник sma плагина. Запрещено выкладывать amxx файл.
4. Обязательно указывайте настоящих авторов плагина, если вы использовали чьи-то наработки или функции, указывайте их авторов в сообщении.
5. Необходимо заполнять детальную информацию о плагине (версию, настройки, используемые модули, список изменений и другую).

Nick Plus Kicker

Сообщение Leo_[BH] » 07 июл 2014, 22:40

Автор: Leo_[BH]
Версия: 1.0

Описание:
Данный плагин кикает игроков с ником, имеющий символ + ("плюс")
Особенность в том, что проверка происходит каждый раунд, а не только при коннекте игрока!

Используемые модули:
Hamsandwich
Как известно, игроков, ник которых начинается на символ + ("плюс") не видно в меню бана, по этому забанить их не так просто. Данный плагин кикает таких игроков с сервера!
Особенность именно этого плагина в том, что проверка происходит не только при присоединении игрока, а каждый раунд!
Сохраняйте историю
Аватара пользователя
Leo_[BH]
 
Сообщения: 98
Зарегистрирован: 06 апр 2014, 17:51
Откуда: UA
Благодарил (а): 9 раз.
Поблагодарили: 30 раз.
Опыт программирования: Больше трех лет

Re: Nick Plus Kicker

Сообщение Subb98 » 08 июл 2014, 09:42

Во-первых, фикс уже существует (и даже лучше):

[pawn]
  1. #include <amxmodx>

  2. #include <regex>

  3.  

  4. new Regex:g_iPattern;

  5.  

  6. public plugin_init()

  7. {

  8.    register_plugin("Plus in nick fix", "0.2", "Flash");

  9.      

  10.    new szError[64], iError;

  11.      

  12.    g_iPattern = regex_compile("\[abcdfghijlmnprstuv]", iError, szError, charsmax(szError), "i");

  13.      

  14.    if(iError < 0)

  15.    {

  16.       set_fail_state(szError);

  17.    }

  18. }

  19.  

  20. public client_infochanged(id)

  21. {

  22.    new szNewName[32], szOldName[32];

  23.      

  24.    get_user_info(id, "name", szNewName, 31);

  25.    get_user_name(id, szOldName, 31);

  26.      

  27.    if(!equal(szNewName, szOldName))

  28.    {

  29.       Check(id, szNewName);

  30.    }

  31. }

  32.  

  33. Check(id, szNewName[] = "")

  34. {

  35.    new szName[32];

  36.      

  37.    if(szNewName[0])

  38.    {

  39.       copy(szName, 31, szNewName);

  40.    }

  41.    else

  42.    {

  43.       get_user_name(id, szName, 31);

  44.    }

  45.      

  46.    new iNum;

  47.    new szSubStr[3];

  48.    new szNewTxtPart[3];

  49.      

  50.    while(regex_match_c(szName, g_iPattern, iNum))

  51.    {

  52.       regex_substr(g_iPattern, 0, szSubStr, 2);

  53.       copy(szNewTxtPart, 2, szSubStr);

  54.       replace(szNewTxtPart, 2, "", "nick_is_nulled");

  55.       replace_all(szName, 31, szSubStr, szNewTxtPart);

  56.    }

  57.      

  58.    set_user_info(id, "name", szName);

  59. }
[/pawn]
Во-вторых, проверка у вас не каждый раунд, а каждый спаун (это не одно и то же). Далее, что это:

[pawn]
  1. public client_authorized(id)

  2. {

  3.         set_task(0.1, "Name_Check", id)

  4. }

  5.  

  6. public client_putinserver(id)

  7. {

  8.         set_task(0.1, "Name_Check", id)

  9. }
[/pawn]
а это так вообще класс:

[pawn]
  1. public Name_Check(id)

  2. {

  3.         if(is_user_connected(id))

  4.         {

  5.                 new player_name[32]

  6.                 get_user_name(id, player_name, 31)

  7.                

  8.                 if ( ( contain(player_name, "+") != -1) )

  9.                 {

  10.                         new bad_name[32]

  11.                         get_user_name(id, bad_name, 31)

  12.                         server_cmd("kick ^"%s^" ^"[BAD NICK!] Смени ник и зайди снова!^"", bad_name)

  13.                 }

  14.         }

  15. }
[/pawn]
Получается, если в моём никнейме будет содержаться символ "+" (неважно, где, вначале, в конце, по центру) - меня выкинет.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Nick Plus Kicker

Сообщение Leo_[BH] » 08 июл 2014, 14:02

Subb98 писал(а):Получается, если в моём никнейме будет содержаться символ "+" (неважно, где, вначале, в конце, по центру) - меня выкинет.

Да, все верно)
Сохраняйте историю
Аватара пользователя
Leo_[BH]
 
Сообщения: 98
Зарегистрирован: 06 апр 2014, 17:51
Откуда: UA
Благодарил (а): 9 раз.
Поблагодарили: 30 раз.
Опыт программирования: Больше трех лет

Re: Nick Plus Kicker

Сообщение Subb98 » 08 июл 2014, 15:52

[align=justify]Leo_[BH], вы хоть знаете, в чём суть бага вообще? Сами в описании плагина пишете: "ник которых начинается на символ + ("плюс")". Так смысл выкидывать игроков, никнейм которых не начинается на символ "+"? В общем, написали код ни о чём.[/align]
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Nick Plus Kicker

Сообщение cs-noob » 08 июл 2014, 17:25

Leo_[BH] писал(а):Как известно, игроков, ник которых начинается на символ + ("плюс") не видно в меню бана, по этому забанить их не так просто.

Да ну, в Advanced Bans их видно еще как, да и AMXBans тоже видно, да и SuperBans, только в дефолтной системе бана не видно, но её никто не оставляет почти
Аватара пользователя
cs-noob
 
Сообщения: 127
Зарегистрирован: 30 ноя 2013, 13:57
Забанен
Благодарил (а): 59 раз.
Поблагодарили: 9 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike


Вернуться в Добавленные новые плагины

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6