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