Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Служебные скрипты [PtokaX] _ Gagme

Автор: alex82 22.3.2009, 3:58

Название скрипта: GagMe
Версия: 1.01
Версия API: API2
Автор: alex82

Описание:
Cкрипт позволяет блокировать функции общения для определённых ников или IP.

Дополнительная информация:
При указании времени заглушки необходимо использовать формат, аналогичный используемому в командах временных банов PtokaX.

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

 GagMe_v1.01.rar ( 3.65 килобайт ) : 480

Автор: intlive 22.3.2009, 9:45

Заглушил юзера по ип на 10 минут вылезло: [13:44] Синтаксис D:\0.4.1.1\scripts\GagMe.lua:134: attempt to call global 'TimeToString' (a nil value)
Сообщения в чат проходят...
Пробовал по нику - тоже самое.. still_dreaming.gif

Автор: alex82 22.3.2009, 11:58

Исправил.

Если заметишь ещё какие-то косяки - пиши.

Автор: intlive 22.3.2009, 12:09

Спасибо, после исправления все работает на ура! feel_good.gif
А нельзя сделать что заглушенный юзер мог написать в личку только указанным профилям? (админам - опам) surrender.gif

Автор: truth 17.10.2009, 1:34

А можно пожалуйста добавить команду для просмотра списка заглушеных? (сразу добавить ее в меню). Было бы очень полезно.

Автор: alex82 17.10.2009, 16:04

truth

А разве её нету? Посмотри внимательно.

Автор: truth 17.10.2009, 18:32

Вот это туфли гнутся, конечно есть! А я то думаю что-то здесь не то..

Автор: Setup 22.10.2009, 5:32

Сделайте пожалуйста чтобы было видно какую фразу юзер пытается написать в ЛС, аналогично как и при попытке написания в ГЧ. ;-)

Автор: alex82 25.10.2009, 22:23

Setup

Нехорошо читать сообщения, адресованные не тебе.

Автор: Setup 27.10.2009, 11:23

Цитата(alex82 @ 25.10.2009, 22:23) *
Setup

Нехорошо читать сообщения, адресованные не тебе.


если юзер заглушен полность, то уже не особо важно куда оно адресовано ;-)

Автор: Артём 27.10.2009, 11:27

Цитата(Setup @ 27.10.2009, 10:23) *
если юзер заглушен полность, то уже не особо важно кому и чего адресовано ;)

Вот тебе и ответ!!! big_smile1.gif

Автор: Trans 27.10.2009, 13:22

Цитата
если юзер заглушен полность, то уже не особо важно куда оно адресовано ;-)

Тогда неважно и что он пишет! Сказано тебе - нехорошо читать то, что не тебе адресовано, если это приватное сообщение! Мало ли что он заглушен.

Автор: Setup 28.10.2009, 18:01

Спасибо, сделал уже без вашей помощи. :-P

Автор: truth 29.10.2009, 14:31

А можно в таблицу "Список заглушенных" добавить ник рядом с IP заглушенного и причину..
Ну, собственно, вот такая ситуация. НА хабе обязательной регистрации нет, значит по нику глушить не лучший вариант. Зато локальная сеть и заглушки по IP более чем достаточно. Вот так некоторых пользователей заглушили на долгий срок по IP.. а теперь смотрю список заглушенных, а кто есть кто и по какой причине не ясно confuse.gif

Хотелось бы, что бы при просмотре списка.. там где заглушенные IP выводился ник пользователя, который был во время заглушки, ну и причина..
Пример:

Код
Список заглушенных IP:

    192.168.14.149 (ValeNtin)
    ----------------------------------------------------------
        Заглушен Moderator 25 октября в 15:39.
        Снятие заглушки: никогда
        Причина: Флуд

    192.168.7.236 (Masyania)
    ----------------------------------------------------------
        Заглушен Moderator 16 октября в 21:59.
        Снятие заглушки: никогда
        Причина: Мат



Автор: Артём 29.10.2009, 19:30

Зачем? unhappy.gif

Автор: Trans 29.10.2009, 19:37

