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

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

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

Автор: Nickolya 17.1.2010, 18:36

Название: Fuck2UnReg
Версия скрипта: 1.3
Версия API: скрипт универсальный
Первая версия от: 20 октября 2007 big_smile.gif

Цитата
позволяет выбирать что будет запрещено для незарегистрированных пользователей, возможен запрет чата, привата и (или) скачиания и поиска
Переделка моего старого скрипта. При запрещенном действии юзеру отсылается сообщение. В этой версии добавлено: апи2 и фильтр айпи-адресов, позволяющий не трогать те диапазоны что вбиты в скрипт.

Код
-- что запрещаем при старте скрипта (1 - запрещено)
tConfig = {
    ["bMainChat"] = 1,    -- главный чат
    ["bPM"] = 1,        -- лички
    ["bDownload"] = 1,    -- скачку
}

-- диапазоны IP, на которых не применяются правила блокировки
tAllowedRanges = {
    ["127.0.0.1"]= "127.0.0.255",            -- localhost
}


 Fuck2UnReg_v1.3.lua ( 3.19 килобайт ) : 496
 

Автор: F I L I N 17.1.2010, 22:36

Большое Спс! byebye.gif

Автор: knuckles 18.1.2010, 22:10

Скрипт полезный!!!! тока народ тупой неможет зарегится в хабах

Автор: F I L I N 19.1.2010, 0:20

Цитата(knuckles @ 18.1.2010, 22:10) *
Скрипт полезный!!!! тока народ тупой неможет зарегится в хабах


Для "тупого народа" опиши как зарегистрироваться на хабе. =) думаю это поможет...

Автор: Unterlink(X-Sky) 19.1.2010, 6:47

Цитата
Скрипт полезный!!!! тока народ тупой неможет зарегится в хабах

Задай топик, как зарегистрироваться на хабе и всё.

Либо же в скрипте, в строчках типа:
Код
tUser:SendPM(sFromNick, "*** "..(tUser.sName or tUser.sNick)..", поиск и скачивание для незарегистрированных пользователей запрещены! Зарегистрируйтесь, пожалуйста!")

подпиши в конце команду, регистрации, чтобы это выглядело, например так:
Код
tUser:SendPM(sFromNick, "*** "..(tUser.sName or tUser.sNick)..", поиск и скачивание для незарегистрированных пользователей запрещены! Зарегистрируйтесь, пожалуйста на нашем хабе! Вводите в чат команду !regme пароль")

Автор: knuckles 19.1.2010, 7:49

Хорошо попоробую так сделать, для пользователей )))

Автор: brauzer84 19.1.2010, 8:26

Занимательный скрипт! буду тестить. спасибо.

Автор: F I L I N 19.1.2010, 22:57

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

Автор: Nickolya 19.1.2010, 23:19

Какая версия апи у хаба? Просто этот фильтр я прикручивал уже в дополнения и он может косячить. Работает он так: как только скрипт запущен, при входе юзеру присваивается значение, блокировать его или нет, и если скрипт выключить и включить, тогда все пользователи что уже сидят на хабе не будут иметь значения, что автоматически приравнивается к блокировке, так что меньше перезапускайте скрипты big_smile.gif

Я перезалил в первый пост новую версию 1.3 с обработкой всех кто на хабе при запуске для фильтра по айпи! Пробуйте...

Автор: F I L I N 20.1.2010, 0:56

апи2
вот какраз в этом тои касяг Точна был=)) я какраз там скрипт регистрации пытался подкоректировать и думаю что за фигня только человек мог писать в общий а потом оп регистрируется и жалуетца что мол регстрация вдруг какая то выезла у него.. скачал 1.3 версию сейчас поставлю ее ;)

Автор: Fodin 22.1.2010, 10:31

Есть один мааааленький нюанс. Если запретить общаться в главном чате, то юзер не сможет зарегаться, набив команду в нем. То же самое, если можно регаться в личке боту и запрещена личка.

Автор: Unterlink(X-Sky) 22.1.2010, 10:57

А ты попробуй скрипт регистрации выше, чем этот скрипт поставить в списке скриптов

Автор: hondas 2.2.2010, 16:59

Как зарегистрироваться, когда вы не позволяет написать !regme ....

главный чат для незарегистрированных пользователей запрещен, сообщение не отправлено! Зарегистрируйтесь,
пожалуйста!

Автор: Артём 2.2.2010, 18:23

hondas
ниже скрипта регистрации попробуй поставить

Автор: hondas 2.2.2010, 20:29

Попробуй поставить Registration_v2.1_.lua ..... не позволяет написать !regme embarrassed.gif

Автор: Nickolya 2.2.2010, 22:47

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

Автор: Kingston 12.2.2010, 10:54

поставил этот скрипт, добавил локальные диапазоны чтобы они не проверялись.

Цитата
tAllowedRanges = {
["192.168.0.0"]= "192.168.255.255",
["172.18.0.0"]= "172.20.255.255",
}

Запретил
Цитата
tConfig = {
["bMainChat"] = 0, -- главный чат
["bPM"] = 0, -- лички
["bDownload"] = 1, -- скачку
}

и фразы переделал.
но вижу что с меня юзер из инета качает файлы.
Все что написано здесь - пробовал, непомогло.
PtokaX 0.4.1.2
Ошибок в скрипте нет

Решение нашел: запрет был только для анрег юзеров

Автор: truth 3.7.2010, 23:34

А если мне нужно блокировать не только unreg(ам), но и Reg(ам) тоже, нужно что-нибудь менять? big_smile.gif

Автор: Nickolya 5.7.2010, 17:50

Надо конечно. В самое начало тогда добавляй таблицу с профилями блокируемых:

Код
tLockProfiles = {
    [3] = true,
    [-1] = true,
}

И 3 раза в скрипте заменяй
Код
if tUser.iProfile == -1 and
на
Код
if tLockProfiles[tUser.iProfile] and

Автор: ke(x)one 24.5.2012, 20:58

как сделать что бы в чат кидало когда что то пишешь а не в лс

Автор: Артём 24.5.2012, 21:32

ke(x)one, место SendPmToUser сделай SendToUser

Автор: Marc 17.7.2013, 17:41

Данный скрипт работает, но для незарегенных разрешает пользоваться поиском, используя команду " $Search ", хотя в самом скрипте есть это: "поиск и скачивание для незарегистрированных пользователей запрещены! Зарегистрируйтесь, пожалуйста!"
Так как всё остальное работает, то как поправить, чтобы при введении в окно поиска любого слова приходило незарегенным это же выражение: "поиск и скачивание для незарегистрированных пользователей запрещены! Зарегистрируйтесь, пожалуйста!"

Автор: Артём 17.7.2013, 18:23

Marc, попробуй в конце добавить SearchArrival = ConnectToMeArrival

Автор: Marc 17.7.2013, 19:24

Цитата(Артём @ 17.7.2013, 18:23) *
Marc, попробуй в конце добавить SearchArrival = ConnectToMeArrival


Не помогло!
проходит поиск в окне поиска у незарегенных также!
что-то ещё надо видно!
Сам зашёл под гостем и попробовал! Скрипт перезапускал с изменениями! Хаб пока не перезапускал....

Автор: Ksan 17.7.2013, 20:03

Marc:
1. Попробуйте так - функцию function ConnectToMeArrival в скрипте закомментите (целиком, все строки функции), а вместо неё вставьте вот эту:

Код
function ConnectToMeArrival(tUser, sData)
    local sNick = tUser.sNick
    if tUser.iProfile == -1 and not tUsers[sNick] and tConfig["bDownload"] == 1 then
        Core.SendPmToUser(tUser, sBot, "*** "..sNick..", поиск и скачивание для незарегистрированных пользователей запрещены! Зарегистрируйтесь, пожалуйста!")
        return RETURN
    end
end
И сообщите тут, получилось запретить или нет.

2. Остаётся невыясненным вопрос - ваши незарегистрированные юзеры - не из локальной ли они сети? То есть, не принадлежат ли они диапазону, который в скрипте в исключениях в самом начале? Хотя, если запрет привата/чата работает для незарегенных, то вопрос снимается..

3. А вообще, скрипт написан так, чтоб удовлетворить и API 1 и API 2, потому трудновато воспринимается.
Лучше бы его переписать строго под API 2, ибо вряд ли кто уже сидит с API 1.
И вот что у меня получилось (скрипт под API 2):
Код
-- что запрещаем при старте скрипта (1 - запрещено)
tConfig = {
    ["bMainChat"] = 1,    -- главный чат
    ["bPM"] = 1,        -- лички
    ["bDownload"] = 1,    -- скачку
}

-- диапазоны IP, на которых не применяются правила блокировки
tAllowedRanges = {
    ["127.0.0.1"]= "127.0.0.255",            -- localhost
}

local tTemp = {}
local tUsers = {}

function OnStartup()
    sBot = SetMan.GetString(21)
    DoTemp()
    local tUsersOnline = Core.GetOnlineUsers()
    for i, tUser in ipairs(tUsersOnline) do
        UserConnected(tUser)
    end
end

function UserConnected(tUser)
    local sNick = tUser.sNick
    tUsers[sNick] = checkIP(tUser.sIP)
end
OpConnected,RegConnected = UserConnected,UserConnected

function UserDisconnected(tUser)
    local sNick = tUser.sNick
    tUsers[sNick] = nil
end
RegDisconnected,OpDisconnected = UserDisconnected,UserDisconnected

function ChatArrival(tUser, sData)
    local sNick = tUser.sNick
    if tUser.iProfile == -1 and not tUsers[sNick] and tConfig["bMainChat"] == 1 then
        Core.SendPmToUser(tUser, sBot, "*** "..sNick..", главный чат для незарегистрированных пользователей запрещен, сообщение не отправлено! Зарегистрируйтесь, пожалуйста!")
        return true
    end
end

function ToArrival(tUser, sData)
    local sNick = tUser.sNick
    if tUser.iProfile == -1 and not tUsers[sNick] and tConfig["bPM"] == 1 then
        Core.SendPmToUser(tUser, sBot, "*** "..sNick..", приватные сообщения для незарегистрированных пользователей запрещены, сообщение не отправлено! Зарегистрируйтесь, пожалуйста!")
        return true
    end
end

function ConnectToMeArrival(tUser, sData)
    local sNick = tUser.sNick
    if tUser.iProfile == -1 and not tUsers[sNick] and tConfig["bDownload"] == 1 then
        Core.SendPmToUser(tUser, sBot, "*** "..sNick..", поиск и скачивание для незарегистрированных пользователей запрещены! Зарегистрируйтесь, пожалуйста!")
        return true
    end
end
SearchArrival = ConnectToMeArrival
MultiConnectToMeArrival = ConnectToMeArrival
RevConnectToMeArrival = ConnectToMeArrival
SRArrival = ConnectToMeArrival
UDPSRArrival = ConnectToMeArrival

function DoTemp()
    for a,b in pairs(tAllowedRanges) do
        tTemp[(computeIP(a))] = computeIP(b)
    end    
end

function computeIP(sIP)
    local _,_,a,b,c,d = string.find(sIP, "(%d+).(%d+).(%d+).(%d+)")
    return a*16777216 + b*65536 + c*256 + d
end

function checkIP(sIP)
    local iIP = computeIP(sIP)
    if iIP then
        for startRange,endRange in pairs(tTemp) do
            if (iIP >= startRange) and (iIP <= endRange) then
                return true
            end
        end
    end
end

function OnError(s)
    Core.SendToOpChat(s)
end

Скрипт сам не проверял, предоставляю эту радость вам. big_smile.gif
Удачи!

UPD: Добавил в версию из пункта 3 строку
Код
SearchArrival = ConnectToMeArrival

Автор: Marc 17.7.2013, 23:30

Ksan!
Спасибо! С Вашим изменённым кодом в скрипте всё стало работать!
Новый ваш пока не проверял!

Ksan!
В вашем же отдельном скрипте под API2 сообщения в чаты не идут, скачка не идёт, а вот поиск проходит незарегенным!

Автор: Ksan 18.7.2013, 14:58

Marc, опс, попробуйте добавить эту строку после функции ConnectToMeArrival:

Код
SearchArrival = ConnectToMeArrival

Автор: Marc 19.7.2013, 1:44

Да, теперь стало нормально!