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

4.4.9 Переменные для хранения копий (Reference variable)

Как и другие переменные, переменные для хранения копий (ref) должны быть объявлены до их использования:

ref refVarName

Их можно использовать во всех функциях, которые работают с копиями объекта. Неинициализированные ref-переменные указывают на сам объект, в скрипте которого они были объявлены; в остальных случаях они ссылаются на указанный объект. Ref-переменная, объект которой не находится в памяти (например, статический объект, когда игрок вышел из ячейки, где он находится) считается неинициализированной. Вы можете присвоить значение ref-переменной, используя команду set. Обычно для этого вы будете использовать функцию, возвращающую formID. Например:

set myRef to GetContainer

Можно задавать значения переменных, объявленных на другом объекте:

set BobRef.myRef to GetSelf

Проверка того, что переменная не инициализирована:

if myReferenceVariable == 0   

Чтобы проверить, инициализирована ли переменная:

if myReferenceVariable != 0

Чтобы проверить, указывает ли переменная на другую копию (например, на игрока):

if myReferenceVariable == player

или другую копию:

if myReferenceVariable != player

Пример:

scn TheMastersSword     ; кто оденет, тот получит +50 к навыку "Мечи" 

ref UserRef  begin OnEquip      set UserRef to GetContainer      UserRef.Modactorvalue blade 50  end  begin OnUnEquip      set UserRef to GetContainer      UserRef.Modactorvalue blade -50  end

Помните, что ссылки на непостоянные предметы недоступны, когда объект не находится в памяти (например, в другой ячейке). То же самое относится к предметам, находящимся в контейнере. Попытка доступа к недоступным переменным может не иметь никакого эффекта, а может привести и к вылету из игры. В TES 4 CS есть механизмы, не позволяющие прямо запрашивать доступ к подобным объектам, но вы можете обойти их с помощью ref-переменных.

Делайте это на свой страх и риск...

5. Ваш второй скрипт

Источник: http://cs.elderscrolls.com/constwiki/index.php/Scripting_Tutorial:_My_Second_Script Автор: Grundulum Перевод: Eugene

Мы включили это руководство из WIKI полностью. Оно содержит уже известные вам основы скриптинга, но мы сочли, что это даже хорошо, поскольку, как известно, «повторение - мать учения».

5.1 Содержание

    1. Содержание

    2. Введение

    3. Информация о написании скриптов в Oblivion 

•   Что такое скрипт?  •   Что могут скрипты?  •   Чего не могут скрипты 

    1. Учебник скриптов: до написания кода 

•   Начинаем!  •   Окно редактирования скриптов  •   Что мы хотим?  •   Написание скрипта 

    1. Учебник скриптов: первые строки 

•   Называем скрипт  •   Функции "Begin" и "End"  •   Выдача текстового сообщения и получение ответа от игрока  •   Как выполняются объектные скрипты 

    1. Учебник скриптов: первый тест 

•   Сохранение и подготовка модификации  •   Выполнение скрипта в игре 

    1. Учебник скриптов: выбор игрока, ошибки и исправления

•   Выбор игроком варианта ответа  •   Первые ошибки и исправления 

    1. Учебник скриптов: добавляем ловушку 

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

    3. Последние строки

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