myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 

> RegmeEmail, API2 | Регистрация через e-mail

Рейтинг 5 V
Setuper
сообщение 15.12.2009, 14:36
Сообщение #61


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Название скрипта: RegmeEmail
Версия API: 2
Версия скрипта: 1.0
Автор: Setuper
Описание: Простенькая регистрация через e-mail. Команда для регистрации: !regme email@email.com
После отправки команды, у пользователя есть 10 минут для того, чтобы зайти в почту, посмотреть там пароль и зайти на хаб. В противном случае авторизация не произойдёт, и спустя 10 минут аккаунт удалится с хаба.

ВНИМАНИЕ! Для работы скрипта необходимы модули: cmd и email, а также необходима библиотека сокетов: http://mydc.ru/topic43.html
Модули и библиотеку сокетов следует поместить в папку libs.

Обо всех ошибках и просьбах писать сюда.

Необходимые модули:
Прикрепленный файл  cmd.lua ( 1.62 килобайт ) Кол-во скачиваний: 288
Прикрепленный файл  email.lua ( 1.94 килобайт ) Кол-во скачиваний: 261



Непосредственно сам скрипт:
Прикрепленный файл  regme_email.lua ( 6.18 килобайт ) Кол-во скачиваний: 302


Спасибо сказали:
Go to the top of the page
+Quote Post
6 страниц V  « < 2 3 4 5 6 >  
Начать новую тему
Ответов
Артём
сообщение 27.5.2011, 12:18
Сообщение #62


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




Dani_Filth, скрипт не причём, меняй кодировку на мыле.
Go to the top of the page
+Quote Post
Dani_Filth
сообщение 27.5.2011, 17:03
Сообщение #63


Активный участник
***

Группа: Пользователи
Сообщений: 51
Регистрация: 24.5.2011
Из: Комсомольск на Амуре
Пользователь №: 9 283
Спасибо сказали: 0 раз




Артём, А где именно ?
Go to the top of the page
+Quote Post
Артём
сообщение 27.5.2011, 19:15
Сообщение #64


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




Dani_Filth, я не знаю где у тебя зарегистрирован аккаунт E-mail, и подсказать не могу.
Go to the top of the page
+Quote Post
Setuper
сообщение 27.5.2011, 19:18
Сообщение #65


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




  1. Открываем файл email.lua
  2. Ищем в этом файле следующие строчки:

    Код
    local tMessage = {
      headers = {
        to = sTo,
        from = tVal.sFrom,
        subject = sSubject,
      },
      body = sMsg
    }

  3. Изменяем их на:

    Код
    local tMessage = {
      headers = {
        to = sTo,
        from = tVal.sFrom,
        subject = sSubject,
        ['content-type'] = 'text/plain; charset="cp1251"'
      },
      body = sMsg
    }
Go to the top of the page
+Quote Post
Dani_Filth
сообщение 27.5.2011, 19:46
Сообщение #66


Активный участник
***

Группа: Пользователи
Сообщений: 51
Регистрация: 24.5.2011
Из: Комсомольск на Амуре
Пользователь №: 9 283
Спасибо сказали: 0 раз




Хмм.. Всё равно...Setuper, Тоже самое...


Артём, Ну я зареган на @mail.ru
Go to the top of the page
+Quote Post
Артём
сообщение 27.5.2011, 19:56
Сообщение #67


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




Прикрепленный файл  76686.JPG ( 36.32 килобайт ) Кол-во скачиваний: 230

Go to the top of the page
+Quote Post
Ameet
сообщение 5.1.2012, 18:43
Сообщение #68


Активный участник
***

Группа: Пользователи
Сообщений: 73
Регистрация: 5.1.2009
Из: Украина, г. Сумы
Пользователь №: 1 684
Спасибо сказали: 0 раз




Помогите немного подправить скрипт. Я хочу чтобы он генерировал не одни цифры для пароля а цифры+буквы. За ране спасибо!
Go to the top of the page
+Quote Post
Ksan
сообщение 5.1.2012, 18:57
Сообщение #69


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 723
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 657 раз




Ameet, находишь в скрипте вот такой код:
Код
function GetPass()
  math.randomseed(os.time())
  return tostring(math.random(100, 99999999))
end
и вместо него копируешь отсюда этот:
Код
local sPass = ""
tAbc = {
    "0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K",
    "L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f",
    "g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
}

