Как мод перекинуть из версии в версию. Как установить моды в майнкрафт

Я создаю эту тему в помощь переводчикам, которые испытывают различные трудности при переводе модов и скриптов Скайрима.

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

Во многих случаях, мне очень помогал английский и русский экспорт текстов игры. Допустим, при переводе мода вам попались имя, фраза, название, часть текста книги, описание зачарования и т.д, которые автоматически не перевелись, так как имеют отличный от оригинального id, а вы хотите, чтобы их перевод соответствовал официальному переводу, или же таких записей так много, что просто глупо переводить их заново самому, когда их перевод сделали 1С. Но где же взять этот перевод 1С? Не лезть же в игру и не искать. Потому я сделал для себя английский и русский экспорт игровых текстов.
Допустим, при переводе я встретил такое описание зачарования "For seconds you automatically become invisible while sneaking."
Я открываю текстовый файл с экспортом и с помощью поиска нахожу это описание:
For seconds you automatically become invisible while sneaking.
Подкрадываясь, вы автоматически становитесь невидимы в течение с.

Вот сделанный мной экспорт
1,19МБ 5280 Количество загрузок:
2,01МБ 4120 Количество загрузок:
237,92К 2736 Количество загрузок:
14,24МБ 2074 Количество загрузок:

TESVTranslator - базовые функции

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

Я выделю лишь следующие особенности программы, которые сделали ее для меня любимой.
1. При переводе вы видите и оригинальный английский текст и переведенный русский. Это сильно помогает в различных ситуациях.

2. Программа позволяет создать словарь из strings файлов оригинальной игры.
Options - Set options and Languages

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

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

Видите? Я перевел Relighting Skyrim на русский, сохранил файл, а затем загрузил в программе уже переведенный мод, абракадабра возникла из-за того, что был выбран англо-русский словарь -> . Как я и сказал, надо создать исключительно русский словарь. Делается это так же, как и создание английского, но в этот раз исходным языком так же назначается русский.

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

Проделайте это и для english - russian словаря и для russian - russian, а затем будете просто быстро выбирать подходящий под ситуацию.

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

3. Сравнение, вот еще одна функция, за которую я люблю эту программу, в ней можно сравнивать файлы. Это функция очень удобна, когда версия мода обновилась и вам необходимо перекинуть перевод со старой версии мода на новую. Допустим, некий переведенный вами мод обновился и надо как-то перебросить перевод со старой версии на новую, тогда вы делаете следующее, берете есп файл старой версии (relightingskyrim.esp), изменяете его название на OLD.esp (к примеру) и помещаете в папку Data. Затем скачиваете новую версию мода и помещаете есп новой версии (relightingskyrim.esp) в папку Data.
Далее открываете программу и загружаете есп новой версии (словарь english-russian). У вас загрузится новая английская версия вашего мода, теперь необходимо провести сравнение между названием строк в новой версии и в старой, переведенной вами. Нажмите tools и выберите Load esp (Compare), затем выберите есп старой версии (OLD.esp). Программа предложит выбрать вам метод замены и перезаписи:
Все строки (Everything)
Только непереведенные строки (Everything but already translated strings)
Только непереведенные и обработанные (Everything but already translated and validated strings) - никогда не пользовался
Только выбранные строки (Selection only)
Ситуации бывают разные, я обычно выбираю между первыми двумя методами, но в данном конкретном случае при переброске перевода нам надо выбрать метод (Everything).
Если id не изменились, то при нахождении совпадений в качестве перевода строки будет вписываться перевод из старой версии мода. И тут нам снова пригодится одновременный просмотр оригинального текста записи и перевода, ведь может так случится, что id не изменился, но автор изменил название у парочки предметов, и вот ваш перевод перенесся, и в нем эти предметы называются, как в старой версии. Просмотрите внимательно все записи, если где-то перевод не соответствует оригинальному тексту, то просто внесите нужные изменения, мод можно сохранять.

Также программа позволяет создавать словарь для мода (SSTstrings dictionary), эта функция работает в режиме english-russian, но не будет работать в russian->russian, таким образом, вы не сможете создать словарь мода из уже переведенного русского мода. А если попытаться загрузить русский мод в режиме english-russian, то получите кракозябру. Решение простое, вам надо взять английский оригинальный есп и провести сравнение с русским в режиме english-russian, таким образом все строки переведутся и вы сможете создать словарь. Очень полезная функция, всегда создавайте словари переведенных модов, поскольку это сильно поможет упростить перевод модов со схожим текстом в будущем.

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

