Где находятся скрипты в скайриме

Опубликовано: 26.03.2024

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

  • Основные конструкции скриптов, и то, как они работают, а так же присоединение их к объектам в Creation Engine
  • Как реагировать на события в новом скриптовом языке

(Для еще более простого введения в Скрипты см. учебник "Hello, World".)

Скриптовой язык, используемый в Creation Kit называется Papyrus (также, как материал, на котором печатаются свитки). Papyrus скрипты - это обычные текстовые файлы, которые превращаются в байт-код, который игра выполняет во время работы.

NewFeature.jpg
Новая система похожа на старую TESScript, но требует несколько иной образ мышления. Вы больше не можете напрямую управлять объектами в мире; она теперь является поточной так что ваш скрипт может быть прерван в середине выполнения; и в ней чаще используются такие вещи, как круглые скобки. Вкратце, она больше похожа на "настоящий" язык программирования, как например Lua или Python. Если вы знакомы с TESScript, советуем вам посмотреть руководство по переходу на Papyrus.

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

Откройте актера GSQThief, которого мы создали ранее. Обратимся к секции "Papyrus Scripts" окна Actor.

ActorWindowScriptsArea.jpg

AddScriptWindow.jpg

Это вызовет ещё одно окошко, в котором вы можете указать имя вашего скрипта. Задайте ему имя "GSQThiefScript" и нажмите "OK".

AddNewScriptWindow.jpg

Теперь ваш скрипт добавлен актеру. Но, как и следовало ожидать, он пока ничего не делает, но это пока что.

ScriptAdded.jpg

Двойной щелчок по названию скрипта, чтобы вызвать окно Properties Window для выбранного скрипта. Сами по себе скрипты не знают о каких-либо объектах в игре, кроме того, к которому они прикреплены. Мы используем свойства для сцепления объектов вместе, чтобы они могли воздействовать друг на друга. В нашем случае, мы хотим установить этап квеста GSQ01 равный 20, когда вор был убит, поэтому нам нужно сообщить скрипту с каким квестом мы работаем.

EmptyPropertiesWindow.jpg

Нажмите на кнопку "Add Property" в нижней левой части этого окна. Тут мы и будем создавать свойство. В поле Type, либо выберите "Quest" из выпадающего списка, либо начните набирать слово "Quest" на клавиатуре. Вставьте "TutorialQuest" в поле Name, а все остальное оставьте пустым и нажмите "ОК".

AddScriptPropertyWindow.jpg

Теперь мы сообщили скрипту, что он будет уделять внимание "TutorialQuest", но скрипт не знает что это за квест. В списке нажмите по свойству которое мы только что сделали , и щёлкните по "Edit Value" в правой части окна. Появится новое выпадающее меню, где перечислены все квесты в игре. Выберите "GSQ01" из этого меню и нажмите "OK".

PropertyWindowFilled.jpg

Теперь, после того, как мы добавили свойство, мы должны добавить какой-нибудь актуальный скрипт, чтобы сделать в нем какие-либо дальнейшие действия! Правый щелчок по названию скрипта и выберите "Edit Source" чтобы вызвать редактор скриптов.

ScriptWindowWithPropertyAdded.jpg

Верхняя строка ( Scriptname GSQThiefScript extends ObjectReference ), это шаблон, который редактор сделал для нас, когда мы создали скрипт. Несколькими строчками ниже находится текстовая версия свойства, которое мы сделали.

Под этим текстом, скопируйте и вставьте следующий фрагмент кода.

Снова не обращайте внимание, что значит SetObjectiveDisplayed(20)

Если вы достаточно знакомы с программированием или скриптингом, то вы поймете что делает тот код, что вы только что вставили, не бойтесь, пропустите то, что идет далее до пункта "Привязка Скрипта к Амулету ". Для всех остальных, мы пройдемся по коду построчно.

  • Event OnDeath(Actor killer)
    • Это строка обозначает, что скрипт будет производить ответ при смерти актера. Когда актер умирает, игра начнется выполнение кода с этой точки. Игра записывает в переменную "killer" того, кто убил данного актера, но эта часть сейчас не имеет для нас значения.
  • TutorialQuest.SetStage(20)
    • Как и когда мы вызывали SetStage при получении квеста в учебнике по созданию диалога, эта команда устанавливает этап квеста равный 20, для квеста, который мы задали в свойстве TutorialQuest.
    • Мы сделали отступ для удобства чтения.
  • EndEvent
    • Это означает конец обработки этого события(смерти актера).

Выберите "Save" из меню "File" (или нажмите Ctrl-S) и редактор попробует скомпилировать ваш скрипт. Выскочит окно Compiler Output -- если ваш скрипт синтаксически правильный, то оно будет выглядеть так:

CompilerOutputGood.jpg

Если вы увидите здесь что-либо другое, значит вы что-то написали неверно. Попробуйте снова!

Как закончите, закройте окно редактирования скрипта и окно Actor, и сохраните ваш плагин. Теперь пришло время заскриптить сам амулет.

Откройте предмет "GSQAmulet", который мы создали в предыдущем учебнике. В акне Armor, секция Scripts находится справа снизу.

ArmorWindowScriptArea.jpg

Создайте новый скрипт, так же ка мы делали ранее, и назовите его GSQAmuletScript. Добавьте ему свойство Quest, но, чтобы увидеть изящный трюк, назовите его в этот раз "GSQ01" вместо "TutorialQuest".

AutofilledProperty.jpg

Он автоматически установит значение свойства для вас, так как вы задали свойству имя, совпадающее с существующими ID. Если вы объявляете много свойств, этот трюк поможет сэкономить вам кучу времени.

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

Ещё раз не вдавайтесь в подробности, что тут написано. Это будет объяснено в разделе, посвященном целям.

Вот несколько вещей, которые хотелось бы отметить в этом скрипте:

  • Объявленные параметры ( newContainer и oldContainer ) заполняются игрой, когда она сообщает этому скрипту обработку события.
  • Потому что событие OnContainerChanged будет срабатывать каждый раз, когда этот объект меняет владельца, поэтому, мы должны убедиться в том, что мы устанавливаем этап квеста только тогда, когда именно игрок подбирает амулет, потому и используется блок if / endif .
  • Game.GetPlayer() это удобный способ получить ссылки на игрока без необходимости установки свойства, и newContainer был заполнен движком игры при срабатывании события, так что мы можем сделать сравнение во второй строке, чтобы убедиться, что предмет перемещается к игроку.
  • Из-за того, как написан скрипт, команда SetStage будет вызываться каждый раз, когда игрок подбирает амулет. Это не дело, потому что каждый этап квеста может произойти лишь раз - вызов команды SetStage(30) не имеет никакого эффекта после того, как она уже была вызвана в первый раз.

Ну что же, этот скрипт готов. Закройте окна script и armor, и сохраните ваш плагин.

Теперь вы можете поиграть и пройти квест от начала до конца, следите за изменением этапа квеста, введя в консоли SQV.

Игроки, которые не могут использовать консоль, научатся получать информацию о квесте в следующей главе.

Основная концепция создания SKSE - расширение функциональности и оптимизация как самой игры Skyrim LE, так и ее редактора Creation Kit. На данный момент SKSE уже достаточно функционален, он устраняет некоторые ошибки самой игры, загрузки на ПК со слабыми конфигурациями, а так же может быть использован для создания игровых модификаций и очень нужен игре и различным модам

