может кто подсказать в чем ошибка?
SetUnitState(sum,UNIT_STATE_LIFE,(GetUnitState(sum,UNIT_STATE_LIFE)+((I2R(GetHeroInt(Gul,true))/2)+(100*I2R(GetUnitAbilityLevel(Gul,'A02M'))))))
Так тоже пробовал
SetUnitState(sum,UNIT_STATE_LIFE,GetUnitState(sum,UNIT_STATE_LIFE)+(100*I2R(GetUnitAbilityLevel(Gul,'A02M'))))
На Герое работает, на созданном юните не работает, в чем может быть проблема?

uchihahed597, конечно, максимальное так просто не поменять) UNIT_STATE_MAX_LIFE для получения хп только работает, а увеличение текущего сверх нормы не увеличит максимум
`
ОЖИДАНИЕ РЕКЛАМЫ...
23
Похожие вопросы:

ответ
3 - либо в редакторе объектов в разделе "характеристики" менять стартовое хп и ману, либо на карте открываешь юнита и ставишь ему 100% хп.
2 - триггерами. Событие - юнит умирает, условие - юнит нейтрально-враждебный (какое надо условие - такое и поставишь), действие - создаёшь переменную, даёшь ей рандомное значение, потом создаёшь предмет, в зависимости от числа. Как это делается - читай статьи.
1 - ты имеешь в виду, что он не появляется вместо "случайного моба"?
ответ
EvilPenguin, ну без мемхака никак, так что забиваем...

16
SetUnitState(sum,UNIT_STATE_LIFE,(
Зачем скобка?
Наверное тут должна начинаться GetUnitState(

Сказать честно, хорошо бы записать
(I2R(GetHeroInt(Gul,true))/2)+(100*I2R(GetUnitAbilityLevel(Gul,'A02M')))
в переменную
local real addHp = I2R(GetHeroInt(Gul,true))/2)+(100*I2R(GetUnitAbilityLevel(Gul,'A02M')))
и вывести текстом на экран
Ответы (7)
16
local real hp = GetUnitState(sum,UNIT_STATE_LIFE)
DisplayTextToPlayer(GetLocalPlayer(),0,0, R2S(hp))
local real addHp = I2R(GetHeroInt(Gul,true))/2+100*I2R(GetUnitAbilityLevel(Gul,'A02M'))
DisplayTextToPlayer(GetLocalPlayer(),0,0, R2S(addhp))
SetUnitState(sum, UNIT_STATE_LIFE, hp + addHp)
Работает? Если нет: а sum это точно тот юнит?
1
Ydav, ну да, local unit sum = CreateUnit()
и тут же я ему меняю хп, проверил с героем, работает, уже константы облазил
16
uchihahed597, можно тогда весь код?
1
if GuldanQ <= 5
if GetUnitAbilityLevel(Gul,'A02M') == 1
local unit su = CreateUnit(GetOwningPlayer(Gul),'h013',GetUnitX(toch),GetUnitY(toch),Guld)
SetUnitState(su,UNIT_STATE_LIFE,textF2)
GuldanQ = GuldanQ + 1
DisplayTimedTextToPlayer(GetOwningPlayer(Gul),0.,0.,2.,"|cffffcc00Кол-во призывов: " + I2S(GuldanQ))
DisplayTimedTextToPlayer(GetOwningPlayer(Gul),0.,0.,2.,"|cffffcc00Кол-во хп: + " + I2S(textF2))
endif
endif
крч, фикс хп сделаю, нафиг, столько заморочки, уже стандартных ставил, он им меняет текущее хп, а не максимальное, например, из 1000 он поставит 176/1000, UNIT_STATE_MAX_LIFE, он тогда так и оставляет 1000/1000, хотя значение же меняем, что-то не дает, а что я не понимаю
16
uchihahed597, конечно, максимальное так просто не поменять) UNIT_STATE_MAX_LIFE для получения хп только работает, а увеличение текущего сверх нормы не увеличит максимум
Принятый ответ
28
Чтобы изменить хп юниту, юзай SetWidgetLife, чтобы изменить Макс хп юниту - юзай абилки на увеличение Макс хп
Чтобы оставить комментарий, пожалуйста, войдите на сайт.