Задача 5: Ловушка (простая)
Автор: Visman
Задача:
Чтобы усложнить игроку жизнь сделаем ловушку в виде ядовитого тумана, который можно разместить в различных местах игрового мира.
Решение:
Понадобится активатор в виде тумана и конечно скрипт для обработки столкновений активатора и объекта.
Для создания активатора в папку
Oblivion\Data кидаем файл
trigzonecloud.nif.
Создайте новый активатор
svaActivatorTestQ5 и выберите для него модель
trigzonecloud.nif. Скрипт пока не прописывайте.
Создаем новое заклинание
svaSpellTestQ5 в
Spell. Название "Ядовитый туман", тип "Spell", эффект "Понижение здоровья" (сила 5, длительность 3), область действия Touch.
Создаем и сохраняем новый скрипт
svaScriptTestQ5. Тип скрипта
Object (задаем в поле
Script Type).
scn svaScriptTestQ5
float fireTimer ; храним время до следующего поражения актера
short activated ; триггер, показывает сработала ловушка или нет
ref rS ; ссылка на актера, который попал в туман
; обрабатываем столкновения с актерами
begin onTriggerActor
if activated == 0 ; если ловушка еще/уже не сработала
Set rS to GetActionRef ; получаем ссылку на актера в тумане
cast svaSpellTestQ5 rS ; накладываем на него наше заклинание понижения здоровья
set activated to 1 ; указываем, что ловушка активирована
set fireTimer to 1 ; таймер до следующего срабатывания устанавливаем на 1 секунду
endif
end
; работаем в игровом режиме
begin gameMode
; ниже обрабытываем таймер с помощью ф-ии getSecondsPassed
; и по прошествии 1 сек устанавливаем ловушку в готовое положение (activated=0)
if activated == 1
if fireTimer > 0
set fireTimer to fireTimer - getSecondsPassed
endif
if fireTimer <= 0
set activated to 0
endif
endif
end
Пропишите данный скрипт в активаторе
svaActivatorTestQ5.
Разместите активатор в игровом мире (например в Торговом районе Имперского города) и проверьте его работу.
Замечания:
1. Одномоментно больше одной цели не обрабатывается при столкновениях с активатором.
2. Лучше разместить несколько маленьких туманов рядом, чем один большой, если ловушку будут посещать несколько целей разом.
Задания:
1. Измените скрипт так, чтобы он действовал только на игрока.
2. Измените скрипт так, чтобы он стал смертельным для игрока (используйте два разных подхода к этому решению).
Оглавление