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

Автор: Visman

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

Решение:
Сложность задачи в том, что нам нужно знать ссылку на предмет, чтобы манипулировать им. И без 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. Попробуйте сделать управление автоподбором через меню (которое вызывается заклинанием), где можно было бы выбрать тип подбираемых предметов и их стоимость (дешевые не брать :) ).


Оглавление