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

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

Джентельмены, очень извиняюсь, рассчитываю, что ваши рекомендации пригодятся мне в будущем, но в данном случае как-то умудрился пропустить, что в условиях boolean comparsion в самом низу начального предложения стоит Неуязвимость к магии. Мне конкретно в данном случае этого достаточно. Ещё раз прошу прощения за потраченное вами время)
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
26
7 лет назад
Отредактирован 8gabriel8
0
ClotPh:
8gabriel8, надо переместить эту функцию в нестандартный код карты, просто скопировать и всё.
Потом можно будет считывать GetUnitMagicResist(переменная твоего юнита), в гуи, по-моему, через кастом код можно. Лучше возьми вариант ниже, он лучше, хотя суть одинаковая.
То есть один раз поместишь в кастом код - и можно считать магрезист в процентах у любой цели.
Если он >= 100 (хотя > 100 по идее невозможно), значит, цель маг иммунная или неуязвимая.
Только недостатки:
  • Если макс. хп цели не больше 100 и магрезиста нет, она при попытке сосчитать ее магрезист сразу умрёт (ну я обычно только у героев магрезист считаю, хотя вот скоро планирую у юнитов... подумаю... ну это вкрай фиксится добавкой дефолтной предметной способности на макс. хп в начале и убиранием её в конце, только тогда maxlife нужно уже после ее добавки посчитать);
  • Цель дамажит сама себя, что может вызвать побочные эффекты, втч срабатывания каких-то еще триггеров.
А в остальном все очень удобно.
Так а в условие на ГУИ мне что ставить, просто magicresist < 100? И надо ли создать переменные magicresist, life, maxlife, u?
0
21
7 лет назад
0
8gabriel8, переменные никакие точно не надо, как на гуи задействовать кастомную функцию через кастом скрипт, пусть кто другой распишет, я так не делаю, но, как понимаю - можно
А, не, стоп, вроде понимаю, вот хотя бы так:
Custom script: local real r = GetUnitMagicResist(GetTriggerUnit())
Должно работать.
0
26
7 лет назад
0
ClotPh, теперь стало посложнее) Поконкретнее спрошу:
  • есть точка, куда направлена способность;
  • есть выбор юнитов в радиусе 512 от этой точки;
  • выбранным юнитам поставлено matching condition, что они не неуязвимы к магии.
Я же не укажу в условии custom script, то есть сначала проверить выбранных юнитов этой функцией, у кого magicresist < 100 добавить в отряд, с которым и делать дальнейшие действия? Если да, то так делать:
Custom script: local real r = GetUnitMagicResist(Get!!Picked!!Unit())
if r<100 then add Picked unit to Squad else Do noting
?
0
21
7 лет назад
0
8gabriel8,
попробуй так
Custom script: set udg_real = GetUnitMagicResist(GetTriggerUnit())
и дальше уже с глобалкой работай
UPD: сорри, немного невнимательно
в общем, вытащить значение можешь в глобалку через кастом скрипт, а глобалку юзать в любой уже гуишной функции
как в твоем случае сделать удобнее отлов нужных юнитов, додумывай сам, у меня ща уже нет времени
UPD v2: а попробуй сначала написать триг без этого условия, а потом конвертнуть в джасс и дописать, мб получится, хотя мне уже сложно вспомнить, как там че будет выглядеть.
UPD v3: ты для начала пихни в кастом скрипт и проверь, правильно ли оно у тебя вообще работает и все ли ты так понял, в ситуации попроще, а потом экспериментируй дальше
0
16
7 лет назад
Отредактирован avuremybe
0
ClotPh, без множителей оно в том варианте, что я предлагаю, а не в том, что ты выложил. И выдает оно те же проценты, только их напрямую юзать можно. Я тебе все расписал выше, перечитай.
А что тебе сложнее раскуривается? Десятеричные дроби?
8gabriel8, в той функции, которая возвращает boolexpr в твой MatchingCondition пиши
return (GetUnitMagicResist(GetFilterUnit()) == 100)
0
26
7 лет назад
0
Джентельмены, очень извиняюсь, рассчитываю, что ваши рекомендации пригодятся мне в будущем, но в данном случае как-то умудрился пропустить, что в условиях boolean comparsion в самом низу начального предложения стоит Неуязвимость к магии. Мне конкретно в данном случае этого достаточно. Ещё раз прошу прощения за потраченное вами время)
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.