Minecraft Wiki
Advertisement

Существуют множество версий триггеров в Minecraft, от простых редстоуновских до сложных рельсовых. Триггер — это система, которая может хранить своё состояние и менять его по сигналам извне. Сейчас я вам покажу одну из версий триггера созданную с помощью ComputerCraft. Все что нам нужно в начале это любой Компьютер, а где его применять ограничивается только вашей фантазией, к примеру это может быть лампа которую нужно включать с помощью кнопки и в двух местах.

Создание

Давайте разберемся, как пишется программа для кодового замка. Кому не интересно, вы можете просто скопировать код. Заходим в компьютер и пишем:

edit trigger

Открывается окно редактора кода. Вот код нашей программы:

while true do
  red1 = rs.getInput('left')
  red2 = rs.getInput('right')
  if red1 == true then
    if red2 == true then
      rs.setOutput('right',false)
      sleep(2)
    elseif red2 == false then
      rs.setOutput("right",true)
      sleep(2)
    end
  end
sleep(0,5)
end
Строка Описание Комментарий
while true do Бесконечный цикл While - "в то время как", true - если просто спросить консоль будет ли true или false то будет всегда будет true и никогда false, do - "сделать"
red1 = rs.getInput('left') Заменяет команду rs.getInput('left') на red1 rs.getInput('left') - спросить у компьютера есть ли положительный вход редстоуна Слева. red1 можно заменить на что либо другое, я написал так. 'left' - обозначает сторону где вы спрашиваете, можно поменять в зависимости от стороны входа редстоуна
red2 = rs.getInput('right') Заменяет команду rs.getInput('right')) на red2 rs.getInput('right') - спросить у компьютера есть ли положительный вход редстоуна Справа. red2 можно заменить на что либо другое, я написал так. 'right' - обозначает сторону где вы спрашиваете, можно поменять в зависимости от стороны входа редстоуна
if red1 == true then "Если red1 будет true тогда" red1 это rs.getInput('left'), значит если rs.getInput('left') будет положительным тогда...
if red2 == true then "Если red2 будет true тогда" red2 это rs.getInput('right'), значит если rs.getInput('right') будет положительным тогда...
rs.setOutput('right',false) rs.setOutput('right',false) - установить сигнал редстоуна справа на негативное 'right' - можно поменять в зависимости от стороны где будет выход редстоуна
sleep(2) Спать 2 секунды Сделано для того что бы не было замыкание, т.к. сигнал кнопки зажимается на 2 секунды
elseif red2 == false then "Другое если red будет негативным тогда" red2 это rs.getInput('right'), значит если rs.getInput('right') будет негативным тогда...
rs.setOutput("right",true) rs.setOutput('right',false) - установить сигнал редстоуна справа на положительное 'right' - можно поменять в зависимости от стороны где будет выход редстоуна
sleep(2) Спать 2 секунды Сделано для того что бы не было замыкание, т.к. сигнал кнопки зажимается на 2 секунды
end Конец ветвления Для определения количества end проще использовать форматирование "лесенкой"
end Конец ветвления Для определения количества end проще использовать форматирование "лесенкой"
sleep(0,5) Спать 0,5 секунды Сделано для того что бы не было ошибки из-за длительного не изменения переменных red1 и red2
end Конец цикла Если количество end будет больше, чем нужно, будет выдана ошибка "<eof> expected". Если меньше, то другая

Завершение создания

Для сохранения нажимаем клавишу Ctrl и выбираем пункт Save. Потом Ctrl и выбираем пункт Exit. После этого пишем trigger. Готово. Если вы сделали код точно как я, тогда просто слева от компьютера располагаем вход редстоуна, а справа выход.

Advertisement