Есть много разных защит от магии, есть способность дриад, например, которая даёт магический иммунитет, есть аналогичная способность у предмета, есть амулет, который раз в 40 секунд блокирует негативное заклинание, есть заговор банши, есть неполная защита, которая уменьшает урон от заклинаний и блокирует некоторые заклинания, есть полная неуязвимость. Мне надо выбрать отряд, где нужно отсеять неуязвимых к магии юнитов, как это сделать?
Вроде как-то видел подобный вопрос, но поиск окончился безуспешно.
Вроде как-то видел подобный вопрос, но поиск окончился безуспешно.
Принятый ответ
Джентельмены, очень извиняюсь, рассчитываю, что ваши рекомендации пригодятся мне в будущем, но в данном случае как-то умудрился пропустить, что в условиях boolean comparsion в самом низу начального предложения стоит Неуязвимость к магии. Мне конкретно в данном случае этого достаточно. Ещё раз прошу прощения за потраченное вами время)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Так можно легко считать магрезист (если он 100% - юнит либо маг иммунный, либо в принципе неуязвимый)
local real magicresist = 100
local real life = GetUnitStateSwap(UNIT_STATE_LIFE, u5)
local real maxlife = GetUnitStateSwap(UNIT_STATE_MAX_LIFE, u5)
if (IsUnitAliveBJ(u5) == true) and ( GetUnitStateSwap(UNIT_STATE_LIFE, u5)) != 0 and (u5 != null) then
call SetUnitLifeBJ( u5, maxlife )
call UnitDamageTargetBJ (u5, u5, 100, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC)
set magicresist = magicresist - (maxlife - GetUnitStateSwap(UNIT_STATE_LIFE, u5))
call SetUnitLifeBJ( u5, life )
else
set magicresist = 0
endif
set u5 = null
return magicresist
endfunction
Отредактирован avuremybe
Потом можно будет считывать GetUnitMagicResist(переменная твоего юнита), в гуи, по-моему, через кастом код можно. Лучше возьми вариант ниже, он лучше, хотя суть одинаковая.
Отредактирован avuremybe
Срабатывание других триггеров тоже фиксится изи.
Отредактирован avuremybe
Возвращает тебе реальное число.
Используется примерно в следующем виде:
Вот только зачем?
В ситуации, когда тебе ф-ция возвращает 25% маг резиста в виде 0.250 ты можешь вставлять ее прямо в код:
я это прекрасно понимаю
но это раскуривается уже сложнее в целом
а в моем и улучшенном твоем базовом примере число - сразу % магрезиста, без всяких дополнительных множителей
это понятно даже клиническому идиоту
тем по-своему и шедевр
Отредактирован 8gabriel8