В общем суть, мне нужно в триггере любым способом определить держит ли рабочий в руках мешок золота или дерева. Притом нужно определить что именно золото или дерево. На новых патчах варкрафта. Прошу помощи

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

Black Soul, это потому, что по памяти пример указывал и кое-что пропустил в условии, в итоге юнит добавлялся в группу и сразу же удалялся. Есть в JNGP событие unit is hidden, но по факту оно не работает, как мне казалось, потому реально придётся периодически проверять группу, что всё равно понадобится в итоге, чтобы охапку дерева отлавливать но это будет уже не столь точный способ. Проверку на скрытость юнита нужно проводить, когда отдали приказ на рудник и занесли в группу, если отдадим любой другой приказ, то из группы удаляем, следовательно, раз юнит в группе и скрыт, то он точно в руднике и выйдет с мешком. Всего три триггера, у тебя больше, это и имел ввиду под перегруженностью.
Сейчас перечитал, как-то вообще непонятно обосновал. Короче:
- Не работало потому, что ещё условия в примере не хватало. Но даже вместе с нужными условиями юнита с мешком не отловить, если отправить в другое место через shift;
- Сделал вариант, чтобы точно отлавливало юнита с мешком золота;
- Для дерева столь же точно отловить вряд ли получится, но надо попытаться, на что у меня сейчас нет времени.
Скрины триггеров для тех, кому интересно:


Надо ещё будет придумать как быть, когда юнит становится ополченцем или несёт последний мешок из рудника, так как в обоих случаях юнит продолжает числиться с мешком.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
28
5 лет назад
0
quq_CCCP, таскание золота это всё же анимация, а точнее тег анимации. Можно рабочему быз приказов дать мешок золота или бруски дерева.
0
4
5 лет назад
0
Сохранить текущий приказ, попытаться приказать вернуть ресурсы, вернуть приказ. Не получится отловить скорей всего если некуда возвращать и не получится отличить золото от дерева, если не приделывать к костылю еще костыль.
0
1
5 лет назад
0
PT153:
quq_CCCP, таскание золота это всё же анимация, а точнее тег анимации. Можно рабочему быз приказов дать мешок золота или бруски дерева.
Либо ты меня не понял, либо я тебя. Мне нужно не проиграть анимацию на юните, а узнать он несет золото из рудника или древесину. Вообще для моей цели подойдет вариант каким-то образом узнать какая анимация в данный момент на юните, но я без понятия как.
2
28
5 лет назад
2
Вообще для моей цели подойдет вариант каким-то образом узнать какая анимация в данный момент на юните, но я без понятия как.
Стандартными средствами никак.
Мне нужно не проиграть анимацию на юните
Да понятно, я к тому, что без нужных тегов анимации у модели, юнит просто будет ходить.

Вариант есть только отслеживать приказы, как предлагает 8gabriel8/
0
27
5 лет назад
Отредактирован MpW
0
вот здесь ссылка пробовал (щас не помню, помню что у меня как-то отслеживалось добыча через приказ. на другом компьютере сижу, вар на другом компе). там вроде метки (по хэндлу) ставишь и все
когда будешь проверяешь по хэндлу, достаешь boolean
4
30
5 лет назад
4
На хайве говорят, что простого способа не существует.
0
4
5 лет назад
0
Сделал добавление работников, вышедших из рудника, в группу, а также изменение их здоровья. Удаления из группы работников, доставивших ресурсы, у меня сделать не получилось. Если тебе нужны мгновенные действия, то эта система, возможно, подойдет тебе.
А что касается добычи дерева, то пока это отследить невозможно.
Загруженные файлы
0
26
5 лет назад
0
Black Soul, слишком перегруженный способ. Есть приказ resumeharvesting, которым можно отслеживать получение шахтёром мешка. Триггер такой:
Это JNGP на скриншоте, там этот приказ есть в списке.
В условие нужно добавить, что (Ordered unit) в группе пошёл на рудник. Для дерева немного сложнее, там надо сверять ежесекундно текущий приказ юнита и его местоположение, если приказ не на Рудник и местоположение не меняется, значит рубит лес. Только пока нет времени, чтобы подготовить нормально наработку, может быть как-нибудь на досуге смастерю. Там нужно многое учесть, чтобы из-за периодического триггера не могло возникнуть сбоев, когда юнит только замахнулся на дерево, ещё не получил охапку дров под руку, а уже числится древоносом, хотя его в последний момент посадили в астрал.
Загруженные файлы
0
4
5 лет назад
0
8gabriel8, я хотел сделать через приказ, как и ты, но это не подойдет, т.к. игрок может отправить работника на рудник, а потом через Shift отправить его куда-нибудь в другое место. Тогда работник не получит приказ resumeharvesting, а получит другой приказ.
А проверка уровня способности "Вернуть золото и древесину" не работает вовсе, я проверял. У работников этой способности попросту нет.
0
26
5 лет назад
Отредактирован 8gabriel8
0
Не важно, что игрок отправит работника в другое место через Shift, триггер всё равно сработает на приказ вовремя, просто отлавливаешь любой другой приказ и удаляешь работника из группы пошёл на рудник. А способность Вернуть золото и древесину не у работника находится, а у главного здания.
Объясню на примере. Первый триггер:
Событие: A unit Отдал приказ (цель-объект)
Условие: (Приказ равно (щелчок правой кнопкой) ИЛИ Приказ равно (добывать ресурсы); (unit type of (Ordered unit) равно Работник ИЛИ Раб); (unit type of (Target unit of issued order) равно Рудник)
Действие: Add (Ordered unit) to Group MINERS
Второй триггер, как у меня на скрине, только в условие добавить, что (Ordered unit) in group MINERS равно Да, а в действии удаляешь из MINERS и добавляешь в группу шахтёры с мешками. Третий триггер:
Событие: A unit Отдал приказ (цель-объект); A unit Отдал приказ (цель-точка); A unit Отдал приказ (без цели)
Условие: (Ordered unit) in group MINERS равно Да
Действие: Если (Приказ равно (щелчок правой кнопкой) ИЛИ Приказ равно (добывать ресурсы)); (unit type of (Target unit of issued order) равно Рудник), То (пусто), Иначе Remove (Ordered unit) of Group MINERS
0
4
5 лет назад
0
8gabriel8, Сделал, как у тебя на скриншоте.
Проверил отправку работников через Shift в другое место. Работник, как только выходит из рудника, сразу же идет в то место и не получает приказ resumeharvesting. Твой способ не подойдет.
А твоя система с MINERS похожа на мою. Раз моя система перегружена, то и твоя тоже.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.