Мини-профиль
Гость, мы рады Вас видеть. Пожалуйста зарегистрируйтесь или авторизуйтесь!
Персональная страница
Список пользователей
Правила сайта
Опросы
Обратная связь
Выход
Категории раздела
Тактики [2]
Тактики ведения боя, прокачки персонажа и т.п.
Warcraft [2]
Общая информация о Warcraft
Создание карт [7]
Уроки, советы и т.п.
Творчество [5]
Поиск
Наш опрос
Какой класс вам больше нравится?
Всего ответов: 681
Друзья сайта
Статистика
Комментариев: 69
Форум: 1/2
Фотографий: 103
Новостей: 364
Загрузок: 128
Статей: 50
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Сегодня были на сайте

Главная » Статьи » Warcraft 3 » Создание карт

Массивы
Автор: JohnsonKey
Теория

Массивы, если вкратце, это просто множество переменных. Когда вы создаёте переменную, вы можете поставить галку "Массив" ('Array'). Тогда, если вы выберете эту переменную, чтобы назначить её для чего-либо (например, "Переменная"="Юнит"), вы увидите, что справа от переменной появилось поле [Index]. Вместо индекса нужно ставить целое число. Это может быть как просто число "1", "2" и т.д., так и целочисленная переменная (она же integer). Массивы, в основном, нужны для циклов, но пока что мы не будем усложнять урок, и пока не затронем циклы.

Итак, массивы можно использовать как обычные переменные, если вы присвоите чему-либо массив с целым числом. Помните пример из первого урока, где нам нужно было создать десять квестов? Чтобы это сделать, нам понадобится минимум сорок действий (на один квест - создать квест, назначить переменную, создать условие квеста, назначить переменную). Не так уж много для десяти квестов. Однако, получается, нам надо создать целых 20 переменных! А чтобы их создать, надо зайти в меню переменных, нажать "Создать новую", написать название, выбрать тип! Слишком много действий, и их можно сократить.

Создаём две переменные - Quests и QuestsR. В обоих ставим галки на "Массив" ('Array'). Теперь при создании первого квеста в качестве переменных используем Quest[1] и QuestR[1], при создании второго - Quest[2] и QuestR[2] и так далее. Всё просто.

*На этом моменте вы можете попробовать выполнить первое задание из практики.

Гораздо интереснее, как мы можем использовать эти массивы дальше, кроме как в качестве обычных переменных.

Как уже говорилось выше, вместо просто числа мы можем использовать целочисленную переменную. Представим, что мы решили сделать три вида погоды на карте, которые будут сменять друг друга через минуту. Сначала создаём массив типа 'Weather Effect' ("Погодный эффект"). Затем целочисленную переменную ('Integer'), пусть это будет 'int'.
При запуске карты создаём действия:


Создать погодный эффект=Дождь
Set Weather[0]=Последний созданный погодный эффект
Создать погодный эффект=Снег
Set Weather[1]=Последний созданный погодный эффект
Создать погодный эффект=Туман
Set Weather[2]=Последний созданный погодный эффект


Теперь создаём триггер, который запускается каждую минуту, его действия:

Выключить погодный эффект Weather[int]
Если (int меньше 2) (сравнение целых чисел), то (Set int=int+1), иначе (Set int=0)
Включить погодный эффект Weather[int]


Объяснение:
Итак, у нас есть три погодных эффекта, создающиеся в начале игры: дождь (Weather[0]), снег (Weather[1]) и туман (Weather[2]). Когда мы их создаём, они не включаются сразу, за это отвечает отдельный триггер по включению и выключению погодных эффектов. Каждые пять секунд срабатывает триггер, который выключает Weather[int]. Переменная int изначально равна нулю, а затем мы её меняем следующими действиями триггера:
Когда int меньше двух, то int увеличивается на один, таким образом, Weather[int], например, из Weather[0], то есть дождя, "превращается" в Weather[1], то есть в снег. Иначе (если int уже равно двум) мы обнуляем переменную, чтобы включался эффект Weather[0]. Обновлённый эффект мы и активируем третьим действием.
Таким образом, погода меняется каждую минуту. Если мы хотим сделать десять погодных условий, тогда наше "если" должно выглядеть так - (int меньше 9).

Практика


1. С помощью массива юнитов создайте трёх пехотинцев. Через 3 секунды одновременно увеличьте первого в размере на 200%, второго на 250% и третьего на 300%.
2. Создайте два триггера: один запускается вместе с картой, другой срабатывает каждые 3 секунды, уберите у второго галку "Изначально включён" ('Initially On'). В первом триггере с помощью массива юнитов создайте трёх пехотинцев. После этого в этом же триггере создайте ещё одно действие - 'Trigger - Turn On (Второй триггер)' ("Trigger - Включить (Второй триггер)"). Задача: по очереди с промежутком в три секунды увеличить размер каждого пехотинца на 200%. При этом Wait'ы ("Ждать") использовать нельзя. Также не забудьте для оптимизации выключить этот триггер, когда все три юнита поменяют свой размер.
Категория:Создание карт [E] [W]
Опубликовал:Goldrey [E] [W]Просмотров:303
Опубликовано:04.09.2011, 20:40
Теги:массивы
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Основной сайт проекта | Форум