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

Лидеры


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

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

  1. 8 баллов
    Новогодний интерфейсный марафет: Осовременена большая часть системных иконок, заимев мягкие оттенки и скругления Добавлен предпросмотр небольших изображений, что упрощает работу с ассетами Добавлен общий элемент верхнего меню, позволяющий быстро выключить/перезагрузить/обновить систему. Как и в, кхм, прародителе майноськи, он всегда остаётся видим при переключении между приложениями Уменьшен размер нижнего дока, дабы экономить вертикальное пространство Добавлена поддержка иконок для контекстных меню, которые к тому же стали крупнее и читабельнее Добавлена поддержка "живых обоев", позволяющая нативно ренедрить графику любой сложности. Они неплохо сочетаются со слабыми ПК, т.к. не расходуют ОЗУ на хранение пиксельных данных и выглядят вполне симпатично
  2. 6 баллов
    А знаешь, чего у него ещё нет? Нет аппаратных ограничений, что позволяет забить на оптимизацию софта, уничтожает челлендж, а новичков приучает бездумно писать плохой код. Ты думаешь, почему любой AAA-проект в 23 году имеет в минимальных требованиях RTX 2080? Всё потому что джуны учились кодить на CC! Нет сбалансированных рецептов крафтов, ПК в буквальном смысле создаётся из мусора. Это создаёт ложные представления о реальности, обучает требовать максимум, прикладывая минимум усилий. Сегодня ты кодишь на CC, завтра требуешь ЗП в 300к/наносек, а послезавтра спиваешься от разочарования! Нет возможности снести захардкоженную CraftOS и написать собственную взамен. Это пресекает на корню свободу творчества, уничтожает здоровую конкуренцию и приучает с ранних лет считаться с требованиями монополиста. Разве такого будущего мы желаем нашим детям? Нет тонны фич типа 3D-принтера, геосканера, голопроектора, карты данных, связанной карты, датчика движения, контроллера баков, транспозера, поводка, дронов. Человек не может развиваться, сознательно отказываясь от этих благ. Это путь к деградации и самобичеванию, к искусственным ограничениям и невежеству! Нет даже War Thunder! А знаешь, где есть War Thunder? В OC, вот пруф!
  3. 6 баллов
    cloudflared tunnel (нужен домен, 6-символьный домен из цифр вроде 000001 на TLD .XYZ стоит копейки), tailscale funnel из бесплатных решений. cloudflared в принципе пробивает любой CGNAT. Если говорить про хостинг TCP/UDP приложений — из бесплатных решений особо ничего нет, но можно попробовать использовать ipv6 брокера — tunnelbroker.net. Дают бесплатный ипв6 который, вроде как, должен пробивать CGNAT в том числе. Так же существует клиент https://playit.gg/, опенсорсный клиент, позволяет пробрасывать tcp/udp порты (4 штуки). дают и домен, и айпишник (не меняется). Бесплатно. Из платных решений можно взять впн и пробросить через него порт firstbyte.ru (не реклама) предлагает хостинг за 70 рублей.
  4. 5 баллов
    Коллекция штатных приложений пополнилась аудиофильской репликой Pioneer CDJ-2000 nexus с функционалом, близким к оригиналу - насколько позволяет мод, разумеется: Поддержка нескольких кассет, играющих параллельно Cue и Loop-метки с банком памяти и горячими вызовами Навигация по треку через джог, needle search bar или кнопки fov/rew Регулировка темпа и громкости фейдерами и кнобами Подстройка чувствительности элементов управления Визуализация длительности трека, текущей позиции или остатка Запись композиций на кассету с HDD и URL Скевоморфный UI с подсветкой и имитацией питания от сети В обозримом будущем хотелось бы заиметь анализ трека с построением пиков, определением "бочек" и квантованием меток, однако это потребует специфичных скиллов, нудного гугления всяких PCM, IFT, DFPWM и т.п., поэтому пока что и так сойдёт)0
  5. 5 баллов
    Не нужна, это задел на дальнейшую разработку с анализом входящих сообщений. Бывают ситуации, когда робот застрял в приватной зоне или бедроке, когда села батарея или сломался инструмент - в этом случае имеет смысл отослать статусное сообщение с координатами робота относительно хоста, а затем отключить питание Вообще роботы с дронами, имхо, самая балдёжная часть мода. Тут и автоматизация рутины, и распределенное выполнение задач, и сетевой код, и инфо-безопасность. Когда кодил аналогичную систему контроля в сурве, то сформулировал для себя несколько рекомендейшнов: Метод modem.setWakeMessage() - имба. Когда робот выполнил все задачи, можно смело его выключать, оставляя где-то на глубине в границах привата. Когда необходимо продолжить работу, шлём сетевой пакет на включение - профит. И энергия сохранена, и нажимать кнопку Power не надо Широковещательные пакеты через modem.broadcast() опасны на публичных серверах, и в 100% случаев станут причиной угона робота. В идеале, когда все машинки скрафчены, необходимо внести адреса их модемов в конфиг на хосте, а впоследствии общаться приватными пакетами через modem.send(). Либо захардкодить в роботах адрес хоста и доверять лишь ему одному, как в примере выше Дополнительные батареи - мусор. Вместо них лучше установить апгрейд опыта, построить ферму кобблы и позволить роботу фармить экспу. Спустя 2-4 реальных часа у тебя раскачается "алмазный" робот с колоссальным буфером энергии Апгрейд навигации для вычисления позиции/поворота - мусор. Вместо него куда дешевле и интереснее накодить софтверную триангуляцию, основанную на перемещениях робота и расстоянии, которое "пролетел" сетевой пакет. А поворот можно определить с помощью геоанализатора, ломания/установки блоков и вращения робота Софтверное позиционирование - имба. Вычисляешь единожды координаты/поворот робота - и корректируешь их при вызове move/turn. Взамен появляется возможность автоматизировать перемещение в любую указанную точку. При отключении питания имеет смысл сохранять эти данные на диске, либо определять их автоматически при включении Геоанализатор - легальный чит. Однако использовать его в штатном режиме, сканируя вертикальными "столбцами" - выстрел в ногу, т.к. точность результатов на расстоянии в 10+ блоков будет отвратная. Вместо этого стоит заюзать опциональные аргументы scan(), анализируя небольшие горизонтальные плоскости 8х8 блоков вокруг робота, постепенно прокапывая вниз. Точность при этом станет как советском станке Экран/клавиатура/дисковод и полноценная ОС - штуки ситуативные, т.к. стоимость сборки улетает в космос, а выхлоп сомнительный. Мнение не навязываю, но я предпочитаю ставить больше апгрейдов инвентаря/крафтинг/редстоун-плату/etc., делая машинку универсальнее и контролируя её по сети Апгрейд крафтинга очень недооценён. Каким бы большим ни был инвентарь, он гарантированно заполнится всякими андезитами/мусоритами. Эту проблему в соло решает крафтинг, упаковывающий ресурсы в стаки, особенно на серверах с модами типа экстраутилит, позволяющими "сжимать" кобблу Жёсткий диск 1 тира - топ за свои деньги. Всегда приятно иметь возможность сохранять/загружать координаты робота или довольно объёмные "снимки" местности с геоанализатора
  6. 4 балла
    У меня давно была идея реализовать на опенкомпах клиент для какого-нибудь протокола, позволяющего подключиться к полноценному удалённому шеллу. В голову сразу приходит SSH, но я даже не стал разбираться, как он работает, ведь, он, наверное, работает очень сложно. Поэтому мой взгляд пал на древний протокол - telnet, впервые разработанный аж в 1969 году. Сейчас его практически никто не использует, ведь все данные, включая логины и пароли, он передаёт в незашифрованном текстовом виде. Хотя и существуют расширения протокола, реализующие шифрование, мой клиент их не поддерживает. Репозиторий программы можно найти тут. Установить можно в OpenOS с помощью команды wget -f https://raw.githubusercontent.com/Smok1e/oc-openos-telnet/master/installer.lua /tmp/installer.lua && /tmp/installer.lua Синтаксис очень простой, достаточно ввести telnet <адрес> [<порт>]. По умолчанию используется порт 23. Учтите, что если вы подключаетесь к серверу по локальной сети, в конфиге мода необходимо поменять "deny private" на "allow private" в 675 строке (ну или где-то рядом). В данный момент единственная проблема - escape последовательности. OpenOS обрабатывает некоторые из них сама, но далеко не все, из-за чего можно наблюдать различные текстовые артефакты в более-менее графонистых программах.
  7. 4 балла
    по быстрому накидал программу для доступа к OpenAi API, потом с помощью чатбокса добавил возможность игрокам говорить с ГПТ через чат/ Минимальные требования: Интернет карта. подключенный чатбокс ИЛИ обновления "чат" (computronics) Просто запустите программу и напишите в чат префикс "!гпт", "!gpt" и свой вопрос. Через пару секунд вы получите ответ. Программа имеет "память". но при этом не оптимизирует её использование. т.е. по достижению лимита токенов программа крашнется из-за ошибки на стороне OpenAI Репозиторий: https://github.com/Def-Try/MinecGPT/ Программа использует библиотеку json от sziberov Установка: wget https://raw.githubusercontent.com/Def-Try/MinecGPT/main/install.lua /tmp/cgpti.lua && /tmp/cgpti.lua
  8. 4 балла
    В кои-то веки вспомнил про незакоммиченный (уж год как) мелкий багфикс, связанный со списком доп. компонентов для установки. Подправил и обновил. Лучше поздно, чем никогда.
  9. 4 балла
    Интересные изменения: Добавили поддержку Lua 5.4.4. Он не сильно отличается от Lua 5.3, но у него есть атрибуты локальных переменных (<const>, <close>). Последний выглядит очень полезным. Архитектура пока экспериментальна, нужно явно включать в конфиге мода. С остальными либами Lua тоже капитальная переделка. Наконец-то пофиксили инты в методах компонентов (если вам вызов когда-либо говорил invalid key to 'next', это оно). Сами либы обновили до последних версий (например, 5.3.6) и пересобрали с оптимизациями. В том числе под 64-битные армы (линукс, мак). Чтобы не путаться, на текстуре блока redstone i/o точками, как у игральной кости, показывается, какая это сторона: . Теперь рисуются юникод-символы выше U+FFFF. Там, например, всякие емоджи запиханы. Лишь бы в шрифте глифы под них имелись. Патчить шрифт можно ресурс-паками. Причём необязательно собирать глифы для всех символов: если в ресурс-паке глиф не указан, то он берётся из шрифта мода. Интернет-карту переписали на другую HTTP-библиотеку, чтобы она умела слать PATCH-запросы. Ссылка: 1.7.10 / 1.12.2.
  10. 4 балла
    OC тяжелее юзать иза ограничений в памяти и ограничений в действиях. Но это позволяет делать ефективные решения. Помню когда я свою БД писал на ОС. Мне пришлось создавать индексы как в реальной БД что б все ускорить. Помимо этого в ОС более функционален. Возьмем как пример робота из ОС - он может делать почти все что игрок и потому много кул програм было написанно: выведенние растений ИК с топ геном, пчеловод (выводит нужные мутации в форестри), шахтер с лазером из ИК, всякие шахтеры з норм инструментами (даж чареными) а не киркой что не ломается. В ОС даж есть специальный тип роботов (дрон). Он не считается блоком - он ентитя. Потому он позволяет тоже делать много интересных програм. И мне очень нравится что в ОС все идет на енергии а не как в СС (черепашки на угле. Притом тратят уголь ток что б двигатся. Остальные дейсвия бесплатные) Помимо этого в ОС даже есть интеграция с многими плагинами/модами. Например роботы не могут ломать чужые приваты (могут ломать ток приваты того кто его поставил). Потому я топлю за ОС. Правда очень большой минус это то что его забросили. Последняя версия для майна 1.12.2. Хотя там люди работают над портированием его на новые версии - даже ПР уже сделан. Но я б не ожидал что ктото его закончит
  11. 4 балла
  12. 3 балла
    Разработчик MineOS: @ECS "Восстановил это чудо" - @cackemc MineOS Legacy - это восстановленная старая версия MineOS, работающая на Opencomputers 1.5 и 1.6(1.8 не поддерживается) Что я сделал, чтобы оно работало? - перенаправил ссылки для установки на свой репозиторий а собственно ОС достал из форка 8 летней давности... Тестировалось на 1.7.10, версиях мода:1.5.22.46 и 1.6.2.12 Для чего я это делал??? Ответ прост: Дело в том, что я хотел немного понастольгировать по этой старой ОС и достать прогу под названием: InfoPanel, т.к она не работает на современной MineOS Ссылка для установки сего чуда: wget https://raw.githubusercontent.com/Govnosborkinoapps/OpenComputers/master/Installer/Installer.lua Скрины снизу:
  13. 3 балла
    Прости, мы сочли священным долгом отпентестить сей шедевр. Уязвимостей не обнаружено, комиссия ставит 10/10 на кончиках пальцев
  14. 3 балла
    Здраствуйте люди и не очень! Представляю вам, свою мини-бродилку по лабиринту! Данную идею я пытался реализовать много раз, однако каждый раз бросал из-за того что не справлялся. Однако, в этот раз у мне что-то да вышло. Главное отличие этой попытки в несколько другой реализации комнат, но не суть. Что есть: Голод, и жажда Магазинчик По комнатам могут появляться разные вещи, вроде монет, воды, и еды. Процедурно генерируемая карта. Чего я бы хотел добавить в будущем: Врагов! Однако у меня нету идей как реализовать боевку. Увеличить карту с 3х3 до 7х7, и добавить улучшения. Больше комнат. Каких именно я не знаю Ловушки! Комнаты, в которых ты получаешь урон, но как-то можешь избежать его Здоровье. Проблемы игры которые известны: Проблемы с генерацией при ходьбе. Связано это с купой факторов вроде: Зона которая видна равна размеру всей карты. А также маленькая карта(всего 3х3). Цели игры: Купить алкоголь в магазине за 500 монет Достичь показателя в 666 монет Каждая цель даёт разную "концовку" Написал за 3 часа, тестировал только в CCemuX Пастебин
  15. 3 балла
    @BenniShifer919 Про графику не скажу, я не так много работал с ней. Я понимаю, как решить конкретную задачу, но какой-то общий подход в работе с графикой сформулировать вряд ли смогу. А общие советы могу дать такие: Начинать изучение мода я рекомендую в творческом режиме. Первым делом я рекомендую найти в каталоге с игрой файл config/OpenComputers.cfg, найти в нём и установить параметр bufferChanges=false. Отключение буферизации изменений на носителях OpenComputers позволит тут же синхронизировать их с файлами в каталоге сохранения и наоборот. Благодаря этому можно будет редактировать файлы программ любым привычным тебе редактором, не прибегая к редактору на игровых компьютерах. В творческом режиме есть команда, позволяющая заспавнить компьютер. Направляем взгляд персонажа на твёрдый блок и пишем /oc_sc. В результате появится компьютер в сборе. ШПКМ на системном блоке включает его. Но можно по ПКМ на системном блоке зайти в его интерфейс и нажать кнопку включения. На мониторе мы увидим сообщения загрузки OpenOS с дискеты. NEI позволяет получить готовых: робота, дрона, микроконтроллер в богатой комплектации. С роботом проще всего: он называется Creatix, достаём его через NEI, устанавливаем в мир, кликаем по нему ПКМ и попадаем в интерфейс. Там нажимаем кнопку включения и видим загрузку системы. Устанавливать операционную систему не обязательно, но новичкам полезно это сделать. Набираем команду # install, и следуем подсказкам установщика. После перезагрузки OpenOS загрузится уже с жёсткого диска компьютера или робота. Командой # lua запускаем интерпретатор Lua. В нём можно провести различные эксперименты с синтаксисом языка или исследовать API компонентов. Когда основные конструкции в будущей программе более-менее ясны, или же требуется протестировать многострочные скрипты, имеет смысл создать файл программы. Но т.к. редактировать эту программу мы условились во внешнем редакторе, то в игре мы лишь создаём нужный файл программы. Например, с именем uniqname.lua. Зная имя файла, находим его в каталоге сохранения игры любыми привычными нам средствами. Он найдётся при условии, если ранее мы отключили буферизацию изменений. Этот файл я рекомендую переместить в более удобное для редактирования место, а в каталоге диска OpenComputers создать символическую ссылку на него. Так мы решим сразу две проблемы. Во-первых, файл с программой будет находиться в более привычном для программиста месте. А во-вторых, позволит без лишних размышлений удалять сохранения игры, потерявшие актуальность. При этом файл программы сохранится на своём месте, а вместе с сейвом удалится лишь ссылка не него. Редактируем наш файл любым удобным для нас редактором. Проверяем в игре его содержимое командой # cat uniqname.lua или запускаем его как программу: # uniqname. Думаю, этого достаточно для начала. Но можно продвинуться дальше. Можно посмотреть, что за компоненты находятся в компьютере, который заспавнился командой /oc_sc, изучить их назначение. Можно поместить в компьютер какие-нибудь другие компоненты: разнообразные сетевые платы, красную плату. Можно поставить рядом адаптер, а к нему — разные блоки. Посмотреть, как меняется вывод команды # components и # components -l. API компонентов удобнее изучать в интерпретаторе lua. Там работает автодополнение: можно просто набрать слово component и нажимать клавишу TAB. Если для какого-то компонента отсутствует документация, интерпретатор lua становится незаменимым средством. Возможности роботов и их компоненты тоже можно изучить в интерпретаторе lua. Хотя, можно начать и с чтения документации. Например, на официальном сайте: https://ocdoc.cil.li/ Изучать сборку робота я рекомендую с разборки стандартного Creatix, которого можно взять из NEI. Ставим в мир креатвинвый системый блок, заполнять его не обязательно, он удобен как источник бесконечной энергии. К нему ставим сборщик, а к тому разборщик. Кидаем в него робота, и все его детали постепенно оказываются в сборщике. Скорее всего, будет переполнение сборщика, и часть компонентов выпадет наружу. Это не страшно, подбираем их и смотрим внутрь сборщика. Из сборщика можем достать какие-то компоненты, можем какие-то добавить. Некоторые компоненты можно установить лишь в определённые позиции, а без некоторых робот не соберётся. При нажатии на кнопку старта сборки получим пересобранного робота уже с другим именем. На мой взгляд, новичку удобнее начинать именно с такого способа сборки. Точнее, с пересборки стандартного робота. Тема работы с дронами, микроконтроллерами и серверами, я думаю, уже выходит за рамки базовых знаний, поэтому рассматривать её я здесь не буду. Тем более, большинство схем автоматизации строятся на обычных компьютерах и роботах.
  16. 3 балла
    @Oleshe Поздравляю с самостоятельным решением проблемы. Я, к сожалению, не смог понять ни вопрос, ни его решение.
  17. 3 балла
    Если уголь в слоте 1 поддерживается трубой, в таком случае желательно там оставлять 1 уголь, чтоб он заменился на что то другое. local component = require("component") local robot = require("robot") local computer = require("computer") local generator = component.generator robot.select(16) while true do if computer.energy() / computer.maxEnergy() < 0.20 and robot.count(1) > 1 then robot.select(1) generator.insert(1) robot.select(16) end robot.use() end Также можно не проверять если уголь в генераторе, если энергия упала ниже 20 %, то там пусто
  18. 3 балла
    Скорее всего, надо убрать generator.remove() из ветки else, чтобы робот не доставал уголь обратно из топки. Но вообще, ничто не мешает роботу параллельно заряжаться и кликать: local component = require("component") local robot = require("robot") local computer = require("computer") local generator = component.generator local maxEnergy = computer.maxEnergy() while true do local energy = computer.energy() local energyPercentage = energy / maxEnergy if energyPercentage < 0.60 and generator.count() < 64 then robot.select(1) generator.insert(1) robot.select(16) end robot.use() end
  19. 3 балла
    Чтобы что-то закрыть, нужно сперва это что-то открыть. Компонентный вызов open() возвращает дескриптор файла, а APIшный - буферизированный поток, и работа с ними отличается: local filesystemAPI = require("filesystem") local filesystemComponent = require("component").filesystem -- API local stream = filesystemAPI.open("/test.lua", "w") stream:write("Hello world") stream:close() -- Компонент local handle = filesystemComponent.open("/test.lua", "w") filesystemComponent.write(handle, "Hello world") filesystemComponent.close(handle) И вообще не по каждой же строчке кода пинговать форумчан, давай сам думай. Наверняка там ошибка наподобие attempt to call a nil value (field 'close'), означающая, что в filesystem API не существует метода close()
  20. 3 балла
    Лично я начинал знакомство с программированием с СС. Тогда это было фантастично открывало кучу возможностей, но ограничения сильно меня сжимали, типа монитор маленький, черепашки глупые и так далее. Потом я наткнулся на этот проект и перешел на ОС. Не сказал бы что это было просто, но если мне дадут выбор поиграть с СС или ОС, я безусловно выберу ОС. Да, соглашусь что есть свои фишки в СС, но они буквально режутся тем, что нельзя подключиться к любому моду, если автор этого не предусмотрел. Отсутствие запретов по памяти тоже сильно напрягает, я же не один играю, будет не очень приятно если из-за моей анимированной красивой программы другие не смогут играть. ОС же может подключаться к чему угодно, да иногда криво, но может же. Ограничения по памяти, энергии, производительности, да по тем же ресурсам заставляют думать как все оптимизировать и утрамбовать в ограничения памяти и так чтоб это было не сильно накладно по ресурсам. Ну а то, что сложно разобраться в ОС, тут весь форум этому посвящен, выбираешь программы, потрошишь их на части, определяешь че как работает и пытаешься это в свою программу закрепить. Если проблемы с луа, да именно с луа, а не с API мода, то есть справочники в которых можно почитать все что угодно. Проблемы с API тут поможет или вики, правда инфа устарела там, но для базового уровня оно сойдет, или на официальном сайте грянуть EN API, там обновляют довольно часто и всё есть. P.S. Вдруг кому надо, вот справка по луа, точно не помню, там чет в свойствах файла надо переключить, а то не откроется
  21. 3 балла
    Было скучно — теперь опенось с апстрима, алсо портирован compress.lua на питончик для более "адекватного" пакования образа системы, если кому-то это вообще надо. Ну и патчики автоматические, да https://github.com/Chebuya/OpenOS-mineos
  22. 3 балла
    @BenniShifer919 Проверил сейчас выделение памяти на cc-tweaked-1.12.2-1.89.2.jar. Проблема сохранилась со времён оригинального ComputerCraft. Эксперимент: Устанавливаем компьютер, запускаем интерпретатор Lua, запускаем скрипт s=string.rep("x",1024^3) print(#s) Повторяем на следующем компьютере и т.д. Результат: На первом компьютере строка имеет длину 1073741824. На последующих — только 6. Вывод: Мод непригоден для игры на публичных серверах. Любой игрок может выжрать всю память, ничего не оставив другим игрокам. Вот, собственно, и ответ, почему OpenComputers, а не ComputerCraft. Это как минимум.
  23. 3 балла
    Беспроводная карта может послать сообщение одновременно по проводному и беспроводному каналу, это нормально. Вторая карта (проводная) никаких сообщений не посылает, если её об этом не просят.
  24. 3 балла
    Минус CC и плюс OC. Низкое качество кода на OC нивелируется бюджетом вызовов и лимитом памяти. На CC таких ограничений нет, что позволяет убивать публичные сервера и перегружать чанки. Это более чем достаточный повод, чтобы выбросить CC на свалку истории Потому что это челлендж, а жизнь без челленджа скучна и пресна, как еда из столовки в сравнении с рестораном. Плохо, когда челленджа нет, как в CC. Плохо, когда он чрезмерен, как в GregTech. И хорошо, когда он сбалансирован - как в OC Затем, что наличие возможности, которая тебе не пригодится, всегда лучше её отсутствия, при котором она не пригодится никому. На форуме были также посты от авторов альтернативных ОСей, которые пишут их, несмотря на предостережения. Так к которому из авторов стоит прислушаться рабу системы? Я считаю, что одновременно ко всем, и ни к кому. Пост - это не более чем компиляция мыслей одного человека. Можно воспринимать их как рекомендацию, можно как личное кредо - но не как незыблемую догму для всего человечества. Один усатый художник тоже много чего писал)0 Ну, если сам BenniShifer919 не видел, то фичи действительно юзлесс, можно удалять из мода - сейчас кину PR авторам. А способность думать логически и пространственно зависит в том числе и от объема доступного инструментария. Чем он шире, чем гибче - тем лучше, т.к. перспективы и масштабы мышления расширяются. В случае с CC из-за облегчённого геймплея и недостатка фич они наоборот сужаются, а мыслительные процессы текут более вяло, позволяя ошибаться и писать плохой код чаще Потому что не играл на серверах, где рандомный гений крафтит стак компов из мусора, запускает while true и убивает хост за пару минут. OC искусственно ограничен для лучшей иммерсивности, и более-менее защищён от абьюзеров, он учит писать качественный код, не поедающий доступные ресурсы впустую, а CC - нет К примеру, несколько лет назад мне пришлось изрядно попотеть и изучить много нового, чтобы накодить на OC рейкастер с приемлемой производительностью, т.к. при бездумном кодинге движок выдавал лишь 1-2 FPS. Я очень радовался, что осилил, что сумел, что превозмог трудности. Это сродни получению достойной награды за действительно тяжелый труд. Как сказал бы Сэнку: "Это так волнительно!"
  25. 3 балла
    Зависит от кода программы. Если выбирать сетевую карту кодом modem = component.modem, то будет выбран именно главный компонент. И если им является проводная карта, то сообщение по беспроводному каналу не будет послано. Но если выбирать сетевую карту по её адресу, то главный компонент не будет играть какой-либо роли. При этом не имеет значения, как мы получим адрес компонента: введём ли его вручную или же определим перебором, проверяя нужное свойство сетевой платы. @WheatComp Кстати, я думаю, что в описанной задаче вообще не нужна проводная плата, т.к. и беспроводная точно также обеспечивает передачу по проводам. Если требуется заблокировать передачу по воздуху, можно уменьшить до минимума мощность передатчика кодом modem.setStrength(0). Или можно использовать разные номера портов для передачи по проводам и по воздуху.
  26. 3 балла
    computer.pullSignal ждёт первого сигнала определённое время. То, что ей передана пятёрка, означает, что ждать будет не дольше 5 секунд, но если какое-то событие придёт раньше (что здесь и происходит: возможно, подключение компонентов), то выйдет раньше. UPD. @ECS уже говорил про это в предыдущих сообщениях. Просьба внимательнее читать ответы. А os.sleep так не заработает: синтаксис function tbl.func() ... end создаёт новую функцию и кладёт её в поле "func" таблицы tbl. В данном случае функция кладётся в поле "sleep" таблицы os. Но такой таблицы в биосах нет. Либо нужно определить табличку эту: local os = {} function os.sleep(timeout) --[[ сюда код функции ]]-- end Либо вообще не пытаться класть функции в таблицы (что наиболее разумно): local function sleep(timeout) checkArg(1, timeout, "number", "nil") local deadline = computer.uptime() + (timeout or 0) repeat computer.pullSignal(deadline - computer.uptime()) until computer.uptime() >= deadline end Здесь ещё пропал event.pull, потому что event в биосах тоже отсутствует. (Да и в OpenOS event сначала нужно получить через require.) computer.pullSignal для наших целей достаточен.
  27. 3 балла
    @WheatComp Если по-читерски, то можно сдюпнуть жёсткий диск одного робота, вставить его в остальные и работать в одной общей папке Если по-честному, то имеет смысл дать возможность каждому роботу выполнять произвольный код, присылаемый компьютером-хостом по беспроводной сети. Это позволит избавиться от OpenOS, жёсткого диска и упростить сборку робота за счёт более дешёвых компонентов: 1) Крафтим 20 чистых EEPROM и беспроводных модемов 2) Прошиваем их скриптом-ресивером: 3) Вставляем прошитые EEPROM с модемами в роботов 4) Пишем управляющий скрипт для компьютера-хоста. Предполагаю, что на нём будет использоваться OpenOS: 5) Запускаем всех роботов и отсылаешь им любой файл с жёсткого диска на исполнение командой send robots/example.lua Единственный нюанс - работоспособность кода выше чекнуть не могу, т.к. майна под рукой нет, но общий концепт, думаю, понятен
  28. 3 балла
    Один из игроков в мой модпак сделал видео по тому как сделать убивающего робота.
  29. 3 балла
    Для print заданы ограничения сериализатора, которые отсутствуют в writeTable А какие именно - не скажу, сам думай. Не люблю приказной формат дискуссий)0
  30. 2 балла
  31. 2 балла
    Тред подошёл к логическому концу. Нет ни смысла, ни мотивации, ни сил заниматься тем, что всё равно не имеет смысла. Решение о закрытии проекта возрождения приняли мы с Томатом ещё год назад, сейчас дошли руки до остановки машины и снятия её с питания. Лично у меня нет желания работать над Легаси модами и плагинами под 1.7.10(по другому разработку сервера не назвать). Для нормальной работы нужно два Java-программиста и полтора мотиватора. Я могу выступить только как лидер и наставник, потому что приближаться к серверам Майнкрафта, тем более с модами, и тем более на старой версии -- желания нет совсем. Считаю, это был хороший опыт в моей жизни, но не прощаюсь. Сейчас готов оценить разные идеи, и если понравится - взяться за управление. Однако не пытайтесь совершить моих ошибок, у вас не получится сильно лучше чем у меня. Я не Алекс, вы -- тоже. Спасибо eu_tomat и ProgramCrafter за наибольший вклад в развитие этой попытки. Может быть когда-нибудь. Не прощаюсь.
  32. 2 балла
    Надо не компонент клавиатуры подключать, а библиотеку: local keyboard = require("keyboard") Эта такая извечная проблема: имя одно и то же, а вещи совершенно разные. Аристотель был бы недоволен. Нам, простым смертным, остаётся только смириться...
  33. 2 балла
    Ну вот как-бы. Убрал вывод на монитор, привинтил всё к окам. Еще можно экономить на бюджетах вызовах, но в данном случаи это не критично. Еще имейте ввиду что у очков возможно(Не проверял) есть потолок виджетов на экране. 1-н пользователь это 3 виджета. Обусловлено окрашиванием текста. Если вам не принципиальны цвета, можно сделать монохромно в 1-н виджет. Ну вот собственно и всё (❁´◡`❁)
  34. 2 балла
    Я реализовал самое простое из решений. Исходным требованиям оно соответствует лишь частично. Для корректной работы требуется правка файла конфигурации ./config/NuclearCraft/FissionConfig.cfg. При значении параметра "The heat at which the comparator will emit a full redstone signal" = 950000 реактор будет включаться при остывании до 88.67% или ниже и включаться при нагреве до 95.00% или выше. Кроме управления реактором программа выводит на монитор 2x1 границы текущего интервала температур, а также стрелочку, сообщающую о направлении движения температуры реактора. Моя тестовая установка выглядит так: Блок песчаника нужен лишь для установки на него компаратора. Его можно заменить другими блоками. Красный контроллер обязательно должен находиться напротив выхода компаратора. Внутри компьютера обязательно должна присутствовать красная плата. Блок компьютера должен находиться в блоке, смежном с блоком контроллера реактора. Но можно дотянуть управляющий сигнал от компьютера какими-нибудь проводами. В любом случае требуется указать номер стороны в переменной rsSwitchSideпрограммы. Код программы: Особенность программы: Программа автоматически находит красную плату и красный контроллер, а также определяет рабочую сторону контроллера. С одной стороны, это позволило избавиться от необходимости вручную конфигурировать программу под конкретную установку. А с другой — программа может воспринять любые красные сигналы, поступающие на красный контроллер, как рабочие. Поэтому при сборке установки важно не подключать к компьютеру лишних контроллеров, а также не подключать к имеющемуся контроллеру никаких других устройств кроме компаратора, подключённого к реактору.
  35. 2 балла
    И, похоже, в изначальном варианте никто не готов его решать. Посчитать температуру, ориентируясь лишь на время, вполне возможно, но для этого потребуется вникать в механику мода. А её даже автор заказа не настолько хорошо знает. Поэтому твой вариант с дополнительным модом весьма полезен. Я же пока склоняюсь к более простому варианту. Предлагаю отказаться от точного отображения температуры и подкрутить конфиг мода, чтобы через красный сигнал определять, в каком диапазоне сейчас находится температура реактора. Размер диапазонов составит примерно 6-7% от максимальной температуры. А ссылочка на само решение имеется, или есть только демонстрация решения?
  36. 2 балла
    Для тех, кому лень читать длинный текст: Проблема: Код, записанный в EEPROM и на загрузочных дисках, может быть запущен на процессоре неподходящей архитектуры. Решение: Описанный в статье стандарт. Автор предлагает добавлять в код EEPROM комментарий с указанием требуемой архитектуры, а также модифицировать OpenComputers, чтобы тот распознавал архитектуру, указанную в EEPROM. Есть похожее предложение по маркировке дисков, но я уже не стал вникать. По-моему, проблема высосана из пальца и не требует решения. Обычно этим занимается установщик. Он прошивает EEPROM, записывает файлы на диски, устанавливает нужную архитектуру и перезагружает компьютер, полностью настроенный и готовый к работе.
  37. 2 балла
    Рекомендую следовать инструкциям не из комментов, а из официальной вики или готового софта - так будет существенно меньше проблем При работе с дисками напрямую из директории игрового сейва пересчёт spaceUsed не производится. Для быстрого пересчёта необходимо вызвать filesystem.close(), т.к. это единственный метод, который его инициирует напрямую. Вероятно, пересчёт также должен осуществиться, если вытащить и вставить диск в ПК, но это не точная инфа, надо курить поведение мода и принципы реинициализации компонентов Если интересны подробности, то причина такого поведения в дороговизне вычисления размера директории, к которой привязан диск - оно выполняется рекурсивно, суммируя размеры всех файлов во всех дочерних директориях. Мод частично решает эту проблему, кешируя значение spaceUsed однократно при инициализации компонента. Затем при любой операции над файлом, когда его размер предсказуем, кешированное значение изменяется без потребности в пересчёте с нуля Уточню, что при "естественном" обращении к диску эта проблема вообще никогда не возникнет, т.к. мод выполняет всю работу по пересчёту самостоятельно
  38. 2 балла
    Кто свалил? В какую-такую одну кучу? Пока что это выглядит как разные кучи. Есть component.filesystem, а есть require("filesystem"). Это разные объекты, и в прикладной программе мы получаем их различным способом. Если программист использует оба объекта в пределах одной области видимости, то он даёт им разные имена, другого выбора у него нет. Если программисту будет удобно, то можно, например, именовать и так: filesystem_com = component.filesystem filesystem_api = require("filesystem") А если же эти объекты не используются в пределах одной программы, то программист может писать просто filesystem, если контекст использования такого имени переменной конкретно этому программисту и его коллегам понятен. И большинство так и пишет. Изучение такого кода, конечно же, иногда смущает новичков, но сами новички не спешат исправлять эту проблему. Хотя, освоившись со временем, могли бы заполнить форум программами с правильными именами переменных с их точки зрения. Это проблема лежит за пределами ответственности авторов мода. Да и не ахти какая это проблема, если бывшие новички сами с ней не борются.
  39. 2 балла
    Очередное "Лучше поздно, чем никогда". У игры еще месяцев 8 назад появился редактор задач - VVPTask. В этом редакторе можно создавать свои собственные "таски" для игры. Задачи хранятся по пути Tasks/task*.vtf, где * — номер задачи. Заменяя или добавляя задания, вы можете изменять игру, упрощая или усложняя ее.
  40. 2 балла
    хочу еще добавить, что http://eu.org дает домены бесплатно по запросу вида domain.eu.org или example.domain.eu.org
  41. 2 балла
    Решение: удалить папку network, потому что в изначальной установке OpenOS её нет, и также проверить папку boot на соответствие чистой (https://github.com/MightyPirates/OpenComputers/tree/master-MC1.7.10/src/main/resources/assets/opencomputers/loot/openos/boot), перезагрузить компьютер.
  42. 2 балла
    У него больше возможностей, мои причины почему я на OC: Модульность. Да, он сложнее в сборке, но ты можешь собрать тот компьютер который подходит тебе под определённую задачу. Обилие предметов. Когда в СС только компьютер и черепаха (по памяти), в ОС дроны, микроконтроллеры, гео анализатор, карта красного камня, адаптер (Взаимодействие с другими модами), и т.п. У него нету сильных недостатков перед СС, наоборот он более продвинутый, имхо. Оба мода в разработке. Аргумент то прав но обновляться оба мода. Мы пытаемся быть интеллигентным сообществом, поэтому лучше было-бы написать помидорами. Оба моды сильны в определённых аспектах, и не вижу причины опускать или завышать кого-либо. Один работает 1.12.2, другой на 1.19.*. Они взаимозаменяемы, просто кто-то начал с одного мода , а переходить на другой желания нету. Я не вижу вязкой причины переходить на СС, имхо ОС лучше. Каждый решает сам что ему использовать. Думаю что победит дружба, так-как выяснять разницу почему один мод лучше другого это как спросить: что лучше интел или амуде?
  43. 2 балла
    Символ "s" поставил лишний, сорян. Я тебе сам принцип хотел показать, что нужно сначала пройтись по всем имеющимся танкам, а затем уже обращаться к их полям. Если нужен самодельный сериализатор для любого типа таблиц, то можно написать что-то вроде tank1 = {amount = 222, capacity = 333, nestedTable = {1, 2, 3}} tank2 = {amount = 452, capacity = 349, nestedTable = {4, 5, 6}} tankTable = {tank1, tank2} local function printTableContents(source, name, indentator) indentator = indentator or "" name = name or "" print(indentator .. name .. "{") for key, value in pairs(source) do if type(value) == "table" then printTableContents(value, tostring(key) .. " = ", (indentator or "") .. " ") else print(indentator .. " " .. tostring(key) .. " = " .. tostring(value)) end end print(indentator .. "}") end printTableContents(tankTable) В результате выведется
  44. 2 балла
    Там написано, что при нажатии генерируется событие. Соответственно, чтобы получить информацию, надо это событие обработать. Например, запустив в интерпретаторе Lua такой код: while true do print(serialization.serialize({event.pull()}))end
  45. 2 балла
    И ещё идея - делать всё через виртуальных игроков. 1. Подключаем майнкрафт к серверу через Wireshark/ещё что-то, что захватит трафик (с offlineMode=true шифрования нет). 2. Кликаем по токарному станку как надо. 3. Отключаемся, находим нужные пакеты. 4. Подключаемся (хоть скриптом на локальном компьютере, хоть с самого сервера из OC) к серверу майна и управляем токарным станком.
  46. 2 балла
    Не надо недоговаривать. У тебя сломанная windows 10 pro 2019, из которой, насколько я знаю, удалены некоторые системные компоненты. Учитывая эти обстоятельства, разбираться в проблеме практически становится бесполезно. Переустанавливай винду или неси в сервис.
  47. 2 балла
    Насколько я понял из мутного описания, RAT не является вирусом. Это лишь способ спрятать произвольный код в одном из файлов. Он может как являться вирусом, так и не быть им. Сложность обнаружения модификации всецело зависит от конкретного кода. Если внедрённый код перехватывает системные вызовы, то его обнаружение может стать практически невозможным в скомпрометированной системе. С другой стороны, проверка скомпрометированных носителей на чистой системе способна однозначно обнаружить любую модификацию. Это если говорить о чисто системных файлах. Найти же зловредный участок кода в пользовательских программах и библиотеках, не имея эталона файлов, вряд ли возможно, т.к. эталон зачастую отсутствует. Максимум, можно формировать эталон динамически для каждого отдельно взятого компьютера или группы компьютеров. Но сложность тут снова в том, что проверку на соответствие эталону имеет смысл проводить лишь на гарантированно чистой системе. В любом случае я предпочитаю считать скомпрометированным любой компьютер, на котором кто-либо мог запускать произвольный код или извлекать компоненты в моё отсутствие. Все носители такого компьютера следует тестировать в гарантированно чистой среде.
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...