Как зачем? Нормальная просьба. Чтоб знать, кто за данным айпи. Может, пора уже разглушить, может, обстоятельства изменились. Мало ли. Лишняя информация никогда не лишняя.
По существу просьбы - я в таких случаях в строке "Причина" в конце причины в скобках пишу ник заглушаемого.

Автор: Артём 29.10.2009, 20:13

Вроде в скрипте если юзер по нику заглушен то ник пишется, а если IP глушится то зачем нужно ещё знать ник? Ник может и сменить заглушенный

Автор: truth 29.10.2009, 20:50

Артём, ну вроде бы все кристально понятно big_smile.gif
Сеть локальная, ники по 250 раз не меняют. В чате общаются самые активные.. Глушить по нику впринципе глуповато, ведь сменить не проблема, тем более когда банишь не на 10 минут пользователя. Поставил по IP заглушку, а потом смотришь список и ломаешь голову кто есть кто, гораздо же легче запоминать по никам, да и еще когда перед глазами причина..

Цитата
По существу просьбы - я в таких случаях в строке "Причина" в конце причины в скобках пишу ник заглушаемого.

А причина то и не выводиться в список заглушенных ;)

Автор: Артём 29.10.2009, 21:25

Цитата
... тем более когда банишь не на 10 минут пользователя. Поставил по IP заглушку, а потом смотришь список и ломаешь голову кто есть кто, гораздо же легче запоминать по никам, да и еще когда перед глазами причина....

так это другое дело
Цитата
А причина то и не выводиться в список заглушенных ;)

добавь пункт причины и будет feel_good.gif

Автор: truth 3.11.2009, 1:28

И было бы очень полезно закинуть причину заглушки при выдачи сообщения от бота.

Код
[00:18:33] <Bot> _Вася_ нежно заткнул IP 192.168.8.114 (Петя) на 10 минут. Причина: Флуд.


Ну вот, что бы примерно вот так было big_smile.gif

alex82, найди пожалуйста немного времени ;)

Автор: Артём 3.11.2009, 11:34

truth ты пользуешся хоть тем скриптом что в первом посту??? bad_smile.gif
Ибо в нём есть то что ты просишь

Цитата
[10:29:50] <Ботяраbig_smile.gif> Артём заглушил юзера вася. Причина: флуд.

Цитата
- <<<<<<<<<<<<<<<<<<<<<<<GagMe v1.01>>>>>>>>>>>>>>>>>>>>>>>
Список заглушенных юзеров:

вася
----------------------------------------------------------
Заглушен Артём 3 ноября в 10:29. Причина: флуд.
Снятие заглушки: никогда

Список заглушенных IP:

На данный момент никто не заглушен

а юзеру выдаёт вот такое
Цитата
<Ботяраbig_smile.gif> Вы не можете отправлять сообщения в чат. Причина: флуд
Возможность общаться в чате будет возвращена 3 ноября в 10:44 (через 9 минут 56 секунд).

Автор: truth 3.11.2009, 11:42

хм..

В списке заглушенных нет причины. Юзеру то причину выдает, а в общак от бота - неа.. =\ Кто-то из нас начинает сходить с ума О_о

Автор: Артём 3.11.2009, 11:48

Цитата(truth @ 3.11.2009, 10:42) *
Кто-то из нас начинает сходить с ума О_о

bad_smile.gif наверно ты big_smile1.gif , я только что поставил скрипт из этой тему, с первого поста и проверил, может ты не в тот раздел заглушки пишишь))))

Автор: truth 3.11.2009, 15:08

Тьфу блин, глянул исходник вроде причина написана, но почему-то в общак она не выходит.. и в списке заглушенных ее нет =\

Автор: evg 10.2.2010, 14:35

причина не записывалась только если глушить выделенного юзера по ипу
ищем:

