В общем есть способность похожая на первый скил Лансера из Доты
Создаются больше одной иллюзии кастера, когда с противником сталкивается снаряд, и перемещаются к противнику
Поиск иллюзий делал через пик юнитов рядом с кастером 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
21
6 лет назад
0
С иллюзиями вообще дофига всяких... слово не подберу.
НЕМНОГО ОФФТОП, НО ЯВНО МНОГИМ ПРИГОДИТСЯ: ИЛЛЮЗИИ ГЕРОЕВ НА ПРОВЕРКУ ISUNITHERO ОТВЕЧАЮТ НЕТ.
Как у меня это было: в игре есть герой, который если цель заклинания - вражеский крип, удаляет его из игры и на его месте оставляет торт (типа превращает), а если герой - кидает в него торт и оглушает. Так вот до постановки правильных условий иллюзии вражеских героев "превращались" в торты... а на их месте после удаления иллюзии из игры - sic! - оставались ПРЕДМЕТЫ, БЫВШИЕ У ИЛЛЮЗИИ...
0
7
6 лет назад
Отредактирован bOrissko
0
Это не только из-за иллюзий, я тоже хотел выбрать каждого юнита и сразу отсеять (пытался среди них найти героев) и был такой же результат, как и у автора вопроса. Пришлось делать доп., проверку далее и вот она уже, заработала.
0
32
6 лет назад
0
Код в студию, то что то вы там накосячили, эта нативка работает исправно.
If (IsUnitIllusion( unit ) ) then // и не надо никаких == true, еще != false and == true напишите.

endif
Вот вам пример, все прекрасно работает.
Загруженные файлы
0
22
6 лет назад
Отредактирован PROSHELDOTU
0
Вот вам пример, все прекрасно работает.
У меня есть такой же пример в виде другой моей карты, там тоже не джасс и тоже работает)
ClotPh:
ИЛЛЮЗИИ ГЕРОЕВ НА ПРОВЕРКУ ISUNITHERO ОТВЕЧАЮТ НЕТ
Да вот как раз у меня с этим всё норм, потому что я не проверяю на это
Когда я проверяю:
if IsPlayerAlly( GetOwningPlayer( CLONE ), GetOwningPlayer( CASTer ) ) and GetUnitTypeId( CLONE ) == GetUnitTypeId( CASTer ) then
К противнику перемещаются и иллюзии и герой
Когда добавляю проверку на иллюзии, то их тупо не находит
Писал и так и так и так:
IsUnitIllusion( CLONE )
IsUnitIllusion( CLONE ) == true
IsUnitIllusionBJ( CLONE ) == true
IsUnitIllusion( GetFilterUnit() )
IsUnitIllusion( GetFilterUnit() ) == true
IsUnitIllusionBJ( GetFilterUnit() ) == true Кстати это вариант, который делается через обычные триггеры, но тут он тоже не работает
Потом для прикола проверил
IsUnitIllusion( CLONE ) == false
И тут оно перемещало и героя и иллюзии к противнику
=========================================
Потестив ещё, было замечено, что когда способность применяется первый раз, то иллюзии остаются рядом с кастером
Если применить способность второй раз, то рядом с кастером появляются новые иллюзии, а старые, которые стояли рядом с ним перемещаются к противнику и т.д.
Следует предположение, что как только дамми получает приказ применить способность на основе Предмет:Иллюзии, условие IsUnitIllusion просто не успевает какаим-то образом сделать проверку =/
Почему каким-то? Потому что аналогичная способность в другой моей карте сделанная через триггеры работает всегда
Стоит ещё учесть, что когда проверка была IsUnitIllusion == false, как я сказал ранее, то иллюзии определяло как не иллюзии
Т.е. ещё одно предположение, что когда создаются иллюзии на основе способности Предмет:Иллюзии, иллюзиям присваивается статус иллюзий слегка позже, чем происходит проверка на этот статус иллюзий
Хрен знает что, в общем, хватит пока с меня редактора варкрафта =\
0
27
6 лет назад
0
Следует предположение, что как только дамми получает приказ применить способность на основе Предмет:Иллюзии, условие IsUnitIllusion просто не успевает какаим-то образом сделать проверку =/
Почему каким-то?
Proshel_Doty, ну возможно они еще не созданы при касте, поэтому лови через определенное время таймером (0.00 сек или 0.01 и так далее). Лучше проверять событием - юнит вызывает боевую единицу, засовывать в группу и так далее
0
32
6 лет назад
0
Proshel_Doty, говорю же, код в студию, так же советую ловить иллюзии событием - EventUnitSummon
1
16
6 лет назад
1
Никогда никаких проблем не было
IsUnitType(u,UNIT_TYPE_HERO) возвращет true ТОЛЬКО для героев, это фишка такая
иллюзии-герои включаются в фильтр через IsUnitIdType(GetUnitTypeId(u),UNIT_TYPE_HERO)
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.