28

» WarCraft 3 / Negate Damage library

GetLocalPlayer, это просто исправляется введением функции, которая возвращает максимум хп без учёта этой способности.
function GetUnitMaxHealth takes unit u returns real
    local real life = GetWidgetLife(u)
    local real maxlife
    local boolean removed = UnitRemoveAbility(u, HealthAbility)
    set maxlife = GetUnitState(u, UNIT_STATE_MAX_LIFE)
    if removed then
        call UnitAddAbility(u, HealthAbility)
        call SetWidgetLife(u, life)
    endif
    return maxlife
endfunction
Можно написать иначе, если известно, сколько здоровья абилка даёт.
function GetUnitMaxHealth takes unit u returns real
    return GetUnitState(u, UNIT_STATE_MAX_LIFE) - 1000000 * GetUnitAbilityLevel(u, HealthAbility)
endfunction
Эту функцию можно добавить в саму либу, а можно, чтобы юзер её сам написал. Мне пока никто с такими проблемами не обращался, потому что либу никто не юзает.
Уверен, тут может быть много подводных камней, но для начинающих вполне сойдёт, а там дальше они своё напишут, или пересядут на мемхак/1.29+.

Именно по этому в WispTD я сделал своё здоровье, и просто процентно отражал его в реальном здоровье.
28

» WarCraft 3 / Как настроить такой триггер?

Нужно проверять нанесение урона. Если кто-то получил урон от мины, то она взорвалась.
28

» WarCraft 3 / AI natives

quq_CCCP, я же написал, какие критуют и при каких обстоятельствах.
28

» WarCraft 3 / Negate Damage library

Обновлено, теперь стало ещё круче. Даже на гуи использовать можно. И без UMSWE. Спасибо GetLocalPlayer.
28

» WarCraft 3 / Negate Damage library

GetLocalPlayer, я проверил, вроде всё пашет как надо. Это здорово всё упрощает.

Да что-то мне кажется, что я кому делал ровно так, как и описал GetLocalPlayer, но когда решил выложить, намутил дичи.
28

» WarCraft 3 / Get Unit Armor

Короче, это не пашет на эфериалов, сниму с публикации до фикса.
28

» WarCraft 3 / Negate Damage library

GetLocalPlayer, ну так ему ставится миллион хп + текущее хп во время добавления способности.
28

» WarCraft 3 / Negate Damage library

Обновил проверку того, что юнит жив, заменив на более надёжную.
28

» WarCraft 3 / Negate Damage library

установить его текущее здоровье равное здоровью до удаления способности
Достаточно запустить тестовую карту и убедиться, что так работать не будет.

Кратко говоря - во время выполнения функции у юнита может быть ~миллион хп, после удаления способности это превратится в 100% его нормального здоровья. А до всех манипуляций у юнита было 3 хп. Это хорошо видно в тестовой карте, нужно рабочего вниз увести.
28

» WarCraft 3 / В чём ошибка?

rsfghd, GetTriggerUnit - это стандартная функция, есть у всех. А все остальные - просто аналоги, порой кривые, как GetSpellAbilityUnit(). Зачем они - хз.
28

» WarCraft 3 / В чём ошибка?

Desgul, баг-то и в одиночной проявляет себя.
Fly123, да хватить цитировать комментарии полностью, да ещё и по нескольку раз.
Если хочешь оставить вейт, то в самом начале заноси нужные GetSpell в локалки.
А на самом деле я не совсем понял
Да допустим у тебя 1 триггер на каст. Он с вейтом. После вейта у тебя идёт обращение к цели каста (GetSpellAbilityTarget).
Срабатывает этот триггер (поток 1), начинается вейт. Тут этот триггер опять срабатывает (поток 2) и уже для этого начинается вейт. Для потока 1 вейт заканчивается, а GetSpellAbilityTarget в этом потоке возвращает null. Почему - потому что близзард. Причём это может быть даже без вейта.

Desgul, мой первый комментарий тут относился не в тебе, а к тс-у.
28

» WarCraft 3 / В чём ошибка?

Почему нельзя использовать "Ждать"?
Сработает триггер на каст ещё раз, и все GetSpell... для триггера в паузе обратятся в нули.
28

» WarCraft 3 / В чём ошибка?

юнит триггера принадлежит игрок синий
Юнит триггера это кастер...
28

» WarCraft 3 / В чём ошибка?

Desgul, и что? Это повод ставить ненужное условие? В группе должны быть только герои, а потому условие должно быть Matching Unit is Hero.
28

» WarCraft 3 / Обучение jass

Про хеш это глупость полная. Чел, видимо, у кого это это услышал/увидел и тупа перенял, даже не загуглив, как работают хеш-таблицы.
28

» WarCraft 3 / В чём ошибка?

Во-первых, использовать ждать в триггерах каста строго запрещено.
Во-вторых, условие для группы бред, ты выбираешь всех юнитов, если кастер паладин, и ни одного, если кастер не паладин.
28

» WarCraft 3 / JNGP обманывает меня

Во-первых, хватит цитировать комментарии полностью.
Во-вторых, сделайте тоже самое на пустой карте, скиньте скриншот, как вы там сделали, скиньте саму карту.