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

1Ridav

Администраторы
  • Публикации

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

  • Посещение

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


  1. Рид, я кажется понял, почему у меня не получилось отослать сообщение с windows-приложения. Если получится, сделаю и windows-клиента.

     

    Потом выложу кроссплатформенный клиент в jar формате. Можно будет с компьютера соединяться. Он в принципе есть, на нем тестировал и отрабатывал соединения с мостом перед тем, как перевести на андроид


  2. Нам удалось найти и договориться с хостинг компаниями о предоставлении нам пространства для сайта oxnull.net и VDS сервера foxcloud.net за их баннеры на нашем сайте. Проект существует с 2014 года, и мы все вместе добились определенных результатов. Разработали и продолжаем разрабатывать что-то новое и интересное.
     
    Однако для поддержки проекта требуются денежные средства на:

    • оплату домена computercraft.ru
    • продвижение нашего проекта на рейтинговых сайтах Minecraft.
    • покупку исправлений для модов, плагинов и др. платных услуг
    • приобретение лицензий McMyAdmin для администрирования серверов и др. ПО.

     
    Откуда их взять? Платных услуг у нас нет ни в каком виде, мы не заставляем ни за что платить. Все, что можно - сделано доступным для игроков. Реклама на сайте - почти нулевая прибыль из-за небольшого объема посетителей.

     

    Если вам понравился наш проект, вы можете исключительно на добровольной основе помочь нам.

     

                WebMoney 
    WMR - кошелёк R508463744808

    WMZ - кошелёк Z349748353724
    WME - кошелёк E169563136502

    • Нравится 1

  3. Так не считаю, но так как счётчик сообщений достиг аж 320 сообщений (кажется, я флудер), то попробовать ящичек заветный получить можно. Хотя у меня уже тонна их, но ящики, как известно, лишними не бывают.

     

     

    я в очередь.

    fingercomp@computercraft.ru

    neo@computercraft.ru

    созданы, первичные пароли скинул в личку. Не забудьте сменить.


  4. Желающим можно зарегистрировать почтовый ящик  NICKNAME@computercraft.ru

    Заявку на почту оставлять в топике. Почта будет выдана при выполнении любого хоть какого-то одного из перечисленных условий:
    • OR минимум 100 сообщ. на форуме
    • OR 2 и более медальки Байта
    • OR голосов за проект > 75
    • OR репутация > 100 ед.
    • OR материальная поддержка проекта в виде пожертвования средств (от 50 рубл.).
    • OR наличие любой из перечисленных наград: "Победа в ивенте, конкурсе", Помощник администрации, Медаль "На крыльях славы", Знак "Техническая поддержка", Знак "Платиновый геймпад", Осквернитель багов I ст., "Золотая звезда", ТОП-1 в голосовании за месяц, "Орден Верности"

     

     

    Если считаете, что достаточно активны на проекте, то оставьте в этой теме свою заявку.

     

    На почту можно зайти через http://mail.computercraft.ru/

    • Нравится 5

  5. Внимательо изучил исходники. Написано просто и понятно. Из минусов надо отметить невозможность изменять os.pullEvent иначе эта библиотека меню попросту перестанет работать. Так же к сожалению не увидел возможность создавать несколко меню и использовать их в зависимости от текущего состояния программы пользователя

     

    А так задумка очень даже полезная


  6. Как-то не прокатывает... Если использовать удочерение (например GUI.MainPanel:addCHILD(p1)) (без {}) вылетает ошибка GUI:105 (или 501...).

    Кроме того, попробовал создать 4 кнопки вообще без функционала т.е. голые квадраты

    b=GUI.NewButton()

    и потом вручную прописал им х, у, высоту, ширину и текст. И та же хрень: верхняя жмется нормально, а остальные кое-как. Т.е. жму на 4 (нижняя) и получаю эффект нажатия 1, 2, 3 и только потом 4. Не понимаю пока...

     

    Указанный пастбин устарел уже больше месяца назад. Используй эту версию: ZTM3Njm6

    • Нравится 1

  7. Доброго времени. Кейпад глючит: при лкм по любой отличной от 1 кнопке начинается странная беготня вызывающая странные ассоциации с поиском пути. Т.е. тыкаю на 16 и получаю на выходе последовательно нажатые 2, 6, 7,8,16 (к примеру. при следующем нажатии путь может пройти по другому). Вопрос: так и должно быть? =D

    16d75-clip-9kb.png?nocache=1

    
        os.loadAPI("GUI")
        b={}
        f={}
        local p1 = GUI.NewPanel(21,4)
        for i=1,16 do
          b[i]=GUI.NewButton(nil,1,1,3,3,tostring(i),f[i])
          f[i]=function(s)
          s=rednet.send(хххх,i)
          end
          p1:addCHILD({b[i]})
          i=i+1
        end
        for i=5,8 do
          b[i].x=6
          i=i+1
        end
        for i=9,12 do
          b[i].x=11
          i=i+1
        end
        for i=13,16 do
          b[i].x=16
          i=i+1
        end
        for i=2,14,4 do
          b[i].y=5
        end
        for i=3,15,4 do
          b[i].y=9
        end
        for i=4,16,4 do
          b[i].y=13
        end
        GUI.MainPanel:addCHILD({p1})
        GUI.MainPanel:draw()
    
    
    pastebin.com/ZyC0KXtx

     

     

    p1:addCHILD({b})

    GUI.MainPanel:addCHILD({p1})

    используй без кавычек {}

    . То есть GUI.MainPanel:addCHILD(p1)

    p1:addCHILD(b)

     

    Так же функционал надежнее задать через постустановку.

    b.func = function(s)

    бла бла бла

    end

     

    Баг в задании функционала


  8. Можно попробовать

                s.target.setBackgroundColor( s.color_used )
                for i=1,#temp do
                  X = term.getCursorPos()
                  if X > px + s.x + pos - 1 then
                    s.target.setBackgroundColor( s.color_bg )
                   s.target.write(temp:sub(i))
                    break
                  end
                 s.target.write(temp:sub(i,i)) 
                end
    
    вместо

    s.target.write(temp)
    
    Мой вариант решения:

                if cx > s.dynX + pos then
                   s.target.setBackgroundColor(s.color_bg)
                   s.target.write(temp)  
               else
                   s.target.write(string.sub(temp, 1, math.floor(s.dynX + pos - cx + 1) ) )
                   s.target.setBackgroundColor(s.color_bg)
                   s.target.write(string.sub(temp, math.floor(s.dynX + pos - cx + 2), #temp))
               end

     

     

    Для справки:

    Изменено апи

            _dynRefresh = function(s)
               px, py = 1, 1
               if s._PARENT then
                   px, py = s._PARENT.dynX, s._PARENT.dynY
               end
               s.dynX = s.x + px - 1
               s.dynY = s.y + py - 1
           end,


  9. В чем преимущества перед Graffiti?

    http-~~-//www.youtube.com/watch?v=FebXgbxbhN8

    Разные концепции реализации.

    Технология построения интерфейса отличается, хотя и имеет одни и те же цели.

    Задачей была гибкость и легкость разработки программ с использованием этой библиотеки. Разработчику достаточно лишь прилеиить куда нибудь объект и установить ему функционал. При использовании объекта он выполняет поставленную задачу сам , а как это все работает не должно тревожить разработчика

    Про различия скоростей работы ничего сказать не могу, тк не замерял

     

    Для сравнения создай на Graffiti две кнопки и прогрессбар. Одна кнопка пусть заполняет прогрессбар, а другая - очищает его.

     

    На моей GUI библиотеке это будет выглядеть так:

    os.loadAPI("GUI")
    local pb = GUI.NewProgressBar(nil, 10, 10, 14, 1) -- Создаем шкалу прогресса
    
    local f1 = function(s) -- Задаем функционал первой кнопки
      pb:stepIt() -- Заполняем шкалу на шаг
    end
    
    local f2 = function(s) -- задаем функционал второй кнопки
      pb:clear() -- Очищаем шкалу
    end
    
    local buttonFill = GUI.NewButton(nil, 1, 1, 5, 1, "fill ", f1)
    local buttonClear = GUI.NewButton(nil, 1, 3, 5, 1, "clear", f2)
    GUI.MainPanel:addCHILD({buttonFill, buttonClear, pb}) -- Добавляем на экран
    GUI.MainPanel:draw() -- Рисуем все объекты на экране
    

     

    К тому же мой вариант GUI может работать с бесконечным количеством мониторов, любой объект может быть на любом мониторе, можно менять положение прямо во время работы программы, динамически

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