Space Engineers

Space Engineers

Not enough ratings
Настройка Swarm
By Xardkort
  • Управление дронами.
  • Пополнение урана/боезапаса.
  • Заказ дронов в Core для автопечати.
  • Умный боевой ИИ.
  • Уклонение от снарядов.
  • Обход препятствий.
  • Поиск врагов по траектории снарядов/при получении урона.
  • Защита от огня по своим.
  • Графический интерфейс.
  • Отправка данных в Core, Swarm и Launcher.
  • Приём данных Core и Swarm.
   
Award
Favorite
Favorited
Unfavorite
Важно
  • Не рекомендуется использовать курсовые ракетные установки, так как при расчёте их упреждения не учитывается ускорение снаряда (убрал эту функцию, так как у меня закончилось место под код. В любом случае, они бесполезны в PVP из-за низкой начальной скорости полёта ракеты)
  • Если вы играете на сервере Torch с concealment и дроны попадут под его действие, контроль над ними будет потерян
  • Не покидайте зону действия сенсора при компиляции/запуске с аргументом
  • Не используйте кокпиты/сиденья во время компиляции
  • Не размещайте что либо в пользовательских данных программируемых блоков
  • Названия групп не чувствительны к регистру и могут быть дополнены префиксами и суффиксами
  • Если в зоне действия сенсора будет находится вражеский игрок интерфейс будет заблокирован
  • Если враг начнет взлом программируемого блока запустится самоуничтожение
Настройка
Если что-то пойдет не так, скрипт сообщит об этом в Echo/на экране PB/в списке ошибок в интерфейсе.
Роя:
  1. Создайте группу с тегом Swarm и любым уникальным id в названии (например: Swarm 1).
  2. Добавьте в неё следующие блоки:
    • программируемый блок
    • LCD панель (интерфейс будет отображаться на экране ПБ, если LCD отсутствует/уничтожена в бою)
  3. Добавьте в группу Core:
    • блоки ДУ/кабины.
    • сенсор
    • коннекторы
    • контейнеры (для боеприпасов/урана)
    Опционально:
    • сварщики (для авторемонта, запускается вместе с командой Goto/Home/Dock, если радиус дрона < 6 и у него повреждён коннектор, 1 сварщик = 1 точка ремонта)
    • резаки (для авторазборки (видео), 1 резак = 1 точка разборки, добавляйте только центральный резак, резаки вокруг него добавятся автоматически)
  4. Вставьте скрипт в программируемый блок, добавленный в группу Swarm, и нажмите "рекомпелировать".
Дрона:
Необходимые блоки:
  • двигатели на всех направлениях движения
  • гироскопы
  • батареи/реакторы
  • турели (для поиска противников и их снарядов (снаряды видят все турели, кроме артиллерийской))
  • камеры (для захвата целей и сканирования пути)
  • блок ДУ/кабина (задает ориентацию дрона, уничтожение этого блока = смерть дрона)
  • коннектор
Опциональные блоки:
  • курсовые орудия (без них дрон будет работать по упрощенному алгоритму, что сильно уменьшит время выполнения скрипта)
  • антенна
  • контейнеры (для боеприпасов)
  • блок защиты/нападения ИИ (для того чтобы увеличить радиус прицеливания турелей до их максимальной дистанции стрельбы)
  • проектор (для авторемонта)
  • боеголовки (для самоуничтожения по команде или при взломе дрона)
