eu_tomat 2 148 Опубликовано: 11 октября, 2017 @@Appo На самом деле улучшить это решение уже невозможно. Просто хотелось придраться к чему-нибудь. Никак не могу избавиться от этой привычки. Прошу понять и простить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Appo Автор темы 86 Опубликовано: 11 октября, 2017 (изменено) @@eu_tomat , думаю улучшить всё-таки можно, например ни кто не отменял апгрейд чата из conputronics Претензий у меня нету, я лишь хотел по подробнее узнать о ваших предложениях и обсудить их Вы и так много полезного сказали, я вам благодарен) P.s. Ах да.. и интерес угасает, из за не надобности этого робота ( как оказалось на сервере, где я играю, костыльная защита от грифа роботом из за чего робот не может получать данные об инвентарях) T_T Изменено 11 октября, 2017 пользователем Appo Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 148 Опубликовано: 12 октября, 2017 (изменено) я лишь хотел по подробнее узнать о ваших предложениях и обсудить их … интерес угасает, из за не надобности этого робота Тогда продолжу. Продолжу даже не смотря на угасание интереса, т. к. благодаря примитивности задачи в ней на первое место выходят вопросы эргономики, а им на форуме уделяется мало внимания. Использование роботов помогает минимизировать механические, интеллектуальные действия игрока, его время. Исходя из этого и оценивается решение этой задачи. Регрессом я посчтитал новый способ взаимодействия системы с игроком в сравнении со старым. Скриншот, в котором нашлось место восьми сундукам, но не нашлось место монитору, воспринимается как рекомендуемая конфигурация для новой схемы. Возможно, это не так, но в чем тогда был смысл скриншота? Идея избавиться от внешнего сундука сама по себе прекрасна. Если всё сделать правильно, новая схема окажется удобнее старой. Но сильное неудобство возникает в случае, когда используется больше одного улучшения инвентаря, а монитор отсутствует. Причем, одного лишь монитора недостаточно, нужно еще и программу привести в соответствие с новой схемой. Теперь недостаточно выводить на экран лишь один компонент, на котором споткнулся робот; требуется выводить весь список. Это, кстати, было бы полезным и при работе через сундук, хотя и не таким важным. Тогда придётся сканировать бд, а потом каждый слот отсеивать на основе данных из бд, куча времени, но реализуемо, хотя я не вижу в этом смысла, если игрок может и одно улучшение инвентаря засунуть, тогда скролить не надо будет.Чтобы не тратить кучу времени на многократное сканирование БД, его следует выполнить лишь один раз, перенеся все данные в таблицу. А содержимое таблицы проверяется быстро. Перекладывание предметов из слота в слот выполняется не очень быстро, но происходит это в то время, пока игрок бегает на склад за компонентами, и для игрока это всяко удобнее, чем ручная прокрутка инвентаря. Можно, конечно, обойтись и одним улучшением инвентаря, но, думаю, что с тремя улучшениями, монитором и соответствующей программой система станет удобнее и быстрее: внешний сундук становится совершенно ненужным, перемещать предметы из сундука не требуется, отслеживание изменений в инвентаре ускоряется за счет обработки сигналов. Почему с тремя улучшениями? Потому что инвентарь игрока имеет всего 36 слотов. И пока игрок ходит за следующей порцией компонентов, робот успеет раскидать уже имеющиеся по слотам реактора. Скорее всего, достаточно будет даже двух улучшений инвентаря, но с одним робот вряд ли будет успевать перемещать компоненты в реактор, пока игрок шифтом перемещает их в инвентарь робота. С одним улучшением инвентаря игроку придётся тратить время на ожидание, пока освободится инвентарь робота. Как это реализовать? Разве ивенты не будут путатся в очереди? А если я в определенный момент не успею проверить ивент и он проигнорится?Сколько я ни экспериментировал, порядок поступления сигналов никогда не нарушался. В течение 1-2 секунд у меня ни одно событие не было проигнорировано, а более экстремальных экспериментов я не ставил. Изменено 12 октября, 2017 пользователем eu_tomat Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 148 Опубликовано: 12 октября, 2017 А если я в определенный момент не успею проверить ивент и он проигнорится?Проверил. В очереди помещается 256 необработанных событий. При переполнении очереди последующие события теряются. Время хранения событий, похоже, не ограничено, пока включен компьютер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ivan52945 75 Опубликовано: 12 октября, 2017 впринципе даже есть идея как всё это реализовать(помню сталкивался с подобием этой задачи)но пока говорить не буду(поломайте голову сами) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
lokin135 24 Опубликовано: 7 ноября, 2017 Делается это так:computer = computer or require"computer"component = component or require"component" Не совсем с тобой согласен (зачем так?!) Да, все через pcall() делать совсем убого, но подключать библиотеки Я считаю нужно вот так: local computer = require("computer") Хоть программа может быть и в дроне, но local никогда не крашила проги Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 148 Опубликовано: 7 ноября, 2017 Я считаю нужно вот так: local computer = require("computer")Хоть программа может быть и в дроне, но local никогда не крашила проги local, конечно же, не крашит. А вот, require не даст взлететь твоему дрону. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Quant 442 Опубликовано: 8 ноября, 2017 local, конечно же, не крашит. А вот, require не даст взлететь твоему дрону. Хотя это оригинальный способ пикнуть дроном. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 148 Опубликовано: 9 ноября, 2017 Хотя это оригинальный способ пикнуть дроном.Пикнуть и выключить, если на то пошло. Но этому способу приходится конкурировать с массой других, в том числе и рекордно компактных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 148 Опубликовано: 16 сентября, 2018 Это проще транспозером делать. Попутно будет стержни менять.Может, и не проще, но гораздо быстрее. При максимальной схеме реактора компоненты из сундука перемещаются роботом за 54 секунды, а транспозером – за 2.7 секунды. Разница огромная. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 17 сентября, 2018 При максимальной схеме реактора компоненты из сундука перемещаются роботом за 54 секунды, а транспозером – за 2.7 секунды. Разница огромная. как вариант, можно роботам в конфиге занерфленные ванильные тайминги на drop(sack) апнуть. Тогда роботы будут как из пулемета плеваться айтемами. Ну а так пока да, транспозеры рулят) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах