Добавлен , опубликован

Изучаем CliCli

Содержание:
Думаю, многие сталкивались в World Editor с проблемой дублирования когда.
Допустим, у нас есть способность, которая наносит случайному противнику рядом с заклинателем 100 урона, а затем повторяется, но наносит 200 урона.
Посмотрите на код. Строки 8-10 и 12-14 - повторяются. А что если нам потребуется расширить способность? Добавить партиклы, звуки? Нам придется их тоже дублировать?
В этом случае, нам помогут кастомные функции. Функция - это триггер, который не имеет события. Функцию можно запустить как условие или действие и триггере. Всё верно - мы сможем создавать свои собственные условия и действия.
Чтобы создать кастомную функцию, нам нужно открыть редактор триггеров и перейти во вкладку "Function Library". Аналогично триггерам, чтобы создать функцию, нужно нажать на огромную зеленую кнопку.
Выбрав функцию, мы увидим следующий интерфейс:
Name - Задает имя функции. Имя будет отображаться в списках при выборе функции для создания.
Description - Задает имя функции, которое будет отображаться в триггере. Также, здесь будут отображаться вводные и выходящие параметры.
Attention - Дополнительная информация о функции. Выполняет ту же работу, что и суффиксы в Редакторе Объектов.
Parameter - Здесь мы добавляем вводимые параметры. После добавления параметра в функцию, его можно использовать в списке действий, как локальную переменную. Чтобы создать параметр, нажмите на кнопку плюса, правее от слова Parameter. Параметр разделяются на 2 типа: обязательные и не обязательные. Чтобы сделать параметр необязательным, в окне для создания параметра включите параметр "Is optional parameter". После этого вы сможете выбрать значение по умолчанию.
  • Обязательные параметры необходимо заполнить какой либо информацией, иначе функция будет не работать.
  • Не обязательные параметры не нужно заполнять для работы функции. В таком случае, будет использовано значение по умолчанию.
Return Value - Параметры, которые вы будете возвращать из функции. Чтобы создать параметр на возвращение, нажмите на кнопку плюса, правее от слова Return Value. После этого в списке действий вы будете вынуждены определить возвращаемый параметр для работы функции.
Из одной функции вы можете возвращать более одного параметра.
Итак, давайте создадим функцию для нашей способности. Во вкладке Action вы можем создавать действия, как для обычного триггера. Чтобы функция знала, с какими именно объектами ей нужно работать, мы добавим 3 параметра: caster, casterPoint и damage, которе отвечают за заклинателя, точку заклинателя и урон.
Обратите внимание. После того, как мы добавили параметры, в описании появились наши параметры. Это сделано для того, чтобы могли подкорректировать текст, добавив контекст для параметров.
Вот как выглядит описание функции без контекста:
И с контекстом:
Теперь давайте применим нашу функцию. Чтобы создать функцию, откроем окно для создания действия, как мы делали раньше. Если обратить внимание, появилась новая вкладка - Function, в которой мы сможем найти нашу функцию.
Теперь мы можем подкорректировать триггер нашей способности и получим следующее:
Теперь у нас меньше проблем с дублированием кода и если мы захотим расширить способность, что просто добавим новые действия в нашу функцию.
На самом деле, эту функцию можно улучшить, вынеся поиск случайной цели в отдельную функцию и итерируя нашу функцию. Благодаря этому у нас появится обобщенная функция "Get Random Target", которую можно использовать во многих триггерах и функциях, а также мы теперь можем применять функцию сколько угодно нам раз без ее дублирования.
Открыть
Давайте попробуем создать функцию-условие. Для этого нам нужно создать функцию, возвращающую Boolean (но подойдут и другие типы переменных. Главное - чтобы мы возвращали 1 параметр).
Чтобы воспользоваться этой функцией, как условием, при выборе условия воспользуемся Boolean Comparison, где в первый параметр мы вставляем нашу функцию.
Давайте добавим не обязательный параметр к нашей функции.
Если мы откроем наше условие с функцией, то заметим новую кнопку: [Parameter List].
Нажав на неё, мы увидим список наших не обязательных параметров, которые мы можем добавить в функцию. Если мы добавим этот параметр, он станет обязательным для функции в этой строке кода. Благодаря этому мы можем расширять наши функции, не подвергая сущности этой функции в других местах для изменения.

`
ОЖИДАНИЕ РЕКЛАМЫ...