Чем открыть pex файл skyrim

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

Когда-то разговаривал, с автором программы Champollion, так он и не стал ее доводить до ума и сделать хоть какую-то понятную оболочку, но в свое время когда она только вышла, написал что у нее есть проблемы с диссамбелированием скриптов PEX поддерживающие MCM-меню, быстро обновил и исправил, все стало нормально диссамбелировать, но так до конца и не понял как проводить ассембелирование отредактированного файла PAS, чтобы собрать назад скрипт PEX. Написал снова, но так ответа больше и не дождался, видимо он свалил. После увидел надпись что его ник забанен и связаться с ним не получилось. Может у кого есть версия этой программы старше версии 1.01 с поддержкой 64-х разрядной операционной системы, выложите ссылку, буду очень признателен. За программу спасибо, буду разбираться с ней тоже.


Когда-то разговаривал, с автором программы Champollion, так он и не стал ее доводить до ума и сделать хоть какую-то понятную оболочку, но в свое время когда она только вышла, написал что у нее есть проблемы с диссамбелированием скриптов PEX поддерживающие MCM-меню, быстро обновил и исправил, все стало нормально диссамбелировать, но так до конца и не понял как проводить ассембелирование отредактированного файла PAS, чтобы собрать назад скрипт PEX. Написал снова, но так ответа больше и не дождался, видимо он свалил. После увидел надпись что его ник забанен и связаться с ним не получилось. Может у кого есть версия этой программы старше версии 1.01 с поддержкой 64-х разрядной операционной системы, выложите ссылку, буду очень признателен. За программу спасибо, буду разбираться с ней тоже.

Версия 1.0.1 работает нормально (программа предназначена только для дизассемблирования).

Ассемблировать скрипты проще всего настроив Notepad++


Кербер тут главная ценность не в дизассемблере а в редакторе pex. таковой есть в транслейтере но он карявый.

У меня уже бошка трещит. Всё что связано с PEX заморочено на куче команд и утилит. Есть хоть одна программа которая просто открывает PEX редактирует и сохраняет?


У меня уже бошка трещит. Всё что связано с PEX заморочено на куче команд и утилит. Есть хоть одна программа которая просто открывает PEX редактирует и сохраняет?

Нет конечно что и обидно, ибо все скриптёры полные му.ки, те ещё жо.ы, они ленивые дол..яшеры, что даже леняться сделать меню, и автор этого поста тоже полный му.ак ибо так никто не описывает: "ассоцийруте" кто так пишет а? ты чё умник что ли? пиши нормльным понятным языкам, а не умными словами. так а теперь Kapral, нет к сожелению нет таких прог даже к сегодняшнему моменту, все ленивые никто ничего не может, проще самому написать скрипт, он будет в 10 раз кароче декомпилируемого, ну а чтоб его написать нужно знать основы C++, и это бессмысленно

Содержание

В помощь переводчику - дизассемблирование скриптов что делать, если автор не дал psc файлы

Перевод - это великое дело, но что делать, если переводимый текст записан в функции MessageBox "ля ля - фа фа", а исходника (.psc файла) этого скрипта злобный автор не предоставил?

Не унываем - выход есть: Bethesda снабдила нас возможностью дезассемблировать скрипты, просто не сказала нам об этом.

Как это сделать:

  1. 1) Ну это в принципе ясно - ставим "конструктор"
  1. 2) Находим папку %gamedir%\Papyrus Compiler и обращаем в ней внимание на файл PapyrusAssembler.exe - это и есть ассемблер скриптов, а он-же и дезассемблер, если задать соответствующий ключ.

Как им пользоватся?

  • Устанавливаем рабочую папку в папку с .pex файлом, который нужно дезассемлбировать

Ну, это сделать так, чтоб в утилите cmd перед курсором писалось например e:\Skyrim\data\Scripts, короче путь к интересующей нас папке. Это можно сделать набором команд cd или перейти в файлменеджере (напр. Total commander) в нужную папку и в командной строке набрать cmd и нажать "ввод".

В командной строке (можно, даже лучше, создать .bat файл) пишем:


"%gamedir%\Papyrus Compiler\PapyrusAssembler" -D

  • Жмём ввод.
  • Итого, если всё написано правильно т. е. если программа написала:

0 error(s), 0 warning(s)