Код
    [tCmd.GagUserIP] = function(user,data)
        local _,_,nick = data:find("^(%S+)")
        local _,_,num,w = data:find("^%S+%s+(%d+)([mhdwMY])")
        if nick then
            local usr = Core.GetUser(nick)
            if usr then
                local IP = usr.sIP
                if num and w then
                    local iGagTime = GetGagTime(num,w)
                    if tIPs[IP] and (tIPs[IP][1] == 0 or tIPs[IP][1]+tIPs[IP][2]-os.time(os.date("*t")) > iGagTime) then
                        ToUser(user,"Ошибка: IP "..IP.." ("..nick..") уже заглушен на срок, превышающий тот, что указан Вами.")
                    else
                        local _,_,reason = data:find("^%d+%.%d+%.%d+%.%d+%s+%d+%w%s+(.+)$")
                        tIPs[IP] = {iGagTime,os.time(os.date("*t")),user.sNick,reason}
                        Save()
                        local sReason = ""
                        if reason then sReason = " Причина: "..reason.."." end
                        ToOps(user.sNick.." заткнул IP "..IP.." ("..nick..") на"..Ling:TimeToString(iGagTime).."."..sReason)
                    end
                else
                    if tIPs[IP] and tIPs[IP][1] == 0 then
                        ToUser(user,"Ошибка: IP "..IP.." ("..nick..") уже заглушен.")
                    else
                        local _,_,reason = data:find("^%d+%.%d+%.%d+%.%d+%s+(.+)$")
                        tIPs[IP] = {0,os.time(os.date("*t")),user.sNick,reason}
                        Save()
                        local sReason = ""
                        if reason then sReason = " Причина: "..reason.."." end
                        ToOps(user.sNick.." заткнул IP "..IP.." ("..nick..")."..sReason)
                    end
                end
            else
                ToUser(user,"Ошибка: юзер "..nick.." не найден.")
            end
        else
            ToUser(user,"Ошибка: не указан ник.")
        end
    end,


меняем(у меня это 281 строка):
Код
                        local _,_,reason = data:find("^%d+%.%d+%.%d+%.%d+%s+%d+%w%s+(.+)$")

на
Код
                        local _,_,reason = data:find("^%S+%s+%d+%w%s+(.+)$")

тут видимо alex82 просто опечатался.

Что бы писало всем о заглушке, я добавил, сразу после
Код
                        ToOps(user.sNick.." заткнул IP "..IP.." ("..nick..") на"..Ling:TimeToString(iGagTime).."."..sReason)

это:
Код
                        Core.SendToAll("<ИМЯ_БОТА> "..user.sNick.." заткнул юзера "..nick.." на"..Ling:TimeToString(iGagTime).."."..sReason)

в остальных местах по аналогии, НО для гага ипа (так как ник не известен) это:
Код
                    Core.SendToAll("<HAPPY> "..user.sNick.." заглушил IP ("..IP..") на"..Ling:TimeToString(iGagTime).."."..sReason)


Автор: Игорь Станиславович 10.2.2010, 19:04

Цитата(alex82 @ 22.3.2009, 3:58) *
Название скрипта: GagMe
Версия: 1.01
Версия API: API2
Автор: alex82

Описание:
Cкрипт позволяет блокировать функции общения для определённых ников или IP.

Дополнительная информация:
При указании времени заглушки необходимо использовать формат, аналогичный используемому в командах временных банов PtokaX.

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

 GagMe_v1.01.rar ( 3.65 килобайт ) : 480


А есть такой на диапазон IP ?

Автор: Игорь Станиславович 16.2.2010, 9:54

Цитата(Игорь Станиславович @ 10.2.2010, 19:04) *
А есть такой на диапазон IP ?


Нашёл.

Автор: NoNick 30.9.2010, 10:13

заглушеные юзеры пишут в главный чат используя /me

Автор: Damaks 6.9.2011, 12:44

Через полтора года дополню пост evg. big_smile.gif
Причина бана по ip всё ещё не будет записываться в таблицу, она выводится только в момент бана. Нужно ещё три строчки подправить:

Строки 237 и 285

Код
tIPs[IP] = {0,os.time(os.date("*t")),user.sNick}
на
Код
tIPs[IP] = {0,os.time(os.date("*t")),user.sNick,reason}

Строка 274
Код
tIPs[IP] = {iGagTime,os.time(os.date("*t")),user.sNick}
на
Код
tIPs[IP] = {iGagTime,os.time(os.date("*t")),user.sNick,reason}