Глава 1. Локальные и глобальные переменные. Читатель, если ты знаком с переменными, можешь пропустить этот абзац.
Ни один картостроитель, который хочет, чтобы в его карту играли, не может обойтись без переменных. Но что же это такое? В JASS, как и в любом языке программирования, есть переменные. Переменные, это ячейки, в которые можно записать ссылки на определённые объкты. Но нельзя путать сам ОБЪЕКТ и ССЫЛКУ на него. Это совершенно разные вещи! Например, у объекта есть куча разных свойств (они зависят от самого объекта), а у ссылки этих свойств нет. Переменные очень нужны при создании карты. Самый простой пример. В начале игры мы триггерно (т.е. с помощью триггеров прямо в игре) создаём юнита, а потом в конце игры, нам требуется удалить этого юнита. Как же это сделать, если после создания этого юнита, мы насоздовали кучу новых? Да, записать его в переменную сразу после создания. И тогда его можно будет удалить в любой момент игры. Но в переменную нельзя помещать всё подряд. При создании переменной, нужно указать тип данных, на которые будет ссылаться эта переменная. Приведу некоторые типы из ВЕ:
* Юнит (Unit)
* Целое число (Integer)
* Строка (String)
* Реальная (Real)
* Точка (Location)
* Спецэффект (Effect)
* Триггер (Trigger)
Это лишь некоторые типы. Остальные можно увидеть в редакторе, во время создания переменной. В ВЕ есть такие типы, которых нет больше нигде (например триггер).
Начнём с глобальных переменных. В редакторе WarCraft реализованы лишь глобальные переменные. Что это такое и чем они отличаются от обчных переменных? Это такие же переменные, но к ним добавлена приставка глобальные. Почему? Объясню на примере. Если мы триггерно создадим юнита и запишем его в глобальную переменную, мы сможем удалить его из любого триггера. Т.е. к ним можно обращаться из любого триггера нашей карты. Такие переменные можно создать в редакторе триггеров. Но кроме глобальных переменных существуют локальные переменные. От глобальных они отличаются тем, что могут использоваться только в пределах одной функции (о функциях читай в главе второй). Той, в которой они были созданы. Такие переменные создаются командой:
например:
local означает, что мы создаём локальную переменную, о типах ты уже знаешь, а имя трудностей вызывать не должно. В переменную, как уже было сказано ранее, можно записывать параметры. Представим себе такую переменную:
Локальная переменная типа целое число с названием int. Не забывай, что в JASS тщательно соблюдается регистр (т.е. большие буквы должны быть большими, а маленькие - маленькими).
Как же записать в локальную переменную число? А просто! Для этого есть простая команда "set". Выглядеть всё это будет так:
Вместо 32 можно записать всё, что угодно (только чтобы это "всё, что угодно" было целым числом).
Самое удобное в локальных переменных то, что при каждом выполнении функции создаются новые переменные, никак не связанные со старыми. Локальные переменные обязательно должны бать в самом начале функциии или триггера.
О преимуществах таких переменных мы поговорим позже...