Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OSFM v1.2.0.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
4 Мб
Скачать
☆

Что мы хотим?

Перед тем, как мы приступим к написанию нашего учебного скрипта, мы сначала должны решить, что мы хотим, чтобы он делал! Для этого учебника мы собираемся создать: Шкаф с Загадкой: шкаф загадывает загадку и открывается только в случае правильного ответа. Если игрок отвечает неправильно – срабатывает ловушка и ранит игрока, а шкаф остается закрытым. Это довольно сложное задание, но мы будем выполнять его шаг за шагом и в конце станет очевидно, что не все так страшно.

Написание скрипта

После открытия скриптового окна, нажмите Script -> New.... Вы должны заметить, что Тип Скрипта – "Объект", что нам как раз и нужно. Нажмите в главном окне, которое из серого теперь стало белым. Здесь вы будете писать скрипт.

5.5 Учебник скриптов: первые строки. Называем скрипт

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

ScriptName RiddleChestScript

Отметьте, что ни пробелов, ни подчеркиваний в названии нет. Название скрипта должно состоять из одного слова, так что использовать пробелы нельзя. Также Oblivion игнорирует подчеркивание в алфавитном списке скриптов; вы можете использовать подчеркивание, чтобы сделать название более понятным для себя, но вы не увидите его, когда позже откроете скрипт. (Дополнительная информация: Oblivion допускает так называемый эффект наложения в скриптах TES, когда вы заменяете полное имя команды его сокращенной версией. Для примера: "ScriptName" становится "scn", или "ForceActorValue" становится "ForceAV". Мы не будем использовать эффект наложения в данном учебнике, но не удивляйтесь, если увидите подобное в других скриптах.) Помните, что скрипты TES не чувствительны к регистру; вы могли бы написать "scriptname" или "ScriptnamE", как угодно. Попробуйте сохранить свой скрипт, используя кнопку «Сохранить» на панели задач. Ничего очевидного не случится, но если вы нажмете на кнопку «Открыть», то сможете увидеть название вашего скрипта в перечне скриптов Oblivion. Нажмите на «X» в верхнем правом углу окна выбора скриптов, чтобы закрыть его и вернуться в окно редактирования. RiddleChestScript сейчас самый короткий скрипт в Oblivion, но он ничего не делает. Давайте это исправим.

Команды "Begin" и "End"

Команды "Begin" и "End" определяют начало и конец блоков скрипта – отдельных участков кода, которые будут выполняться при определенных условиях. Например, "Begin GameMode" определят начало выдачи текстового блока, который будет запускаться в каждом фрейме до тех пор, пока игрок не откроет меню. Для наших целей нам нужен тип-блок "OnActivate": он запустится только тогда, когда наш шкаф будет активирован (утомительно отвечать на загадку в каждом фрейме или всякий раз, как NPC умрет, обе этих вариации возможны с использованием других вариантов типов блоков Begin!). Нажмите два раза Enter, чтобы переместить курсор вниз, и отредактируйте свой скрипт, чтобы он выглядел вот так:

ScriptName RiddleChestScript  Begin OnActivate        ; Здесь мы напечатаем, что случится, когда шкаф будет открыт  End

Опять нажмите "Сохранить". Скрипт все еще ничего не делает, но, по крайней мере, теперь мы определили условия, при которых он будет работать. Также здесь нужно отметить пару вещей. Первое - мы закрыли текущий блок перед тем, как начали новый – это не так важно, когда в скрипте один блок, но как только скрипт станет более сложным, нам понадобятся составные блоки. Выражаясь в более технических терминах – блоки Begin/End не вкладываемые.

Вторая вещь, которую надо отметить, это точка с запятой ";" на линии 4. Точка с запятой отмечает остальную часть строки как комментарий. Все напечатанное после точки с запятой на этой строке при компилировании скрипта будет проигнорировано. Комментарии используются, чтобы объяснить код, это поможет вам и другим быстро понять, что происходит в скрипте на определенных строках. Если вы хотите написать более чем одну строку с комментарием, то точку с запятой нужно ставить в начале каждой строки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]