Герой кастует способность, проигрываются анимки и эффекты, так вот, нужно чтобы пока все это кастовалось, герой не мог атаковать, использование подготовки для спелла не подходит, т.к. юнит не проигрывает анимацию триггерно. Холд тоже, т.к. если юнит подходит, то мой герой начинает атаковать

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

Взять канал и настроить анимацию? Не низя?
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
19
5 лет назад
2
Похожие вопросы:

ответ
awesomesk1ll:
NickIAm:
NickIAm:
Странно.. Не работает с декорацией...
Сделай Triggering unit заместо Attacking unit
Главное чтоб условия соблюдались, тогда всё работает.
По такому же принципу делается запрет атаки по союзникам. Можно сделать проверку на процент хп. Что бы нельзя было бить только если у него 50% хп или меньше, если больше то можно.
С юнитами всё работает. Не надо мудрить с процентами. А вдруг крит?
ответ
Событие: юнит атакован
Дальше, проверять путь что между атакованным и атакующим является проходимым.
если пусть содержит непроходимости:
Приказать атакующему юниту "Отмена"
ответ
меняй acquire range триггерно, и дальность атаки не будет сбрасываться
ответ
второй триггер
на орудийные расчеты работает, вместе с первым
ответ
пеон, других вариантов нет

0
14
5 лет назад
0
Вот сижу уже 30 минут думаю, придумал создавать москита, через которого проигрывать анимацию, а основного героя прозрачным делать триггерно, хз
0
32
5 лет назад
0
Взять канал и настроить анимацию? Не низя?
Принятый ответ
0
14
5 лет назад
Отредактирован LainMikoroso
0
quq_CCCP:
Взять канал и настроить анимацию? Не низя?
Нет, анимка не проигрывается триггерно, во время каста спелла, только через РО
В общем, нашел решение проблемы. Проблема оказалась в модели, однако если использовать последовательность анимаций, то можно кастануть необходимую.
void NWUAnimationsByIndexAct() {
    timer t = GetExpiredTimer()
    int id = GetHandleId(t)
    int tick = LoadInteger(h,id,0) + 1
    unit u = LoadUnitHandle(h,id,8)
    
    SaveInteger(h,id,0,tick)
    SetUnitAnimationByIndex(u,tick)
    
    if tick >= 2 {
        SetUnitAnimationByIndex(u,LoadInteger(h,id,1))
        PauseTimer(t)
    }
    
	u = null
    t = null
}

void NWUAnimationsByIndex(unit u, integer i) {
    timer t = CreateTimer()
    int id = GetHandleId(t)
    
    SaveInteger(h,id,0,-1)
    SaveUnitHandle(h,id,8,u)
    SaveInteger(h,id,1,i)
    TimerStart(t,0.01,true,function NWUAnimationsByIndexAct)
    
    t = null
}
Может пригодиться кому
0
24
5 лет назад
Отредактирован prog
0
А канал пробовали? В смысле, в канале же анимацию задать тоже можно в РО.
4
19
5 лет назад
4
Если нужно запретить атаковать, то можно дать способность Склад.
0
4
5 лет назад
0
Можно дать безмолвие на время или периодически приказывать отставить
0
14
5 лет назад
0
prog:
А канал пробовали? В смысле, в канале же анимацию задать тоже можно в РО.
Там короче проблема появляется, в том, что если я начинаю чарджить, то анимации нет, в РО указывается только анимация, котороая будет проигрываться только после самого каста спелла.
KaneThaumaturge:
Если нужно запретить атаковать, то можно дать способность Склад.
Вот тут по-подробнее~Calabe:
Можно дать безмолвие на время или периодически приказывать отставить
Отставить=проигрывание анимации stand, что будет сбивать мне анимацию
Мне нужно чтобы юнит в любой момент мог использовать способность или атаковать, только при своем желании
KaneThaumaturge:
Если нужно запретить атаковать, то можно дать способность Склад.
Склад вырубает саму атаку, мне нужна только лишь автоатака
0
28
5 лет назад
0
Склад вырубает саму атаку, мне нужна только лишь автоатака
А какая разница? Если отключить только автоатаку, то при подходе к герою, он всё равно будет атаковать.
3
24
5 лет назад
3
Там короче проблема появляется, в том, что если я начинаю чарджить, то анимации нет, в РО указывается только анимация, котороая будет проигрываться только после самого каста спелла.
Что-то странное, потому как я именно на канале делал скилы такого типа, без управления анимацией триггерно, да и в стандартных настройках канал должен работать подобным образом - запускать длительную channel анимацию.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.