Редактор - Пример скрипта - Отступление юнитов с низким уровнем здоровья
В данном примере будет проверяться состояние здоровья нациков.
Если у них будет меньше 70% здоровья, то они будут уползать на вейпоинт.
Для начала - на карту понадобится выставить одного советского бойца с неуязвимостью (в качестве тестового источника урона);
А т.ж. пачку расходных нациков.
На отдалении нужно поставить тот самый вейпоинт (ССЫЛКА УДАЛЕНА):
Нацикам задаём тег (ССЫЛКА УДАЛЕНА) (читай общее управление редактором (ССЫЛКА УДАЛЕНА)).
(Сначала объектам задаётся тег (ССЫЛКА УДАЛЕНА), после этого - в скриптах его можно просто выбрать из перечня доступных (ССЫЛКА УДАЛЕНА)).
Далее я создал триггер (ССЫЛКА УДАЛЕНА):
Триггер, для примера, не будет иметь условий, он просто будет всё время работать по кругу;
Ища и посылая на вейпоинт раненых фрицев.
Пояснение:
Т.к. скриптовые команды могут выбирать только юнитов, чьё здоровье больше или равно указанному коэф-у, то для выбора юнитов без определённого коэф-а здоровья - придётся действовать через вспомогательный тег.
Таким тегом будет test_tag2, который будет назначаться лишь юнитам с определённым уровнем здоровья.
Соответственно, нужно будет обрабатывать юнитов с тегом test_tag, но без тегов test_tag2 и test_tag3 (описание ниже).
Для упрощения селекции эльфов - я использую предварительно настраиваемый фильтр-селектр.
Чтобы пораненные представители высшей расы отступали, и делали это быстро и относительно безопасно для себя - им нужно временно отключать ИИ, менять положение на лежачее, отменять ограничение на высокую скорость передвижения, и собственно - выставлять высокую скорость передвижения.
Чтобы не повторять команду на отступление для уже отступающих нацистов - отступающим нужно задать тег test_tag3.
Это поможет избежать дёрганья болванчиков-нацистов от поступления новых приказов.
К концу триггера - временный тег test_tag2 будет удаляться с его носителей, а временный тег test_tag3 - только с его денацифицированных переносчиков.
А после небольшой паузы - триггер будет перезагружаться и выполняться вновь.
Т.ж. на самом вейпоинте (ССЫЛКА УДАЛЕНА) нужно прописать команду для включения ИИ пришедших на него фрицев;
И команду на удаление у них тега test_tag3.
В блоке команд триггера нужно задать такую последовательность команд:
Команда 1 - Entity_state (ССЫЛКА УДАЛЕНА):
В селекторе выбираемых юнитов нужно настроить следующее:
В графе типа селектора (ССЫЛКА УДАЛЕНА) нужно выбрать расширенный селектор (ССЫЛКА УДАЛЕНА).
В нём нужно создать одну группу.
В блоке выбора нужно создать параметр тега (ССЫЛКА УДАЛЕНА), в котором выбрать тег (ССЫЛКА УДАЛЕНА) test_tag, заранее присвоенный будущим отступленцам.
В блоке включений нужно:
Создать параметр hp (ССЫЛКА УДАЛЕНА) и прописать в нём 0.7;
Создать параметр проп (ССЫЛКА УДАЛЕНА), в котором выбрать Human.
В блоке исключений нужно создать три параметра состояния (ССЫЛКА УДАЛЕНА), где исключить мёртвых, не появившихся на сцене и прикреплённых куда-либо юнитов.
Примените настройку и вернитесь в саму команду.
В графу Tag_add (ССЫЛКА УДАЛЕНА) нужно вписать test_tag2.
Примените настройки команды.
(Назначаем test_tag2 тем, у кого 70+% здоровья).
Команда 2 - Delay (ССЫЛКА УДАЛЕНА):
Эта команда не особо нужна.
Она используется только для показательности применения тега test_tag2.
Чтобы можно было визуально заметить его применение.
Для этого, в графе времени (ССЫЛКА УДАЛЕНА) достаточно указать пол-секунды.
Примените настройки команды.
Команда 3 - Select (ССЫЛКА УДАЛЕНА):
В графе типа селектора (ССЫЛКА УДАЛЕНА) нужно выбрать расширенный селектор (ССЫЛКА УДАЛЕНА).
В нём нужно создать одну группу.
В блоке выбора нужно создать параметр тега (ССЫЛКА УДАЛЕНА), в котором выбрать тег (ССЫЛКА УДАЛЕНА) test_tag.
В блоке включений нужно создать параметр проп (ССЫЛКА УДАЛЕНА), в котором выбрать Human.
В блоке исключений нужно создать два параметра тега (ССЫЛКА УДАЛЕНА), указав в них test_tag2 и test_tag3.
Т.ж. здесь нужно создать три параметра состояния (ССЫЛКА УДАЛЕНА), где исключить мёртвых, не появившихся на сцене и прикреплённых куда-либо юнитов.
Примените настройки команды.
(Это и будут будущие отступающие подранки).
Команда 4 - Actor_state (ССЫЛКА УДАЛЕНА):
В графе типа селектора (ССЫЛКА УДАЛЕНА) нужно выбрать контекстный селектор (ССЫЛКА УДАЛЕНА);
В графе ИИ (ССЫЛКА УДАЛЕНА) нужно выбрать Disable;
В графе скорости (ССЫЛКА УДАЛЕНА) нужно выбрать Fast;
В графе разрешения скорости передвижения (ССЫЛКА УДАЛЕНА) нужно выбрать Fast;
В графе положения (ССЫЛКА УДАЛЕНА) нужно выбрать Crawl.
Примените настройки команды.
(Этой командой одновременно заставляем немцев отступать лёжа и быстро, а т.ж. подчиняться следующей команде).
Команда 5 - Actor_to_waypoint (ССЫЛКА УДАЛЕНА):
В графе типа селектора (ССЫЛКА УДАЛЕНА) нужно выбрать контекстный селектор (ССЫЛКА УДАЛЕНА);
В графе вейпоинта (ССЫЛКА УДАЛЕНА) указываем выставленный вейпоинт (ССЫЛКА УДАЛЕНА).
Примените настройки команды.
(Приказываем отступать на вейпоинт).
Команда 6 - Entity_state (ССЫЛКА УДАЛЕНА):
В графе типа селектора (ССЫЛКА УДАЛЕНА) нужно выбрать контекстный селектор (ССЫЛКА УДАЛЕНА);
В графу Tag_add (ССЫЛКА УДАЛЕНА) нужно вписать test_tag3.
Примените настройки команды.
(Назначаем отступленцам test_tag3)
Команда 7 - Entity_state (ССЫЛКА УДАЛЕНА):
В селекторе выбираемых юнитов нужно настроить следующее:
В графе типа селектора (ССЫЛКА УДАЛЕНА) нужно выбрать расширенный селектор (ССЫЛКА УДАЛЕНА).
В нём нужно создать одну группу.
В блоке выбора нужно:
Создать параметр тега (ССЫЛКА УДАЛЕНА), в котором выбрать тег (ССЫЛКА УДАЛЕНА) test_tag2;
Создать параметр проп (ССЫЛКА УДАЛЕНА), в котором выбрать Human.
Примените настройку и вернитесь в саму команду.
В графу Tag_remove (ССЫЛКА УДАЛЕНА) нужно вписать test_tag2.
Примените настройки команды.
(Удаляем test_tag2 у его владельцев).
Команда 8 - Entity_state (ССЫЛКА УДАЛЕНА):
В селекторе выбираемых юнитов нужно настроить следующее:
В графе типа селектора (ССЫЛКА УДАЛЕНА) нужно выбрать расширенный селектор (ССЫЛКА УДАЛЕНА).
В нём нужно создать одну группу.
В блоке выбора нужно:
Создать параметр тега (ССЫЛКА УДАЛЕНА), в котором выбрать тег (ССЫЛКА УДАЛЕНА) test_tag3;
Создать параметр проп (ССЫЛКА УДАЛЕНА), в котором выбрать Human;
Создать параметр состояния (ССЫЛКА УДАЛЕНА), где исключить дохлых нациков.
Примените настройку и вернитесь в саму команду.
В графу Tag_remove (ССЫЛКА УДАЛЕНА) нужно вписать test_tag3.
Примените настройки команды.
(Удаляем test_tag3 у его денацифицированных переносчиков).
Команда 9 - Delay (ССЫЛКА УДАЛЕНА):
В графе времени (ССЫЛКА УДАЛЕНА) достаточно указать пол-секунды.
Примените настройки команды.
(Команда нужна, чтобы не сильно нагружать скриптовый обработчик движка игры).
Команда 10 - Trigger (ССЫЛКА УДАЛЕНА):
В графе триггера (ССЫЛКА УДАЛЕНА) нужно указать сам наш триггер.
Примените настройки команды.
(Собственно - это и есть перезагрузка триггера)
Теперь нужно настроить блок триггеров на выставленном ранее вейпоинте (ССЫЛКА УДАЛЕНА):
Команда 1 - Entity_state (ССЫЛКА УДАЛЕНА):
В графу Tag_remove (ССЫЛКА УДАЛЕНА) нужно вписать test_tag3.
Примените настройки команды.
(Удаляем test_tag3 у дошедших).
Команда 2 - Actor_state (ССЫЛКА УДАЛЕНА):
В графе ИИ (ССЫЛКА УДАЛЕНА) нужно выбрать Enable.
Примените настройки команды.
(Включаем им обратно ИИ).
Таким образом - получается показательный триггер на отступление раненых пехотинцев.
Видео-демонстрация:
Скачать:
(Нужен MoW2)
Пример 223