eu_tomat
Модераторы-
Публикации
2 666 -
Зарегистрирован
-
Посещение
-
Победитель дней
331
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя eu_tomat
-
Интересный холивар можно и поддержать. Но большинство холиваров уходит в мусорку. Вот, например, какой смысл в аргументации вида "выброси таблички, иди в шахту"? Разве этот аргумент как-то изменит ценность опубликованной программы?
-
А если аргументов нету, просто скажи — да иди ты в шахту! В песочницу каждый имеет право играть так, как ему нравится. И что является большим мазохизмом: мониторинг на табличках или же поход в шахту, учёные пока ещё не выяснили. Но радость может приносить и то и другое.
-
Если на компьютере установлена OpenOS, и в автозагрузке ничего не прописано, то сразу после загрузки системы появится приглашение командной строки.
-
Если цель стоит именно в управлении роботом, то удобнее будет сделать управление клавишами клавиатуры, а не кликать мышью по графическим кнопкам. А на экран вывести подсказки по этим кнопкам. Такое управление не только более удобно, оно ещё и быстро обрабатывается. Причём, независимо от картинки на экране, что позволяет, например, уменьшать размер экрана до одного символа и получить более широкий обзор движений робота или дрона. На форуме есть примеры таких решений. Если же очень хочется именно GUI и мышкотыканья, то доступные символы можно посмотреть здесь: Шрифт в OC Символы. Lua Ссылки на графически библиотеки кидать не буду, их довольно много, и найти их не сложно. Например, так: https://lmgtfy.com/?q=графическая+библиотека+site%3Acomputercraft.ru
-
Я тоже плохо понял вопрос. Ответ на этот единственный вопрос однозначен: Можно. Вопрос имеет довольно общий, неконкретный характер. И ответ тоже будет общим. Надеюсь, он будет полезен. Самый простой вариант: создать таблицу с координатами прямоугольников и текстом для их заполнения. Возможно, и с цветами тоже. Также таблица должна содержать ссылки на обработчики этих кнопок. Далее, все эти кнопки отрисовываются на экране. Поймав событие клика мыши, алгоритм последовательно обходит весь массив прямоугольников, и сравнивает координаты клика с координатами границ кнопок. При обнаружении совпадения клика с некоторой кнопкой управление передаётся соответствующему ей обработчику. Также все кнопки можно обрабатывать в одном обработчике, тогда в таблице можно хранить идентификаторы кнопок. А можно хранить одновременно как обработчики, так и их параметры. Эти вариации не сильно изменят итоговый алгоритм. Самый быстрый вариант: формировать образ экрана вместе со всеми кнопками, и выводить их минимальным количеством операций, как это сделано, например в библиотеке DoubleBuffering от @ECS. Также можно заранее просчитать и заполнить массив всех возможных координат для кликов мыши и назначить каждой точке свой обработчик. При клике мыши останется лишь по координатам клика вытащить из таблицы нужный обработчик. Но на хранение таблицы придётся потратить память. При желании и образ экрана и таблицу с координатами кликов можно формировать заранее, до запуска программы пользователем. Эта вариация будет работать ещё быстрее. Самый оптимальный вариант: это вообще что-то неведомое. Оптимум всегда зависит от целей. В каком-то случае можно жертвовать памятью, в другом быстродействием, а в третьем простотой. На этот вопрос не существует абстрактного ответа. Нужно знать все условия задачи, тогда можно будет говорить о поиске оптимума. И тоже не факт, что его удастся определить теоретически. Скорее всего, оптимум придётся искать экспериментально. Тот же @ECS тоже не сразу нашёл оптимальные решения для своих библиотек. И оптимум он искал под свою систему MineOS, балансируя между лимитами памяти и быстродействия. Если речь идёт о пяти кнопках, то нет смысла морочить себе голову темой быстродействия. Если же количество кнопок измеряется сотнями, то имеет смысл найти закономерности и уже с их помощью оптимизировать поиск кнопки, на которой выполнен клик. Закономерности будут зависеть от условий задачи. Некоторые слишком жёсткие условия иногда можно скорректировать таким образом, чтобы создать закономерности для оптимизации. При каком количестве кнопок надо задумываться об оптимизации, тоже решается индивидуально. Для получения опыта можно упарываться и на простых задачах. Но это занятие довольно быстро наскучит. Поэтому большинство программистов вспоминают про оптимизацию, когда их не устраивает быстродействие их программы. А это субъективный параметр. Часто оптимизация проходит по линии между дискомфортом от тормозов GUI и ленью программиста.
-
Угу, и труд-батюшка тоже не всегда позволяет в Майнкрафте прогать.
-
Просто они никогда не понимали тебя и не ценили. И если бы они не ушли сами, ты бы однажды сам бросил их. Но ты можешь написать свою программу, которая научит роботов понимать тебя с полуслова и даже с полубайта. Такие роботы всегда будут на связи и никогда не уйдут от тебя, если ты сам не пошлёшь их в дальний путь.
-
Идеального инструмента, конечно, нет. Но имеются эмуляторы разной степени удобства: https://computercraft.ru/search/?q=эмулятор
-
А если пользователю дать возможность привязать контроль над роботом к списку адресов, то получится вполне себе безопасный инструмент, о наличии которого можно заявить официально.
-
Да, удобная штука. Но у большинства пользователей домашний комп спрятан за NAT провайдера, а ради скриптов в Майнкрафте не все готовы потратиться на аренду белого IP или VPS. Какие есть идеи по выносу портов за NAT?
-
Момент отрубания не всегда возможно предвидеть. Поэтому потребуется аналог чёрного ящика, и тогда возникает вопрос, с какой периодичностью и какие данные следует сохранять в него, чтобы и данные были информативными, и файл лога не распухал без надобности. Думаю, это самая полезная фича для поиска неисправностей при копке на сервере. Если копалка систематически даёт сбои на каком-либо сервере, то пользователи могут сами по модему запрашивать нужную им информацию о своих роботах с нужной периодичностью или даже остановить копку и выполнить произвольные команды.
-
Кстати, да. Не только на сервере. Для проверки возможностей компонентов или нюансов их взаимодействия с миром, команды удобно набирать непосредственно в интерпретаторе Lua. К сожалению, нет простого способа скопировать команду из Майнкрафта в буфер обмена. Поэтому при большом количестве команд я набираю их в текстовом редакторе, а потом копирую нужные и вставляю в консоли компьютеров и роботов. Далее в том же текстовом редакторе составляются однострочные скрипты, которые для проверки их работоспособности копируются в майн. При необходимости они корректируются в том же текстовом редакторе и снова копируются в майн. Но рано или поздно наступает момент, когда длинный однострочный код становится слишком тяжёлым для восприятия. Тогда уже создаются файлы программ. Ещё я рекомендую использовать символические ссылки. Когда проект большой, и файлы программ распределены между несколькими роботами и компьютерами, то после длительного перерыва в разработке бывает трудно вспомнить, в каком сохранении игры и на каких дисках хранятся нужные файлы. Символические ссылки упрощают работу. Все файлы проекта можно разместить в одной общей папке с понятным названием. А в папках, соответствующих дискам OpenComputers, создаются символические ссылки на требуемые файлы проекта. Особенно удобно, если один и тот же файл используется в нескольких роботах, его достаточно обновить лишь один раз в текстовом редакторе. Также символические ссылки позволяют дать удобные имена папкам дисков для быстрого доступа к ним.
-
Разрабатывать удобнее в одиночной игре с параметром bufferChanges=false конфига OpenComputers.cfg. Каждому диску OpenComputers соответствует папка вида .minecraft/saves/SAVENAME/opencomputers/DISK-UUID/, файлы в этих папках доступны для редактирования любым подвернувшимся под руку текстовым редактором. А чем редактировать код Lua, уже не раз обсуждалось: https://yandex.ru/search/?text=редактор lua site%3Acomputercraft.ru
-
Оба способа хороши. Если пользователю достаточно видеть крупный шрифт, не входя в интерфейс монитора, и при этом хочется снизить нагрузку на сервер, а изучать шрифтовую библиотеку наоборот не хочется, то хорош способ снижения разрешения экрана. А если хочется видеть какие-то особенные красивые шрифты, или хочется видеть их крупными также при входе в интерфейс монитора, то придётся подключить библиотеку. А ещё в таблице символов есть символы двойной ширины, но они не особо крупные.
-
Системный блок не видит дискету с OpenOS
eu_tomat ответил в вопрос Mitrandir в Разные (отсортировать)
А если в творческом режиме заспавнить компьютер в сборе командой /oc_sc, как он себя поведёт при включении? Кстати, какая версия Minecraft и OpenComputers? -
В текущем виде требования к программе мне не понятны. Как предполагается контролировать бункер? Что нужно делать со входами и выходами редстоуна? Смотреть текущее состояние входов и вручную управлять выходами? Или требуется работа по алгоритму? Если по алгоритму, то какому? Каково назначение входов, выходов? Сколько их? Что такое пропуск? Как сервер должен контролировать редстоун? Как он должен взаимодействовать с остальными компонентами? Какие процессы предполагается контролировать с помощью очков? Что за терминал имеется в виду? Что такое терминал для прохода по пропускам? Что такое терминал для поршневых дверей?
-
Лавы не хватает, если закрыт доступ в Нижний мир, или же в нём очень трудно выжить. Обычно же и доступ открыт, и выжить не проблема, особенно, если можно стоять в укрытии, пока роботы осушают лавовые озёра. А озёр там много, и лава является не более дефицитным ресурсом, чем красная пыль. Что ещё мешает добыче лавы в больших объёмах?
-
А чем генератор на красной пыли острее этого?
-
@Sivarius Какая версия OpenComputers и Майнкрафта?
-
Если больше никакие значения таблицы не требуются, то можно так: grow = geolyzer.alanyze(sides.front).metadata
-
Отлично. Новая цель сформулирована. Какие моды тебе нужны для этого?
-
Без мотивации даже Майнкрафт не запустить. Но находятся же любители, запускают. Также у нас есть нытики, которые любят говорить о том, что программировать в майне уже нечего, что всё уже написано. Вот, есть и задача для них. Не всем же её надо решать, песочница ничего не навязывает. Ну, дракон, считай, убивается одним лишь ванильным OC (при очень сильной мотивации :). Куда ещё ты хочешь уехать?
-
Да, без аддонов будет очень сложно или даже невозможно. Но если потренироваться быть хакером, то многие стены превращаются в двери. В зависимости от настроенной дальности сенсора OpenPeripheral строим сеть сенсоров, расставленных чаще или реже. Рано или поздно в зоне покрытия заспавнятся нужные мобы. Подвести к мобу робота и ударить того каким-то предметом не проблема. Чтобы не строить сетку сенсоров объёмной, ровняем площадку для спавна мобов, полностью заполняя блоками пространство под площадкой, и полностью освобождая от блоков пространство над ней. Это задачу, наверное, можно и ванильными датчиками движения решить. Заспавнившиеся мобы обычно как-то двигаются, хотя и вяло, если не видят игрока. Робот умеет бросать око Края. А всё тот же сенсор OpenPeripheral умеет находить координаты любых предметов, и летящего к порталу ока тоже. Да, сенсор работает только стационарно при подсоединении к компьютеру, но робот способен передвинуть эту установку в любое положение и включить её. Средствами ванильного OC найти портал сложнее, но тоже можно. 1) Роботы-копальщики могут натолкнуться на неломаемые блоки, которые с большой вероятностью окажутся блоками портала Края. 2) Геосканер может обнаружить блоки с плотностью бедрока, но расположенные специцическим образом. 3) При непосредственном контакте геосканер точно определяет тип блока. 4) Око края с вероятностью 80% выпадает в ограниченной от броска области. Если заранее подготовить площадку достаточного размера, и после броска из центра роботом прососать всю площадку, то вместе с найденным глазом будет найдено и направление к порталу. Триангуляция поможет сэкономить время и ресурсы при поиске портала. Активировать портал тоже можно роботами. @BrightYC Ты у нас вроде любишь играться с дронами. Если не трудно, проверь, можно ли дроном пройти через портал в другое измерение. Робот, насколько я помню, пройти не может. Но мобы через порталы проходят. А как поведёт себя дрон? Если пройдёт дрон, то он пронесёт и робота. А дракона роботы могут даже из ванильных луков убить. Конечно, робот управляет стрельбой неполноценно в сравнении с игроком, но при желании можно просчитать все доступные роботу траектории полёта стрел. Даже если нет нормальных радаров, быстро и точно определяющих положение дракона, того можно просто заспамить вслепую стреляющими роботами. Пусть, они сами будут массово гибнуть, но Край они разберут на атомы, рано или поздно.
-
@badevl А если игрок ломает такой же блок, таким же буром и на том же месте, то опыт выпадает? И что за бур, кстати?
