Доброго времени всем суток, с вами Андрей и сегодня я познакомлю вас с небольшим гайдом о том как переводить предметы на мировые языки из других модификаций но и свои собственные. Для этого нам понадобиться:
1. Программа Notepad++ которую легко и просто можно скачать в интернете.
2. Знания о том как устроена таблица csv по сути это Excel таблица просто и не более того.
3. Разбинарщик файлов config.bin есть в стандартном наборе инструментов DayZ Tools. Найти его можно в этой папке \DayZ Tools\Bin\CfgConvert . Представляет из себя bat файл, его задача переконвертация из bin в cpp. Также можно использовать программу Unrap работает точно так же. Что 1 что 2 программы работают одинаково. Для этого надо перенести файл config.bin на 1 из 2 программ и всё сделается автоматически за вас.
4. Также понадобиться PBO Manager 1.4 для открытия архивов dayz.
5. Отдельная папка для хранения наших модов. Я использую лично виртуальный диск P который можно сделать через DayZ Tools. Путь к папке можно поменять, а вот путь к игре не нужен и вовсе.
Шаг 1. Что ж приступим в переводу наших предметов. Например у нас есть мод какой нибудь к примеру я возьму за основу BaseBuildingPlus. Открытый файл config.cpp будет следующим
Не страшитесь его он не такой уж и страшный как может показаться на первый взгляд. В нём все понятно до мелочей. В таком виде он нам и понадобиться, но чтобы данный файлик заработал как отдельный мод я выношу его в отдельную папку чтобы удобно было работать и называю её как нибудь и перемещаю наш файл config.cpp который мы сделали из config.bin в созданную папку и работаю только с данным файлов а также таблице csv в которой и будет наш перевод.
Шаг 2. Сама таблица csv выглядит следующим образом:
В самом вверху таблицы есть строка языков на которые можно перевести наши предметы. Языков может быть много поэтому я использую основные: Английский, Чешский, Немецкий, Русский, Польский и Венгерский, в вашем случае можете оставить какой нибудь один но лучше 2 языка с которыми вы будете работать и переводить.
Шаг 3. Как я и говорил перевод предметов осуществляется в таблице csv но также и в config.cpp где данный перевод и задается следующими строчками: displayName и descriptionShort 1-я отвечает из игровое название предмета, а 2-я за перевод самого предмета для лучшего понимания что это такое. Задание перевода предмета в config.cpp в строках displayName и descriptionShort должно начинаться с "$STR_название_предмета" без знака $ игра попросту пропустит и будет название STR_название_предмета. Не забывайте что нельзя писать по русски в данных строках если используйте $STR_ только английские слова. Для примера возьмем класс
class CfgVehicles {
class Inventory_Base; // External class reference
class BBP_T1_WallKit : BBP_KIT_BASE {
scope = 2;
displayName = "Tier 1 Wall Kit";
descriptionShort = "A tier 1 wall construction kit. Place on the ground to begin construction.";
model = "\BaseBuildingPlus\models\construction_kit\BBP_T1_ConstructionKit.p3d";
rotationFlags = 0;
isMeleeWeapon = 0;
weight = 300;
absorbency = 0;
itemSize[] = {4, 2};
lootCategory = "Materials";
reversed = 0;
itemBehaviour = 2;
};
};
Мы видим что в строке displayName есть название предмета. а в строчке descriptionShort перевод на английском языке. Писать просто можно на любом но и видеть вы и другие игроки будут только на том языке что вы написали, для этого нам и нужна таблица csv. Из описания следует что это набор 1 уровня строительства то есть дерево, как я это понял потому что посмотрел в игре что это дерево вот и всё. Для того чтобы перевести наш предмет на другой язык нужна как я и говорил таблица csv поэтому и записываем в файл config.cpp следующее:
class BBP_T1_WallKit : BBP_KIT_BASE {
scope = 2;
displayName = "$STR_BBP_T1_WallKit0";
descriptionShort = "$STR_BBP_T1_WallKit1";
};
Шаг 4. Как видно я прописал в строчках displayName и descriptionShort название и описание предмета поставив соответствующий тег $STR_название_предмета. В конце строчек у меня есть 0 и 1 для себе 0 - название предмета; 1 - перевод, в вашем случаи может быть всё что угодно. В файле config.cpp это всё игра будет видеть только что написано в строках displayName и descriptionShort с соответствующим тегом, смотриться это конечно в игре не очень. Поэтому данные строчки переносим в таблицу перевода csv. Добавляем только название без знака $ только STR_название_предмета. В файле csv всё должно начинаться с кавычек и заканчиваться запятой на конце перевода иначе никак.
Шаг 5. Переписываем верхние оригинальные строчки под наш мод. Для удобства я переписал под папку с названием. И не забываем добавить проверочный аддон в строчке requiredAddons[] = {"BaseBuildingPlus"};
Шаг 6. Пакуем всё это дело Addon Builderoм не забывая об добавлении нового расширения файла в разделе OPTIONS>General *.csv; Если будут ошибка ставим галочку напротив Enable extented logging - Включить продвинутое логирование и тогда аддон билдер укажет на ошибку в определенной строчке. Незабываем проверять закрывающие }; иначе будут ошибки
Шаг 7. На выходе получаем готовый архив но без подписи, о том как делать подписать на архив где-то была на сайте думаю вы сможете найти. У себя я лично давно подписываю автоматом архивы.
Шаг 8. Подключаем Аддон на сервер и на клиент и всё должно работать как часы. Я не стал показывать этот процесс
Надеюсь вы поняли как переводить предметы на другие языки из других модов или свои.
P.s. Если что-то будет не понятно пишите сюда разберемся вместе