Перейти к публикации
Форум - ComputerCraft
Totoro

SpiderEye Terminal

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

Как известно, жить у нас на сервере бывает опасно. Убийцы в плащах невидимках рыскают в поисках жертв, а табуны гриферов разоряют дома прямо на глазах у офигевающих владельцев.
Моя программа не сможет предотвратить злодеяние, но запомнит негодяя и запишет его имя, дабы пострадавший знал, на кого направить свой гнев (кроме админа и модераторов, конечно).

Суть
Система защиты SpiderEye - это сеть motion sensor'ов в стратегически важных местах, которые соединены кабелями с компьютером.
 

scene.png


Помните, что сенсор - не радар. Он срабатывает только на существ в области прямой видимости. Сектор должен просматриваться и простреливаться, не создавайте укрытий гриферу! =)

Сборка железа
Конкретные параметры системы сильно зависят от того, сколько именно сенсоров вы присобачите к компьютеру. Процессор может обработать ограниченное количество компонентов. А именно:


  • 1 уровень - 8 компонентов
  • 2 уровень - 12 компонентов
  • 3 уровень - 16 компонентов

Сюда кроме сенсоров входит: монитор, клавиатура (?), красная плата/красный контроллер, видеокарта.
Если вам потребуется больше компонентов - переносите программу на сервер (Server Rack и Server). Туда можно установить сразу несколько процессоров.

Моя машина:

  • Корпус 3 lvl.
  • Процессор 3 lvl.
  • Красная плата
  • Видеокарта 2 lvl
  • Две планки памяти 2 lvl
  • Жесткий диск 1 lvl
  • Монитор 2 lvl
  • Клавиатура
  • а также Датчики движения и Кабели

Вы можете установить красную плату в компьютер, или подключить красный контроллер к сети. Тогда при сигнале тревоги компьютер (или контроллер) будет испускать сигнал редстоуна (примерно 10 секунд).

Устанавливаем, подключаем, подаем питание и включаем.

Софт
Первым делом - установите на жесткий диск операционную систему (кто не знает как это сделать, тут есть инструкция: ссылка)

Теперь программа.
Ссылка на SpiderEye Terminal:
pastebin.com/bTc7tJKv

Сохраняем программу на жесткий под именем terminal.

Настройка программы на владельца производится методом пилы и лома - открываем исходники и смотрим на первые строчки:

--  Parameters  --
owner = "Totoro"
monsterlist = {"Spider", "Zombie", "Creeper", "Skeleton", "Enderman", "Sheep", "Cow", "Chicken"}
howlerside = sides.back
cooldown = 100

--    Colors   --
backcolor = 0x000000
forecolor = 0xFFFFFF
infocolor = 0x0066FF
errorcolor = 0xFF0000
truecolor = 0x00FF00
--     ****     --

Параметр owner - это ник владельца. Поменяйте на свой.
Параметр monsterlist - это список животных, ради которых вы не хотите подрываться и бежать на улицу с мечом в руке. Я внес в него основную живность, которая шатается вокруг моего дома. В зависимости от области своего обитания, добавьте свои названия (гастов, например, или спрутов).
Параметр howlerside - это сторона, на которую по тревоге компьютер начинает давать сигнал редстоуна. Если у вас плата - сторона дается относительно передней стороны компьютера. Если у вас блок-контроллер - сторона дается относительно сторон света. Если у вас нет ничего - забейте.
Параметр cooldown - продолжительность тревоги в десятых секунды (примерно). По дефолту - десять секунд.

Ниже - таблица цветов, которая хранит цветовую гамму программы. Вы можете поменять их на свои по желанию.

Сохраняем и закрываем (Ctrl+S, затем Ctrl+W).
Запускаем программу, набрав в консоли ее название.

Использование
Программа управляется с клавиатуры.
Хоткеи:

H - открывает/закрывает окно справки. В справке - кратко перечислены эти хоткеи.
L - открывает/закрывает лог событий. В логе указаны дата, время и место засеченных движений.
W - открывает/закрывает вайтлист. Вайтлист - список тех, на кого система не реагирует. По дефолту в этом списке только хозяин.
A - добавляет новый сенсор или нового пользователя в вайтлист. Это зависит от того, какой именно список вы открыли.
D - удаляет сенсор из таблицы или пользователя из вайтлиста. Тоже зависит от того, какой список вы смотрите.
R - обновляет таблицу сенсоров. Если вы меняли сенсоры (они при этом сменяют адрес) или просто поудаляли половину сети слежения - обновите таблицу, нажав R. Программа автоматически удалит из таблицы все недействительные адреса. Также обновление происходит при перезапуске программы.
М - включает/выключает обнаружение монстров. Когда включено - в левом-нижнем углу нарисована маленькая буква "M". Если вас достал паук, скребущий лапами по крыше, вы можете включить этот режим, и система начнет реагировать на монстров из списка тоже. По дефолту - отключено.
Q - культурный выход из программы. В отличии от некультурного - например если питание вырубится, или вы нажмете Alt+Ctrl+C, все изменения в списках сохраняются, и вам не придется править их при следующем запуске.
К логам это не относится. Они сохраняются всегда.

Добавление сенсоров
В начале экран терминала пуст. Все срабатывания сенсоров отмечены как Unknown и не записываются в логи.
Вам необходимо добавить в таблицу все сенсоры, и подписать их. Нажмите "A".

Сначала необходимо внести адрес сенсора. Его можно узнать с помощью анализатора - ПКМ на сенсоре. Впишите первые четыре буквы-цифры адреса. Например - "5bec"

Затем программа потребует ввести навание. Обозначьте сенсор так, чтобы было понятно, где он.
Например - "Secret Diamond Storage", или "Neighbor House".

2014-09-12_03.46.42.png

Итог
У вас есть система, способная обнаружить живое существо (теоретически работает и на роботах) на подступах к вашей территории (и внутри нее). При обнаружении существа не внесенного в вайт лист или список монстров - подается сигнал редстоуна, на экран выводится мессейдж и делается запись в файл с логами на диске.
Файлы логов расположены в той же папке, что и сама программа SpiderEye, в подкаталоге logs. Каждое событие хранится в файле помеченым датой, когда оно произошло. Например: "05_17_85.log".

P.S. Это бета-версия программы. При обнаружении глюков, багов или шпионских закладок - сразу сообщайте мне! Спасибо за внимание.

Изменено пользователем Totoro
  • Like 5

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


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

Смотрю и не нарадуюсь на качество исполнения программы и оформления работы. Очень понравилось. Молодец!

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


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

Необходимо сделать возможность добавления нескольких жильцов в доме.

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


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

Всех, кому разрешен доступ, просто надо добавить в вайт лист. Кнопка W чтобы окрыть его, и кнопка A чтобы добавить нового игрока в список.

Система игнорирует тех, кто обозначен в этом списке.

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


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

ЗБС слушай!!! А если поставить серверную стойку на 4серва*4проц*16компонентов получится огромная територия для защиты! А вместо подачи реда можно посылать сигнал на главный комп! Прям база...

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


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

ЗБС слушай!!! А если поставить серверную стойку на 4серва*4проц*16компонентов получится огромная територия для защиты! А вместо подачи реда можно посылать сигнал на главный комп! Прям база...

Ред убирать не буду - удобно чтобы локально включить сирену, или красные лампы зажечь.

Добавлю отправку тревожного пакета broadcast'ом по заданному порту.

К слову, обдумывал еще такую мысль - удаленное подключение датчиков движения к SpiderEye. Например через связную плату, или через существующую глобальную сеть. Например - качаешь лаву в аду. Привата нет, как отследить возможного вандала? Можно часть лавы отвести на двиг, поставить компьютер и датчик. Пусть посылает данные. Если ограбят - знаешь кто.

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


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

Самое прикольное это роботы - охранники!

Например если какимто образом передавать данные с OpenCCSensors (или че там стоит) на робота и активировать его при проникновении неприятеля можно нападения мобов по крайней мере предотвращать...

 

А если их целая бригада будет то ваще клас и с луками на перевес :)

 

Но это уже фантазия...

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


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

Но это уже фантазия...

Датчики передают относительные координаты движения.

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

Проблема я думаю в маленькой скорости и маневренности роботов. Если их много, они могут организовать что-то вроде "сетки огня", на опережение. Это уже не тривиальный алгоритм :), но интересный.

Кроме того сигнал датчика дискретен. Передает движения не постоянно а фрагментами, насколько я понял, пока писал систему. Есть шанс упустить жертву.

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


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

Опытным путем выяснил - радиус действия около 8 блоков (в области прямой видимости).

В конфигах вроде нет этого параметра.

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


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

Мне нравиться. Построить огромную лабораторию, с такой системой и роботами охраны из комментариев выше - будет здорово!

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


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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×