Чуть позже расскажу о переводе скриптов и MCM.

Перевод и компиляция скриптов

Это довольно обширная тема. Есть масса способов перевести скрипты и масса ситуаций, где подойдет лишь только один способ, а чтобы научиться переводить любые скрипты, вам придется узнать и опробовать все способы.

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

Во множестве модов есть скрипты, бывает так, что скрипты содержат текст, вы бы хотели его перевести, но не знаете как. Этого текста нет внутри есп? Все верно, текст находится внутри скриптов (одного или нескольких), относящихся к моду. Скрипты мода лежат в папке scripts, скомпилированные скрипты имеют формат .pex , просмотреть их в специальной программе можно, но бесполезно. Но как же нам тогда перевести текст?
Тут нам и пригодятся исходники. Внутри папки scripts может находиться (если автор не поленился и положил) папка source. Внутри этой папки вы увидите файлы все с теми же названиями, что и у скриптов, но они будут иметь формат .psc . Такой формат имеют исходники скриптов, и вы сможете их прочесть при помощи Notepad++ . Вероятно, вы поначалу растеряетесь и не сможете ничего понять из написанного внутри, но не отчаивайтесь, со временем вы научитесь быстро определять, что именно вам нужно перевести, даже не заглядывая в игру.

Но приведу пример:

Я очень рекомендую вам открывать скрипты программой Notepad++ , она обладает множеством полезных и необходимых функций, с ней легко и приятно работать, да и документ она отображает 100% верно, в отличие от стандартного блокнота.
Открыв исходник, вы увидите нечто подобное:

int newDamage = armeModel.getbasedamage()
int newGoldvalue = armeModel.getGoldvalue()
Miscobject Lingot = Rep.Get_Material(armeCasse)
bool IsEnchanted = DegWeaponEnchanted.Hasform(armeCasse)
float IsToPay = Rep.TestPerk(Lingot)
int NbreMarteau = player.GetItemCount(marteau)
int PerkSmithEffect = (Player.GetActorValue("Smithing") / 10) as int ;

If(armeCasse.getbaseDamage() >= newDamage) ;

menu1()

Elseif(NbreMarteau == 0) ;

Elseif IsEnchanted && (player.hasPerk(arcaneBlacksmith) == false) ;

menu1()
else
if(armeCasse.getbaseDamage() + PerksmithEffect >= newDamage) ;
;RepSound2.play(PLAYER)
player.removeitem(Lingot,1)
armeCasse.setbasedamage(newDamage)
armeCasse.setgoldvalue(newGoldvalue)
debug.messagebox("I need the material: " + Lingot.getName())

Вот он, наш клиент:

Debug.messagebox("This weapon doesn"t need to be repaired !")
debug.messagebox("I first need a whetstone...")
debug.messagebox("I do not have the required skill to repair enchanted weapons!")

Нужные вам сообщения часто имеют приписку messagebox или лишь message , но иногда и не имеют, просто по слову message их легче всего отличить.
- Нужные вам сообщения обычно имеют определенный смысл, по этому смыслу их легко отличить от прочего технического мусора. Глядите, сообщение "I do not have the required skill to repair enchanted weapons!" явно предназначено игроку в отличие от (player.hasPerk(arcaneBlacksmith).
- Нужные вам сообщения заключены в кавычки "I first need a whetstone..." и при переводе вы не должны ни в коем случае убирать эти кавычки. Возьмем, к примеру, debug.messagebox("I need the material: " + Lingot.getName()). Как мы видим, здесь требуется перевести фразу "I need the material: " .
Вы уже заметили, что между двоеточием и закрывающей кавычкой есть пропуск, так вот при переводе вы обязательно должны сохранить этот пропуск, поскольку после пропуска будет вставлено название некоего материала, а если пропуск убрать, то двоеточие и название сольются вместе. В итоге у вас получится "Мне нужен материал: " , а целиком строка будет выглядеть так:
debug.messagebox("Мне нужен материал: " + Lingot.getName())
Таким образом, вы просматриваете все исходники и находите в них строки, требующие перевода, после чего вы их аккуратно переводите.

Итак, вы перевели все необходимые сообщения, теперь просто сохраните скрипты.

Я надеюсь, у вас лицензионная копия игра и вы уже установили Creation Kit в стиме, поскольку без CK дело дальше не двинется.
Вы установили CK, и перевели исходники скриптов. Теперь вы должны взять переведенные исходники и положить их в папку Skyrim\Data\Scripts\Source.
Включайте CK, нажимайте вкладку Gameplay и выберите Compile Papyrus Scripts. Программа может зависнуть на несколько минут. Дальше откроется окно "Pick Script to Compile" (окно может открыться, но будет скрыто из виду другими окнами, так что вы можете не заметить его, но если программа отвисла после нажатия кнопки. то значит окно открылось, поищите его).

Рассмотрим окно "Pick Script to Compile". В нем перечислены все исходники скриптов, лежащие в папке Source. Полистайте список и отыщите свои переведенные скрипты, отметьте их галочкой, когда отметите все, нажмите кнопку Compile. Откроется другое окошко, где будет виден прогресс компиляции. Думаю, вы обладаете достаточным знанием языка, чтобы понять, что означают тамошние надписи, если скрипт обработался успешно, то справа от названия будет написано Success и окошко закроется после компиляции, если что-то пошло не так, то будет написано Failed и снизу выведена информация о неудаче. Успешно скомпилированные скрипты будут находиться в папке Skyrim\Data\Scripts и иметь формат.pex. Замените нашими переведенными и скомпилированными скриптами оригинальные англоязычные. Теперь в игре все сообщения, зашитые в скрипты, будут на русском языке.

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

Вот вы и перевели скриптовые сообщения мода. Поздравляю!

2. Но что делать, если скрипт никак не желает успешно компилироваться, или если автор не положил исходников, или вы подозреваете, что они некачественные и старые - как же быть тогда? Здесь, друзья, я расскажу вам о втором методе перевода скриптов, это мой любимый метод.
Вам обязательно понадобится: установленный Creation Kit, программа Notepad++ , а также программа, разработанная нашим добрым другом . Эта программа является уникальной разработкой специально для сайт, так что вновь прошу вас, не распространяйте ее на других сайтах. Программу , она видна лишь определенным группам.

Поговорим о программе. Она имеет 3 функции:
Ассемблер
Дизассемблер
Компилятор

Нас более всего интересуют первые две функции (Ассемблер и Дизассемблер).

Третья функция "Компилятор", является по сути тем же самым компилятором скриптов, который мы использовали в первом методе, она работает точно так же. Я немного расскажу об этой функции и больше мы к ней возвращаться не будем. Чтобы с ее помощью скомпилировать нужные нам скрипты, вам надо положить исходники в папку source, в самой программе нажать кнопку "Добавить файлы", выбрать перемещенные исходники, в строке результат нажать кнопку "обзор" и выбрать папку Data\Scripts. Затем нажмите кнопку "Компилировать". Если скрипты сами по себе нормальные и вы не допустили ошибок при переводе (например, случайно стерли кавычку), то исходник скомпилируется в.pex и окажется в папке Data\Scripts. По сути, это просто еще один вариант компилятор из первого метода, и ничем от него не отличается. И да, вам все также нужен CK, иначе Papyrus Assembler GUI не заработает.

Но вернемся к куда более важным функциям, а именно функциям Ассемблер и Дизассемблер. Уверяю, они не раз вас выручат в будущем.
Предположим, автор не положил в архив с модом исходников своих скриптов, и вы никак не можете перевести их теперь. В таком случае на помощь вам придет функция дизассемблирования скрипта.
Создадим отдельную папку для программы, положим в нее программу, а теперь перетащим все скрипты мода (.pex) в эту папку. Откроем программу, выберем функцию "Дизассемблер", затем нажмем кнопку "Добавить файлы" и в открывшемся окошке выберем все перетащенные скрипты и нажмем "открыть". В окне "исходные файлы" отобразятся все выбранные нами скрипты. Нажмите кнопку "Дизассемблировать", тогда все выбранные вами скрипты будут дизассемблированы в то же место, где находятся программа и.pex скрипты. Дизассемблированные скрипты имеют формат .pas , а в их названии перед форматом файла заодно содержится приписка .disassemble .

Дизассемблированные скрипты выглядят примерно так же, как и исходники:

ISubtract::temp23 newAR::temp23 ;@line 142
IMultiply::temp23::temp23 50 ;@line 142
Cast::temp29::temp23 ;@line 142
Assign IsToPay::temp29 ;@line 142
Jump _label19 ;@line 142
_label19:
CompareLT::temp31 indic 0 ;@line 145
JumpF::temp31 _label20 ;@line 145
CallStatic debug messagebox::NoneVar "Sorry. Error: Your equipment can"t be repaired." ;@line 146
Jump _label21 ;@line 146
_label20:
CallMethod getArmorRating armureCasse::temp23 ;@line 147
CompareGTE::temp28::temp23 newAR ;@line 147
JumpF::temp28 _label22 ;@line 147
CallStatic debug messagebox::NoneVar "This piece of armor doesn"t need to be repaired !" ;@line 148
CallMethod menu1 self::NoneVar ;@line 149
Jump _label21 ;@line 149
_label22:
Cast::temp25 Lingot

Как видите, принципы определения нужных вам строк все те же, часто они содержат слова message и messagebox, а фраза, требующая перевода, имеет в этом случае даже еще больше смысла, чем технический мусор ее окружающий. Все так же мы переводим сообщение в кавычках, сохраняя сами кавычки. ПОМНИТЕ, вы можете, как угодно переводить фразу внутри кавычек, но вы не должны ничего изменять за пределами кавычек, вы не должны изменять сами кавычки, как то стирать кавычки, случайно ставить лишние кавычки. Да, стоит это упомянуть, сообщение в кавычках не должно содержать прочих кавычек, вместо этого используйте апостроф (код: alt+39 на numpad). Приведу пример
Исходное сообщение:
"This piece of armor doesn"t need to be repaired !"

Если вам требуется выделить нечто в сообщении, то используйте апостроф:

Неправильно делать так:
"Эта "часть брони" не требует починки!"
В этом случае ваш скрипт не скомпилируется. В кавычки должно быть заключено исключительно само сообщение.

Итак, вы просмотрели весь документ, отыскали все сообщения и перевели их. Дизассемблированный скрипт куда больше исходника. Возможно, вам будет сложно просмотреть весь скрипт и отыскать все сообщения, требующие перевода. Лично я поступаю так: открываю дизассемблированный скрипт в notepad++, нажимаю ctrl+f, открывается окошко поиска, в поле "найти" я просто вписываю кавычку " и нажимаю кнопку "найти все в текущем документе", таким образом, мне выдаст окно со всеми строками, содержащими кавычки. Оно все еще может быть большим, но все же информации в нем куда меньше, чем в полном документе. Я сейчас работаю со скриптом, и поиск выдает мне 154 строки вместо 1300 в полном документе, то есть разница в количестве строк, которые надо просмотреть, весьма существенная.

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

Пример:
Оригинальный скрипт называется
DegRepairBenchScript.pex

Дизасемблированный скрипт
DegRepairBenchScript.disassemble.pas

Чтобы ассемблировать этот скрипт, он должен выглядеть так
DegRepairBenchScript.pas
Видите? Мы удалили из названия часть.disassemble, появившуюся после дизассемблирования.

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

Итак, мы открыли программу, выберите функцию "Ассемблер", а дальше все по старому сценарию. Нажмите кнопку "Добавить файлы" выберите ваши переведенные.pas и нажмите кнопку "Ассемблировать", если вы в процессе перевода нигде не задели кавычек, не поставили лишних кавычек, а строго вписывали свой перевод внутри существующих кавычек, то скрипт в 100% случаев ассемблируется обратно в.pex.

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

Ура! Вы только что перевели скрипт, не имеющий исходников. Теперь вы способны на перевод большинства модов.
Лично я перевожу данным методом любые скрипты, даже если автор положил исходники. Поскольку с данным методом работать куда быстрее, чем с компилятором, да и скрипты всегда ассемблируются обратно в pex, если конкретно я не допустил никаких ошибок, в отличие от метода компилятора, когда скрипт может не компилироваться по непонятной мне причине.

Чуть позже я расскажу о переводе скриптов MCM меню мода SkyUI. Авторы далеко не всегда создают текстовый файл для перевода и не всегда кладут исходники скриптов, но вот в переводе mcm скриптов посредством дизассемблирования есть своя небольшая хитрость. Я пока что попью чаю, а вы попрактикуйтесь с первыми двумя методами, особенно со вторым, он вам жизненно необходим.

Перевод MCM для SkyUI

Какие существуют методы перевода MCM меню SkyUI, если мод таковое добавляет?

1. Это когда автор озаботился создать специальный текстовый файл для перевода mcm меню из своего мода. Этот файл находится в папке Interface\Translations
Он называется следующим образом:
Название мода_Название языка.txt

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

Итак, мы открываем этот файл перевода, а если для нашего языка его нет (есть только английский), то создаем его, затем копируем в него информацию из английского

Вот английский achievethat_ENGLISH.txt

$Achievement Points Achievement Points
$Achievements Achievements
$Settings Settings
$Progress Progress
$AT_QN Enable Completed notifications
$AT_DN Enable upper left corner notifications
$Character Character
$Attributes Attributes

Мы копируем данный текст в achievethat_RUSSIAN.txt
и переводим

$Achievement Points Очки достижений
$Achievements Достижения
$Settings Настройки
$Progress Прогресс
$AT_QN Включить уведомления о выполнении
$AT_DN Включить уведомления в верхнем левом углу
$Character Персонаж
$Attributes Характеристики

Как видите, тут все крайне просто. Переводим, сохраняем, проверяем в игре, меню переведено, все счастливы.

Дальше существует масса различных ситуаций.
Может случиться так, что автор пропустил одну строку и не добавил ее в файл перевода, то есть мы никак не можем перевести с помощью файла перевода. Здесь у нас есть следующие возможности.
Если автор положил исходник скрипта mcm меню, то вы можете изменить сам скрипт, делается это точно так же, как и перевод скрипта. Вы находите строку, которая не была помещена в файл перевода и дальше вы имеете различные варианты действия:
1. Перевести саму строку в скрипте и скомпилировать скрипт.
2. Заменить сообщение в кавычках на некий ключ, например, сообщение в кавычках "cake is lie", вы можете заменить это сообщение на ключ cake и поставить перед ним символ $, таким образом выйдет "$Cake", а затем вы просто добавляете этот $cake в свой файл перевода и нажав tab, пишите рядом перевод оригинальной фразы

$AT_DN Включить уведомления в верхнем левом углу
$Character Персонаж
$Attributes Характеристики
$Cake Торт - это ложь


2. Но предположим, файла перевода нет, и исходника скрипта mcm меню тоже нет. Тогда нам лишь остается обратиться к дизассемблеру и ассемблеру скриптов. Выше я уже объяснял вам, как это делается, так что рассчитываю, что вы уже знаете. Должен однако заранее предупредить, что не существует 100% гарантии, что у вас выйдет целиком перевести MCM меню, поскольку некоторые авторы создают скрипт таким образом, что название страниц перевести невозможно. К счастью, это достаточно редкое явление.

Итак, как и в случае с обычным скриптом, мы дезассемблируем скрипт нашего меню. Создавать файл перевода мы не будем (лично мне лень), так что будем переводить сразу сам скрипт. Перво-наперво надо запомнить, что перед переводом вы должны переключить кодировку документа в UTF-8 (без BOM), вы открываете дизассемблированный скрипт в notepad++ и выбираете закладку "Кодировки", где выбираете указанную кодировку, затем вы начинаете переводить скрипт. Смысл этого я объясню чуть позже.
Должен сказать, что МКМ скрипт содержит куда больше технического мусора, а также ложных сообщений, которые не нуждаются в переводе, но выглядят осмысленно.

Приведу пример:

Line 513: CallMethod AddSliderOption self::temp3 "Stamina Threshold" ::temp5 "{0}%" 0 ;@line 76
Line 521: .docString "Called when the user selects a slider option"
Line 599: CallMethod SetInfoText self::NoneVar "Potions will only be automatically used on combat." ;@line 234
Line 111: Assign::ModName_var "Swift Potion" ;@line 29
Line 114: Assign::temp1 "Options" ;@line 31
Line 120: .docString "Function that returns the current state"
Line 132: .docString "Function that switches this object to the specified state"
Line 148: .docString "Called when the user selects a non-dialog option"
Line 303: CallMethod SetSliderOptionValue self::NoneVar a_option a_value "{1}" False ;@line 174
Line 310: .docString "Called when a key has been remapped"
Line 339: CompareEQ::temp19 a_conflictName "" ;@line 186
Line 342: StrCat::temp20 "This key is already mapped to:\n"" a_conflictControl ;@line 187
Line 343: StrCat::temp20::temp20 ""\n(" ;@line 187
Line 345: StrCat::temp20::temp20 ")\n\nAre you sure you want to continue?" ;@line 187
Line 349: StrCat::temp20 "This key is already mapped to:\n"" a_conflictControl ;@line 189

Строки
.docString "Called when the user selects a slider option"
.docString "Function that returns the current state"
.docString "Function that switches this object to the specified state"
.docString "Called when a key has been remapped"
Как вы видите, эти сообщения явно не для игрока.

А вот эти строки следует перевести
Assign::ModName_var "Swift Potion" - название мода
Assign::temp1 "Options" - название страницы с настройками
StrCat::temp20::temp20 ")\n\nAre you sure you want to continue?" - еще одно сообщение. Кстати, видите скобку и \n внутри кавычек? Вы ни в коем случае не должны их удалять

Итак, пользуясь знаниями языка и логикой, мы находим сообщения требующие перевода, помните, кодировка у нас выставлена UTF-8 (без BOM) при этом, мы переводим все эти сообщения как обычны. А затем мы вновь меняем кодировку документа, в этот раз мы кодируем в ANSI. И что же происходит? Все наше переведенные сообщения превращаются в абракадабру. Но это нам и нужно.

Зачем это нам нужно? Посмотрите на следующее изображение

Видите названия страниц в красной рамке? Дело в том, что эти названия являются (как это понимаю я) ссылками, а ссылки не работают, если написаны кириллицой, потому мы используем такую хитрость, мы пишем русское название в utf-8, а потом переводим в ansi, таким образом, ссылки работают, а в игре отображает русское название. Для остальной части документа (зеленые и синие рамки) кодировка utf-8 (без BOM) необязательна, но лично я перевожу весь документ целиком в utf и затем кодирую в ANSI. Если не использовать хитрость с кодировкой, то страницы не будут работать и не будут ничего отображать.

К сожалению, бывает ситуация, когда автор создает меню таким образом, что перевести названия страниц невозможно. К счастью, содержание страниц переводится так же, как написано выше. Но почему названия страниц перевести невозможно? Приведу пример из моей практики, дизассемблированный скрипт содержал строки с названием этих страниц, при их переводе в кодировке utf-8 ничего не произошло, а если говорить точнее, названия остались на английском, а вот страницы работать перестали. Я решил копать глубже и выяснил, что название страниц находится properties скрипта (что это такое я объясню позже), который можно изменить с помощью CK. Но проблема в том, что у нас идет, как бы, ссылка на ссылку, мы не можем использовать в скрипте кириллицу и потому создаем удобоваримую игрой абракадабру, но в properties мы ее создать не в состоянии, мы можем использовать там либо кириллицу, либо латиницу, и в любом случае выходит, что название, оставленное в properties, не соответствует названию в скрипте, так что единственный найденный мною выход, это не переводить в таком случае названия страниц. Хоть это и слегка некрасиво, но главное, что сами настройки мы в состоянии перевести, а они ведь куда важнее.

Вот таким образом, можно переводить скрипты MCM меню. Скрипты бывают разные, временами встречаются весьма нестандартные. В некоторых скриптах есть обманчивые сообщения, которые почти невозможно отличить от тех, которые следует перевести, но если перевести эти обманчивые сообщения, то какая-то часть МКМ меню может перестать работать.

Теперь наш обычный скрипт с месседжбоксами имеет правильную кодировку. Сохраняем его. Затем ассемблируем обратно в pex.

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

Мне осталось рассказать только одно о МКМ меню и скриптах, а конкретно перевод названий мода в списке MCM, да и вообще properties в целом, я же выше обещал. Но это в следующем сообщении.

Перевод названия мода в МКМ | Перевод сообщения при использовании способности

В этот раз пойдет речь о том, как переводить название мода в списке модов MCM и скриптовые сообщения, появляющиеся при использовании способностей.

Как видите, в списке 4 мода, лишь название одного переведено. Авторы по разному пишут скрипт МКМ. Если вам повезет, то вы сможете перевести название при переводе скрипта меню, но в большинстве случаев не везет, и название находится в другом месте.

Помните, я упоминал properties? Вот и мы дошли до них.

Итак, чтобы перевести название мода в списке, вам понадобится Creation Kit. Открываем CK. Грузим мод. Мод загрузился. Слева выбираем вкладку "Quest", затем сортируем записи, чтобы записи со звездочкой оказались вверху, вам нужна всего одна из этих записей, отвечающая за MCM, в моем случае такая запись только одна, в целом их не бывает много.

Открываем эту запись. Выбираем вкладку "Scripts". Видите, к записи прикреплен скрипт? Он нам и нужен, именно в этом скрипте содержится строка с названием мода.

А теперь самое главное! Если вы попробуете открыть этот скрипт, то получите вот такую ошибку.

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

Есть 2 ВАЖНЫХ правила, которые необходимо выполнить, чтобы открыть этот скрипт МКМ меню без ошибки:
1. Скрипты мода, который вы переводите, должны лежать в папке Data\Scripts, скрипты в архиве BSA не подходят! Конечно, на самом деле нужны не все скрипты, а конкретно тот, который связан с тем, что мы пытаемся открыть, но легче и надежнее положить ВСЕ скрипты. Запомните, скрипты мода должны лежать в соответствующей папке игры незапакованными.
2. Скрипты SkyUI ТАКЖЕ должны лежать в соответствующей папке игры незапакованными, только соблюдая оба этих правила, вы сможете открыть тот скрипт в CK. Если не будет скриптов SkyUI в папке Scripts, то вы получите приведенную выше ошибку или схожую с ней, но вы не откроете скрипт.

Итак, я получил ошибку и вспомнил о двух вышеописанных правилах, я сделал все, как надо, поместил незапакованные скрипты обоих модов в соответствующую папку (Data\Scripts). Теперь я перезапускаю CK, вновь загружаю мод, дохожу до скрипта, нажимаю на него, и у меня он открывается.

Вот они наши properties скрипта. И как вы уже догадались, наша цель "ModName" тип String. Выбираем данную строку, в правой части окошка есть поле, вписываем туда русское название мода. Стоит учесть, что меню SkyUI весьма ограничено по ширине, а надпись будет в одну строку, так что придумайте моду название покороче, дабы оно уместилось в границах.

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

Бывает так, что мод дарует нашему герою некоторые способности, а эти способности в свою очередь при использовании выводят сообщение в левом верхнем углу, очень часто этого сообщения нет ни в есп/есм, ни в скриптах. Как вы уже догадались, эти сообщения находятся в properties, подобно названию мода в MCM. Вот пример из мода "Основные потребности"

При активации мода герой получает способность "Проверить потребности", когда герой ее использует, то в левом верхнем углу выводится информация о потребностях. Чтобы перевести такую информацию нам вновь потребуется сделать то же самое, что и выше, но в этом случае скрипты SkyUI не требуются, хотя и рекомендую переводчикам их всегда держать в распакованном виде в папке scripts. А вот распакованные скрипты мода все так же необходимы. Итак, вы распаковали скрипты в соответствующую папку, включили СK, загрузили мод. Теперь вам необходимо найти способность.

В моем случае это вкладка "Magic Effect". Я сортирую способности, чтобы добавленные модов оказались вверху. Нахожу нужную мне (я уже знаю какая мне нужна, но вот вам в первый раз, возможно, придется и поискать ее, это не всегда очевидно, но в большинстве случаев поиски не занимают много времени).

Нам нужны строки типа string, именно они отображаются в игре при использовании способности, и именно их мы будем переводить. Выбираем каждую строку и вписываем перевод в форму String Value справа. Затем кликаем ОК, чтобы закрыть окно properties и снова ОК, чтобы закрыть окно магического эффекта. Сохраняем мод и проверяем в игре. Вот и вся наука.

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

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

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

Найдите интересующий вас мод к игре в интернете, желательно одну из последних по времени издания версий. Для этого зайдите на сайт разработчика мода и посмотрите, какая версия является наиболее актуальной. Скачайте архив с модом. Обычно моды находятся в архивах с расширением.rar или.zip. Распакуйте их в отдельную папку с помощью программы-архиватора (7Zip или WinRAR соответственно). Внутри папки будут файлы, необходимые для установки мода, обычно с расширением.esp, иногда.esm.


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


Изучите структуру папок вашей игры. Обычно игры устанавливаются по умолчанию в папку C:\Program Files\ , далее идет <название игры>/< папка игры> или на локальном диске C:\ в корневой папке, если вы не изменяли папку при установке игры. Чаще всего моды распространяются в таком виде, чтобы пользователь мог просто скопировать их в папку игры и все.


Часто моды обладают собственным инсталлятором. Тогда внедрение мода произойдет намного проще, без вашего вмешательства. Инсталлятор сам найдет папку для установки, и весь процесс вставки мода выполнит за вас. Например, при установке мода к популярным играм, созданным на движке Source (например, Half-Life, Counter-Strike и т.д.), в папке архива найдите файл gameinfo.txt, если он есть, то это source-мод. Поместите его в папку игры в подпапку SourceMods. Создайте такую папку, если она отсутствует. Перезапустите игру и запустите новенький мод, как обычную игру, из списка папки «Мои игры».


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

Каждый настоящий майнкрафтер хоть раз ставил моды, ведь они могут добавить абсолютно что угодно, главное выбрать самый интересный. Но проблема в том, что как их устанавливать знают далеко не все. Поэтому и появился данный гайд: Как установить моды в Minecraft !

Видео гайд:



Гайд будет для версии и выше (1.6.*, 1.7.*, 1.8.* 1.9.* и так далее), ведь раньше было немного по другому.

(На картинки можно нажимать, они примут свой полный размер)

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

2) Выбираем мод который хотите установить, у нас есть каталог: . Запоминаем под какую версию игры он разработан, у нас на примере будет Plants Vs Zombies: Minecraft Warfare 1.7.10, то есть версия 1.7.10.

3) Заходим в лаунчер, и выбираем версию Forge (Это промежуточный мод, который обрабатывает все другие) под ту версию, под которую вы выбрали мод (В нашем случае Forge 1.7.10) и нажимаем "Установить", далее ждём завершения установки и первого запуска.


4) Далее приступаем к установке самого мода, для этого в лаунчере нажимаем на кнопку "Открыть папку" и вам откроется папка со всеми файлами игры.


5) Находим папку "mods " (Она появится сама, если её нет, то вы не установили Forge, но можете попробовать создать вручную, если вы уверены что Forge установлен) и копируем туда файл мода, у него будет расширение.jar или.zip (Возможно он будет запакован в.rar, значит его нужно распаковать и перенести файл с нужным расширением в папку).


6) Снова запускаем из лаунчера нужный Forge. Чтобы убедится, что мод нормально работает, в главном меню, нажимаем кнопку mods и видим там новый мод:


Готово, теперь можно играть с новым модом! Надеемся, теперь вам понятно, как установить мод в Майнкрафт !

Установка новых модов, карт и других пользовательских дополнений в игру Euro Truck Simulator 2 очень простая процедура и должна быть понятна большинству пользователей. Для того, что бы добавит в игру новый грузовик, авторскую карту, измененную физику, скины для тягачей или даже глобальный мод достаточно закинуть файлы выбранного мода в папку mod на вашем ПК и подключить дополнение в вашем профиле в игре.

Файлы мода всегда имеют префикс.scs , например gruzovik.scs , novay-karta.scs , zzz-drugoi-mod-by-trucksimulator2.scs , после скачивания дополнения из интернета вы получаете архив в котором хранятся файлы мода, перед установкой в игру скаченный из интернета архив вначале надо распаковать.

