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

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

MyDC.ru _ Kорзина _ Запрет в нике определённых символов

Автор: Al-j® 11.9.2008, 14:08

Люди,если есть у кого-то,или кто-то сможет сделать,дайте пожалуйста скрипт запрета определённых символов в нике. С исключениями для профилей
Например знак ® может использоваться только у админов,а знак ™ только у випов (ну эт примерно) ну или подскажите где ИМЕННО запрещаются символы на ник в 0400,а то я действительно найти не могу
Буду оч признателен!

Автор: Al-j® 21.9.2008, 4:15

ну хоть кто-нибудь бы нашёлся добрый и сказал,что возьмётся или поищет......

Автор: Setuper 21.9.2008, 11:32

Код
tSmbs={[0]="®",[2]="™"}
function UserConnected(tUser)
    local sSmb=tSmbs[tUser.iProfile]
    if sSmb and string.find(tUser.sNick,"("..sSmb..")") then
        Core.SendToUser(tUser,"*** Bad symbol in the nick")
        Core.Disconnect(tUser)
    end
end
RegConnected=UserConnected
OpConnected=UserConnected

Автор: Al-j® 21.9.2008, 17:40

спасибо!!!

Автор: =TuRoK= 6.10.2008, 15:13

А можно этот скрипт немножко подправить, профилям UnReg, Reg и Vip запретить определённые украшения к нику, а на Op и Master без ограничений, (в плане написания не грамотен :( )

Автор: Setuper 6.10.2008, 15:51

Код
tSmbs={[-1]="[®™]",[2]="[®™]",[3]="[®™]"}

Автор: =TuRoK= 6.10.2008, 18:39

Спасиб big_smile.gif

Автор: zzipper 1.11.2008, 14:12

Можно ли сделать наоборот? т.е. указать какие символы можно использовать, а остальные отметать) Нпример, мне надо чтоб были разрешены тока буквы рус. и англ. алфавита, ну и цифры.

Автор: Sephiroth_Lukaw 1.11.2008, 14:44

Код
tSmbs={[0]="[^1-9A-zА-я_]",[-1]="[^1-9A-zА-я_]",[2]="[^1-9A-zА-я_]"}
or
Код
tSmbs = {}
tSmbs[-1] = "[^1-9A-zА-я_]"
tSmbs[0]  = tSmbs[-1]
tSmbs[1]  = tSmbs[-1]
tSmbs[2]  = tSmbs[-1]
tSmbs[3]  = tSmbs[-1]
tSmbs[4]  = tSmbs[-1]

Автор: zzipper 1.11.2008, 15:15

Ммм, спасибо, но вот скобка квадратная почему-то проходит (

Автор: Sephiroth_Lukaw 1.11.2008, 16:05

offTop: Мой провайдер меня в гроб загонит.

Код
if sSmb and string.find(string.gsub (tUser.sNick, "([%[%]])", "%%1"),"("..sSmb..")") then

Автор: =TuRoK= 10.11.2008, 3:36

У меня ещё вопросик появился по запрету определённых символов в нике в этом скрипте:

Код
tSmbs={
   [0]="",  -- Master
   [1]="",  -- Operator
   [2]="[®™]",  -- Vip
   [3]="[®™]",  -- Reg
   [-1]="[®™]",  --UnReg
}
function UserConnected(tUser)
    local sSmb=tSmbs[tUser.iProfile]
    if sSmb and string.find(tUser.sNick,"("..sSmb..")") then
        Core.SendToUser(tUser,"*** Украшения в никах запрещены!")
        Core.Disconnect(tUser)
    end
end
RegConnected=UserConnected
OpConnected=UserConnected


Возможно ли подправить этот скрипт,что бы он запрещал использовать символы,цифры только в начале ника?

Ну и если возможно полный запрет во всём нике оставить на определенные символы  amazing.gif

Автор: Nickolya 10.11.2008, 9:06

Код
tSmbs={
   [0]="",  -- Master
   [1]="",  -- Operator
   [2]="[®™]",  -- Vip
   [3]="[®™]",  -- Reg
   [-1]="[®™]",  --UnReg
}
tBeginSmbs={    -- хотя цифры (одну) можно записать как %d
   [0]="",  -- Master
   [1]="",  -- Operator
   [2]="[1234567890]",  -- Vip
   [3]="[%[%]%!]",  -- Reg    -- запрет []! в самом начале ника (1 символ)
   [-1]="[%.@]",  --UnReg    -- запрет .@
}

function UserConnected(tUser)
    local sSmb=tBeginSmbs[tUser.iProfile]
    if sSmb and string.find(tUser.sNick,"^("..sSmb..")") then
        Core.SendToUser(tUser,"*** Украшения в никах запрещены!")
        Core.Disconnect(tUser)
    end
    sSmb=tSmbs[tUser.iProfile]
    if sSmb and string.find(tUser.sNick,"("..sSmb..")") then
        Core.SendToUser(tUser,"*** Украшения в никах запрещены!")
        Core.Disconnect(tUser)
    end
end
RegConnected=UserConnected
OpConnected=UserConnected


А вообще, понять как работает эти выражения можно почитав вот эту тему: Несколько Слов О Захватах И Регулярных Выражениях

Автор: =TuRoK= 10.11.2008, 11:25

Спасибо Nickolya ,почитал немного понял,только про это недопонию,как записать

"хотя цифры (одну) можно записать как %d"

Автор: Nickolya 10.11.2008, 12:08

Читай еще внимательней...

Цитата
%d - десятичная цифра

Т.е. строку из кода выше
Код
  [2]="[1234567890]",  -- Vip

можно легко и без последствий заменить на
Код
  [2]="[%d]",  -- Vip

Если что не понятно как сделать - спрашивай, всё растолкуем в самом доступном виде.

Автор: Молчанка 12.12.2008, 21:35

shame.gif Здравствуйте...
Йа плохо разбираюсь в терминологии и поэтому могу написать не в тему what.gif
Проблема в том, что я хочу в игре зарегить ник, начинающийся с цифОрки.
Мне выдаёт следущее:
Допустимое имя: только кириллица + спец. символы или только латиница + спец. символы (0-9; _ ; - ; .)
Подскажите плиз shame.gif

Автор: Setuper 12.12.2008, 21:38

Это надо смотреть сам скрипт. А написала не в ту тему))

Автор: West 13.12.2008, 1:27

а как зделать так что бы птоха 0411 вобще не заприщала знаки !! ?? типо ( ".!.@#$%^&*(&^%) и т.д ?

Автор: Setuper 13.12.2008, 3:55

Некоторые символы являются "специальными". Их использует протокол, поэтому ответ - никак!

Автор: Strannik 13.12.2008, 23:52

Цитата(Nickolya @ 10.11.2008, 10:06) *
Код
tSmbs={
   [0]="",  -- Master
   [1]="",  -- Operator
   [2]="[®™]",  -- Vip
   [3]="[®™]",  -- Reg
   [-1]="[®™]",  --UnReg
}
tBeginSmbs={    -- хотя цифры (одну) можно записать как %d
   [0]="",  -- Master
   [1]="",  -- Operator
   [2]="[1234567890]",  -- Vip
   [3]="[%[%]%!]",  -- Reg    -- запрет []! в самом начале ника (1 символ)
   [-1]="[%.@]",  --UnReg    -- запрет .@
}

function UserConnected(tUser)
    local sSmb=tBeginSmbs[tUser.iProfile]
    if sSmb and string.find(tUser.sNick,"^("..sSmb..")") then
        Core.SendToUser(tUser,"*** Украшения в никах запрещены!")
        Core.Disconnect(tUser)
    end
    sSmb=tSmbs[tUser.iProfile]
    if sSmb and string.find(tUser.sNick,"("..sSmb..")") then
        Core.SendToUser(tUser,"*** Украшения в никах запрещены!")
        Core.Disconnect(tUser)
    end
end
RegConnected=UserConnected
OpConnected=UserConnected


А вообще, понять как работает эти выражения можно почитав вот эту тему: Несколько Слов О Захватах И Регулярных Выражениях


Блокирует вход на хаб при входе как Master и Operator

Автор: Nickolya 14.12.2008, 0:50

Может поменять на

Код
if sSmb and sSmb ~= "" and string.find(...

Автор: prapor 9.1.2009, 2:17

Подскажите пожалуйста, а как сделать запрет перед ником, более одной круглой скобки?

Автор: Perspect 8.2.2009, 22:31

Подскажите плз, как сделать, чтобы присекались ники типа: www.ybkb, dchub://керкрнн?

Автор: Setuper 7.3.2009, 0:11

Код
tSmbs={
   [0]="",  -- Master
   [1]="",  -- Operator
   [2]="[®™]",  -- Vip
   [3]="[®™]",  -- Reg
   [-1]="[®™]",  --UnReg
}
tBeginSmbs={    -- хотя цифры (одну) можно записать как %d
   [0]="",  -- Master
   [1]="",  -- Operator
   [2]="[1234567890]",  -- Vip
   [3]="[%[%]%!]",  -- Reg    -- запрет []! в самом начале ника (1 символ)
   [-1]="[%.@]",  --UnReg    -- запрет .@
}

function UserConnected(tUser)
    local sSmb=tBeginSmbs[tUser.iProfile]
    if sSmb and string.find(tUser.sNick,"^("..sSmb..")") then
        Core.SendToUser(tUser,"*** Украшения в никах запрещены!")
        Core.Disconnect(tUser)
    end
    sSmb=tSmbs[tUser.iProfile]
    if sSmb and string.find(tUser.sNick,"("..sSmb..")") then
        Core.SendToUser(tUser,"*** Украшения в никах запрещены!")
        Core.Disconnect(tUser)
    end
end
RegConnected=UserConnected
OpConnected=UserConnected