kaka888
-
Публикации
159 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем kaka888
-
-
В 08.11.2024 в 22:49, Teen_Romance сказал:А как сейчас этой либой и смежными ей можно воспользоваться без установки MineOs? Попросил чатик, он мне написал простенький скрипт чтобы скачать все файлы на комп:
Чета типо этогоlocal internet = require("internet") local filesystem = require("filesystem") -- Базовый URL репозитория local baseURL = "https://raw.githubusercontent.com/IgorTimofeev/MineOS/master/Libraries/" -- Список файлов для загрузки local files = { "Base64.lua", "BigLetters.lua", "Bit32.lua", "Color.lua", "Component.lua", "Compressor.lua", "Event.lua", "Filesystem.lua", "GUI.lua", "Image.lua", "Internet.lua", "JSON.lua", "Keyboard.lua", "Network.lua", "Number.lua", "Paths.lua", "SHA-256.lua", "Screen.lua", "Sides.lua", "System.lua", "Text.lua", "Vector.lua", "XML.lua" } -- Целевая директория для сохранения библиотек local targetDir = "/lib/" -- Функция для загрузки файла local function downloadFile(url, path) local handle, err = internet.request(url) if not handle then io.stderr:write("Ошибка подключения: " .. (err or "неизвестная ошибка") .. "\n") return false end local file, err = io.open(path, "wb") if not file then io.stderr:write("Ошибка создания файла: " .. (err or "неизвестная ошибка") .. "\n") return false end for chunk in handle do file:write(chunk) end file:close() return true end -- Создание целевой директории, если она не существует if not filesystem.isDirectory(targetDir) then filesystem.makeDirectory(targetDir) end -- Загрузка файлов for _, file in ipairs(files) do local url = baseURL .. file local path = targetDir .. file print("Загрузка " .. file .. " из " .. url) if downloadFile(url, path) then print("Файл успешно сохранён: " .. path) else print("Не удалось загрузить: " .. file) end end print("Загрузка завершена. Библиотеки сохранены в " .. targetDir)
После установки я попробовал запустить простенькую программу:
local component = require("component") local event = require("event") local gpu = component.gpu local GUI = require("GUI") -- Создаем графическое окно local workspace = GUI.workspace() -- Создаем главный контейнер local mainContainer = workspace:addChild(GUI.container(1, 1, gpu.getResolution())) -- Заголовок mainContainer:addChild(GUI.label(1, 1, mainContainer.width, 3, 0xFFFFFF, "Простой Калькулятор")) :setAlignment(GUI.ALIGNMENT_HORIZONTAL_CENTER, GUI.ALIGNMENT_VERTICAL_TOP) -- Поля для ввода чисел local input1 = mainContainer:addChild(GUI.input(10, 5, 20, 3, 0xFFFFFF, 0x000000, 0xAAAAAA, 0xFFFFFF, 0x000000, "", "Число 1")) local input2 = mainContainer:addChild(GUI.input(10, 9, 20, 3, 0xFFFFFF, 0x000000, 0xAAAAAA, 0xFFFFFF, 0x000000, "", "Число 2")) -- Место для результата local resultLabel = mainContainer:addChild(GUI.label(10, 13, 30, 3, 0xFFFFFF, "Результат: -")) -- Кнопка для выполнения сложения local addButton = mainContainer:addChild(GUI.button(10, 15, 20, 3, 0xAAAAAA, 0x000000, 0x888888, 0xFFFFFF, "Сложить")) -- Обработчик события для кнопки addButton.onTouch = function() local number1 = tonumber(input1.text) local number2 = tonumber(input2.text) if number1 and number2 then resultLabel.text = "Результат: " .. (number1 + number2) else resultLabel.text = "Ошибка ввода!" end end -- Запуск программы workspace:draw() workspace:start()
И при запуске у меня все время какие то ошибки в либах этих выскакивают:
/lib/Event.lua: attempt to index a nil value (global 'computer')
фиксишь его - потом еще в filesystem component nil, потом filesystem мне комп ломает почему то тем что из за ошибок я файлы редактировать не могу.
Я не верю что на гите код какой то кривой лежит, но где меня чатик обманул?
upd:
я так понял не получится ничего потому что
Так в этой же теме ECS дал ссылку на корректную либу GUI.lua для OpenOS...
Вот доки (там же отроешь и исходники): https://github.com/IgorTimofeev/GUI/blob/0fadb161469d404d477dd9babfdc9a5aa42ff203/README.md
-
Подскажите продвинутый текстовый редактор/редактор кода для OpenOS. Желательно, чтоб было автодополнение или что-то другое.
-
В 20.02.2020 в 08:46, Doob сказал:Первое, что бросается в глаза, это запуск скрипта, если нужен третий питон, то обязательно надо писать python3 script.py
Второе, это ошибка синтаксиса, мои телепатические способности подсказывают, что там должен быть какой-то импорт, но написан он неправильно.
Файл в студию или можешь потыкать в умной IDE, вроде PyCharm, тогда все станет понятно.
Сделал твой ответ верным
-
В 16.01.2021 в 18:49, hohserg сказал:А они по дефолту публичные чтоли?
На mcskill да)
-
В 14.07.2022 в 09:52, Wolframoviy сказал:настоящего уже возможно и не будет никогда, так как Алекс пропал, а среди админов другого такого человека нет.
А что с Алексом? Куда пропал?
-
Получится ли зайти на сервер со своей сборки?
-
Ох, беда! Установщик не запускается на Windows 7!
Отсутствует api-ms-win-core-path-l1-1-0.dll.
-
35 минут назад, ECS сказал:Печальные баги - это, видимо, GUI.menu(1, 2, ...) вместо GUI.menu(1, 1, ...)? Ты же сам расположил менюху на Y = 1, где уже чиллит титловая строка. Разумеется, менюха ее перекрыла
На всякий случай уточню, что гуйка работает с заранее известными координатами и размерами всех объектов, ничего не рассчитывая автоматически без ведома кодера - это не WPF/UWP с адаптивной версткой, т.к. ресурсы компов люто лимитированы. Исключения, конечно, есть в виде всяких GUI.layout или GUI.table, но это капля в море. Поэтому любая смена позиции или ресайз виджетов требует ручной обработки
А, и еще кое-что: GUI.titledWindow / tabbedWindow и иже с ними - просто шаблоны, которые создаются буквально в 10 строчек кода на основе базового объекта окна GUI.window, но с учётом твоих личных нужд. В них попросту заранее выставлены нужные координаты и подогнаны размеры, ничего более
Какое облегчение, я уж думал версия для OpenOS настолько несовершенна :DD
-
Наткнулся на печальные баги
При добавлении строки меню (GUI.menu) в titledWindow окно превращается в обычный GUI.window, то есть исчезает вся шапка окна (заголовок окна, фон и три кнопки close, maximize...).
Таким же образом добавил менюшку в tabbedWindow - эффект похожий (тёмно-серая шапка с кнопками и вкладками обрезается на треть).
В обоих случаях меню, конечно, рисуется, но мне и шапка окна нужна. Что же делать?
Вот скрины: https://imgur.com/a/8kFBjXq
-
В 04.03.2022 в 10:34, ECS сказал:Этот параметр сообщает экранному буферу, что нужно отобразить не только изменившиеся с последней отрисовки пиксели, а вообще все сразу. Обычно эта необходимость возникает при запуске скриптов, работающих с GPU напрямую в обход концепции экранного буфера. То есть в случае майноси практически никогда. Разве что для каких-нибудь старых игр или скринсейверов фича может быть востребованной...
В доке по workspace он указан, хотя и без пояснений. Могу добавить инфу на всякий, если нужно:
Теперь всё стало ясно, спасибо
-
Люди, пацкажыте что за непонятный параметр true в вызове application:draw(true). Этот true передаётся во многих примерах в Wiki в репе ECS/GUI.
И этот параметр никак не задокументирован, если я не слепой
-
В 27.03.2021 в 17:23, antonn3312578859 сказал:ну да, но хотелось бы видеть её в OpenOS
Можешь юзать версию 2018 года, она лежит в репе ECS/GUI.
-
В 28.02.2022 в 18:53, ECS сказал:За работоспособность самой либы не ручаюсь, т.к. с тех времен вышла тысяча и одна обнова под майнось, но инсталлер рабочий:
Я тут чекнул твою тему про библиотеку, но там нет инструкции по использованию. Где её можно найти?
-
Ну и попробую тогда поставить MineOS на эмулятор))) Думаю должно получиться, и летать, наверное, будет
-
1
-
-
8 часов назад, ECS сказал:Хех, она не будет работать вообще никак, т.к. у нее одна зависимость: MineOS целиком.
Если интересны подробности, то вот лонгстори: изначальная версия гуи-либы писалась как простая основа для графической оболочки поверх OpenOS, и "из коробки" она поддерживала лишь наиболее привычные виджеты типа кнопок/картинок/слайдеров (кстати, по ссылке выше как раз та самая версия). MineOS была скорее технодемкой возможностей гуишки. Однако время шло, появилась потребность в перетаскиваемых окошках, файловых модальных диалогах, селекторах цвета и т.п. Также требовалось все больше и больше узкопрофильного функционала - например, почанковое скачивание файлов с обработчиками данных или побитовые приколюхи типа file:readBytesAsNumber(count, isLittleEndian). Все эти мелочи использовались довольно часто как в системных либах по работе с пикчами, так и в прикладном софте типа MIDI-парсера или мини-игр. Изначально я оформлял их в виде дополнительных библиотек типа AdvancedLua или Web, однако просто устал плодить архитектурный говнокод. Контрольным выстрелом оказалась обнова OpenOS (1.6, если не ошибаюсь), где поменялись API process/event, что убило инсталлер MineOS на новых версиях мода. В итоге я решил, что быстрее будет написать чистую ОС с интегрированной UI'шной бизнес-логикой, чем пытаться адаптироваться под существующую
Собственно, вот, интеграция вышла по самые помидоры. Глобальный минус один - либы настолько глубоко засели друг в друге, что проще писать под MineOS, чем пытаться их выдрать и использовать в другой ОС. На всякий случай я сохранил старые версии гуишки в виде легаси - но никаких новых фич и фиксов, конечно, там уже не будет
Офигенная история)
Жаль, что не смогу "выдрать" для OpenOS. Просто я в колледже хочу делать лабы по программированию в эмуляторе OpenComputers, а forms.lua не сильно хочется юзать.
Ну что ж, попробую тогда GUI.lua legacy, спасибо
-
15 минут назад, ECS сказал:За работоспособность самой либы не ручаюсь, т.к. с тех времен вышла тысяча и одна обнова под майнось, но инсталлер рабочий:
А если взять вариант либы для MineOS, но юзать её в OpenOS, то она будет работать так же хорошо или как? Ну типа если я все зависимости типа advancedLua, doubleBuffering и т.д. тоже загружу.
-
В 29.07.2015 в 19:02, Zer0Galaxy сказал:pastebin get iKzRve2g lib/forms.lua
Конечно, браузер на такой библиотеке не построить, но для небольших приложений может сгодится.
Библиотека позволяет создавать следующие визуальные компоненты:
Form (форма) - является контейнером для остальных компонентов. Служит для быстрой смены экранного интерфейса без необходимости удалять и создавать компоненты.
Button (кнопка) - тут всё понятно.
Label (метка) - просто строка текста.
Edit (окно ввода) - позволяет вводить текст.
Frame (рамка) - просто рамка.
List (список) - отображается в виде набора строк. Каждой строке ставится в соответствие элемент, способный хранить любое lua-значение (число, строку, таблицу и т.д.). Пользователь может прокручивать список, выбирать один из элементов, производить сортировку списка.
И невизуальные компоненты:
Event (событие) - обрабатывает системные события.
Timer (таймер) - позволяет вызывать функцию-обработчик с заданным периодом.
Пример работы с библиотекой:
forms=require("forms") -- подключаем библиотеку Form1=forms.addForm() -- создаем основную форму exitForm=forms.addForm() -- и форму диалога выхода exitForm.border=2 exitForm.W=31 exitForm.H=7 exitForm.left=math.floor((Form1.W-exitForm.W)/2) exitForm.top =math.floor((Form1.H-exitForm.H)/2) exitForm:addLabel(8,3,"Вы хотите выйти?") exitForm:addButton(5,5,"Да",function() forms.stop() end) exitForm:addButton(18,5,"Нет",function() Form1:setActive() end) Btn1=Form1:addButton(65,21,"Выход",function() exitForm:setActive() end) -- создаем кнопку выхода Btn1.color=0x505050 -- задаем цвет кнопки forms.run(Form1) --запускаем gui
Попробовать библиотеку в действии можно в дата-центре на компьютере с координатами 10150, 14199. Для этого необходимо запустить файл form.lua
Привет. Эта библиотека есть на GitHub? Она с 2015 года ни разу не обновлялась?
-
Привет всем. Хочу делать красивый GUI для своих приложений в OpenOS, но последний опыт с Forms меня очень сильно огорчил. Хотелось бы попробовать GUI от ECS, но не уверен, что в его репе https://github.com/IgorTimofeev/GUI вариант именно для OpenOS, да и там ещё куча зависимостей, которые хрен знает сколько придётся искать.
Так что жду совета от опытных гаишников - где взять эту либу?
-
А можно хотя бы точки расставить в этом "тексте"?
-
В 20.02.2022 в 14:47, bes_zensuri1 сказал:Еще раз здравствуйте. Из-за чего может не отписовываться элемент, а именно текст. При запуске программы он на месте, но после запуска функции экран никак не меняется.
function ruletka()
loadItems2(spisok, multyplier)
Label23.caption = ""
Label23:redraw()
y = 11
for i = 1, 26 do
name = spisok[1].item
y = y + 1
for x = i,y do
name = spisok[x].item
Label23.caption = Label23.caption.."\n"..name
Label23:redraw()
end
os.sleep(0.1)
Label23.caption = " "
Label23:redraw()
end
for x = 27,y+1 do
name = spisok[x].item
Label23.caption = Label23.caption.."\n"..name
Label23:redraw()
end
for i = 1, #spisok do
table.remove(spisok)
end
endLabel23=Form2:addLabel(44,7,"")
Label23.color = 0x000000
О, привет, Бес.
Рулетку сам кодишь?
-
А сервер работает?
-
1
-
1
-
3
-
-
Только что, ProgramCrafter сказал:Пока что это только концепт хранилища, я его ещё не строил.
А кодт сверхмаленького хранилища (как у @Doob) ещё не допилен - иногда перемещает предметы неоптимально.
Ясно. Но прочитать всё это было интересно)
-
1
-
-
Мне нравится.
Но где кот?
-
2
-
1
-
-
2 часа назад, Robo_start сказал:Возможно ли исполнение команд из маинкрафт при помощи робота?
Если речь о командах в чате (/msg, /list, /call, /money, /ban и пр.), то не может. Робот может писать в [локальный] чат только ОБЫЧНЫЕ сообщения, ну и, в некоторых случаях, видеть какие команды вводят игроки на всём сервере.


Python проблема
в Общие
Опубликовано:
Отличается, как оказалось)))