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

Лучший ответ:
Неуязвимость проверяют через даммика с атакой, через приказ, сможет ли атаковать или нет, просто проверка выполнения приказа. Так же пытаются нанести урон и смотрят сколько он отнял здоровья, так можно и определить неуязвимость и вычислить резист юнита к конкретному типу урона.



Просмотров: 562

Extremator #1 - 1 год назад 0
Ну вроде же была проверка на инвул, не? так же как и на то что юнит мёртв (через тип).
Ну если нету, то можно триггерно замутить какой-нибудь костыль:
  • либо баффать цель и проверять от этого её неуязвимость
  • либо делать неуязвимость триггерно, и там же маркеровать
quq_CCCP #2 - 1 год назад 2   

Неуязвимость проверяют через даммика с атакой, через приказ, сможет ли атаковать или нет, просто проверка выполнения приказа. Так же пытаются нанести урон и смотрят сколько он отнял здоровья, так можно и определить неуязвимость и вычислить резист юнита к конкретному типу урона.
RiderOfBalance #3 - 1 год назад 0
Ну, я думаю как-то так?
Прикрепленные файлы
PT153 #4 - 1 год назад 0
Ну, я думаю как-то так?
А зачем условие про отданный приказ?
Далее, каждый раз, когда будет атакован твой героя, тени будет даваться таймер на смерть. Лучше ловить детектом урона, а не детектом атаки.
RiderOfBalance #5 - 1 год назад 0
PT153:
Ну, я думаю как-то так?
А зачем условие про отданный приказ?
Далее, каждый раз, когда будет атакован твой героя, тени будет даваться таймер на смерть. Лучше ловить детектом урона, а не детектом атаки.
Исправил, просто добавил ещё один триггер который включается, и через секунду добавляет +19 секунд к таймеру и выключается.
8gabriel8 #6 - 1 год назад 0
RiderOfBalance, если у тебя юниты используют обычные неуязвимости, типа Божественного щита, Заговора неуязвимости, Зелья неуязвимости и так далее, то там же вешается бафф, то есть надо поставить проверку ИЛИ на все эти баффы. А при триггерной неуязвимости просто отметку ставишь, что юнит неуязвим, например, в группу заносишь, ну и проверяешь наличие юнита в группе. А можно гибридно поступить, если юнит использует способность на неуязвимость, то заносить в группу.
PT153 #7 - 1 год назад (отредактировано ) 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