Всем привет,
вопрос: есть ли функция в Jass, которая возвращала бы true, если способность можно использовать, и false, если способность нельзя использовать. Если да, то можно ли разграничить эту невозможность использования, т.е. отслеживать причину невозможности каста (не хватает маны, способность в кулдауне, сам кастер в стане, нет в наличии способности и т.д.)
Если нет, какие мысли по поводу создания такой функции?

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
25
9 лет назад
0
А теперь вопрос: зачем? Для чего это нужно? Но функцию написать можно. Делается по отлову приказа применения способности.
1
7
9 лет назад
Отредактирован Ambruziy
1
Использовать хочу вот в чем: при логике принятия решений ИИ будет выбирать действием с наибольшим весом. Применение тех или иных способностей будет наравне с действием атаки или к примеру хила. Но ИИ должен отслеживать, может ли он кастовать хил, если нет - соответствующий вес будет множиться на ноль для этого момента времени.
Итог, нужно отлавливать эту возможность.
0
28
9 лет назад
0
Ambruziy, приказываем кастануть скил и смотрим на результат
если кастанул то молодец если нет то обнуляем вес
0
7
9 лет назад
0
nvc123, вот тут и основная проблема: во-первых, нельзя менять текущий приказ (но с этим можно справиться в общих чертах), во-вторых, если юнит каст применил, то уже поздно отслеживать возможность, т.е. нужно вычислять именно потенциал, сможет или не сможет допустим через секунду кастануть. И опять же, таким способом не находим причины невозможности каста. С маной вроде бы можно разобраться, где-то на форуме была функция, которая цепляла стоимость каста. А вот с кд я не знаю.
0
17
9 лет назад
Отредактирован naxim
0
А вот с кд я не знаю.
Привязываешь к определённому типу способности срок её кд. Когда способность применяется, это значит, что способность ушла в кд и устанавливаешь таймер на время её кд. Когда таймер истёк, это значит, что с этого момента способность больше не в кд.
Ambruziy:
не хватает маны
Привязываешь к определённому типу способности количество маны, которую она требует для применения. Если требуемое количество маны больше или равно текущему количеству маны самого кастера, значит маны для применения достаточно.
Принятый ответ
0
7
9 лет назад
0
naxim, в общем "база данных в помощь") Да, видимо только так и можно.
0
28
9 лет назад
0
Ambruziy, что за бред ты несёшь
считаем что юнит может применить способность
если ии решил что юнит должен её применить то применяем
если скил не кастанулся то запускаем другую ветку
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.