Recent changes Random page
GAMING
Gaming
 
WoWWiki
Halopedia
FFXIclopedia
Age of Conan
Warhammer Online
Grand Theft Wiki
See more...

Тестирование признаков

Материал из Djinni Wiki

Перейти к: навигация, поиск

При создании диалогов и заданий (см. предыдущие главы) мы использовали признаки, которым в зависимости от ситуации присваивалось значение 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 вы увидите изменения. Как вы поняли, скрипты могут значительно упростить вам жизнь.



СТАТЬИ
Общая информация о скриптах
ВведениеЗапуск роликаВедьмак и его снаряжениеТестирование признаковПомощь со скриптами
Д'жинни

С чего начатьБазовые статьиМодулиПерсонажиДиалогиКвестыЗапуск и тестирование игрыРолики

Общая информация о скриптахПриложенияФанатские приложенияРуководства от REDFlame InteractiveРуководства других пользователей

Оцените: Share this article: