Основные операторы
Кроме функций бывают еще операторы. Для не программистов лучше всего
пояснять это понятие на примерах.
Все математические действия и сравнения (сложение, вычитание,
умножение, равенство, больше / меньше и т. д.) - операторы. Здесь особо нечего
рассказывать.
Оператор присваивания - с его помощью переменной присваивается
значение. Тут все довольно просто: выбираем переменную, выбираем
значение.
Однако возможные функции и переменные (из которых Вы выбираете)
будут разными в зависимости от типа выбранной переменной. То есть, целочисленным
переменным можно присвоить одни значения, переменным юнитам - другие. Случайно
присвоить числу юнита в таком случае почти невозможно.
Условный оператор - с его помощью можно "разветвлять" алгоритм,
чтобы в одном случае он сработал одним образом, а в другом - другим. Для этого
есть условный оператор, у которого есть "условие" (как условие в триггере) -
если оно истинно, то алгоритм "пойдет" по одному ветвлению, если оно ложно - по
другому. Ветвления называются then (в случае истинны) и else (в
ложном).
Окошки выбора условий и действий стандартные.
Приведем пример.
(Иногда я буду делить пример на несколько строк, хотя реально в триггерах так не
делается. Это чисто ради того, чтобы Вам было удобнее читать.)
If ((Race of Player 1 (Red)) Equal to (==) Human) then
do (Player - Add 200 to Player 1 (Red) Current gold) else
do (Player - Add 500 to Player 1 (Red) Current gold)
Если раса первого игрока - альянс, то ему добавится 200 золото, в ином
случае добавится 500.
Примечание: в Варкрафте есть два вида таких операторов: с одним
действием на каждое разветвление и с несколькими (любым кол-вом). Я рекомендую
пользоваться вторым. Вообще не понятно, зачем было делать такой оператор с одним
действием на ветвление?.. Хотя иногда это выглядит красивее в коде.
Сами
операторы действуют абсолютно одинаково, даже с точки зрения оптимизированности
кода.
Цикл мы будем рассматривать подробнее далее в этой статье. Но их
есть несколько видов, хотя суть не меняется.
Примечание: в триггерах есть один-единственный вид цикла -
for. Правда, есть возможность сделать и while, и repeat, но
с помощью внедрение маленького кусочка кода JASS, который совсем не трудно
сделать (минимальных знаний по JASS хватит). Не забывайте, что есть "оператор"
custom text, который можно вставлять прямо в код, в том числе и в тело цикла...
туда-то мы и можем написать условие выхода цикла.
Skip Remaining Actions - как видно из названия - пропускает
оставшиеся действия в триггере. Не запутайтесь - завершает работу именно
триггер, а не какой-нибудь отдельный цикл / разветвление.
Описанное выше уже дает Вам некоторую базу, чтобы начать изучать триггеры
самостоятельно (никто не собирался полностью описывать все триггеры). Но
триггеры - своеобразное программирование, в котором Вы программируете саму игру
- её правила, параметры и т. д.
А программирование требует не только знаний,
но и определенного мышления. Даже если Вы знаете назначение большей части
триггеров, Вам надо найти им правильное применение. Одну и ту же задачу можно
осуществить разными путями, и нужно искать самый лучший (рациональный). Задача
второй части статьи - помочь Вам в этом.