Fuck2UnReg, API1, API2 | Скрипт ограничений для незарегистрированных юзеров |
Здравствуйте, гость ( Вход | Регистрация )
Fuck2UnReg, API1, API2 | Скрипт ограничений для незарегистрированных юзеров |
24.5.2012, 21:32
Сообщение
#21
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
ke(x)one, место SendPmToUser сделай SendToUser
|
|
|
17.7.2013, 17:41
Сообщение
#22
|
|
Активный участник Группа: Пользователи Сообщений: 93 Регистрация: 25.1.2010 Пользователь №: 5 828 Спасибо сказали: 7 раз |
Данный скрипт работает, но для незарегенных разрешает пользоваться поиском, используя команду " $Search ", хотя в самом скрипте есть это: "поиск и скачивание для незарегистрированных пользователей запрещены! Зарегистрируйтесь, пожалуйста!"
Так как всё остальное работает, то как поправить, чтобы при введении в окно поиска любого слова приходило незарегенным это же выражение: "поиск и скачивание для незарегистрированных пользователей запрещены! Зарегистрируйтесь, пожалуйста!" |
|
|
17.7.2013, 18:23
Сообщение
#23
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
Marc, попробуй в конце добавить SearchArrival = ConnectToMeArrival
|
|
|
17.7.2013, 19:24
Сообщение
#24
|
|
Активный участник Группа: Пользователи Сообщений: 93 Регистрация: 25.1.2010 Пользователь №: 5 828 Спасибо сказали: 7 раз |
|
|
|
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 Удачи! UPD: Добавил в версию из пункта 3 строку Код SearchArrival = ConnectToMeArrival
|
|
|
17.7.2013, 23:30
Сообщение
#26
|
|
Активный участник Группа: Пользователи Сообщений: 93 Регистрация: 25.1.2010 Пользователь №: 5 828 Спасибо сказали: 7 раз |
Ksan!
Спасибо! С Вашим изменённым кодом в скрипте всё стало работать! Новый ваш пока не проверял! Ksan! В вашем же отдельном скрипте под API2 сообщения в чаты не идут, скачка не идёт, а вот поиск проходит незарегенным! |
|
|
18.7.2013, 14:58
Сообщение
#27
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
Marc, опс, попробуйте добавить эту строку после функции ConnectToMeArrival:
Код SearchArrival = ConnectToMeArrival
|
|
|
19.7.2013, 1:44
Сообщение
#28
|
|
Активный участник Группа: Пользователи Сообщений: 93 Регистрация: 25.1.2010 Пользователь №: 5 828 Спасибо сказали: 7 раз |
Да, теперь стало нормально!
|
|
|
|
Сейчас: 23.11.2024, 12:22 |