Возможно ли отследить нажатие игроком кнопки "Строительство", которая открывает список зданий, доступных для постройки?

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

Yury13, вроде должно нормально работать в мультиплеере. Но возможны подводные камни.
Вот отредактировал, откомментировал каждую строчку. Красиво и норм. Теперь можно отследить открытие меню или закрытие (сворачивание). Если переделать хэш-таблицу и на хэндл записывать данные.
Есть недостаток с отрядами: когда выделяешь несколько юнитов, и переключаешь на раба. То рабом можно вызвать меню. А затем если взять и кнопкой Tab переключить например на след выделенного в отряде, то система до сих пор будет считать, что меню остается открытой (система: юнит то выделен, все впорядке). Тогда у вас работник будет подсвечиваться радиус, в то же время вы переключены на другого юнита в отряде - что есть не очень хорошо. Я не смог ничего такого найти с переключениями, даже не знаю как это исправить (возможно придется отказаться работать в группе во время стройки). Вроде драколич в мемхаке давно скидывал код на выделенного юнита, могу скинуть? но мемхаком больше не хочу заниматься
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
27
4 года назад
0
для чего вам это нужно?
к сожалению стандартными способами никак не отслеживается на 1.26. приказом отследить никак
но можно попробовать несколько идей на этот счет
0
32
4 года назад
0
Это как и спелбук, имеет скрытый приказ, и не с работают на него стандартные события, только мемхак юзать на 1.26, хз завезли ли на 1.31+ это.
0
27
4 года назад
Отредактирован MpW
0
Простите, есть событие. Не знал. Похоже что можно отследить, пробовал и работает все ок. это на 1.26 патче еще есть.
Это с интерфейсом игрока как-то связано: изучение навыков (такое событие тоже есть Hero Abilities buton click), открытие спелбука. Ссылается наверное на GetTriggerPlayer(), если не ошибаюсь

похоже нельзя отследить GetTriggerPlayer(), проблема та еще. Отследить кто из игроков нажал на кнопку

в гуи написано, что это событие используется только в сингл плеере. просто отследить в мультиплеере кем было совершено нажатие из игроков невозможно. библиотеку функции просмотрел, все на этом закончим.
Загруженные файлы
0
23
4 года назад
0
Steal nerves, ослеживает юнит триггер если что от него и узнаеш чей игрок юнита
0
20
4 года назад
Отредактирован Yury13
0
Steal nerves, это нужно, чтобы подсвечивать радиус, в пределах которого возможно строительство всякий раз, когда на кнопку жмакают. Для красоты и удобства игроков, так что это не обязательная вещь.

Загруженные файлы
1
32
4 года назад
1
Кстати есть интересный баг, если открыть руками меню прокачки способностей и реплейснуть (создать заного другого, выбрав триггерно заново) героя, меню прокачки останется открытым =)
3
27
4 года назад
Отредактирован MpW
3
pro100master, я пробовал дебагом выводить GetTriggerUnit GetTriggerPlayer. И ничего не отображает. Видимо это нельзя сделать

Yury13, можно было бы пустышку сделать. И при нажатии на кнопку, вызвать меню строительства. Это в теории.

теория №1
знаю, что на рефордже завезли нативки, чтобы прятать икону AHbu (хуман). А при активации пустышки, убираем пустышку, и показываем иконку AHbu ( скрытую абилу посредством forcekey не открыть, иконка не отбражается, и, следовательно, горячие клавиши тоже не работают. поэтому надо каким-то способом временно показать.поэтому показываем ), открываем через forcekey на букву B.
Обычно приказами можно открыть (даже скрытое меню пример ), но это сбивает приказы, а forcekey не сбивает. Вторая проблема - надо вернуть все на место, когда меню закрываем. проблема вот в чем: трудно отследить, когда менюшку строительства закрывают. Частичное решение здесь

Можно еще удалить абилу AHbu, и меню пропадает из панели строителя, но потом это не вернуть никак. Не добавляется обратно

Это такое решение, возможно в рефордже есть и получше инструменты

теория 2 -метод ~~quq_CCCP~~ с переключениями
Этот метод не сбивает текущий приказ (если в качестве активируемой кнопки берем не сбивающий приказ - абилу "безумие"). И еще возможно может открывать скрытые менюшки рабочего.
  1. рабочим активируем пустышку
  2. можно создать где-нибудь в углу точно какого-нибудь даймика с возможностью строить (не обязательно одинакового, главное, чтобы у него было меню строить)
  3. выбор переключения кидаем на нашего даймика
  4. заставляем даймика - открыть меню. Можно открыть через forcekey, но че-то тупит. Лучше вызывать меню через приказ.
  5. И тут же выбор переключаем обратно на нашего рабочего ( или на выделенную группу юнитов, если ранее у вас была выделена группа. тогда надо сохранить. Тут и проблема: если кинуть выделение на группу, то переключение может сбиться. У вас может быть отображена панель не раба, а например панель героя. А как нормально сделать переключение я не знаю ). То все происходит как и сказал quq_CCCP

вот карта теории 2 теория 1 не получилась из-за многих проблем. Но вот теория 2 норм работает, решил проблему с выделением группы, когда панель может переключить не на кастера, и еще данный метод не сбивает ордер раба. вам еще надо таймером проверять закрыта ли меню, чтобы закрыть. пример //если будет не понятно, подскажу и доработаю наработку.
Загруженные файлы
0
20
4 года назад
0
Steal nerves, классно, но мне нужно время, чтобы это понять. И еще хотелось бы знать, как такая система поведет себя в мультиплеере? Я уже говорил, что это необязательная опция, поэтому стоит подумать, делать ли ради нее столько усилий!
0
27
4 года назад
Отредактирован MpW
0
Yury13, вроде должно нормально работать в мультиплеере. Но возможны подводные камни.
Вот отредактировал, откомментировал каждую строчку. Красиво и норм. Теперь можно отследить открытие меню или закрытие (сворачивание). Если переделать хэш-таблицу и на хэндл записывать данные.
Есть недостаток с отрядами: когда выделяешь несколько юнитов, и переключаешь на раба. То рабом можно вызвать меню. А затем если взять и кнопкой Tab переключить например на след выделенного в отряде, то система до сих пор будет считать, что меню остается открытой (система: юнит то выделен, все впорядке). Тогда у вас работник будет подсвечиваться радиус, в то же время вы переключены на другого юнита в отряде - что есть не очень хорошо. Я не смог ничего такого найти с переключениями, даже не знаю как это исправить (возможно придется отказаться работать в группе во время стройки). Вроде драколич в мемхаке давно скидывал код на выделенного юнита, могу скинуть? но мемхаком больше не хочу заниматься
Загруженные файлы
Принятый ответ
0
20
4 года назад
0
Steal nerves, спасибо, это оч классная система
Чтобы оставить комментарий, пожалуйста, войдите на сайт.