- Все эти исправления и изменения для обычного игрока не понятны и смысловой нагрузки не несут, все что описано ниже это все касается только работы скриптов, так что все это нужно и необходимо
- Добавлен SpawnerTask для пакетного PlaceAtMe для позиционирования
- Исправлен шанс для ModEvent/UICallback, экземпляры переставали работать, если игра была сохранена+загружена между их созданием и исполнением
- Добавлено значение Spell.GetEffectMagnitudes/GetEffectAreas/GetEffectDurations/GetMagicEffects
- Добавлено значение ObjectReference.GetContainerForms/GetReferenceAliases
- Добавлено значение WornObject.GetReferenceAliases
- Добавлено значение Form.GetKeywords
- Добавлено значение StringUtil.Split
- Добавлено значение Utility.ResizeArray
- Добавлено значение Actor.ResetAI (аналог консольной функции)
- Исправлен скрипт ActorBase.GetIndexOf*
- Исправлен Utility.CreateArray initialization with empty Forms/Aliases
- Добавлена поддержка для skse.ExtendData(true) для меню enchanting/alchemy/smithing/crafting (скорее всего это для будущего SkyUI 5.0)
- Добавлено Ingredient/Potion/Scroll/Spell.GetIsNthEffectKnown/Magnitudes/Areas/Durations/MagicEffects
- Добавлено Quest.GetAliasById/GetAliases
- Исправлен Armor.ModArmorRating для отключения значимости
- Добавлено значение FormList.ToArray/AddForms
- Добавлена экспериментальная функция GameData
- Добавлены диагностические сообщения, которые помогают обнаруживать причины частых сбоев или проблем
(1) показывает, что masterfile отсутствует при крахе игры при запуске
(2) показывает списки недостающих файлов в диалоговом окне при загрузки сохранения
Оба параметра по умолчанию отключены, чтобы их включить добавьте в файл skse.ini по адресу Data/SKSE/skse.ini:
[General]
EnableDiagnostics=1

Обновление:1.07.02
- Пока это beta версия, но вполне рабочая, на заметку, после обновления до версии 1.07.02, при запуске игры, может быть задержка на несколько секунд, это происходит с перераспределением и обновлением новых файлов и изменений, потом игра запустится как обычно, далее, все последующие входы в игру будут быстрые
- Переименован скрипт Tree -> TreeObject, для избежания конфликтов с игровыми (ванильными) скриптами
- В данную версию SKSE 1.07.02 реализован функционал из данного плагина "Jaxonz Console Plugin", если у кого то установлен данный плагин "Jaxonz Console Plugin", то можете удалить его
- Добавлен скрипт Actor.GetFactions
- Добавлен скрипт Cell.GetWaterLevel
- Добавлены дополнительные функции/переменные для фракций
- Добавлен скрипт ActorValueInfo.GetCurrent/Base/MaximumValue
- Добавлен скрипт Game.GetCurrentConsoleRef
- Добавлено множество функциональных переменных для работы со скриптом NetImmerse
- Исправлен скрипт SetHarvested для обновления визуальных моделей, а также состояния объектов
- Добавлен скрипт kMessage_NewGame в SKSEMessagingInterface
- Добавлен скрипт Enchantment.Get/SetKeywordRestrictions
- Исправлена ошибка/крах который вызывался при одновременных нажатиях клавиш нажмите/отпустите
- Добавлен скрипт OnNiNodeUpdate для случайных событий ActiveMagicEffect, Alias, Form
- Добавлена экспериментальная поддержка для создания массивов размером более 128 записей
- Добавлен скрипт Game.SetPlayerLevel. Работает аналогично консольной команде SetLevel призыва игрока

Обновление:1.07.01
- Версия 1.07.01 вышла из стадии альфа, теперь это полноценный релиз, все ниже описанное даже не знаю к чему относится, все значения скриптовые, раз это все обновилось, значит все это нужно игре. На заметку, после обновления до версии 1.07.01, при запуске игры, может быть задержка на несколько секунд, это происходит с перераспределением и обновлением новых файлов и изменений, потом игра запустится как обычно, далее, все последующие входы в игру будут быстрые
- Исправлен IsValidRace для брони у всех рас
- Добавлено MagicEffect.GetCasting/DeliveryType
- Исправлен вылет при вызове UpdateWeight при отсутствующих файлов facegen у NPC
- GetTotalItemWeight, добавлено правильное вычисление переменных
- Добавлен скрипт Potion.IsPoison, GetUseSound
- Добавлен скрипт Weapon.GetTemplate
- Добавлен скрипт Ammo.IsBolt, GetProjectile, GetDamage
- Добавлен скрипт Game.GetDialogueTarget
- Добавлен параметр SKSETaskInterface::AddUITask
- Добавлена сериализация удаленных форм
- Добавлен параметр SKSEMessagingInterface
- Удалена система сообщений, уведомляющих о некорректном сохранении, загрузке
- Скриптам WornObject.GetDisplayName возвращена базовая форму-имя
- Добавлен скрипт WornObject, ObjectReference.GetPoison
- Добавлен пакет DirectX SDK, необходимый для компиляции
- Исправлен скрипт WornObject отвечающий за проверку слотов/масок
- Добавлен параметр NetImmerse.SetNodePosition
- Добавлен параметр Actor.GetFurnitureReference
- Добавлен параметр Game.GetCurrentCrosshairRef
- Добавлен парметр NetImmerse.GetRelativeNodePositionx/Y/Z
- Добавлен Actor.Set/ResetExpressionPhoneme/модификатор
- Добавлены параметры Form.HasWorldModel Get/SetWorldModelPath/NumTextureSets/NthTextureSet/SetWorldModelNthTextureSet
- Добавлен параметр HeadPart.IsExtraPart
- Добавлен параметр Form.IsPlayable
- Добавлен параметр ObjectReference.GetAllForms

Обновление:1.07.00
- Все ниже описанное даже не знаю к чему относится,все значения скриптовые,раз это все обновилось,значит это нужно
- Добавлен параметр Game.GetFormEx,который нужен для работы с formIds >= 0x80000000
- Добавлен параметр UI.Open/CloseCustomMenu
- Добавлен параметр Actor.ReplaceHeadPart, ActorBase.GetNumOverlayHeadParts, GetNthOverlayHeadPart, GetIndexOfOverlayHeadPartByType
- Добавлен параметр Math.Log
- Добавлен параметр Ingredient.GetIsNthEffectKnown
- Исправлен скрипт SetPlayerTintMaskColor alpha
- Включен временный Папирус plugin API
- Добавлен параметр ActiveMagicEffect.GetMagnitude
- Добавлен параметр Art.Get/SetModelPath
- Добавлено много MagicEffect и Tree functions
- Добавлен параметр ModEvent и UICallback
- Добавлен параметр ObjectReference.Get/SetDisplayName
- Добавлен параметр Enchantment.SetNthEffectMagnitude/Area/Duration
- Добавлен параметр Form.SetPlayerKnows
- Добавлен параметр Enchantment.GetBaseEnchantment
- Добавлен параметр Perk.GetNextPerk
- Добавлен параметр ActorValueInfo
- Добавлен параметр LeveledActor/Item/Spell
- Добавлен параметр Game.Get/SetPlayerExperience, GetExperienceForLevel
- Добавлен параметр ObjectReference.GetEnableParent, Get/Set/CreateEnchantment, GetNumReferenceAliases, GetNthReferenceAlias
- Исправлен скрипт Get/SetGoldValue для AlchemyItems
- Добавлен параметр DefaultObjectManager
- Благодаря автору патча Skyrim Memory Patch от sheson: добавлена конфигурация размеров памяти игры
[Memory]
DefaultHeapInitialAllocMB=
ScrapHeapSizeMB=

Требования:
Skyrim LE 1.9.32.0.8

Перед обновлением с 1.07.02 до 1.07.03:
- Просто установите с заменой всех файлов, удалять ничего не нужно

Перед обновлением с 1.07.01 до 1.07.02 / 1.07.03:
- Обязательно удалите всю папку src которая находится в корневой папке игры там где TESV.exe
- Удалите файл tree.pex по адресу Data/scripts
- Удалите файл tree.psc по адресу Data/scripts/Source
- Остальное ничего не удаляйте, просто установите версию 1.07.03 с заменой всех остальных файлов

Установка:
- Откройте архив, все из папки skse_1_07_03 поместить в папку с игрой (не в саму папку DATA, а в корень игры где находится запускаемый файл игры TESV.exe), подтвердить слияние папок и файлов, то есть поверх предыдущей версии с заменой всех файлов ( Data, skse_steam_loader.dll, skse_loader.exe, skse_1_9_32.dll скопировать в папку игры. Папка src не нужна! )
- Создайте файл skse.ini или скачайте файл SKSE.ini здесь, поместите его по адресу Data/SKSE и пропишите следующие строки: (но это актуально только для Windows с 64 битной разрядностью и с объемом памяти ОЗУ не меньше 4 Гб, для Windows с 32-х битной разрядностью эти строки и параметры не актуальны и толку не будет, так что если у кого Windows с 32-х битной разрядностью, то даже и не прописывайте эти параметры. )
[Memory]
DefaultHeapInitialAllocMB=768
ScrapHeapSizeMB=256
- Запуск игры только через skse_loader.exe (значок можно поместить на рабочий стол сделав ярлык на рабочий стол из папки с игрой)
- После входа в игру,нажмите паузу и в левом нижнем углу экрана вы увидите версию игры 1.9.32.0.8 и рядом будет написано 1.7.3 SKSE