Для автопечати: создайте чертёж и загрузите его в принтер, а затем закажите его в Swarm в Setup/Order (направление вверх блока дистанционного управления = направлению взлёта).
Для добавления вручную: добавьте ко всем блокам префикс DN + любое число + имя (например: DN1 Scout (рекомендуется использовать Whip's Block Renamer)) и пристыкуйте дрона к сетке на которой есть скрипт Swarm.
Если вы играете на серверах для уменьшения времени выполнения скрипта рекомендуется использовать как можно меньше гироскопов и двигателей, 1 гироскоп = 1 сетка, 1 двигатель = 1 направление движения (для скрипта неважно количество блоков, он управляет всеми гироскопами как одним, с двигателями тоже самое (каждое направление движения считается как один двигатель), так что задержка времени выполнения происходит не на стороне скрипта).
Аргументы
Аргумент
Описание
w, s, a, d или up, down, left, right
навигация по меню
def
защищать последнюю выбранную сетку в GoTo/Defense списке (по умолчанию сетка со скриптом)
dock
запустить стыковку
gps
найти все gps в аргументе для списка GoTo/Gps
set
задать число дронов (например: set8 или set 8)
tag
задать тег для обмена данными через антенны
Режимы ведения огня
Выбираются автоматически.
Быстрый – для гатлингов/автопушек/ракет.
Только турели – для дронов без курсового оружия, работает по упрощенному алгоритму, сильно снижая нагрузку на скрипт.
Поочерёдная стрельба с задержкой – артиллерия/рейлганы.
Залп – стрелять залпами из артиллерии/рейлганов и пока идёт перезарядка стрелять из гатлингов/автопушек/ракет.
Радиус атаки
Выбирается автоматически.
Радиус атаки может быть уменьшен, если цель активно маневрирует.
Меньший радиус всегда в приоритете (если использовать ракеты и рельсотроны то радиус будет 550 м).
Ракеты, только турели – 500.
Ракеты – 550.
Маленькие автопушки/гатлинги, только турели – 590.
Маленькие автопушки/гатлинги, пушки – 650.
Большие турели гатлинга – 700.
Штурмовые пушки/турели – 1000 или 1150, если есть оружие с большим радиусом атаки.
Маленькие рельсотроны – 1200.
Артиллерийские пушки/турели – 1300.
Большие рельсотроны – 1400,
Распределение по коннекторам
Происходит автоматически.
На скриншоте показано, как распределяется свободное пространство между коннекторами.
При расчёте свободного пространства учитываются только блоки коннекторов.
Вы можете запретить дронам использовать определенные коннекторы. Например, имя вашего дрона отображается в разделе Info как "scout 42", добавьте "scout" в пользовательские данные коннектора, теперь все дроны с именем "scout" будут игнорировать этот коннектор (чувствительно к регистру). Вы можете добавить несколько имен, каждое новое имя должно начинаться с новой строки. Пользовательские данные проверяются скриптом перед отправкой дронов в док, поэтому любые изменения, внесённые после того, как дрон выбрал коннектор, будут проигнорированы.
Интерфейс
Список ошибок
Если что-то не работает или вы видите красный квадрат в левом верхнем углу. Выберите самый верхний элемент интерфейса и быстро дважды нажмите вверх (w или up). Если скрипт обнаружил проблемы, откроется список ошибок/предупреждений.
Info – информация о дронах
< remcon – дрон прекратит выполнять текущую задачу и включит антенну, чтобы вы могли подключится к его блоку ДУ.
remove > – удалить дрона, моментальное удаление, если он пристыкован, если нет, то начнётся процедура стыковки и после её завершения дрон будет удален, если дрон поврежден настолько, что пристыковаться невозможно, и на нём есть боеголовки, то он самоуничтожится.
Assault 10 – название дрона.
Reloading – текущее состояние дрона, Loading - инициализация, Recharging - заряжает батареи/заполняет реакторы, Reloading - перезарядка боеприпасов, Idle - бездействие, Undocking - отстыковка, TakeOff - взлёт, Defence - защита выбранной сетки, Attack - летит к противнику, Dogfight - сражается, Seek - ищет противника, GoDock - летит стыковаться, GoRepair - летит на ремонт, GoGrinder - летит к резакам для разборки, Repairing - ремонтируется, RC - удалённое управление, Wait - ждёт, Removing - удаляется.
No ammo – дополнительная информация, No ammo - нет боеприпасов в Core контейнерах, No uran - нет урана в Core контейнерах, Damaged - дрон получил критические повреждения (уничтожены гироскопы, все двигатели на одном из направлений или уничтожен коннектор, самостоятельная стыковка в таком состоянии невозможна), Low ammo - заканчиваются боеприпасы (если не пристыкован, запустится стыковка с ближайшей сеткой), Low energy - мало заряда/урана (запустится стыковка с ближайшей сеткой), No conveyor - нет конвейера к контейнерам с ресурсами, No volume - нет свободного места в инвентаре дрона, No reactors - все реакторы повреждены/уничтожены, No welder - нет сварщиков, No grinder - нет резаков.
GoTo/Pos – переместиться на позицию
Перемещение на позицию:
Raycast – цели, захваченной лидаром и её преследование, если цели нет, то защищать последнюю сетку, выбранную в разделе Defence.
My grid – центра сетки со скриптом.
Swarm – центра роя.









GoTo/GPS – переместиться на GPS
< select – выбрать.
remove > – удалить.
GoTo/Beam – следовать за лучом
Луч будет направлен вперед (в ориентации блока ДУ/кабины) из центра вашей сетки.
Ride – следовать за лучом.
Length – длина луча.
Update – обновлять луч.











GoTo/Defence – защищать сетку
Дроны будут защищать выбранную в списке сетку и следовать за ней.
GoTo/Home – идти домой
Dock – запустит процесс стыковки, если у вас на сетке не останется свободных коннекторов, оставшиеся дроны пристыкуются к союзным сеткам (поврежденные (Damaged) дроны проигнорируют команду. Если в группе Core есть сварщики, то дроны с поврежденными коннекторами и радиусом < 6 сначала полетят к ним, и в случае успешного ремонта начнут стыковку).
Grinder – если в группе Core есть резаки дроны полетят к ним для саморазборки.





Setup/Count – управление количеством дронов
Change count – быстрый способ увеличить/уменьшить число дронов. При увеличении дроны будут браться из начала списка ниже, если дроны в списке закончатся, будут отменяться команды "Removing" на возврат в док для удаления. При уменьшении сразу удалит пристыкованных дронов (удаляемые будут выделены красным прямоугольником в разделе Info), по прибытию в док удалит: уже летящих в него по необходимости (мало боеприпасов/заряда, после ремонта), полученных с принтера после печати, свободных (не в бою/не ищут цели), всех кто остался (кроме поврежденных и удалённо управляемых (RC)).
Assault 10 – имя дрона в списке, из которого можно выбирать и добавлять дронов.
Setup/Refill – пополнение боеприпасов/урана
Fight time (m) – время непрерывной стрельбы из турелей/курсовых орудий (влияет на кол-во боеприпасов).
Flight time (m) – время непрерывного использования половины двигателей дрона (влияет на кол-во урана/время зарядки).
Refilled – статус пополнения, Loading - дроны ещё инициализируются, Recharging - зарядка/пополнение урана, Reloading - пополнение боеприпасов, Refilled - пополнено.
Uran – список урана/боеприпасов, выберите первый элемент, чтобы увидеть список полностью.
Коэффициенты применяются к боезапасу некоторого оружия, так как оно начинает стрелять по целям раньше из-за большего радиуса стрельбы: штурмовая пушка и маленький рельсотрон = 1.3, артиллерия = 1.5, рельсотрон = 2.
Setup/Broadcast – обмен данными через антенны
Transceiver – приёмопередатчик.
Radius – радиус действия антенны (не ставьте маленькие значения так как антенны ищут друг друга раз в 10 секунд).
Tag – тег (пароль) для безопасного обмена данными.
Receivers – число приёмников получающих ваши данные.
Transmitters – число передатчиков отправляющих данные вам.






Setup/Order – заказы для печати
Всё, что вы закажете в этом разделе, после завершения печати взлетит с принтера и пристыкуется к сетке, на которой расположен Swarm (гравитационный двигатель не поддерживается, нет места под код). Чтобы забрать/сделать заказ, вы должны находиться на одной сетке с Core.
Assault/Fighter и т.д. – список чертежей, доступных для печати в Core.







Setup/General – общие настройки
Min antenna radius – радиус, при выходе за который включаются антенны.
Max antenna radius – радиус, при выходе за который выключаются антенны.
Если Min = Max, то антенны выключатся. Радиусы Min/Max вещания антенн отсчитываются от центра последней сетки, выбранной в Defence (по умолчанию - сетка со скриптом). Полезно, чтобы не потерять отстающих дронов, особенно для серверов с Torch, использующих сокрытие (concealment, оно делает сетку неактивной, если та находится на определённом расстоянии от игроков, часто 5-6 км. Учтите, что восстановить полный контроль над такой сеткой у скрипта не получится).
Flight dist – дистанция, дальше которой дрону запрещено улетать от точки назначения.
Speed limit – ограничение скорости в мире.
Scan grid – сканирование сеток, запустится на всех ПБ, которые соединены с этим ПБ, ищет дронов, удаляет уничтоженные/ищет новые блоки, скрипты Swarm/Core/Launcher. Не добавляет новый функционал (например, если вы добавите резаки на сетку, то Scan grid не добавит команду Grinder, вам нужно рекомпелировать скрипт).