Почему когда действие анимация в коде прописано примерно так:
call TriggerSleepAction(0.4)
call SetUnitAnimation(caster,"Spell Slam")
call TriggerSleepAction(0.4)
call SetUnitAnimation(caster,"Spell")
Анимации тупо отказываются работать максимум Spell будет воспроизводится в конце, вообще всё запутанно с этими анимациями работает...

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

LastUchiha, а, я понял тебя. По дефолту в канал вшита анимка spell. Даже если поле пустое. Как я понял. Мне пришлось прописать туда stand, и тогда все поменялось на stand, игралась она. Попробуй обозвать анимацию например stand work и прописать туда
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
23
4 недели назад
1
Если нужно проиграть друг за другом, то лучше так
call SetUnitAnimation(caster,"Spell Slam")
call QueueUnitAnimation(caster, "Spell")
0
27
4 недели назад
0
скорее всего у тебя просто происходит обрыв потока после вейтов, иных причин для не срабатывания анимаций нет, выводи дебаг
нельзя юзать вейт в переборах групп, в таймере, в булекспрах и подобном, но можно в акшонах и через ExecuteFunc
Ответы (3)
1
19
4 недели назад
1
Кстати, возможно проблема в названии - у юнита в модели нет spell slam, ведь spell работает, как ты написал...
А какая модель юзается?
0
19
4 недели назад
0
EugeAl, ой, не туда адресовал, случайно как ответ коммент получился😳
1
3
4 недели назад
1
EugeAl, нет нет сама анимация есть дело в слип экшнах
0
3
4 недели назад
0
К примеру вот тут не работает "spell four"
call PauseUnit(caster, true)
call SetUnitAnimation(caster, "spell four") эта анимация не проигрывается
call TriggerSleepAction(0.3)
set dummy=CreateUnit(GetOwningPlayer(caster), 'h007', GetUnitX(caster), GetUnitY(caster), GetUnitFacing(caster))
call TriggerSleepAction(0.6)
call GroupEnumUnitsInRange(g, x, y, 600, null)
call SetUnitAnimation(caster, "spell five")
call TriggerSleepAction(0.4)
call SetUnitInvulnerable(caster, false)
call IssueImmediateOrder(caster, "stop")
call PauseUnit(caster, false)
Ответы (8)
0
19
4 недели назад
0
LastUchiha, а если без pause unit? Помнится, я как то себе делал, потом пожалел, все поломалось из за паузы)
0
27
4 недели назад
0
LastUchiha, вроде само название кривое, spell four, five, ten, thousand не работает и нужно юзать SetUnitAnimationByIndex
0
3
4 недели назад
0
rsfghd, не это не из-за названия.
0
3
4 недели назад
0
EugeAl, кстати помню раньше юзнул пауз юнит когда на гуи всё делал у меня из за него фатал давало))))
0
3
4 недели назад
0
EugeAl, Это не из-за паузы, но я понял кажись почему так происходит, вот смотри:
call TriggerSleepAction(1)
call SetUnitAnimation(c,"spell four")
call TriggerSleepAction(0.6)
call SetUnitAnimation(c,"spell five")
Если установить в начале TriggerSleepAction на 1 секунду, то дальше анимки работают нормально, а абилку я делаю из канала...
А когда юзаю абилку у меня проигрывается анимация обычного спелла в начале хоть она и не задана) И как можно убрать её? Что бы заддержку не нужно было ставить пока стандартная анимация пройдет.
0
3
4 недели назад
0
LastUchiha, так же если поставить первую анимацию в самих анимациях спелла, она у меня проигралась до половины и потом сбилась.
0
19
4 недели назад
0
LastUchiha, а, я понял тебя. По дефолту в канал вшита анимка spell. Даже если поле пустое. Как я понял. Мне пришлось прописать туда stand, и тогда все поменялось на stand, игралась она. Попробуй обозвать анимацию например stand work и прописать туда
Принятый ответ
0
27
4 недели назад
0
Если установить в начале TriggerSleepAction на 1 секунду, то дальше анимки работают нормально, а абилку я делаю из канала...
Потому что должна быть нулевая задержка прежде чем устанавливать анимацию. Триггер обрабатывает действия быстрее, чем редактор объектов задаёт анимацию, поэтому твоя снимка и перебивается
0
8
4 недели назад
0
думаю лучше через индекс это делать.
0
3
4 недели назад
0
Ну вообще я с бурана сделал спелл и норм вроде, а так спасибо за помощь буду знать в будущем)
Чтобы оставить комментарий, пожалуйста, войдите на сайт.