Задача 3: Автоактивация
Автор: Visman
Задача:
Требуется заставить фонарь зажигать пламя при приближении и тушить его при удалении игрока.
Решение:
Используем ф-ию
GetDistance для определения расстояния от объекта до игрока.
Сначала подготовим фонарь. Его создадим из объекта
IronOutdoorLampPostYellow256, который находится в источниках света
Light.
Переименуем его
Editor ID в
svaLampPostTestQ3 и на вопрос "Create a new object?" ответим "Да".
Далее создаем и сохраняем новый скрипт
svaScriptTestQ3. Тип скрипта
Object (задаем в поле
Script Type).
scn svaScriptTestQ3
short flag; переменная будет отвечать за пламя (горит или нет)
; при загрузке объекта в игру
Begin OnLoad
; производим первоначальную настройку пламени
if ( GetDistance Player >= 300 ); если игрок далеко
RemoveFlames ; удаляем пламя
Set flag to 0 ; и переводим флаг в 0
else ; иначе игрок близко
AddFlames; значит добавляем пламя
Set flag to 1 ; и переводим флаг в 1
endif
End
; в игровом режиме
Begin GameMode
if ( flag == 0 ) ; если флаг указывает на то, что пламя не горит
if ( GetDistance Player < 300 ) ; проверяем положение игрока на близость к фонарю и если он близко
AddFlames ; включаем пламя
Set flag to 1 ; и флаг
endif
else ; иначе флаг указывает на горение пламени
if ( GetDistance Player > 400 ) ; тогда проверяем положение игрока на удаленность и если он далеко
RemoveFlames ; выключаем пламя
Set flag to 0 ; и флаг
endif
endif
End
Затем вернитесь к объекту
svaLampPostTestQ3 в источниках света и пропишите в его свойствах скрипт
svaScriptTestQ3. И установите радиус освещения
Radius данного источника света равным 16 (чтобы не смущал :) ).
После этого поставьте два таких фонаря недалеко друг от друга в Торговом районе Имперского города и протестируйте их работу.
Задания:
1. Измените скрипт так, чтобы пламя пропадало не сразу после удаления игрока от фонаря, а через 10 секунд. (
Смотрите ф-ию GetSecondsPassed)
2. Измените скрипт так, чтобы каждый раз при включении пламени на игрока кастовался огненный шар (заклинание
StandardFireDamageArea3Journeyman). (
Смотрите ф-ию Cast)
3. Создайте новый сундук и разместите на нем этот скрипт. Скрипт измените так, чтобы при приближении игрока к сундуку, сундук активировался автоматически (т.е. открывалось меню обмена вещами). (
Смотрите ф-ию Activate)
4. Переделайте скрипт так, чтобы при первом посещении сундука возле него появлялось два бандита. (
Смотрите ф-ию PlaceAtMe)
Оглавление