Помогите Поправить Скрипт |
Здравствуйте, гость ( Вход | Регистрация )
Помогите Поправить Скрипт |
6.4.2009, 16:02
Сообщение
#1
|
|
Активный участник Группа: Пользователи Сообщений: 77 Регистрация: 31.7.2008 Из: Омск Пользователь №: 299 Спасибо сказали: 17 раз |
в общем пользуюсь этим скриптом регистрации, менять на другой что-то не охото, привык уже да и сделан под хаб он уже...но вот есть один недочет у него я так понимаю находится он именно тут:
Код ChatArrival = function(user,data) local _,_,cmd = data:find("%b<> %p(%w+)") if cmd then cmd = cmd:lower() if cmd and RegCmds[cmd] then return Core.SendPmToUser(user,Bot,RegCmds[cmd](user,data,cmd)), true end в общем проблема такова: незарегистрированный юзер при запрете ему привата и чата, может в них писать если будет в начале сообщения писать например +r или :S или !хз и т.д. как я понимаю проблема с захватом регулярных выражений, но что-то у меня с этими самыми выражениями проблемно. Помогите кому не трудно поправить скрипт, чтоб он и сообщения начинающиеся со знаков пунктуации запрещал...
Прикрепленные файлы
|
|
|
6.4.2009, 16:35
Сообщение
#2
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Код ChatArrival = function(user,data)
local _,_,cmd = data:find("%b<> %p(%w+)") if cmd then cmd = cmd:lower() if cmd and RegCmds[cmd] then return Core.SendPmToUser(user,Bot,RegCmds[cmd](user,data,cmd)), true end if RegChat and user.iProfile == -1 then return true end else |
|
|
6.4.2009, 16:47
Сообщение
#3
|
|
Активный участник Группа: Пользователи Сообщений: 77 Регистрация: 31.7.2008 Из: Омск Пользователь №: 299 Спасибо сказали: 17 раз |
о всё сам затупил немного) спасибо работает всё
|
|
|
19.4.2009, 11:17
Сообщение
#4
|
|
Активный участник Группа: Пользователи Сообщений: 77 Регистрация: 31.7.2008 Из: Омск Пользователь №: 299 Спасибо сказали: 17 раз |
ребят, возникла еще одна проблемка, у меня на хабе стоит скрипт который показывает из какой сети юзер в описании, поэтому решил запретить у себя регать ники типа [inet]NICK или (сеть)Ник и т.д. зачем искажать ники префиксами...
но вот один запрет скобок и тому подобного не помогает, убирают скобки, делают ник типа inetNick и регаются, поэтому решил вписать в запрещенные символы наиболее встречающиеся аббревиатуры еще, у нас это: ws, oks, inet, mks и т.д. добавлял и %[wW%]%[sS%] и WS в общем по разному, результат один...заходит человек под ником бесёнок и не может зарегаться, я так понимаю потому что у него в нике есть буквы: о, к, с как сделать так чтобы скрипт реагировал не на отдельные символы, а на слова? так вопрос снят, я зачем то писал проценты надо было [wW][sS] но теперь возникла другая проблема когда Код nick:find("[%c\$\|\<\>\:\?\*\"\/\\\+\!\%[\%]\{\}\=\;\(\)\%\^\&\`\~\№\'\[оО][кК][сС]]") then всё работает захожу я с ником NickОкС и мне не дает регаться, а когда Код nick:find("[%c\$\|\<\>\:\?\*\"\/\\\+\!\%[\%]\{\}\=\;\(\)\%\^\&\`\~\№\'\[оО][кК][сС]\[мМ][кК][сС]\[oO][kK][cC]\[mM][kK][sS]\[mM][kK][cC]\[wW][sS]\[dD][oO][mM]\[дД][оО][мМ]\[oO][mM][kK][cC]\[oO][kK][sS]\[iI][nN][eE][tT]\[iI][nN][tT][eE][rR][nN][eE][tT]\[sS][iI][bB]\[wW][eE][bB][sS][tT][rR][eE][aA][mM]\[mM][nN][xX]]") then не хочет работать, регает такой ник всёравно...в чем причина? часть скрипта: Код RegCmds = { regme = function(user,data,cmd) if user then local nick = user.sNick if user.iProfile ~= -1 then return "Не глупите, "..nick..", вы уже зарегистрированы!" elseif Core.GetUserAllData(user) then local _,_,pwd = data:find("%b<> %p%w+ (%S+)|$") if pwd then if nick:find("[%c\$\|\<\>\:\?\*\"\/\\\+\!\%[\%]\{\}\=\;\(\)\%\^\&\`\~\№\'\[оО][кК][сС]\[мМ][кК][сС]\[oO][kK][cC]\[mM][kK][sS]\[mM][kK][cC]\[wW][sS]]") then return "Ваш ник содержит недопустимые символы. На хабе запрещены ники, содержащие знаки пунктуации, в том числе (,),[,] и аббревиатуры: окс, мкс, okc, mks, mkc, ws, dom.ru, omkc, oks, inet, internet, sib, webstream, так как название сети автоматически отображается в описании юзера. ".. "Пожалуйста, переименуйтесь. Чтобы переименовать ник только на этом хабе добавьте хаб в избранные и затем, нажмите ctrl+f и впишите в свойства хаба свой ник, после чего перезайдите на хаб. Или же обратитесь к операторам хаба за помощью" end if pwd:find("[%c\$\|\<\>\:\?\*\"\/\\\+\!\%[\%]\{\}\=\;\(\)\%\^\&\`\~\№\,]") then return "Ваш пароль содержит недопустимые символы. Разрешены русские и английские буквы, и цифры. Запрещены пунктуационные знаки. ".. "Пожалуйста выберите новый пароль." end прошу помощи) |
|
|
Похожие темы
|
Сейчас: 23.11.2024, 12:20 |