Добро пожаловать Гость, Вы в разделе: Вход

Энциклопедия по редактору Arma, Arma 2, Arma 3 и Operation Flashpoint

VKRSSRSS
На главную

Навигация


Искать в энциклопедии:
»


Важная информация




Сайт управляется

Учебник по написанию скриптов
Изображение



Учебник по созданию роликов


Изображение



Наши партнеры



ArmA 3, ArmA 2 news Russian community, SARMAT community
Во время редактирования миссии и аддона вы можете столкнуться с проблемой, когда действия или функции, которые вы хотели бы использовать в своей миссии или аддоне , не возможно осуществить при помощи основных (или даже более продвинутых) возможностей редактора (или при помощи конфигурационных файлов, если речь идет об аддоне).
Например: кинематографические ролики для миссий, или же различные анимации.


Решение этой проблемы состоит в использовании более расширенных способностей игры, известных как скрипты. Скриптовый язык в Armed Assault дает нам возможность непосредственно контролировать основные команды игры. С любыми комбинациями этих скриптовых команд можно создать любые скрипты, которые отвечают конкретным требованиям вашей миссии или аддона.



Термины

Прежде чем начать, вы должны понять смысл этих терминов.


Скрипт


Когда речь идет о скрипте, обычно имеется ввиду .sqs или .sqf файл. Оба этих типа файлов можно редактировать как обычный текстовый файл, используя такие программу, как Блокнот или Geany.


Игровой движок


Основой является игра, которая может читать и выполнять ваши скрипты за определенное время.


Функции


Функция - это часть кода, который выполняет определенную задачу и относительно независим от остального кода. Функции часто принимают входные параметры, а иногда и возвращают значение в скрипт , который вызывал их. Функции рассматриваются, как один из видов скриптов.


Когда мне следует писать скрипты?

Помните: Скрипты не являются панацеей!

Первое, что нужно сделать - это спросить у себя: "Я абсолютно уверен в том, что это не возможно сделать при помощи стандартного редактора?" Цель скриптов состоит в создании процессов, которые не возможно сделать иначе. Потому как скрипты используют ресурсы системы, и потому не правильно написанные скрипты могут повлиять на производительность игры и системы. Таким образом, вы должны убедиться в том, что вы узнали столько, насколько это возможно: Как работать с редактором и понимаете ли вы его возможности и ограничения.


Второе, что вы должны спросить у себя перед тем, как приступите к написанию скрипта " Будут ли игроки обращать внимание или использовать то действие или особенность, которую я хотел бы реализовать?". Это может показаться глупым, но то, что это может быть сделано не всегда означает, что это должно быть.


Третий шаг (который может быть наисложнейшим особенно для людей, которые являются новичками в скриптах) - это определить, возможно ли реализовать то, что вы хотите на языке скрипта.

Если вы не уверены в этом, даже после предварительного обдумаваная, просто поспрашивайте у знатоков на форумах. Вы так же можете спросить у них оо том, что они об этом думают ( относится к пункту 2). Если они заинтересованы, они могут помочь в качестве бета-тестеров!


Контрольный список

В итоге:


  • Смогу ли я сделать что то с (редактором миссий, аддонами, файлами конфигурации и т.д.)?
  • Обратят ли внимание игроки на это? ( будут ли использовать?)
  • Это возможно?
  • Если на первый вопрос , ответ "Нет", а на второй и третий "ДА", старайтесь и напишите скрипт! Но помните : Это не всегда бывает легко.

Скриптовый код

Основой скриптов является скриптовый код. Код включает в себя скриптовые команды, которые помогают игре выполнять то, что необходимо. Последующая команда выполняется только после предыдущей. Код пишется в специальных полях в редакторе(в каких см. ниже) ли же в отдельных файлах которые вызываются и выполняются триггерами в процессе миссии.


Синтаксис