На заметку:
1 - Если у вас установлен патч на увеличение производительности Skyrim Memory Patch от sheson, то просто установите SKSE 1.07.03 поверх с заменой файлов и все, файлы skse_loader.exe и skse_steam_loader.dll заменятся, файл mempatch.dll удалить в папке Data/SKSE/Plugins

2 - Если вы хотите использовать и сам SKSE 1.07.03 и SSME, то в файле SKSE.ini не добавляйте параметры:
[Memory]
DefaultHeapInitialAllocMB=768
ScrapHeapSizeMB=256

3 - Для тех, у кого игра не запускается, создайте ярлык файла skse_loader.exe поместив его на рабочий стол, откройте свойства ярлыка с помощью правой кнопки мышки и в строке "Объект" например "C:\Program Files (x86)\TES V - Skyrim\skse_loader.exe" (это у меня такой путь, у вас другой может быть), так вот, в этой строке "C:\Program Files (x86)\TES V - Skyrim\skse_loader.exe" допишите -forcesteamloader", в итоге будет так "C:\Program Files (x86)\TES V - Skyrim\skse_loader.exe" -forcesteamloader" и нажмите применить и попробуйте запустить игру. (на заметку и важно. заметьте, между skse_loader.exe" и -forcesteamloader" нужно ставить пробел, вот так должно быть skse_loader.exe" -forcesteamloader", а если так сделать skse_loader.exe"-forcesteamloader", то при сохранении изменений будет писать что неверный формат.

4 - Как объединить SKSE с лаунчером, может кому пригодится:
Запуск SKSE (игры) из лаунчера:
1) переименовать TESV.exe в папке игры в Skyrim.exe
2) переименовать файл skse_loader.exe в TESV.exe
3) создаем в папке Skyrim\Data\SKSE\ файл skse.ini
4) вписываем туда:

5)Если у кого-то этот способ не работает, значит вы делаете что-то не так.

Guten Abend, meine liebe Genossen и сегодня очередная часть "повествования" о том, как идет процесс "подгонки" Скайрима под мои нужды.

И, прежде чем продолжить, хотелось бы обратиться к новым подписчикам, которые успели появиться с момента выхода прошлой части:

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

А теперь мы продолжаем. Как вы уже успели заметить из моих предыдущих постов - я медленно, но, верно, делаю дом игрока на манер локации "Туманная роща".

Обливион - это не пещера, не дом и не замок. Простому смертному туда не попасть через дверь. Разорвать ткань Обливиона могут лишь те, кто познал мастерство магии.

Блин, да кому вообще интересен весь этот напыщенный пафос? В общем, господа, сегодня мы будем делать заклинание, которое будет телепортировать игрока в локацию и обратно. Причем не абы как, а с сохранением исходной точки! Откуда ушли, туда и пришли. А в этом нам поможет Папирус - скриптовый язык Скайрима.

Итак, начнем с простого. У нас уже имеется так называемый COCMarkerHeading, вот его и задействуем. Для тех, кто далек от этой темы - данный маркер обозначает место, в которое игрок будет телепортирован при использовании консольной команды "сос имялокации". К слову, в обычных помещениях используются схожие маркеры, определяющие, где окажется игрок после прохождения через дверь.

Основы скриптинга в Skyrim или разрываем ткань Обливиона The Elder Scrolls, The Elder Scrolls V: Skyrim, Skyrim, Creation Kit, Papyrus, Видео, Длиннопост

Также для для реализации данной задумки понадобится вспомогательная локация. Для чего она нужна? Чтобы не плодить мусор в основной локации, все объекты, которые задействованы в работе, отправляются в неё.

Таковая у меня уже имеется. В неё мы помещаем так называемый XMarkerHeading, и переименовываем в MGHMarkTeleport - так нам будет удобнее. Для чего он нужен? Об этом расскажу ниже. Также в этой локации можно заметить кучу суровых нордских мужичков - это NPC которые необходимы для нормального функционирования плодородной земли - каждая "грядка" ссылается на своего NPC. 30 посадочных мест - 30 немытых нордов. И, собственно, наш маркер:

Основы скриптинга в Skyrim или разрываем ткань Обливиона The Elder Scrolls, The Elder Scrolls V: Skyrim, Skyrim, Creation Kit, Papyrus, Видео, Длиннопост

Топаем в раздел Magic - Spell. Тут хранятся все имеющиеся заклинания. Создаем новое. Вписываем ID, имя, временный placeholder для описания, а также назначаем эффект.

Основы скриптинга в Skyrim или разрываем ткань Обливиона The Elder Scrolls, The Elder Scrolls V: Skyrim, Skyrim, Creation Kit, Papyrus, Видео, Длиннопост

Стоп, что? Какой эффект?

Ах, да, все заклинания устроены весьма интересным образом.

Spell - заклинание, которое появляется, собственно, в разделе заклинаний.

При чтении заклинания активируется привязанный эффект. Этот самый эффект и надо будет создать. Для этого топаем в Magic - Magic Effect и создаем новый. Видим кучу всего непонятного:

Основы скриптинга в Skyrim или разрываем ткань Обливиона The Elder Scrolls, The Elder Scrolls V: Skyrim, Skyrim, Creation Kit, Papyrus, Видео, Длиннопост

На самом деле, всё довольно понятно.

ID - собственно, ID.

Name - пока не разобрался, замещено placeholderom, потом глянем, где всплывет.

Effect Archetype - выставлено "Скрипт". Это значит, что магический эффект сам не будет делать ничего, а отдаст эту обязанность скрипту.

Casting type - "Выстрелил и забыл". И ежу понятно - один раз прочитали, скрипт активировался и всё. После этого можно читать еще раз.

Delivery - v subbotu указывает, на кого применяется результат заклинания - на цель, или же на себя.

Magic Skill - колдовство. Отвечает за сортировку - в какой вкладке будет заклинание.

Minimum Skill Level - пока не разобрался, что это и на что влияет.

Визуальные эффекты - подглядываем в какое-нибудь готовое заклинание и повторяем. Собственно, это и есть визуальные эффект - для огненного шторма будут эффекты огня, для ледяного лед, у нас же эффекты призыва.

Звуки - они и в Африке звуки.

А теперь самое интересное - скрипт!

Добавляется он кнопочкой Add, что справа внизу.

Но, для начала, давайте разберемся с логикой работы скрипта.

Вот, собственно, и он сам. Кому надо - забирайте.

Scriptname MGHScriptTeleport extends ActiveMagicEffect

ObjectReference Property Marker Auto
ObjectReference Property Mark Auto
Cell Property TargetCell Auto

Event OnEffectStart(Actor Caster, Actor Target)

If Caster.GetParentCell() != TargetCell
Utility.Wait(1.0)
Mark.MoveTo(Caster)
Caster.MoveTo(Marker)

Что это вообще такое? Ну, если понимать что к чему, то всё довольно понятно:

Scriptname - служебная фраза, обозначает начало скрипта.

MGHScriptTeleport - имя скрипта.

extends - служебная фраза. Дословно - "Расширяет" или же "Основывается"

extends ActiveMagicEffect - основывается на "Родителе" ActiveMagicEffect

А теперь немного логики. Вот как работает скрипт:

Для начала мы объявим "свойства":

Что есть свойства? Свойства позволяют использовать один скрипт множество раз.

К примеру, я хочу сделать два заклинания - первое телепортирует в первый дом, а второе - во второй.

Тогда бы мне пришлось писать два разных скрипта:

Через свойства это можно сделать одним скриптом:

И после этого уже сделать два заклинания и каждому сослаться:

Не понятно, да? Ладно, продолжим.

