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

Без ответа.


Просмотров: 658

» Лучшие комментарии


NazarPunk #1 - 3 месяца назад 0
Стандартными средствами никак.
8gabriel8 #2 - 3 месяца назад 0
Разве что заранее отслеживать тип цели приказов harvest у рабочих, если юнит, то золото, если декорация, то дерево.
Bergi_Bear #3 - 3 месяца назад 0
а у нас разве ничего не было типа "GetUnitAnimation" ? Мемхак, 131 ? или я брежу...
Может что-то было связано с анимационным тегом...
8gabriel8 #4 - 3 месяца назад 0
Bergi_Bear, тоже так казалось, но в редактор заглянул и не нашёл.
DCFA #5 - 3 месяца назад 0
Bergi_Bear:
а у нас разве ничего не было типа "GetUnitAnimation" ? Мемхак, 131 ? или я брежу...
Может что-то было связано с анимационным тегом...
С мемхаком еще не работал, но слышал что вроде на новых патчах он не работает
DracoL1ch #6 - 3 месяца назад 1
мемхака на новых патчах нет, крутитесь тем, что дали
PT153 #7 - 3 месяца назад 0
Bergi_Bear, в 1.31 такой функции нет, проверял.
quq_CCCP #8 - 3 месяца назад 0
Таскание золота - это такая абилка, плесать надо от нее, хз можно проверить 6а левела кнопки доставить ресурсы. А так мемхак, читаем из структуры абилки кол-во золота, DracoL1ch, уже это на хайве описывал как сделать самому для любой абилки или Юнита.
PT153 #9 - 3 месяца назад 0
quq_CCCP, таскание золота это всё же анимация, а точнее тег анимации. Можно рабочему быз приказов дать мешок золота или бруски дерева.
zogorlol #10 - 3 месяца назад 0
Сохранить текущий приказ, попытаться приказать вернуть ресурсы, вернуть приказ. Не получится отловить скорей всего если некуда возвращать и не получится отличить золото от дерева, если не приделывать к костылю еще костыль.
DCFA #11 - 3 месяца назад 0
PT153:
quq_CCCP, таскание золота это всё же анимация, а точнее тег анимации. Можно рабочему быз приказов дать мешок золота или бруски дерева.
Либо ты меня не понял, либо я тебя. Мне нужно не проиграть анимацию на юните, а узнать он несет золото из рудника или древесину. Вообще для моей цели подойдет вариант каким-то образом узнать какая анимация в данный момент на юните, но я без понятия как.
PT153 #12 - 3 месяца назад 2
Вообще для моей цели подойдет вариант каким-то образом узнать какая анимация в данный момент на юните, но я без понятия как.
Стандартными средствами никак.
Мне нужно не проиграть анимацию на юните
Да понятно, я к тому, что без нужных тегов анимации у модели, юнит просто будет ходить.

Вариант есть только отслеживать приказы, как предлагает 8gabriel8/
Steal nerves #13 - 3 месяца назад (отредактировано ) 0
вот здесь ссылка пробовал (щас не помню, помню что у меня как-то отслеживалось добыча через приказ. на другом компьютере сижу, вар на другом компе). там вроде метки (по хэндлу) ставишь и все
когда будешь проверяешь по хэндлу, достаешь boolean
Black Soul #15 - 3 месяца назад 0
Сделал добавление работников, вышедших из рудника, в группу, а также изменение их здоровья. Удаления из группы работников, доставивших ресурсы, у меня сделать не получилось. Если тебе нужны мгновенные действия, то эта система, возможно, подойдет тебе.
А что касается добычи дерева, то пока это отследить невозможно.
прикреплены файлы
8gabriel8 #16 - 3 месяца назад 0
Black Soul, слишком перегруженный способ. Есть приказ resumeharvesting, которым можно отслеживать получение шахтёром мешка. Триггер такой:
Это JNGP на скриншоте, там этот приказ есть в списке.
В условие нужно добавить, что (Ordered unit) в группе пошёл на рудник. Для дерева немного сложнее, там надо сверять ежесекундно текущий приказ юнита и его местоположение, если приказ не на Рудник и местоположение не меняется, значит рубит лес. Только пока нет времени, чтобы подготовить нормально наработку, может быть как-нибудь на досуге смастерю. Там нужно многое учесть, чтобы из-за периодического триггера не могло возникнуть сбоев, когда юнит только замахнулся на дерево, ещё не получил охапку дров под руку, а уже числится древоносом, хотя его в последний момент посадили в астрал.
прикреплены файлы
Black Soul #17 - 3 месяца назад 0
8gabriel8, я хотел сделать через приказ, как и ты, но это не подойдет, т.к. игрок может отправить работника на рудник, а потом через Shift отправить его куда-нибудь в другое место. Тогда работник не получит приказ resumeharvesting, а получит другой приказ.
А проверка уровня способности "Вернуть золото и древесину" не работает вовсе, я проверял. У работников этой способности попросту нет.
8gabriel8 #18 - 3 месяца назад (отредактировано ) 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
Black Soul #19 - 3 месяца назад 0
8gabriel8, Сделал, как у тебя на скриншоте.
Проверил отправку работников через Shift в другое место. Работник, как только выходит из рудника, сразу же идет в то место и не получает приказ resumeharvesting. Твой способ не подойдет.
А твоя система с MINERS похожа на мою. Раз моя система перегружена, то и твоя тоже.
8gabriel8 #20 - 3 месяца назад (отредактировано ) 0
Black Soul, это потому, что по памяти пример указывал и кое-что пропустил в условии, в итоге юнит добавлялся в группу и сразу же удалялся. Есть в JNGP событие unit is hidden, но по факту оно не работает, как мне казалось, потому реально придётся периодически проверять группу, что всё равно понадобится в итоге, чтобы охапку дерева отлавливать но это будет уже не столь точный способ. Проверку на скрытость юнита нужно проводить, когда отдали приказ на рудник и занесли в группу, если отдадим любой другой приказ, то из группы удаляем, следовательно, раз юнит в группе и скрыт, то он точно в руднике и выйдет с мешком. Всего три триггера, у тебя больше, это и имел ввиду под перегруженностью.
Сейчас перечитал, как-то вообще непонятно обосновал. Короче:
- Не работало потому, что ещё условия в примере не хватало. Но даже вместе с нужными условиями юнита с мешком не отловить, если отправить в другое место через shift;
- Сделал вариант, чтобы точно отлавливало юнита с мешком золота;
- Для дерева столь же точно отловить вряд ли получится, но надо попытаться, на что у меня сейчас нет времени.
Скрины триггеров для тех, кому интересно:


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