--------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------- -- Данный скрипт взят с сайта http://lua.uknnet.com/ -- Оптимизировал и протестировал для русско-язычных хабов: -- NRJ ( nrj@labo.ru ) -- -- -- Любые боты и скрипты - поддержка/обновления/новинки: -- 1) http://dc.hovel.ru/ -- 2) http://forum.proc.ru/index.php?showforum=24 -- --------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------- --команда !regme - регистрация нового пользователя --Конфигурация sBot = "Reg-Bot" --имя бота sTag = "" --префикс при регистрации full_report="on" --on/off - Displays fullreport ="on" or minimal report = "off" --Если не разбираетесь, то не трогайте то, что находится ниже ;_) function Main() frmHub:RegBot(sBot) function ChatArrival(user, data) local data = string.sub(data,1,string.len(data)-1) local s,e,cmd = string.find(data, "%b<>%s+(%S+)") local s,e,pm = string.find(data, "$To: (%S+) From:") if pm and pm == sBot then pm = 1 end if (cmd == "!regme") then if not frmHub:isNickRegged(string.upper(sTag)..user.sName) then local s,e,pass = string.find(data, "%b<>%s+%S+%s+(%S+)") if (pass == nil) then if pm == 1 then user:SendPM(sBot, "Ошибка, !regme , вы должны указать ваш пароль.") else user:SendData(sBot, "Ошибка, !regme , вы должны указать ваш пароль.") end elseif (string.find(pass, "[%c|\n\r]")) then if pm == 1 then user:SendPM(sBot, "Не правильный пароль. Попробуйте снова.") else user:SendData(sBot, "Не правильный пароль. Попробуйте снова.") end elseif (string.find(user.sName, "[%c|\n\r]")) then if pm == 1 then user:SendPM(sBot, "Плохой ник (либо содержит не допустимые символы, либо уже используется другим пользователем). Пожалуйста, выберите другой.") else user:SendData(sBot, "Плохой ник (либо содержит не допустимые символы, либо уже используется другим пользователем). Пожалуйста, выберите другой.") end else AddRegUser(string.upper(sTag)..user.sName, pass, 3) if full_report == "on" then local Mode local Email if user.sEmail == "" then Email = "Нет" else Email = user.sEmail end if user.sMode == "A" then Mode="Активный" elseif user.sMode == "P" then Mode="Пассивный" else Mode="Socks 5" end local pms="\r\n\r\nНовый пользователь: "..string.upper(sTag)..user.sName.."\r\n".. "IP адрес: "..user.sIP.." \r\n".. "Размер шары: "..string.format("%.2f Gb.",user.iShareSize/(1024 * 1024 * 1024)).." \r\n".. "Тип соединения: "..user.sConnection.." \r\n".. "Режим: "..Mode.." \r\n".. "E-Mail адрес: "..Email.." \r\n".. "Клиент: "..user.sClient.." \r\n\r\n".. "Зарегистрировался с \r\n".. "паролем: "..pass.." \r\n" frmHub:GetOpChatName() SendPmToOps(sBot, pms) local pms1="\r\n\r\nТеперь вы зарегистрированы\r\n".. "Ваш ник: "..string.upper(sTag)..user.sName.." \r\n".. "Ваш пароль (НЕ ЗАБУДЬТЕ ЕГО!!!): "..pass.." \r\n".. "Ваш IP: "..user.sIP.." \r\n".. "Ваша шара: "..string.format("%.2f Gb.",user.iShareSize/(1024 * 1024 * 1024)).." \r\n".. "Тип вашего соединения: "..user.sConnection.." \r\n".. "Режим: "..Mode.." \r\n".. "Ваш E-Mail: "..Email.." \r\n".. "Ваш клиент: "..user.sClient.." \r\n\r\n".. "***Пожалуйста, перезайдите и введите ваш пароль.***\r\n" user:SendPM(sBot, pms1) local MainMsg="\r\n".. "\tВНИМАНИЕ!!! Поприветствуем нового зарегистрированного пользователя "..string.upper(sTag)..user.sName.. " на "..frmHub:GetHubName().." !\r\n" SendPmToOps(sBot,OpMsg) user:SendPM(sBot,UserPm) SendToAll(MainMsg) else SendToOps(sBot, "Пользователь "..user.sName.." зарегистрировался.") local UserMsg = "Вы зарегистрировались с паролем"..pass.."\r\n".. "Please put the tag '"..sTag.."' in front of your nick, for example"..string.upper(sTag)..user.sName.. "***Пожалуйста, перезайдите и введите ваш пароль." if pm == 1 then user:SendPM(sBot,UserMsg) else end end end return 1 else if pm == 1 then user:SendPM(sBot,"\t\t*** Простите, но пользователь с ником "..user.sName.." уже зарегистрирован.") return 1 else user:SendData(sBot,"\t\t*** Простите, но пользователь с ником "..user.sName.." уже зарегистрирован.") end return 1 end return 1 end end end ToArrival = ChatArrival