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

Задача 7: Автоподбор (ф-ии obse)

Задача:

Хочу, чтобы предметы, встречающиеся на моем пути, автоматически брались и добавлялись в мой инвентарь :)

Решение:

Сложность задачи в том, что нам нужно знать ссылку на предмет, чтобы манипулировать им. И без OBSE тут ни куда.

В расширенных функциях есть ф-ия GetCrosshairRef, которая выдает ссылку на объект игрового мира, который находится в области действия руки игрока и его прицеле.

Создаем и сохраняем новый скрипт svaScriptTestQ7. Тип скрипта Quest (задаем в поле Script Type).

scn svaScriptTestQ7

float fQuestDelayTime ; спец.перемнная, задает частоту выполнения квестового скрипта

ref Templar ; переменная для хранения ссылки на объект с которым работаем

long lType ; переменная для хранения типа объекта-цели

; работаем в игровом режиме

Begin GameMode

Set fQuestDelayTime to 0.1 ; скрипт будет выполняться 10 раз в секунду

Set Templar to GetCrosshairRef ; определяем объект который находится перед игроком в его прицеле

Set lType to GetObjectType Templar ; определяем тип этого объекта

; если объект удовлетворяет условию (коды типов объектов игры смотрите в описании OBSE раздел Type Codes)

if (lType == 20 || lType == 22 || lType == 25 || lType == 27 || lType == 33 || lType == 34 || lType == 38 || lType == 39 || lType == 40 || lType == 42 )

Templar.Activate Player ; активируем этот объект игроком

endif

End

Дальше создаем квест svaQuestTestQ7. Ставим галку Start Game Enabled для автостарта квеста и выбираем скрипт svaScriptTestQ7 в выпадающем списке Script.

Сохраняем квест, плагин и идем его тестировать.

Задания:

1. Измените скрипт так, чтобы автоподбор чужого предмета не считался воровством и не приводил к вызову стражи. (Смотрите ф-ию SetOwnership)

2. Измените скрипт так, чтобы автоподбор не применялся к чужим предметам. (Смотрите ф-ию OBSE GetOwner и др. ф-ии раздела Ownable. Возможно пригодится стандартная ф-ия IsOwner)

3. Добавьте в плагин скриптовое заклинание, которое будет вкл/выкл автоподбор. (С автдобавлением заклинания игроку, но без добавления нового квеста)

4. Сделайте замедление автоподбора для удерживаемого предмета в фокусе (а то из инвентаря нельзя выложить предмет пока автоподбор работает).

5. Попробуйте сделать управление автоподбором через меню (которое вызывается заклинанием), где можно было бы выбрать тип подбираемых предметов и их стоимость (дешевые не брать :) ).