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

Установка схемы в реактор роботом

Рекомендуемые сообщения

@@Appo На самом деле улучшить это решение уже невозможно. Просто хотелось придраться к чему-нибудь. Никак не могу избавиться от этой привычки. Прошу понять и простить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@@eu_tomat , думаю улучшить всё-таки можно, например ни кто не отменял апгрейд чата из conputronics :D

 

Претензий у меня нету, я лишь хотел по подробнее узнать о ваших предложениях и обсудить их :)

 

Вы и так много полезного сказали, я вам благодарен)

 

P.s.

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

Изменено пользователем Appo

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

я лишь хотел по подробнее узнать о ваших предложениях и обсудить их

интерес угасает, из за не надобности этого робота

Тогда продолжу. Продолжу даже не смотря на угасание интереса, т. к. благодаря примитивности задачи в ней на первое место выходят вопросы эргономики, а им на форуме уделяется мало внимания. Использование роботов помогает минимизировать механические, интеллектуальные действия игрока, его время. Исходя из этого и оценивается решение этой задачи.

 

Регрессом я посчтитал новый способ взаимодействия системы с игроком в сравнении со старым.

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

 

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

 

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

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

 

Можно, конечно, обойтись и одним улучшением инвентаря, но, думаю, что с тремя улучшениями, монитором и соответствующей программой система станет удобнее и быстрее: внешний сундук становится совершенно ненужным, перемещать предметы из сундука не требуется, отслеживание изменений в инвентаре ускоряется за счет обработки сигналов. Почему с тремя улучшениями? Потому что инвентарь игрока имеет всего 36 слотов. И пока игрок ходит за следующей порцией компонентов, робот успеет раскидать уже имеющиеся по слотам реактора. Скорее всего, достаточно будет даже двух улучшений инвентаря, но с одним робот вряд ли будет успевать перемещать компоненты в реактор, пока игрок шифтом перемещает их в инвентарь робота. С одним улучшением инвентаря игроку придётся тратить время на ожидание, пока освободится инвентарь робота.

 

Как это реализовать? Разве ивенты не будут путатся в очереди? А если я в определенный момент не успею проверить ивент и он проигнорится?

Сколько я ни экспериментировал, порядок поступления сигналов никогда не нарушался. В течение 1-2 секунд у меня ни одно событие не было проигнорировано, а более экстремальных экспериментов я не ставил. Изменено пользователем eu_tomat

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А если я в определенный момент не успею проверить ивент и он проигнорится?

Проверил. В очереди помещается 256 необработанных событий. При переполнении очереди последующие события теряются. Время хранения событий, похоже, не ограничено, пока включен компьютер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Делается это так:computer = computer or require"computer"component = component or require"component"

Не совсем с тобой согласен (зачем так?!)

Да, все через pcall() делать совсем убого, но подключать библиотеки Я считаю ​нужно вот так:

local computer = require("computer")

Хоть программа может быть и в дроне, но local никогда не крашила проги :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я считаю ​нужно вот так:

local computer = require("computer")
Хоть программа может быть и в дроне, но local никогда не крашила проги :D

 

local, конечно же, не крашит. А вот, require не даст взлететь твоему дрону.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

local, конечно же, не крашит. А вот, require не даст взлететь твоему дрону.

Хотя это оригинальный способ пикнуть дроном.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хотя это оригинальный способ пикнуть дроном.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это проще транспозером делать. Попутно будет стержни менять.

Может, и не проще, но гораздо быстрее. При максимальной схеме реактора компоненты из сундука перемещаются роботом за 54 секунды, а транспозером – за 2.7 секунды. Разница огромная.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
При максимальной схеме реактора компоненты из сундука перемещаются роботом за 54 секунды, а транспозером – за 2.7 секунды. Разница огромная.

как вариант, можно роботам в конфиге занерфленные ванильные тайминги на drop(sack) апнуть. Тогда роботы будут как из пулемета плеваться айтемами.

Ну а так пока да, транспозеры рулят)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


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