XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
Ajaccio

offline
Опыт: 1,007
Активность:
Вызов функций из другого триггера
Доброго времени суток. Работая в редакторе, задался вопросом: можно ли вызывать функции из одного триггера в другом? Например есть у меня триггер (всё на чистом jass) и есть другой, причём в обоих необходимо использовать похожий алгоритм в виде функции. При этом описывать её в двух местах как-то не очень, а добавлять в Custom Script не хотелось бы. Вообще редактор при таком вызове справедливо жалуется, что функция не найдена, подсказывая что так делать вообще-то нельзя. Но в OpenDota я видел триггер Core, который содержит кучу функций, вызываемых другими триггерами по "ходу". Ради эксперемента открыл MPQ-редактором и посмотрел файл .J с кодом - триггер Core размещён первым в списке и первым же инициализируется, однако сделав также у себя я ничего не добился.
Старый 16.07.2010, 17:27
Master_chan
Полуночный командир
offline
Опыт: 15,660
Активность:
Помещай все нужные функции в custom code карты, он в war3map.j помоему сразу после объявления глобалок.
Если юзаешь JNGP то читай гайд в особенности библиотеки
Старый 16.07.2010, 17:31
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Ajaccio, вызвать можно любую функцию из другой, учитывая одно главное НО - вызываемая функция должна находиться выше вызывающей функции в коде. Поэтому допустим Core и стоит первой в коде.
Старый 16.07.2010, 17:55
Master_chan
Полуночный командир
offline
Опыт: 15,660
Активность:
Просто если в редакторе перетащить иконку триггера вверх, не факт что он станет выше по коду...\
Старый 16.07.2010, 17:57
FunkieFoO

offline
Опыт: 7,159
Активность:
просто добавь нужные тебе функции в кустум код карты
Старый 16.07.2010, 18:01
Ajaccio

offline
Опыт: 1,007
Активность:
В общем, я попробовал поэкспериментировать и вот что получил:
Ajaccio, вызвать можно любую функцию из другой, учитывая одно главное НО - вызываемая функция должна находиться выше вызывающей функции в коде. Поэтому допустим Core и стоит первой в коде.
А вот и нет) Здесь этот принцип не работает. Точнее должен работать и скорее всего работает, но тем не менее редактор при проверки триггера смотрит только на Custom Script Code и сам триггер. Даже после того, как я _в ручную_ поместил один триггер выше другого, он меня не понял. И если просто посмотреть на окошко с ошибкой - там ведь нету большей части кода карты! Проверяемый триггер, нестандартный код да глобалки...
просто добавь нужные тебе функции в кустум код карты
Я знаю конечно, но просто он и так уже по размерам движется к бесконечности, не хотелось бы засорять его функциями используемыми два раза. Плюс интерес зажегся - Ice Frog (или парни работавшие над взломом Доты?) таки поместил часто используемые функции в отдельные триггеры, причём они удобно разбиты по частоте использования. А Custom Script Code при этом пуст...
Старый 16.07.2010, 18:50
ScorpioT1000
Работаем
offline
Опыт: отключен
в JNGP для того и придумали library, которые можно упорядочить по иерархии
ScorpioT1002 добавил:
Даже после того, как я _в ручную_ поместил один триггер выше другого, он меня не понял.
это не меняет порядка функций в war3map.j, функции там сортируются по дате создания этих сущностей "триггер" в триггер-эдиторе
ScorpioT1002 добавил:
Плюс интерес зажегся - Ice Frog (или парни работавшие над взломом Доты?) таки поместил часто используемые функции в отдельные триггеры, причём они удобно разбиты по частоте использования. А Custom Script Code при этом пуст...
фрог юзает жнгп)
Старый 16.07.2010, 19:05
Ajaccio

offline
Опыт: 1,007
Активность:
Что же, всем спасибо за ответы.
Отдельное спасибо ScorpioT1002 за столь подробный разбор всех вопросов.
Тему можно закрывать.
Старый 17.07.2010, 08:21
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 12:38.