Статус темы:
Закрыта.
  1. Andrey777 Пользователь

    Регистрация:
    30.03.15
    Сообщения:
    262
    Симпатии:
    36
    Пол:
    Мужской
    Skype:
    Andrey777best
    Всем привет кто может добавить цветной чат и сделать чтобы по флагам игнорились сообщения от админа?
    Код (Unknown Language):
    1. #include <amxmodx>
    2. #include <amxmisc>
    3. #include <regex>
    4. new Regex:re, ret;
    5.  
    6. public plugin_init() {
    7.     register_plugin("Anti-Ad", "0.1", "Mati");
    8.     register_clcmd("say", "CheckMessage");
    9.     register_clcmd("say_team", "CheckMessage");
    10.  
    11.     new err[32];
    12.     re = regex_compile("(?:\w+\.[a-z]{2,4}\b|(?:\s*\d+\s*\.){3})", ret, err, 31, "i");
    13.     if (re!=REGEX_OK) server_print("Error: %s (%d)", err, ret);
    14. }
    15.  
    16. public CheckMessage(id) {
    17.     if (id > 0 && id < 33 && !is_user_admin(id)) {
    18.         new text[64];
    19.         read_args(text,63);
    20.      
    21.         if (strlen(text) > 4) {
    22.             new match = regex_match_c(text, re, ret);
    23.      
    24.             if (match > 0) {
    25.                 client_print(id, print_chat, "Реклама запрещена на сервере!");
    26.                 return PLUGIN_HANDLED;
    27.             }
    28.         }
    29.     }
    30.     return PLUGIN_CONTINUE;
    31. }
    32.  
    33. public plugin_end() {
    34.     regex_free(re);  
    35. }
    36. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
    37. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3079\\ f0\\ fs16 \n\\ par }
    38. */
    39.  
     

    Вложения:

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

    Регистрация:
    27.02.15
    Сообщения:
    1.685
    Симпатии:
    791
    Пол:
    Мужской
    Telegram:
    ph4nt0m
    Код (Unknown Language):
    1. #include <amxmodx>
    2. #include <amxmisc>
    3. #include <regex>
    4.  
    5. new Regex:re, ret;
    6.  
    7. public plugin_init()
    8. {
    9.     register_plugin("Anti-Ad", "0.1", "Mati");
    10.     register_clcmd("say", "CheckMessage");
    11.     register_clcmd("say_team", "CheckMessage");
    12.  
    13.     new err[32];
    14.     re = regex_compile("(?:\w+\.[a-z]{2,4}\b|(?:\s*\d+\s*\.){3})", ret, err, 31, "i");
    15.     if (re!=REGEX_OK) server_print("Error: %s (%d)", err, ret);
    16. }
    17.  
    18. public CheckMessage(id)
    19. {
    20.     if(id > 0 && id < 33 && !is_user_admin(id))
    21.     {
    22.         new text[64];
    23.         read_args(text,63);
    24.  
    25.         if (strlen(text) > 4)
    26.         {
    27.             new match = regex_match_c(text, re, ret);
    28.  
    29.             if (match > 0)
    30.             {
    31.                 ChatColor(id, "^1Реклама ^3запрещена ^1на сервере!");
    32.                 return PLUGIN_HANDLED;
    33.             }
    34.         }
    35.     }
    36.     return PLUGIN_CONTINUE;
    37. }
    38.  
    39. public plugin_end() regex_free(re);
    40.  
    41. stock ChatColor(const id, const szMessage[], any:...)
    42. {
    43.     static szMsg[190], IdMsg;
    44.     vformat(szMsg, charsmax(szMsg), szMessage, 3);
    45.  
    46.     if(!IdMsg) IdMsg = get_user_msgid("SayText");
    47.  
    48.     message_begin(MSG_ONE, IdMsg, .player = id);
    49.     write_byte(id);
    50.     write_string(szMsg);
    51.     message_end();
    52. }
    53.  
    54. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
    55. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3079\\ f0\\ fs16 \n\\ par }
    56. */
    Сообщения от Администратора не блокируются, проверка
    Код (Unknown Language):
    1. if(!is_user_admin(id))
    вроде как на это намекает
    --- добавлено 02.08.15 ---
    Я вот не понял, что это за проверка то такая
    Код (Unknown Language):
    1. if(id > 0 && id < 33)
    ?
    --- добавлено 02.08.15 ---
    Получается, если игроков на сервере больше нуля и меньше 33 чтоли? Бред. Все равно не стал это убирать, мало ли, вдруг чего не знаю.
    Если хочешь, чтобы сообщения не блокировались от человека, который имеет определенный флаг, тогда вот
    Код (Unknown Language):
    1. #include <amxmodx>
    2. #include <regex>
    3.  
    4. new Regex:re, ret;
    5.  
    6. #define user_flag(%0) (get_user_flags(%0) & ADMIN_IMMUNITY)
    7.  
    8. public plugin_init()
    9. {
    10.     register_plugin("Anti-Ad", "0.1", "Mati");
    11.     register_clcmd("say", "CheckMessage");
    12.     register_clcmd("say_team", "CheckMessage");
    13.  
    14.     new err[32];
    15.     re = regex_compile("(?:\w+\.[a-z]{2,4}\b|(?:\s*\d+\s*\.){3})", ret, err, 31, "i");
    16.     if(re != REGEX_OK) server_print("Error: %s (%d)", err, ret);
    17. }
    18.  
    19. public CheckMessage(id)
    20. {
    21.     if(id > 0 && id < 33 && !user_flag(id))
    22.     {
    23.         new text[64];
    24.         read_args(text,63);
    25.  
    26.         if(strlen(text) > 4)
    27.         {
    28.             new match = regex_match_c(text, re, ret);
    29.  
    30.             if(match > 0)
    31.             {
    32.                 ChatColor(id, "^1Реклама ^3запрещена ^1на сервере!");
    33.                 return PLUGIN_HANDLED;
    34.             }
    35.         }
    36.     }
    37.     return PLUGIN_CONTINUE;
    38. }
    39.  
    40. public plugin_end() regex_free(re);
    41.  
    42. stock ChatColor(const id, const szMessage[], any:...)
    43. {
    44.     static szMsg[190], IdMsg;
    45.     vformat(szMsg, charsmax(szMsg), szMessage, 3);
    46.  
    47.     if(!IdMsg) IdMsg = get_user_msgid("SayText");
    48.  
    49.     message_begin(MSG_ONE, IdMsg, .player = id);
    50.     write_byte(id);
    51.     write_string(szMsg);
    52.     message_end();
    53. }
    54.  
    55. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
    56. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3079\\ f0\\ fs16 \n\\ par }
    57. */
    В данном случае сообщения не будут блокироваться, если у игрока установлен флаг "a". Изменить флаг ты можешь здесь
    Код (Unknown Language):
    1. #define user_flag(%0) (get_user_flags(%0) & ADMIN_IMMUNITY)
     
    Последнее редактирование: 02.08.15
    Andrey777 нравится это.
  3. neygomon Его Темнейшество :j Команда форума

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

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