Пользователи, просматривающие тему (Пользователей: 0, Гостей: 0)

Статус темы:
Закрыта.
  1. Andrey777

    Регистрация:
    30.03.15
    Сообщения:
    358
    Симпатии:
    48
    Пол:
    Мужской
    Skype:
    Andrey777best
    Всем привет кто может добавить цветной чат и сделать чтобы по флагам игнорились сообщения от админа?
    Код:
    #include <amxmodx>
    #include <amxmisc>
    #include <regex>
    new Regex:re, ret;
    
    public plugin_init() {
        register_plugin("Anti-Ad", "0.1", "Mati");
        register_clcmd("say", "CheckMessage");
        register_clcmd("say_team", "CheckMessage");
      
        new err[32];
        re = regex_compile("(?:\w+\.[a-z]{2,4}\b|(?:\s*\d+\s*\.){3})", ret, err, 31, "i");
        if (re!=REGEX_OK) server_print("Error: %s (%d)", err, ret);
    }
    
    public CheckMessage(id) {
        if (id > 0 && id < 33 && !is_user_admin(id)) {
            new text[64];
            read_args(text,63);
          
            if (strlen(text) > 4) {
                new match = regex_match_c(text, re, ret);
          
                if (match > 0) {
                    client_print(id, print_chat, "Реклама запрещена на сервере!");
                    return PLUGIN_HANDLED;
                }
            }
        }
        return PLUGIN_CONTINUE;
    }
    
    public plugin_end() {
        regex_free(re);  
    }
    /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
    *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3079\\ f0\\ fs16 \n\\ par }
    */
    
     

    Вложения:

    • antiad.sma
      Размер файла:
      1.010 байт
      Просмотров:
      0
  2. Phantom Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.978
    Симпатии:
    943
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    Код:
    #include <amxmodx>
    #include <amxmisc>
    #include <regex>
    
    new Regex:re, ret;
    
    public plugin_init()
    {
        register_plugin("Anti-Ad", "0.1", "Mati");
        register_clcmd("say", "CheckMessage");
        register_clcmd("say_team", "CheckMessage");
    
        new err[32];
        re = regex_compile("(?:\w+\.[a-z]{2,4}\b|(?:\s*\d+\s*\.){3})", ret, err, 31, "i");
        if (re!=REGEX_OK) server_print("Error: %s (%d)", err, ret);
    }
    
    public CheckMessage(id)
    {
        if(id > 0 && id < 33 && !is_user_admin(id))
        {
            new text[64];
            read_args(text,63);
    
            if (strlen(text) > 4)
            {
                new match = regex_match_c(text, re, ret);
    
                if (match > 0)
                {
                    ChatColor(id, "^1Реклама ^3запрещена ^1на сервере!");
                    return PLUGIN_HANDLED;
                }
            }
        }
        return PLUGIN_CONTINUE;
    }
    
    public plugin_end() regex_free(re);
    
    stock ChatColor(const id, const szMessage[], any:...)
    {
        static szMsg[190], IdMsg;
        vformat(szMsg, charsmax(szMsg), szMessage, 3);
    
        if(!IdMsg) IdMsg = get_user_msgid("SayText");
    
        message_begin(MSG_ONE, IdMsg, .player = id);
        write_byte(id);
        write_string(szMsg);
        message_end();
    }
    
    /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
    *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3079\\ f0\\ fs16 \n\\ par }
    */
    Сообщения от Администратора не блокируются, проверка
    Код:
    if(!is_user_admin(id))
    вроде как на это намекает
    --- добавлено 02.08.15 ---
    Я вот не понял, что это за проверка то такая
    Код:
    if(id > 0 && id < 33)
    ?
    --- добавлено 02.08.15 ---
    Получается, если игроков на сервере больше нуля и меньше 33 чтоли? Бред. Все равно не стал это убирать, мало ли, вдруг чего не знаю.
    Если хочешь, чтобы сообщения не блокировались от человека, который имеет определенный флаг, тогда вот
    Код:
    #include <amxmodx>
    #include <regex>
    
    new Regex:re, ret;
    
    #define user_flag(%0) (get_user_flags(%0) & ADMIN_IMMUNITY)
    
    public plugin_init()
    {
        register_plugin("Anti-Ad", "0.1", "Mati");
        register_clcmd("say", "CheckMessage");
        register_clcmd("say_team", "CheckMessage");
    
        new err[32];
        re = regex_compile("(?:\w+\.[a-z]{2,4}\b|(?:\s*\d+\s*\.){3})", ret, err, 31, "i");
        if(re != REGEX_OK) server_print("Error: %s (%d)", err, ret);
    }
    
    public CheckMessage(id)
    {
        if(id > 0 && id < 33 && !user_flag(id))
        {
            new text[64];
            read_args(text,63);
    
            if(strlen(text) > 4)
            {
                new match = regex_match_c(text, re, ret);
    
                if(match > 0)
                {
                    ChatColor(id, "^1Реклама ^3запрещена ^1на сервере!");
                    return PLUGIN_HANDLED;
                }
            }
        }
        return PLUGIN_CONTINUE;
    }
    
    public plugin_end() regex_free(re);
    
    stock ChatColor(const id, const szMessage[], any:...)
    {
        static szMsg[190], IdMsg;
        vformat(szMsg, charsmax(szMsg), szMessage, 3);
    
        if(!IdMsg) IdMsg = get_user_msgid("SayText");
    
        message_begin(MSG_ONE, IdMsg, .player = id);
        write_byte(id);
        write_string(szMsg);
        message_end();
    }
    
    /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
    *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3079\\ f0\\ fs16 \n\\ par }
    */
    В данном случае сообщения не будут блокироваться, если у игрока установлен флаг "a". Изменить флаг ты можешь здесь
    Код:
    #define user_flag(%0) (get_user_flags(%0) & ADMIN_IMMUNITY)
     
    Последнее редактирование: 02.08.15
    Andrey777 нравится это.
  3. neygomon Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    8.561
    Симпатии:
    4.648
    Пол:
    Мужской
    Phantom, это проверка на id игрока -_-
    чтобы проверялись сообщения от рили игрока а не от чего-то иного, например от самого сервера - id 0
     
    Andrey777 и Phantom нравится это.
  4. Phantom Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.978
    Симпатии:
    943
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    Ну вот, теперь понятно, спасибо
     
Статус темы:
Закрыта.