Предположим, игрок стоит в Вайтране и читает скрипт первый раз, дабы перенестись в локацию.

"Стоит в Вайтране" - то есть, стоит где угодно, но не в конечной локации.

Для того, чтобы проверить это условие, впишем строку:

If Caster.GetParentCell() != TargetCell

ПозицияИгрока НеРавна СвойствоЛокация - вот тут просто ссылаемся на нашу локацию, а не жестко прописываем её имя.

Utility.Wait(1.0) - подождать одну секунду, дабы сперва мы увидели графический эффект от чтения заклинания.

Mark.MoveTo(Caster) - "Метка" - тот самый маркер MGHMarkTeleport, который находился ранее во вспомогательной локации и на который мы ссылаемся в свойствах, передвигается на место игрока. Всё! Метка размещена и игра помнит, где она находится!

Caster.MoveTo(Marker) - Заклинатель, то есть игрок, перемещается на место, где расположен другой маркер - COCMarkerHeading, то есть, который расположен в основной локации и при перемещении на него, игрок перемещается в локацию.

С этим всё! Но, помните строчку?

"Стоит в Вайтране" - то есть, стоит где угодно, но не в конечной локации.

Но что, если игрок оказался в конечной локации? А это значит, что он уже прочитал заклинание в первый раз и оказался в конечной локации. А теперь хочет прочитать его второй раз и отправить обратно. Туда, где расположен маркер.

Эту работу осуществляет всё та же строчка кода:

If Caster.GetParentCell() != TargetCell

А нужный код помещает под условием Иначе

Utility.Wait(1.0) - ждем секунду

Caster.MoveTo(Mark) - игрок перемещается обратно на метку, которая расположилась в месте первого чтения заклинания и ждет не дождется, когда когда мы на неё вернемся.

EndIf - конец цикла "Если/То/Иначе"

EndEvent - конец кода (события, вообще-то - это немного другое)

Ничего не понятно, да?

Ладно, попробую рассказать это всё нормальным, человеческим языком:

Вот вам три свойства:

Читаем заклинание первый раз:

Нет! Значит, мы хотим туда попасть!

Размещаем Метку туда, где стоим, пусть дожидается нас.

Отправляемся в Локацию.

Читаем заклинание второй раз:

Угууу! Значит, мы хотим попасть обратно.

Тогда просто перемещаемся на метку, которая нас уже ждет.

Дело осталось за малым.

Вставляем текст нашего скрипта и компилируем.

Основы скриптинга в Skyrim или разрываем ткань Обливиона The Elder Scrolls, The Elder Scrolls V: Skyrim, Skyrim, Creation Kit, Papyrus, Видео, Длиннопост

Переходим в Свойства скрипта и начинаем связывать Свойста с нужными объектами:

Основы скриптинга в Skyrim или разрываем ткань Обливиона The Elder Scrolls, The Elder Scrolls V: Skyrim, Skyrim, Creation Kit, Papyrus, Видео, Длиннопост

Mark ссылается на Маркер, который будет ставиться нам под ноги.

Marker ссылается на Маркер, который расположен там, где мы окажемся после чтения заклинания.

TargetCell - ссылаемся на нашу локацию - AAAMGHaven. ААА - временный префикс для сортировки локации вверх списка. MGHaven - Misty Grove Haven, то бишь "Убежище в Туманной роще"

Всё! Вот теперь правда всё, честно честно!

Бежим проверять, уряяя!

Найдены дубликаты


The Elder Scrolls

1.8K постов 9.4K подписчиков

Правила сообщества

1)Ваши посты должны быть связаны с вселенной The Elder Scrolls или с играми серии.

3)Помимо собственных правил сообщества, здесь также работают правила, общие для всего Пикабу, поэтому несоблюдение их тоже будет наказываться.

Minimum Skill Level - насколько я помню, это минимальный уровень навыка для каста заклинания. Т.е. по идее, не все заклинания можно кастовать, просто выучив из книжки. Для некоторых нужно условие, типа Колдовство вкачано на 75+ или 50+ и т д.

Кстати, учти, что обозначение категории влияет не только на сортировку. Если укажешь цену спелла, то на неё будут влиять дополнительные эффекты, вроде уменьш. расход маны или каст с 2 рук(если прописано) от перков, шмоток, модов и т д.

Советую указать Minimum Skill Level 5-10, если это необходимо. вроде как ниже 5 навыка не бывает, даже если обьявить его легендарным или это новый персонаж. Ну, точнее, бывает, если искуственно его понизить консолью, редактором сохранений, каким-то модом и т д. Кстати, учитывайте, что некоторые глобальные моды, вроде всяких там SkyRe, Ordinator, PerMa, Edernal и т д могут влиять на ветку колдовства.

Спасибо большое, учту.

Вообще, я до этого никогда не делал заклинания, так что всех пунктов еще не знаю. И вот как раз Skill Level меня озадачил - насколько помню, то все заклинания можно было читать совершенно спокойно, но если ты новичок, а заклинание мастера, то цена взлетала в разы.

С ценой заклинания пока тоже до конца не разобрался. Она есть и в "Заклинании" - spell cost. Так и в "Магическом эффекте" - base cost. Надо будет методом тыка поковырять и посмотреть что где всплывет.

Да, про глобальные моды я знаю. Создается на ванильной игре, хотя сам планирую играть с Requiem.

SPERG попроще, ставится без собственных патчей(если не обновился, щас сильно модно стало требовать SkyProc-патч делать, и это кроме bashed-патча, модов на совместимость, обновления FNIS анимаций и т д), да и автор русский, сразу всё на русском. Да и багов меньше всех остальных) Но это так, к слову.

С заклинаниями тоже не особо подскажу, но предполагаю, что в магических эффектах может быть какраз таки не цена, а накладываемый эффект. В любом случае, можно поэкспериментировать, возможно, имеется ввиду + столько-то макс. маны от эффекта, или наоборот. У меня просто 100 лет редактор удалён. Понял, что вместо получения удовольствия от игры - занимаюсь бесконечным мозго-порно. А все необходимые моды уже есть)

Не, с Реквиема я теперь никуда не уйду :)

Сейчас сижу, ковыряюсь и я заметил одну особенность - если просто вписать значение длительности каста и цены в заклинание - то будут использоваться они. Но если выставить галочку автокалькуляции, то подставляются значения магического эффекта. Я так понял, это какая-то фишка для автоматического подсчета всех эффектов. К примеру, какое-либо ледяное копье будет иметь два магических эффекта - урон и замедление цели.

Вполне может быть. Некоторые спелы "гибкие" - т.е. растут с уровнем и прокачкой скила, а некоторые - замороженные. Т.е. как написано в книжке 50 урона и 100 маны, так всегда и будет.. Стоит ли говорить, что для вашего случая круто было бы замороженный спелл, а то понаставят хардкорные моды и будут до 50 лвл ману копить чтоб домой попасть))

Да, так и есть. Я-то по дефолту всегда отыгрываю мага, да и вообще - мод делаю исключительно под себя. Но, на Нексус тоже выложу в формате "Как есть" - мне не жалко, может, кому интересно будет. И кто-то может отыгрывать вора, кто-то воина - не у всех будет магия. Так что лучше заморозить и сделать фиксированную стоимость, чтобы каждый гарантированно мог прочитать.

Вот, да, откопал страницу на вики по CK - автокалькуляция считает все эффекты и длительность, а снятие галочки жестко привязывает цену.

Немного доработанный скрипт - с комментариями и настроенной паузой для корректного отображения графических эффектов активации заклинания:

Scriptname MGHScriptTeleport extends ActiveMagicEffect

ObjectReference Property Marker Auto

ObjectReference Property Mark Auto

Cell Property TargetCell Auto

;Marker - property for COC-Marker-Heading

;Mark - property for X-Marker-Heading - hidden in utility cell

;Cell - property for your cell

;Utility Wait 0.75- time for correct visual effects

Event OnEffectStart(Actor Caster, Actor Target)

If Caster.GetParentCell() != TargetCell

Utility.Wait(0.75)

Mark.MoveTo(Caster)

Caster.MoveTo(Marker)

Else

Utility.Wait(0.75)

Caster.MoveTo(Mark)

EndIf

EndEvent