Каждый код придерживается синтаксиса. Синтаксис что-то вроде "грамматики" скриптового языка. Таким образом это позволяет игровому движку возможность прочитать и понять код.

Основным синтаксисом в Armed Assault и ArmA 2 является SQF синтаксис. Прочтите соответствующую статью для того, чтобы получить более подробную информацию. Так же вы должны знать о следующих фактах:
  • Каждое утверждение SQF кода должно заканчиваться точкой с запятой . В противном случае игра просто не разберет где кончается одно утверждения и начинается другое. В SQF (в отличии от SQS) синтаксисе пробелы, которые делаются при помощи клавиши ENTER, видимы только для автора скрипта. Пробелы между строками полностью игнорируются игровым движком.

    Существует исключение из этого правила. Когда вы используете такие команды как if () then {}, в конечном утверждении кода в круглых скобках и в фигурных {}, может опускаться точка с запятой. Если это вас смущает, просто ставьте точку с запятой после каждого утверждения, за исключением последнего.
  • Последнее утверждение SQF кода не должно иметь точку с запятой в конце. (В текущей версии ArmA2:OA, не было выявлено проблем, но они были в предыдущих версиях).
    В некоторых статьях вы найдете информацию касающуюся синтаксиса SQS. Этот синтаксис был основным в Operation Flashpoint, но устарел с выходом Armed Assault.

    Все статьи посвященные скриптам в Armed Assault основываются на SQF синтаксисе.


Размещение

Код должен быть записан в специфичной форме. В дополнение к синтаксису, расположение гарантирует, что вы и другие кодеры смогут легко прочитать его. Это особенность важна, в тех случаях, когда вы не просматривали свой код в течение длительного времени и хотите улучшить или изменить его.

В одной строке скрипта должно находиться только одно утверждение. Это правило не распространяется на строки в редакторе миссий, так как весь код должен быть написан в одну строку.

Используйте пробелы и клавиши табуляции для отступа в кодах. Это поможет вам легко определить в дальнейшем какой код принадлежит определенному блоку.


 Пример: 
 УТВЕРЖДЕНИЕ 1;

 Блок
 {
 УТВЕРЖДЕНИЕ 2;

 Вложенный блок
 {
 УТВЕРЖДЕНИЕ 3;
 УТВЕРЖДЕНИЕ 4;
 };
 };

Комментарии

Вы можете и должны писать комментарии в скрипте, которые описывают цель вашего кода. Эти комментарии пишутся в произвольной форме и полностью игнорируются игровым движоком.


Просмотрите особенности SQF синтаксиса для получения информации о том, как правильно писать комментарии.
Важно: Не записывайте то, что делает код, а записывайте то , что вы хотите сделать с кодом. Это не так легко, но, может быть следующий пример объяснит это немного лучше:


 Плохой комментарий: 
 // переменная i приобретает значение 1
 i = 1;

 Хороший комментарий: 
 // сбрасывает значение, чтобы начать с значения 1
 i = 1;

Выполнение кода

Как выполнить код?? (внешние файлы и редактор миссий)

Редактор миссий

В редакторе скрипты выполняются при написании кода в поля триггеров и иниализации.

Внешние файлы

Внешние скрипты выполняются через скрипты и функции

Разработка Скрипта

скрипт в данном случае: код внешнего файла (скриптов/функции ). Как разработать скрипт?

  • Требования
  • Концепция
  • Реализация
  • Тестирование

Обычно скрипт придумывается у вас в голове, при сложных же скриптах - на бумаге

Требования

Что же скрипт должен делать?

Концепция

Как сделать это в скрипте?

Реализация

Напишите код

Тест

Протестируйте код
Две колонки
О нас
SunHorizon Wiki версия 1.0.2.17.
© 2013-2014 SUNHORIZON.INFO.Все права сохранены.
В проекте использованы изображения FamFamFam
Связь с нами
Изображение
Правила сайта
Изображение

Авторские права
Изображение