Переменные, массивы и константы, a также функции для начинающих. Часть 1
В этом туторе вы научитесь делать свои полноценные триггеры и функции. Тутор подразумевается пройденным сначала и до конца — я обьясню все что я делаю подробно в деталях.
Сделаем для начала так, чтобы при инициализации карты нам давали одного зерглинга. Да, попутно мы будем делать много необязательных вещей, но через них вы научитесь использованию базовых функций редактора триггеров.
Результат (Изображение)
Переменные
Сперва, разберемся с переменными. Это очень важный элемент для картостроителя. Вы будете использовать их чуть ли не в каждом созданном вами триггере.
Что делают переменные? Ответ: хранят информацию. Причем информация может быть очень и очень разных типов, от точки на карте игрока, до количества утраченной энергии щитов проходящего мимо зилота. Понимание основных разновидностей переменных является ключом к созданию триггеров.
Собственно, вот они:
- Локальные переменные
- Глобальные переменные
- Массивы
- Константы
Локальные переменные
Это переменные которые могут использоваться только в рамках присвоенного им триггера. Давайте создадим новую карту (или откройте свою для издевательств, мне до лампочки). Наверху выбираем меню «Слой» и берем «Точки». Создаем точку где хотим, называем как хотим. Нам она понадобится позже.
Идем теперь в редактор триггеров. Выбираем триггер инициализации карты, и удаляем все-все под графой "Действия". Правой кнопкой мыши кликаем по пустому пространству, Создать > Создать переменную.
Изображение
Обзываем её как хотим, я назову её «Players number».
Изображение
Как закончите придумывать название своей переменной, заметьте поле «Тип» переменной. Через него мы сообщим переменной какой тип информации она будет хранить для нас.
Изображение
Вот несколько типов переменных:
- Целое число: Числа(1, 2, 3, 4, 5), призванные хранить количество чего-либо. Номера игроков, к примеру, используют этот тип переменной.
- Действительное: Числа — десятичные дроби (1.2, 3.5, 5.7). Могут содержать информацию о количестве жизней юнита, времени, точках на карте. Тип «Целое число» может быть конвертирован в «Действительное».
- Строка: Текст из пары слов, или одно слово. С помощью этого типа можно хранить вещи типа введенных сообщений пользователя. Возможностей для использования — множество.
- Текст: Хранит необработанный текст. Используется в большинстве триггеров для тултипов и выпадающего текста. Манипулировать этим типом можно как обычным текстом — делать жирным, всех цветов радуги и т. п.
- Боевая единица:Хранит в себе какого-либо юнита. Через этот тип можно узнать состояние здоровья, щитов, каких-либо характеристик боевой единицы.
- Тип боевой единицы:Хранит информацию о каком-либо типе боевых единиц. Полезно при создании единиц или проверки типа боевой единицы. Чрезвычайно важно понимать разницу между «Боевой единицей» и «Типом боевой единицы».
- Диалог: С этим типом вы уже встречались. Хранит в себе определенное диалоговое окно. Используется в большинстве для создания собственных элементов интерфейса.
- Элемент диалога: И с этим типом вы уже встречались. Хранит в себе определенный элемент диалога. Можно использовать для разных целей — кнопки, полосы здоровья, щитов и маны.
- Булево: Простой тип Правда/Ложь. Используется в большинстве для проверок на определенные условия в триггерах.
Для наших целей мы оставим «Целое число».
Теперь нам необходимо установить какое-либо значение для нашей переменной. Создаем новое действие в нашем триггере.
Изображение
Выбираем Задать переменную.
Изображение
Кликаем внизу на «Переменная».
Изображение
Выбираем созданную нами ранее переменную. Затем кликаем внизу на «Значение».
Изображение
В появившемся окне введите «5» и клацните «ок».
Изображение
Мои поздравления! Вы только что создали локальную переменную и задали ей значение. Теперь, когда у нас есть переменная с хранящейся в ней информацией, давайте используем эту самую информацию.
Глобальные переменные
Чем отличается глобальная переменная от локальной? Она может хранить и передавать информацию между триггерами или функциями. Она не привязана ни к какому триггеру или функции, как локальная переменная.
Зачем же тогда локальные переменные, спросите вы меня. Ответ прост — не всегда нам нужна информация которая бы передавалась из триггера в триггер, запоминать все глобальные переменные было бы сущим адом, и для подгрузки и хранения глобальных переменных используется немного больше памяти.
Создадим же глобальную переменную, клацаем правой кнопкой по полю с триггерами,
Создать > Создать переменную
Изображение
Назовем нашу переменную «Global Player», тип переменной оставьте «Целое число».
Изображение
Теперь создаем новый триггер. Назовите как хотите, свой я назову «Math».
Изображение
Затем, создайте в вашем триггере локальную переменную, назовите её «New number» и оставьте тип «Целое число». Добавим действие в наш триггер, чтобы задать значение этой переменной. Кликаем внизу на "Переменная", выбираем из списка нашу глобальную переменную.
Изображение
Редактируем поле «Значение» в нашем действии. Выбираем меню «Функция» в появившемся окне.
Изображение
В левом меню выбираем «Математика». В правом же выбираем «Арифметическая операция».
Изображение
Ваше действие сейчас выглядит примерно так:
Задать переменную
Переменная: Global Player
Значение: Арифметическая операция (целые числа)
Значение 1: (Нет значения)
Оператор: +
Значение 2: 1
Первое значение устанавливаем на New number.
Изображение
Значением 2 устанавливаем число 7, а "+" меняем на "-". Теперь ваше действие выглядит вот так:
Задать переменную
Переменная: Global Player
Значение: Арифметическая операция (целые числа)
Значение 1: New Number
Оператор: -
Значение 2: 7
Круто! Теперь вы задали триггером значение своей глобальной переменной.
Константы
Константы это переменные, значение которых невозможно установить или изменить.
Идем в наш Math триггер, выбираем переменную New Number. Внизу есть чекбокс «Константа». Поставьте там галку. Потом кликните на зеленый нолик и установите значение «2».
Изображение
Вот и все, мы задали значение нашей константы!
Массивы
Вот и она, наша квинтэссенция переменных — Массив. Любой Массив может иметь от одного до трех индексов. В каждом индексе содержится какая-либо информация одного типа. К примеру, в моем массиве «Имяпеременной [3][3][2]» содержится 18 обычных переменных, которые можно использовать. Андерстенд?
Если не совсем поняли, взгляните на картинку, она даст базовое представление о том, как работают массивы (Кликабельно):
Массивы это наимощнейший инструмент. Один массив может содержать бесчисленное множество информации. К примеру, представьте что я делаю какую-то карту в стиле RPG. Без массива, мне бы пришлось создавать 10 переменных лишь для героев игроков. А так — 1 массив.
Теперь, когда вы более менее разобрались в массивах, давайте создадим простейший. Создаем новую глобальную переменную, назовем ее «Player Hero». Тип переменной — Боевая единица.
Изображение
Теперь ставим галочку в чекбоксе «Массив» и ставим первый размер на 10.
Изображение
Создаем еще одну глобальную переменную, называем «Hero», тип — Тип боевой единицы
Изображение
Нажимаем на «Нет игровой ссылки», ищем там зерглинга и выбираем его.
Изображение
Здесь мы с вами прервемся. Во второй части я расскажу вам о функциях с массивами и где их можно использовать, а также о действии «если/то/иначе».
Если возникли какие-либо вопросы по ходу выполнения данных туторов, приходите на форум Redsys.ru и задавайте. Будем рады ответить. Либо в комментариях ниже, но шанс получить ответ у вас тогда будет также ниже.
Автор — NeoDeathXp,SC2Mapster
Перевод — Knight
Статья написана: 2010-08-31 14:20:43
Прочитано раз: 30425
Последний: 2024-03-19 11:40:21