Версия для печати темы
MyDC.ru _ Служебные скрипты [PtokaX] _ Fuck2UnReg
Автор: Nickolya 17.1.2010, 18:36
Название: Fuck2UnReg
Версия скрипта: 1.3
Версия API: скрипт универсальный
Первая версия от: 20 октября 2007
Цитата
позволяет выбирать что будет запрещено для незарегистрированных пользователей, возможен запрет чата, привата и (или) скачиания и поиска
Переделка моего старого скрипта. При запрещенном действии юзеру отсылается сообщение. В этой версии добавлено: апи2 и фильтр айпи-адресов, позволяющий не трогать те диапазоны что вбиты в скрипт.
Код
-- что запрещаем при старте скрипта (1 - запрещено)
tConfig = {
["bMainChat"] = 1, -- главный чат
["bPM"] = 1, -- лички
["bDownload"] = 1, -- скачку
}
-- диапазоны IP, на которых не применяются правила блокировки
tAllowedRanges = {
["127.0.0.1"]= "127.0.0.255", -- localhost
}
Автор: F I L I N 17.1.2010, 22:36
Большое Спс!
Автор: 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
Какая версия апи у хаба? Просто этот фильтр я прикручивал уже в дополнения и он может косячить. Работает он так: как только скрипт запущен, при входе юзеру присваивается значение, блокировать его или нет, и если скрипт выключить и включить, тогда все пользователи что уже сидят на хабе не будут иметь значения, что автоматически приравнивается к блокировке, так что меньше перезапускайте скрипты
Я перезалил в первый пост новую версию 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
Автор: 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(ам) тоже, нужно что-нибудь менять?
Автор: 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
Скрипт сам не проверял, предоставляю эту радость вам.
Удачи!
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
Да, теперь стало нормально!