26-12-2024Основные операторы Кроме функций бывают еще операторы. Для не программистов лучше всего пояснять это понятие на примерах. Все математические действия и сравнения (сложение, вычитание, умножение, равенство, больше / меньше и т. д.) - операторы. Здесь особо нечего рассказывать. Оператор присваивания - с его помощью переменной присваивается значение. Тут все довольно просто: выбираем переменную, выбираем значение. Однако возможные функции и переменные (из которых Вы выбираете) будут разными в зависимости от типа выбранной переменной. То есть, целочисленным переменным можно присвоить одни значения, переменным юнитам - другие. Случайно присвоить числу юнита в таком случае почти невозможно. Условный оператор - с его помощью можно "разветвлять" алгоритм, чтобы в одном случае он сработал одним образом, а в другом - другим. Для этого есть условный оператор, у которого есть "условие" (как условие в триггере) - если оно истинно, то алгоритм "пойдет" по одному ветвлению, если оно ложно - по другому. Ветвления называются 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 - как видно из названия - пропускает оставшиеся действия в триггере. Не запутайтесь - завершает работу именно триггер, а не какой-нибудь отдельный цикл / разветвление. Описанное выше уже дает Вам некоторую базу, чтобы начать изучать триггеры самостоятельно (никто не собирался полностью описывать все триггеры). Но триггеры - своеобразное программирование, в котором Вы программируете саму игру - её правила, параметры и т. д. А программирование требует не только знаний, но и определенного мышления. Даже если Вы знаете назначение большей части триггеров, Вам надо найти им правильное применение. Одну и ту же задачу можно осуществить разными путями, и нужно искать самый лучший (рациональный). Задача второй части статьи - помочь Вам в этом.
|