myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему

> Fuck2UnReg, API1, API2 | Скрипт ограничений для незарегистрированных юзеров

Теги
Нет тегов для показа
Артём
сообщение 24.5.2012, 21:32
Сообщение #21


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




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


Спасибо сказали:
Go to the top of the page
+Quote Post
Marc
сообщение 17.7.2013, 17:41
Сообщение #22


Активный участник
***

Группа: Пользователи
Сообщений: 93
Регистрация: 25.1.2010
Пользователь №: 5 828
Спасибо сказали: 7 раз




Данный скрипт работает, но для незарегенных разрешает пользоваться поиском, используя команду " $Search ", хотя в самом скрипте есть это: "поиск и скачивание для незарегистрированных пользователей запрещены! Зарегистрируйтесь, пожалуйста!"
Так как всё остальное работает, то как поправить, чтобы при введении в окно поиска любого слова приходило незарегенным это же выражение: "поиск и скачивание для незарегистрированных пользователей запрещены! Зарегистрируйтесь, пожалуйста!"
Go to the top of the page
+Quote Post
Артём
сообщение 17.7.2013, 18:23
Сообщение #23


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




Marc, попробуй в конце добавить SearchArrival = ConnectToMeArrival
Go to the top of the page
+Quote Post
Marc
сообщение 17.7.2013, 19:24
Сообщение #24


Активный участник
***

Группа: Пользователи
Сообщений: 93
Регистрация: 25.1.2010
Пользователь №: 5 828
Спасибо сказали: 7 раз




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


Не помогло!
проходит поиск в окне поиска у незарегенных также!
что-то ещё надо видно!
Сам зашёл под гостем и попробовал! Скрипт перезапускал с изменениями! Хаб пока не перезапускал....
Go to the top of the page
+Quote Post
Ksan
сообщение 17.7.2013, 20:03
Сообщение #25


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




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


Спасибо сказали:
Go to the top of the page
+Quote Post
Marc
сообщение 17.7.2013, 23:30
Сообщение #26


Активный участник
***

Группа: Пользователи
Сообщений: 93
Регистрация: 25.1.2010
Пользователь №: 5 828
Спасибо сказали: 7 раз




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

Ksan!
В вашем же отдельном скрипте под API2 сообщения в чаты не идут, скачка не идёт, а вот поиск проходит незарегенным!
Go to the top of the page
+Quote Post
Ksan
сообщение 18.7.2013, 14:58
Сообщение #27


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Marc, опс, попробуйте добавить эту строку после функции ConnectToMeArrival:
Код
SearchArrival = ConnectToMeArrival
Go to the top of the page
+Quote Post
Marc
сообщение 19.7.2013, 1:44
Сообщение #28


Активный участник
***

Группа: Пользователи
Сообщений: 93
Регистрация: 25.1.2010
Пользователь №: 5 828
Спасибо сказали: 7 раз




Да, теперь стало нормально!
Go to the top of the page
+Quote Post

2 страниц V  < 1 2
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Сейчас: 19.4.2024, 2:28