Если будете где-то использовать - пожалуйста, замените имя MGHScriptTeleport на своё.

dr.teeth

Реакция кота на каджита в Skyrim

NkTOZZ

88-летний пенсионер расклеил объявления, чтобы ему помогли выйти из первой крепости в Skyrim

Он играет в The Elder Scrolls, чтобы забыть о боли в бедре.

88-летний пенсионер расклеил объявления, чтобы ему помогли выйти из первой крепости в Skyrim Игры, Пенсионеры, Skyrim, The Elder Scrolls, Длиннопост, Позитив, Доброта

88-летний житель Германии Клаус-Юрген Лангнер, большой поклонник The Elder Scrolls III: Morrowind на ПК, не смог найти выход из стартовой крепости в Skyrim на PS4 из-за того, что не разобрался с управлением на контроллере. Тогда он решил попросить о помощи, и в марте распечатал 100 листовок, расклеив их по своему округу Шпандау в Берлине.

88-летний пенсионер расклеил объявления, чтобы ему помогли выйти из первой крепости в Skyrim Игры, Пенсионеры, Skyrim, The Elder Scrolls, Длиннопост, Позитив, Доброта

"У кого есть опыт работы с PlayStation 4? Я (88-летний) хотел бы поиграть в игру The Elder Scrolls V: Skyrim, но в некоторых местах просто не могу продвинуться дальше! Кто может помочь?" (С) из объявления 88-летнего поклонника The Elder Scrolls

Листовки пенсионера завирусились в социальных сетях. На его просьбу откликнулся молодой человек, который связался с Клаусом-Юргеном, приехал к нему и показал выход из крепости. Также он научил возрастного геймера, как правильно пользоваться контроллером DualShock 4.

Позже Клаус-Юрген рассказал в интервью немецкому изданию Spiegel, что он несколько лет играл в Morrowind на английском языке на своём компьютере. По его словам, это было непросто, но мир игры «пленил его». Когда он узнал, что есть более современная часть серии, Skyrim, то сразу захотел поиграть в неё. Однако на его компьютере она не запускалась.

Тогда он вместе со своим 59-летним соседом Хайнцем отправился в магазин электроники. Ему объяснили, что обновить компьютер для запуска Skyrim будет очень дорого, и посоветовали купить PlayStation 4 вместе с игрой. Пенсионер прислушался к совету, но не смог начать полноценно играть, так как пользоваться контроллером было непривычно.

Также в интервью мужчина признался, что увлёкся компьютерными играми, чтобы забыть о физической боли, которую он испытывает из-за травмы бедра. По словам врачей, он уже слишком стар для операции.

Во время игры ему становится лучше, так как он сосредотачивается на игровом мире и «теряется» в нём. Ещё он в шутку пожаловался, что после игры у него часто болит спина, «но оно того стоит».

Кому я рекомендую его прочитать?
Тем кому интересна игра, те кто хочет открыть для себя бездну реиграбельности благодаря модам и тем кто давно хотел, но так и не смог сделать из Скайрима, то что он хочет.

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


И я хочу максимально облегчить вхождение новичков в этот чудесный мир моддинга (бегите глупцы!). Чтобы было понимание основ и чтобы новички могли и знали как справлятся с проблемами. А они обязательно будут.
На этом дисклеймер предлагаю считать законченным и перейти к самому посту (ну или нет).

Привет, дружок!
Этот гайд посвящен самым маленьким любителям моддинга Скайрима. Он именно для тех кто только начинает делать свои первые неуверенные шаги в сторону кромешного ада и звездеца, которые обязательно случаются со всеми кто ставит моды. Ведь начиная их ставить ты уже не можешь остановиться, у некоторых это переходит в терминальную стадию и они скатываются по наклонной — их целью становится поиск, установка и настройка модов, а уже не сама игра. Кстати, автор и сам не избежал этого синдрома, но протекал он в более легкой форме.

И так, начнем мы с самого начала. Для того чтобы начать устанавливать моды, тебе нужно:
1. Сама игра, желательно последней версии (1.9.32.08) со всеми DLC, Legendary Edition или купленные (скачанные, йаррр) по отдельности значения не имеет.

2. Желание. Нет, ну правда, на это уйдет какое-то время и чтобы что-то сделать иногда придется повникать, почитать и подумать. А если нет желания, а есть только «ну это долго, а че так сложно, да ну нафиг», то ничего и не получится.

3. Физические данные. Для установки модов нужна хотя бы 1 рука, 1 глаз и, хотя бы одно полушарие мозга (желательно левое). Чтобы тыкать мышкой (рука), читать гайды/советы (тот самый глаз!) и думать (так вот зачем нужен мозг!).

Остальное опционально. Если у тебя нет интернета, чтобы качать моды, то как ты прочитал этот гайд? Тебе его распечатал и принес друг? Заставь его скачать тебе модов!

Начнем обзор инструментов:

1. SKSE.

Что это? Это скриптовое расширение для запуска пользовательских сценариев (читай модов) без модификации файлов самой игры. Лучше установи, так как многие моды требуют это расширение в обязательном порядке.
Если услышишь, что это опасная фигня, которую лучше не ставить, потому что она ломает игру, портит сохранения и вообще вызывает Сатану в четверг вечером — не верь. Подтверждений этому нет, кроме отдельных комментариев без явных доказательств. Нет, ты можешь довериться этим личностям и страдать без установки очень вкусных модов — выбор, как всегда, за тобой.

2. Мод-менеджер.

Как ясно из названия, это инструмент для управления модами.
Как ими можно управлять? Ну первое что ими можно делать — менять порядок загрузки, он же лоадордер.
Зачем это вообще нужно? Многие моды имеют прямую зависимость от других модов (тот мод от которого зависит другой мод называется мастер-файлом, но мастер-файл это понятие относительное, то есть мод может являться мастер-файлом для одного мода, но не быть им для другого).

Тут я сделаю отступление.
Моды бывают разными (черными, белыми, красными) по своей структуре, форме и содержанию. Бывают моды в виде файлов с расширением .esp и .esm, с ними могут идти файлы с расширением .bsa, которые по сути являются архивами игровых ресурсов и могут содержать в себе скрипты, текстуры, меши и т.д.

И тут, пожалуй, стоит сделать ремарку, что в русском сообществе не всегда разделяют понятия «мод» и «плагин» (мод ≠ плагин).
Мод может быть и просто набором непонятных (на первый взгляд) файлов, с непонятными расширениями и непонятным назначением. Это может быть как и текстура, так и анимация или звук/музыка, не важно.
Плагин это, прежде всего, .esp и .esm файлы, которые нужно отдельно подключать в лаунчере/мод-менеджере. Объединяет их то что все это должно находится в папке Data, что находится в корне установленной игры. Все, кроме специфических инструментах (о которых тебе рано знать, о, неофит) и SKSE, он устанавливается в папку где находится TESV.exe.

Обычно в описании по установки написано что-то вроде «распаковывайте все в папку Data» и все в этом описании прекрасно. До момента пока модов не становится больше 5-10.

Вот тут начинаются вопросы, а может быть и проблемы (на самом деле могут возникнуть раньше, когда мод перезапишет оригинальные файлы игры, но что-то пойдет не так и игра откажется работать, и тут придется задаться вопросом «как восстановить оригинальные файлы?»).

Когда я первый раз столкнулся с такой проблемой, то решил делать резервную копию папки Data. С одной стороны, это спасало меня от потери и перезаписи файлов оригинальной игры, но с другой нужно было либо все моды ставить с нуля (архивировал я чистую папку Data совсем без модов) или иметь несколько резервных копий на разных стадиях установки модов (поставил несколько модов, проверил что все работает — заархивировал), что поджирает место на диске. На пике такой системы у меня было 6 копий Data — 1 чистая и 5 с модами, вес архивов достигал 19 гигабайт. Каждого из архивов. Прочувствовал?

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


Если ты не хочешь много читать и немножко думать, да и из модов ты хочешь поставить пару штук, то это твой выбор. С возникающими проблемами придется разбираться, скорее всего, переустановкой игры.
На самом деле не рекомендуется к использованию.

Nexus Mod Manager или NMM.
Ссылка на скачивание


