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

[OpenSecurity] Охранная система турелей

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

Здравствуйте игроки, вчера на сервер была добавлена всеми любимая модификация OpenSecurity, а это значит настало время писать ПО для турелей, чем я и занялся.

 

Вот что вам понадобится для работы охранной системы:

  • Турель OpenPeripheral 1шт
  • Сенсор OpenPeripheral 1 шт
  • Адаптер OpenComputers 1 шт
  • Провода
  • Комп или сервер совершенно любой комплектации 1 шт

 

Как составить систему:

  • Ставим туррель в нужное место и подключаем проводом
  • Под туррелью ставим сенсор, подключенный через адаптер
  • Всё это проводами подводим к серверу или компу. (по идее даже самый слабый комп подойдёт)
  • Ставим все улучшения в турель (не обязательно)
  • Устанавливаем ПО которое я написал
  • Находим в коде строку "-- относительные координаты пушки от сканера" и выставляем Y равный высоте пушки относительно сенсора [очень важно указать эти настройки, иначе не будет наведение работать](если у вас сканер находится не под пушкой, то можете X и Y тоже подкорректировать)
  • Находим в коде строки Black_List и White_List, вписываем в них ники игроков в ковычках через запятую (не обязательно)

 

Режимы работы:

  • Если Black_List и White_List пусты, то турель стреляет по всем игрокам
  • Если Black_List содержит ники игроков, а White_List нет, то турель стреляет только в игроков из чёрного списка
  • Если White_List содержит ники игроков (не важно содержит ли Black_List), то турель стреляет во всех, кроме игроков из белого списка

 

Установка ПО:

v0.9: pastebin get -f HVtYCinW turret.lua

v0.9.1: pastebin get -f ZzassxEb turret.lua

 

Скрины:

 

 

IvnFNnX.pngmGfsKhc.png

ALvUOqC.png

 

 

 

Преимущества турели:

  • Большой угол обзора
  • Наводится на всё в верхнем полушарии
  • Успешно разряжает броню квантовиков
  • Убивает довольно быстро игроков с не полным квантовым сетом (без брони вообще с первого удара)
  • Дальность стрельбы (в комплекте с точностью моего ПО позволяет убивать афкашников и нубов)

 

Недостатки турели:

  • Угол наведения по высоте ограничен -45 градусами. Ниже стрелять не может
  • Низкая скорость поворота, даже пешком смельчаки могут вплотную к турели подойти, даже с улучшениями турели.
  • Не убивает квантовиков
  • Сносит по 1 сердцу с надетой нано-бронёй
  • Изначально направлена на север, из чего выходит следующий недостаток.
  • Не способна при повороте пройти через южное направление (вместо этого турель делает почти 360 градусов поворот в другую сторону, что занимает значительное время)

 

Преимущества ПО:

  • Идеальное наведение по вертикали и горизонтали
  • Стрельба в верхнюю часть тела, во первых чтобы сложнее было блокировать выстрел блоками, во вторых чтобы повысить шанс попадания при преследовании
  • 3 возможных режима работы
  • Автоматическая защита территории
  • Отключаемая атака по мобам
  • Отключаемая атака по игрокам

 

Недостатки ПО:

  • Замечен баг с функцией radar.getPlayerByName() приводящей к ошибки, возможно буду переделывать под детектор игроков из OpenSecurity
  • Выход из программы осуществляется сочетанием клавиш Ctrl+Alt+C

 

Надеюсь, я получу пробные версии турелей за проделанный труд  :)

С вами был qwertyMAN, удачной игры.

Изменено пользователем qwertyMAN
  • Like 8

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


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

Новая версия v0.9.1 beta unstable

Добавлено:
Атака по мобам (вкл/откл в настройках)
Атаки по игрокам теперь отключаема (вкл/выкл в настройках)
Костыль, чтобы прога не слетала при ошибках сканирования. Так что для выхода из проги отключайте комп. (зато прога не слетает)

Ссылка на версию v0.9.1:

pastebin get -f ZzassxEb turret.lua

Изменено пользователем qwertyMAN

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


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

P.S. Работает и работает. Думаю не скоро буду допиливать эти детские турельки, которых более менее шустрые мобы вроде чашуйниц могут обогнать. Позор. Этими турельками только в статичные цели можно пулять. А зачем мне защита от афкашников и медленных мобов?

Сделай поддержку сразу 20ти турелей, которые равномерно разделяют сектора вокруг себя и на опережение поворачиваются в направлении движения цели.

  • Like 2

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


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

Сделай поддержку сразу 20ти турелей, которые равномерно разделяют сектора вокруг себя и на опережение поворачиваются в направлении движения цели.

Krutoy в своем репертуаре. Сервер еще от крутых черепашек как следует не оправился. А теперь еще и крутые турели будут. Но мои мысли тоже идут к этому. 1) Каждой турели свой сектор; 2) Стрелять на опережение с учетом скорости игрока и заряда; 3) Даже если турель не успела довернуться, но уже успела остыть, может иметь смысл неприцельная стрельба для деморализации противника. Пущай попляшет. Может, на нервах сам под огонь попадет.

  • Like 1

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


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

У кого-нибудь есть объяснение такой математике? Турель делает почти полный оборот при перемещении между этими координатами:

os_energyturret.moveTo(180.000007,0)

os_energyturret.moveTo(180.000008,0)

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


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

У кого-нибудь есть объяснение такой математике? Турель делает почти полный оборот при перемещении между этими координатами:

os_energyturret.moveTo(180.000007,0)

os_energyturret.moveTo(180.000008,0)

 

Все дело в том, что в исходнике этой функции значения аргументов типа double приводятся к типу float.
При этом значение естественно приобретает некоторую погрешность (ведь значение двойной точности было приведено к обычной).
 
Java (на которой написан мод) хранит дробные данные в формате IEEE 754-1985.
Конвертация типов приводит к тому, что в двоичном представлении мантисса подрезается с 52 бит до 23, а экспонента с 11 до 8.
 
Выглядит это так:
Число 180.000007:
0 10000000110 0110100000000000000000001110101011100001100010101101
превращается в:
0    10000110 01101000000000000000000
 
Число 180.000008:
0 10000000110 0110100000000000000000010000110001101111011110100001
->
0    10000110 01101000000000000000001
 
Как видно во втором случае при округлении захватывается одна единичка мантиссы, которая и приводит к кардинально другому результату.
 
Результат:
180.000007 d -> 180.0 f
180.000008 d -> 180.00002 f
 
Т.е. числа становятся по разную сторону от значения 180.
Ну а алгоритм турели в OpenSecurity таков, что не дает ей проходить отметку 180 градусов. Об этов вроде где-то выше qwertyMAN писал.
=)
Изменено пользователем Totoro
  • Like 2

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


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

Как видно во втором случае при округлении захватывается одна единичка мантиссы, которая и приводит к кардинально другому результату.   Результат: 180.000007 d -> 180.0 f 180.000008 d -> 180.00002 f   Т.е. числа становятся по разную сторону от значения 180. Ну а алгоритм турели в OpenSecurity таков, что не дает ей проходить отметку 180 градусов. Об этов вроде где-то выше qwertyMAN писал. =)

Про 180 градусов всё было понятно, сам игрался с турелью. Неожиданным было такое округление. А округление оказалось приведением. Теперь понятен фокус, спасибо.

 

Прав qwertyMAN, дурацкое ограничение на проход через 180 градусов, так еще и реализовано криво.

  • Like 1

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


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

Сделай поддержку сразу 20ти турелей, которые равномерно разделяют сектора вокруг себя и на опережение поворачиваются в направлении движения цели.

Наберусь опыта в различных api которые я сейчас начал активно изучать и сделаю обязательно. Хотя не факт что всех 20-и.

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


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

А что за сканер ? В opensecurity я его что то не нашёл(1.7.10)

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


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

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

 

 


  • Турель OpenPeripheral 1шт
  • Сенсор OpenPeripheral 1 шт
  • Адаптер OpenComputers 1 шт
  • Провода
  • Комп или сервер совершенно любой комплектации 1 шт
  • Like 1

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


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

 

 

Надеюсь, я получу пробные версии турелей за проделанный труд 

Вот наивный :smile3:  

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


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

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

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

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

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

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

Войти

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

Войти сейчас

×