Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скрипты Morrowind.doc
Скачиваний:
92
Добавлен:
29.10.2018
Размер:
2.81 Mб
Скачать

Как узнать больше?

После этого обучающего курса, вы можете спросить себя, как можно продолжить обучение скриптам. Хороший способ – это изучать примеры в этом руководстве или скрипты работающие в игре (от Bethesda или других модов). Найдите скрипт, результат которого сходен с тем, что вы хотели бы получить, скопируйте его и приспособьте под ваши нужды. Разбиение функций в этом руководстве по тематическим группам поможет вам найти нужную. Наконец, официальные форумы – это ценные места, где можно найти информацию или получить помощь по интересующему вопросу. Всего остального можно добиться практикой, практикой, практикой

Общая информация: скрипты, команды и синтаксис

Типы скриптов

Локальные скрипты

Всякий скрипт, который присвоен объекту или актеру в игре (через выпадающее окно скриптов в окне объекта или актера), является локальным скриптом. Локальные скрипты выполняются, если только загружена ячейка с ними – внутренняя или наружная и соседние с ней. Когда объект со скриптом не удовлетворяет этим условиям, то скрипт не исполняется, но локальные переменные в нем сохраняются.

Глобальные скрипты

Всякий скрипт, не присвоенный никакому объекту является глобальным скриптом, и по умолчанию не исполняется до тех пор, пока вы его не вызовете (см. ниже). Заметьте, что для глобального скрипта не существует объекта по умолчанию, с которым он работает, поэтому все объекты должны явно указываться: хотя подобная команда будет работать в локальном скрипте на NPC:

AITravel 1150, 8899, 1110

Вам придется указать NPC в глобальном скрипте:

“NPC_ID” -> AITravel 1150, 8899, 1110 ; NPC_ID уникальный идентификатор для

; каждого объекта в редакторе

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

Команда для вызова неактивного скрипта:

StartScript, "Script ID"

С Трибуналом или Бладмуном есть возможность запускать скрипт автоматически в начале игры. В CS в меню Gameplay/Edit starting Scripts вы можете добавить любой скрипт в список автоматически запускаемых скриптов.

Команда для завершения глобального скрипта:

StopScript, "Script ID"

Есть возможность использовать функцию StartScript для запуска глобальных скриптов, привязанных к объекту или актеру. Такие скрипты называются “нацеленные скрипты”.

"Object_ID" -> StartScript "Script_ ID"

Такие скрипты напоминают и локальные (так как есть объект по умолчанию – тот объект или актер, к которому привязан скрипт) и глобальные (скрипт постоянно выполняется и может быть завершен функцией StopScript)

Примечание: Прочтите больше о “нацеленных скриптах” в разделе Советы и Трюки.

Синтаксис

Существует особенности скриптов TES, которые нужно объяснить до того, как мы пойдем разбирать их дальше.

Начало и завершение скриптов

Begin Script_ID

End

End Script_ID

Каждый скрипт должен иметь команду Begin и End. Имя «Script_ID» - это имя скрипта, по которому он будет отличаться от других. Скрипт может начинаться и с комментариев, но первой строчкой кода должен быть «Begin xxxxx»7. Как и с другими объектами, рекомендуется давать скрипам уникальное имя. Я лично использую GBG_Scriptname. Так все мои скрипты легко находятся в одном блоке в списке скриптов и вряд ли будут конфликты с модами, использующими такое же имя. Использовать подчеркивание (т.е. _Scriptname) не рекомендуется8.