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

Вылет при исполнении скрипта

К сожалению, на то есть масса причин. Многое связано с неустановкой "do once"-условий (например, вызов определенной функции в каждом кадре). Другие известные проблемы: Удаление объектов со скриптом из этого же скрипта. Использование Equip на любой вещи, кроме зелий (исправлено Трибуналом). Чтение заклинаний с активатора (исправлено Трибуналом). Использование AIActivate на дверях, ведущих из активной ячейки. Попытка использовать PlaceItem с тем же Object ID, на котором и запущен скрипт. Использование SetDelete на неотключенных объектах.

Вылет при загрузке плагина

Одна из причин этого — слишком длинные вычисления: такое может произойти со слишком длинной цепочкой сложений (например, сложение более 20 переменных в одной строке кода), что приведет к вылету при загрузке мода. Если это происходит, разбейте вычисления на несколько строк.

Приложение Новые функции Трибунала

Трибунал привнес ряд новых функций, исправлений и расширений старых. При этом и вы и пользователь мода должны иметь Трибунал (или Бладмун, или версию GOTY), чтобы использовать их, так что уведомляйте о необходимых дополнениях. Функции сейчас отсортированы в основном документе, но этот список может служить вам простым справочником, чтобы узнать функции от Трибунала. (огромное спасибо Mike Lipari из Bethsoft за то, что поделился этой информацией)

Изменения / исправления скриптов Морровинда:

  • SetPos принимает переменные типа float.

  • SetAngle принимает переменные типа float.

  • Equip работает как задумано и NPC надевает броню и одежду.

  • AIActivate частично исправлен.

Список новых функций Трибунала:

AddToLevCreature

AddToLevItem

ClearForceJump

ClearForceMoveJump

ClearForceRun

DaysPassed (variable)

DisableLevitation

EnableLevitation

ExplodeSpell

ForceJump

ForceMoveJump

ForceRun

GetArmorType

GetCollidingActor

GetCollidingPC

GetForceJump

GetForceMoveJump

GetForceRun

GetPCJumping

GetPCRunning

GetPCSneaking

GetScale

GetSpellReadied

GetSquareRoot

GetWaterLevel

GetWeaponDrawn

GetWeaponType

HasItemEquipped

HurtCollidingActor

ModScale

ModWaterLevel

PlaceItem

RemoveFromLevCreature

RemoveFromLevItem

SetDelete

SetJournalIndex (?)

SetScale

SetWaterLevel

Новые функции Бладмуна

Второе дополнение к Морру, Bloodmoon, привносит еще немного функций. При этом и вы, и пользователь мода должны иметь Бладмун, чтобы использовать их, так что уведомляйте о необходимых дополнениях.

Список новых функций и переменных Бладмуна:

AllowWereWolfForceGreeting

BecomeWerewolf

GetPCInJail

GetPCTraveling

GetWerewolfKills

IsWerewolf

PCKnownWerewolf PlaceAtMe

SetWerewolfAcrobatics

TurnMoonRed

TurnMoonWhite

UndoWerewolf

Ранее недокументированные функции

Эти функции не документированы в хелпе. Я описал большинство из них выше в этом руководстве, однако, использование некоторых для меня неизвестно. Я подумал, что будет не лишним перечислить их здесь для упрощения обзора. Этот список составлен с помощью HEX-редактирования Morrowind.exe, поэтому, скорее всего, является полным. (спасибо Soralis-у, XPCagey и другим, кто помогал с этим).

Не документировано в хелпе:

PayFineThief

EnableStatReviewMenu

GetFactionReaction

ShowMap

EnableBirthMenu

EnableClassMenu

EnableRaceMenu

EnableNameMenu

RemoveEffects

EnableMagicMenu

EnableMapMenu

EnableInventoryMenu

EnableStatsMenu

GetInterior

GetLineOfSight (alias for GetLOS?)

GetWindSpeed

GetCurrentTime

ResetActors

OutputRefInfo

MenuTest

Функции с написанием, отличным от документированного (XPCagey):

getHealthRatio -> getHealthGetRatio

getInvisible -> getInvisibile

setInvisible -> setInvisibile

modInvisible -> modInvisibile

getSecundusPhase -> getSecundaPhase

(верное написание справа)

И которые не работают:

getPlayerViewSwitch -> (не используется)

OnRepair -> не в строковых таблицах

UsedOnMe -> не в строковых таблицах

name -> не в строковых таблицах

Также помните, что большинство консольных команд можно использовать в скриптах (см список ниже). Многие из них не указаны в хелпе.

Функции в виде переменных:

Это список всех функций, которые вы должны объявить внутри скрипта как локальные переменные для того, чтобы использовать их.

Локальные переменные, устанавливаемые игрой:

Short OnPCEquip

Short OnPCAdd

Short OnPCRepair

Short OnPCSoulGemUse

Short OnPCHitMe

Float minimumProfit (Tribunal)

Локальные переменные, которые могут быть установлены как флаг:

Short Companion (Tribunal)

Short PCSkipEquip

Особые глобальные переменные

Некоторые глобальные переменные содержат специальные значения, которые можно использовать в своих скриптах. Поскольку они являются глобальными, объявлять их не нужно.

Short NPCVoiceDistance (750)

Используется как расстояние, на котором NPC окликают персонажа, когда не могут за ним угнаться (для примера посмотрите DandsaScript)

Float GameHour

Текущий час дня (0-23)

Short Day

Текущий день месяца (1-30)

Short Month

Текущий месяц года (0-11)

Short Year (427)

Текущий год

Float TimeScale (30)

Определяет соотношение игрового и реального времени

Short Random100

Каждый раунд это число устанавливается в случайную позицию от 1 до 100

Short PCRace

Содержит расу персонажа.

(1=аргонианин, 2=бретон, 3=данмер, 4=альтмер, 5=имперец, 6= хаджит, 7=норд, 8=орк, 9=редгард, 10=босмер).

Short PCVampire

Статус вампиризма:

0=не был, 1=вампир, -1= излеченный

Short VampClan

Если игрок – вампир, эта переменная определяет его клан: 1=Аунда, 2=Берне, 3=Куарра

Short DaysPassed

Tribunal: Содержит число дней с начала игры Bloodmoon: частично сломана (Информация с форума / JOG)

Short PCWerewolf

Статус оборотня: 0=Человек, 1=Оборотень, -1=Излечившийся

Float WerewolfClawMult (25.00)

Увеличивается во время заданий Оборотня, чтобы сделать атаку когтями более мощной.

Short PCHasGoldDiscount

В диалогах. 1 – игрок имеет достаточно золота, чтобы заплатить штраф в Гильдии Воров.

Short PCHAsTurnIn

В диалогах. 1 – игрок имеет достаточно золота, чтобы заплатить штраф, когда сдается.

Short PCHasCrimeGold

В диалогах. 1 – игрок имеет достаточно золота, чтобы заплатить.

Short CrimeGoldTurnIn

Золота за уменьшенный штраф

CrimeGoldDiscount

Золото за штраф в Гильдии Воров