- •8.1 Основные сведения 154
- •Предметные указатели по функциям (поиск и навигация) Предметный указатель по функциям Обливиона
- •Предметный указатель по консольным функциям
- •1. Предисловие к первому изданию
- •Немного о скриптах
- •Предпосылки для написания нового учебника - osfm
- •Реализация проекта osfm
- •Состав учебника osfm v1.2
- •Полезные ссылки на obse
- •Источники информации и проект
- •О нашей команде
- •Благодарности
- •И в заключение...
- •2. Введение
- •2.1 Как использовать это руководство.
- •2.2 Что такое скрипт?
- •2.3 Что могут скрипты?
- •2.4 Чего не могут скрипты?
- •2.5 Основные отличия в скриптинге tes 3 и tes 4
- •3. Обучающий курс
- •3.1 С чего начинать?
- •3.2 Редактор скриптов (Edit Scripts)
- •3.2.1 Основные сведения.
- •3.2.2 Пункт меню Script.
- •3.2.3 Пункт главного меню Edit.
- •3.2.4 Пункт главного меню Help.
- •3.2.5 Панель инструментов.
- •3.3 Назначение и главная цель вашего скрипта
- •3.4 Ваш первый скрипт
- •4. Основы скриптинга
- •4.1 Общая информация
- •4.2 Типы скриптов
- •4.2.1 Общие сведения о типах скриптов.
- •Локальные скрипты.
- •Нелокальные скрипты.
- •Именованные скрипты.
- •Объектные скрипты.
- •Квестовые скрипты.
- •Скрипты для магических эффектов.
- •Результирующие скрипты.
- •4.2.2 Как часто обрабатываются скрипты (Script Processing)
- •4.3 Команды (Commands)
- •4.3.1 Общие сведения о командах (Commands)
- •4.3.2 Команда Scriptname (название скрипта)
- •4.3.3 Команды объявления переменных (Declaring variables)
- •4.3.4 Команды Begin (начало блока) и End (конец блока)
- •4.3.5 Типы выполняемых блоков (BlockTypes).
- •GameMode
- •MenuMode
- •OnActivate
- •OnActorEquip
- •OnActorUnequip
- •OnAlarm
- •OnAlarmVictim
- •OnDeath
- •OnEquip
- •OnHitWith
- •OnKnockout
- •OnMagicEffectHit
- •OnMurder
- •OnPackageChange
- •OnPackageDone
- •OnPackageStart
- •OnReset
- •OnStartCombat
- •OnTrigger
- •OnTriggerActor
- •OnTriggerMob
- •OnUnequip
- •ScriptEffectFinish
- •ScriptEffectStart
- •ScriptEffectUpdate
- •4.3.6 Команда "." (точка - UseReference)
- •4.3.7 Команда Set (установить)
- •4.3.8 Команда Return (возврат)
- •4.3.9 Конструкция из команд If, ElseIf, Else, EndIf.
- •Синтаксис команд If, ElseIf, Else, EndIf
- •Операторы сравнения
- •Объединение сравнений
- •Сравнения и выражения
- •Примечания
- •4.4 Переменные (Variables)
- •4.4.1 Классификация переменных
- •Переменные
- •Классификация
- •4.4.2 Глобальные переменные (Globals)
- •Описание свойств диалогового окна Globals:
- •Глобальные переменные, обрабатываемые Oblivion.Exe:
- •Глобальные переменные, обрабатываемые в скриптах и диалогах:
- •Глобальная переменная pcVampire.
- •4.4.3 Специальные переменные (Special variables)
- •Специальные глобальные переменные:
- •Игровые месяцы:
- •4.4.4 Локальные переменные с особыми функциями:
- •4.4.5 Типы переменных
- •4.4.6 Целочисленные короткие переменные (Variable types: shortint)
- •4.4.7 Целочисленные длинные переменные (Variable types: longint)
- •4.4.8 Вещественные переменные (Variable types: floating point)
- •4.4.9 Переменные для хранения копий (Reference variable)
- •5. Ваш второй скрипт
- •5.1 Содержание
- •5.2 Введение
- •5.3 Информация о написании скриптов в Oblivion Что такое скрипт?
- •Что могут скрипты?
- •Чего не могут скрипты
- •5.4 Учебник скриптов: до написания кода.
- •Начинаем!
- •Окно редактирования скриптов
- •Что мы хотим?
- •Написание скрипта
- •5.5 Учебник скриптов: первые строки. Называем скрипт
- •Команды "Begin" и "End"
- •Выдача текстового сообщения и получение ответа от игрока.
- •Как выполняются объектные скрипты
- •5.6 Учебник скриптов: первый тест Сохранение и подготовка модификации.
- •Скрипт в игре
- •5.7 Учебник скриптов: выбор игрока, ошибки и исправления. Выбор игроком варианта ответа
- •Первые ошибки и исправления
- •5.8 Учебник скриптов: добавляем ловушку.
- •5.9 Как узнать больше.
- •5.10 Заключительные строки.
- •6. Функции в tes 4
- •6.1 Что такое функция? (Function)
- •6.2 Типы функций (Function Types)
- •6.3 Работа функций с копиями объектов
- •6.4 Описание функций tes 4 Oblivion
- •Activate
- •AddAchievement
- •AddFlames
- •AddItem
- •AddScriptPackage
- •AddSpell
- •AddTopic
- •AdvancePcLevel ( advLevel )
- •AdvancePcSkill ( advSkill)
- •CloseCurrentOblivionGate
- •CloseOblivionGate
- •CompleteQuest
- •CreateFullActorCopy
- •DeleteFullActorCopy
- •Disable
- •DisableLinkedPathPoints
- •DisablePlayerControls
- •DispelAllSpells
- •DuplicateAllItems
- •DuplicateNpcStats
- •EnableFastTravel
- •EnableLinkedPathPoints
- •EnablePlayerControls
- •EquipItem
- •EssentialDeathReload
- •EvaluatePackage ( evp)
- •ForceActorValue ( ForseAv )
- •ForceCloseOblivionGate
- •ForceFlee
- •ForceTakeCover
- •ForceWeather
- •Id погоды для консольного использования (Console iDs):
- •GetActionRef
- •GetActorValue (GetAv)
- •GetAlarmed
- •GetAmountSoldStolen
- •GetAngle
- •GetArmorRating
- •GetArmorRatingUpperBody
- •GetAttacked
- •GetBarterGold
- •GetBaseActorValue (GetBaseAv)
- •GetButtonPressed
- •GetClassDefaultMatch
- •GetClothingValue
- •GetCombatTarget
- •GetContainer
- •GetCrime
- •GetCrimeGold
- •GetCrimeKnown
- •GetCurrentAiPackage
- •GetCurrentAiProcedure
- •GetCurrentTime
- •GetCurrentWeatherPercent
- •GetDayOfWeek
- •GetDead
- •GetDeadCount
- •GetDestroyed
- •GetDetected
- •GetDetectionLevel
- •GetDisabled
- •GetDisease
- •GetDisposition
- •GetDistance
- •GetDoorDefaultOpen
- •GetEquipped
- •GetFactionRank
- •GetFactionRankDifference
- •GetFactionReaction
- •GetFatiguePercentage
- •GetForceRun
- •GetForceSneak
- •GetFriendHit
- •GetFurnitureMarkerId
- •GetGameSetting ( getGs )
- •GetGlobalValue
- •GetGold
- •GetHeadingAngle
- •GetIdleDoneOnce
- •GetIgnoreFriendlyHits
- •GetInCell
- •GetInCellParam
- •GetInFaction
- •GetInSameCell
- •GetInWorldSpace
- •GetInvestmentGold
- •GetIsAlerted
- •GetIsClass
- •GetIsClassDefault
- •GetIsCreature
- •GetIsCurrentPackage
- •GetIsCurrentWeather
- •GetIsGhost
- •GetIsId
- •GetIsSex
- •GetIsUsedItem
- •GetIsUsedItemType
- •GetItemCount
- •GetKnockedState
- •GetLevel
- •GetLockLevel
- •GetPcExpelled
- •GetPcFactionAttack
- •GetPcFactionMurder
- •GetPcFactionSteal
- •GetPcFactionSubmitAuthority
- •GetPcFame
- •GetPcInFaction
- •GetPcInfamy
- •GetPcIsClass
- •GetPcIsRace
- •GetPcIsSex
- •GetPcMiscStat
- •GetQuestVariable
- •GetRandomPercent
- •GetRestrained
- •GetScale
- •GetScriptVariable
- •GetSecondsPassed
- •GetSelf
- •GetShouldAttack
- •GetSitting
- •GetSleeping
- •GetStage
- •GetStageDone
- •GetStartingAngle
- •GetStartingPos
- •GetTalkedToPc
- •GetTalkedToPcParam
- •GetTimeDead
- •GetTotalPersuasionNumber
- •GetTrespassWarningLevel
- •GetUnconscious
- •GetUsedItemActivate
- •GetUsedItemLevel
- •GetVampire
- •GetWalkSpeed
- •GetWeaponAnimType
- •GetWeaponSkillType
- •GetWindSpeed
- •GoToJail
- •HasFlames
- •HasMagicEffect
- •HasVampireFed
- •IsActionRef
- •IsActor
- •IsActorAVictim
- •IsActorDetected
- •IsActorEvil
- •IsCloudy
- •IsContinuingPackagePcNear
- •IsCurrentFurnitureObj
- •IsCurrentFurnitureRef
- •IsEssential
- •IsFacingUp
- •IsGuard
- •IsHorseStolen
- •IsIdlePlaying
- •IsLeftUp
- •IsOwner
- •IsPlayersLastRiddenHorse
- •IsPleasant
- •IsRaining
- •IsRidingHorse
- •IsRunning
- •IsShieldOut
- •IsSneaking
- •IsSnowing
- •IsSpellTarget
- •IsSwimming
- •IsTalking
- •IsTimePassing
- •KillAllActors
- •LoopGroup
- •MenuMode (Function)
- •Message
- •MessageBox
- •ModActorValue
- •ModAmountSoldStolen
- •ModBarterGold
- •ModCrimeGold
- •ModDisposition
- •ModFactionRank
- •ModFactionReaction
- •ModPcAttribute
- •ModPcFame
- •ModPcInfamy
- •ModPcMiscStat
- •ModPcSkill
- •ModScale
- •MoveToMarker
- •PayFine
- •PayFineThief
- •PickIdle
- •PlaceAtMe
- •PlayBink
- •PlayGroup
- •PlayMagicEffectVisuals
- •PlayMagicShaderVisuals
- •PlaySound
- •PlaySound3d
- •PositionCell
- •PositionWorld
- •PreloadMagicEffect
- •RefreshTopicList
- •ReleaseWeatherOverride
- •RemoveAllItems
- •RemoveFlames
- •RemoveItem
- •RemoveMe
- •RemoveScriptPackage
- •RemoveSpell
- •Resurrect
- •SameFaction
- •ScriptEffectElapsedSeconds
- •SelectPlayerSpell
- •SendTrespassAlarm
- •SetActorAlpha
- •SetActorFullName
- •SetActorRefraction
- •SetActorValue
- •SetAlert
- •SetAllReachable
- •SetAllVisible
- •SetAngle
- •SetAtStart
- •SetBarterGold
- •SetCellFullName
- •SetCellOwnership
- •SetCellPublicFlag
- •SetClass
- •SetCombatStyle
- •SetCrimeGold
- •SetDestroyed
- •SetDoorDefaultOpen
- •SetEssential
- •SetFactionRank
- •SetFactionReaction
- •SetForceRun
- •SetForceSneak
- •SetGhost
- •SetIgnoreFriendlyHits
- •SetInCharGen
- •SetInvestmentGold
- •SetItemValue
- •SetLevel
- •SetNoAvoidance
- •SetNoRumors
- •SetOpenState
- •SetOwnership
- •SetPcExpelled
- •SetPcFactionAttack
- •SetPcFactionMurder
- •SetPcFactionSteal
- •SetPcFactionSubmitAuthority
- •SetPcFame
- •SetPcInfamy
- •SetPcSleepHours
- •SetPackDuration
- •SetQuestObject
- •SetRestrained
- •SetRigidBodyMass
- •SetScale
- •SetSceneIsComplex
- •SetShowQuestItems
- •SetSize
- •SetStage
- •SetUnconscious
- •SetWeather
- •ShowRaceMenu
- •ShowSpellMaking
- •SkipAnim
- •StartCombat
- •StartConversation
- •StartQuest
- •StopCombat
- •StopCombatAlarmOnActor
- •StopLook
- •StopMagicEffectVisuals
- •StopMagicShaderVisuals
- •StopQuest
- •StopWaiting
- •StreamMusic
- •ToggleActorsAi
- •TrapUpdate
- •TriggerHitShader
- •UnequipItem
- •VampireFeed
- •WakeUpPc
- •WhichServiceMenu
- •7. Console Functions
- •7.1 Общие сведения.
- •7.2 Полный перечень консольных функций.
- •7.3 Описания консольных функций (Console functions)
- •FlushNonPersistActors (Flush)
- •FreezeRenderAccumulation (fra)
- •OutputMemStats (oms)
- •PickRefById (prid)
- •PlayerSpellBook (psb)
- •PrintAiList (Pai)
- •PrintHdrParam (php)
- •PrintNpcDialog (pDialog)
- •PurgeCellBuffers (pcb)
- •SetCameraFov (fov)
- •SetClipDist
- •Отрицательные числа
- •Interior Cell Buffer: [int] (буфер интерьеров)
- •14 И выше…
- •8.1 Основные сведения
- •8.2 Различия в версиях.
- •8.3 Установка obse:
- •8.4 Диагностика и проблемы
- •8.5 Типы скриптовых функций obse
- •9. Заключение.
- •Дерзайте и да пребудет с вами удача!
OnHitWith
Синтаксис:
-
begin OnHitWith ObjectID (не обязательно)
Пример:
-
begin OnHitWith SuperWeapon
Этот блок исполняется один раз, когда заскриптованный актер получает удар указанным оружием (ObjectID). Если параметр не используется, блок будет выполняться, когда заскриптованный актер получает удар любым оружием.
В игре Обливион блок-тип OnHitWith используется 7 раз. Примеры скриптов: CGRopeBucketScript, Dark05MotierreScript, Dark09AdamusScript
OnKnockout
Синтаксис:
-
begin OnKnockout
Этот блок исполняется один раз, когда заскриптованный актер отправляется в нокаут.
В игре Обливион блок-тип OnKnockout не используется.
OnLoad
Синтаксис:
-
begin OnLoad
Этот блок исполняется один раз, когда загружается модель объекта, то есть когда игрок заходит в интерьер, ячейка с объектом загружается в область 5x5 вокруг игрока.
В игре Обливион блок-тип OnLoad используется 95 раз. Примеры скриптов: ARGateAUTOCLOSE01SCRIPT, ARTallWallCarvingAnim01SCRIPT
OnMagicEffectHit
Синтаксис:
-
begin OnMagicEffectHit EffectID
Пример:
-
begin OnMagicEffectHit FIDG
Этот блок исполняется один раз, когда указанный тип магического эффекта (EffectID) ударяет по заскриптованному объекту. Если эффект не указан, блок будет выполняться, когда любой эффект ударяет по объекту.
В игре Обливион блок-тип OnMagicEffectHit используется 7 раз. Примеры скриптов: JskarScript, MG05RockScript, MG10ColumnScript
OnMurder
Синтаксис:
-
begin OnMurder ActorID (не обязательно)
Пример:
-
begin OnMurder SuperChampion
Этот блок выполняется один раз, когда указанный актер (ActorID) совершает убийство (преступление) заскриптованного актера. Если параметр не используется, блок выполняется, когда совершается убийство заскриптованного актера (неважно кем).
В игре Обливион блок-тип OnMurder используется 10 раз. Примеры скриптов: DarkExiledScript, DarkWrathofSithis2Script, DarkWrathofSithisScript
OnPackageChange
Синтаксис:
-
begin OnPackageChange PackageID
Пример:
-
begin OnPackageChange FollowPlayerPackage
Этот блок выполняется один раз, когда заскриптованный актер меняет пакет ИИ с указанного (PackageID) на другой. Заметьте, что "прерывающие" пакеты, такие, как бой или разговор, не запускают этот блок, поскольку они лишь временно заменяют текущий пакет. Блок запускается, когда актер меняет пакет ИИ на другой. Если указанный пакет завершается, но актер снова начинает его исполнять, OnPackageChange НЕ запустится.
В игре Обливион блок-тип OnPackageChange используется 32 раза. Примеры скриптов: AlessiaCaroScript, BarthelGernandScript, BaurusScript