Мод-менеджер от самого большого ресурса с модами. Мод-менеджер с человеческим лицом. Можно сказать, инструмент, для более продвинутого новичка.

Умеет качать моды с самого нексуса, распаковывать их в Data, подключать esp/esm и настраивать лоадордер (он же порядок загрузки, далее буду использовать лоадордер) и обозначает конфилкты порядка или отсуствия мастер-файлов.
Хорош тем, что подхватывает загрузки с нексуса при нажатии кнопки на самом нексусе «Download with manager».


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

В обзоре мод-менеджеров пропущу WryeBash, так как он уже стал экзотикой и пользуются ими или те, кто просто привык и не хочет ничего менять или те, кому нужны их специфические функции (Башед-патч во WryeBash невероятно хорошая вещь, он правит левел-листы… эээ еще слишком рано об этом, да? Забудь что я сказал, нет времени объяснять. Сделаю это потом).

Поэтому я остановлюсь на самом-самом мейнстриме.

Помните я говорил, что мод-менеджер несет с собой удобство и контроль? Нет? Странно, я хотел это сказать. Так вот. NMM это очень хорошо, но что по сути он делает — он так жекопирует файлы моды в Data с перезаписью. Если что-то пошло не так (ФАНФАРЫ) тебе нужно будет переустанавливать игру.
Неудобно? Это мягко сказано.
Оказывается уже ничего не копирует, а имеют собственную систему на хардлинках.

Но тут в свете прожекторов, на вращающейся платформе поднимается ОН — Царь (именно с большой буквы) всех мод-менеджеров


Трудно скрыть мою любовь к Мод Органайзеру (далее МО), он практически идеален.
Он умеет качать моды с нексуса (само собой понадобятся учетная запись на нексусе), он умеет распаковывать архивы, подключать .esp/.esm, показывает конфликты лоадордера или отсутствия мастер-файлов и все это, в отличии от NMM, в одном окне, без вкладок. Все получается очень наглядно.

Либо можно сделать ярлык запуска игры через МО. Выглядит это лучше — ты не видишь окна программы, но игра запускается дольше.

Наверное, звучит все не очень, и в каких-то местах сложно, но именно использование МО избавит тебя от ТОННЫ проблем при установке модов.
Строго рекомендую к использованию.

Короткий гайд от меня как работать с МО:

Пока писался текст появилась новость о том, что автор МО присоеденился к команде Nexusmods и теперь они будут совместо делать новый NMM с фичами МО, а так же прферансами и профурсетками. Дата релиза не оглашалась. Но, я думаю, срачи какой из мод-менеджеров лучше можно уже гасить в зародыше.

Добавлю еще, не все моды выглядят как архивы с набором файлов, есть еще и инсталляторы для модов (которые все равно представляют собой архивы), но не спеши качать .exe которые выдает тебе сомнительный сайт, скорее всего это будет не мод.
При установке мода с инсталятором будет происходить не просто распаковка, а запустится окно вот как это например:

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

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

Пока ты не начал беспорядочно качать ВСЕ МОДЫ, то советую
тебе воспользоваться программой

3. LOOT

Ее основное назначение — сортировка модов в порядке загрузки.
Помнишь я упоминал про лоадордер? Вылет игры до появления меню это в 99% случаях неправильный лоадордер. Вылеты уже в самой игре могут тоже вызываться неправильным порядком, но тут уже нужна голова, удача и чертова прорва шаманской магии, чтобы найти и устранить такой косяк.

LOOT помогает предотвратить вариант с абсолютно неправильным порядком, но при этом не является панацеей. Он знает в каком порядке ставить популярные моды или ставит их в порядке мастер мод — > зависимы мод, но в этой схеме может случиться так, что автор мода не прописал явную зависимость от других модов. И вот уже придется работать головой.

Плюсы: в случае небольшого количества модов позволяет не задумываться о лоаордере.

Минусы: не всегда верно выстраивает порядок загрузки.

Если у тебя уже есть твоя сотня (или две) модов, которую ты любовно расставлял, но все еще сомневаешься в правильном лоадордере, то воспользуйся LOOT. Но будь готов к тому, что он выстроит совсем другой порядок, сильно отличный от твоего.

Для работы с телами нужен скелет. Для работы с анимациями тоже нужен скелет и без этого мод с любой анимацией просто не будет работать. Как выглядит Неправильно установленные анимации? Как-то так

Поэтому чтобы анимации установились верно и при этом работали нам и нужен FNIS. Работать с ним не просто, а очень просто. Главное правильно его запустить и ткнуть всего 1 (одну) кнопку.

5. ОПЦИОНАЛЬНО

Настройка SKSE.ini

Делается это для стабилизации самой игры и защиты от вылетов (авось и поможет).

Секция [General]:

0 если не нужны логи папируса… И если ты не знаешь, что такое папирус, то точно ставь 0.

Очищаем зависшие скрипты из удаленных/отключенных модов из памяти.

Секция [Memory]:

Или можешь не писать, если будешь настраивать CrashFixes (инструкция ниже).

Это тот же ENB (знаешь что это?) только с отключенными графическими фичами. Зачем он тогда нужен? Затем, что является костылем помогая игре использовать больше ресурсов чем она может в ванильном состоянии.
После того как ты скачал енб по ссылке выше тебе нужно оформить файл enblocal.ini

Инструкция подходит для Windows 7/8/8.1/10, на других системах работа не гарантируется.

Секция [GLOBAL]:

Секция [MEMORY]:

Зависит от разрядности системы и других параметров настройки енб. Если система 64-битная, то true, если нет — false. Для WIndows 10 – false в любом случае.

Этот параметр зависит от мощности железа, если железо слабое, то лучше поставить true.

ReservedMemorySizeMb=

Значения которые можно сюда подставить — 64, 128, 256 и 512. Рекомендуемое значение для 64-битных систем — 128 (для х86 — 64 соответственно). Можно «поиграться» значением и выяснить при каком игра будет лучше работать.

Вот тут начинаются отличия в зависимости от ОС.
Если видеопамяти 4Гб и более, то ставим 4064 (применимо для Windows 10). В любом случае система ограничивает использование видеопамяти для директх9 до 4Гб.

Если видеопамяти меньше и у тебя другая ОС, то качаем утилиту и вписываем выдаваемое значение (запускать в режиме DX9).

Если у тебя 32-битная Windows 7, то пишешь 2048.

Вообще в Скайриме очень странная система работы с памятью, поэтому к нему подставляют костыли и подпорки, чтобы он мог лучше работать и меньше вылетать.
Если ты хочешь я могу дать ссылку на объяснение механизма работы ENB, но это достаточно скучное чтиво.

Весь блок опционально назван так не случайно, без этого можно обойтись, но в итоге это сильно будет упрощать жизнь при игре с модами. Да, в это придется вникать, возможно (храни тебя Стендарр!) придется гуглить и посещать тематические форумы.

CrashFixes
Ссылка на скачивание и к нему нужно будет вот это.

Из названия ясно что к чему, да? Это одно из последних и самых эффективных (но не панацея, ох, как же часто я это пишу) способов предотвратить краш игры с вылетом на рабочий стол.
Представляет собой SKSE-плагин изменяющий работы с памятью игрой.

В секции [Memory]:

Можно удалить строки, но можно и оставить, вреда от них не будет.

Если не настраивал ENBoost, то в enblocal.ini:

В CrashFixPlugin.ini пишем:

Заранее уберегу тебя от ошибки. После установки плагина по второй ссылке, по пути Х:\Skyrim\Data\SKSE\Plugins нужно создать пустой файл CrashFixPlugin_preload.txt иначе при запуске CrashFixes будет выдавать предупреждение и работать не будет.
Каких либо серьезных проблем замечено не было. Какую-то сильную нагрузку на систему или игру он так же не несет, так почему бы и не поставить?

Где там, в середине, я упоминал WryeBash.
Кто-то пользуется им до сих пор, а кто-то про него даже и не слышал. Но расскажу я он нем, потому что он имеет киллер-фичу, которой нет у МО (с другой стороны МО это просто мод-менеджер, а Врайбаш это несколько большее).
Представь ситуацию: ты ставишь мод с, допустим, оружием и все хорошо и замечательно, пока тебе не попадается АДСКИЙ МЕЧ АНАЛЬНОГО НАГИБАТОРА с уроном 9999 и весом 0,2. Нет, кому-то это придется по душе, но если он попадется в самом начале, да и в середине игры, он вызовет жесткий дисбаланс. Это и можно исправить Врайбашем. Он может делать Башпатч, который правит уровневые листы.

