Все доброе утро) Есть такой вопрос - возможно ли отследить, использованная способность принаделжит герою или предмету, который он юзает? Кроме как тупого перечисления способностей конечно.
Задумка такая, что есть предмет, обладание которым дает шанс восстановить часть маны при касте способности. Так вот необходимо, что он делал это только на способности героев, а не предметов.

Есть два события - юнит использует предмет и юнит приводит способность в действие. и событие юнит приводит способность в действие срабатывает раньше чем событие юнит использует предмет.
таймер и флаг
В первом срабатывании триггера (событие юза абилы) ставим flag = true, и запускаем таймер на 0.00 сек. Во втором триггере (если сработало событие юза итема, оно срабатываем сразу же после событие каста) мы должны поставить flag = false. И если по истечению таймера flag изменился, значит сработал итем.
Раз вы не хотите бд делать, то можно было использовать какое-нибудь поле ро для выдачи информации о том, что оно является предметом или способностью. в патче 1.26 только уровень или название абилы GetObjectName или GetAbilityEffect. К сожалению нет больше нативных функции, и мы не может достать информации из абил.
Можно еще использовать равкоды - задаете бд из равкодов. на итемы создал равкоды I000, I001,I002,I003 и так далее. потом сравнивает предел.
if not(id >= I000 and id <= I008) then

endif
Либо в ро название итема в строках пишите "итем". И потом сравниваете название

можно где-нибудь в углу временно создать точно такого же юнита нейтралу только без предметов. и проверить уровень. Если LV = 0 значит такой у юнита нет или не выучил еще. Конечно это не будет работать на выученных навыках героя, тк он их не изучил. Но часто в равкодах геройских абилок есть две заглавные буквы: пример: AOwk - A - ability, O - orc, AHab и пр
`
ОЖИДАНИЕ РЕКЛАМЫ...
27
Есть два события - юнит использует предмет и юнит приводит способность в действие. и событие юнит приводит способность в действие срабатывает раньше чем событие юнит использует предмет.
таймер и флаг
В первом срабатывании триггера (событие юза абилы) ставим flag = true, и запускаем таймер на 0.00 сек. Во втором триггере (если сработало событие юза итема, оно срабатываем сразу же после событие каста) мы должны поставить flag = false. И если по истечению таймера flag изменился, значит сработал итем.
Раз вы не хотите бд делать, то можно было использовать какое-нибудь поле ро для выдачи информации о том, что оно является предметом или способностью. в патче 1.26 только уровень или название абилы GetObjectName или GetAbilityEffect. К сожалению нет больше нативных функции, и мы не может достать информации из абил.
Можно еще использовать равкоды - задаете бд из равкодов. на итемы создал равкоды I000, I001,I002,I003 и так далее. потом сравнивает предел.
if not(id >= I000 and id <= I008) then

endif
Либо в ро название итема в строках пишите "итем". И потом сравниваете название

можно где-нибудь в углу временно создать точно такого же юнита нейтралу только без предметов. и проверить уровень. Если LV = 0 значит такой у юнита нет или не выучил еще. Конечно это не будет работать на выученных навыках героя, тк он их не изучил. Но часто в равкодах геройских абилок есть две заглавные буквы: пример: AOwk - A - ability, O - orc, AHab и пр
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.