История Терран
История Протоссов
История Зергов
StarCraft - FOREVER!
7x Team Logo
 
 
 Авторизация
Регистрация
Новости
Команда
Файлы
StarCraft 2
Статьи
Стратегии
Библиотека
Юмор
Редактор карт
Партнеры
Реклама


 Переменные, массивы и константы, 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
© RedSys.Ru by Knight
Статья написана: 2010-08-31 14:20:43
Прочитано раз: 23272
Последний: 2017-05-25 19:09:45
Обсудить на форуме

   Пока тут нет ни одного комментария, можете добавить первый.

  Добавить комментарий

Добавить комментарий
Заголовок:
Имя*:
Email:
Icq:
Местонахождение:
Сколько будет 6х6?:
Комментарий*:

7x Top

7x pts rating
5358 terran
[7x]Control
terran control.341
2690 pts
5358 mmr
 
Stat: 578-562
Rate: 50.70
5363 protoss
[7x]Judicator
protoss Kawaii.21848
2669 pts
5363 mmr
 
Stat: 153-125
Rate: 55.04
5231 terran
[7x]Surprise
terran Surprise.698
2283 pts
5231 mmr
 
Stat: 124-119
Rate: 51.03
5060 zerg
[7x]Splesh
zerg Splesh
1928 pts
5060 mmr
 
Stat: 183-168
Rate: 52.14
5211 protoss
[7x]Smith
protoss smith.269
1900 pts
5211 mmr
 
Stat: 79-71
Rate: 52.67
5118 random
[7x]KpeHgeJIb
random KpeHgeJIb.359
1254 pts
5118 mmr
 
Stat: 41-39
Rate: 51.25
5295 zerg
[7x]Krash
zerg Krash.903
926 pts
5295 mmr
 
Stat: 28-27
Rate: 50.91
5362 protoss
[7x]Lipton
protoss Lipton.725
228 pts
5362 mmr
 
Stat: 7-10
Rate: 41.18
5214 protoss
[7x]SoSiSKA
protoss SoSiSKA.343
86 pts
5214 mmr
 
Stat: 3-2
Rate: 60.00
4701 terran
[7x]Leon
terran Leon.1216
1924 pts
4701 mmr
 
Stat: 166-163
Rate: 50.46
4305 zerg
[7x]Igon
zerg SevenXIgon.103
1076 pts
4305 mmr
 
Stat: 48-30
Rate: 61.54
4444 zerg
[7x]Kirill
zerg Kirill.651
984 pts
4444 mmr
 
Stat: 26-26
Rate: 50.00
4176 terran
[7x]BLACKki
terran BLACKki.641
638 pts
4176 mmr
 
Stat: 25-25
Rate: 50.00
4529 protoss
[7x]Kanzler
protoss Kanzler.870
424 pts
4529 mmr
 
Stat: 10-8
Rate: 55.56
4218 random
[7x]Fen1kz
random Fenlkz.514
169 pts
4218 mmr
 
Stat: 5-4
Rate: 55.56

События

Waiting info...



Информация


Администрация:
-
-

Новинки

Последние Новости

Новое на форуме

Последние статьи

Новые файлы


Друзья
Реклама


 

© 2002-2017 7x.ru StarCraft information site.
7x Engine version 1.7.1 Alpha build 4 .

Копирование информации только с прямой индексируемой ссылкой на наш сайт!
Идея проекта: . Разработка - 7x Team.

Рекомендуемое разрешение - 1280x1024 при 32bit. Минимум - 1024x600 при 16bit.
Поддерживаемые браузеры: IE 7.0+ и аналогичные
Дата генерации - 25.05.2017 @ 23:05:11 MSK. Страница загружена за 0.064869 попугая.

И помните - StarCraft Forever!

 

Яндекс.Метрика Rambler's Top100 Яндекс цитирования

карта сайта