Имеется система отлова и поглощения урона, однако работает не совсем корректно. Например, не блокирует урон от первой атаки по каждому юниту. Была мысль, что урон не блокируется, если боевая единица до получения урона имела полное здоровье, спавнил юнитов раненными, все равно первый удар игнорирует блок.
         if (def.getEndurance() >= damage)
                attacked.setLife(attacked.getLife() + damage)
         else
                attacked.setLife(attacked.getLife() + def.getEndurance())
Видел наработку Melissa, в ней, если юнит имел полное здоровье, перед мгновенным исцелением стоял Wait.
         if (attacked.getLife() + damage >= attacked.getMaxHP())
                TriggerSleepAction(0.00)
         if (def.getEndurance() >= damage)
                 attacked.setLife(attacked.getLife() + damage)
          else
                 attacked.setLife(attacked.getLife() + def.getEndurance())
Не знаю, на что это влияет, но это решает проблему. Единственное, здоровье восстанавливается не мгновенно, и в игре наблюдаются скачки полосы здоровья, что является серьезным минусом.
Еще одна проблема заключается в том, что иногда юнит просто умирает, вероятно, это происходит в тех случаях, когда полученный урон больше максимального запаса здоровья.
Есть какие-нибудь варианты устранения данных неполадок?

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

ответ
Понятно. Но в твоем случае сделать это можно только триггерно.
ответ
самая лучшая, на мой взгляд, связка - это отлов урона + список событий, привязанный к каждому юниту. Так сделано в YouTD, к примеру. Там даже карта есть DevKit (для создания своих башен) с открытым кодом всех систем. Там можно посмотреть, как это сделано. А так - лучше не бежать от jass, как чёрт от ладана, а сразу разобраться в нём. я в своё время разобрался в нём за пару дней, хотя к программированию вообще не имею никакого отношения. А можно делать всё в wurst сразу, а не в vjass. Короче - привычка делать всё на гуи принесёт потом проблемы, если из карты что-то приличное сделать хочется, потому что всё равно придётся всё переделывать. Да и чё такого страшного в джассе? Душу вроде никому продавать не надо за его изучение.
ответ
Безумие с отрицательным показателем делает неуязвимым и заставляет магию хилять тебя
ответ
прирост брони при порче, игровые константы, как то так
ответ
Вам наверное будет проще взять доспехи горного великана, а защиту не трогать.
Помнится где то была похожая тема, там формула в константах, т.е в таблице, основной дополнительный и рассчет защиты. Но как помне проще 0 защиты, тип без защиты, а доспехами великана регулируйте как душе угодно.

4
Я пользуюсь этим:
Это пропиши в триггере, где у тебя блокируется урон.
Переменная damagefinal - это итоговый урон, который юнит получил после блокировки.
Глобальная переменная r - это разница между полученным уроном и итоговым (то есть сколько урона заблокировано было).
Переменная u - это наш юнит, которому нанесли урон.
     if GetUnitStateSwap(UNIT_STATE_LIFE, u) >= GetUnitStateSwap(UNIT_STATE_MAX_LIFE, u) - damagefinal   then
       set udg_r = GetEventDamage()-damagefinal
       call NT()
И пропиши две общих функции.
function AddLife takes nothing returns nothing
    call SetUnitLifeBJ( GetTriggerUnit(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetTriggerUnit()) + udg_r ) )
    call DestroyTrigger(GetTriggeringTrigger())
endfunction

function NT takes nothing returns nothing
local trigger tr
    set tr = CreateTrigger(  )
    call TriggerRegisterUnitLifeEvent( tr, GetTriggerUnit(), LESS_THAN, GetUnitStateSwap(UNIT_STATE_LIFE, GetTriggerUnit())-0.01 )
    call TriggerAddAction( tr, function AddLife )
set tr=null
endfunction
32
Ну для блока урона нужно вручать абилку на 100500 хп, лечить юнита, ну а только потом, с помощью таймера на 0.00 сек. убирать абилку и ставить хп сколько было до всего этого дела.
Могу дать свою карту, там есть и детект физ урона без мемхака и блок урона и снижение урона.
Принятый ответ
7
Поэкспериментировал с абилкой на хп, вроде бы понял принцип. Спасибо.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.