Версия для печати темы
MyDC.ru _ Запросы скриптов для PtokaX _ Скрипт запрета в никах заглавных букв
Автор: thehawk 22.2.2010, 23:09
Собственно нужен сабж. Пробовал искать, но не нашёл здесь подобного (если что, ногами не пинать). Желательно чтобы не пускал на хаб юзеров, у которых более 60% заглавных букв в нике с соответствующим сообщением. Нужен отдельный скрипт, а не в какой-то сборке.
Автор: Nickolya 23.2.2010, 15:50
Код
-- Размер сообщения с которого начинает реагировать скрипт:
iCheckSize = 5
-- Процент капса, при котором сработает скрипт:
iPersents = 60
ValidateNickArrival=function(sUser,sData)
if isYELL(sUser.sNick) then
Core.SendToUser(sUser, "*** Ваш ник не должен быть в КАПСовом виде!")
Core.Disconnect(sUser)
end
end
isYELL=function (sData)
local flag=false
local nsp = sData:gsub ("[%s%p%c]", "")
if nsp:len() > iCheckSize then
local NoSpacesLen = nsp:len()
local NoCAPSLen = (nsp:gsub("[%uА-ЯЁ]", "")):len()
if (NoSpacesLen - NoCAPSLen)/NoSpacesLen * 100 > iPersents then
flag=true
end
end
return flag
end
По-быстрому сделал, не проверял.
Автор: thehawk 23.2.2010, 16:04
Не работает пока что. Выкидывает такое
Код
...\AntiCaps.lua:9: bad argument count to 'SendToUser' (2 expected, got 1)
Соответсвенно с любым ником пропускает.
Автор: Setuper 23.2.2010, 16:08
Код
Core.SendToUser(sUser, "*** Ваш ник не должен быть в КАПСовом виде!")
Автор: Nickolya 23.2.2010, 16:30
Спасибо, мой косяк, поправил в посте выше, теперь работает?
Автор: thehawk 24.2.2010, 0:57
Nickolya, да спасибо большое, кажется работает как нужно.
Автор: DrakonSP 2.3.2010, 15:29
не пойму а зачем тут данный параметр?
Код
-- Размер сообщения с которого начинает реагировать скрипт:
iCheckSize = 5
О каких сообщениях идёт речь, если скрипт заведомо не пустит на хаб юзера с КАПСом выше 60%?
Автор: Nickolya 2.3.2010, 16:09
Если ник из 5 капсовых букв, то скрипт его пропустит, этот парамет отвечает за длинну ника после которой начинается проверка на капс.
Автор: DrakonSP 3.3.2010, 11:44
Цитата
-- Размер сообщения с которого начинает реагировать скрипт
тогда уж
Цитата
-- Размер ника с которого начинает реагировать скрипт
Автор: Nickolya 3.3.2010, 11:46
Блин, вам все разжевывать надо как детям? Я переделал этот скрипт под одного человека из антикапса за 3 минуты, а вы придераетесь к комментариям... Займитесь чем-нибудь пополезнее лучше.
Автор: Сем90 15.8.2010, 9:46
А есть скрипт подобие этого , только бы запрещал в ходить на хаб с никами в которых русские и латинские буквы?
Автор: Артём 15.8.2010, 15:16
Сем90
Код
tExept = {
["баба-дурак"] = true,
}
function ValidateNickArrival(tUser)
if not tExept[tUser.sNick] and tUser.sNick:find"[%А-Яа-яЁе]" and tUser.sNick:find"[%aA-zZ]" then
Core.SendToUser(tUser, "Низя на хаб с ником из букаф")
Core.Disconnect(tUser)
end
end
если нужен будет запрет со всех IP то вот сразу дам
Цитата
!fullrangeban <fromIP> <до IP> <причина>
Автор: Ksan 15.8.2010, 15:34
Артём, ты не понял...ему надо запретить сочетание латинских и русских букв
Но из твоего кода легко такое сделать.
Автор: Сем90 15.8.2010, 15:43
Если не сложно сделайте пожалуйста.
Автор: Артём 15.8.2010, 15:53
поправил, пробуй.
Автор: Сем90 15.8.2010, 16:44
Да работае, Спасибо.
Только исключение не работало.
Сделал так, заработало.
Код
local Exc = {
["баба-дурак"] = true,
}
Автор: Артём 15.8.2010, 17:40
Цитата(Сем90 @ 15.8.2010, 16:44)
Да работае, Спасибо.
Кнопку жми лучше
Цитата
Только исключение не работало.
Сделал так, заработало.
Код
local Exc = {
["баба-дурак"] = true,
}
Вот видишь, теперь ты тоже кодер
Автор: prapor 19.8.2010, 13:59
Не стал постить новую тему т.к. нужен подобный скрипт, который бы запрещал перед ником использование более 1-го символа. Например запрещаем "(" и юзеры с никами: ((гриша или там ((((маринка))) не смогли бы войти на хаб. Ну естественно с параметрами, сколько символов разрешаем перед ником и какие символы запрещаем.
Автор: Alexey 20.8.2010, 2:06
Вставь в конец или начало функции ValidateNickArrival()
Код
if sUser.sNick:find"^%p%p%p" then
Core.SendToUser(sUser, "*** Ваш ник "..sUser.sNick.." начинается со знаков пунктуации. Пожалуйста, уменьшите их количество или уберите вовсе!")
Core.Disconnect(sUser)
end
Автор: Saymon 20.8.2010, 2:13
Валидация не всегда выполняется, так что это можно обойти
Автор: Alexey 20.8.2010, 3:03
Это не ко мне ;)
Автор: Артём 20.8.2010, 7:30
Проверил код Alexey но почему-то пустило на хаб, а вот с этим кодом
Код
function ValidateNickArrival(tUser)
if tUser.sNick:find("[()\"\'%p]") then
Core.SendToUser(tUser, "Уберите скобки перед ником")
Core.Disconnect(tUser)
end
end
на хаб не пускает
что запрещаем
Код
local tPfxs= { "(", "+", "=",}
строка
Цитата
if tUser.sNick:find(v,1,true) then
1 - кол-во на которое среагирует скрипт
HeT_npeFikcaM.lua ( 455 байт )
: 7
Автор: Saymon 20.8.2010, 9:58
вроде как валидация поддерживается не всем клиентами поэтому она не всегда выполняется. Можно попробовать вместо валидации GetNickListArrival(tUser, sData)
Автор: Setuper 20.8.2010, 11:13
Валидация отсутствует при QuickList
Автор: Alexey 20.8.2010, 14:21
Я в курсе, моё предложение было лишь в рамках допиливания скрипта, выложенного выше.