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

Чужие юниты и команды

Управлять чужим юнитом нельзя — ни по типу, ни по объекту. Смотреть на него можно сколько угодно

среднийНужно знать: Привязка по типу, Найти юнита
тик 0
Связь с юнитом0
тип
Установить1
=
Связь с юнитом2
тип
Установить3
=
Информация4
=
у
Стоп5
@counter0number
чужойnullnull
свойnullnull
командаnullnull

На карте два кинжала, оба вражеские. ubind @dagger честно ищет — и кладёт в @unit пустоту: перебор идёт по юнитам своей команды, а чужих в этом списке нет вовсе.

То же самое и с привязкой по объекту: даже если вражеский юнит лежит у вас в переменной — например, его нашёл радар, — ubind его не возьмёт.

Запрет касается только управления. Смотреть на врага никто не мешает:

Что Чем
найти ближайшего radar от здания, uradar от своего юнита
перебрать всех fetch по команде, query по области — обе у мирового процессора
прочитать свойства sensor — здоровье, координаты, тип, команда
выстрелить по нему control shootp у турели
навести своего юнита ucontrol targetp — цель указывают своему, а не чужому
radar enemy any any distance duo1 1 враг
sensor здоровье враг @health
sensor команда враг @team

Чужой юнит здесь — обычное значение: его читают, сравнивают, передают. Нельзя только одного — поставить его в @unit и скомандовать.

sensor чей юнит @team отдаёт номер команды, а не её саму: ничья — ноль, ваша обычно единица, вражеская — двойка.

А вот константы @sharded, @crux, @derelict — объекты, и напрямую с номером не сравниваются. Номер спрашивают у самой команды:

sensor чей юнит @team
sensor крукс @crux @id
jump 10 equal чей крукс

Свою команду процессор знает так же — через себя: sensor моя @this @team.

Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.