DiapasonGag, тихая заглушка по диапазону (удобно против динамич. IP) |
Здравствуйте, гость ( Вход | Регистрация )
DiapasonGag, тихая заглушка по диапазону (удобно против динамич. IP) |
7.10.2010, 1:53
Сообщение
#21
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
Название скрипта: DiapasonGag.lua
Версия: 1.2 Платформа: PtokaX 0.4.1.*+ API: API 2 Автор: Ksan (aka Trans) Город: Томск Дата написания: 04-04-2010 (начальная версия - в декабре 2009г) Описание: - В скрипте встроенная таблица с диапазонами для заглушки - начало диапазона и конец диапазона. - При старте скрипта проверяется наличие на хабе юзеров с заглушенных диапазонов, при обнаружении такие ники заносятся в таблицу. - при входе юзера с таких диапазонов сообщает админу о его приходе (через меню можно отменить этот показ), добавляет ник таблицу, - далее при попытке написать в чат и приват сначала проверяется наличие в таблице заглуш. ников, если да, то сообщение до остальных юзеров не дойдёт. Админу приходит извещение о попытке написать в чат или приват заглушенным юзером (через меню можно отменить этот показ) - Извещение о заглушке в чате по выбору через меню можно отправить в чат или в приват админа. Извещение о заглушке в привате админу приходит всегда в приват. - Имеется таблица команд, которые юзеру разрешено использовать даже при заглушке. - Имеется таблица ников-исключений. - Опов не глушит. В принципе, можно было бы сохранять таблицу заглуш. ников в файл, но особой нужды в этом нет, ибо таблица при старте скрипта заполняется сразу же. PS: Скрипт был написан давно, и здесь только малая часть возможностей, специально выдрал в пользу голодающих "одминов" (а остальное пусть лучше послужит тихо, контрразведка не любит шума). Думаю, аналогичные скрипты есть на форуме, но пусть и этот посидит скромненько рядом с гигантами мысли...может, пригодится кому. UPD1: (2010-10-19) Скрипт исправлен, проверен и перезалит. Приношу свои извинения за невероятно халтурную работу при первом выкладывании. :( Скрипт тогда собирал в конце бессонной ночи над другим скриптом, и умудрился такие ляпы пропустить.. UPD2: (2013-09-04) Скрипт исправлен, перезалит. Была ошибка - один из флагов был подменён другим и показ захода юзера из заглушенного диапазона не отключался. UPD3: (2017-03-13) К моему дикому смущению, снова обнаружилась ошибка, исправил и перезалил. И да, заодно ещё кое-какие небольшие изменения добавил (надеюсь, без ошибок). Благодарю CyberGhost404 за обнаружение ошибки!
Прикрепленные файлы
|
|
|
31.8.2011, 8:22
Сообщение
#22
|
|
Начинающий Группа: Пользователи Сообщений: 18 Регистрация: 18.5.2011 Из: Россия , Екатеринбург . Пользователь №: 9 261 Спасибо сказали: 4 раза |
Недавно начали флудить по личка рекламой макаронники . Скачал данный скрипт всё работает отлично. Заглушил диапазоны , а они не понимают и всё приходят изредка рекламу кидать . Спасибо !
P.S. Теперь понял , что банить не интересно , лучше заглушить |
|
|
27.1.2012, 14:12
Сообщение
#23
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 8 Регистрация: 27.1.2012 Пользователь №: 10 227 Спасибо сказали: 0 раз |
Было бы неплохо прикрутить к скрипту меню, через которую, можно было бы управлять диапазонами заглушек!
Добавление и Удаление. Просто править сам скрипт в ручную, иногда не представляется возможным. А через меню будет проще, и не только мне. |
|
|
27.1.2012, 14:21
Сообщение
#24
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
Sergius`, для этого есть другой мой скрипт.
А совмещать их нет смысла, у них разные функции, да и объединённый скрипт получится монструозный.. Если считаешь необходимым, нетрудно заглушить через второй скрипт диапазон, куда входит IP рекламщика. И это делается как раз через меню. Через ОЧЕНЬ большое меню. Тебе понравится. |
|
|
27.1.2012, 14:26
Сообщение
#25
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 8 Регистрация: 27.1.2012 Пользователь №: 10 227 Спасибо сказали: 0 раз |
Sergius`, для этого есть другой мой скрипт. А совмещать их нет смысла, у них разные функции, да и объединённый скрипт получится монструозный.. Уважаемый Ksan пожалуйста сделайте меню именно к этому скрипту. Я вас очень сильно прошу! Если для вас письменная форма не так внушительна, готов предложить денежную награду, за проделанную работу. |
|
|
27.1.2012, 14:51
Сообщение
#26
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
Sergius`, нет.
Не вижу ни одну причину, почему нельзя юзать предложенный мной вариант. |
|
|
27.1.2012, 15:02
Сообщение
#27
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 8 Регистрация: 27.1.2012 Пользователь №: 10 227 Спасибо сказали: 0 раз |
|
|
|
27.1.2012, 16:52
Сообщение
#28
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
Sergius`, не будьте капризными и слишком привередливыми.
Мне нет необходимости соединять два скрипта только по желанию одного человека. Это время и усилия. И не надо предлагать деньги, дело не в деньгих. А поставить ещё 1 скрипт и юзать его как хочется - нетрудно. Извините.. |
|
|
27.1.2012, 17:14
Сообщение
#29
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 8 Регистрация: 27.1.2012 Пользователь №: 10 227 Спасибо сказали: 0 раз |
Ksan Да, я очень привередливый! Даже слишком. Жаль конечно что мы не смогли договориться.
|
|
|
27.1.2012, 18:35
Сообщение
#30
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
Sergius`, я тоже привередливый.
И именно потому научился сам писать скрипты, а не клянчить у других то переделать, это придумать, там новый написать.. И переделывать, когда что-то не нравится. Назвались админом - полезайте в кузов, то бишь, учитесь работать со скриптами, овладевайте языком Луа в пределах, необходимых для написания и переделки скриптов под Птоку.. Это касается всех местных дежурных попрошаек тоже. |
|
|
4.9.2013, 14:35
Сообщение
#31
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
UPD:
2013-09-04: Скрипт исправлен, перезалит. Была ошибка - один из флагов был подменён другим и показ захода юзера из заглушенного диапазона не отключался. Обнаружилась после конвертации скрипта под Русхаб. |
|
|
26.11.2014, 15:42
Сообщение
#32
|
|
Активный участник Группа: Пользователи Сообщений: 69 Регистрация: 14.9.2009 Пользователь №: 4 440 Спасибо сказали: 19 раз |
Код DiapasonGag.lua:65: attempt to compare number with nil при перезапуске и заходе пользователей на хаб все время в оп-чат высвечивается. как исправить? CODE --- Скрипт тихой заглушки юзеров-нарушителей по диапазону (особенно удобно против диапазонов с динамическими IP), а также информирования админа о приходе юзера с заглушенного диапазона. --- --- Название скрипта: DiapasonGag.lua --- Версия: 1.0 --- Платформа: PtokaX 0.4.1.* --- API: API 2 --- Автор: Ksan (aka Trans) --- Город: Томск --- Дата написания: 04-04-10 (начальная версия - в декабре 2009г) --- Описание: Глушит по диапазонам из таблицы, при входе юзера с таких диапазонов сообщает админу о его приходе (опционально), заносит ник в отдельную таблицу, далее при попытке написать в чат и приват сначала проверяется наличие в таблице заглуш. ников, если там нет (например, скрипт перезапустили, а юзер уже в хабе, и он не попадет в таблицу) - проверяется по диапазону ещё раз. Имеется таблица команд, которые юзеру разрешено использовать даже при заглушке. Имеется таблица ников-исключений. Опов не глушит. --- В принципе, можно сохранять таблицу заглуш. ников в файл, но особой нужды в этом нет. local sBot = SetMan.GetString(21) local sBot2 = "ReportBot" local sAdmin = "Dimon" local sCmd2 = "!showdiapazgag" local sCmd3 = "!showindiapazgag" local bFlag2 = false --- Сообщать или нет админу о заглушках local bFlag3 = false --- Сообщать или нет админу о приходе юзера с заглуш. диапазона sUngagable = { --- Незаглушаемые ники ["Ева"] = 1, ["Dimon"] = 1, ["Тест"] = 0, } tDiap = { --- Диапазоны (начало и конец) ["109.195.168.0"] = "109.195.175.255", --- что-то динамич. со спамом ["176.212.168.0"] = "176.212.175.255", --- что-то динамич. со спамом ["176.212.184.0"] = "176.212.191.255", -- что-то динамич. со спамом ["109.195.160.0"] = "109.195.167.255", -- что-то динамич. со спамом ["176.212.176.0"] = "176.212.183.255", -- что-то динамич. со спамом ["37.113.248.0"] = "37.113.255.255", -- что-то динамич. со спамом ["37.113.232.0"] = "37.113.239.255", -- что-то динамич. со спамом ["37.113.224.0"] = "37.113.231.255", -- что-то динамич. со спамом ["37.113.192.0"] = "37.113.199.255", -- что-то динамич. со спамом ["37.113.200.0"] = "37.113.207.255", -- что-то динамич. со спамом ["37.113.240.0"] = "37.113.247.255", -- что-то динамич. со спамом ["37.113.208.0"] = "37.113.215.255", -- что-то динамич. со спамом ["37.113.216.0"] = "37.113.223.255", -- что-то динамич. со спамом ["94.180.8.0"] = "94.180.15.255", -- что-то динамич. со спамом ["37.112.104.0"] = "37.112.111.255", -- что-то динамич. со спамом } tUnforbid = { -- Разрешенные команды для заглушенных "!старт", "!стоп", "!игроки", "!подскажи", "!countrystats", } tGagNicks = {} -- Заготовка под таблицу с заглуш. никами function UserConnected(tUser) if tUser.sNick == sAdmin then Core.SendToUser(tUser, "$UserCommand 1 1 • Админка •\\Переключения\\ДиапазонГАГ\\Показ заглушек$<%[mynick]> "..sCmd2.."|") Core.SendToUser(tUser, "$UserCommand 1 1 • Админка •\\Переключения\\ДиапазонГАГ\\Показ прихода$<%[mynick]> "..sCmd3.."|") end local tAdmin = Core.GetUser(sAdmin) if not tUser.bOperator and sUngagable[tUser.sNick] ~= 1 then for i, v in pairs(tDiap) do --- По диапазону decIP1 = IPtoDec(i) decIP2 = IPtoDec(v) if iIP >= decIP1 and iIP <= decIP2 then if tAdmin and bFlag3 then Core.SendPmToNick(sAdmin, sBot2, " Пришёл юзер с заглушенного диапазона. Ник - "..tUser.sNick.." IP - "..sIP) tGagNicks[tUser.sNick] = true end end end collectgarbage() end end RegConnected = UserConnected OpConnected = UserConnected function ChatArrival(tUser, sData) Core.GetUserAllData(tUser) local s,e,sMsg = string.find(sData,"%b<>%s*(.*)%|") local sData = string.sub(sData, 1, -2) local sIP = tUser.sIP local tAdmin = Core.GetUser(sAdmin) iIP = IPtoDec(sIP) if not tUser.bOperator and sUngagable[tUser.sNick] ~= 1 then if not CheckUnforbid(sData) then if tGagNicks[tUser.sNick] then Core.SendToUser(tUser, sData) if tAdmin and bFlag2 then Core.SendPmToNick(sAdmin, sBot2, "( "..sIP.." ) Заглушка по диапазону. "..sData) end else for i, v in pairs(tDiap) do --- По диапазону decIP1 = IPtoDec(i) decIP2 = IPtoDec(v) if iIP >= decIP1 and iIP <= decIP2 then Core.SendToUser(tUser, sData) return true end end end collectgarbage() end end end ToArrival = ChatArrival function IPtoDec(sIP) --- Конвертирование IP в целочисленный вид if sIP then local a,b,c,d = sIP:match("^(%d+)%.(%d+)%.(%d+)%.(%d+)$") if a and b and c and d then return a*16777216 + b*65536 + c*256 + d end end end function CheckUnforbid(sArgument) -- Проверка на разрешённые слова sArgument = StringLower(sArgument) for i = 1, #tUnforbid do sUnforbidi = StringLower(tUnforbid[i]) --- if string.find(sArgument, sUnforbidi, 1, true) then if sUnforbidi == sArgument:match("^(%S+).*") then -- если вдруг будет ошибка на этой строке, то её надо закомментить и раскомментить предыдущую return true end end end function StringLower(arg) -- Приведение к строчным буквам local res = "" local Byte, Len = nil, string.len(arg) arg = string.lower(arg) for i = 1, Len do Byte = string.byte(arg, i) if (Byte >= 192) and (Byte < 224) then Byte = Byte + 32 end if (Byte == 168) or (Byte == 184) then Byte = 229 end res = res..string.char(Byte) end return res end function OnError(s) --- Отправка ошибки в Опчат Core.SendToOpChat(s) end вот код. |
|
|
27.11.2014, 0:18
Сообщение
#33
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
dimetro, а код зачем или он дополнялся и отличается от оригинала в первом посте?
|
|
|
27.11.2014, 0:49
Сообщение
#34
|
|
Активный участник Группа: Пользователи Сообщений: 69 Регистрация: 14.9.2009 Пользователь №: 4 440 Спасибо сказали: 19 раз |
|
|
|
27.11.2014, 3:18
Сообщение
#35
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
dimetro,
Похоже, я две строки забыл оставить в скрипте (я этот скрипт переделывал со своего более расширенного). Нужно вот что сделать - в коде функции Код function UserConnected(tUser) после строки (возможно, номер этой строки у вас - 60): Код local tAdmin = Core.GetUser(sAdmin) нужно вставить вот эти 2 строки: Код local sIP = tUser.sIP затем сохранить скрипт и перезапустить его.local iIP = IPtoDec(sIP) Прошу прощения за свой ляп! |
|
|
27.11.2014, 15:31
Сообщение
#36
|
|
Активный участник Группа: Пользователи Сообщений: 69 Регистрация: 14.9.2009 Пользователь №: 4 440 Спасибо сказали: 19 раз |
dimetro, Похоже, я две строки забыл оставить в скрипте (я этот скрипт переделывал со своего более расширенного). Нужно вот что сделать - в коде функции Код function UserConnected(tUser) после строки (возможно, номер этой строки у вас - 60): Код local tAdmin = Core.GetUser(sAdmin) нужно вставить вот эти 2 строки: Код local sIP = tUser.sIP затем сохранить скрипт и перезапустить его.local iIP = IPtoDec(sIP) Прошу прощения за свой ляп! Вставил код-все работает. Спасибо! |
|
|
13.3.2017, 3:04
Сообщение
#37
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
UPD-3: (2017-03-13)
К моему дикому смущению, снова обнаружилась ошибка, исправил и перезалил в сообщении #1. И да, заодно ещё кое-какие небольшие изменения добавил (надеюсь, без ошибок). Благодарю CyberGhost404 за обнаружение ошибки! |
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
DiapasonGag Диапазон гаг |
3 | Dimon21 | 8 349 | 4.9.2013, 14:52 Посл. сообщение: Артём |
|
Сейчас: 23.11.2024, 4:35 |