Перейти к содержимому


Фотография

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


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1 Оффлайн   qwertyMAN

qwertyMAN
  • Пользователи
  • Сообщений: 1 427
  • Уровень сигнала: 0,14%
  • В игре: 1 час. 3 мин.
  • ГородCity17

Награды

                             

Отправлено 01 Февраль 2016 - 07:58

Здравствуйте игроки, вчера на сервер была добавлена всеми любимая модификация 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

 

Скрины:

Спойлер

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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


Сообщение отредактировал qwertyMAN: 01 Февраль 2016 - 13:27


#2 Оффлайн   qwertyMAN

qwertyMAN
  • Автор темы
  • Пользователи
  • Сообщений: 1 427
  • Уровень сигнала: 0,14%
  • В игре: 1 час. 3 мин.
  • ГородCity17

Награды

                             

Отправлено 01 Февраль 2016 - 13:23

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

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

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

pastebin get -f ZzassxEb turret.lua


Сообщение отредактировал qwertyMAN: 01 Февраль 2016 - 13:25


#3 Оффлайн   Krutoy

Krutoy
  • Гуру
  • Сообщений: 499
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

              

Отправлено 01 Февраль 2016 - 20:00

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

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


  • eu_tomat и qwertyMAN это нравится

#4 Онлайн   eu_tomat

eu_tomat
  • Хранители Кода
  • Сообщений: 878
  • Уровень сигнала: 6,16%
  • В игре: 46 час. 1 мин.

Награды

                          

Отправлено 01 Февраль 2016 - 20:22

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

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


  • Krutoy это нравится

#5 Онлайн   eu_tomat

eu_tomat
  • Хранители Кода
  • Сообщений: 878
  • Уровень сигнала: 6,16%
  • В игре: 46 час. 1 мин.

Награды

                          

Отправлено 02 Февраль 2016 - 22:25

У кого-нибудь есть объяснение такой математике? Турель делает почти полный оборот при перемещении между этими координатами:
os_energyturret.moveTo(180.000007,0)
os_energyturret.moveTo(180.000008,0)

#6 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 734
  • Уровень сигнала: 0,3%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 02 Февраль 2016 - 23:43

У кого-нибудь есть объяснение такой математике? Турель делает почти полный оборот при перемещении между этими координатами:
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: 02 Февраль 2016 - 23:44

  • eu_tomat и qwertyMAN это нравится

#7 Онлайн   eu_tomat

eu_tomat
  • Хранители Кода
  • Сообщений: 878
  • Уровень сигнала: 6,16%
  • В игре: 46 час. 1 мин.

Награды

                          

Отправлено 02 Февраль 2016 - 23:55

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

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

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

#8 Оффлайн   qwertyMAN

qwertyMAN
  • Автор темы
  • Пользователи
  • Сообщений: 1 427
  • Уровень сигнала: 0,14%
  • В игре: 1 час. 3 мин.
  • ГородCity17

Награды

                             

Отправлено 10 Май 2016 - 01:44

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

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



#9 Оффлайн   ilya50

ilya50
  • Пользователи
  • Сообщений: 1
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 01 Август 2017 - 17:30

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



#10 Оффлайн   Fingercomp

Fingercomp
  • Гуру
  • Сообщений: 1 999
  • Уровень сигнала: 171,24%
  • В игре: 1278 час. 43 мин.

Награды

                                               

Отправлено 01 Август 2017 - 18:19

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

 


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

  • qwertyMAN это нравится

#11 Оффлайн   qwertyMAN

qwertyMAN
  • Автор темы
  • Пользователи
  • Сообщений: 1 427
  • Уровень сигнала: 0,14%
  • В игре: 1 час. 3 мин.
  • ГородCity17

Награды

                             

Отправлено 01 Август 2017 - 19:43

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

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






Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных