SDV 784 Опубликовано: 26 августа, 2014 Данная программа моя первая в изучении языка Lua. Прошу сильно не ругать за такой страшный и ужасный скрипт, да и вообще за общую реализацию. Из-за его простоты и скорее всего ненужности я даже не стал его размещать на Pastebin. Но все же я написал как-бы базовый шаблон того, как например сделать простую систему безопасности своего жилища от монстров. Конечно скрипт можно доработать (а то и вовсе переработать), но на первое время я думаю и такой пример сойдет для изучения (как мне, так и другим игрокам-новичкам в этом деле). Вообщем что я использовал: Системный блок с комплектующими Монитор Датчик движения (Д.Д.) Раздатчик (внутри стрелы) Как видно на скришоте выше Д.Д. и раздатчик расположены друг на друге.Я это сделал после ряда экспериментов. И в конце концов пришел ко мнению что такое расположение самое идеальное. Во-первых, Д.Д. видит только то что перед ним, а не все вокруг (из-за этого пришлось его обложить блоками вокруг). Тобеж Д.Д. будет срабатывать только тогда когда объект будет именно перед его "камерой". Во-вторых, даже если разместить раздатчик на место Д.Д. то тогда при выстреле стрелами, снаряды просто напросто будут лететь выше моба и улетать дальше. А так получается что выстрел идет в ноги. Для своего первого скрипта, я замахнулся аж на 3 API: component, event, note. Последний можно не использовать вообще, но я его установил чтобы слышать когда программа сработает и так и оставил в конечном итоге. Ниже представлен листинг программы: local component = require("component") local event = require("event") local note = require("note") redstone = component.redstone while true do event.pull("motion",_,_,_,_,"Зомби") redstone.setOutput(4,2) redstone.setOutput(4,0) note.play(90, 0.2) end Разберу код построчно (это для новичков, типа меня =) ): Подключаем интерфейс Component API: local component = require("component") Подключаем интерфейс Event API: local event = require("event") Подключаем интерфейс Note API: local note = require("note") Устанавливаем переменную redstone в которую возвратим прокси редстоун платы (или красного контроллера) redstone = component.redstone Запускаем цикл (бесконечный): while true do В него вставляем обработчик события. В нашем случаи это фильтрация по типу "motion". Также мы установим на кого будет срабатывать Д.Д. Вместо "Зомби", можно установить кого угодно: event.pull("motion",_,_,_,_,"Зомби") Если оставить просто event.pull(), то Д.Д. будет срабатывать на всех, даже на игрока. Отправляем сигнал на раздатчик: redstone.setOutput(4,2) Число 4 это сторона на которую будет подан сигнал, число 2 - это сила (мощность) сигнала. Смотря сколько у Вас блоков с редстоунов, только и нужно писать в последнем параметре. После срабатывания раздатчика, отключаем сигнал, чтобы потом его повторно запустить при обнаружении моба: redstone.setOutput(4,0) Необязательно. Чтобы услышать что программа сработала устанавливаем стандартный звук "системного блока". У меня это частота 90 Гц, с длительностью 0.2 сек: note.play(90, 0.2) И завершаем цикл: end Кстати, если Вы запустите программу то она никогда не завершиться сама. Чтобы остановить ее необходимо нажать Ctrl + Alt + C Вообщем на этом все. Самая простая и скорее всего не идеальная система безопасности жилища готова. Пусть это будет моим первым изучение языка Lua и мода OpenComputers в целом. P.S. Я вообще начал сразу с мода OpenComputers, при этом пропустив изучение мода ComputerCraft. Надеюсь что в дальнейшем мне хватит сил и времени чтобы дойти и до него =). Кстати идею сделать такую примитивную систему мне пришла после того, как вспомнил о том, как на обычном MC делали систему защиты (из того же раздатчика, и нажимной плиты), но это оказалось слишком примитивно, и я решил использовать компьютер для этих целей. Жду от Вас конструктивную критику по поводу программы и реализации системы в целом. 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Aselock 3 Опубликовано: 29 декабря, 2014 Классно оформил Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
setun3bit 0 Опубликовано: 1 октября, 2015 Большая просьба выложить изображение еще раз не открывается ни как Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
SDV Автор темы 784 Опубликовано: 2 октября, 2015 Большая просьба выложить изображение еще раз не открывается ни как Нет возможности, файл был залит на Яндекс.Фото (на аккаунт который уже удален). Больше оригинала нигде нет. По памяти помню, что там просто стоит PCшник, а перед ним раздатчик в котором стрелы. Алсо: Кстати это моя первая программа вообще на ОС и на форуме в целом. Уже больше года прошло :-D Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах