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

Боевая единица => Pause/Unpause Units
Боевая единица => Pause/Unpause кастера
`
ОЖИДАНИЕ РЕКЛАМЫ...
18
8gabriel8 :
но если остановка времени пошла, то другой же не сможет заюзать способность.
а, точно
21
8gabriel8, да, но "другой" может появиться уже при остановленном времени... хотя его, конечно, нельзя будет купить, но мало ли там че в результате чего произойдет при таймстопе что юниты вылезут...
короче, надежнее периодически, пока идет таймстоп, всех паузить, кроме его вызвавшего
меня другое смущает, из-за чего предпочитаю глобальную паузу не юзать: есть инфа, что сочетание стана и паузы фаталоопасно
26
ClotPh:
"другой" может появиться уже при остановленном времени
Процессы в зданиях тоже паузятся. Фатала при стане и паузе в одиночной игре нет, в сетевой сам проверяй.
14
8gabriel8, я так и сделал вообщет, просто не могу понять, как анимацию для групп юнитов найти, и отвечает ли переменные за это (в английском я не очень силён, увы)
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") продолжить кастер,по идеи это так должно быть
21
Misha34, а я чо пишу? мой вариант тем и хорош, что любому идиоту понятен
только нахрена 0.01-то, см. выше, это упорото так часто
26
ClotPh:
надо отдельный триггер тогда создавать еще и/или включать/выключать
Вот проблемы-то! И мне ещё твердят, чтобы с GUI на JASS переходил, где гораздо сложнее ролики создавать, а теперь ещё и триггеры включать/выключать.
21
8gabriel8, короче, всегда есть варианты потупее и менее оптимальные иногда, но значительно проще в реализации, что любой идиот сможет
или более эффективные в результате, но не такие простые для понимания и реализации
каждый пользует то, что ему больше подходит
26
ClotPh, как раз о том и речь. Вроде как в JASS больше возможностей, но очень много времени и внимания уходит на техническую сторону. В итоге вдохновение уходит, интересные идеи задвинуты далеко-далеко, по несколько дней обдумываешь способность одного из героев, а в конце оказывается, что тебе это уже надоело и не нужно почти никому.
21
8gabriel8, да, с этим и у меня сложности
в идеале вообще как понимаю должно все делаться из готовых самодокументируемых кусков кода
я в своей игре такие куски и составляю
типа вот нужен тебе например спелл со снарядом ты уже берешь готовый кусок и там меняешь только параметры, как дамми-объект, направление и т. п., или вообще все это выносишь в отд. функцию
тут идеализировать можно бесконечно, но оно того стоит
это неоценимо, как повышение ежемесячного дохода или увеличение производительности компьютера :D
25
Я задавал подобный вопрос, ответ был - никак.
Но можно поставить всех юнитов на паузу и проиграть анимацию stand, после которой юниты зависнут. Еще можно посмотреть как это реализовано в стандартной кампании фрозен трона, когда статуи замирали и стояли без анимаций.
26
sleep, мы же ответили, что надо паузить и скорость анимации на 0% ставить.
22
вы не думали что тригернные способности кроме остановки времени могут нарушить =)...
например герой кастовал в цель где будет через 5 сек молния а за это успел паузить и молния в паузе будет появлять... Короче говоря все триггерные способности должен расширить если есть пауза остановка анимации остановка спела и так далее
26
pro100master, так указал про это, что таймеры тоже надо запаузить
Чтобы оставить комментарий, пожалуйста, войдите на сайт.