Имеется такой фрагмент кода:
lvl = GetUnitAbilityLevel(target,'BHad');
        if (lvl>0)
        {
            maxhp = GetUnitState(target,MAXHP);
            hp = GetUnitState(target,HP);
            if (hp<maxhp)
            {
                SetUnitState(target,HP,hp+I2R(lvl+1));
                Text(lvl+1,GetUnitX(target),GetUnitY(target),Heal);
            }
        }
Больше
	local unit target;
    local group gp = new group;
    local int lvl;
    local real hp;
    local real maxhp;
    GroupEnumUnitsInRect(gp,bj_mapInitialPlayableArea,null);
    loop
        target = FirstOfGroup(gp);
        lvl = GetUnitAbilityLevel(target,'BHad');
        if (lvl>0)
        {
            maxhp = GetUnitState(target,MAXHP);
            hp = GetUnitState(target,HP);
            if (hp<maxhp)
            {
                SetUnitState(target,HP,hp+I2R(lvl+1));
                Text(lvl+1,GetUnitX(target),GetUnitY(target),Heal);
            }
        }
        GroupRemoveUnit(gp,target);
    endloop
    gp = null;
    target = null;
Суть в том, чтобы хилить всех юнитов под аурой "Доспехи Веры" на 1 ед. + уровень способности "Доспехи Веры". Вот только хилит всегда на 2 ед., т.е. уровень баффа всегда == 1. В чём же беда?

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

Audes, как раз-таки ты ошибаешься.
Audes:
Это уже интереснее.
при касте проверяешь уровень скилла у кастера и заносишь в переменную[custom value цели] эту цифру. - Для баффов
для аур всё ещё веселее - либо через unit within range либо пиком всех юнитов в раиусе такм-то каждые 0.5 сек проверяешь у кого самый большой лвл способности, пикаешь всех союзных вокруг него и заносишь в переменную[custom value picked unit] эту цифру. Карта повиснет нахер и играть в неё будет невозможно.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
23
9 лет назад
Отредактирован SomeFire
0
GetUnitAbilityLevel разве смотрит на баф, а не на абилку? Хотя в таком случае он и в иф входить не должен...
0
15
9 лет назад
0
SomeFire, ну 0 же не возвращает.
0
24
9 лет назад
0
Уровень баффа напрямую взять нельзя. Уже обсуждалось недавно, делается грузящими костылями.
Audes:
SomeFire, ну 0 же не возвращает
ну дык мб у него способность эта и есть?)
0
15
9 лет назад
Отредактирован Audes
0
Melissa, нет, на всех юнитах работает, а не только на паладине. И если не ошибаюсь, то условие типа "Юнит имеет бафф Х" переводится в "Уровень способности Х > 0", значит всё же можно?
Уже обсуждалось недавно, делается грузящими костылями.
Это уже интереснее.
0
24
9 лет назад
0
Audes, как раз-таки ты ошибаешься.
Audes:
Это уже интереснее.
при касте проверяешь уровень скилла у кастера и заносишь в переменную[custom value цели] эту цифру. - Для баффов
для аур всё ещё веселее - либо через unit within range либо пиком всех юнитов в раиусе такм-то каждые 0.5 сек проверяешь у кого самый большой лвл способности, пикаешь всех союзных вокруг него и заносишь в переменную[custom value picked unit] эту цифру. Карта повиснет нахер и играть в неё будет невозможно.
Принятый ответ
0
25
9 лет назад
0
Каждому уровню свой бафф. Внешне одинаково. Разница только в названии для редактора.
0
24
9 лет назад
0
Nosferoh, опять же текст текст текст. У баффов.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.