Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скрипты Morrowind.doc
Скачиваний:
92
Добавлен:
29.10.2018
Размер:
2.81 Mб
Скачать

Id камней душ:

Misc_SoulGem_Azura

Misc_SoulGem_Grand

Misc_SoulGem_Greater

Misc_SoulGem_Common

Misc_SoulGem_Lesser

Misc_SoulGem_Petty

Эта функция не использовалась в оригинальной игре.

Добавление и удаление заклинаний и проклятий

AddSpell, "SpellID"

RemoveSpell, "SpellID"

"Actor_ID" -> AddSpell "Absorb Speed"

Функция AddSpell добавит заклинание вызывающему объекту. Это означает следующее: обычные заклинания добавятся в список заклинаний игрока. Проклятья, болезни и т.д. будут наложены на вызывающий объект. То же верно для функции RemoveSpell: обычные заклинания удаляться из списка, проклятья и болезни уберутся как эффект.

Примечание: Нельзя удалять расовые характеристики этой функцией (информация с форумов).

Кастование заклинаний

Cast, SpellID, "TargetID"

Object_ID -> Cast, "flame", Player

Функция Cast заставляет вызывающий объект кастовать заклинание "SpellID" в цель "TargetID", и на цель будут влиять положительные или отрицательные эффекты заклинания.

Примечание: Считается, что функция Cast работает только для игрока. По крайней мере, с Трибуналом (не уверен насчет ранних версий), вы можете использовать Cast для того, чтобы «метать» заклинание с активатора на актера – возможно, другие комбинации также работают.

Пример: Функция Cast может использоваться для ловушек, как в следующем скрипте, прикрепленном к Контейнеру. Учтите, что здесь есть однократное условие, так что эффект не будет накладываться на игрока постоянно.

Begin Trap_script short done if ( OnActivate == 1 ) if ( done == 1 ) ;однократное условие Activate return else Cast, "flame", Player ;повредить игрока set done to 1 Activate endif endif End trap_script

Следующий пример использует функцию AddSpell:

begin Item_Cast short OnPCEquip short CurseAdded float Timer if ( CurseAdded )

set Timer to ( Timer + GetSecondsPassed ) if ( Timer >= 25 ) ; по прошествии 25 сек удалить заклинание. 25 очков здоровья снято. set Timer to 0 Player->RemoveSpell "ItemFlame"

set CurseAdded to 0 endif endif if ( OnPCEquip ); когда предмет надет if ( MenuMode ) return elseif ( CurseAdded == 0 ) Player->AddSpell "ItemFlame" ; заклинание типа «проклятье»!

;заклинание, наносящее одни пункт повреждения огнем в секунду set Timer to 0 set CurseAdded to 1 elseif ( CurseAdded ) ; Добавить заклинание только раз Player->RemoveSpell "ItemFlame" set CurseAdded to 0 endif end Item_Cast

(скрипт от Patrin, отредактированный)

Добавленное заклинание — это самодельное проклятье, поражающее огнем на одно очко здоровья каждую секунду. Заметьте, что здесь снова есть условие do once, встроенное в скрипт. Если условия do once не будет, то это может привести к краху игры! Также, похоже, что существо, убитое заклинанием типа проклятие, добавит ко всем таким существам это проклятие. Этого можно избежать, вызывая RemoveSpell в секции OnDeath38. (Информация с форумов / Argent)

Некоторая информация по различным типам заклинаний: Характеристика, отнимающая здоровье, повреждает МАКСИМАЛЬНОЕ здоровье, а Проклятие нет. Это, похоже, не относится к увеличивающим и уменьшающим эффектам (Информация с форумов / ManaUser).