Хотел сделать одну способность, которая должна наносить урон когда юнит хилится или восполняет каким-то образом здоровье. Однако понял что для этого понадобится целая система которая будет действовать в ситуации каждой из способностей. Так вот, хотел спросить.
Возможно кто-то что-то подскажет или поможет. Можно ли обойтись без системы, или без перечисления всех способностей которые восстанавливают хп?
Я знаю что скорее всего проще его сделать на JASS, но если такое есть. Хоть и не разбираюсь, но не буду против подсказок в таком формате.
Если кто поможет в заранее спасибо.

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

Ну по большому счёту - Да, заморочка с кастомным хилом и созданием БД.
Тут больше вопрос к тому, а надо ли оно тебе?
Одно дело если это только под один скилл... другое - если это механика для всей игры (карты).
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
19
5 лет назад
2
Похожие вопросы:

ответ
Вам сюда, господин хороший. Там есть ответы, практически, на все ваши вопросы.
ответ
Вот скрины.
Нашел ошибку и исправил.
Ошибка была в триггере на убийство, там мана не правильно давалась =)
ответ
Создай новый триггер
событие- Боевая единица входит в нужную область (A Units enters MYREGION)
условие - Боевая единица - Мой Герой (Unittype или Unit Comparison /+ Player comparison)
действие - Победа (Игра-Victory)
Предварительно создай область MYREGION
ответ
Steal nerves:
PT153:
Вспомнил про один баг. Есть сделать PauseTimer() на периодический таймер, а потом на этой таймер использовать ResumeTimer(), то таймер повторит свой цикл лишь раз, а потом остановится.
сам не пользуюсь ResumeTimer, но щас проверил, действительно не работает что-то. Видимо, это работает только тогда, когда таймер не до конца дошел.
можно обойтись и без ResumeTimer
понимаю, ты хочешь сделать какое-то ограничение после возвращения урона. Спустя 3 секунды возвратка может снова возвращать урон.
Можно было сделать по-другому.
Еще не понимаю, зачем нам нужен периодический таймер.
  1. можем логическую переменную b завести и таймер t
  2. нанес противник урон = проверяем логическую переменную, если истина, запускаем одноразовый таймер, и ставим ложь в логической переменной = false
if b then 
call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.?mdl",u,"origin"))
call UnitDamageTarget(udg_u,u,r*5,false, false, ATTACK_TYPE_CHAOS, DAMAGE_TYPE_UNIVERSAL, WEAPON_TYPE_WHOKNOWS)
call BJDebugMsg("Reflected:"+R2S(r*5))
call TimerStart(udg_t,0.5,false,function t3a)
set b = false
endif
  1. когда таймер запустится
function t3a takes nothing returns nothing
    call PauseTimer(udg_t)
    set b = true
endfunction
думаю все что надо это call ResumeTimer() заменить на call TimerStart()
ответ
Способами редактора никак.

1
26
5 лет назад
1
Ну по большому счёту - Да, заморочка с кастомным хилом и созданием БД.
Тут больше вопрос к тому, а надо ли оно тебе?
Одно дело если это только под один скилл... другое - если это механика для всей игры (карты).
Принятый ответ
1
26
5 лет назад
1
Грубо говоря, можно отслеживать, что юнит Приводит способность в действие, а через 0.00 секунд сверять, изменилось ли здоровье цели способности в большую сторону. Но не очень понятно по вопросу, как будет наноситься урон, ведь лечить можно Благодатью, можно аурой фонтана жизни, можно предметом, который восстанавливает здоровье в течение времени. К тому же способности вроде Целительной волны не отследят все цели способности, а Покой или Исцеляющий газ Алхимика не нацелены на объект.
3
5
5 лет назад
3
С аурами-то проще, там просто запоминаем источник ауры при входе на карту/получении абилки и каждую секунду дамажим все юниты рядом с ним.
Покой тоже по тому же принципу, только там еще отслеживаем, чтобы персонаж его кастовал. Вот насчет волны и исцеляющего газа надо думать, там на ум только лютые костыли приходят. Вроде запоминания потенциальных целей и проверки их хп после каста и, от этого уже отслеживания, куда аоешку/в кого волну пустили.
0
7
5 лет назад
Отредактирован RiderOfBalance
0
Вообщем - как я понял мороки дочерта и больше.
Но всё равно спасибо, хотя бы за это.
0
32
5 лет назад
0
Сравнительно просто на мемхаке, ибо можно отследить и источники регенераций и прочее, но вот сам по себе мемхак сложная наработка на jass и для новичков не подходит, иначе много мороки.
0
20
5 лет назад
0
А просто записать текущий уровень хп в переменную религия не позволяет:)
0
32
5 лет назад
0
ssbbssc, ну а если базовый реген и реген от силы не считается, как тогда?
Чтобы оставить комментарий, пожалуйста, войдите на сайт.