Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

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> <причина>
big_smile.gif

Автор: Ksan 15.8.2010, 15:34

Артём, ты не понял...ему надо запретить сочетание латинских и русских букв big_smile.gif
Но из твоего кода легко такое сделать.

Автор: Сем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) *
Да работае, Спасибо.

Кнопку жми лучше bad_smile.gif

Цитата
Только исключение не работало.

Сделал так, заработало.
Код
local Exc = {
    ["баба-дурак"] = true,
}

Вот видишь, теперь ты тоже кодер big_smile1.gif

Автор: 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

Валидация не всегда выполняется, так что это можно обойти big_smile.gif

Автор: 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

на хаб не пускает big_smile.gif
что запрещаем
Код
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

Я в курсе, моё предложение было лишь в рамках допиливания скрипта, выложенного выше.