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

Лидеры


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

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

  1. 5 баллов
    Возможные способы увеличения количества компонентов: 1) Установка более продвинутого процессора 2) Если использовать в качестве компьютера сервер - установка шин
  2. 4 балла
    Русскоязычное описание API: https://minecraft.fandom.com/ru/wiki/OpenComputers/Computer_API https://minecraft.fandom.com/ru/wiki/OpenComputers/Robot_API https://minecraft.fandom.com/ru/wiki/OpenComputers/Дрон Если эта документация недостаточно свежа, есть описание на английском: https://ocdoc.cil.li/component:computer https://ocdoc.cil.li/component:robot https://ocdoc.cil.li/component:drone
  3. 3 балла
    Многое смешалось в этой статье. Но я попробую разобрать. Какой мод лучше для программирования? Оба мода хороши. ComputerCraft проще в освоении, но OpenComputers обеспечивает большее разнообразие задач для программирования. Обязательно ли новичку отвлекаться на крафт компьютеров и роботов? Нет, не обязательно. В творческом режиме компьютер создаётся одной консольной командой, а готовый робот с внушительным обвесом доступен в NEI. Почти все программы, взаимодействующие с миром, изначально пишутся и тестируются в творческом режиме, и лишь после этого переносятся сначала в режим одиночного выживания, а затем и на сервера. Являются ли проблемой усложнённые крафты компьютеров на тех или иных серверах? Нет, это проблема самих серверов. Она не имеет отношения ни к самим модам, ни к программированию. На конкретном сервере крафт черепашки может оказаться даже сложнее крафта робота. OpenComputers убивает поток свежей крови на форум? Тут надо подумать. Как наличие второго мода мешает новичкам изучать первый? Да, старожилы форума в большинстве своём предпочитают OpenComputers. Но они не препятствуют другим участникам писать программы и статьи о программировании в ComputerCraft. Итог: Читатели негативно воспринимают нытьё. Нужна конструктивная критика и предложения. Что требуется сделать для обретения комфорта? Чем может помочь администрация форума? Чем могут помочь старожилы? Чем может помочь сам автор этой статьи? Что в результате этих действий ожидает увидеть автор?
  4. 3 балла
    Оптимизированы наиболее часто используемые методы библиотеки Screen, работающей с экранными буферами: если ранее для каждого рисуемого пикселя выполнялась проверка вхождение в регион отрисовки, то теперь все прямоугольные команды автоматически рекомпонуются, чтобы уместиться в этот регион. Странно, что это не было сделано изначально, но тем не менее скорость перемещения сложных оконных приложений с кучей мелких прямоугольников и картинок (типа местного Finder) ощутимо подросла Ну и забавы ради добавлен метод screen.blur(), применяющий эффект размытия к указанному региону и, опционально, накладывающий цветовой фильтр, а также виджет GUI.blurredPanel, чтобы создавать окна с заливкой в стиле AcrylicBrush из UWP Вообще изначально было реализовано полноценное размытие по Гауссу, но, учитывая мизерные размеры экранов, оказалось, что простого box blur будет более чем достаточно, и визуальной разницы нет. Вопрос прожорливости остается за кадром:
  5. 2 балла
    Проверь конфиг, правильные ли адреса и порты там указаны. И скинь его(конфиг)
  6. 2 балла
    Иногда, особенно когда вы занимаетесь строительством реакторов, необходимо очень много укрепленного камня. Можно конечно и вручную залить нужную территорию, но согласитесь, лучше когда за вас это все сделает кто-то еще. Итак представляю вашему вниманию небольшую автоматическую систему по производству укрепленного камня. Вам всего то надо обеспечить эту ферму (генератор укрепленного камня) железными лесами, песком и энергией. Перейдем к постройке: Главным центром всей постройки является робот. Его устройство рассмотрим позднее. Справа от робота необходимо установить любую зарядку для бура/ваджары. Ну или если вы совсем бедные, и планируется что робот будет работать киркой, то установите сундук. Слева от робота устанавливайте Жидкостный/Твердотельный наполняющий механизм. Он заправляет распылитель сразу, за 1 прогон. Это будет наполнитель для зарядки распылителя. Рядом с зарядником распылителя рекомендую установить еще один Жидкостный/Твердотельный наполняющий механизм, который будет генерировать сжатую пену. В слоты улучшения обязательно установите "Выталкиватель жидкости". С подачей воды и смеси думаю разберетесь сами. Не забываем выставить настройки в механизмах как показано на скрине: За роботом нужна зарядка, чтоб он мог работать вечно! И не забываем её стукнуть ключиком, чтоб не заморачиваться с рычагами. Конвертор энергии не забудьте подключить к энергобуферу (или можете не устанавливать его, провода из ИС2 с ОС коннектятся) Над роботом установите сундук, и желательно побольше. В него необходимо засыпать железные леса и песок. Учтите, на 1 блок укрепленного камня необходимо 1 железные леса и 1 песок. Автоматизация засыпания расходников, уже на вас. Под роботом распологается сундук в который будет ссыпаться укрепленный камень. Так как наш робот будет нереально дешевым, не забываем сделать подставку на которой будет готовиться ваш камушек. Рекомендую вообще оградить это место, чтоб ни курица ни игрок не залезли перед роботом (иначе распылитель запенит все в округе). Собственно это все что необходимо вам знать при постройке этой фермы. Переходим к роботу. Программу я сделал для двух типов роботов, простейший Т1 и супердешевый на eeprom. Простой робот-генератор укрепленного камня: Супердешевый робот-генератор укрепленного камня: Настоятельно не рекомендуется лезть перед роботом иначе рискуете получить такое Не лезте своими шаловливыми ручками в слоты к работающему роботу. Можете забрать готовый камень, но расходники не трогайте, так как скорость смены инструмента огромная, и если робот что-то не найдет, вам грозит быть залитым в пену. (смотри скрин выше) Одной заправки распылителя хватает на 80 применений, потом робот автоматически перезаряжает инструмент и распылитель. А в остальном данная ферма работает довольно стабильно и исправно. А рассказал вам о ферме Asior, фармите укрепленный камень, гоняйте кур от фермы и удачи в тяжком труде реактостроителя! P.S. Укрепленный камень выдерживает ядерный взрыв, но радиацию сдержать увы не сможет. Осторожнее.
  7. 2 балла
    Звучит так, будто бы это форум нытиков. Подозреваю, для кого-то так и есть. Местная ячейка партии нытиков хотя и ослаблена, но до сих пор жива. Но кому интересен изначальный замысел форума, те задают вопросы как по OpenComputers, так и по ComputerCraft и пишут программы. Нет другой активности, кроме той, что создаём мы сами. Кстати, надо отдать должное критикуемому в этой теме моду. Хотя большинство из нас и оказалось на форуме благодаря урокам @1Ridav по Lua в ComputerCraft, тем не менее подавляющее большинство программ написано форумчанами именно для OpenComputers.
  8. 2 балла
    Да, мы все знаем, что OpenComputers гораздо более стабильный, безопасный и продвинутый, чем ComputerCraft (который к тому же перестал поддерживаться разработчиком). Однако я до сих пор считаю, что ComputerCraft *гораздо* лучше именно как мод для программирования. И вот почему: Я впервые начал программировать именно в майнкрафте. Смотрел те самые туториалы на ютубе от 1Ridav, даже конспектировал в блокноте. Научиться программировать тогда было очень просто. Посмотрел пару туториалов, зашел на сервер, скрафтил комп и вуаля - сидишь строчишь свою библиотеку создания графических кнопок или ещё что-нибудь. Здорово. А главное - другие игроки могут видеть и то, как ты программируешь, и работу твоей программы. Для начинающих это был действительно самый лучший способ научиться программировать. С эпохой OpenComputers всё изменилось. Теперь, чтобы добраться до рабочего терминала, надо изучить все про сборку компьютера, чуть ли не пройти игру наполовину, чтобы насобирать ресурсов, правильно всё собрать и узнать, что, вообще говоря, тебе нужно питание. И ты идёшь и трахаешься с каким-нибудь industrial craft 2 ещё несколько часов вместо того, чтобы уже писать код. Более того. Уже предвидя этот путь, ты можешь начать развиваться, насобирать ресурсов итп, а потом узнать, что на сервере усложненный крафт компьютеров и всего сопутствующего (основанно на личном опыте: на mcskill Hi-Tech 3 нет GregTech, зато стоит какой-то мод, усложняющий создание компьютера до боли). Честно говоря, после такого опускаются руки. ComputerCraft был хорош именно своей доступностью. Любой мог начать писать свою программу, создав компьютер из говна и палок за пару минут. А интерес новичка держится только тогда, когда он видит наглядный результат своей работы. Новичок не хочет потратить миллион часов на изучение сборки компьютера итп. Он хочет хоп и окрасить пиксели экрана в розовый. Сборка компьютера, ее усложнение, бОльшие требования - это достаточно интересный геймплей, но абсолютно бесполезный, запутанный и мешающий в плане обучения программированию. Я отнюдь не хочу принизить мод OpenComputers, это прекрасный мод. Но, заменив собой ComputerCraft, он убил поток свежей крови на этот форум да и вообще в сообщество программистов. К сожалению, программирование в майнкрафте превратилось из общедоступного обучающего инструмента в область для гиков, которые и так уже все знают и умеют.
  9. 2 балла
    Ну наконец-то кто-то пришёл по-настоящему поныть! Наша местная ячейка партии нытиков была надолго обескровлена ожесточёнными дебатами о преимуществах одних модов над другими. Последние недели даже у самых активных её членов силы оставались лишь на расстановку грустных реакций под каждым постом. Но OpenComputers продолжает обеспечивать приток свежей крови даже в партию нытиков. Так победим.
  10. 2 балла
  11. 2 балла
    Заголовок темы заявляет обратное
  12. 2 балла
    Как я понимаю, в планировании и удобстве нет нужды? Креатив в майне не новоявленный. Если хочется накодить игру - всегда лучше зайти в сингл с креативом и удобным редактором. Если у индивида есть желание ковырять луа, то узнать о более удобных методах довольно тривиально. Таким образом разница сводится к минимуму, для тех кто путается в трёх соснах - разработчики оц добавили команду oc_sc.
  13. 2 балла
    Какой смысл кодить в выживании? Когда для оц сделали отличный эмулятор под названием оцелот.
  14. 2 балла
    путём энных извращений слепил какаху для вывода последних сообщений из логов принтит сообщения с задержкой 5 сек (можно поиграться со значением)
  15. 2 балла
    Ты в третьей строке забыл скобочки у функции component.reactor.getHeat()
  16. 2 балла
    Добавлена глобальная функция print() и консольная приложуха для простенького I/O в текстовом формате. Заодно добавлена фича фокусировки виджетов в либе GUI, дабы ввод информации производился только в окнах, с которыми юзер "хочет" работать, а не во всех сразу
  17. 2 балла
    print() это из библиотек OpenOS. Разные операционные системы, разные способы вывода информации. Увы такое не сработает. Какое сработает, может позже кто подскажет, я незнаю
  18. 1 балл
    Я пишу функцию в библиотеке программы, которая при нажатии на кнопку должна закрывать другие программы и сама закрываться Эта функция используется в event.listen("touch",func) Как я могу это сделать?
  19. 1 балл
    Если из сундука не берутся вещи что делать? в рг робота я добавил. и что дальше?
  20. 1 балл
    Спасибо , всё работает:3 Я решил провернуть способ с серверной стойкой и сидел ещё 30мин смотрел видео гайды как собрать стойку так что-бы она работала
  21. 1 балл
    Спасибо! С сокетами нету проблем)
  22. 1 балл
    import socket server = ("localhost", 8888) #I don't remember the port soc = socket.socket() soc.connect(server) version = soc.recv(5) #Decode it soc.send(bytes("PING", encoding="utf8")) pong = soc.recv(8) #Decode it Как реалезовать это: bytes("PING", encoding="utf8")
  23. 1 балл
    тайминг в видео 1:11 что делать в таком случае?
  24. 1 балл
  25. 1 балл
    Есть такая программа для поиска по содержанию файлов (Архивариус 3000), проанализировал ею как ОС так и исходники ОС, ошибку 403 ОС сама не умеет подсовывать, это явно ответ от сервера Как бы и в самой либе internet есть ожидание ответа, но почему-то в основном прилетает nil
  26. 1 балл
    основной язык ОС - луа, все инструменты и библиотеки так или иначе схожи с другими языками
  27. 1 балл
    По-моему, я нигде в этом треде не упоминал lua
  28. 1 балл
    По вашему, луа - высокий порог? в корне не соглашусь
  29. 1 балл
    Если вы называете критику высокого порога вхождения принижением, то да: я принижаю OC в плане пригодности для обучения программированию.
  30. 1 балл
    Как я уже сказал, я не пытаюсь принизить OpenComputers. Я лишь отмечаю последствия повсевместной замены CC на OC.
  31. 1 балл
    Продвинутый пользователь как вы действительно может использовать эмуляторы и прочее. Мы с вами можем программировать хоть в vim. Но речь не о продвинутых пользователях, а о новичках, которые знать не знают про оцелот. Они учатся программировать не ради самого программирования. Новички хотят сделать на мониторе крестики-нолики, чтобы их оценили друзья. Они хотят сделать робота, который бы за них копал или ещё что-то. Они учатся ради прикладного игрового интереса. Вот почему условия программирования в выживания важны.
  32. 1 балл
    спасибо большое всё работает:3
  33. 1 балл
    Вставить связанную карту в робота и запустить программу ещё раз.
  34. 1 балл
    Кому все еще нужно, в местном магазине теперь есть приложение OpenOS Имеется интеграция с майносью, а именно: Отображение os.getenv('_') в титлбаре Настоящий биос доступен из опеноси непосредственно computer.addUser/computer.removeUser/computer.uptime работают с настоящим компьютером Цветовая схема Настоящий диск смонтирован по пути /mnt/mineos
  35. 1 балл
    Чем больше битов в хэше, тем меньше вероятность коллизии. А еще можно все функции поместить в список, тогда индекс списка можно будет юзать в качестве хэша и гарантировано без коллизий
  36. 1 балл
    Обнова! Теперь интернет-карту нужно установить только в компьютер сервера HoverHelm - еще меньше требований железа, еще дешевле юз! Для обновления скачайте дополнительную библиотеку HoverHelm: wget https://raw.githubusercontent.com/hohserg1/OpenComputersPrograms/master/player-monitoring/home/lib/hoverhelm/addition_radar.lua /home/lib/hoverhelm//home/lib/hoverhelm/addition_radar.lua И обновите программу радара https://github.com/hohserg1/OpenComputersPrograms/blob/master/player-monitoring/radar.lua Теперь гитхаб токен хранится в addition_radar.lua, поэтому программу радара можно положить в папку ядра Большое спасибо @nikitaaaaa за тестирование программы на продакшене в боевых условиях
  37. 1 балл
    Самостоятельная система. Можно было бы сделать, чтобы она грузилась Lua BIOS, как обычная ось. Если уместить ядро на EEPROM, то там будет только базовый функционал, клавиатура и дисплей. Дополнительные блоки слов, текстовый редактор и драйвера надо будет поставлять отдельно.
  38. 1 балл
    Можно и вселенную создать, но какие будут трудозатраты и реально ли вообще создать за человеческую жизнь её?
  39. 1 балл
    @NEO кто-то ведь разработал tic, 65el02, опенкомпы, компкрафт и т.п. Если человеку интересно - сделает любое извращение)
  40. 1 балл
  41. 1 балл
    Да, RetroComputers довольно точно перенес компьютерный функционал из RP2. И Forth там больше на себя похож. Еще есть мод MagnetiCraft, и там тоже есть компы, и роботы есть. Компьютер работает на виртуальном MIPS процессоре, для этих компов уже есть системы на ассемблере, BASIC, Lisp и Forth.
  42. 1 балл
    TL;DR: require("process").info().data.signal = function() end. С версии OpenOS 1.7.3 интеррапты работают так: local interrupting = uptime() - lastInterrupt > 1 and keyboard.isControlDown() and keyboard.isKeyDown(keyboard.keys.c) if interrupting then lastInterrupt = uptime() if keyboard.isAltDown() then require("process").info().data.signal("interrupted", 0) return end event.push("interrupted", lastInterrupt) end Это отрывок из /lib/event.lua. Он говорит, что если зажать Ctrl, Alt и C, то вызовется некоторая функция: require("process").info().data.signal. Программы в OpenOS запускаются в процессах. У каждого процесса есть свой главный поток (о них я писал где-то там), своё окружение. Каждый процесс следит за тем, какие файлы открыты, чтобы их закрыть при завершении процесса, жонглирует событиями и занимается сложной логикой. А ещё у каждого процесса есть свои данные. Эти данные для текущего процесса как раз возвращает process.info().data. У процессов есть иерархия. Корневой процесс — это тот, в котором запускается /init.lua. В нём устанавливается переменная signal: -- /boot/01_process.lua local init_thread = _coroutine.running() process.list[init_thread] = { path = "/init.lua", command = "init", env = _ENV, data = { vars={}, handles={}, io={}, --init will populate this coroutine_handler = _coroutine, signal = error -- ① }, instances = setmetatable({}, {__mode="v"}) } Другие программы запускаются в дочерних процессах. Они наследуют данные родительского процесса. Поэтому process.info().data.signal, обработчик жёсткого интеррапта, по умолчанию возвращает функцию error. Но данные можно переопределить. Как видно из кода /lib/event.lua, нам достаточно, чтобы новый обработчик не вызывал error. require("process").info().data.signal = function(msg, level) print("You've pressed Ctrl-Alt-C!") end Это будет работать для всех потоков внутри текущего процесса, а также для других, запущенных в нём. Стоит отметить, что потоки знают, к какому процессу они прицеплены, и этот процесс можно менять на другой. thread:detach() — просто лёгкий способ сменить процесс, в котором работает поток, на корневой. А там process.info().data.signal — это функция error. Поэтому после Ctrl-Alt-C поток всё равно получит ошибку и, если она не поймана, завершится. А программа продолжит работать. Поэтому, чтобы быть совсем спокойным, можно отключить Ctrl-Alt-C глобально: local process = require("process") local p = process.findProcess() while p.parent do p = p.parent end p.data.signal = function() end Хотя я бы, конечно, не советовал так делать. Очень неудобно потом останавливать другие программы: приходится перезагружать компьютер.
  43. 1 балл
    жаль, в таком случае из безопасных вариантов только упростить код
  44. 1 балл
    Проблема с пистолетом была решена, но расходники он так и не берет сам и не кладёт камень в нижний отдел пишет /home/start.lua:23: ‘for’ limit must be a number: stack traceback: /home/start.lua:23 in function ‘import’ /home/start.lua:73 in main chunk (...tail calls...) [C]: in function ‘xpcall’ machine:751:in function ‘xpcall’ /lib/process.lua:84: in function </lib/process.lua:80>
  45. 1 балл
    Проверил, жидкость и режимы стоят правильно, также обнаружил что робот сам не берет расходники из сундука сверху и не кладёт в нижний. Но он рубит когда все присутствует и все наполнено.
  46. 1 балл
    В общем писать вирусы на OC намного интересней чем на CC т.к. такой вирус может работаь на уровне EEPROM! Таких вирусов я еще не видел и не слышал про такие т.к. их не легко вычислить но я уже подумываю об написании антивируса на уровне OS и EEPROM на OpenComputers. Прошу подключиться!
  47. 1 балл
    А теперь, подведем итог. Допустим, нам надо взять из сундука перед роботом железную кирку. local component = require("component") -- загружаем компоненты local robot = component.robot -- подключаем компонент робота local i_c = component.inventory_controller -- подключаем компонент контроллера local function finditem(side, name) -- функция поиска предмета в контейнере, первый параметр - сторона, второй - системное имя local inv, item = i_c.getInventorySize(side) -- узнаем количество слотов инвентаря if inv then -- если удалось узнать количество слотов for slot = 1, inv do -- в цикле проходим по всем слотам item = i_c.getStackInSlot(side, slot) -- получаем информацию о слоте if item and item.name == name then -- если имя предмета в слоте совпадает с нужным return slot -- возвращаем номер слота end end end return nil end local i = finditem(3, "minecraft:iron_pickaxe") -- ищем предмет в контейнере перед роботом if i then -- если предмет найден robot.select(1) -- выбираем первый слот робота i_c.suckFromSlot(3, i) -- берем предмет i_c.equip() -- переносим в слот для инструмента end Справка по сторонам - 1 = сверху, 0 = снизу, 3 = спереди. Функцией поиска можно найти любой предмет по системному имени, можно сделать, чтобы возвращалось и количество предметов в слоте.
  48. 1 балл
    Некoтoрые люди, с рoждения не видевшие текстoвых интерфейсoв, oчень пугaются, кoгдa им вместo кнoпoчек с кaртинкaми суют черный экрaн и гoвoрят, чтo в oднoй стрoке мoжнo вызвaть любую прoгрaмму, нo кaк нaзывaются эти прoгрaммы? Чтo oни делaют? Нaкидaл небoльшoй мaнуaл пo стaндaртным утилитaм OpenOS Чтoбы зaпустить прoгрaмму дoстaтoчнo ввести в oкнo терминaлa ее имя и неoбхoдимые пaрaметры, вo мнoгих oперaцoнных системaх кoмaнды тoчнo тaкие-же. Стандартные программы Программы компонентов
  49. 1 балл
    Я уже говорил это Лёше, когда ему не терпелось начать ОСь писать свою. Итак: 5 ПРИЧИН, ПОЧЕМУ ВЫ НЕ ДОЛЖНЫ ПИСАТЬ СВОЮ ОС ДЛЯ OPENCOMPUTERS Причина первая. Это слишком долго: вместо убивания энного кол-ва часов в кубиках лучше бы чем-нибудь действительно полезным занимались. Причина вторая. Вы никогда не закончите. ОС постоянно обновляется, обновляются апишки, требуется постоянно фиксить мегатонны багов... Это вам рано или поздно надоест. Причина третья. Зачем? Текущая система OpenOS и так поставляет всё, что необходимо. Причина четвёртая. А кто этим пользоваться будет? Максимум — для красоты поставят, так как приложения под неё писать придётся только вам: написанное под OpenOS будет куда популярнее, чем под вашу собственную ОСь. Причина пятая и последняя. Все ваши самые любимые библиотеки (os, io, event, component и тонны других) есть только в OpenOS, и вам придётся писать свои аналоги данным функциями. С программами то же самое: все самые нужные программы написаны для OpenOS, и потому нужно их переписывать для вашей ОС. Не требую награды за спасённые человекочасы.
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...