Хочется при критическом ударе с руки еще и оглушать цель
Сабж - как лучше реализовывается стан без помощи спеллов?

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Этот комментарий удален
0
21
7 лет назад
0
ssbbssc, а твоя система как-то имитирует срабатывание анимации крита у юнита?
0
20
7 лет назад
0
JaBeN_Симфер:
система не моя, это скорее просто маленький плагин или настройка
анимацию не имитирует, так как расчеты урона идут уже после удара
но в теории можно рассчитывать шансы еще до замаха и добавлять тег для анимации
2
30
7 лет назад
Отредактирован Clamp
2
оглушай на здоровье!
library StunStack initializer Init
{
    #define private STACK_LIMIT = 8190
    #define private TICK_PERIOD = 0.05
    #define private STUN_EFFECT = "Abilities\\Spells\\Human\\Thunderclap\\ThunderclapTarget.mdl"

            timer   globalTimer = CreateTimer() // Can be replaced with main map timer

    private unit    unitsStack[]
    private effect  effectsStack[]              // Stun effect storage
    private float    timeRemaining[]             // Time of stun left
    private int     stackCounter = 0


    // Looking for id of specified unit in stack
    private int StackSearch(unit givenUnit) {
        int i = -1
        while(i++ < stackCounter) {
            if (givenUnit == unitsStack[i]) {
                return i
            }
        }
        return -1
    }

    // Add unit to stack with overflow check
    private void StackIncrement(unit givenUnit, float duration) {
        if(stackCounter < STACK_LIMIT) {
            PauseUnit(givenUnit, true)
            unitsStack   [stackCounter] = givenUnit
            effectsStack [stackCounter] = AddSpecialEffectTarget(STUN_EFFECT, givenUnit, "overhead")
            timeRemaining[stackCounter] = duration
            stackCounter++
        } else {
            BJDebugMsg("Stunned units stack overflow!")
        }
    }

    // Remove unit from stack
    private void StackDecrement(unit givenUnit, int id) {
        DestroyEffect(effectsStack[id])
        PauseUnit(givenUnit, false)
        stackCounter--
        unitsStack   [id] = unitsStack   [stackCounter]
        effectsStack [id] = effectsStack [stackCounter]
        timeRemaining[id] = timeRemaining[stackCounter]
        unitsStack   [stackCounter] = null
        effectsStack [stackCounter] = null
        timeRemaining[stackCounter] = 0.0
    }

    void StunUnit(unit givenUnit, float duration) {
        int stackedUnitId = StackSearch(givenUnit)
        if (stackedUnitId == -1) {
            StackIncrement(givenUnit, duration)
        } elseif (timeRemaining[stackedUnitId] < duration) {
            timeRemaining[stackedUnitId] = duration
        }
    }

    private void TimerCallback() {
        int i = -1
        while(i++ < stackCounter) {

            timeRemaining[i] -= TICK_PERIOD

            if (timeRemaining[i] <= 0.0) {
                StackDecrement(unitsStack[i], i)
            }
        }
    }

    private void Init() {
        TimerStart(globalTimer, TICK_PERIOD, true, function TimerCallback)
    }
}
0
29
7 лет назад
0
PauseUnit(givenUnit, true)
xd
0
20
7 лет назад
0
всем спасибо, способ quq_CCCP работает
0
32
7 лет назад
0
Clamp, вот серьезно? Что за фигня? Пауза скрывает панель приказов, пауза останавливает внутренний таймер баффов юнита - пауза как стан очень хреновая идея.
2
30
7 лет назад
2
quq_CCCP, если ищется способ не использовать способности для реализации оглушения, то, по моему убеждению, целью является отказ от дефолтных способностей в принципе => это не имеет значения.
0
32
7 лет назад
0
Clamp:
quq_CCCP, если ищется способ не использовать способности для реализации оглушения, то, по моему убеждению, целью является отказ от дефолтных способностей в принципе => это не имеет значения.
Ценой бесконечных багов? Пауза придумана близзардами для кинематиков и имеет тучу побочных эффектов, темболее когда есть более безопасная альтернатива - приказы или кастом стан на мемхаке (требуется триггер)
0
30
7 лет назад
0
безопасная альтернатива - приказы
Не помню приказа оглушения \о/
Ценой бесконечных багов?
У меня никаких багов нет, хз в чём ваша проблема.
0
32
7 лет назад
0
Clamp, ну вопервых - событие что юнит отдал любой приказ кроме stop-hold-stan (Да есть приказ стана), тут же приказ stop + пауза на 1 фрейм, юнит стоит и не двигается, не дергается анимация, панель приказов свободна, единственное но можно кастануть мгновенные абилки вроде виндвалка.
Либо стан мемхаком как я уже писал...
Во вторых то что у тебя их нету, не значит что их не у кого нету...
Твой стан будет продлят все другие станы, номально да? когда они не складываются, так же отказатся от всех дефолтных абилок подчас недоступная роскошь для многих картоделов.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.