Перейти к содержимому

Barawik_

Пользователи
  • Публикации

    14
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем Barawik_


  1. 4 часа назад, Ingr сказал:

    применительно к твоему коду возможно можно сделать так:

    
    g.setForeground(COLOR1)
    Bar.Word(mid - 24,7, "BARAPAD", 0x222222)
    Bar.MidR(WIGHT,32,"Введите пароль:")
    term.setCursor(mid-2,33)
    
    baza = {name = {}} -- создаем массив для базы паролей
    baza["user1"] = "pass1" -- вносим в базу пользователя с логином и паролем user1:pass1
    
    local p, nick = Bar.Read({mask = "*", max = 8, accept = "0-9a-f", blink = true, center = true, nick = true})
    
    if baza[nick] == p then -- проверяем на соответствие пароля и имени, если совпадают то вуаля
        login = true
        Bar.MidR(WIGHT,33,"Приветствую, " .. nick)
        computer.addUser(nick)
        os.sleep(2)
        Bar.ClearL(HEIGHT)
        Bar.ClearR(WIGHT,HEIGHT)
        Rules(nick)
        Table()
    end

    но я не очень понимаю как работает твоя библиотека? где ты вводишь ник пользователя? что такое Bar.PASSES и Bar.NICK и для чего делаются их проверки?

    Bar.Read как я понял вводит пароль и присваивает его переменной p?


    Смотри, Bar.Read как io.Read, только чуть-чуть переделанная под программу. Так-же присваивает паролю p, а логину nick


    А Bar.PASSES и Bar.NICKS - базы паролей и ников.


  2. 15 минут назад, Ingr сказал:

    проверял тут

    https://repl.it/repls/GleefulExperiencedSymbols

    все работает

    но это лишь пример, под конкретную программу нужно наверняка что то править...

     

    чтобы в моем примере пройти проверку нужно вводить

    логин:

    nick1

    пароль:

    pass1


    Попробую чуть-чуть переделать.


  3. 53 минуты назад, Ingr сказал:

    для хранения пар "имя":"пароль" создаешь таблицу таблиц, некий аналог хешей в Перл

    вот набросал простейший пример иллюстрирующий такое:

    
    p = {nick = {}}
    p["nick1"] = "pass1"
    p["nick2"] = "pass2"
    
    print ("логин:")
    nick = io.read()
    print ("пароль:")
    pass = io.read()
    
    if p[nick] == pass then
      print ("ура вы вошли")
    else
      print ("облом")
    end

     

    Попробовал ваш пример, не работает, все идет один облом, или мб облом, из-за того что я кинул данные в библиотеку?..


  4. 6 минут назад, Ingr сказал:

    если честно то вообще не понятно с чем нужна помощь? С массивами?

    вот простейший пример массива:

    
    t = {"красный", "зеленый", "синий"} -- создаем массив
    print (t[2]) -- выводим второй элемент массива
    все работает :)

    Смотри,  а мне нужно чтобы программа сравнивала введеный пароль например: 1234, и если в массиве есть такой же пароль, то он отключает авторизацию и идет дальше D

     

     


  5. 7 минут назад, eu_tomat сказал:

    @Barawik_ Код желательно оформлять тегом "код" и, если потребуется, уже в таком виде прятать под спойлер.

    Тег "код" позволит сохранить отступы, и читать правильно оформленный код другим людям станет заметно легче.

     

    Кроме того, опубликован не весь код, а лишь его часть. Не ясно, например, как устроена таблица Bar. Она из какой-то библиотеки?

    Библиотека собственная, полный код могу скинуть только в личку, т.к. нету желания палить код.


  6. Здравствуйте, форумчане! Прошу помощи, я с другом решили создать сборник программ. И решили сделать вход по никам. Мой друг-*программист*, сказал что нужно делать через массивы, загуглил, попробовал сам, не получилось, попробовал друг, тоже не получилось. Прошу помочь:)


    g.setForeground(COLOR1)
    Bar.Word(mid - 24,7, "BARAPAD", 0x222222)
    Bar.MidR(WIGHT,32,"Введите пароль:")
    term.setCursor(mid-2,33)
    local p, nick = Bar.Read({mask = "*", max = 8, accept = "0-9a-f", blink = true, center = true, nick = true})
    if p==Bar.PASSES then
    if nick ==Bar.NICK  then
    login = true
    Bar.MidR(WIGHT,33,"Приветствую, " .. nick)
    computer.addUser(nick)
    os.sleep(2)
    Bar.ClearL(HEIGHT)
    Bar.ClearR(WIGHT,HEIGHT)
    Rules(nick)
    Table()
    end
    end

    --=========МАССИВЫ========== Bar.NICK = {"Barawik_", "InfinityDark", "alexowe", "Muronuch"} Bar.PASSES = {"11042005","darks", "owes", "2288"}



    *подробности, где в начале стоит "Bar" это подключенная библиотека. Вопросы можете отписать здесь или в http://vk.me/k.i.r.i.l.l.gorodilov*

  7. Ну даже незнаю. там вроде все просто пошагово описано что где, куда и как. Попробуй пройти статью потихоньку набирая весь код, что предлагает Doob. Там просто нереально сильно все разжевано. Но коль не понятно, отделяю оттуда только 1 кнопку и даю тебе её код. Незнаю как это поможет.

    ...

    Благодарю, но ваш код не очень, из-за того что при внедрении в мою программу либо видно только сам текст программы, кнопок не видно, либо только кнопки, но не видно программы. Помогите, буду рад c:

  8. @@Kartze Мне не нужна авто-печать) У меня есть комнатки, в которые заходишь. фигуры печатаются, ты платишь и тебе выпадает МЭ Ячейка. Вот.. Мне нужен просто прайс. Начальный экран, потом кнопки внизу по типу thermal, ic2, ex nihilio, ae 2, ресурсы, прочее, и т.д . мне можно просто 1 кнопку, объяснить что где, я с остальными сам попробую разобраться) :D


  9. Добрый день. Можете кто-то написать маленький код, для 5 кнопок, с возможностью обновления того отдела на который он ведет. На подобии 

    os.execute("wget -f https://pastebin.com/raw/....... te.lua")
    os.sleep(1)
    os.execute("te")
    

    что-то так, и располагалось на 1 строке) размеры програмки: 72x30, примерное расположение кнопок 27 строка))) Исходный код:

     

     

    local c = require('component')
    local u = require('unicode')
    local t = require('term')
    local e = require('event')
    local shell = require('shell')
    local g = c.gpu
    local color = g.setForeground
     
    local w,h = 72,30 -- разрешение экрана
    local outer = 1 -- отступ от строк
     
    local frases = { -- таблица с фразами и цветовой разметкой
        '&c Магазин 3Д Моделей',
        '&6Внеземные                      &aОбычные                      &fДекор',
        '                                                                       ',
        '&6Эндермен - 6                    &aКурятин - 3           &fФонарь - 2,5',
        '&6Ифрит - 5                     &a Оцелотик - 3           &fЦветок - 2,5',
        '&6Мимик - 25                    &a Волчонок - 3            &fФонтан - 40',
        '&6Голем - 10                    &a  Коровка - 3            &fХаммер - 40',
        '&6Кровавый алтарь - 40                               &fПосох силы - 15',
        '                                                           &fДиван - 15',
        '                                                   &fКубик Рубика - 2,5',
        '                                                 &fКоролевский трон - 4',
        '                                                           &fТанк - 2,5',
        '                                                           &fУнитак - 4',
        '                                                         &fРаковина - 4',
        '                                                         &fСтолик - 2,5',
        '                                                                       ',
        '                                                                       ',
        '                                                                       ',
        '                                                                       ',
        '&aЦены указаны в игровой валюте - Эмиральды',
        '&f=====================================================================',
        '&bВопросы по разработке моделей к &aMag010 &bили &3Xyanide_ &b(владельцы)',
        '  &aРазработка программы &f- &c Barawik_&a(ленивый не будет вам писать)',
        '&6Тут могла быть ваша реклама! Круто, да? Хочешь? Не будет. Ну или нет?'
        }
     
    local colorsTable = {
                ['&0'] = function() color(0x000000) end,
                ['&1'] = function() color(0x0000AA) end,
                ['&2'] = function() color(0x00AA00) end,
                ['&3'] = function() color(0x00AAAA) end,
                ['&4'] = function() color(0xAA0000) end,
                ['&5'] = function() color(0xAA00AA) end,
                ['&6'] = function() color(0xFFAA00) end,
                ['&7'] = function() color(0xAAAAAA) end,
                ['&8'] = function() color(0x555555) end,
                ['&9'] = function() color(0x5555FF) end,
                ['&a'] = function() color(0x55FF55) end,
                ['&b'] = function() color(0x55FFFF) end,
                ['&c'] = function() color(0xFF5555) end,
                ['&d'] = function() color(0xFF55FF) end,
                ['&e'] = function() color(0xFFFF55) end,
                ['&f'] = function() color(0xFFFFFF) end }
     
    function printFormatText(x,y,text)
        local crit = '&'
        local corr = 0
        for i = 1, u.len(text) do
            local letter = u.sub(text,i,i)
            if letter == crit then
                pcall(colorsTable[u.sub(text,i,i+1):lower()])
                corr = corr + 2
                skip = true
            else
                if not skip then
                    g.set(x+i-corr,y,letter)
                end
                skip = false
            end
        end
    end
     
    function getX(frase)
        local len = u.len(frase:gsub('&.',''))
        local x = w/2 - len/2
        return math.floor(x)
    end
     
    t.clear()
    g.setResolution(w,h)
     
    for i = 1, #frases do
        local frase = frases[i]
        printFormatText(getX(frase),outer*i,frase)
    end
     
    color(0xFFFFFF)
    g.set(1,25,'========================================================version 0.1====')
    color(0xFFFFFF)
     
    while true do
        local _,_,_,curY = e.pull('touch')
        if curY == 25 then
            os.execute("wget -f https://pastebin.com/raw/mK3KkRJB test.lua")
            os.sleep(3)
            os.execute("test")
        end
      end
    t.clear()
    

     

     

    Можете что-то исправить чтобы работало) + пробывал вашу схему, не работаит(

×
×
  • Создать...