По простому — уровневые листы, это распределение по кучкам снаряжения (в нашем случае) с такими же НПС. То есть это пресловутый АДСКИЙ МЕЧ. будет выпадать не из обычного безымянного бандита, а из Алдуина или Мирака, к примеру. Плюс к этому, без внесения предметов в уровневые листы их можно и не увидеть, так как попадают в мир только предметы/НПС/заклинания из мода стоящего последним в лоадордере.

6. Рекомендуемые моды ДЛЯ ВСЕХ:

Неофициальный патч (объединяет в себе ранее существовавшие патчи для Skyrim и каждого DLC в отдельности в одном) исправляющий кучу багов (и добавляющий новые, хе-хе), которые не исправила Беседка. Рекомендуется использовать, даже если ты хочешь играть в ванилу.
Некоторые моды требуют его в обязательном порядке.

Такой же неофициальный патч для официальных HD-текстур.

Этот мод меняет интерфейс игры в сторону человеческого. Требует наличие SKSE.
Если тебе нравится ванильный интерфейс, то… ну что ж, счастливого тебе листания инвентаря.

ОПЦИОНАЛЬНЕЕ НЕКУДА. Плагины для SKSE.

Восстанавливает читаемые имена файлов сохранений, облегчает переименование зачарованных предметов, а также исправляет обработку кириллицы в консоли и отображение русского имени игрока в различных внутриигровых записках. Что очень хорошо смотриться в отличии от «Мы слышали о твоих подвигах Dovakin. ».

Исправляет работу функций SetDisplayName, SetName и GetName со строковыми переменными, добавляя поддержку кириллицы.
Данные функции используются в модах, дающих возможность переименования объектов, а также в модах, динамически формирующих названия различных предметов.

Дополняетru_fix.

Устанавливаются оба в папку X:\Skyrim\Data\SKSE\Plugins

Ресурсы с модами.

Моды надо где-то брать, правильно? Нет, если ты уже забил свой жесткий диск заранее скачав все что хотел, то ты, конечно, молодец. Но если нет, то продолжай читать.

Мекка мододелов и модоюзеров. Все основные авторы модов сидят тут, большинство модов тоже тут.

Для некоторых минусов будет необходимость регистрации и то что редко выкладывают локализованные моды т.е. основной язык модов — английский.

Есть исключения конечно, но максимум что можно увидеть это ссылка на русскую версию (которую либо автору зажали давать, либо он положил на то чтобы выложить ее на нексус), которая лежит на сайте www.supermodynaskyrimnaruskom.ukoz.ru, но ссылка уже мертва неизвестное количество времени.

Два примерно равнозначных ресурса. Требуется регистрация. Оба переводят моды, но как по мне, на gamer-mods качество переводов так себе.
Ну вот и все, дружок. Ты готов ставить моды и повышать свой скилл в этом занятии.

А теперь ждем ремастер и надеемся, что приобретенные навыки пригодятся и там, а Беседка все опять не поломает.

P.S. Выскажусь немного о ремастере. Сильных изменение ждать не стоит, в основном изменят гамму, освещение и добавят те самые лучи из Фоллаута 4.
Это переиздание для консолей, чтобы они смогли наконец-то оценить игру во всей красоте.
Еще вроде как обещают что ремастер будет x64, что даст ему возможность работать с большим количеством памяти, что, возможно, сделает игру стабильнее. Но, лично у меня надежд на это мало.
Опять же со старта не все моды будут работать, а многие придется глобально изменять (возможно), но это все пустословие. Вот как выйдет так и посмотрим.

P.P.S. И бонусом — я тут сделяль в виде некого чего-то свое видение ремастера:

  • Руководства
  • Прохождение
  • Полезные статьи

Открыт набор в команду сайта!

TES V: Translator - Локализация (перевод) модов на TES V: Skyrim

Просмотров: 20642 | Добавил: Evait | Дата: 2018-03-14 23:28

Приветствую всех заинтересованных данной темой. Хочу представить вашему вниманию очень простую программу для перевода модификаций на Skyrim, в которой сможет разобраться буквально за 5 минут любой человек, как миниму разбирающийся в ПК на уровне выше "чайника". А речь пойдет о "tesVTranslator" именно версии 1.3.3, т.к она почти полностью на русском языке.

Содержание:

Продвинутый уровень

Начало работы

Перейдем к делу. Для начала работы выбираем пункт "Файлы" и жмем "Загрузить Esp"

перевод модов на Skyrim

Затем выбираем esp файл необходимого мода и видим такую таблицу:


* Вкладка STRINGS - названия предметов, имена, обозначения, диалоги от главного героя

* DLSTRINGS - Квесты, записки, описание умений и заклинаний

* ILSTRINGS - Диалоги NPC.

Здесь мы сразу приступаем к процессу перевода независимо от того, на каком языке мод. Выбираем самую верхнюю строку и делаем по ней два клика мышкой. Нашему взору открывается следующее:


Обращаем внимание на нижнюю часть. Слева - оригинальный текст, справа - тот, которым мы его заменим. Стираем, вводим перевод левого текста в правый и жмем "ок". Все переведенные строки выделяются чтобы мы не потерялись в них.

Для локализации книг и прочих записей смотрим там же на верхнюю чаcть открывшегося окна, нажимаем 2 раза и содержимое переносится вниз для перевода. Формулы не трогаем (выделены синим и зеленым цветом), кроме типа "Текст", это заголовки.


Как только вы закончили работу или захотели сделать перерыв обязательно сохраняем работу "Файлы" - "Сохранить Esp/Esm". На все всплывающие оповещения жмем "да". Программа создаст резервную копию оригинального esp файла.

Напоминаю, что это старая версия программы, но ее вполне достаточно и она немного проще новой.

Автоматизируем перевод стандартных строк

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

При первом запуске esp-файла в программе TES Translator заходим в параметры (верхнее меню) - языки и настройка. Открываются настройки. Исходный язык выбираем английский, язык перевода: русский. Ниже путь до наших файлов Strings в папке Skyrim. Выбираем полный путь: Skyrim/Data/Strings (в папке должны лежать русские и английские файлы STRINGS). Тут же можно выбрать язык интерфейса. Не забудьте поставить галочку на создании кэша внизу.

локализация модов на Skyrim

Обратите внимание, что все строки должны гореть зелененьким. Если вдруг у вас отсутствуют английские файлы STRINGS в папке Скайрима, то вы их можете скачать отсюда. Если строки горят красным - у вас не установлены DLC Dragonborn и Hearthfire.


Всплывает сообщение, нажимаем ОК. Теперь открываем esp-файл мода, который собираемся перевести.

Перевод модов на Скайрим

Все, оригинальные названия перевелись! Осталось перевести только то, что в моде.

Перевод модов на скайрим

Белые строки - значит всё хорошо перевелось, а помеченные фиолетовым и розовым - программа в них не уверена. Переводим эти строки, потом выделяем их шифтом, правой кнопкой - утвердить. Строки становятся синенькими.

перевод модов на скайрим

Переводим все строки, сохраняем ESP-файл. Перевод готов.

Крякозябры вместо слов

И еще момент. Если вы открываете в программе уже переведенный на русский язык esp-файл, то вам нужно опять вернуться в параметры - настройки языков, и выставить исходный язык русский, и язык перевода тоже ставите русский. Иначе названия будут крякозябрами.

перевод модов на скайрим

Еще одна приятная особенность программы: при переводе одинаковых строк, она сразу переводит их все разом.

перевод модов на скайрим

Вышла новая версия мода. Что делать?


Советую всегда сохранять esp в словари. Часто в моде бывают одинаковые esp-файлы с незначительными отличиями. При открытие такого - он автоматом переведется. Вам не нужно будет снова переводить одни и те же строки!

tes v translator

Описание ID в Skyrim Translator

Чтобы не переводить в слепую, вы можете посмотреть, что значит та или иная строка в моде. Для этого обратите внимание на данное поле:

перевод модов на скайрим

Ниже представляю вашему вниманию список со всеми значениями:

Магические эффекты. В сплывающие уведомления.

Встречаются системные строки.

Заклинания. Переводить нужно, но встречаются и

Какие строки переводить не надо

Переводить не нужно строки, помеченные как [NULL]. Оставляем так.

TES V Translator

Не нужно переводить системные строки. Их легко распознать, они обычно написаны неестественно:

- Несколько слов вместе, например: ArmorSet1, и подобное;

- Набор непонятных букв; букв с цифрами, непереводимые слова;

- Часто встречающиеся слова в системных строках: Ability, Market .

Системные строки не видны в игре, а вот их перевод может сломать мод. Будьте аккуратны, тестируйте мод в игре, и будет вам счастье ;)

Системные строки TES V translator

Tes V translator

Естественные строки, которые нужно переводить

Перевод под Skyrim Special Edition

Думаю, вы в курсе, что моды для Skyrim Legendary Edition не работают в Skyrim Special Edition. Почему? Ответ прост.

Skyrim Special Edition разрабатывался полностью под 64-битные системы, тогда как Legendary разрабатывался и под 32-битные, плюс в переиздании были изменены текстуры, модели и некоторые элементы геимплея, что может некорректно сказываться на модификациях Legendary Edition.

Таким образом, не стоит устанавливать моды, сделанные для LE, на Special Edition. Вы же не хотите сломать игру, или запортачить сейвы?

А теперь вернемся к переводу. Выход Special Edition'а осложнил дело локализаторам, ведь нам придется заново переводить мод. Но не все так страшно, как выглядит на первый взгляд:

Во-вторых, перевод под Special не отличается от того, что мы делали ранее для Legendary. Но есть один нюанс с кодировкой.

Если русские символы в вашем переводе выдают крякозябры в игре, то необходимо проделать следующее:

translate_se

Когда перевели - ставим галочку на экспорте в UTF8. Параметры > Utf8 > Экспорт в Utf8 > Сохранить esp. Всё просто

Перевод MCM-меню для SkyUl

Некоторые моды требуют плагина SkyUl, благодаря которому можно гибко настраивать определенные параметры для мода. Если автор включил подобное в свой мод, то данное меню вы обнаружите в главном меню:

mcm menu skyrim
mcm menu skyrim
mcm menu skyrim

Самый идеальный вариант, если автор поместил текст в обычный текстовый файл по данному пути:

interface => translations

Изначально в данной папке лежал только один исходный файл на английском языке с соответствующей припиской:

mcm skyrim

Создадим его копию и изменим окончание на _RUSSIAN (лучше капсом). Английский файл оставляем без изменений, работаем теперь только с русским и переводим его, там все нужные для перевода строки интуитивно понятны, просто не трогайте переменные слева.

mcm_6 skyrim
mcm_6 skyrim

Оригинальное и переведенное меню

Тестируем в игре наши результаты. И да, помните, что автор может не позаботиться о переводчиках, и тогда переводить меню придется в скриптах. Об этом далее.

Перевод скриптов

Вы перевели esp-файл, но некоторые сообщения в моде все равно на английском? поздравляю, вы встретились со скриптами. Обычно такие сообщения отражаются в левом верхнем углу экрана и информируют о каком-либо событии.

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

В исходниках находятся те же самые скрипты мода, но в формате .psc, который можно открывать с помощью текстовых редакторов. Лучше всего использовать Notepad++

Notepad правильно форматирует код и гораздо удобнее блокнота.

Пришло время перевода. Проверьте все скрипты в папке Source на наличие текста в них, лучше просмотреть все скрипты. Как выглядят сообщения для перевода:

скрипты скайрим перевод

Нас интересуют строки Debug.Notification, а точнее - фразы, заключенные в кавычках. Переводим их и заменяем на русский текст, при это сохраняя все пробелы и кавычки. В некоторых случаях вместо Notification может использоваться messagebox.

Парочка примеров с переведенными скриптами:

скрипты скайрим перевод
скрипты скайрим перевод

Важно сохранить параметры при переводе, которые заключены в переменные. Пример:

скрипты скайрим перевод

скрипты скайрим перевод

Обратите внимание на строку ("Stopped Witchery training: " + EXP)

Заменить своим текстом нужно только часть Stopped Witchery training:

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

Переводим все сообщения в скрипте и сохраняем его (ctrl + s).

На скриншотах ниже можете посмотреть, где перевод не нужен:

skyrim перевод скриптов

skyrim перевод скриптов

В первом случае текст в кавычках - это часть кода (текст заключен в кавычки, но находится в конструкции условия if)

На втором скриншоте переводить просто нечего.

Кстати, в самом начале скрипта обычно есть пояснение, за что он отвечает:

скрипты скайрим

- управляет фаст-тревелом по дорожным знакам.

Некоторые скрипты понятны даже логически, если вдуматься в их работу. Хотя, вам это и не нужно.

скрипт скайрим

Настало время скомпилировать наши переведенные скрипты из папки Source, тогда они примут нужный формат .pex

.pex - формат скриптов Скайрима (исходники имеют формат .psc)

Для компиляции вначале перенесите все переведенные скрипты из папки Source нашего мода в папку Skyrim / Data / Scripts / Source

Теперь нужно установить и запустить Skyrim Creation Kit. Из стима это делается крайне просто, в библиотеке настройте фильтр на инструменты, найдите SCK и нажмите установить.

creation kit

Skyrim Creation Kit

При первом старте CK немного подвиснет, просто подождите.

Откройте вкладку Gameplay сверху, выберете Papyrus Script Manager, найдите нужные скрипты из мода - правой кнопкой мыши - скомпилировать. И так с каждым.

Вариант 2: Gameplay => Compile Papyrus Scripts. Отметьте разом все скрипты из мода и нажмите Compile.

Если все прошло успешно, мы получим сообщение Success, если нет - Failed. Раскройте сообщение ниже для более детальной информации об ошибке.

Когда я переводил мод, у меня все скрипты зафейлились. Ошибок было много, одно из таковых ссылалось на отсутствие файла TESV_Papyrus_Flags.flg

error_script

Помогло следующее: распакуйте архив с исходниками скриптов Scripts.rar в папке Skyrim / Data, на вопрос о замене лучше нажмите нет.

После этого все мои ошибки исчезли.

Успешно скомпилированные скрипты попадают в папку Skyrim / Data / Scripts. Именно они нам и нужны.

Учтите! Если английские скрипты уже были установлены в вашем сохранении, то они закэшировались. Нужно удалить мод, сделать чистый сейв и снова установить мод.

Крякозябры в скриптах.

Когда у меня всё успешно скомпилировалось, я встретился с новой проблемой: вместо кириллицы были крякозябры. В данном случае мне помогла декомпиляция скриптов.

Для этого нам понадобится программа Papyrus compiler, которая из .pex переводит в .pax и обратно. Скачайте архив и распакуйте в корневую папку вашего Skyrim.

Возьмем все наши уже переведенные и скомпилированные скрипты из папки Skyrim / Data / Scripts и закинем их в папку Papyrus compiler.

Запускаем decomp.bat и получаем все скрипты в формате .PAS рядом с нашим .PEX, только к скриптам добавится приписка название_скрипта.disassemble.PAS

Стираем у всех приписку disassemble, получится такая картина:

декомпилируем скрипты скайрим

Примечание:

скрипты мода начинаются с w_

Далее открываем каждый скрипт .pas через notepad++ и преобразовываем в другую кодировку:

верхнее меню - кодировки - преобразовать в ANSI - сохранить скрипт

Теперь запускаем comp.bat и наши скрипты формата .pas автоматом перезапишутся в скрипты .pex

Данные .pex скрипты возвращаем в папку Skyrim / Data / Scripts и проверяем в игре.

Редактировал и обновлял статью: Edmin

Автор: Evait | Оценок: 4 Кто оценил | Категория: Руководства

Схожие статьи

TES V: Translator - Локализация (перевод) модов на TES V: Skyrim

Комментарии

Оставлять комментарии могут только зарегистрированные пользователи.

Читайте также: