[1.4.6] RedPower 2 [Prerelease 6]
#2041
Написал 01.04.2013 - 09:37
#2043
Написал 09.04.2013 - 20:53
: MOVE DUP IOXSET 4 TICKS IOXRST 12 TICKS ;: UP 1 MOVE ;: DOWN 2 MOVE ;: RIGHT 4 MOVE ;: LEFT 8 MOVE ;: MAINBEGIN BEGIN TICK 16 IOX@ AND UNTIL 2 TIMES DOWN 3 TIMES RIGHT 5 TIMES DOWN BEGIN TICK 16 IOX@ AND 0= UNTIL 5 TIMES UP 3 TIMES LEFT 2 TIMES UPAGAIN ;Но у неё есть минус, который меня не устраивает: невозможность открыть/закрыть дверь, если она уже закрывается/открывается. Т.е. нельзя сказать "я передумал". Вот что у меня получилось для исправления этого минуса:
8 CONSTANT MAX_ACTIONS \ Предельное кол-во действийCREATE ACTION MAX_ACTIONS 4 * ALLOT \ Массив с ссылками на процедурыCREATE STEPS MAX_ACTIONS 2* ALLOT \ Массив с контрольными точкамиVARIABLE POS \ Текущая позиция механизмаVARIABLE MAX \ Максимальная позицияVARIABLE LEV \ Маска для управляющего сигналаVARIABLE ACTS \ Кол-во действий в конкретном механизмеVARIABLE PAUSE \ Пауза между опросами в предельных положениях механизма: GET_IND \ (-->i) Возвращает индекс процедуры (зависит от текущего положения)ACTS @ DUP 0 DO I STEPS + C@ POS @ >= IF DROP I LEAVE THENLOOP;: TICK_FWR \ Делает шаг в одну сторонуPOS @ MAX @ >= IF PAUSE @ TICKS EXIT THEN \ Если достигли предела, то ждёмGET_IND 2* ACTION + @ EXECUTE \ Вычисление адреса нужной процедуры и запуск1 POS +!;: TICK_BAK \ А это в обратнуюPOS @ 0= IF PAUSE @ TICKS EXIT THEN1 POS -! \ Декремент нужно проводить до вычисления адресаGET_IND MAX_ACTIONS + 2* ACTION + @ EXECUTE;: MAINBEGIN IOX@ LEV @ AND \ В зависимости от наличия сигнала[paste][/paste][paste][/paste][paste][/paste]IF TICK_FWR ELSE TICK_BAK THEN \ выбирается направление движенияKEY? UNTIL ; \ Предусмотренный выход для отладкиИтак, что получается: все действия описываются в виде "на позиции P нужно использовать действие A при движении в одном направлении и действие B - в обратном". Сами действия заносятся в массив ACTION в виде ссылок на функции. Первые MAX_ACTIONS ссылки это движение в прямом направление, а вторые - в противоположном. STEPS хранит контрольные точки диапазонов, в которых применяется действие из массива ACTION с таким же индексом. (пример будет ниже) Занесём наши действия в массив:
' DOWN ACTION !' RIGHT ACTION 2 + !' DOWN ACTION 4 + !\ Индекс противоположных действий вычисляется как i + MAX_ACTIONS' UP ACTION 8 + !' LEFT ACTION 10 + !' UP ACTION 12 + !Описание диапазонов. В нашем случае получается: (номера позиций / индекс действия) 0-1 / 0 2-4 / 1 5-9 / 2 В массив STEPS вносятся только правые числа из этих диапазонов:
1 STEPS C!4 STEPS 1 + C!9 STEPS 2 + C!Осталось заполнить переменные:
10 MAX !3 ACTS !10 PAUSE !0 POS !16 LEV !Программа годится не только для дверей, но и для любых механизмов с 2-мя крайними положениями.
У тех, кто пишет понятно, есть читатели; у тех, кто пишет туманно, есть комментаторы.
--Альберт Камю
#2045
Написал 10.04.2013 - 13:52
У тех, кто пишет понятно, есть читатели; у тех, кто пишет туманно, есть комментаторы.
--Альберт Камю
#2047
Написал 10.04.2013 - 14:10
У тех, кто пишет понятно, есть читатели; у тех, кто пишет туманно, есть комментаторы.
--Альберт Камю
#2048
Написал 11.04.2013 - 20:55
#2050
Написал 11.04.2013 - 21:24
#2051
#2052
Написал 12.04.2013 - 18:52
#2053
Написал 12.04.2013 - 19:14
Да, надо с этим покопаться в конфиге. Особенно если модов много, которые добавляют руды. Иногда это медь и олово, иногда это серебро, иногда камни вроде рубинов и т.п. Если одинаковые руды оставить, получится слишком уж простая игры с избытком ресурсов (даже если всех руд будет по 1 типу, то рано или поздно их всё равно станет так много, что хранилище будет ими забиваться).Подскажите правильно ли я понял из FAQ, что если используешь IC2 то надо в конфиге отключать генерацию похожих руд? Иначе они будут спавниться в двойном количестве?
#2054
Написал 15.04.2013 - 19:16
Столкнулся с той же проблемой решил буферным сундуком (на входе в сундук/фильтр сортировщик, на выходе фильтр/сортировщик с нужным количеством предметов а дальше устройство, перед устройством 2-5 реле. Но возникла проблема если посылается нектарное 64 количество предметов, затем другой предмет, а затем сново первый, то стеки сбиваются и происходит засор.Когда собирал линию автопереработки всего на RP2, активно использовал Регуляторы. Например, раньше шелдонит обрабатывался по 4 штуки за раз, причем наибольший выход был с использованием ртути.шелдонитовая руда в кол-ве 3 штук вполне могла застопорить данную линию переработки (до поступления новой порции шелдонита), поэтому делал так - фильтром пропускал все, что обрабатывается со ртутью поодиночке, а потом ставил параллельно Регулятор, куда клал 4 шелдонитовой руды. В итоге шелдонитовая руда всегда шла во входной буфер гриндера порциями по 4 штуки.
#2055
Написал 17.04.2013 - 13:30
#2056
Написал 17.04.2013 - 13:53
#2057
Написал 17.04.2013 - 13:57
#2058
Написал 17.04.2013 - 15:36
#2059
Написал 17.04.2013 - 16:10
Сортировка и прочее у меня отлично работает. Проблема именно с двигателями (Blulectric Engine) которых у меня 12 в одной цепи. На счет "больше источников", изначально, пока двигатели выключены, они нормально заряжаются и показывают готовность к работе, и некоторое время после включения энергии им хватает, затем самые дальние начинают отключаться. Это запасенная в самих двигателях энергия, что ль? Больше источников это наверное выход, правда у меня подземный завод, просто думал может чего-то не совсем то делаю, и как-то можно по другому =)На системы труб 2х панелек хватит с головой... [кусь-кусь] В твоем случаи проблемма скорее не с потериями, а с нехваткой энергии. Поставь больше источников, так чтобы хватало на все двигатели. Либо можешь подключить каждый двигатель независимым кабелем (тогда, по идеи, энергия должна течь равномерно)
#2060
Написал 17.04.2013 - 16:36
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных