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

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

Ответ
 
happy_horror
2 + 2 = 22 :-D
offline
Опыт: 7,818
Активность:
Область действия локальной переменной Функция или Триггер?
Область действия локалки Функция или Триггер?
Например если я в одной функции объявил локальную переменную (допустим local integer i) использовал её в цикле и в следующей функции (этого же тригера) просто объявлю её - будет ли её последнее значение использованно? Или объявление локальной переменной и подъразумевает её создание впервые?
Старый 05.03.2008, 15:19
J
expert
offline
Опыт: 48,447
Активность:
область видимости локалки в джазе может быть только функция и ничего больше
Старый 05.03.2008, 15:58
df Hunter
Нападатель
offline
Опыт: 5,749
Активность:
^ сегодня прав
Старый 05.03.2008, 15:59
J
expert
offline
Опыт: 48,447
Активность:
как и всегда ^^

Jon добавил:
happy_horror вот смотри пример, у тебя есть гуишный триггер, ты через cs создаеш там локальку, и используеш Отряд-Pick юнитов, и продолжаеш использовать там эту локалку, а вот фиг, неполучицо
Старый 05.03.2008, 16:04
happy_horror
2 + 2 = 22 :-D
offline
Опыт: 7,818
Активность:
А что насчёт Index A (или B) - это счётчики глобалки? Например бывает что тригер состоит из нескольких функций и в одной из функций только 1 строка (к примеру

Код:
SetUnitUserData(udg_u(GetForLoopIndexA))


) и для переменной стоит параметр в скобках (GetForLoopIndexA) в этом случае придётся внутри функции цикл создавать с локалкой?
Старый 05.03.2008, 16:52
J
expert
offline
Опыт: 48,447
Активность:
чет я не понял вопроса, скажи поточнее
Старый 05.03.2008, 17:01
happy_horror
2 + 2 = 22 :-D
offline
Опыт: 7,818
Активность:
GetForLoopIndexA - это параметр переменной, т.е. ID, номер ячейки массива? Или это число которое будет помещено в переменную?
Старый 05.03.2008, 17:34
J
expert
offline
Опыт: 48,447
Активность:
happy_horror эта функция возвращает обычную глобалку bj_forLoopAIndex, т.е. вместо GetForLoopIndexA() можно спокойно юзать bj_forLoopAIndex, это просто счетчик для цыкла, зделан только для GUI, т.к. в гуи отсутствует возможность обьявления локалок
Старый 05.03.2008, 17:39
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
happy_horror
Кончай возиться уже с этим GetForLoopIndexA, заменй их на обычные локалки и всё.
Старый 05.03.2008, 19:27
ScorpioT1000
Работаем
offline
Опыт: отключен
Цитата:
Кончай возиться уже с этим GetForLoopIndexA, заменй их на обычные локалки и всё.

вот, вот, +1 и экситвэн
Старый 05.03.2008, 20:07
J
expert
offline
Опыт: 48,447
Активность:
DFlyer, ScorpioT1000 у него там форгрупп, потму либо глобалки либо, луп по группе, а ведь ему еще обьеснить надо что это такое...
Старый 05.03.2008, 20:09
denonlink

offline
Опыт: 1,112
Активность:
Смотри тут .
Старый 06.03.2008, 10:44
J
expert
offline
Опыт: 48,447
Активность:
denonlink онже эту тему и создал)
Старый 06.03.2008, 13:01
denonlink

offline
Опыт: 1,112
Активность:
Jon
А кто виноват? Там ему все и описали... ))))))))
Старый 06.03.2008, 15:48
Observer

offline
Опыт: 737
Активность:
Локалки можно передовать только в нестандартные функции, и после они могут вернуть последнее значание переменной в триггерную функцию.
Просто создай нестандартную функцию
А в своем триггере вызывай ее
Код:
call function[имя функции]([имя возвращаемой переменной])


Observer добавил:
Ой ошибка, слово "function" не пиши
Старый 06.03.2008, 18:23
J
expert
offline
Опыт: 48,447
Активность:
Локалки можно передовать только в нестандартные во все функции если функция их принимает, и после они могут вернуть последнее значание переменной в триггерную функцию функция может вернуть значение, например значение "передавоемой локалки в качестве пораметра" после ее изменения внутри функции.
Просто создай нестандартную функцию
А в своем триггере вызывай ее

Код:
call [имя функции]([имя возвращаемой передаваемой переменной])
Старый 06.03.2008, 18:28
Observer

offline
Опыт: 737
Активность:
JonЯ про нестандартные (коды карты) а все могут и не брать
нестандартные функции в основном играют роль вычесления и передают оканчательное значение
Старый 06.03.2008, 18:35
J
expert
offline
Опыт: 48,447
Активность:
нестандарная фукция может быть и процедурой и ничего не возвращать
Старый 06.03.2008, 18:36
Observer

offline
Опыт: 737
Активность:
JonНо и может вычеслять. Ты согласен?
Старый 06.03.2008, 18:56
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Observer
Вычислять может, но зачем это, если никуда результат вычисления не идёт? Хотя можно записывать в глобалку в самой процедуре.
А вообще, какая разница между "стандартной и нестандартной" функцией?
Старый 07.03.2008, 09:25
Ответ

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

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

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

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



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