Хотел бы, чтоб вы помогли с триггером, в котором при получении урона юнит получал бы только - 1 хп. Помогите пожалуйста

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
29
5 лет назад
0
На последнем патче вообще всё просто
do
	local DamageTrigger = CreateTrigger()
	for i = 0, bj_MAX_PLAYER_SLOTS - 1 do
		TriggerRegisterPlayerUnitEvent(DamageTrigger, Player(i), EVENT_PLAYER_UNIT_DAMAGING) -- До вычета брони
		--TriggerRegisterPlayerUnitEvent(DamageTrigger, Player(i), EVENT_PLAYER_UNIT_DAMAGED) -- После вычета брони
	end
	TriggerAddAction(DamageTrigger, function()
		local damage = GetEventDamage() -- число урона
		if damage < 1 then return end
		local target = GetTriggerUnit() -- тот кто получил урон
		local caster = GetEventDamageSource() -- тот кто нанёс урон
		
		if GetHandleId(target) == FourCC('Глыба') then
			-- Что-то делаем
		end
	
	end)
end
0
32
5 лет назад
0
NazarPunk, ты знаешь, это на любой версии вара не сложно, но раз автор спрашивает, боюсь что он начинающий гуишник и ему очень не просто понять о чем тут речь. Пре хил по событию урона довольно старое, простое, работоспособное решение.
0
29
5 лет назад
0
Пре хил по событию урона довольно старое, простое, работоспособное решение.
Ну не такое и простое
  • запомнить хп до нанесения урона
  • дать абилку на макс хп
  • вернуть хп обратно
  • перенанести нужный урон
0
10
5 лет назад
0
NazarPunk:
Пре хил по событию урона довольно старое, простое, работоспособное решение.
Ну не такое и простое
  • запомнить хп до нанесения урона
  • дать абилку на макс хп
  • вернуть хп обратно
  • перенанести нужный урон
А скачок хп не будет заметен?
0
28
5 лет назад
0
ArchOracle, если сделать всё верно, то нет.
0
10
5 лет назад
0
PT153:
ArchOracle, если сделать всё верно, то нет.
И как верно? (Можно ссылкой на статью, если есть актуальные и без мемхака, с мемхаком концептуально просто и ясно - напрямую меняешь урон)
0
28
5 лет назад
Отредактирован PT153
0
ArchOracle, какой патч?
На 1.26а нужно владение JASS и знание хештаблиц.
0
26
5 лет назад
0
Что-то сложненькое)
Достаточно же таймера на 0.00 секунд.
0
28
5 лет назад
Отредактирован PT153
0
8gabriel8, а как ты перенесёшь в коллбек таймера юнита и нужный урон? Можно через глобалки, но хешем надёжнее.
1
26
5 лет назад
1
На основе предмета, который прибавляет здоровье (Камень Жизни), делаешь способность на +100500 хп. Когда герой получает урон, сохраняешь текущее значение здоровья, даёшь способность, восстанавливаешь здоровье до 100% и запускаешь таймер на 0.00 секунд. Когда таймер истечёт, запоминаешь разницу в здоровье, забираешь способность и устанавливаешь здоровье на прошлое минус разница.
Но хешем действительно надёжнее в ситуациях, когда есть больше одного героя, у которого отлавливаем урон, потому что может быть ситуация, когда враг атакует, например, атакой по площади, в итоге несколько пострадавших получит способность на прибавление здоровья, но снимется она лишь у одного.
И ещё триггер на отлов урона надо при срабатывании выключать, а при истечении таймера включать. Потому что будут лаги со способностями, которые вешают бафф. Сначала герой получает 0 урона от баффа, а потом урон от способности. Например, кинут в героя Молот Бурь, у него запоминается здоровье, выдаётся прибавка здоровья, восстанавливается до 100% и запускается таймер, но в тот же момент он получает урон от молотка, у него уже полно здоровья, оно перезаписывается в переменную, опять восстанавливается до 100% и таймер перезапускается. По истечении таймера у героя будет полное здоровье минус урон от молотка, если он был при смерти, то его это вылечит.
Кстати, если на карте одновременно нет способностей, которые наносят больше урона, чем максимальное здоровье героя, и нет защитных способностей от них на основе рунных браслетов, то можешь не делать способность +100500 хп, а просто до 100% здоровье восстанавливать.
То есть не самой способности на основе рунных браслетов, а её триггерной имитации.
0
15
5 лет назад
0
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.