Disassembly succeeded

  • То ищем в папке с .pex файлом файл формата "имя нашего pex файла.disassemble.pas" - это и есть дезассемблированный файл, который хоть и имеет специфический формат, сильно отличающийся от формата psc файла, но уже являющийся текстовым и его можно редактировать.

Итак. Редактировать. А что редактировать? А то же (названия функций принципиально не изменены т. е. забивай в поиск название функции напр. MessageBox (или Message), находи строку, в которой она встречается и редактируй текст в "кавычках".

Пример:

исходный скрипт:(psc)


Дизассемблированый скрипт (pas)

Дааа. Многовато. но не бойся.


Просмотрел? Увидел строку

CallStatic debug MessageBox ::nonevar "Привет, мир!" ;@line 6

Это и есть интересующее нас место. что тут менять - это и ежу понятно: "Привет мир!" (кавычки сохраняем - они - техническая часть текста)


Ну поменяли. А что дальше? Да всё просто:

Ассемблируем!

- стираем из имени файла участок .disassemble - и пишем всё то же, что и при дизассемблировании, только без ключа -D :


"%gamedir%\Papyrus Compiler\PapyrusAssembler"

Если всё введено правильно то программа выдаст:


0 error(s), 0 warning(s)


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

И ещё по одной.

PapyrusAssembler

Использование: PapyrusAssembler файл [-D] [-V] [-Q] [-A] [-S] [-?]

Файл имя файла (путь берётся только из "рабочей папки", больше никак), который будет скомпилирован или декомпилирован. файл должен указыватся без расширения! Компилятор ищет файл с расширением ".pas". Декомпилятор ищет расширение ".pex". Внимание! декомпиляция не происходит, если имя файла скрипта не совпадает со строкой, начинающейся с байта 0Х12h в теле скрипта! (в нормальном состоянии строка дублирует имя файла)

-D Дезассемблировать объект, если не указан - ассемблирует его.

-V Включить подробный режим. (выводит туеву хучу всякой техинфы)

-Q Включает тихий режим. (выводятся только сообжения об ошибках)

-A Только анализ. Ассемблирование/дезассемблирование не производится.

-S Удаляет отладочную информацию из скомпилированного (.pex) файла. Нельзя использовать с -A или -D

-? Выводит справочную информацию

PapyrusCompiler

Использование: PapyrusCompiler [ ]

Файл Указывает файл для компиляции. (-all не указан)

папка Указывает папку для компиляции. (-all указан)


Аргументы Один или несколько из следующих:

  • -debug -d Включает режим отладки компилятора, на экран выводится техническая информация.
  • -optimize -op Включает режим оптимизации кода скрипта.
  • -output -o= Указвает каталог для записи скомпилированных скриптов.
  • -import -i= Указвыает папки для импорта библиотек (тоже psc файлы) компилятором, разделённые ";". Обязателен для указания. Путь по умолчанию %gamedir%\data\scripts\source\
  • -flags -f= Указывает путь к файлу с флагами, определёнными пользователем. Обязателен для указания. "дефолтный" файл флагов лежит по пути %gamedir%\data\scripts\source\TESV_Papyrus_Flags.flg
  • -all -a Задаёт компилятору скомпилировать все psc файлы в заданной папке. (в качестве объекта должна быть заданна папка).
  • -quiet -q Тихий режим. Отображаются сообщения только об ошибках.
  • -noasm Ассемблер не вызывается и не производится ассемблирование скрипта. (короче только анализ)
  • -keepasm Сохраняет ассемблер файл после завершения работы ассембера. (сохраняет pas файл)
  • -asmonly Создаёт ассемблер файл, но не вызывает ассемблер. (создаёт pas файл, но не создаёт pex файл)
  • -? Выводит справочную информацию.

Файл TESV_Papyrus_Flags.flg (по умолчанию лежит в %gamedir%\data\scripts\source\TESV_Papyrus_Flags.flg

Начинка по умолчанию и её описание:

Формат строк задаётся следующим образом (пробелы игнорируются, index должен содержать 0 - 31 символов):

Flag // Флаг применяется для всех типов

Flag < >// флаг применяется только для указанных типов*/


// Список флагов для TESV - НЕ РЕДАКТИРОВАТЬ


// Флаг прячет скрипт или параметр от игрового редактора. (ну небось типа в редакторе не отображается) Flag Hidden 0


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

// Флаг на переменной определяет переменную скрипта как исследуемую системой состояний.

// Сам нихера не понял, что это значит, но самый близкий перевод.

To enjoy the benefits of Nexus Mods, please log in or register a new account

  • All games
  • Skyrim
  • Mods
  • Utilities
  • PEX Decompiler

File information

Last updated

Original upload

Created by

Uploaded by

Virus scan

Tags for this mod

  • English
  • Utilities for Modders
Tag this mod
  • Description
  • Files 1
  • Images 3
  • Videos 0
  • Posts 30
  • Forum 1
  • Logs

About this mod

Decompiler for compiled PEX scripts.

Credits and distribution permission

  • Other user's assets Some assets in this file belong to other authors. You will need to seek permission from these authors before you can use their assets
  • Upload permission You can upload this file to other sites but you must credit me as the creator of the file
  • Modification permission You are allowed to modify my files and release bug fixes or improve on the features so long as you credit me as the original creator
  • Conversion permission You can convert this file to work with other games as long as you credit me as the creator of the file
  • Asset use permission You must get permission from me before you are allowed to use any of the assets in this file
  • Asset use permission in mods/files that are being sold You are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms
  • Asset use permission in mods/files that earn donation points You must get permission to earn Donation Points for your mods if they use my assets

Author notes

This author has not provided any additional notes regarding file permissions

File credits

Thanks to the guys who wrote up the PEX specification at uesp.net
Thanks to Ian Patterson who made scriptdump.exe which I used to compare my results to a working solution.

Donation Points system

This mod is not opted-in to receive Donation Points

A utility that decompiles PEX files into human-readable format similar to assembly languages with a touch of C syntax.

Windows version uploaded only. Tested only on Windows 7 x64 so far. Untested Linux and OSX versions are available and will upload if there are requests.

I hope to make a compiler for the decompiled script syntax by the end of this week or at the beginning of the next week.

Changelog
Version 0.99a:

  • Fixed float decoding for 0 and subnormal numbers.

Version 0.99
  • Switched positions of type and name for PROP headers to make it consistent with variable declarations.
  • Moved property flags to PROP headers, between the property name and user flags.
  • Converted user flags from hexadecimal number to character-based flags inspired by linux file permission flags.
  • Properly writing DEFAULT state in debug info.
  • Made the strings double-quoted to differentiate them from the identifiers.
  • Added .00 to whole number floats to clearly distinguish them from integers.
  • Fixed broken property handlers.
  • Object parent class not written if there is none.
  • Replaced newlines in a string with whitespaces to make it easier on the compiler.

Installation
Windows: Unpack the MSI file from the RAR archive and then install it.

Usage
The utility is very simple, with a single 'Decompile. ' button which allows selection of file(s) to be decompiled. One or more selected scripts will be decompiled and saved as .dpex files in the same directory as the source .pex scripts. Optionally, the string table and debug info may be written into the decompiled script by checking the appropriate checkboxes.

The decompiler assumes that the source .pex script is valid and will not check its format except for the magic signature at the beginning of the file. Attempts to decompile an invalid script may produce garbage results or even crash the program.

The utility should display a 'Done' message when it finishes decompilation. Any other message or no message at all means that an error has occurred.

Syntax
Syntax of the decompiled scripts will be most familiar to those familiar with assembly languages or at least the format of the binary .pex scripts. Declarations starting with a dot (.) declare a 'segment' of the script. Mandatory segments are .FLAGS, which contains definitions of global user flags, and .OBJECTS which contains the scripts objects (the main code). Optionally, a .STRINGS segment may contain the string table and .DEBUG segment may contain debug info.

Curved brackets (<>) are used to define user flags for various entities. For example, variables are declared with the following syntax:
type name = value
Similarly, function headers are in the following format:
return_type FUNCTION name(arugments)

@doc keyword is used for documentation comments, inspired by the Docblock syntax.

Instruction mnemonics have been taken from the PEX format specification on the uesp.net wiki: http://www.uesp.net/wiki/Tes5Mod:File_Formats

Todo

  • Properly write DEFAULT state in debug info
  • Convert property flags to more human-readable format and move them to PROP header
  • More useful error messages.
  • Recursive directory decompilation
  • Command line invocation
  • Nicer interface, maybe

Sado Yasashii

Sado Yasashii

Владелец RG
  • 08.06.2020
  • #1
    • TES III: Morrowind
    • TES IV: Oblivion
    • TES V: Skyrim (LE) / TES V: Skyrim Special Edition (SSE)
    • Fallout 3
    • Fallout New Vegas
    • Fallout 4
    • Fallout 76

    Программы для перевода TES / Fallout

    raidgame.net

    На сегодняшний день есть старая версия руководства на базе примера The Elder Scrolls V: Skyrim. Писалось на момент 2015 года, потому немного устарело. Тема будет пополняться новой информацией. Достаточно многое обновилось и требуется доработка текущего руководства. По большей части примеры будут показаны от лица TES V: Skyrim т.к. он наиболее популярен, да и объяснить будет проще. От других частей и игр разница минимальна от лица Bethesda.
    Руководство можете почитать здесь - Руководство для начинающих переводчиков.
    Это руководство так же публиковалось от моего разрешения на gamer-mods.ru, так что возможно, кто-то уже его видел. Более никому разрешение на публикацию моего руководства не предоставлялось.

    P.S. Я в большей степени специализируюсь по переводам игр TES, потому по Fallout информация будет общая. По Fallout, просьба опытных переводчиков поделиться информацией. Изначально старое руководство было размещено на modgames.net, но я свою поддержку переводов оттуда убрал полностью, как и все свои заметки. Потому меня там многие помнят, как Sadorimatsu. Если будут какие вопросы, то спрашивайте.

    По другим играм будут свои отдельные руководства.

    Ниже идёт вводная часть нового руководства, обязательно ознакомьтесь!

    Вам будет дано предельно подробное описание, как и нюансы для перевода мода любой сложности на примере TES V: Skyrim. Для других частей или для серии игр Fallout различие лишь в редакторах и сторонних инструментах для них. На момент 2020 года, весь инструментарий для всех основных частей собран в “ESP-ESM Translator”, что позволяет проводить переводы почти всех частей. Потому, для перевода, достаточно понимать базовые термины. Сперва пробежимся по небольшой истории софта. После перейдем к реальной практике на текущий день.

    Это руководство более расширено для общего понимания работы и учтены текущие порядки. Вникать в историю программ вам не нужно, достаточно знать основные термины для перевода, потому что будете постоянно с ними сталкиваться. Если по вашему мнению руководство не полное, то просьба дополнять своими личными замечаниями и опытом, и оно будет дополняться от вашего авторства в общее описания руководства. Я уважаю чужой труд, и он как минимум должно уважительно приветствоваться. Потому что само руководств писалось с личного опыта. Буду только рад любому его дополнению. Ведь выход TES VI не за горами. ?

    .ESP и .ESM – основные файлы на перевод, которые напрямую связаны со Strings. ESP считается плагином, а ESM мастер-файлом т.е. в любом моде, если есть ESM, то он должен стоят самым первым по порядку запуска, потому что является ключевой основой, а EPS всегда быть ниже его по списку. .ESP и .ESM файлы наибольше всего подвержены переводу, но и бывают исключение, что они служат как функциональная составляющая. Имеется в виду, что есть системные строки, которые трогать ни в ком случае нельзя, иначе сломаете работу мода. Как отличить такие строки, увидим в демонстрации программ.

    Strings – это списки строк, которые игра обрабатывает для вывода текста, которые разделяется на STRINGS (название, имена, обозначения, диалоги от ГГ (главного героя)), DLSTRINGS (Квесты, записки, описание умений и заклинаний) и ILSTRINGS (Диалоги НПС) и они взаимосвязаны с .ESP/.ESM. Эти списки строк являются основой перевода в любом моде.

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

    • .PSC - это исходный код скрипта, написанный на языке Papyrus, который можно редактировать через тот же Notepad++.
    • .PEX - это скомпилированный объектный файл, который получается из .PSC (Именно он содержит логику скрипта (байткод), именно его игра загружает).
    Так же они связаны с визуальным меню МСМ (Которое можно установить через инструментарий SkyUI и используется в игре через Esc).

    Раньше скрипты переводились вручную, переконвертируя расширение файла в HEX-редакторе (их несколько видов, выбираете тот, с кем вам удобней работать), но данный метод очень неудобен и накладен именно тем, что необходимо в строке через HEX-редактор, подкорректировать длину строки.

    В противном случае – “файл окажется поврежден”, и игра не сможет его загрузить. Потому для этого дела применялась программа TESVTranslator. Однако, некоторые авторы используют старый метод создания МСМ, который разделяется на .PEX и .PSC (.PSC находиться в папке scripts\source). PSC отвечает равномерно за работу МСМ, как и основной .PEX, однако, стоит только изменить строки в .PEX, то те же строки нужно будет найти вручную в .PSC через Notepad++ и изменить до точности, как вы сделали в .PEX через TESVTranslator, иначе получите пустое поле в МСМ или во все останется без изменений (если вы не уверены, что такое МСМ переведете, то лучше не беритесь). Встает вопрос, как понять какой скрипт переводить, когда их очень много? Фильтруйте выбор скриптов по их размеру, самый больший или чуть меньший будет нужный, но и не обязательно. Даже меньший размер скрипта может иметь по 1-2 строки текста, потому нужно проводить ряд тестов или спросить автора напрямую.

    Meshes (.NIF) – это 3D модель у которой есть свойства материала, эффекты и текстуры. В переводе не нуждается. Моды, такие как “текстурные”, “реплейсеры” тел и т.п. в переводе нуждаются, если содержат текст описания и принципа установки.

    Textures (.DDS) – это текстуры, которые не могут работать без Meshes (3D модель). Текстуры отвечают за внешний вид потенциально видимого внутриигрового объекта. В переводе иногда необходимы. Например, моды на дорожные знаки, тексты на стенах, обложки книг т.п. В остальном нуждаются только в переводе описания и принципа установки.

    .BSA/.BA2 (архив) – как вы может наблюдали в папке игры есть файлы с расширением .BSA/.BA2. Это игровые архивы, в которые запакованы те же Textures, Meshes, Scripts и т.д. Это сделано для удобства, чтобы было проще установить и удалить и не сильно сокращает размеры мода. Минус архивов в том, что они замедляют обращение .ESP или .ESM (сокращает время погрузки моделей, текстур, это местами заметно на HDD, пользователи SSD разницу не увидят), но на работе это особо не сказывается. Просто есть некоторые моды, что к этому восприимчивы и могут просто не работать или вызывать ошибки, потому некоторые авторы нашли решение в том, чтобы выводить отдельно от мода скрипты или любую составляющую, которую мод не может обработать в .BSA/.BA2. Если вы увидите мод с данным архивом, то не забываем проверять его содержимое через определённую программу в поисках папки Scripts т.к. скрипты могут содержать строки для перевода. На текущий день этот вопрос решается через “ESP-ESM Translator”. Об этом подробней увидите при описании программ.

    Это самые основные понятия, с которыми вы будете наиболее чаще сталкиваться. Если в моде видите каталоги video, music, sound и т.п., то это лишь мелочная составляющая модов на которые вам не стоит обращать внимание и перевода они не касаются.

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

    • NMM(Nexus Mod Managerне актуален в работе от 2016 года) - был разработан nexusmods.com
    • Mod Organizer (является аналогом NMM для Skyrim) – разработан Tannin.
    • Mod Organizer 2 (является аналогом Vortrex для Skyrim SE) – разработан Tannin - MO2 Team.
    • Vortex(основной менеджер файлов от 2018) - был разработан nexusmods.com
    Если в моде видите каталог Fomod, то значит мод имеет поддержку файловых менеджеров. В каталоге Fomod вы найдёте файлы .XML, которые хранят информацию для отображения текста при использовании менеджера файлов..XML спокойно редактируется через Notepad++. На текущий день перевод необходимых строк для менеджера файлов реализовано в “ESP-ESM Translator”. Тем самым вам строго выделяют те строки, что необходим переводить, не принуждая разбираться в составе кода. .XML наиболее известные в кругах веб-программирования, кто ставит локализацию для CMS движков или плагинов. Принцип построения тот же.

    Мод, который поддерживает установку через файловый менеджер должен иметь при себе папку “Fomod”, как показано на примере мода Wet and Cold для обычного TES V: Skyrim:

    Wet and Cold.JPG

    Wet and Cold - Fomod.JPG

    ESP-ESM Translator - Fomod.JPG

    Notepad++-01.JPG

    Notepad++-02.JPG

    • Помимо скриптов, .ESP и .ESM - переводите папки опций и их ReadMe (RUS) и старайтесь наиболее подробно переводить описание на мод и сохранять текстовики в моде, дабы служили подсказкой и обращением. Если есть моды с поддержкой Fomod, то к таким модам, просто создавайте свой текстовик ReadMe (RUS) в нужных каталогах, так вы не нарушите состав работы для файловых менеджеров.
    • Не делайте длинных названий на папки и опции, потому что чем длинней путь к файлу, тем затруднительно его получить при распаковке или переносе. Это касается модов без поддержки файловых менеджеров. Да и для общего пользования тоже.
    • Если вы желаете сохранять оригинальные название папок и опций, то в описании обязательно указывайте их название и пояснение, чтобы никто не гадал, кто где и для чего. Особенно это касается модов с поддержкой файловых менеджеров!
    • При оформлении своего перевода, обязательно указывать автора, источник (адрес сайта мода и полный путь к нему) и конечно оригинальное название. Нужно уважать авторов и их работу. Потому необходимо сохранность авторского права. Никогда не импровизируйте с названием, если и хотите дать перевод названия, то делайте это через слеш от или после оригинала. Это нужно для того, чтобы облегчить поиск мода по его оригинальному названию, иначе ваш перевод просто не найдут.
    • Обязательно, по возможности выставляйте скриншоты и видео мода, чтобы наиболее предельно продемонстрировать работу автора, как и свой перевод.
    • Так же не забываем про теги. Указываем в них либо название игры, либо автора или жанр или просто себя для быстрой навигации. Тут рассматривайте на своё усмотрение т.к. теги служат для внутреннего поиска.
    • Обязательно в описании мода указываем благодарность автору!
    • Не забываем про разрешение на перевод мода. Об этом подробней читайте ниже т.к. есть некоторые нюансы, которые вам обязательно нужно знать.

    • Egg-Translator(Не актуально в работе) – авторaabby. Можно сказать одна из старых программ, через которую переводили: Oblivion, Fallout 3 и Fallout New Vegas. Какая польза от неё для Skyrim? Через неё можно без проблем перевести .ESP и .ESM и составлять свою базу готового перевода. Однако, на сегодняшний день для перевода бесполезна и больше служит в качестве справочника. (Далее увидите, как им пользоваться…)
    • Skyrim String Localizer(Не актуально в работе) – авторMaboroshi Daikon. Считается самым первым инструментом по переводу .ESP и .ESM для Skyrim и известен многим, как SSL. На сегодняшний не актуален, но имеет свой ряд удобств, однако для крупных модов, которые занимают более 10 тыс. строк не практичен в применении из-за обработки материала (Он зависает). Его прелести в наложении готовых переводов, переводить .ESP и .ESM в файлы стрингов. Например, некоторые моды имеют конфликт с русскоязычной версией игры и данный способ перевода в стринги помогает обойти конфликт. Так же удобен при обновлении модов, когда хочешь понять, что обновилось, накладываешь старый перевод и смотришь, что ново. Но его главный минус, он убивает практически любой .ESM при прямом переводе, пропускает только наложение готового, но какое-либо ручное изменение в переводе он не пропускает и просто убивает файл. Есть и другие функции программы, но они вам не понадобятся. (Далее увидите, как им пользоваться…)
    • TESV Translator(Не актуально в работе, потому что автор выпустил более лучшую версию в лицеxTranslator) – авторmcguffin. Программа берёт своё начало от SSL, но имеет более продвинутые возможности. В отличии от SSL, не умеет преобразовывать .ESP и .ESM в STRINGS. Однако, в отличии от SSL она может переводить напрямую скрипты .PEX, меню МСМ (не вскрывая BSA) и так же без проблем переводить .ESP и .ESM. Прелести программы в том, что можно продублировать нужную тебе часть строк на другой вариант мода. Так же, если есть связь строк, как например в квестах, то покажет полную связь всех необходимых для него строк, так же это касается и диалогов, если такова связь есть. К тому же вам строго будет показано под какой раздел идёт строка т.е. системная, вещь, нпс и т.д. Так же покажет его полный ID для Creation Kit и его BaseID. Для перевода Skyrim, программа устарела и больше не применяется. Автор настоятельно указывает вместо неё использовать модифицированную версию, потому прямого руководства по нему не будет т.к. xTranslator абсолютно идентичны интерфейсом.
    • xTranslator – (Является прямым аналогом ESP-ESM Translator и имеет аналогичный ряд функционала, но местами уступает по поддержке игр и некоторым инструментам, по которым не может соперничать. Кого лучше использовать, решать вам, друг другу сильно не уступают и по мере надобности актуально использовать оба) – авторmcguffin. Программа актуальна для использования перевода: Skyrim, Skyrim SE, Fallout NV, Fallout 4, Fallout 76. И по интерфейсу полный аналог TESV Translator, но с более доработанным набором инструментов и расширенными возможностями по поддержке игр. (Далее увидите, как им пользоваться…)
    • ESP-ESM Translator – (Является основным инструментом для переводов полного набора мода любой сложности) – автор Epervier 666. Программа актуальна для использования перевода: Morrowind, Oblivion, Skyrim, Skyrim SE, Fallout 3, Fallout NV, Fallout 4, Fallout 76. Он также может быть использован для перевода “диалогов” от старых игр BioWare (Baldur's Gate, Planescape. ) и для Fallout 1 и 2, Torment: Tides of Numenara, Wasteland 2, Pilars of Eternity, Ultima 7, Ultima 8, Ultima 9, Ultima Underworld, Darkest Dungeon, Arcanum. Программа работает с базой данных (т.е., либо вы качаете готовую, либо создаете свою базу переводов), которая содержит каждый текст игры на необходимом вам языке. (Далее увидите, как им пользоваться…)
    • TES5Edit – данная программа больше служит для изменений или правки .ESP и .ESM в их работоспособности (выявляет конфликты модов) и для переводов редко используется. Однако, он больше полезен для модмейкеров. Для перевода он вам особо не понадобиться, но взять на заметку стоит. Объяснение, как им пользоваться есть в отдельном руководстве, пройдите по ссылке. Помимо TES5Edit для Скайрима, есть аналоги и по другим: TES4Edit(Fallout 4),FO3Edit(Fallout 3),FNVEdit(Fallout NV),EnderalEdit(Enderal: Forgotten Stories),SSEEdit(Skyrim SE).
    • BSAopt – это упаковщик и распаковщик .BSA архивов. (Далее увидите, как им пользоваться…)
    • TESArchive – расположен в папке игры под названием Archive.exe. Он выполняет те же функции, что и BSAopt. Им рекомендуется пользоваться при создании архивов .BSA, чтобы избежать любые проблемы сжатия, как бывают с BSAopt. Используется только в обычной версии Skyrin, для SSE не предусмотрен. Как им пользоваться читайте отдельно руководство пройдя по ссылке.
    Здесь дан список основных программ для работы с модами Skyrim / Skyrim SE. Для других игр и частей предназначены другие программы для более дательной работы, потому о них информация будет представлена позже или предоставлена более опытными лицами. Основная возможность перевода всех частей и игр предлагается в лице ESP-ESM Translator и xTranslator.

    Собственно всё, это единственный набор, с которым вам чаще всего предстоит иметь дело. С некоторыми чаще, с другими реже, зависит от сложности мода. Для пользования Creation Kit есть уйма документации и видео, да и в переводе он вам может редко понадобиться. Для общего развития можете посмотреть видео уроки на YouTube. По другим программам и инструментам просьба выяснять самим и по возможности делиться информацией для расширения руководства.

    Содержание

    В помощь переводчику - дизассемблирование скриптов что делать, если автор не дал psc файлы

    Перевод - это великое дело, но что делать, если переводимый текст записан в функции MessageBox "ля ля - фа фа", а исходника (.psc файла) этого скрипта злобный автор не предоставил?

    Не унываем - выход есть: Bethesda снабдила нас возможностью дезассемблировать скрипты, просто не сказала нам об этом.

    Как это сделать:

    1. 1) Ну это в принципе ясно - ставим "конструктор"
    1. 2) Находим папку %gamedir%\Papyrus Compiler и обращаем в ней внимание на файл PapyrusAssembler.exe - это и есть ассемблер скриптов, а он-же и дезассемблер, если задать соответствующий ключ.

    Как им пользоватся?

    • Устанавливаем рабочую папку в папку с .pex файлом, который нужно дезассемлбировать

    Ну, это сделать так, чтоб в утилите cmd перед курсором писалось например e:\Skyrim\data\Scripts, короче путь к интересующей нас папке. Это можно сделать набором команд cd или перейти в файлменеджере (напр. Total commander) в нужную папку и в командной строке набрать cmd и нажать "ввод".

    В командной строке (можно, даже лучше, создать .bat файл) пишем:


    "%gamedir%\Papyrus Compiler\PapyrusAssembler" -D

    • Жмём ввод.
    • Итого, если всё написано правильно т. е. если программа написала:

    0 error(s), 0 warning(s)

    Disassembly succeeded

    • То ищем в папке с .pex файлом файл формата "имя нашего pex файла.disassemble.pas" - это и есть дезассемблированный файл, который хоть и имеет специфический формат, сильно отличающийся от формата psc файла, но уже являющийся текстовым и его можно редактировать.

    Итак. Редактировать. А что редактировать? А то же (названия функций принципиально не изменены т. е. забивай в поиск название функции напр. MessageBox (или Message), находи строку, в которой она встречается и редактируй текст в "кавычках".

    Пример:

    исходный скрипт:(psc)


    Дизассемблированый скрипт (pas)

    Дааа. Многовато. но не бойся.


    Просмотрел? Увидел строку

    CallStatic debug MessageBox ::nonevar "Привет, мир!" ;@line 6

    Это и есть интересующее нас место. что тут менять - это и ежу понятно: "Привет мир!" (кавычки сохраняем - они - техническая часть текста)


    Ну поменяли. А что дальше? Да всё просто:

    Ассемблируем!

    - стираем из имени файла участок .disassemble - и пишем всё то же, что и при дизассемблировании, только без ключа -D :


    "%gamedir%\Papyrus Compiler\PapyrusAssembler"

    Если всё введено правильно то программа выдаст:


    0 error(s), 0 warning(s)


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

    И ещё по одной.

    PapyrusAssembler

    Использование: PapyrusAssembler файл [-D] [-V] [-Q] [-A] [-S] [-?]

    Файл имя файла (путь берётся только из "рабочей папки", больше никак), который будет скомпилирован или декомпилирован. файл должен указыватся без расширения! Компилятор ищет файл с расширением ".pas". Декомпилятор ищет расширение ".pex". Внимание! декомпиляция не происходит, если имя файла скрипта не совпадает со строкой, начинающейся с байта 0Х12h в теле скрипта! (в нормальном состоянии строка дублирует имя файла)

    -D Дезассемблировать объект, если не указан - ассемблирует его.

    -V Включить подробный режим. (выводит туеву хучу всякой техинфы)

    -Q Включает тихий режим. (выводятся только сообжения об ошибках)

    -A Только анализ. Ассемблирование/дезассемблирование не производится.

    -S Удаляет отладочную информацию из скомпилированного (.pex) файла. Нельзя использовать с -A или -D

    -? Выводит справочную информацию

    PapyrusCompiler

    Использование: PapyrusCompiler [ ]

    Файл Указывает файл для компиляции. (-all не указан)

    папка Указывает папку для компиляции. (-all указан)


    Аргументы Один или несколько из следующих:

    • -debug -d Включает режим отладки компилятора, на экран выводится техническая информация.
    • -optimize -op Включает режим оптимизации кода скрипта.
    • -output -o= Указвает каталог для записи скомпилированных скриптов.
    • -import -i= Указвыает папки для импорта библиотек (тоже psc файлы) компилятором, разделённые ";". Обязателен для указания. Путь по умолчанию %gamedir%\data\scripts\source\
    • -flags -f= Указывает путь к файлу с флагами, определёнными пользователем. Обязателен для указания. "дефолтный" файл флагов лежит по пути %gamedir%\data\scripts\source\TESV_Papyrus_Flags.flg
    • -all -a Задаёт компилятору скомпилировать все psc файлы в заданной папке. (в качестве объекта должна быть заданна папка).
    • -quiet -q Тихий режим. Отображаются сообщения только об ошибках.
    • -noasm Ассемблер не вызывается и не производится ассемблирование скрипта. (короче только анализ)
    • -keepasm Сохраняет ассемблер файл после завершения работы ассембера. (сохраняет pas файл)
    • -asmonly Создаёт ассемблер файл, но не вызывает ассемблер. (создаёт pas файл, но не создаёт pex файл)
    • -? Выводит справочную информацию.

    Файл TESV_Papyrus_Flags.flg (по умолчанию лежит в %gamedir%\data\scripts\source\TESV_Papyrus_Flags.flg

    Начинка по умолчанию и её описание:

    Формат строк задаётся следующим образом (пробелы игнорируются, index должен содержать 0 - 31 символов):

    Flag // Флаг применяется для всех типов

    Flag < >// флаг применяется только для указанных типов*/


    // Список флагов для TESV - НЕ РЕДАКТИРОВАТЬ


    // Флаг прячет скрипт или параметр от игрового редактора. (ну небось типа в редакторе не отображается) Flag Hidden 0


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

    // Флаг на переменной определяет переменную скрипта как исследуемую системой состояний.

    // Сам нихера не понял, что это значит, но самый близкий перевод.

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