В общем есть способность похожая на первый скил Лансера из Доты
Создаются больше одной иллюзии кастера, когда с противником сталкивается снаряд, и перемещаются к противнику
Поиск иллюзий делал через пик юнитов рядом с кастером 2мя вариантами:
  1. первый через фильтр
  2. просто брал всех юнитов и уже там делал условия на пикед юнитах
Ну а теперь самый прикол, когда добавляю проверку на IsUnitIllusion == true, то оно тупо не находит иллюзии
Если ставлю IsUnitIllusion == false, то оно других юнитов считает как не иллюзии (ну это понятно), но и САМИ ИЛЛЮЗИИ ОПРЕДЕЛЯЛ КАК НЕ ИЛЛЮЗИИ!
Сделана способность на джасе
Иллюзии создаются способностью от предмета жезл иллюзий
Ну и прикол номер 2: Есть другая карта с примерно такой же в исполнении способностью, только на триггерах, и ТАМ ВСЁ РАБОТАЕТ!
Вопрос: Какое магическое заклинание надо произнести, чтобы это заработало!? Только прям чтобы наверняка
P.S. Ну и ещё хочется добавить, что у меня нереально бомбит, потому что я 2 часа колбасился с этой проверкой и так ничего не получил, а ещё вдвойне от того, что я узнал, что способности на основе Канал наносят 0.00 урона, что просто прям "подливает дёгтя в мою медовую мапу" =/ (не создавать же для этого отдельный ресурс)

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

Вот это чо за рак мозга? Какие еще локалки в фильтре с ифами? Ну с таким не удивительно что не работает.
Да всё работает, вообще-то
quq_CCCP:
Примерно так слабо?
И в чём смысл делать глобалку, а не просто писать тогда уж сразу GetFilterUnit( )
Я сдеал локалку, чтобы вместо GetFilterUnit( ) писать то, что мне нужно, в данном случае CLONE
quq_CCCP:
Потом клонов от способностей ищут не так,
Да так и я их могу найти
Точнее не совсем так, я их искал через Юнит входит в Область ( Игровая зона )
Но искать их в другом триггере и сдругим событием мне нафиг не нужно.
Мне нужно найти иллюзии сразу в триггере со способностью, чтобы потом не было геморроя
========================
И ещё раз повторюсь, что при повторном использовании способности, 2 прошлые иллюзии (да и вообще в принципе если рядом с гером будут другое любое ко-во иллюзий) перемещаются к противнику. Но две новосозданные остаются на месте.
Так же повторюсь, что когда проверка была IsUnitIllusion == false, то иллюзии определяло как не иллюзии!
Все кто пытались помочь, похоже проигнорировали это замечание...
========================
Мой вывод таков: Иллюзиям, призванным через стандартную Способность (Предмет: Иллюзии) присваивается статус иллюзий слегка позже, чем происходит проверка.
С другой стороны, скорее всего это может и можно как-то обойти, ведь есть карты примеры, где подобное работает нужным образом.
О том, как устроены чёртовы способности близов стоит только догадываться =\
К счастью Способность (Предмет: Иллюзии) не наносит 0.00 урона, и за это близам огромное спасибо (что у меня в очередной раз не бомбануло)
А вообще, проще по-моему сделать свою игру, чем нормальную карту в варкрафте -_-
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
22
6 лет назад
Отредактирован PROSHELDOTU
0
Вот это чо за рак мозга? Какие еще локалки в фильтре с ифами? Ну с таким не удивительно что не работает.
Да всё работает, вообще-то
quq_CCCP:
Примерно так слабо?
И в чём смысл делать глобалку, а не просто писать тогда уж сразу GetFilterUnit( )
Я сдеал локалку, чтобы вместо GetFilterUnit( ) писать то, что мне нужно, в данном случае CLONE
quq_CCCP:
Потом клонов от способностей ищут не так,
Да так и я их могу найти
Точнее не совсем так, я их искал через Юнит входит в Область ( Игровая зона )
Но искать их в другом триггере и сдругим событием мне нафиг не нужно.
Мне нужно найти иллюзии сразу в триггере со способностью, чтобы потом не было геморроя
========================
И ещё раз повторюсь, что при повторном использовании способности, 2 прошлые иллюзии (да и вообще в принципе если рядом с гером будут другое любое ко-во иллюзий) перемещаются к противнику. Но две новосозданные остаются на месте.
Так же повторюсь, что когда проверка была IsUnitIllusion == false, то иллюзии определяло как не иллюзии!
Все кто пытались помочь, похоже проигнорировали это замечание...
========================
Мой вывод таков: Иллюзиям, призванным через стандартную Способность (Предмет: Иллюзии) присваивается статус иллюзий слегка позже, чем происходит проверка.
С другой стороны, скорее всего это может и можно как-то обойти, ведь есть карты примеры, где подобное работает нужным образом.
О том, как устроены чёртовы способности близов стоит только догадываться =\
К счастью Способность (Предмет: Иллюзии) не наносит 0.00 урона, и за это близам огромное спасибо (что у меня в очередной раз не бомбануло)
А вообще, проще по-моему сделать свою игру, чем нормальную карту в варкрафте -_-
Принятый ответ
0
32
6 лет назад
0
Cвот так как я написал, никакого геморроя небудет, почитайте статьи про глобалки и прочее, тогда отпадут все вопросы - зачем?
7
16
6 лет назад
Отредактирован DracoL1ch
7
Все иллюзии попадают на карту уже иллюзиями. В движке в этом плане проблем нет никаких. Для фикса нужно вписывать дебаг и смотреть, кого проверяют и что возвращает.
0
28
5 лет назад
Отредактирован PT153
0
А вообще, проще по-моему сделать свою игру, чем нормальную карту в варкрафте -_-
Стоит отметить, что конструкция if (condition) return true else return false в любом языке крайне бессмысленна, когда можно просто написать return condition. Аналогично и с if (condition == true). С такими знаниями (точнее, с их отсутствием) свою игру сделать будет проблематично. Лично я советую поучить булевую логику, её сдают на ЕГЭ по информатике.

По поводу же самого JASS крайне невыгодно добавлять в группу юнитов, чтобы просто сделать с ними что-то в ForGroup, все необходимые действия можно (а порой и нужно) сразу делать в фильтре, при этом никого в саму группу не добавляя. К тому же, последние замеры говорят, что ForGroup хуже вытаскивания юнитов из группы циклом.

Ну а теперь самый прикол, когда добавляю проверку на IsUnitIllusion == true, то оно тупо не находит иллюзии
Если ставлю IsUnitIllusion == false, то оно других юнитов считает как не иллюзии (ну это понятно), но и САМИ ИЛЛЮЗИИ ОПРЕДЕЛЯЛ КАК НЕ ИЛЛЮЗИИ!
Очень вероятно, что ошибка у Вас. Где дебаг на имя того, кто фильтруется и кто попал в саму группу?
0
21
5 лет назад
0
PT153, теме-то год...
0
28
5 лет назад
0
теме-то год...
Я знаю, просто её недавно кинуло в "Похожие вопросы", зацепила тем, что верный ответ не является таковым. Есть темы и постарше, где такая же ситуация.

Добавлю. Сам как-то столкнулся с тем, что IsUnitIllusion() типа не работает, поставил дебаг на имя, после этого всё разрешилось.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.