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

Aex

Пользователи
  • Публикации

    36
  • Зарегистрирован

  • Посещение

  • Победитель дней

    6

Сообщения, опубликованные пользователем Aex


  1. Не знаю, где лучше расположить эту тему.

     

    Ситуация:

    Есть дом на сервере EvilCraft. В нём работает в режиме non-stop примерно 5 компьютеров (включая один сервер и одного робота).

    В доме есть дверь. На которой запущена программа входного замка.

    Программа (урезанная до скелета, чисто для демонстрации. В приведённой версии эффект наблюдается вполне) приведена тут:

    https://pastebin.com/yzf4eRZq

     

    Проблема:

    Когда я выхожу с сервера, телепортируюсь в другой мир, или же просто покидаю чанк, то (не всегда!) проявляется следующий эффект:

    Одна из переменных (в приведённом тексте TimeOut. Я пробовал её переименовать) перестаёт принимать значения.

    То есть, для примера, когда я возвращаюсь в чанк и нажимаю на кнопку открытия дверей, вызывается функция VisitRequest, которая вызывает в свою очередь после проверки вызывает функцию OpenDoor, которая успешно отрабатывает, и вызывает в свою очередь функцию WaitMenu.

    function WaitMenu(delay)
    	sMode = -1;
    	TimeOut = delay;
    	timestamp = computer.uptime();
    	gpu.fill(1,7, resX, resY, " ");
    	gpu.set(8, 9, "PLEASE WAIT");
    end

    Которая выполняет всё успешно (судя по надписи на экране). Но переменная TimeOut не принимает значение delay, и остаётся в нуле (её значение по-умолчанию), судя по выводу на экран и дальнейшему поведению программы.

    Обнуление переменной исключается, так как единственное место где она обнуляется не исполняется (меню не отрисовывается).

     

    Может кто-то с таким сталкивался? Из-за чего такое возможно?

     

    Update: Это наблюдается на как минимум двух компьютерах с двумя разными программами...


  2. Сложнее ещё потому что не всегда можно использовать альтернативные крафты. Например, всякая там мебель BibleCraft. И не у всех альтернативных крафтов такое удобное совпадение имени. Ну и надо создавать какие-то алиасы, потому что пользователь не видит у себя на экране minecraft:planks, он видит у себя Oak Wood Planks. Это конечно решаемо, но усложняет жизнь.

     

    В общем, в дальнейшем надо в любом случае думать и дорабатывать этот момент.


  3. Давненько не было автокрафтеров тут. Может, кому-то пригодится моя версия.

     

    Предназначена в первую очередь для крафта всяких часто необходимых мелочей со сложными крафтами (например, компоненты OpenComputers) из примитивных исходных ресурсов (например, процессор из слитков золота и железа, тростника и редстоуна), которые у пользователя отнимают кучу времени на поиск всех транзисторов и крафт недостающих.

     

    Рассчитана на использовании робота и двух сундуков, один из которых - основное хранилище (может быть покрупнее), а другой предназначен для резервирования компонентов при крафте.

     

    Ссылка:

    https://pastebin.com/1gqtWLub

     

    Необходимая конфигурация робота:

    • Проверялась работа на компонентах (корпус, память, процессор, жёсткий диск) второго уровня.
    • Screen, Keyboard
    • Crafting Upgrade
    • Inventory Upgrade и Inventory Controller
    • Видеокарта и экран первого уровня

    Для дальнейших потенциальных расширений:

    • Беспроводная карта
    • Upgrade Container

    Конфигурация установки:

    • Перед роботом - контейнер ресурсов (любой из возможных инвентарей достаточного размера)
    • Под роботом - контейнер-буфер (можно обычный сундук)
    • Рядом желательно поставить зарядник

     

    Возможности:

    • Рекурсивный крафт сложных рецептов. Ресурсов расходуется, по результатам практических испытаний, ровно столько, сколько необходимо.
    • Каталог рецептов для крафта, разбитый на страницы по 10 предметов для более удобного пролистывания на маленьком экране робота.
    • Портативность - требуется только робот, два сундука и исходные ресурсы. Желателен также источник энергии
    • Сообщения о том, каких конкретно исходных ресурсов не хватает для крафта (исходные ресурсы - те, для которых не найдено рецепта)
    • Процесс крафта подробно отображается на экране, чтоб за ним было не так скучно и одиноко следить (см. недостатки)
    • Об окончании крафта робот сообщит приветливым писком. Равно как и о неудаче.

    Недостатки и известные недочёты:

    • Скорость..... Крафт занимает значительное время. Например, изготовление процессора 3го уровня из примитивных ресурсов (тростник, красный камень, алмазы, дерево для резаков, слитки золота, железа) занимает около 5 минут. Стоит отметить что количество изготавливаемых предметов не сильно влияет на время (2 процессора, скорее всего, будут делаться те же примерно 5 минут).
    • Не умеет работать с альтернативными ресурсами. Возможно, когда-нибудь исправлю.
    • Не умеет работать с инструментами (имеются ввиду многоразовые, как молот ИК2). Возможно, так же когда-нибудь исправлю.
    • Не умеет работать с количествами предметов более стака, а также не гарантируется корректная работа с предметами, не складывающимися в стак. Постараюсь исправить в ближайшее время.
    • Нет поиска по именам компонентов (то есть, либо задаёте название компонента целиком, либо задаёте крафт через каталог). Когда-нибудь поправлю
    • Проверок на наличие контейнеров не делается, так как программа писалась "для себя" и находится в разработке. В дальнейшем будут введены. Также не везде гарантируется наличие защиты от "Количество предметов: Привет".

    Особенности:

    • Шаблоны содержатся в одном файле, что облегчает переносимость, но приносит определённые неудобства всвязи с размерами файла (12 строк на предмет). Буду думать, как лучше сделать (разбить на разные файлы?). Файл имеющихся шаблонов могу выложить при необходимости (на разных сборках эти шаблоны могут отличаться)

    Дальнейшее развитие (no promises!):

    • Исправление имеющихся недочётов
    • Поддержка работы по сети (заказ компонентов, сообщение о готовности - дистанционно).
    • Работа с более сложными инвентарями - сборщики, и т.д.
    • Работа с машинами-обработчиками ресурсов - когда-нибудь в отдалённом будущем, скорее всего.

     

    Управление:

    Интерфейс текстовый. Посмотреть команды главного меню можно, нажав "Enter" (оставив поле ввода пустым).

     

    • Нравится 7
    • Спасибо 1

  4. Интереснее не запреты, а скорее доступность ресурсов и их расход на определённых этапах развития.

    Чтоб человек становился перед выбором - или ты работаешь на еду, делаешь упор на аграрное развитие, или ты добываешь ресурсы, или ты их обрабатываешь, или снабжаешь энергией, или всё сразу, но на грани выживания. А не когда ты всё своими руками.

     

    Ну как в реальности никому в голову не придёт (при нормально работающей экономике) на одном заводе делать и генераторы, и котлеты. Слишком разное оборудование, слишком разные технологические процессы, логистика опять же.

    А не как в майне, где всё очень дискретно. Поставил дробилку- вот вам и обработка ресурсов. Вопрос в скорости этой обработки.

    Ну и в майне просто приходится развиваться "во все стороны", так как этапы в принципе одни и те же.

    Мораль: усложнять этапы производства. Усложнять систему питания (одно дело - когда весь день проводишь на диване, другое - в шахте, размахивая киркой). Разделять методы производства (чтоб не получалось в одну и ту же машину кидать и железную руду, и зерно).

     

    Ну и задействовать людей на разных этапах развития.

    Например, в майне всю жизнь было "пока не сделаешь алмазную кирку, урана тебе не видать". Да и ресурсы начальные мало что стоят. В итоге, новичок, приходя на сервер, существующий уже какое-то время, не может никому ничего предложить. Куда приятнее, когда на разных этапах развития у игроков повышается и понижается спрос на определённые ресурсы.

     

    И генерация руд жилами тут очень полезна. Наткнулся новичок на жилу с несколькими тоннами угля. Накопал. Девать его пока некуда (ну факелы-печки). А тут "старичок", который может его бронзой для кирки обеспечить за этот уголь, который ему для электростанции нужен, или там на углеволокно.

     

    И да. Логистики в майне нет. Просто нет. Потому что можно носить с собой целый состав ресурсов, и хранить в сундуке всё вперемешку. А вот если бы приходилось строить многоблочные хранилища отдельных ресурсов (примерно как с жидкостями в РК), то тут опять же был бы повод торговать.

    • Нравится 1

  5. В гайдах описал систему. Программы, которые используются у меня, выкладывать не стал (кроме управляющего компьютера), так как всё это зависит от конфигурации и всё равно по уму нужно всё переделывать. Если кому-нибудь надо, то могу выложить или раскрыть подробности.


  6. А ещё интереснее, когда он и бойлер этим самым углём топит. При необходимости, в зависимости от наполненности энергохранилища. А ещё когда этим всем можно управлять по сети.

    Не знаю, стоит об этом гайд писать, или это никому не интересно?

    • Нравится 1

  7. Я подозреваю, Entity detector будет точно также реагировать (потом проверю).

    Ну хоть motion sensor на роботов не реагирует, и то плюс.

    Так что двери делать всё же лучше на них (а то у меня была мысль Entity detector использовать).


  8. Я знаком. У меня всё работало. Код не покажу, ты же не показываешь.

    А какой тут код показывать? Тут хоть просто в консоли

    d = component.os_entdetector;

    = d.scanPlayers();

    последнюю строку повторяем 4 раза.

     

    Первые три выводит нормальную таблицу "имя-координаты-расстояние". После этого тупо возвращает пустую таблицу.

    Помогает только физический снос детектора.

     

    Doob, потом попробую дальность задавать Спасибо.


  9. Ностальгия...

    У себя сейчас сделал подобный лифт с управлением keypad из OpenSecurity. Ну и всякие мелкие отличия (возможность управления по сети, сохранение адресов в файлы, чтоб при рестарте компьютера не перестраивать всё заново). Если кому-нибудь интересно, могу выложить.

    • Нравится 1

  10. Попробовал я тут с Entity Detector поиграть....

    Почему-то вывести таблицу в удобочитаемый вид так и не получилось. Через lua-консоль выводится нормально, если использовать =d.scanPlayers(), а вот записать таблицу в переменную, чтоб потом её можно было прочитать, у меня так и не вышло.

     

    Ну и плюс к тому, после трёх сканирований он больше не находит ничего. То есть возвращает пустую таблицу.

     

    Описаний, кроме АПИ, найти не удалось.

     

    Кто-нибудь знаком с этим детектором?


  11. Мораль: ездить должны только роботы, разметкой и дорожными работами заниматься только роботы...короче, человек - лишний элемент везде, куда не посмотри.

     

    А вообще, по идее он всё же не только за разметкой следит, но и за границами дороги, оценивает, куда можно ехать, а куда нельзя. Ну и при пропавших знаках у водителя-человека преимущества перед программой не будет, разве что водитель знает дорогу, ну тут уж программе проще сверяться с картой и GPS (хотя тут встаёт вопрос о поддержке и своевременном обновлении карт, что тоже не всегда и не везде просто).

     

    Тут опять же открывается простор для самообучения. Все возможные ситуации на дороге предусмотреть, пожалуй, невозможно, а вот собирать информацию в автоматическом режиме и обмениваться ею между машинами - метод, на мой взгляд, довольно эффективный. Человек по сути так и учится, в автошколе сразу всё не скажут.

    С другой стороны, тут вопрос в балансе между функциональностью и безопасностью. А то если переборщить, машина начнёт тормозить при виде любого пешехода, что тоже нехорошо. Да и проблема в ресурсах бортового компьютера - с собой таскать суперкомпьютер - не выход, а пересылать кучу данных с сенсоров по беспроводным сетям для централизованной обработки - частот не напасёшься.

     

    Ну и интересно было бы знать, как она будет в снегу ориентироваться, где и разметки, и дороги толком не видно. Особенно применительно к нашим таллиннским реалиям где обожают сугробы в полтора человеческих роста оставлять на обочине.


  12. А чего именно тест Тьюринга? Субьективная и не совсем однозначная штука.

    А так, человек по сути тоже реагирует на внешние раздражители в рамках имеющейся базовой программы + самообучение (опыт).

    Ну а такое - не столь, пожалуй, эффектно, как шагающие роботы, но тоже довольно интересно и в широком смысле относится к теме.

    https://www.youtube.com/watch?v=LHqB47F12vI

    • Нравится 1

  13. По поводу онлайна на таких сервера: онлайн там высок, потому что всё развитие заключено на пару-дневном развитие и дальнейших пвп-замесах для 10-15 летних.

    На ГТ наоборот, там играют люди недолюбливающие пвп, любители напрячь мозг для постройки чего восхитительного и супер-индустриального.

    Если вообще сравнивать популярность комп модов и ГТ, то компы далековато на дне будут.

    Так я ж уже это говорил, и не один раз. Сравнивать по популярности футбол и шахматы - дело неблагодарное. Не, можно, конечно, заняться упрощением шахмат, ну а смысл?

    • Нравится 1

  14. Задача создания муравейника сводится к саморепликации, как основу устройства муравейника.

     

    Я считаю, что создание программы для робота\черепашки по саморепликации, это апогей программирования для МС, и наверное, самая востребованная разработка для компьютерного мода. Разрабатывая каждую новую программу, мы приближаем наступление момента, когда первая самореплицирующаяся машинка появится.

    Например, объеденив строительную программу и копательную, можно уже создать робота, который построит улей из ресурсов, которые сам добудет.

     

    Но по моему мнению, основная проблема состоит не в принципиальной невозможности создать робота который создает робота (робот не может тыкнуть на кнопку "собрать"), а в обработчике ошибок.

    На каждом этапе работы этой "королевы" будет возникать куча прерываний, начиная с падающего песка и заканчивая багами модов. И сделать программу, которая сможет сама находить решение крайне сложно.

     

    Так что, для меня сейчас цель плавно дописывать свою программу строительства. Затем, я смогу использовать ее, что бы робот смог сгенерировать и построить дом сам. Далее, я использую программу "Домик Байта", которую напишет кто то другой, что бы ориентироваться в построеном доме. Ну и так далее.

     

    А в конце сбудется мечта - они съедят майн мир.

     

    Апогей, тогда уж - если они сами себя исправлять начнут. То есть, отслеживать, что вызвало ошибку, и принимать меры к тому, чтоб подобное не произошло впредь. Хотя это уже где-то за гранью.


  15. AlexCC

    Ну зачем мне приписывать то, чего я не говорил?
    Ирония с иронией, все это поняли (ты ж мой всерьёз не воспринял, надеюсь), я нигде не говорил, что воспринимаю список "идей" буквально

     

    Насчёт "ненавижу компьютерные моды" - скажем так, не было бы тут компьютерных модов - меня бы тут тоже не было. Просто не люблю что-либо возводить в абсолют. Компьютерные моды - прекрасно, но эмулировать компьютер только ради компьютера - это как мод игры в майнкрафт в майнкрафте. И где я написал "Экстра, ТЕ, Эндер" или тем более ещё какие-то моды? Мне просто не нравится, когда у машины свинчивают руль и говорят "Ехать можно - зачем тебе руль? Это ж автомобиль, а не автоповорачиватель. Сдаётся мне, ты просто ненавидишь колёса".

     

    Дюшес - ты не прав. РИТЭГи не автоматизировал. И стоящие в основном для украшения интерьера термалки. Эхх, недостоин я звания "компьютерщик". Пойти ,скинуть что ли ноутбук из окна и начать строить копию грегтека вживую из кубиков и проводков...


  16. Забываете главное:

    1. Установить обязательный посменный рабочий день (8 часов одна смена). Распределить между игроками смены в случайном порядке. В случае неявки на работы в майн один раз - снос всех землянок с конфискацией ресурсов. В случае рецидива - вечный бан (с расстрелом и одновременным сожжением).

    2. В случае смерти - 1 час карцера с занесением 1 штрафного очка в досье. При накоплении 8 штрафных очков - игрок обязан незамедлительно отработать отыграть ещё смену.

    3. В случае сворачивания экрана - считать как нарушение пункта 1 (для этого необходимо модифицировать клиент, но что делать).

    4. Запретить вообще все крафты. Сделать игровой валютой алмазы. Всё остальное при разбиении превращается в гравий. Гравий нельзя выбрасывать (за это 8 часов карцера с необходимостью сидеть в майне как по пункту 2), а только отдавать в банк за утилизационную плату. И кстати да, кирки разрешить двух видов: каменная (дешёвая) и золотая (дорогая,  исключительно для алмазов).

    5. Всё необходимое (включая еду, строительные материалы) покупать в банке за алмазы. Строить дома - тоже нельзя (наказание - 16 часов карцера со сносом постройки и конфискацией имущества). Можно арендовать робота в банке (за алмазы). Это подвигнет игроков учить программирование, а также заставит их пользоваться банком.

    6. Все игроки обязаны минимум 4 часа в день писать программы для сервера. Оплата труда - 1 алмаз в за 4 рабочих часа. За очень хорошие программы можно выдавать премию в 5 алмазов. Учитывая смерть от голода и монстров, игроков даже заставлять не придётся. За что-то экстраординарное - аренда черепахи для майна на час. Ровно через час черепаха взрывается как атомная бомба, чтоб исключить использование дольше срока.

     

    Представляете, какой будет онлайн, как будут пользоваться банком, как сразу все начнут программировать? Сразу сервер станет полностю компьютерным - все сидят, кодят, иногда отрываясь чтоб поискать в майне алмазы. Идеал компьютерного сервера, не правда ли? И лагать не будет!

     

    Осталось решить вопрос предустановки майна на компьютеры пользователей и невозможности удаления, а также вопрос автоматической эвтаназии пользователя при бане.

    • Нравится 5

  17. Так черепахи же не грузят чанки. Тогда нужно, чтоб или они с собой таскали при добыче чанклоадерную вагонетку (интересно, откуда им эндерглаза брать), или расставляли везде чанклоадеры (и повалили сервер).

    Роботы - понятно, чанклоадер есть встроенный, но их сборку непонятно как автоматизировать.


  18. Проблема в том, что как только ты подошёл к двери, она сама открывается без дальнейших действий с твоей стороны.

    В этом есть плюсы, но есть и очевидные минусы. Подошёл к двери посмотреть, кто там...

×
×
  • Создать...