ФЭНДОМ


При создании диалогов и заданий (см. предыдущие главы) мы использовали признаки, которым в зависимости от ситуации присваивалось значение 0 (ложь) или 1 (истина). Самой большой проблемой, с которой я столкнулся, создавая игровое задание для этого руководства, стала проверка признаков. Действительно ли каждому из них присвоено верное значение. К сожалению, в редакторе D’jinni нет возможности проверять состояние признака. Но есть и хорошие новости: сделать это можно с помощью скрипта. Напомню, что мы использовали следующие признаки:

  • zadanie_polucheno;
  • glavar_ubit;
  • otchet_dan.

Теперь давайте создадим новый скрипт. В меню Файл (File) выберите Создать ‐> Скрипт Neverwinter (.nss) (New‐>Neverwinter Script (.nss)).

Flag testing1.jpg

Откроется окно Новый скрипт neverwinter nights (new neverwinternights script).

Flag testing2.jpg

Как обычно, начнем с комментария.

Flag testing3.jpg

Теперь добавьте следующую строку:

Flag testing4.jpg

Обратите внимание, что в конце строки, заканчивающейся ключевым словом if, не нужно ставить точку с запятой. Это очень важно. Если в этом случае поставить точку с запятой, скрипт не будет работать должным образом.


Ключевой слово if – оператор условия. Цель такого оператора – контролировать скрипт, части которого должны исполняться только при соблюдении определенных условий. В результате исполнения оператора if значение 0 (ложь) присваивается, если условие не выполняется, а значение 1 (истина) присваивается, если условие выполняется. Функция GetDialogFlagValue обращается к значению признака диалога с указанным именем.


Значение всего выражения: если значение признака диалога с именем zadanie_polucheno (posiada_zlecenie) равно 0, то... Естественно, нам необходимо дописать скрипт и определить, что произойдет, если значение признака равно 0. Введите продолжение выражения с оператором if.

Flag testing5.jpg

Функция PrintString отображает указанный текст в журнале Aurora. Теперь значение всего выражения следующее: если значение признака диалога с именем zadanie_polucheno (posiada_zlecenie) равно 0, то в окне регистра событий отобразится текст Flag zadanie_polucheno (posiada_zlecenie) = 0. Очень просто, не так ли? А теперь необходимо создать выражение с оператором if на случай, если значение признака zadanie_polucheno (posiada_zlecenie) равно 1.

Flag testing6.jpg

Этот же скрипт можно использовать для проверки оставшихся двух признаков. Скопируйте весь блок кода и замените имя признака zadanie_polucheno (posiada_zlecenie) на имена остальных признаков.

Flag testing7.jpg

А теперь небольшое отступление. Любой из вас, кто застал то время, когда программированию учились по учебникам, наверняка помнит, что первые компьютерные программы могли только выводить текст на экран. В качестве первого примера скриптов, как правило, использовалась фраза "Hello World". Поэтому, чтобы отдать должное старым традициям, добавим в конце скрипта следующее:

Flag testing8.jpg

Мы потратили на написание кода чуть больше времени, но зато добавили ему стиля. В меню Файл (File) выберите пункт Сохранить как... (Save As...).

Flag testing9.jpg

Откроется стандартное окно Windows для сохранения файлов. Перейдите в каталог Data\Scripts (где хранятся все скрипты), введите имя файла test_priznak (test_flag) и нажмите кнопку Сохранить. Учтите, что имя файла должно содержать не более 16 символов. Убедитесь, что сохраняете файл в формате nss.

Flag testing10.jpg

Если в окне указан другой тип файла, это, возможно, означает, что вы случайно пытаетесь сохранить содержимое другого открытого окна. Прежде, чем сохранять шаблон персонажа, убедитесь, что у вас активно окно Новый скрипт neverwinter nights (new neverwinternights script). Если оно не активно, его заголовок будет отображаться серым цветом.

Flag testing11.jpg

Любой другой цвет заголовка означает, что данное окно является активным.

Flag testing12.jpg

Звездочка перед текстом в заголовке окна означает, что последние изменения в этом файле не были сохранены. Помните, что скрипт можно сохранить напрямую в модуль. Для этого в меню Файл (File) выберите пункт Сохранить новый скрипт neverwinter nights (Save new neverwinternights scripts). Затем в окне сохранения файла нажмите кнопку Модуль (Module).


Сохранив файл, проверьте, не было ли ошибок при сохранении и компиляции скрипта. Откройте окно обзора ресурсов (Resources Explorer). Для этого в меню Вид (View) выберите Окна ‐> Обзор ресурсов (Utility Windows ‐> Resources Explorer).

Flag testing13.jpg

В окне обзора ресурсов (Resources Explorer) раскройте ветвь Data, а затем ветвь Scripts. Вы увидите скрипт test_priznak.nss (test_flag.nss).

Flag testing14.jpg

Теперь переключитесь в игровой режим. Для этого в меню Игра (Game) выберите пункт Запуск (Play).

Flag testing15.jpg

Переключившись в игровой режим, загрузите модуль. Затем переключитесь на окно обзора модуля (Resources Explorer) и правой кнопкой мыши щелкните по скрипту test_priznak.nss (test_flag.nss). В меню выберите пункт Запуск скрипта (Run scripts).

Flag testing16.jpg

В окне журнала Aurora (Aurora log) вы увидите следующее.

Flag testing17.jpg

Как видите, первоначальное значение всех признаков равно 0. Теперь согласитесь на задание Зигфрида и перезапустите скрипт. Затем убейте Профессора и снова перезапустите скрипт. В окне журнала Aurora вы увидите изменения. Как вы поняли, скрипты могут значительно упростить вам жизнь.


Шаблон:Общая информация о скриптах

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

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

Также на ФЭНДОМЕ

Случайная вики