В теории это происходит так: юнит произносит заклинание, и время останавливается (на всей карте). Что б замирало всё (ну или хотя бы юниты и здания) кроме самого кастера. Возможно ли такое? Если да, то какие условия/действия надо задавать?

Боевая единица => Pause/Unpause Units
Боевая единица => Pause/Unpause кастера
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
21
8gabriel8, процессы в зданиях понятно. А вдруг кто-то после смерти создает юнита, или какие-то независимые триггеры на спавн юнитов... да дохрена чего может быть, хотя и довольно маловероятно
18
Fly123, насчёт анимации. Я карту для конкурса делал однажды. Там как раз скорость анимации меняется группе юнитов. Глянь, может, пригодится.
Загруженные файлы
26
Fly123, все однотипные действия для групп юнитов делаются через занесение в отряд и выполнение действий с каждым юнитом в отряде. Формулировкой вопроса прямо в тупик поставил, есть карта, где можешь посмотреть, что и как делается.
Конкретизируй, что требуется уточнить?
21
Вообще если не бояться последствий паузы это тупо делается так:
Юнит применяет способность
Условие - применяемая способность равно НАШ ТАЙМСТОП
Действие - каждые 0.5 секунды (православно таймером, но если нет, то можно на гуи так косо, как хочется) - паузить всех, кроме нашего юнита - его офк в переменную, чтобы запомнить
и так, пока спелл не кончится, в его конце всех анпаузить
и муи без всяких извратов и бла-бла-бла
если во время таймстопа одного таки как-то скастуется другой, они подействуют практически независимо, ну разве что на какую-то долю секунды один таймстоп после завершения распаузит всех из второго, но это будет практически незаметно и можно сократить период, чтобы еще меньше оказалась эта распауза, но это уже нерационально имхо
/
распаузы ненужной можно вообще избежать, и даже без сильного снижения производительности, мной бы тогда хэшами на напаузенных сохранялись значения, сколько их раз напаузили при стартовых кастах таймстопов... но это уже замута имхо совсем мало себя оправдывающая
а вообще всем vignette.wikia.nocookie.net/jjba/images/a/af/TheWorld_doom.png/r... =)
26
ClotPh:
А вдруг кто-то после смерти создает юнита, или какие-то независимые триггеры на спавн юнитов... да дохрена чего может быть
Так ведь триггер будешь не в чужой карте делать, учтёшь все триггерные тонкости. Например, сделаешь параллельно второй триггер, который будет во время действия способности ставить на паузу юнитов, которые вошли в игровую область, а также паузить все таймеры, кроме таймера окончания действия способности.
21
8gabriel8, ну я всегда стараюсь сделать максимально уникальный самодостаточный вариант, подходящий для любых случаев и особенностей
вот см. выше как мной предложено
а если все эти "тонкости" учитывать и под них подстраиваться для каждого спелла, то это иногда может в разы неудобнее быть
26
ClotPh:
вот см. выше как мной предложено
Шедевр) Таймеры не паузятся, новые юниты полсекунды имеют на чтение любых триггерных способностей.
21
в 95% случаев этих юнитов не будет вообще, а в 99% случаев из тех, когда они будут, они просто не успеют за полсекунды че-то вменяемое сделать
ну я и говорю ниче не мешает сократить период хоть до 0.04 секунды если jass таймером периодическим
просто производительность... хотя учитывая, что это таймстоп и мало че другое будет - ниче страшного скорее всего
и такой спелл любой изи себе импортировать сможет
26
ClotPh, что тебя не устраивает в событии, когда новый юнит появляется в игровой области?
Явно экономичнее, чем периодический таймер с паузой.
21
8gabriel8, экономичнее, да, но надо отдельный триггер тогда создавать еще и/или включать/выключать
9
Условия:
Боевая единица - (Кастер) завершает применение способности
Сравнения:
Сравнение - Способность ("Остановка времени") равно да
Действие:
Пауза всех юнитов (Pause all units)
Продолжить (Кастер) (Unpause "Кастер")
Вот и всё,ничего сложного :3
Анти-баги типа "А что если какой-то новый юнит появится"?
Можно решить так (Каждую) Every 0.01 seconds (Секунду) Pause all units (Пауза всех юнитов)
(Unpause "caster") продолжить кастер,по идеи это так должно быть
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.