![]()
Ajaccio
![]() ![]() offline
Опыт:
1,007Активность: |
Вызов функций из другого триггера
Доброго времени суток. Работая в редакторе, задался вопросом: можно ли вызывать функции из одного триггера в другом? Например есть у меня триггер (всё на чистом jass) и есть другой, причём в обоих необходимо использовать похожий алгоритм в виде функции. При этом описывать её в двух местах как-то не очень, а добавлять в Custom Script не хотелось бы. Вообще редактор при таком вызове справедливо жалуется, что функция не найдена, подсказывая что так делать вообще-то нельзя. Но в OpenDota я видел триггер Core, который содержит кучу функций, вызываемых другими триггерами по "ходу". Ради эксперемента открыл MPQ-редактором и посмотрел файл .J с кодом - триггер Core размещён первым в списке и первым же инициализируется, однако сделав также у себя я ничего не добился. |
![]() |
#1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Master_chan
Полуночный командир
![]() offline
Опыт:
15,660Активность: |
Помещай все нужные функции в custom code карты, он в war3map.j помоему сразу после объявления глобалок.
Если юзаешь JNGP то читай гайд в особенности библиотеки |
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Vampirrr
O_o
![]() ![]() offline
Опыт:
19,286Активность: |
Ajaccio, вызвать можно любую функцию из другой, учитывая одно главное НО - вызываемая функция должна находиться выше вызывающей функции в коде. Поэтому допустим Core и стоит первой в коде. |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Master_chan
Полуночный командир
![]() offline
Опыт:
15,660Активность: |
Просто если в редакторе перетащить иконку триггера вверх, не факт что он станет выше по коду...\ |
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
FunkieFoO
![]() ![]() offline
Опыт:
7,159Активность: |
просто добавь нужные тебе функции в кустум код карты |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Ajaccio
![]() ![]() offline
Опыт:
1,007Активность: |
В общем, я попробовал поэкспериментировать и вот что получил:
А вот и нет) Здесь этот принцип не работает. Точнее должен работать и скорее всего работает, но тем не менее редактор при проверки триггера смотрит только на Custom Script Code и сам триггер. Даже после того, как я _в ручную_ поместил один триггер выше другого, он меня не понял. И если просто посмотреть на окошко с ошибкой - там ведь нету большей части кода карты! Проверяемый триггер, нестандартный код да глобалки...
Я знаю конечно, но просто он и так уже по размерам движется к бесконечности, не хотелось бы засорять его функциями используемыми два раза. Плюс интерес зажегся - Ice Frog (или парни работавшие над взломом Доты?) таки поместил часто используемые функции в отдельные триггеры, причём они удобно разбиты по частоте использования. А Custom Script Code при этом пуст... |
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]()
online
Опыт: отключен
|
в JNGP для того и придумали library, которые можно упорядочить по иерархии
ScorpioT1002 добавил:
это не меняет порядка функций в war3map.j, функции там сортируются по дате создания этих сущностей "триггер" в триггер-эдиторе ScorpioT1002 добавил:
фрог юзает жнгп) |
![]() |
#7
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Ajaccio
![]() ![]() offline
Опыт:
1,007Активность: |
Что же, всем спасибо за ответы. Отдельное спасибо ScorpioT1002 за столь подробный разбор всех вопросов. Тему можно закрывать. |
![]() |
#8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|