Ужасно не нравятся стандартные хп бары, ищу альтернативы.
Есть наработка, довольно хорошая, но баров не видно из-за большой модельки юнита, будь то здание, герой или просто большая моделька юнита.
Также заметил, что в этой наработке тексттаг создается от положения стандартного хп-бара, тоесть от границы модели юнита, но я не понял как это сделано.
Как изменить наработку, чтобы все красиво хорошо отображалось?

Вот поделюсь примером, единственное они у меня ниже 0 слегка, надо мешь поднять наверно будет в mdlvis

менять модель примерно так:
 DestroyEffect(HpBar[i]) 
 HpBar[i] = AddSpecialEffectTarget("HpBar_"+I2S(R2I(GetUnitLifePercent(u)/5))+".mdx","overhead")
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
26
Можно поменять порядок рендера материала для хп бара в его модели, тогда он будет рисоваться всегда поверх юнита.
кстати прогресс бар там нормально масштабируется.
Загруженные файлы
33
могу попробовать выдрать текстаговые хп бары из своего старого проекта
они и перекрашиваются и настраиваются (размер и положение)
20
Как раз не нравятся стандартные из-за их огромного размера. Но, вообще, было бы интересно посмотреть, может я заменю на какие-то другие символы
NazarPunk, и так изменена, но это особого эффекта не дает.
Jack-of-shadow, надо посмотреть как прогрессбар там создан. Но это завтра наверное, спать хочу.
26
кстати прогресс бар там нормально масштабируется.
а нет, он по дефолту выше
А так самый простой вариант это делать на эффектах, как советовал темой ниже и прикреплять на "overhead", тогда всегда на месте будет. Да и легче производительности, так как двигать их не надо будет.
20
Jack-of-shadow, разве для эффектов есть аналоги SetUnitX?
А, можно же прикрепить к юниту
30
разве для эффектов есть аналоги SetUnitX?
В последнем патче даже Z, Yaw, Pitch есть))
26
Вот поделюсь примером, единственное они у меня ниже 0 слегка, надо мешь поднять наверно будет в mdlvis

менять модель примерно так:
 DestroyEffect(HpBar[i]) 
 HpBar[i] = AddSpecialEffectTarget("HpBar_"+I2S(R2I(GetUnitLifePercent(u)/5))+".mdx","overhead")
Загруженные файлы
Принятый ответ
20
Jack-of-shadow, приеду с колледжа и попробую повозиться с этим, спасибо.
Jack-of-shadow, я сделал так:
 nothing Trig_hpbar_Actions ( ){ 
   int i = 1
   int iend = g_unitCounter
   loop{
    exitwhen i > iend
    DestroyEffect( g_hpbar[i] )
    if GetUnitState(g_unitID[i], UNIT_STATE_LIFE)>0.00 {g_hpbar[i] = AddSpecialEffectTarget("war3mapImported\\HpBar_"+I2S(R2I(GetUnitLifePercent(g_unitID[i])/5))+".mdx", g_unitID[i], "overhead")}
    i++
   }
 }

 nothing InitTrig_hpbar ( ){ 
   gg_trg_hpbar = CreateTrigger( )
   TriggerRegisterTimerEvent( gg_trg_hpbar, 0.2, true )
   TriggerAddAction( gg_trg_hpbar, function Trig_hpbar_Actions )
 }
Но, если снизить период, то начинает подлагивать. Или есть более оптимизированный способ реализовать это? Можно создавать таймер для каждого юнита на карте, который будет запускать функцию обновления хп бара, но мне кажется, что это еще хуже способ. Можно было бы привязать к событию получения урона, но а как отследить лечение?
Я наверное сделаю секундный период, на всякий случай.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.