ПОМОГИТЕ, Как дать определенному нику права администратора в любом скрипте ? |
Здравствуйте, гость ( Вход | Регистрация )
ПОМОГИТЕ, Как дать определенному нику права администратора в любом скрипте ? |
17.1.2015, 22:54
Сообщение
#1
|
|
Начинающий Группа: Пользователи Сообщений: 13 Регистрация: 17.1.2015 Пользователь №: 12 937 Спасибо сказали: 0 раз |
Как дать определенному нику права администратора в любом скрипте ?
напишите код как можно реализовать это? например в этом коде скрипта управления. Код Код --################################################################################### -- HubMenuPro v.1 by ZVER -- API2 (PtokaX 0.4.x.x) --################################################################################### Menu = "Меню хаба\\" UserMenu = "Юзер\\" AdminMenu = "Управление\\" ScriptEasy = false --Упрощенное меню управления скриптами Prefix = "!" --################################################################################### function OnStartup() local tTmp = SetMan.GetHubBot() bot = tTmp.sNick end function UserConnected(user) local t = ProfMan.GetProfilePermissions(user.iProfile) --Глобальные команды Core.SendToUser(user,"$UserCommand 1 3 "..Menu.."Помощь$<%[mynick]> "..Prefix.."help|") Core.SendToUser(user,"$UserCommand 1 3 "..Menu.."Показать ваш IP адрес$<%[mynick]> "..Prefix.."myip|") if t then if t.bGetInfo then Core.SendToUser(user,"$UserCommand 1 2 "..UserMenu.."Показать информацию$<%[mynick]> "..Prefix.."getinfo %[nick]|") if t.bDrop or t.bKick or t.bTempBan or t.bBan or t.bMassMsg then Core.SendToUser(user,"$UserCommand 0 2") end end if t.bMassMsg then Core.SendToUser(user,"$UserCommand 1 2 "..UserMenu.."Сообщение от имени бота$<%[mynick]> "..Prefix.."frombot %[nick] %[line:Введите текст сообщения]|") if t.bDrop or t.bKick or t.bTempBan or t.bBan then Core.SendToUser(user,"$UserCommand 0 2") end end if t.bDrop then Core.SendToUser(user,"$UserCommand 1 2 "..UserMenu.."Отключить$<%[mynick]> "..Prefix.."disconnect %[nick]|") end if t.bKick then Core.SendToUser(user,"$UserCommand 1 2 "..UserMenu.."Кикнуть$<%[mynick]> "..Prefix.."drop %[nick] %[line:Причина]|") end if t.bTempBan then Core.SendToUser(user,"$UserCommand 1 2 "..UserMenu.."Бан 1 час$<%[mynick]> "..Prefix.."tempban %[nick] 1h %[line:Причина]|") Core.SendToUser(user,"$UserCommand 1 2 "..UserMenu.."Бан 24 часа$<%[mynick]> "..Prefix.."tempban %[nick] 1d %[line:Причина]|") end if t.bBan then Core.SendToUser(user,"$UserCommand 1 2 "..UserMenu.."Постоянный бан$<%[mynick]> "..Prefix.."ban %[nick] %[line:Причина]|") end --Управление хабом if t.bTopic then Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Топик\\Установить топик$<%[mynick]> "..Prefix.."topic %[line:Введите текст]|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Топик\\Очистить топик$<%[mynick]> "..Prefix.."topic off|") end if t.bRefreshTxt then Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Текстовые файлы\\Перезап. текст. файлы$<%[mynick]> "..Prefix.."reloadtxt|") end if t.bMassMsg then Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Рассылка сообщений\\Массовая рассылка$<%[mynick]> "..Prefix.."massmsg %[line:Введите текст сообщения]|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Рассылка сообщений\\Рассылка ОПам$<%[mynick]> "..Prefix.."opmassmsg %[line:Введите текст сообщения]|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Сообщение от имени бота$<%[mynick]> "..Prefix.."frombot %[line:Ник] %[line:Введите текст сообщения]|") end --Списки банов if t.bGetBans then Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны\\Список банов$<%[mynick]> "..Prefix.."getbans|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны\\Список временных банов$<%[mynick]> "..Prefix.."gettempbans|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны\\Список постоянных банов$<%[mynick]> "..Prefix.."getpermbans|") Core.SendToUser(user,"$UserCommand 0 3") end --Временные баны if t.bTempBan then Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны\\Временный бан$<%[mynick]> "..Prefix.."nicktempban %[line:Ник] %[line:Время (m = минут, h = часов, d = дней, w = недель)] %[line:Причина]|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны\\Временный бан IP$<%[mynick]> "..Prefix.."tempbanip %[line:Укажите IP] %[line:Время (m = минут, h = часов, d = дней, w = недель)] %[line:Причина]|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны\\Временный бан IP (полный)$<%[mynick]> "..Prefix.."fulltempbanip %[line:Укажите IP] %[line:Время (m = минут, h = часов, d = дней, w = недель)] %[line:Причина]|") Core.SendToUser(user,"$UserCommand 0 3") end if t.bTempUnban then Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны\\Снять временный бан$<%[mynick]> "..Prefix.."tempunban %[line:IP или ник]|") Core.SendToUser(user,"$UserCommand 0 3") end --Постоянные баны if t.bBan then Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны\\Бан$<%[mynick]> "..Prefix.."nickban %[line:Ник] %[line:Причина]|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны\\Бан IP$<%[mynick]> "..Prefix.."banip %[line:Укажите IP] %[line:Причина]|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны\\Бан IP (полный)$<%[mynick]> "..Prefix.."fullbanip %[line:Укажите IP] %[line:Причина]|") Core.SendToUser(user,"$UserCommand 0 3") end if t.bUnban then Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны\\Снять бан$<%[mynick]> "..Prefix.."unban %[line:Ник или IP]|") Core.SendToUser(user,"$UserCommand 0 3") end --Списки диапазонов банов if t.bGetRangeBans then Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны диапазонов\\Список диапазонов банов $<%[mynick]> "..Prefix.."getrangebans|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны диапазонов\\Список временных банов диапазонов$<%[mynick]> "..Prefix.."getrangetempbans|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны диапазонов\\Список постоянных банов диапазонов$<%[mynick]> "..Prefix.."getrangepermbans|") Core.SendToUser(user,"$UserCommand 0 3") end --Временные баны диапазонов if t.bRangeTempBan then Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны диапазонов\\Временный бан диапазона$<%[mynick]> "..Prefix.."rangetempban %[line:Начальный IP диапазона] %[line:Конечный IP диапазона] %[line:Время (m = минут, h = часов, d = дней, w = недель)] %[line:Причина]|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны диапазонов\\Временный бан диапазона (полный)$<%[mynick]> "..Prefix.."fullrangetempban %[line:Начальный IP диапазона] %[line:Конечный IP диапазона] %[line:Время (m = минут, h = часов, d = дней, w = недель)] %[line:Причина]|") Core.SendToUser(user,"$UserCommand 0 3") end if t.bRangeTempUnban then Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны диапазонов\\Снять временный бан диапазона$<%[mynick]> "..Prefix.."tempunban %[line:Начальный IP диапазона] %[line:Конечный IP диапазона]|") Core.SendToUser(user,"$UserCommand 0 3") end --Постоянные баны диапазонов if t.bRangeBan then Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны диапазонов\\Бан диапазона$<%[mynick]> "..Prefix.."rangeban %[line:Начальный IP диапазона] %[line:Конечный IP диапазона] %[line:Причина]|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны диапазонов\\Бан диапазона (полный)$<%[mynick]> "..Prefix.."fullrangeban %[line:Начальный IP диапазона] %[line:Конечный IP диапазона] %[line:Причина]|") Core.SendToUser(user,"$UserCommand 0 3") end if t.bRangeUnban then Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Баны диапазонов\\Снять бан диапазона$<%[mynick]> "..Prefix.."rangepermunban %[line:Начальный IP диапазона] %[line:Конечный IP диапазона]|") Core.SendToUser(user,"$UserCommand 0 3") end --Управление пользователями if t.bAddRegUser then Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Управление пользователями\\Зарегистрировать пользователя$<%[mynick]> "..Prefix.."addreguser %[line:Ник] %[line:Пароль] %[line:Имя профиля]|") end if t.bDelRegUser then Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Управление пользователями\\Удалить регистрацию$<%[mynick]> "..Prefix.."delreguser %[line:Ник]|") end --Управление скриптами if t.bRestartScripts then Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Скрипты\\Посмотреть список$<%[mynick]> "..Prefix.."getscripts|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Скрипты\\Перезапустить скрипты$<%[mynick]> "..Prefix.."restartscripts|") Core.SendToUser(user,"$UserCommand 0 3") if ScriptEasy then Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Скрипты\\Перезапуск$<%[mynick]> "..Prefix.."restartscript %[line:Имя файла]|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Скрипты\\Старт$<%[mynick]> "..Prefix.."startscript %[line:Имя файла]|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Скрипты\\Стоп$<%[mynick]> "..Prefix.."stopscript %[line:Имя файла]|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Скрипты\\Сдвинуть вверх$<%[mynick]> "..Prefix.."scriptmoveup %[line:Имя файла]|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Скрипты\\Сдвинуть вниз$<%[mynick]> "..Prefix.."scriptmovedown %[line:Имя файла]|") else tScripts = ScriptMan.GetScripts() for script in pairs(tScripts) do local CurScript = tScripts[script].sName Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Скрипты\\"..CurScript.."\\Перезапуск$<%[mynick]> "..Prefix.."restartscript "..CurScript.."|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Скрипты\\"..CurScript.."\\Старт$<%[mynick]> "..Prefix.."startscript "..CurScript.."|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Скрипты\\"..CurScript.."\\Стоп$<%[mynick]> "..Prefix.."stopscript "..CurScript.."|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Скрипты\\"..CurScript.."\\Сдвинуть вверх$<%[mynick]> "..Prefix.."scriptmoveup "..CurScript.."|") Core.SendToUser(user,"$UserCommand 1 3 "..AdminMenu.."Скрипты\\"..CurScript.."\\Сдвинуть вниз$<%[mynick]> "..Prefix.."scriptmovedown "..CurScript.."|") end end end end end OpConnected = UserConnected RegConnected = UserConnected function ChatArrival(user,data) data = string.sub(data,1,string.len(data)-1) local t = ProfMan.GetProfilePermissions(user.iProfile) local s,e,pre,cmd = string.find(data, "^%b<>%s+(%p)(%S+)") local s,e,param = string.find(data, "^%b<>%s+%p%S+%s+(.+)") if pre == Prefix then if t then if t.bRestartScripts then if cmd and cmd == "scriptmoveup" then if param then result = ScriptMan.MoveUp(param) if result then ToOps(user.sNick..": Скрипт "..param.." перемещён вверх на одну позицию.") else ToUser(user,"Ошибка: скрипт "..param.." переместить не удалось.") end else ToUser(user,"<"..bot.."> Ошибка. Вы должны указать имя файла.") end return true elseif cmd and cmd == "scriptmovedown" then if param then result = ScriptMan.MoveDown(param) if result then ToOps(user.sNick..": Скрипт "..param.." перемещён вниз на одну позицию.") else ToUser(user,"Ошибка: скрипт "..param.." переместить не удалось.") end else ToUser(user,"<"..bot.."> Ошибка. Вы должны указать имя файла.") end return true end end if t.bDrop then if cmd and cmd == "disconnect" then if param then local CurUser = Core.GetUser(param) if CurUser then Core.Disconnect(CurUser) else ToUser(user,"Ошибка: юзер "..param.." не найден на хабе") end else ToUser(user,"Ошибка: Вы должны указать ник.") end return true end end if t.bMassMsg then if cmd and cmd == "frombot" then local s,e,nick,msg = string.find(param, "^(%S+)%s+(.+)$") if nick and msg then local CurUser = Core.GetUser(nick) if CurUser then FromBot(CurUser,msg) ToUser(user,"Сообщение отправлено") ToOps(user.sNick.." отправил сообщение от имени бота юзеру "..nick.." :"..msg) else ToUser(user,"Ошибка: юзер "..nick.." не найден на хабе") end else ToUser(user,"Ошибка синтаксиса. Синтаксис: "..Prefix.."frombot <ник> <текст сообщения>") end return true end end end end end function ToUser(user,msg) Core.SendToUser(user,"<"..bot.."> "..msg) end function ToOps(msg) Core.SendToOps("<"..bot.."> "..msg) end function FromBot(user,msg) Core.SendPmToUser(user,bot,msg) end
Причина редактирования: Спрятал код под спойлер
|
|
|
17.1.2015, 23:07
Сообщение
#2
|
|
Активный участник Группа: Пользователи Сообщений: 69 Регистрация: 14.9.2009 Пользователь №: 4 440 Спасибо сказали: 19 раз |
Не совсем понятный вопрос, но ответ скорей всего тут
|
|
|
17.1.2015, 23:15
Сообщение
#3
|
|
Начинающий Группа: Пользователи Сообщений: 13 Регистрация: 17.1.2015 Пользователь №: 12 937 Спасибо сказали: 0 раз |
Не совсем понятный вопрос, но ответ скорей всего тут нужен простой код чтоб при добавление его в скрипт нику ( который я указал ) довались права администратора. Есть такая возможность? то есть допустим я администратор и пока запушен данный скрипт (в который я добавил этот код) у меня будут права администратора |
|
|
17.1.2015, 23:17
Сообщение
#4
|
|
Активный участник Группа: Пользователи Сообщений: 69 Регистрация: 14.9.2009 Пользователь №: 4 440 Спасибо сказали: 19 раз |
нужен простой код чтоб при добавление его в скрипт нику ( который я указал ) довались права администратора. Есть такая возможность? По этому поводу как раз ссылка выше на код. А не проще зарегистрировать ник этот с правами Оператора? И получит достук к командам\меню скриптов Админских). |
|
|
17.1.2015, 23:26
Сообщение
#5
|
|
Начинающий Группа: Пользователи Сообщений: 13 Регистрация: 17.1.2015 Пользователь №: 12 937 Спасибо сказали: 0 раз |
По этому поводу как раз ссылка выше на код. А не проще зарегистрировать ник этот с правами Оператора? И получит достук к командам\меню скриптов Админских). я кажется понял в той ссылке что вы указали сейчас попробую уважаемый спасибо А по поводу вашего замечания, нет. В том то и дело мне нужно что в скриптах было это прописано что то не выходит |
|
|
17.1.2015, 23:28
Сообщение
#6
|
|
Активный участник Группа: Пользователи Сообщений: 69 Регистрация: 14.9.2009 Пользователь №: 4 440 Спасибо сказали: 19 раз |
Только учтите, что это не даст права доступа к стандартным командам(баны,кик и т.д.) Опов/Админов.
|
|
|
17.1.2015, 23:31
Сообщение
#7
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
В том скрипте, что выложен в первом посте, это нельзя сделать, поскольку он лишь отсылает меню, а за обработку команд в данномслучае отвечает PtokaX. В других скриптах сделать это можно, но код будет разный для каждого скрипта. Т.е. простого и универсально кода тут нет и быть не может.
|
|
|
17.1.2015, 23:37
Сообщение
#8
|
|
Начинающий Группа: Пользователи Сообщений: 13 Регистрация: 17.1.2015 Пользователь №: 12 937 Спасибо сказали: 0 раз |
В том скрипте, что выложен в первом посте, это нельзя сделать, поскольку он лишь отсылает меню, а за обработку команд в данномслучае отвечает PtokaX. В других скриптах сделать это можно, но код будет разный для каждого скрипта. Т.е. простого и универсально кода тут нет и быть не может. А есть ли отдельный скрипт что давал полный доступ? Простой скрипт чтоб давались права нику. Либо внедрить в этот скрипт чтоб нику давались права регистрации пользователей с любым рангом Только учтите, что это не даст права доступа к стандартным командам(баны,кик и т.д.) Опов/Админов. как же сделать тогда чтоб давались права. Хотя бы чтоб я свободно мог регистрировать пользователя с правами администратора |
|
|
17.1.2015, 23:44
Сообщение
#9
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
Цитата как же сделать тогда чтоб давались права. Хотя бы чтоб я свободно мог регистрировать пользователя с правами администратора Насколько часто Вы регистрируете пользователей с такими правами? Думаю, достаточно редко. В таком случае можно вручную добавить аккаунт в RegisteredUsers.xml.
|
|
|
17.1.2015, 23:46
Сообщение
#10
|
|
Начинающий Группа: Пользователи Сообщений: 13 Регистрация: 17.1.2015 Пользователь №: 12 937 Спасибо сказали: 0 раз |
Насколько часто Вы регистрируете пользователей с такими правами? Думаю, достаточно редко. В таком случае можно вручную добавить аккаунт в RegisteredUsers.xml. вы понимаете сервер находиться не у меня. Мне нужен доступ даже в случае того что права пропадут. Либо если другие администраторы удалят их. Так как доступ у меня я хотел бы как то обезопасить свои права |
|
|
17.1.2015, 23:48
Сообщение
#11
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
probest, а Вы понимаете, что в таком случае любой, кто зайдет на хаб с Вашим ником, будет иметь такие права?
|
|
|
17.1.2015, 23:51
Сообщение
#12
|
|
Начинающий Группа: Пользователи Сообщений: 13 Регистрация: 17.1.2015 Пользователь №: 12 937 Спасибо сказали: 0 раз |
probest, а Вы понимаете, что в таком случае любой, кто зайдет на хаб с Вашим ником, будет иметь такие права? Но ведь если я его зарегистрирую он не сможет зайти через этот ник. Да и нужно угадать будет ему что за это ник. я же могу поставить любой набор букв. Мне не обезательно иметь ключик админа. Мне хотя бы нужно иметь полный доступ к команде регистрации пользователей Но ведь если я его зарегистрирую он не сможет зайти через этот ник. Да и нужно угадать будет ему что за это ник. я же могу поставить любой набор букв. Мне не обезательно иметь ключик админа. Мне хотя бы нужно иметь полный доступ к команде регистрации пользователей Если не трудно помогите |
|
|
17.1.2015, 23:52
Сообщение
#13
|
|
Активный участник Группа: Пользователи Сообщений: 69 Регистрация: 14.9.2009 Пользователь №: 4 440 Спасибо сказали: 19 раз |
вы понимаете сервер находиться не у меня. Мне нужен доступ даже в случае того что права пропадут. Либо если другие администраторы удалят их. Так как доступ у меня я хотел бы как то обезопасить свои права Тогда как Вы добавляете-удаляете-редактируете скрипты? Есть на форуме скрипт и программа удаленного управления - PXControl by Alex82 |
|
|
17.1.2015, 23:54
Сообщение
#14
|
|
Начинающий Группа: Пользователи Сообщений: 13 Регистрация: 17.1.2015 Пользователь №: 12 937 Спасибо сказали: 0 раз |
|
|
|
17.1.2015, 23:55
Сообщение
#15
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
probest, покажите тот скрипт, что используется на хабе для регистрации пользователей. Если скрипта нет, и регистрация производится при помощи встроенных команд, то его придется поставить.
|
|
|
17.1.2015, 23:57
Сообщение
#16
|
|
Начинающий Группа: Пользователи Сообщений: 13 Регистрация: 17.1.2015 Пользователь №: 12 937 Спасибо сказали: 0 раз |
dimetro, покажите тот скрипт, что используется на хабе для регистрации пользователей. Если скрипта нет, и регистрация производится при помощи встроенных команд, то его придется поставить. CODE --[[
Команды: !regme <pass> - зарегистрироваться !passwd <new_pass> - изменить пароль (встроенная команда) !unreg - удалить регистрацию ]]-- ----------------------------------------------------- Конфигурация ----------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------ ShowInfo = 1 -- показывать дополнительную информацию о том, как можно избежать повторных вводов пароля при входе на хаб ShowToAll = 0 -- показывать всем пользователям, что на хабе новый зарегистрированный участник ------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------ bot = SetMan.GetString(21) function UserConnected(tUser) --- юзер заявился UserMenu(tUser) --- и заполучил меню (а сама функция отправки меню ниже) end OpConnected = UserConnected --- ОПы тоже люди RegConnected = UserConnected --- и РЕГи тоже function ChatArrival(tUser, sData) --- изучаем всё, что отправляется в чат Core.GetUserAllData(tUser) --- выбиваем из юзера всю информацию (на всякий случай) local sData = sData:sub(1,-2) --- захват видимой части сообщения, включая и ник отправителя local _,_,cmd = sData:find("%b<>%s+(%S+)") --- захват первого слова после ника отправителя и первого пробела if cmd == "!regme" then --- если это команда регистрации if not(tUser.bRegistered) and RegMan.GetReg(tUser.sNick) == nil then --- если юзер не зареген и если данного ника нет в списке зарегистрированных local s,e,pass = string.find(sData, "%b<>%s+%S+%s+(%S+)") --- то проверяем наличие пароля в команде if (pass == nil) then --- если нет пароля Core.SendToUser(tUser, "<"..bot.."> Вы забыли ввести пароль!") --- от ворот поворот, пусть пишет по новой return true --- но команду всё же скрываем от остальных end --- проходим дальше, если пароль есть RegMan.AddReg(tUser.sNick, pass, 3) --- и регистрируем его Core.SendToUser(tUser, "<"..bot.."> Вы теперь зарегистрированы на хабе. Ваш ник:"..tUser.sNick.." Пароль: "..pass..". Сохраните пароль и не забудьте перезайти на хаб!") --- и юзер получает такое сообщение со своим паролем, чтоб мог скопировать и сохранить if (ShowInfo == 1) then --- если чтоит галочка "показывать доп. информацию с советом" Core.SendToUser(tUser, "<"..bot.."> Теперь для входа на хаб под вашим ником необходимо знать пароль. Вы можете вводить его каждый раз вручную, либо прописать пароль в настройках клиента. Для этого найдите в списке избранных хабов этот хаб, зайдите в его свойства и пропишите в строках Nick и Password ваши ник и пароль.") --- то получает его end --- хэппи энд - 1 if (ShowToAll == 1) then --- если стоит галочка "известить всех о новом зарегенном юзере" Core.SendToAll("<"..bot.."> Поприветствуем нового зарегистрировавшегося участника - "..tUser.sNick.." !!!") --- радостно представляем остальному обществу новичка end --- хэппи энд - 2 else --- этот ник уже зареген, оказывается Core.SendToUser(tUser, "<"..bot.."> Вы уже зарегистрированы!") --- и он получает отказ end --- трагический финал return true --- тоже скрываем команду от других end --- конец истории о регистрации if cmd == "!unreg" then --- если же команда - "удалить регистрацию" if (tUser.iProfile > -1) then --- и если юзер в самом деле зареген RegMan.DelReg(tUser.sNick) --- хозяин-барин, удовлетворяем желание клиента Core.SendToUser(tUser, "<"..bot.."> Ваш аккаунт теперь удален.") --- и отправляем ему открытку с нашими сожалениями. else --- если же юзер не зареген Core.SendToUser(tUser, "<"..bot.."> Команда доступна только для зарегистрированных пользователей!") --- теперь он тоже об этом знает end --- return true --- скрываем команду end --- покончили с удалением регистрации if cmd == "!reghelp" then --- если команда - о помощи local msg = "\r\n\r\n".. --- собираем всё что может помочь юзеру "\t"..string.rep("=", 50).."\r\n".. "\t\tПомощь по регистрации\r\n".. "\t"..string.rep("-", 100).."\r\n\r\n".. "\t!reghelp\t\t - Этот файл помощи\r\n".. "\t!regme <пасс>\t - Зарегистрироваться (можно не указывать пасс)\r\n".. "\t!passwd <пасс>\t - Сменить пароль (встроенная команда хаба)\r\n".. "\t!unreg\t\t - Удалить аккаунт\r\n\r\n".. "\tТакже все команды доступны в меню хаба:\r\n".. "\tНажмите правой кнопкой мыши на любого пользователя\r\n".. "\tи выберите подменю 'Регистрация'\r\n" Core.SendPmToNick(tUser.sNick, bot, msg) --- и отправлем ему в приват, на полчаса чтивом он обеспечен return true --- тоже скрываем команду end --- конец этапа помощи end --- и вообще, хватит читать чат ToArrival = ChatArrival --- если вышеуказанные команды напишут в привате, результат будет такой же (не очень верится, но допускаю) function UserMenu(tUser) --- обещанная функция об отправке меню юзеру при входе if (tUser.iProfile == -1) then --- это меню получит незарегенный юзер Core.SendToUser(tUser, "$UserCommand 0 3") Core.SendToUser(tUser, "$UserCommand 1 3 Регистрация\\Зарегистрироваться$<%[mynick]> !regme %[line:Введите пароль]|") Core.SendToUser(tUser, "$UserCommand 1 3 Регистрация\\Помощь при регистрацию$<%[mynick]> !reghelp|") else --- а все зарегенные получат это меню Core.SendToUser(tUser, "$UserCommand 0 3") Core.SendToUser(tUser, "$UserCommand 1 3 Регистрация\\Сменить пароль$<%[mynick]> !passwd %[line:Введите новый пароль]|") Core.SendToUser(tUser, "$UserCommand 1 3 Регистрация\\Удалить регистрацию$<%[mynick]> !unreg|") Core.SendToUser(tUser, "$UserCommand 1 3 Регистрация\\Помощь при регистрации$<%[mynick]> !reghelp|") end --- end --- отправили --- эта функция - для отправления в опчат сообщений об ошибке скрипта, если скрипт падает в процессе эксплуатации function OnError(s) local h=io.open("errors.log","a+") if h then h:write(os.date()..": "..s.."\r\n") h:close() end if Core then Core.SendToOpChat(s) else SendToOpChat(s) end end |
|
|
18.1.2015, 0:06
Сообщение
#17
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
probest, это скрипт саморегистрации, а Вам нужен тот, что позволяет регистрировать других юзеров.
Если Вы так боитесь удаления своей регистрации, то можно поступить проще - написать скрипт, который будет через определенные промежутки времени проверять регистрацию, и при необходимости восстанавливать ее. |
|
|
18.1.2015, 0:14
Сообщение
#18
|
|
Начинающий Группа: Пользователи Сообщений: 13 Регистрация: 17.1.2015 Пользователь №: 12 937 Спасибо сказали: 0 раз |
probest, это скрипт саморегистрации, а Вам нужен тот, что позволяет регистрировать других юзеров. Если Вы так боитесь удаления своей регистрации, то можно поступить проще - написать скрипт, который будет через определенные промежутки времени проверять регистрацию, и при необходимости восстанавливать ее. ну вот в самом начале скрипт управление то что я отправил как раз таки выполняет регистрацию других пользователей. там есть строки регистрации и её удаления probest, это скрипт саморегистрации, а Вам нужен тот, что позволяет регистрировать других юзеров. Если Вы так боитесь удаления своей регистрации, то можно поступить проще - написать скрипт, который будет через определенные промежутки времени проверять регистрацию, и при необходимости восстанавливать ее. долго ли писать такой скрипт? можно как бонус тоже поставить и я нашёл интересную функцию вот function ChatArrival(tUser, sData) local cmd = sData:match"%b<>%s+(%S+).*|" if cmd == "!команда" then -- здесь вписываем то, что должно происходить по команде! return true end end могу ли я её вставлять во все скрипты что при вводе команды к примеру !зарегать происходила регистрация администратора? и если не сложно напишите что сюда нужно дописать чтоб это происходило |
|
|
18.1.2015, 0:21
Сообщение
#19
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
долго ли писать такой скрипт? можно как бонус тоже поставить Код nick = "test" pass = "123456" profile = 0 time = 10 -- секунд function OnStartup() OnTimer() TmrMan.AddTimer(1000*time) end function OnTimer() local reg = RegMan.GetReg(nick) if not reg then RegMan.AddReg(nick, pass, profile) elseif reg.iProfile ~= profile or reg.sPassword ~= pass then RegMan.ChangeReg(nick, pass, profile) end end Проверяет наличие указанного аккаунта и соответствие пароля и профиля, и при необходимости восстанавливает его. |
|
|
18.1.2015, 0:30
Сообщение
#20
|
|
Начинающий Группа: Пользователи Сообщений: 13 Регистрация: 17.1.2015 Пользователь №: 12 937 Спасибо сказали: 0 раз |
а вот по поводу этой функции она же проще? можно же просто её дописать в любой скрипт и будет функционировать
function ChatArrival(tUser, sData) local cmd = sData:match"%b<>%s+(%S+).*|" if cmd == "!команда" then -- здесь вписываем то, что должно происходить по команде! return true end end спасибо за скрипт его тоже добавлю. Время которое написано 10 секунд я так понял это время проверки. Его тоже над будет внедрить. Но мне стала интересна можно ли добавить регистрацию по команде. вон в той функции |
|
|
Похожие темы
|
Сейчас: 23.11.2024, 8:33 |