Недавно создавал способность по триггеру, она работает так.
Когда юнита атакуют (с шансом 15-25%, в зависимости от уровня прокачки), появляется неуязвимая тень которая контратакует, если же юнит атакующий владельца способности в это время был неуязвим, то тень будет ожидать того момента как противник станет уязвимым (где-то в течении 15 секунд). После с шансом 1/2 выпадает 1 из 2 следующих эффектов.
  1. Восстанавливает хп владельцу способности в размере от нанесённого урона тенью.
  2. Тень дебафает атакующего юнита на 15% замедления скорости атаки и уменьшение урона.
Тень если что создаётся почти полностью индентично копии своего владельца (то есть это отдельный герой/юнит), с отличием в том что у него нет способностей, предметов владельца. А так же ей нельзя управлять.
Не получается вот что - 1.сделать нормально механику вампиризма тени так, чтобы она не уходила в минус (обычно выходит так если атакующий юнит оказался по хп больше атакованного, тот (атакованный) просто мгновенно умирал).
  1. Собсна, реализовать саму механику отложения урона, т.к найти хоть что-то связанное с неуязвимостью в событиях или условиях я не смог.

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

Неуязвимость проверяют через даммика с атакой, через приказ, сможет ли атаковать или нет, просто проверка выполнения приказа. Так же пытаются нанести урон и смотрят сколько он отнял здоровья, так можно и определить неуязвимость и вычислить резист юнита к конкретному типу урона.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
26
5 лет назад
0
Ну вроде же была проверка на инвул, не? так же как и на то что юнит мёртв (через тип).
Ну если нету, то можно триггерно замутить какой-нибудь костыль:
  • либо баффать цель и проверять от этого её неуязвимость
  • либо делать неуязвимость триггерно, и там же маркеровать
2
32
5 лет назад
2
Неуязвимость проверяют через даммика с атакой, через приказ, сможет ли атаковать или нет, просто проверка выполнения приказа. Так же пытаются нанести урон и смотрят сколько он отнял здоровья, так можно и определить неуязвимость и вычислить резист юнита к конкретному типу урона.
Принятый ответ
0
7
5 лет назад
0
Ну, я думаю как-то так?
Загруженные файлы
0
28
5 лет назад
0
Ну, я думаю как-то так?
А зачем условие про отданный приказ?
Далее, каждый раз, когда будет атакован твой героя, тени будет даваться таймер на смерть. Лучше ловить детектом урона, а не детектом атаки.
0
7
5 лет назад
0
PT153:
Ну, я думаю как-то так?
А зачем условие про отданный приказ?
Далее, каждый раз, когда будет атакован твой героя, тени будет даваться таймер на смерть. Лучше ловить детектом урона, а не детектом атаки.
Исправил, просто добавил ещё один триггер который включается, и через секунду добавляет +19 секунд к таймеру и выключается.
0
26
5 лет назад
0
RiderOfBalance, если у тебя юниты используют обычные неуязвимости, типа Божественного щита, Заговора неуязвимости, Зелья неуязвимости и так далее, то там же вешается бафф, то есть надо поставить проверку ИЛИ на все эти баффы. А при триггерной неуязвимости просто отметку ставишь, что юнит неуязвим, например, в группу заносишь, ну и проверяешь наличие юнита в группе. А можно гибридно поступить, если юнит использует способность на неуязвимость, то заносить в группу.
0
28
5 лет назад
Отредактирован PT153
0
Проверку на неуяз можно сделать такую, как и говорил quq_CCCP.
function IsUnitInvulnerable takes unit u return nothing
    local unit d = CreateUnit(GetOwningPlayer(u), DUMMY_CHECKER, GetUnitX(u), GetUnitY(u), 0.)
    local boolean b = IssueTargetOrderById(d, Order_attack, u)
    call RemoveUnit(d)
    set d = null
    return b
endfunction
Чтобы оставить комментарий, пожалуйста, войдите на сайт.