Лидеры
Популярный контент
Показан контент с высокой репутацией 24.11.2019 во всех областях
-
2 баллаColorful Библиотека для удобного взаимодействия с апгрейдом "Colorful" из Computronics. Требования: Робот с интернет картой, разноцветным улучшением (Colorful) и установленной OpenOS Установка: На данный момент установка не возможна по техническим причинам. Функции: color.set(number) - устанавливает цвет по цифре. color.setRandom(number1,number2) - устанавливает рандомный цвет в указанном диапазоне. color.stem(channel) - подключается к каналу stem и позволяет менять цвет по цифре написанной в канале. Авторы: @ArtHacker - работа над библиотекой, инсталлером. @maxutka99 - работа над библиотекой (color.stem()). Использовано: Стандартные библиотеки OpenOS и OpenComputers, Computronics, Stem. Приятного использования
-
1 баллПомните мост Рида? Ну так вот. Я тут изучаю Rust на досуге, и пишу мини проекты. Так и получился у меня... Stem Это интернет мост для OpenComputers. Что такое мост Для тех кто не знает что такое мост, и для чего он нужен: мост дает примерно такие же возможности как и linked карта. Он позволяет связать между собой компьютеры OpenComputers, где бы они не находились. Только мост реализует это через интернет карту. Однако по сравнению с linked картой есть один очень крутой плюс. Вы можете подключиться к своему OpenComputers компу не только с другого OpenComputers компа из Майнкрафта, но и из реального мира. Например с телефона. Или с вашего домашнего компьютера. Отличие от моста Рида Я немного по другому подошел к архитектуре проекта. Вместо попарного соединения, Stem реализует систему каналов. Работает это очень просто. Вы можете: 1) послать сообщение в канал X 2) подписаться на сообщения из канала X Количество подписчиков не ограничено. Количество клиентов которые могут посылать сообщения в канал тоже не ограничено. ID канала (по которому происходит подписка и отправка сообщений) служит заодно и паролем к нему. Поэтому если вы хотите создать публично доступный канал - просто опубликуйте его ID. А если хотите создать свой, приватный, канал - просто возьмите ID подлиннее и никому его не открывайте. ID - это последовательность любых байт длиной до 256. Число комбинаций (256 в степени 256) это огромное число, так что уникальных ключей хватит надолго. Пример local event = require('event') -- подключаем STEM local stem = require('stem') -- присоединяемся к серверу STEM local server = stem.connect('stem.fomalhaut.me') -- просим сервер присылать нам сообщения с канала 'my-channel-id' server:subscribe('my-channel-id') -- слушаем эвент 'stem_message' в цикле while true do local name, channel_id, message = event.pull('stem_message') if name ~= nil then print(channel_id, message) end end -- ...или регистрируем листенер event.listen('stem_message', function(_, channel_id, message) print(channel_id, message) end) -- мы можем посылать сообщение в канал -- (причем не обязательно быть подписанным на этот канал -- достаточно просто его ID) server:send('my-channel-id', 'hello there') -- просим сервер перестать присылать сообщение с канала server:unsubscribe('my-channel-id') -- полностью отключаемся от сервера STEM server:disconnect() Одновременно можно работать с несколькими серверами Stem и с любым количеством каналов. Библиотека stem.lua Библиотечку можно скачать напрямую по этой ссылке: https://gitlab.com/UnicornFreedom/stem/raw/master/stem.lua Либо установить через HPM: hpm install stem Подробная документация по командам библиотеки находится здесь. Сервер STEM Дефолтный сервер STEM запущен у меня на VPS по адресу: https://stem.fomalhaut.me/ Можете смело его использовать. Единственное, что это тестовый сервер пока. Может пропадать или менять протокол. Новости постараюсь писать сюда. Исходный код проекта находится тут: https://gitlab.com/UnicornFreedom/stem Вы можете скомпилировать его под свою систему и запустить где угодно. Настраивается сервер файлом stem.toml в корневой папке. Дефолтный конфиг может выглядеть так: [tcp] host = '127.0.0.1' port = 5733 [web] host = '127.0.0.1' port = 5780 [general] ping_interval = 60 Чтобы получить полностью свой отдельный и независимый сервер STEM, достаточно будет просто запустить бинарник, получившийся после компиляции. Не забудьте также положить в папку с бинарником папки static и templates. Они нужны для веб-интерфейса. Сервер мультипоточный, и очень производительный. Должен тянуть довольно большие объемы трафика. Но точных бенчмарков я не проводил. Если есть желающие - пишите в IRC, скооперируемся и померяем. 😃 Для того чтобы видеть логи сервера, используйте переменную окружения RUST_LOG. Например чтобы включить полное отображение всех логов: $ RUST_LOG=stem ./stem Веб-интерфейс Если перейти по ссылке на сервер STEM то вы увидите... веб-интерфейс. Веб интерфейс показывает счетчик активных каналов и сессий (клиентских подключений). Кроме того, он дает возможность подключиться к любому каналу STEM и поучаствовать в приеме-передаче сообщений прямо через сайт. Единственное ограничение - как ID канала, так и контент сообщений ограничивается тем, что можно закодировать в UTF-8. Ну вот и все Мост в принципе уже полностью работоспособен. Все идеи, пожелания, отчеты о багах пишите сюда, либо на issue трекер в репозитории. Если кто-нибудь хочет помочь с написанием клиента STEM на своём любимом языке программирования - обращайтесь ко мне в ЛС, IRC или пишите в этой теме. Написать клиент несложно - для примера можно глянуть на код библиотеки для OpenComputers. Она состоит всего из 150 строк кода. Enjoy! 😃
-
1 баллИногда, особенно когда вы занимаетесь строительством реакторов, необходимо очень много укрепленного камня. Можно конечно и вручную залить нужную территорию, но согласитесь, лучше когда за вас это все сделает кто-то еще. Итак представляю вашему вниманию небольшую автоматическую систему по производству укрепленного камня. Вам всего то надо обеспечить эту ферму (генератор укрепленного камня) железными лесами, песком и энергией. Перейдем к постройке: Главным центром всей постройки является робот. Его устройство рассмотрим позднее. Справа от робота необходимо установить любую зарядку для бура/ваджары. Ну или если вы совсем бедные, и планируется что робот будет работать киркой, то установите сундук. Слева от робота устанавливайте Жидкостный/Твердотельный наполняющий механизм. Он заправляет распылитель сразу, за 1 прогон. Это будет наполнитель для зарядки распылителя. Рядом с зарядником распылителя рекомендую установить еще один Жидкостный/Твердотельный наполняющий механизм, который будет генерировать сжатую пену. В слоты улучшения обязательно установите "Выталкиватель жидкости". С подачей воды и смеси думаю разберетесь сами. Не забываем выставить настройки в механизмах как показано на скрине: За роботом нужна зарядка, чтоб он мог работать вечно! И не забываем её стукнуть ключиком, чтоб не заморачиваться с рычагами. Конвертор энергии не забудьте подключить к энергобуферу (или можете не устанавливать его, провода из ИС2 с ОС коннектятся) Над роботом установите сундук, и желательно побольше. В него необходимо засыпать железные леса и песок. Учтите, на 1 блок укрепленного камня необходимо 1 железные леса и 1 песок. Автоматизация засыпания расходников, уже на вас. Под роботом распологается сундук в который будет ссыпаться укрепленный камень. Так как наш робот будет нереально дешевым, не забываем сделать подставку на которой будет готовиться ваш камушек. Рекомендую вообще оградить это место, чтоб ни курица ни игрок не залезли перед роботом (иначе распылитель запенит все в округе). Собственно это все что необходимо вам знать при постройке этой фермы. Переходим к роботу. Программу я сделал для двух типов роботов, простейший Т1 и супердешевый на eeprom. Простой робот-генератор укрепленного камня: Супердешевый робот-генератор укрепленного камня: Настоятельно не рекомендуется лезть перед роботом иначе рискуете получить такое Не лезте своими шаловливыми ручками в слоты к работающему роботу. Можете забрать готовый камень, но расходники не трогайте, так как скорость смены инструмента огромная, и если робот что-то не найдет, вам грозит быть залитым в пену. (смотри скрин выше) Одной заправки распылителя хватает на 80 применений, потом робот автоматически перезаряжает инструмент и распылитель. А в остальном данная ферма работает довольно стабильно и исправно. А рассказал вам о ферме Asior, фармите укрепленный камень, гоняйте кур от фермы и удачи в тяжком труде реактостроителя! P.S. Укрепленный камень выдерживает ядерный взрыв, но радиацию сдержать увы не сможет. Осторожнее.
-
1 балл
-
1 балл
-
1 баллА почему просто не проверять тип аргумента через: checkArg(1,number,"number")
-
1 баллhttps://ocdoc.cil.li/tutorial:custom_oses Там в списке все (почти) функции, которые работают без загрузки OpenOS
-
1 баллЦитаты из wikipedia.org: "Компиляция — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду." "Результатом работы компилятора может быть программа на специально созданном низкоуровневом языке, подлежащем интерпретации виртуальной машиной. Такой язык называется псевдокодом или байт-кодом." "Интерпрета́ция — пооператорный (покомандный, построчный) анализ, обработка и тут же выполнение исходной программы или запроса (в отличие от компиляции, при которой программа транслируется без её выполнения)" Цитата из описания load в официальной документации на lua.org: "If there are no syntactic errors, returns the compiled chunk as a function; otherwise, returns nil plus the error message." Своими словами: load - компилирует текст программы в байт-код. Ком-пи-ли-ру-ет! Поэтому его ошибки это ошибки ком-пи-ля-ци-и. А когда мы будем выполнять наш байт код, через pcall, или просто добавив скобочки обратимся к нему как к функции, вот тогда уже будет происходить интерпретация байт кода с его выполнением. --==-- Брысь отсюда! ) Идите маны покурите и матчасть почитайте если нечего по делу сказать. Ишь ты, какие критиканы! Или самосожгитесь там, на костре из собственного невежества, самоуверенности и слепых заблуждений. )
-
0 баллов
Эта таблица лидеров рассчитана в Москва/GMT+03:00
