Сейчас 01:51:28 Среда, 1 мая, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Фича? (смена лвла способности пока герой мертв фаталит)
Фича?
God_of_lightДата: Понедельник, 26 Ноября 2012, 14:39:22 | Сообщение # 1
6 уровень
Группа: Проверенные
Сообщений: 206
Награды: 0
Репутация: 185
Блокировки:
Такое дело...
У моего героя есть пассивный скилл - аура, пустышка, эффекты обнулены. Имеет 2 уровня, на 1 лвле аура действует только на героя и висит в статусе (его я отлавливаю триггером и произвожу свои действия). На 2-м лвле аура ни на кого не распространяется. В общем эффект какой - герой стоит, у него в статусе бафф от ауры, ему ударяют, бафф скидывается и тд. и тп., повышаю лвл способности до 2, чтобы неработала. Через 25 секунд я обратно даю ей 1 лвл. Думаю смысл работы ауры-пустышки понятен.

Дак проблема в чем, если герой умирает и триггер изменения уровня способности срабатывает пока он мертв - вылетает фатал. Почему я в этом уверен? спросите вы. Да кучу раз тестил, убирал ауру - все отлично. В общем решил проблему так: когда герой умирает я вообще забираю эту способность, а когда возрождается снова даю и возобновляю таймер, который по необходимости возвращает 1 лвл.

Почему фаталит???


 

Ty3uKДата: Понедельник, 26 Ноября 2012, 14:43:44 | Сообщение # 2
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
операция с героем мертвым видимо и дает фатал. его тип меняется, мб из-за этого

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

NaturekidДата: Понедельник, 26 Ноября 2012, 14:59:26 | Сообщение # 3
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
God_of_light, было такое, ставь проверку мёртв или нет иначе будет фаталить.
Ваш кэп.
Делал типа бладстоуна предмет, реген вшивал в героя, тоже фаталило.


 

God_of_lightДата: Понедельник, 26 Ноября 2012, 15:14:19 | Сообщение # 4
6 уровень
Группа: Проверенные
Сообщений: 206
Награды: 0
Репутация: 185
Блокировки:
Naturekid, просто не пойму почему именно смена уровня скила фаталит...
Ведь можно смело давать опыт герою, статы, здоровье, ману...


Quote (Naturekid)
ставь проверку мёртв или нет иначе будет фаталить.

Ну я говорю - решил вопрос просто убиранием скила. Проверка жив\мертв неудобна мне, пришлось бы её вставлять в трех местах, хотя я так сначала попробовал

Добавлено (26 Ноября 2012, 15:14:19)
---------------------------------------------
Кстати щас вспомнил забавную штуку, когда написал про здоровье.
Если после смерти героя подлечить его триггерно, и потом проверить на условие жив\мертв - окажется что жив)


 

NaturekidДата: Понедельник, 26 Ноября 2012, 15:25:14 | Сообщение # 5
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
Quote (God_of_light)
Если после смерти героя подлечить его триггерно, и потом проверить на условие жив\мертв - окажется что жив)

:D.


 

SirNikolasДата: Понедельник, 26 Ноября 2012, 16:53:21 | Сообщение # 6
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (God_of_light)
Если после смерти героя подлечить его триггерно, и потом проверить на условие жив\мертв - окажется что жив)
Смотря как проверять.

Добавлено (26 Ноября 2012, 16:53:21)
---------------------------------------------

Code
include "cj_types.j";

native bool UnitAlive(unit id);

void Ressurect(unit u) {
    SetWidgetLife(u, 50.);
    //SetUnitState(u, UNIT_STATE_LIFE, 50.);
    // ^ Выдает то же самое.
}

callback onInit() {
    TimerStart(CreateTimer(), 1., false, \
       lambda void() {
          Ressurect(gg_unit_Hblm_0001);
          printf("widget life = %b; unit state = %b; unit type = %b; unit alive = %b", \
             GetWidgetLife(gg_unit_Hblm_0001) > .405, GetUnitState(gg_unit_Hblm_0001, UNIT_STATE_LIFE) > .405, \
             IsUnitType(gg_unit_Hblm_0001, UNIT_TYPE_DEAD) == false, UnitAlive(gg_unit_Hblm_0001));
          DestroyTimer(GetExpiredTimer());
       }
    );
}
widget life = true; unit state = true; unit type = false; unit alive = false


 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Фича? (смена лвла способности пока герой мертв фаталит)
  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz