Как триггерно добавить, к примеру, 10 ед. к общему урону для героя? Было 40 урона у героя, а стало 50 урона. Знаю, как триггером добавлять характеристики(силу, ловкость, разум), а вот урон - незадача...

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

ответ
Локальные переменные нельзя использовать в GUI'шных "if then else", карта просто не запустится
Т.к если GUI'шные "if then else" перевести в jass, то будет функция с действиями триггера, а чуть выше функция с условиями этого же "if then else".
А в этом и прикол локальных переменных, их можно использовать только в пределах функции в которой они были вызваны (созданы).
И лучше начни писать на jass, он легкий, хоть и кажется сложным после GUI
К примеру такие задачи на GUI которые буквально голову ломают - на jass делаются достаточно легко и быстро
дабы избежать конфликтов с многократными использованием
это будет проблематично на GUI
Поэтому лучше не парить голову этим, а почитать эти материалы:

32
Напрямую никак, нет такой нативной функции в JASS, если нужно добавить зеленый урон - вручаем абилки предметов на атаку, есть целые системы которые рассчитывают сколько нужно и каких способностей вручить юниту чтобы добавить ему нужное кол-во урона.
Если урон белый - то с помощью руны, предмет повышение атаки однократное ( или как то так), есть такая способность для руны, там можно указать сколько белой атаки добавить.
Есть еще мемхак, но это вам лучше рассмотреть какнибудь потом.
Принятый ответ
18
Я делал зеленый урон очень просто, степенью двойки
function UnitSetDamage takes unit u, real r returns nothing
    local integer damage = R2I(r+.5)
    
    call UnitRemoveAbility(u, Damage2048)
    call UnitRemoveAbility(u, Damage1024)
    call UnitRemoveAbility(u, Damage512)
    call UnitRemoveAbility(u, Damage256)
    call UnitRemoveAbility(u, Damage128)
    call UnitRemoveAbility(u, Damage64)
    call UnitRemoveAbility(u, Damage32)
    call UnitRemoveAbility(u, Damage16)
    call UnitRemoveAbility(u, Damage8)
    call UnitRemoveAbility(u, Damage4)
    call UnitRemoveAbility(u, Damage2)
    call UnitRemoveAbility(u, Damage1)
    
    if( damage == 0 ) then
        return
    endif
    
    if( damage >= 2048 ) then
        call UnitAddAbility(u, Damage2048)
        set damage = damage - 1024
    endif
    if( damage >= 1024 ) then
        call UnitAddAbility(u, Damage1024)
        set damage = damage - 1024
    endif
    if( damage >= 512 ) then
        call UnitAddAbility(u, Damage512)
        set damage = damage - 512
    endif
    if( damage >= 256 ) then
        call UnitAddAbility(u, Damage256)
        set damage = damage - 256
    endif
    if( damage >= 128 ) then
        call UnitAddAbility(u, Damage128)
        set damage = damage - 128
    endif
    if( damage >= 64 ) then
        call UnitAddAbility(u, Damage64)
        set damage = damage - 64
    endif
    if( damage >= 32 ) then
        call UnitAddAbility(u, Damage32)
        set damage = damage - 32
    endif
    if( damage >= 16 ) then
        call UnitAddAbility(u, Damage16)
        set damage = damage - 16
    endif
    if( damage >= 8 ) then
        call UnitAddAbility(u, Damage8)
        set damage = damage - 8
    endif
    if( damage >= 4 ) then
        call UnitAddAbility(u, Damage4)
        set damage = damage - 4
    endif
    if( damage >= 2 ) then
        call UnitAddAbility(u, Damage2)
        set damage = damage - 2
    endif
    if( damage >= 1 ) then
        call UnitAddAbility(u, Damage1)
    endif
endfunction
В доте такой же механизм, но там циклом добавляется урон
Там где Damage - это обычная абилка от когтей, цифра - урон
18
pro100master, не было времени понимать как там работал цикл, коде выше я написал за минуту давным давно
И чуть неправильно написал)
    if( damage >= 2048 ) then
        call UnitAddAbility(u, Damage2048)
        set damage = damage - 1024
    endif
Надо поменять на
    if( damage >= 2048 ) then
        call UnitAddAbility(u, Damage2048)
        set damage = damage - 2048
    endif
Чтобы оставить комментарий, пожалуйста, войдите на сайт.