![]()
Sergey
Старейший
![]() ![]() offline
Опыт:
44,363Активность: |
Создание новых триггеров во время игры (JASS)
Картостроители, держите пару интересных наработок. Первый сценарий Create Trigger - пример создания нового триггера прямо во время игры. Например, решается задача: для произвольного юнита создается новый триггер, который позволяет использовать событие Unit takes damage и определять, когда юниту наносится повреждение и каковы его размеры. В моем сценарии это проделывается для юнита, который создается через 5 секунд после загрузки карты.
Напоминаю, что в редакторе такие вещи можно делать только для юнитов, уже размещенных на карте. К тому же в редакторе нельзя создавать новых триггеров.
Проделать такие вещи можно только на jass. Естественно, для таких спецов как Cacodemon проделать такое очень легко. Собственно говоря, от Cacodemon-а я и узнал, что такие вещи делать можно. Однако сам я таких наработок у других не наблюдал (хотя скорее всего они были). Недавно решил поэкспериментировать и вс получилось :D . Кстати, я снабдил сценарий некоторыми коментариями - может кому-то легче будет разобраться.
Второй сценарий - создан по тому же принципу, что и первый. Это реализация заклинания Magic Shield - щит, который поглощает n-ное количество повреждений, после чего пропадает. Достаточно стильное заклинание. Причем реализовано в общем случае - в игре может быть сколько угодно юнитов, применяющих такую защиту. Пришлось немного повозиться, но получилось хорошо.
Кроме того, я задействовал еще одну интересную технологию - использовал КЕШ для хранения значений типа integer и real. В результате уменьшил число глобальных переменных и массивов на 2 единицы :D. Я потому и удивляюсь - почему так мало подобных наработок. Они позволяют делать достаточно интересные вещи. Magic Shield - только один пример, который первым пришел в голову.
Итак, вот первый сценарий: |
![]() |
#1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Sergey
Старейший
![]() ![]() offline
Опыт:
44,363Активность: |
А вот вторая: |
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
THeBloodiest
![]() ![]() offline
Опыт:
20,881Активность: |
круто... у меня вертится одна идея: так как можно текстовой триггер можно сделать отображаемым как нормальный, то теоретически можно сделать обычный триггер create local var |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Sergey
Старейший
![]() ![]() offline
Опыт:
44,363Активность: |
Bloodiest, ты имеешь ввиду сделать то же самое без перевода всего триггера в Jass через custom string? |
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
tysch_tysch
Работаем
![]() ![]()
online
Опыт: отключен
|
нет сергей помнишь статью димонт-а про добавление новых тригеров, так вот Блуд хочет просто новый тригер добавить с действиями, которые выполняет твой... тоесть, чтобы для работы с твоим примером требовалось вызвать одно действие Я правильно понял?=) |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
THeBloodiest
![]() ![]() offline
Опыт:
20,881Активность: |
да |
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Sergey
Старейший
![]() ![]() offline
Опыт:
44,363Активность: |
Гм, распишите подробнее плс :). Т.е. создать отдельную команду, которая копирует действия с такого-то триггера? |
![]() |
#7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
tysch_tysch
Работаем
![]() ![]()
online
Опыт: отключен
|
действие, которое создаёт тригер во время игры... |
![]() |
#8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
zibada
![]() offline
Опыт: отключен
|
саму-то функцию CreateTrigger в интерфейс подцепить несложно...
но как вы собираетесь к этому триггеру действия добавлять? (TriggerAddAction, ее в интерфейс не запихнуть) DimonT добавил. или я чего-то не догнал, но при чем тогда тут моя статья? :confused: |
![]() |
#9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Specter
![]() offline
Опыт:
808Активность: |
Это все уже давно в UMSWE есть... Посмотрите сначала внимательно. |
![]() |
#10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Bahamut GF
Рожденный по неволе
![]() offline
Опыт:
1,574Активность: |
Извините за Флуд, но мне так никто в моей теме на вопрос и не ответил - как запустить это проклятый UMSWE Я его япускаю, а запускается обычный редактор Вара без изменний Что сделать-то надо?? |
![]() |
#11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
tysch_tysch
Работаем
![]() ![]()
online
Опыт: отключен
|
Specter скажи точное название, а то я найти чото не могу |
![]() |
#12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|