Сейчас 17:46:22 Пятница, 22 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Триггерный крит, вампирик и уворот
SmartarosДата: Воскресенье, 25 Ноября 2012, 14:40:30 | Сообщение # 1
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
есть способность - крит, т.е. при получении урона есть шанс нанести еще урон, и значит это два события на получение урона, вопрос в том как сделать, чтобы триггерные вампирик и уворот работали нормально, т.е. реагировали на то, что если крит, то блокировать/регенить и обычный урон и бонусный, я решил сделать через баф, т.е. при крите давать бафф, и при увороте допустим если есть этот баф, то восстанавливать полученный урон плюс фиксированный бонусный, но проблема в том, что бонусный урон он как бы не получил, число то есть, но часть же блокируется броней, поэтому здоровье восстановится больше, чем было получено урона, как это довести до ума?

Добавлено (25 Ноября 2012, 14:40:30)
---------------------------------------------
есть какая - нубудь система вычисления брони?

 

NaturekidДата: Воскресенье, 25 Ноября 2012, 15:03:50 | Сообщение # 2
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
Quote (Smartaros)
есть какая - нубудь система вычисления брони?

Николас где-то писал код, в теме обсуждени пассивки спектры.
Я правда е понял как им пользоваться :D.


 

SirNikolasДата: Воскресенье, 25 Ноября 2012, 17:07:17 | Сообщение # 3
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Вроде бы, вот так. Надеюсь, нигде не напутал.
Code
real GetUnitArmor(unit u) {
    real a = GetWidgetLife(u);
    if IsUnitType(u, UNIT_TYPE_ETHEREAL) == true {
        return -.001;//Юнит в Астрале
    }
    SetWidgetLife(u, a + 50.);
    UnitDamageTarget(u, u, 10., true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, null);
    real b = a - GetWidgetLife(u);
    SetWidgetLife(u, a);
    a = 1. - b * .1;
    if b <= .0 {
        return -.002;//Юнит неуязвим либо почему-то отрегенился
    } elseif b <= 10. {
        return a / (.06 * b * .1);
    }
    a += 1.;
    b = .0;
    whilenot Pow(.94, b) <= a { b += 1.; }
    return -b;
}


 

SmartarosДата: Воскресенье, 25 Ноября 2012, 22:39:36 | Сообщение # 4
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
неточная
 

  • Страница 1 из 1
  • 1
Поиск:

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