Перейти к содержимому
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

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


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

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

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

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

pastebin get -f ZzassxEb turret.lua

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

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


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

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

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

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


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

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

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

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


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

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

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

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


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

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

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

 

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

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


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

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

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

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


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

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

 

 


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

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


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

 

 

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

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

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...