function GetPass()
    math.randomseed(os.time())
    sPass = tAbc[math.random(#tAbc)] -- 1-я буква пароля
    local iPass = math.random(4, 7) -- длина пароля = [(от 4 до 7) + 1]
    for i = 1, iPass do
        sPass = sPass..tAbc[math.random(#tAbc)]
    end
    return sPass
end

Тут в этой строке регулируется и создаётся произвольная длина пароля:
Код
local iPass = math.random(4, 7)
Вместо 4 и 7 можешь писать другие разумные размеры длины пароля. Только нужно учитывать, что 1 символ уже создался в предыдущей строке.

PS: Можно было обойтись без предварительной таблицы символов tAbc, но тогда код стал бы громоздче.

UPD:
Так, наверно, эту переменную - local sPass - надо объявить заранее, до использования в function GetPass(), иначе не уверен, что вытащится по return.. Поэтому в код внёс поправку небольшую.


Спасибо сказали:
Go to the top of the page
+Quote Post
Ameet
сообщение 8.1.2012, 14:01
Сообщение #70


Активный участник
***

Группа: Пользователи
Сообщений: 73
Регистрация: 5.1.2009
Из: Украина, г. Сумы
Пользователь №: 1 684
Спасибо сказали: 0 раз




Цитата(Ksan @ 5.1.2012, 18:57) *
Ameet, находишь в скрипте вот такой код:
Код
function GetPass()
  math.randomseed(os.time())
  return tostring(math.random(100, 99999999))
end
и вместо него копируешь отсюда этот:
Код
local sPass = ""
tAbc = {
    "0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K",
    "L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f",
    "g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
}

function GetPass()
    math.randomseed(os.time())
    sPass = tAbc[math.random(#tAbc)] -- 1-я буква пароля
    local iPass = math.random(4, 7) -- длина пароля = [(от 4 до 7) + 1]
    for i = 1, iPass do
        sPass = sPass..tAbc[math.random(#tAbc)]
    end
    return sPass
end

Тут в этой строке регулируется и создаётся произвольная длина пароля:
Код
local iPass = math.random(4, 7)
Вместо 4 и 7 можешь писать другие разумные размеры длины пароля. Только нужно учитывать, что 1 символ уже создался в предыдущей строке.

PS: Можно было обойтись без предварительной таблицы символов tAbc, но тогда код стал бы громоздче.

UPD:
Так, наверно, эту переменную - local sPass - надо объявить заранее, до использования в function GetPass(), иначе не уверен, что вытащится по return.. Поэтому в код внёс поправку небольшую.

большое спасибо, можешь подсказать ещё немного

Код
C:\dchub\power\scripts\regme_email.lua:124: bad argument #1 to 'format' (string expected, got nil)


скрипт

Скрипт
Код
local cmd = require"cmd" -- Библиотека команд
local email = require"email" -- Библиотека электронный почты

-- настройки e-mail
local sFrom = "11111" -- Адрес отправителя
local sServer = "11111" -- Адрес сервера
local sUser = "111111" -- Имя пользователя
local sPass = "1111111" -- Пароль
local sHubAddress = "111111" -- Адрес вашего хаба
--

local sSubject = "Registration: [HUBNAME]" -- Тема сообщения
local iRegProfile = 5 -- Номер профиля для регистрации
local sFile = debug.getinfo(1).source:match("^@?(.+[/\\]).-$").."baza/emails.dat"

local sMsg = [[Здравствуйте!


На хабе по адресу dchub://[HUB]
появилась регистрационная запись,
в которой был указал ваш электронный адрес (e-mail).


Зарегистрирован был следующий ник:

===================================

Ник пользователя (login): [NICK]
Пароль: [PASS]

===================================

Если вы не понимаете, о чем идет речь — просто проигнорируйте это сообщение!

Если же именно вы решили зарегистрироваться на хабе по адресу dchub://[HUB],
то вам следует войти на хаб и тем самым активировать вашу учетную запись.

Подтверждение регистрации производится один раз.
Активация произойдет автоматически.

]]

-- профили, которым разрешено удаление аккаунта
local tUnregAllow = {
  [0] = 1,
  [1] = 1,
  [2] = 1,
  [3] = 1,
  [4] = 1,
  [5] = 1
}

local tTimers, tNoActivate = {}, {}
local tMailList, tNickList = {}, {}
function OnStartup()
  sBot = SetMan.GetString(21)
  sSubject = sSubject:gsub("%[HUBNAME%]", SetMan.GetString(0))
  email.SetValues(sFrom, sServer, sUser, sPass)
  cmd.Add("[Rr][Ee][Gg][Mm][Ee]", Regme, Protect)
  cmd.Add("[Uu][Nn][Rr][Ee][Gg]", Unreg, UnregProtect)
  if loadfile(sFile) then
    dofile(sFile)
  end
end

function Protect(tUser)
  if tUser.iProfile ~= -1 then
    return false
  end
  return true
end

function UnregProtect(tUser)
  if tUnregAllow[tUser.iProfile] and tUnregAllow[tUser.iProfile] == 1 then
    return true
  end
  return false
end

function GetMsg(sNick, sPasswd)
  local sStr = sMsg:gsub("%[HUB%]", sHubAddress)
  sStr = sStr:gsub("%[NICK%]", sNick)
  sStr = sStr:gsub("%[PASS%]", sPasswd)
  return sStr
end

local sPass = ""
tAbc = {
    "0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K",
    "L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f",
    "g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
}

function GetPass()
    math.randomseed(os.time())
    sPass = tAbc[math.random(#tAbc)] -- 1-я буква пароля
    local iPass = math.random(5, 8) -- длина пароля = [(от 4 до 7) + 1]
    for i = 1, iPass do
        sPass = sPass..tAbc[math.random(#tAbc)]
    end
    return sPass
end

function Regme(tUser)
  local sEmail = cmd.msParams
  if tMailList[sEmail] then
    return nil, ("С введённым вами e-mail адресом уже зарегистрирован пользователь. Если письмо не пришло на ящик, для перерегистрации на этот e-mail нужно подождать %s минут и повторить регистрацию."):format(iDelay)
  end
  local sPasswd = GetPass()
  local res, err = email.SendMail(sEmail, sSubject, GetMsg(tUser.sNick, sPasswd))
  if res then
    RegMan.AddReg(tUser.sNick, sPasswd, iRegProfile)
    Core.SendToOps("Зарегистрировался юзер с ником "..tUser.sNick)
    tMailList[sEmail] = tUser.sNick
    tNickList[tUser.sNick] = sEmail
    Save(tMailList, "tMailList", sFile)
    tNoActivate[tUser.sNick] = true
    Core.SendToUser(tUser, ("<%s> Пароль отправлен на адрес: (e-mail). Письмо с вашим паролем было успешно отправлено (Message with your password was sent successfully)"):format(sBot, iDelay))
  end
  return res, err
end

function Unreg(tUser)
  RegMan.DelReg(tUser.sNick)
  for k, v in pairs(tMailList) do
    if v == tUser.sNick then
      tMailList[k] = nil
      return true
    end
  end
  return true
end

function ChatArrival(tUser, sData)
  local r, e = cmd.Exec(sData:sub(#(tUser.sNick) + 4, -2), tUser)
  if not r and e then
    Core.SendToUser(tUser, ("<%s> "..e):format(sBot))
  end
  if cmd.miCmdState == 3 then
    Core.SendToUser(tUser, ("<%s> Команда введена без префикса"):format(sBot))
  end
  if cmd.miCmdState == 4 then
    Core.SendToUser(tUser, ("<%s> Вы уже зарегистрированы!"):format(sBot))
    return true
  end
  if r or e then
    return true
  end
end

function RegConnected(tUser)
  if tNoActivate[tUser.sNick] then
    tNoActivate[tUser.sNick] = nil
  end
  Core.SendToUser(tUser, "$UserCommand 1 3 Регистрация\\Сменить пароль$<%[mynick]> !passwd %[line:Введите новый пароль]||"..
  "$UserCommand 1 3 Регистрация\\Удалить регистрацию$<%[mynick]> !unreg|")
end
OpConnected = RegConnected

function UserConnected(tUser)
  Core.SendToUser(tUser, "$UserCommand 1 3 Регистрация\\Зарегистрироваться$<%[mynick]> !regme %[line:Введите Ваш e-mail]|")
end

function Save(tTable, sTableName, sFile)
    local h = io.open(sFile, "w")
  if h then
    Serialize(tTable, sTableName, h)
    h:flush()
    h:close()
  end
end

function Serialize(tTable, sTableName, hFile, sTag)
    sTag = sTag or ''
    hFile:write(sTag..sTableName.." = {\n" )
    for k, v in pairs(tTable) do
        local sKey = ( type(k) == "string" ) and ( "[%q]" ):format(k) or ( "[%d]" ):format(k)
        if type(v)=="table" then
            Serialize(v, sKey, hFile, sTag..'\t')
        else
            local sValue = ( type(v) == "string" ) and ( "%q" ):format(v) or tostring(v)
            hFile:write(sTag..'\t'..sKey.." = "..sValue)
        end
        hFile:write",\n"
    end
    hFile:write(sTag..'}')
end


Буду очень благодарен!
Go to the top of the page
+Quote Post
Enyby
сообщение 8.1.2012, 14:07
Сообщение #71


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Цитата(Ameet @ 8.1.2012, 13:01) *
Код
C:\dchub\power\scripts\regme_email.lua:124: bad argument #1 to 'format' (string expected, got nil)

В приведенном скрипте на 124 строке нет функции format. Укажите где 124 строка в вашем файле.
Go to the top of the page
+Quote Post
Ameet
сообщение 8.1.2012, 14:18
Сообщение #72


Активный участник
***

Группа: Пользователи
Сообщений: 73
Регистрация: 5.1.2009
Из: Украина, г. Сумы
Пользователь №: 1 684
Спасибо сказали: 0 раз




Цитата(Enyby @ 8.1.2012, 14:07) *
В приведенном скрипте на 124 строке нет функции format. Укажите где 124 строка в вашем файле.


Сама функция

Фенкция
Код
function Regme(tUser)
  local sEmail = cmd.msParams
  if tMailList[sEmail] then
    return nil, ("С введённым вами e-mail адресом уже зарегистрирован пользователь. Если письмо не пришло на ящик, для перерегистрации на этот e-mail нужно подождать %s минут и повторить регистрацию."):format(iDelay)
  end
  local sPasswd = GetPass()
  local res, err = email.SendMail(sEmail, sSubject, GetMsg(tUser.sNick, sPasswd))
  if res then
    RegMan.AddReg(tUser.sNick, sPasswd, iRegProfile)
    Core.SendToOps("Зарегистрировался юзер с ником "..tUser.sNick)
    tMailList[sEmail] = tUser.sNick
    tNickList[tUser.sNick] = sEmail
    Save(tMailList, "tMailList", sFile)
    tNoActivate[tUser.sNick] = true
    Core.SendToUser(tUser, ("<%s> Пароль отправлен на адрес: (e-mail). Письмо с вашим паролем было успешно отправлено (Message with your password was sent successfully)"):format(sBot, iDelay))
  end
  return res, err
end


Строка

Код
    return nil, ("С введённым вами e-mail адресом уже зарегистрирован пользователь. Если письмо не пришло на ящик, для перерегистрации на этот e-mail нужно подождать %s минут и повторить регистрацию."):format(iDelay)
Go to the top of the page
+Quote Post
Enyby
сообщение 8.1.2012, 14:29
Сообщение #73


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Вижу в коде переменную iDelay, которая не инициализирована. Первый раз используется в указанной строке, а второй раз передается в
Код
    Core.SendToUser(tUser, ("<%s> Пароль отправлен на адрес: (e-mail). Письмо с вашим паролем было успешно отправлено (Message with your password was sent successfully)"):format(sBot, iDelay))

Но в строку формата не подставляется.

Более того, судя по названию переменной это целое число. А выводится как строка.
Дальше. Судя по сообщению скрипта, должен быть таймаут повторной регистрации. Его нет. Во всяком случае в коде я его не вижу.

Как экспресс фикс, можно в начале скрипта написать:
Код
iDelay = "5"

Но это неправильный подход.

UPD:
Резюмируя, могу сказать, что скрипт требует переделки, если предлагается реализовывать заявленный функционал.

Если же не переделывать, то достаточно изменить так:

Код
function Regme(tUser)
  local sEmail = cmd.msParams
  if tMailList[sEmail] then
    return nil, ("С введённым вами e-mail адресом уже зарегистрирован пользователь. Если письмо не пришло на ящик, для перерегистрации обратитесь к оператору.")
  end
  local sPasswd = GetPass()
  local res, err = email.SendMail(sEmail, sSubject, GetMsg(tUser.sNick, sPasswd))
  if res then
    RegMan.AddReg(tUser.sNick, sPasswd, iRegProfile)
    Core.SendToOps("Зарегистрировался юзер с ником "..tUser.sNick)
    tMailList[sEmail] = tUser.sNick
    tNickList[tUser.sNick] = sEmail
    Save(tMailList, "tMailList", sFile)
    tNoActivate[tUser.sNick] = true
    Core.SendToUser(tUser, ("<%s> Пароль отправлен на адрес: (e-mail). Письмо с вашим паролем было успешно отправлено (Message with your password was sent successfully)"):format(sBot))
  end
  return res, err
end


Спасибо сказали:
Go to the top of the page
+Quote Post
Ameet
сообщение 13.1.2012, 0:59
Сообщение #74


Активный участник
***

Группа: Пользователи
Сообщений: 73
Регистрация: 5.1.2009
Из: Украина, г. Сумы
Пользователь №: 1 684
Спасибо сказали: 0 раз




Ребята, помогите реализовать функцию восстановления пароля.
Go to the top of the page
+Quote Post
Enyby
сообщение 13.1.2012, 8:25
Сообщение #75


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Вот функция. Вызывать по вкусу. Особо не тестил, но должно работать:
Код
function Restore(tUser)
  local sEmail = cmd.msParams
  if not tMailList[sEmail] then
    return nil, ("С введённым вами e-mail адресом ни зарегистрирован ни один пользователь. Если вы уверены, что e-mail указан без ошибок, обратитесь к оператору.")
  end
  if not RegMan.GetReg(tMailList[sEmail]) then
    return nil, ("Аккаунт пользователя, привязанный к данному e-mail был удален, обратитесь к оператору.")
  end
  local sPasswd = GetPass()
  local res, err = email.SendMail(sEmail, sSubject, GetMsg(tMailList[sEmail], sPasswd))
  if res then
    RegMan.ChangeReg(tMailList[sEmail], sPasswd, RegMan.GetReg(tMailList[sEmail]).iProfile)
    Core.SendToOps("Выполнено восстановление пароля для ника "..tMailList[sEmail].." на e-mail "..sEmail)
    Core.SendToUser(tUser, ("<%s> Пароль отправлен на адрес: %s. Письмо с вашим паролем было успешно отправлено (Message with your password was sent successfully)"):format(sBot, sEmail))
  end
  return res, err
end
Go to the top of the page
+Quote Post
Ameet
сообщение 27.1.2012, 15:27
Сообщение #76


Активный участник
***

Группа: Пользователи
Сообщений: 73
Регистрация: 5.1.2009
Из: Украина, г. Сумы
Пользователь №: 1 684
Спасибо сказали: 0 раз




Видел на озерках фишку что невозможно зарегистрироваться если нету шары 10 гб, как можно реализовать такую фишку?
Go to the top of the page
+Quote Post
Артём
сообщение 27.1.2012, 16:25
Сообщение #77


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




Ameet, перед отправкой команды сделай проверку на шару.
Примерно так (может и не правильно, но вроде работает big_smile1.gif )
РаскрИвушка
Код
function ChatArrival(tUser, sData)
    Core.GetUserAllData(tUser) -- начало
        if tUser.iShareSize <= iMinShare then
        Core.SendToUser(tUser, "У вас мало открыто шары, откройте "..iMinShare.."")
    return true -- конец проверки на шару
  end
  local r, e = cmd.Exec(sData:sub(#(tUser.sNick) + 4, -2), tUser)
  if not r and e then
    Core.SendToUser(tUser, ("<%s> "..e):format(sBot))
  end
  if cmd.miCmdState == 3 then
    Core.SendToUser(tUser, ("<%s> Команда введена без префикса"):format(sBot))
  end
  if cmd.miCmdState == 4 then
    Core.SendToUser(tUser, ("<%s> Вы уже зарегистрированы!"):format(sBot))
    return true
  end
  if r or e then
    return true
  end
end

и в самом верху где настройки
Код
local iMinShare = 536870912000 -- 500 Gb (1*1024*1024*1024)   1073741824 = 1 Гб
Go to the top of the page
+Quote Post
Ameet
сообщение 27.1.2012, 17:24
Сообщение #78


Активный участник
***

Группа: Пользователи
Сообщений: 73
Регистрация: 5.1.2009
Из: Украина, г. Сумы
Пользователь №: 1 684
Спасибо сказали: 0 раз




Цитата(Артём @ 27.1.2012, 16:25) *
Ameet, перед отправкой команды сделай проверку на шару.
Примерно так (может и не правильно, но вроде работает big_smile1.gif )
РаскрИвушка
Код
function ChatArrival(tUser, sData)
    Core.GetUserAllData(tUser) -- начало
        if tUser.iShareSize <= iMinShare then
        Core.SendToUser(tUser, "У вас мало открыто шары, откройте "..iMinShare.."")
    return true -- конец проверки на шару
  end
  local r, e = cmd.Exec(sData:sub(#(tUser.sNick) + 4, -2), tUser)
  if not r and e then
    Core.SendToUser(tUser, ("<%s> "..e):format(sBot))
  end
  if cmd.miCmdState == 3 then
    Core.SendToUser(tUser, ("<%s> Команда введена без префикса"):format(sBot))
  end
  if cmd.miCmdState == 4 then
    Core.SendToUser(tUser, ("<%s> Вы уже зарегистрированы!"):format(sBot))
    return true
  end
  if r or e then
    return true
  end
end

и в самом верху где настройки
Код
local iMinShare = 536870912000 -- 500 Gb (1*1024*1024*1024)   1073741824 = 1 Гб

такой вопрос а имеет значение куда вставить функцию в конец или начала списка функций?
Go to the top of the page
+Quote Post
Enyby
сообщение 27.1.2012, 17:36
Сообщение #79


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 391
Регистрация: 4.11.2009
Из: Дом
Пользователь №: 4 923
Спасибо сказали: 239 раз




Только вместо:
Код
Core.GetUserAllData(tUser)

Лучше писать:
Код
Core.GetUserData(tUser, 16)
Go to the top of the page
+Quote Post
Артём
сообщение 27.1.2012, 17:41
Сообщение #80


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




Ameet, нет, всё равно
P.S. Если хочешь чтобы шару в нормальном виде показывало, а не в байтах, добавь
Код
FormatSize = function(int)
    local i,u,x = tonumber(int) or 0,{"","K","M","G","T","P"},1
    while i > 1024 do i,x = i/1024,x+1 end return string.format("%.2f %sB.",i,u[x])
end

и
Код
Core.SendToUser(tUser, "У вас мало открыто шары, откройте "..FormatSize(iMinShare).."")

будет показывать место
Цитата
У вас мало открыто шары, откройте 536870912000

вот так
Цитата
У вас мало открыто шары, откройте 500.00 GB.
Go to the top of the page
+Quote Post
Ameet
сообщение 27.1.2012, 17:58
Сообщение #81


Активный участник
***

Группа: Пользователи
Сообщений: 73
Регистрация: 5.1.2009
Из: Украина, г. Сумы
Пользователь №: 1 684
Спасибо сказали: 0 раз




Цитата(Артём @ 27.1.2012, 17:41) *
Ameet, нет, всё равно
P.S. Если хочешь чтобы шару в нормальном виде показывало, а не в байтах, добавь
Код
FormatSize = function(int)
    local i,u,x = tonumber(int) or 0,{"","K","M","G","T","P"},1
    while i > 1024 do i,x = i/1024,x+1 end return string.format("%.2f %sB.",i,u[x])
end

и
Код
Core.SendToUser(tUser, "У вас мало открыто шары, откройте "..FormatSize(iMinShare).."")

будет показывать место
вот так

как бы сделать что бы в сообщении что вам нужно шарнуть 10гб писало не метрами а гигабайтами?
Go to the top of the page
+Quote Post

6 страниц V  « < 2 3 4 5 6 >
Ответить в данную темуНачать новую тему
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts От: RegmeEmail
От темы с ID: 2794
0 Drakula 3 694 21.11.2014, 14:33 Посл. сообщение: Drakula
No New Posts От: RegmeEmail
От темы с ID: 2794
1 Артём 5 247 29.3.2010, 1:59 Посл. сообщение: (Steep)_(Boss)

 



RSS Сейчас: 23.11.2024, 10:00