Версия для печати темы
MyDC.ru _ Kорзина _ Префиксы Перед Ником
Автор: Infernus-pro 7.10.2008, 22:14
Подскажите пожалуйста как можно сделать такое правило на API 2 перед входом на хаб?
Цитата
[22:42:22] <PtokaX> Ваш ник должен содержать префикс микрорайона [MK-цифра]Ваш ник, например [MK-1]Bomberman (префикс стоит в квадратных скобках и буквы MK на английском языке)
Можно ли это сделать через саму Птоху? Если да то как?
я точно знаю что в птохе на API 1 это сделать можно но ненашел я этого на API 2 помогите пж
Автор: Nickolya 7.10.2008, 22:16
Вот по-быстрому тебе перевел скрипт inside'а на новый апи, диапазоны впиши свои.
Автор: Infernus-pro 7.10.2008, 22:23
Большое спасибо Nickolya, возник вопрос, вот как сделать так чтобы юзер обязательно ставил цифру его микрарайона а то поставит МК и все, а цифру нет.
Код
PreFixEs = {
["MK-"] =
{
["For"] = "0.0.0.0",
["To"] = "255.255.255.255",
},
}
Автор: Nickolya 7.10.2008, 23:26
Если цифра зависит от ip, тогда тебе надо вбить все диапазоны в таблицу скрипта, если нет - то никак.
Автор: Infernus-pro 8.10.2008, 13:29
Все понял спасибо за объяснение.
Даже незнаю как они так сделали:
Цитата
[22:42:22] <PtokaX> Ваш ник должен содержать префикс микрорайона [MK-цифра]Ваш ник, например [MK-1]Bomberman (префикс стоит в квадратных скобках и буквы MK на английском языке)
и это стредствами самой Птохи 0.3.6.0, если смотреть тот скрипт от
inside то в нем если поставишь вот так
Код
PreFixEs = {
["MK-"] =
{
["For"] = "0.0.0.0",
["To"] = "255.255.255.255",
},
}
то с цифрой определенного МК уже не зайти.... (( Даже незнаю как быть
Вот покажу скрин:
Автор: Nickolya 8.10.2008, 13:47
Попробуй написать не ["MK-"] а ["MK%-%d+"]
Автор: Infernus-pro 8.10.2008, 14:31
вот что вышло:
Цитата
[17:30:01] <[Bot]Leviathan> Ваш ник не соответствует правилам хаба! Поставьте префикс обязательно на английской раскладке [mk%-%d+] перед ником. Т.е. ваш ник должен будет выглядеть так: [mk%-%d+][mk-4]Infernus-pro
[17:30:01] *** Соединение закрыто
Автор: Setuper 8.10.2008, 14:51
Всё гораздо проще)))))
Там где ты на скрине показал у тебя было написано: ([[A-Z]{2}]) надо заменить на: (^\[MK\-[0-9]+\])
А в сообщение написать: "Ваш ник должен содержать префикс микрорайона [MK-цифра]Ваш ник, например [MK-1]Bomberman (префикс стоит в квадратных скобках и буквы MK на английском языке)".
Учи регулярные выражения и таких вопросов не возникнет))))))))))))))))))))
Автор: Infernus-pro 8.10.2008, 15:11
Цитата
Там где ты на скрине показал у тебя было написано: ([[A-Z]{2}]) надо заменить на: (^\[MK\-[0-9]+\])
А в сообщение написать: "Ваш ник должен содержать префикс микрорайона [MK-цифра]Ваш ник, например [MK-1]Bomberman (префикс стоит в квадратных скобках и буквы MK на английском языке)".
Мне это нужно все на API 2 а не на API 1 Провайдер попросил меня обновить хаб и выставить требование с префиксами этими......Вот и незнаю как на API 2 сделать то
и вот это :
Цитата
[22:42:22] <PtokaX> Ваш ник должен содержать префикс микрорайона [MK-цифра]Ваш ник, например [MK-1]Bomberman (префикс стоит в квадратных скобках и буквы MK на английском языке)
писал не я а генеральный директор
Автор: Setuper 8.10.2008, 15:15
Код
function ValidateNickArrival(tUser)
if not string.find(tUser.sNick,"^(%[MK%-%d+%])") then
Core.SendToUser(tUser,"Ваш ник должен содержать префикс микрорайона [MK-цифра]Ваш ник, например [MK-1]Bomberman (префикс стоит в квадратных скобках и буквы MK на английском языке)")
Core.Disconnect(tUser)
end
end
Автор: Wariner 8.10.2008, 15:15
думаю надо сделать так
Код
PreFixEs = {
["MK-1"] =
{
["For"] = "айпи1",
["To"] = "айпи2",
},
}
["MK-2"] =
{
["For"] = "айпи3",
["To"] = "айпи4",
},
}
и т.д.
Автор: Infernus-pro 8.10.2008, 16:21
Это канечно хорошая идея но у меня нету диапазонов ВСЕХ Микрорайнов к сожалению
Может есть что нибудь полезно в этом скрипте чтобы создать правило для API 2 с префиксами?
Автор: Wariner 8.10.2008, 17:44
Если ты не знаешь всех диапазонов то это не реально! Потому что если сделать как предлагают [mk-] то юзер будет выбирать цифру по своему усмотрению и тогда это будет только отводом глаз для твоего провайдера(если не найдётся умника который проверит сию функцию). А вообще если провайдер попросил тебя сделать такое обновление потребуй от них диапазонов!
Автор: Infernus-pro 8.10.2008, 19:25
Цитата
Если ты не знаешь всех диапазонов то это не реально! Потому что если сделать как предлагают [mk-] то юзер будет выбирать цифру по своему усмотрению и тогда это будет только отводом глаз для твоего провайдера
На ихнем хабе также можно выбрать любую цифру)) мне это пойдет но дело в том если ты ставишь [mk-] и вибираешь цифру например [mk-4] то пишет при входе на хаб что ваш ник должен выглядеть так [mk-]Infernus-pro и только)) И еще хотел спросить можно в этом скрипте сделатть исключения для Админов чтобы их ники непрефиксились?
Автор: Setuper 8.10.2008, 20:02
чем мой код не устраивает?
а админы наоборот должны пример подавать, зачем им делать какие то исключения?
Автор: Infernus-pro 8.10.2008, 20:35
Цитата
а админы наоборот должны пример подавать, зачем им делать какие то исключения?
Опять же этого не я хочу....
Автор: Nickolya 8.10.2008, 20:43
Илюх, ты забыл про запарку с ValidateNickArrival?
Код
tProfiles = { -- какие профили проверяем
[2] = true,
[3] = true,
[-1] = true,
}
function UserConnected(tUser)
if tProfiles[tUser.iProfile] and not string.find(tUser.sNick,"^(%[MK%-%d+%])") then
Core.SendToUser(tUser,"Ваш ник должен содержать префикс микрорайона [MK-цифра]Ваш ник, например [MK-1]Bomberman (префикс стоит в квадратных скобках и буквы MK на английском языке)")
Core.Disconnect(tUser)
end
end
RegConnected = UserConnected
OpConnected = UserConnected
Автор: Setuper 8.10.2008, 20:55
Тогда уж вот так:
Код
tProfiles={ --какие профили проверяем
[2]=true,
[3]=true,
[-1]=true,
}
function ValidateNickArrival(tUser)
if tProfiles[tUser.iProfile] and not string.find(tUser.sNick,"^(%[[MmМм][KkКк]%-%d+%].+)") then
Core.SendToUser(tUser,"Ваш ник должен содержать префикс микрорайона [MK-цифра]Ваш_ник, например [MK-1]Bomberman (префикс стоит в квадратных скобках)")
Core.Disconnect(tUser)
end
end
UserConnected=ValidateNickArrival
RegConnected=ValidateNickArrival
OpConnected=ValidateNickArrival
Это более оптимизированно, так как функция ValidateNickArrival выполняется первой, а если клиент не поддерживает её выполнение, то будут выполняться функции UserConnected, RegConnected, OpConnected
Автор: Infernus-pro 9.10.2008, 14:01
Всем спасибо что помогли, отдельно спасибо Setuper
Автор: chicha 12.11.2008, 16:17
А для 4 птоки что написать, чтоб админов и опов небыло проверки на ip, и ещё один баг:
CODE
["mar"] =
{
["For"] = "10.185.0.0",
["To"] = "10.185.96.250",
},
["boss"] =
{
["For"] = "10.185.96.251",
["To"] = "10.185.96.251",
},
["mar"] =
{
["For"] = "10.185.96.252",
["To"] = "10.185.255.255",
[boss] это прификс мой
, а вот User: [inet]Manan IP: 10.185.32.228 заходит с таким прификсом
Автор: Setuper 12.11.2008, 16:34
что-то не понял вопроса
Автор: chicha 12.11.2008, 17:04
Цитата(Setuper @ 12.11.2008, 16:34)
что-то не понял вопроса
я перефразировал, посмотри его ещё раз
Автор: Setuper 12.11.2008, 17:18
чтобы не было проверки для админов и опов, достаточно первой строчкой в функции UserConnected написать
Код
if user.iProfile==0 or user.iProfile==1 then return end
Автор: chicha 12.11.2008, 17:43
сообщение удалено мною из-за моих кривых рук. Setuper спасибо за помощь!
Автор: Goblin 13.11.2008, 11:21
Как сделать чтобы он пускал все ники хоть они английские или русские.
Мне надо сделать чтобы он не пускал ники где цифры и все
Автор: Setuper 13.11.2008, 12:13
Код
function ValidateNickArrival(tUser)
if string.find(tUser.sNick,"(%d)") then
Core.Disconnect(tUser)
end
end
Автор: epson950 14.11.2008, 14:55
Вопрос в догонку- а нельзя ли чтобы юзер себе ник не менял, а в списке при отображении добавлялся бы префикс прописаный в скрипте изходя из диапазона ip?
Автор: Setuper 14.11.2008, 14:56
Ответ нельзя!
Автор: Jesprit 21.12.2008, 20:26
Цитата(chicha @ 12.11.2008, 19:17)
А для 4 птоки что написать, чтоб админов и опов небыло проверки на ip, и ещё один баг:
CODE
["mar"] =
{
["For"] = "10.185.0.0",
["To"] = "10.185.96.250",
},
["boss"] =
{
["For"] = "10.185.96.251",
["To"] = "10.185.96.251",
},
["mar"] =
{
["For"] = "10.185.96.252",
["To"] = "10.185.255.255",
[boss] это прификс мой
, а вот User: [inet]Manan IP: 10.185.32.228 заходит с таким прификсом
Все же баг есть.
Код
["OKC"] =
{
["For"] = "217.25.208.0",
["To"] = "217.25.223.255",
},
["OKC"] =
{
["For"] = "94.137.0.0",
["To"] = "94.137.15.255",
},
["dom.ru"] =
{
["For"] = "94.181.0.0",
["To"] = "94.181.255.255",
},
У одной сети два диапазона IP ..выдаться может любой и по этому у одного и того же префикса должны быть два диапазона ип.
Сейчас это выглядит так...при попытке подключения предлагает указать "внешний" префикс [ext], хотя должен быть [OKC]
..
как бы решить проблему?
Автор: Infernus-pro 28.12.2008, 12:58
Setuper, подскажи пожалуйста как можно запретить чтобы не ставили например это:
[MK-VIP],
ибо это не префикс микрорайона,
и вообще можно ли вносить исключения и можно ли их вывести через меню, ибо доступа к хабу нету?
Автор: Setuper 28.12.2008, 23:23
Код
local tExceptions = {
"%[[MmМм][KkКк]%-[VvВв][IiИи][PpРрПп]%]",
"%[[MmМм][KkКк]%-[OoОо][PpРрПп]%]"
}
function ValidateNickArrival(tUser)
for i,v in ipairs(tExceptions) do
if tUser.sNick:find(v) then
Core.SendToUser(tUser,"Данный ник запрещён!")
Core.Disconnect(tUser)
return
end
end
if tProfiles[tUser.iProfile] and not string.find(tUser.sNick,"^(%[[MmМм][KkКк]%-[%wАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя]+%].+)") then
Core.SendToUser(tUser,"Ваш ник должен содержать префикс микрорайона [MK-цифра]Ваш ник, например [MK-1]Bomberman (префикс стоит в квадратных скобках и буквы MK - можно на русском либо на английском языке)")
Core.Disconnect(tUser)
end
end
Автор: Infernus-pro 28.12.2008, 23:57
щас проверю)
UPD спасибо работает замечательно