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

Лидеры


Популярный контент

Показан контент с высокой репутацией 31.01.2022 во всех областях

  1. 2 балла
    Использовал мод BlocksRenderer, получил кучу отрендренных предметов (в т.ч. блоков). Потом переименовал скриптом, чтобы убрать пробелы и убрать заглавные. Потом переместил в assets приложения. Ниже пример для ThermalExpansion.
  2. 1 балл
    Робот умеет сортировать, искать и выдавать предметы по запросу игрока из сундуков. Для управления используется приложение на Android, генерирующие программу для робота. Github: https://github.com/vladd11/OpenComputersStorage APK: https://github.com/vladd11/OpenComputersStorage/releases/download/1.0/app-release.apk UPD: при установке Google Play Защита ругается на неизвестного разработчика. Если вы не доверяете - соберите приложение самостоятельно. Демонстрация работы: Склад строится строго к положительной оси X (на отрицательной оси работа не тестировалась) и также может быть расширен по оси Z. Робот может использовать любые сундуки, в том числе те, которые расположены сбоку/снизу/сверху (он будет поворачиваться к ним). Используемая конфигурация (монитор и клавиатура с графической картой необязательны): Установка программы (OpenOS должна быть установлена на диск): mkdir chests rm .shrc wget https://raw.githubusercontent.com/vladd11/OpenComputersStorage/main/robot/.shrc wget https://raw.githubusercontent.com/vladd11/OpenComputersStorage/main/robot/find.lua wget https://raw.githubusercontent.com/vladd11/OpenComputersStorage/main/robot/movement.lua wget https://raw.githubusercontent.com/vladd11/OpenComputersStorage/main/robot/server.lua wget https://raw.githubusercontent.com/vladd11/OpenComputersStorage/main/robot/update.lua wget https://raw.githubusercontent.com/vladd11/OpenComputersStorage/main/robot/utils.lua edit server.lua В начале файла измените 192.168.1.106 на IP своего смартфона. Если он находится в локальной сети (подключение по WiFi), удалите диапазон 192.168.0.0/16 из blacklist (.minecraft/config/opencomputers/settings.conf, 607 строка). Сохраните и закройте файл (Ctrl+S, Ctrl+X). Перезагрузите робота и откройте приложение на Android'е. Выберите используемые моды, дождитесь загрузки. Проблемы: 1. Если предмет переименован на наковальне, его иконка не будет найдена (вместо этого будет видно новое название и количество). 2. Если предмет имеет NBT (зачарования, прочность, заряд и т.д.) сортировка попытается соединить их в 1 стак. В итоге предмет останется в инвентаре робота. 3. Задержка доставки команд - около 5 секунд. Можно изменить в файле server.lua UPD: Некорректная работа в одиночной игре, если язык - русский. В таком случае нужно переключится на английский (США) либо текстуры нужно переименовывать на русский язык вручную, BlocksRenderer не умеет сохранять Items с кириллицей. На серверах работает правильно вне зависимости от языка. TODO: 1. Более удобное сканирование сундуков (например по диапазону координат). 2. Перенос текстур из assets приложения в кэш (в папку Android/media) для того, чтобы дать пользователю возможность добавления новых текстур без перекомпиляции. Если нужно добавить мод, которого нет в списке, см. видео. Для выполнения нужно скачать скрипт и установить Python.
  3. 1 балл
    За форумом я в последнее время слежу через RSS-читалку, и недавно мне начали попадаться какие-то настолько огромные стены безграмотного текста, что решил заглянуть, что тут творится. В общем, это были посты @rootmaster: с ошибками в словах, которые третьеклассник не допустит, желанием материться в каждом третьем посте, без форматирования, без точек, запятых, всё сплошняком, зато с излишними самоуверенностью и невежеством. Тут вот заверяется защита от замены биоса изнутри запущенной системы. За фичу эту много людей берётся, но постоянно делают всё не так от незнания. Напомню: достаточно просто подменить component.invoke именно в таблице, которую получает биос в окружении. И мне стало интересно: может, зря я осуждаю непризнанного гения. Вдруг хоть он смог понять и сделать всё по уму и красоте. Тем более, что сам код биоса не читабелен непосредственно, то есть вишней на торте даже до обфускации какой-то автор дошёл. Ещё и функционалы какие-то определил и тут же расширил. ...Ну да, если бы. И саспенса не получилось даже: были б ум да красота, я бы пост этот в принципе не писал. Код напичкан костылями. Было решено скопировать component в отдельную таблицу, в которой покрыть влоб бронёй прокси, отдаваемый методом component.proxy для компонента eeprom. Затем пришлось переопределить поле invoke в копии, чтобы он работал через component.proxy, а не внутренние механизмы machine.lua. И это всё работает на одной сопле в форме локальной переменной со ссылкой на эту прокси: без неё все изменения бы откатились при следующем же collectgarbage, потому что возвращаемые прокси лежат в эфемерной (__mode = "v") табличке-кэше. Хотя я наврал со словом "работает". Если хоть немного вдаться в работу machine.lua, сразу должно стать понятным, что "защита" элементарно обходится. Например, вот так. getmetatable(component.eeprom.getSize).__call({address = component.eeprom.address, name = "set"}, "lol") И без перепрошивки комп больше не запустится. Насчёт третьего пункта выше я даже не особо понял, как так вышло. То ли автор всё-таки под капотом смог разглядеть тонкости кэша проксей, то ли он просто от балды пытался код менять, пока не заработало, то ли досталось счастливым артефактом от прошлых версий проги. Неважно. Осуждаю по всем пунктам обвинения. А ведь стоило бы по-человечески написать, и лайкнул бы, и похвалил. И другие, думаю, сарказмом бы не поливали.
  4. 1 балл
    Так суть в том, что можно написать биосъ так, что он скомпилируется хоть там, хоть там. так как улюбого дображелателя обязательно найдётся интернет-карта, ага... Да ну? OpenOS замечательно работает хоть так, хоть этак. И большинство программ тоже. Не совсем так (надо проверять, иначе будет вечная перезагрузка вроде), но можно.
  5. 1 балл
    Версия 6: Добавил поддержку спрайтов! Исправил 2 бага.
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...