Доброго времени суток, господа!
Столкнулся со следующей проблемой.
Описываю поставленную цель: когда здоровье юнита становится равным определённому показателю, тот должен выполнить определённое действие. Например, Друид-медведь кинет на себя Омоложение, Могильщик закопается, Лучница по возможности уйдёт в тень и так далее. Словом, простой приказ, зависящий от показателя здоровья.
Теперь сама проблема: с jass у меня проблемы, а базовыми триггерами добиться решения задачи я не смог. Всё упирается именно в условие События, а именно unit`s life becomes меньше или равно "указанное число". Как я понял, единственный способ - это указать какую-либо переменную, причём не того юнита, который уже на карте есть.
Следовательно вопрос: как задать определённой переменной, типа U_1 определённый тип юнита, типа того же Могильщика, и чтобы это работало с Событием unit`s life becomes меньше или равно "указанное число"?
P.S. Если подобный вопрос уже поднимался, но я его профукал поиском, прошу дать ссылку, где его уже разобрали.

Принятый ответ

Триггер_1
Событие - юнит входит в область Вся карта.
Условия - Тип triggering unit равно Друид-медведь.
Действия - Добавить событие в триггер_2 - здоровье triggering unit становится меньше или равным x.

Триггер_2
Действия - Отдать приказ triggering unit Омоложение на triggering unit.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
6 лет назад
0
Похожие вопросы:

ответ
Что такое "назначить пользовательский параметр юнита или предмета" и как им пользоваться?
Используется для сохранения каких-нибудь своих данных в этот конкретный предмет или юнита
Добрые люди, как присвоить глобальной переменной (целочисленной) цену определенного предмета (так чтобы если изменить цену в редакторе объектов, то в редакторе триггеров она сама изменялась) или какая главная характеристика определенного героя (разум, сила, ловкость).
Никак, только руками указывать или использовать это xgm.guru/p/fly-data
ответ
AntiMage, айсфрог больше не фаворит, не?
Создай их на карте изначально, потом удали при старте удали, время загрузки карты увеличится, зато не будет просадок фпс при выборе нового героя и так далее. Способности прелоадят с помощью preload, постепенно, как только появился герой которому нужны эти способности, то потихонечку подгружаются эффекты скиллов, создаются даммики которым по очереди с некоторым интервалов вручают по 1 скиллу героя + так же все вспомогательные дамми способности.
ответ
Как-то так:
 Custom script: set udg_Название твоей переменной = null
или
Set variable: Название твоей переменной = Нет боевой единицы
Ну и по обычаю, я должен кинуть тебе статью для самосовершенствования.
ответ
Это статья прямо для твоего случая Локалки
ответ
Свиборг:
Fakov, насчёт фризов... Имеются ввиду фризы во время загрузки карты или же непосредственно в ходе игры? А нюансы, например, какие? Сама по себе система работает, главное, чтоб не фризило-крашило.
от большого кол-ва забитых массивов не должно лагать, т.к по сравнению с реальной нагрузкой - это копейки
Свиборг:
UrsaBoss, я все эти переменные делал на гуи, не на жассе.
и учти, тебе придется сделать отдельный поток для инициализации твоих массивов, это чтобы исключить вероятность того, что завершится поток main из за лимита операций
Вот инструкция если ты не шаришь в jass:
На скриншоте 1, там где
call ExecuteFunc("Trig_MyTrig_Actions")
Это Custom Script, а MyTrig - это название нужного тебе триггера
На скриншоте 2 уже твой триггер с инициализацией массива, главное в событиях ничего не ставь

0
26
6 лет назад
0
нужно отлавливать получение урона
0
28
6 лет назад
Отредактирован PT153
0
Триггер_1
Событие - юнит входит в область Вся карта.
Условия - Тип triggering unit равно Друид-медведь.
Действия - Добавить событие в триггер_2 - здоровье triggering unit становится меньше или равным x.

Триггер_2
Действия - Отдать приказ triggering unit Омоложение на triggering unit.
Принятый ответ
0
4
6 лет назад
0
Hate, это как?
PT153, не совсем понял про Действие в 1-м триггере, можно пояснить подробнее?
2
28
6 лет назад
2
Darfilerfis, в разделе триггеры есть действие "добавить событие к триггеру"
Darfilerfis, событие привязывается не к переменной а конкретному юниту
т.е. чтобы триггер работал на всех юнитов определённого типа необходимо добавить событие для каждого юнита этого типа
0
4
6 лет назад
0
nvc123, не, ну на том же примере Могильщика поясню идею.
Если здоровье Могильщика падает ниже условных 150, то он закапывается, ждёт 15 секунд, после чего выкапывается и продолжает бой. Это идея. Реализаций я кучу перебрал, возможно не все, но пока не удаётся заставить закапываться конкретного Могильщика - почему-то закапываются все или никто.
0
26
6 лет назад
0
Darfilerfis, вот система, о которой тебе говорят:
Загруженные файлы
0
28
6 лет назад
Отредактирован nvc123
0
Darfilerfis, тебе ведь написали триггер который работает
что в нём не так?
Триггер_1
Событие - юнит входит в область Вся карта.
Условия - Тип triggering unit равно Друид-медведь.
Действия - Добавить событие в триггер_2 - здоровье triggering unit становится меньше или равным x.

Триггер_2
Действия - Отдать приказ triggering unit Омоложение на triggering unit.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.