Для правильной установки модификаций в Euro Truck Simulator 2 вы можете воспользоваться этой пошаговой инструкцией. Для примера мы будем устанавливать два мода, новую и , что бы в итоге у нас в игре появилась Белоруссия и Россия, а по дорогом начали ездить наши автомобили: волги, девятки, двенашки, зилки и другой отечественный автопром.

1. Шаг первый. Необходимо скачать выбранные моды, в частности новую карту и новый трафик, после скачивания у нас будет два архива: первый карта – RusMap-1-4.zip и второй russian_traffic_pack_by_Jazzycat_v1.1.7z – русский трафик. Так выглядят скаченные моды в проводнике:

2. Шаг второй. Задача разархивировать скачанные архивы в любое известное вам место, это можно сделать любым доступным вам способом, файловым менеджером, архиватором 7Zip или стандартными средствами, например так:

3. Шаг третий. Закинуть все файлы с префиксом.scs из скачанных архивов в папку mod которая находиться по адресу C:\Users\Имя Пользователя\Documents\Euro TruckSimulator 2\mod\ . В архивах так же могут присутствовать файлы помощи или картинки с изображением модов их следует оставить.

4. Шаг четвертый. Переходим к игре, запускаем симулятор ETS2 и видим меню водителей, выбираем свой профиль с картинкой виртуального водителя и нажимаем кнопку изменить . В открывшемся меню отмечаем галочками нужные нам моды, в данном случае все файлы и нажимаем кнопку применить изменения .

gastroguru © 2017