Сейчас 05:16:12 Пятница, 27 декабря, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
[Вопрос] scope
abidinДата: Вторник, 28 Апреля 2015, 08:22:53 | Сообщение # 1
7 уровень
Группа: Проверенные
Сообщений: 330
Награды: 0
Репутация: 305
Блокировки:
Вот допустим создали мы обычный триггер B,который расположен выше триггера A.После компиляции все функции в триггере B будут выше A?И можно ли вызывать функции из того триггера?
Если заключить наши функции в триггере B в область,то где будет распологаться наша область,так же как я описал выше или по другому принципу?
 

BiboДата: Вторник, 28 Апреля 2015, 10:13:25 | Сообщение # 2
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Чтобы код из триггера А был доступен в триггере В, нужно создать триггер В раньше триггера А.
Код внутри областей (scope/edscope) располагается в том же месте где и объявлен.
Для твоей задачи используются библиотеки.
Код
library A uses B
         //...
endlibrary

library B
         //...
endlibrary

В таком случае не важно, что где объявлено, парсер перенесет весь код библиотеки B выше библиотеки A.
Вместо слова uses можно использовать needs и requires.
Если библиотека A использует несколько библиотек, их можно перечислить через запятую
Код
library A uses B, C, D
         //...
endlibrary

Что касательно механики, то весь код всех библиотек будет расположен сразу после объявления переменных, выше CustomScript карты.
 

abidinДата: Вторник, 28 Апреля 2015, 10:24:15 | Сообщение # 3
7 уровень
Группа: Проверенные
Сообщений: 330
Награды: 0
Репутация: 305
Блокировки:
Bibo, спасибо,мне было интересно только про scope.
Не знал что они распологаются в том порядке,как обьявили.А триггеры тоже распологаются по порядку объявления?Или там смотрится не вызывает ли один триггер другой?
 

BiboДата: Вторник, 28 Апреля 2015, 10:38:02 | Сообщение # 4
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Нет, в триггерах не такая продуманная система. Что раньше создано то и выше.

Добавлено (28 Апреля 2015, 10:38:02)
---------------------------------------------
Если без использования областей, то можно запустить действия одного триггера из другого, посредством функции TriggerExecute, тогда тоже не имеет значения что выше, что ниже. Тогда нельзя передать параметры, как в случае вызова обычной функции, но можно будет использовать такие как GetTriggerUnit, GetTriggerPlayer и т.д.


Сообщение отредактировал Bibo - Вторник, 28 Апреля 2015, 10:38:37
 

SirNikolasДата: Вторник, 28 Апреля 2015, 13:02:23 | Сообщение # 5
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Если требуется дать доступ всему коду к каким-либо функциям/etc, их либо помещают в каком-нибудь триггере в библиотеку (library, рекомендуемый подход), либо пишут в custom code (иконка свитка в дереве триггеров).

 

abidinДата: Вторник, 28 Апреля 2015, 13:39:31 | Сообщение # 6
7 уровень
Группа: Проверенные
Сообщений: 330
Награды: 0
Репутация: 305
Блокировки:
SirNikolas, это я все знаю,мне именно хотелось узнать как распологается scope.Просто было написано,что scope распологается в том месте,где и создан,а где именно я не знал.
 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz