Lua [Samp-RP] AdBlock

Meinhard

Новичок
Автор темы
17
4

AdBlock

Cкрипт, блокирующий объявления, действия администрации, входы и выходы сквада, Event Team, мероприятия, государственную волну. Имеется простенькая менюшка для настройки конфигурации скрипта, активирующаяся командой /adblock.

Зависимости: mimgui, events, inicfg
Скриншот менюшки: клик
 

Вложения

  • AdBlock.lua
    9 KB · Просмотры: 13

kyrtion

Известный
1,188
438
Не полностью поработал с регулярном выражении. Ты хоть вообще-то пробовал протестировать и немного хакнуть?

Lua:
local blockMessage = {
    ['news'] = '.+Объявление:.+%. Присла',
    ['newsEditor'] = 'Редакция News',
    ['admins'] = 'Администратор:',
    ['event'] = '%[Event%]',
    ['events'] = '%[Центр развлечений%]',
    ['gov'] = 'Новости:',
    ['govStart'] = '-----------=== Государственные Новости ===-----------',
    ['squad'] = '%[Сообщество%]',
}
Ок, вот ты пишешь в чате например, "[Сообщество]" - всё, строка удалилась, а на самом деле это игрок написал фразу в чате, лол. Также и "Новости:" и тд
Поэтому нужно поработать полностью и гарантированная защита от дураков:

src/constant/blacklistchat.lua:
local function reg(regex, color)
  return { color = color or nil, regex = true, pattern = regex }
end

local function msg(message, color)
  return { color = color or nil, pattern = message }
end

local black_list_chat = {
  -- ['test'] = {
  --   reg '%$' -- input chat: $
  -- },
  ['welcome'] = {
    reg '^В нашей группе ВКонтакте %S+ ид.т раздача подарков$',
    reg '^Для участия нужно написать в ЛС группы кодовое слово . %S+$',
    reg '^Используйте команду %S+ и %S+ для выполнения заданий%!$',
    reg '^Выполня.те и получа.те %S+ эксклюзивные скины и многое другое$',
  },
  ['recon'] = {
    msg '* Для того, чтобы закончить слежку за игроком, введите /re off',
    msg '* Чтобы войти в управление панелью, нажмите кнопку ENTER',
  },
  ['ad_aad'] = {
    reg '^Создатель %S-: Пиши в ЛС группы %S+ и получай секретный приз: vk%.com%/%S+',
    reg '^Создатель %S-: Отыгрывай %d+ часов и получай халявную админку . %S+$',
    reg '^Создатель %S-: Добавляй IP нашего сервера в избранные: %S+$',
  },
  ['ad_1'] = {
    reg '^. %S+ %S+ . Акция %S+ . больше предложений! %S+$',
    reg '^. %S+ %S+ . Админки всего за 100 рублей! %(покупка . %S-%)$',
    reg '^. %S+ %S+ . %S+ %S+ сервера %(%S+ %S-%) всего за %d+ рублей%! %(покупка . %S-%)$',
    reg '^. %S+ %S+ . %S+ %S+ сервера всего за %d+ рублей%! %(покупка . %S-%)$',
  },
  ['ad_2'] = {
    reg '^Хотите выделяться из %S+ . нашем %S+ %S+ вы можете приобрести %S+ возможности%!$',
    reg '^%S+ VIP Аккаунт, аксессуары, костюмы, %S+ слоты личного транспорта и многое другое$',
    reg '^Прямо сейчас проходит %S+ %S+ на донат%. Все зачисления умножаются в %d+ %S+$',
    reg '^%S+ %| Хочешь стать лидером организации%? Вводи . %S+$',
    reg '^%S+ %| Получай админку или хелперку бесплатно . %S+$',
  },
  ['adm_ad_1'] = {
    reg '^%S+ Сегодня низкие цены в %S+, не упусти %S+$',
    reg '^%S+ Чтобы пополнить игровой сч.т, перейдите на наш сайт %S+$',
  },
  ['pr'] = {
    reg '^. %S+ . Ты выиграл %S+ на %S+ . %S-%! Вводи скорее команду %S+$'
  },
  ['goadminka'] = {
    reg '^. %S+ %S+ . Зовите всех своих друзей, чтобы онлайн побыстрее набрался %S+$'
  }
}

return black_list_chat
Вот как видишь что я указывал в начале и конец символов ^$
%S+ - выделяет символы, но кроме пробелов, если нужно прохукать минимально то %S-