Перейти к содержимому
Zone of Games Forum
SerGEAnt

Сообщение добавлено пользователем SerGEAnt

Рекомендованные сообщения

80 Days

header.jpg

  • Метки: Приключение, Глубокий сюжет, Решения с последствиями, Выбери себе приключение, Стратегия
  • Платформы: PC iOS An MAC
  • Разработчик: Inkle Studios
  • Издатель: inkle Ltd
  • Дата выхода: 29 сентября 2015 года
  • Отзывы: 1100 отзывов, 91% положительных
1872 год, с элементами стимпанка. Филеас Фогг поспорил, что сможет обогнуть мир всего за 80 дней. Путешествуйте на дирижабле, подводной лодке, механическом верблюде, паровозе и многом другом. Соревнуйтесь с другими игроками и часами, которые никогда не останавливаются, в Игре 2014 года по версии журнала TIME.
Скриншоты
Изменено пользователем 0wn3df1x

Поделиться сообщением


Ссылка на сообщение

Правильно оформи тему. Вверху ссылка на шаблон сообщения

Поделиться сообщением


Ссылка на сообщение

Сразу расставлю все точки над I.

По признанию самих же разработчиков игру практически невозможно перевести из-за их замутов с технической частью.

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

Поделиться сообщением


Ссылка на сообщение
Сразу расставлю все точки над I.

По признанию самих же разработчиков игру практически невозможно перевести из-за их замутов с технической частью.

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

Очень жаль :sad:

Поделиться сообщением


Ссылка на сообщение
Очень жаль :sad:

На данный момент игру можно перевести.

Техническую часть возьму на себя, по вставке текста и его вытаскиванию.

Проблема в распознании Юникода в скриптах .json

Единственный вариант это закодировать символы под английский алфавит

Количество символов в строке может быть любое.

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

Текст присутствует везде, как в *.assets / level0 / mainData / *.dll

Бинарный, и в скриптах .json

Изменено пользователем Tericonio

Поделиться сообщением


Ссылка на сообщение
На данный момент игру можно перевести.

Техническую часть возьму на себя, по вставке текста и его вытаскиванию.

Проблема в распознании Юникода в скриптах .json

Единственный вариант это закодировать символы под английский алфавит

Количество символов в строке может быть любое.

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

Текст присутствует везде, как в *.assets / level0 / mainData / *.dll

Бинарный, и в скриптах .json

Здравствуйте! Спасибо вам за начинание. Надеюсь, что всё-таки перевод состоится.

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение
В 15.10.2017 в 12:47, Tericonio сказал:

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

Если ещё актуально, то готов поучаствовать.

Поделиться сообщением


Ссылка на сообщение

Верну немного рассуждение по теме.

Разработчики намутили прилично.

Подразобрал файл 80days.inkcontent — Первое что бросается, это строки созданные из движка одного сайта или на его основе.

Разберём первую строку которая появляется при первом диалоге:

LONDON, 1872

I have entered into the service of a new gentleman.

На первый взгляд строка вроде обычная, но, найдя слово “entered” в кавычках у черта на куличках, изменив одну букву игра не сломалась:

I have fntered into the service of a new gentleman.

“fntered”

Получаем текст который в другой части считывает это слово, но таких слов в кавычках нашёл аж 5 мест, и изменил все.

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

Изменено пользователем Tericonio

Поделиться сообщением


Ссылка на сообщение
On 27.09.2023 at 7:19 PM, Tericonio said:

LONDON, 1872

I have entered into the service of a new gentleman.

Не знаю, нет там такого текста :)

Spoiler

VorL3d1SLNNitEAbYlPEAhWGfrhjuAU0QVlH57hc

 

Поделиться сообщением


Ссылка на сообщение

@clarkkent 

Разобрался в файле 80days.txt и 80days.inkcontent.txt

Как работает 

Скрытый текст

    "initial": "storycrashed",
    "indexed-content": {
        "filename": "80days.inkcontent",
        "ranges": {
            "storycrashed": "0 150", c 0 и  150 символов в первой строке
            "repeat_visit_bank": "150 1294", с 150 символа и 1294 символов в строке
            "village_bank": "1444 97",
            "medium_bank": "1541 97",
            "town_bank": "1638 97",
            "withdrawal_options": "1735 4753",
            "bank_done": "6488 24",
            "begging": "6512 408",

  • Надо делать SDF шрифты через Unity
Изменено пользователем Tericonio

Поделиться сообщением


Ссылка на сообщение

@Tericonio да, я шрифты уже сделал, но с nunito и Oswald есть проблемы. Осталось с ними разобраться, и русификатор готов :)

Поделиться сообщением


Ссылка на сообщение

@clarkkent 

Скрытый текст

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import json
import os
import shutil

def recalc_and_save(content_file, index_file, output_dir="ru"):
    """
    Пересчитывает байты (UTF-8) в content_file и обновляет index_file
    Сохраняет в папку output_dir с оригинальными именами файлов
    """
    
    # Создаём папку (например, "ru")
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    
    # 1. Читаем файл контента как БАЙТЫ
    with open(content_file, 'rb') as f:
        raw_bytes = f.read()
    
    print(f"Файл контента: {len(raw_bytes)} байт (UTF-8)")
    
    # 2. Разбиваем на строки по \n в байтах
    lines_bytes = raw_bytes.split(b'\n')
    # Удаляем последнюю пустую строку если есть
    if lines_bytes[-1] == b'':
        lines_bytes.pop()
    
    print(f"Найдено строк (сцен): {len(lines_bytes)}")
    
    # 3. Читаем старый индекс
    with open(index_file, 'r', encoding='utf-8') as f:
        index_data = json.load(f)
    
    old_ranges = index_data.get("indexed-content", {}).get("ranges", {})
    scene_names = list(old_ranges.keys())
    
    print(f"Сцен в индексе: {len(scene_names)}")
    
    # 4. Пересчитываем ranges на основе реальных байтов
    new_ranges = {}
    current_offset = 0
    
    print("\n=== ПЕРЕСЧЁТ (В БАЙТАХ) ===")
    
    for i, name in enumerate(scene_names):
        if i >= len(lines_bytes):
            print(f"  ❌ Сцена '{name}' - нет строки")
            continue
        
        line_bytes = lines_bytes
        line_length = len(line_bytes) + 1  # +1 для \n
        
        new_ranges[name] = f"{current_offset} {line_length}"
        
        print(f"  '{name}': offset={current_offset}, length={line_length}")
        
        current_offset += line_length
    
    # 5. Обновляем индекс - имя файла ОСТАЁТСЯ ОРИГИНАЛЬНЫМ
    index_data["indexed-content"]["ranges"] = new_ranges
    index_data["indexed-content"]["filename"] = "80days.inkcontent"  # без .txt и без _ru
    
    # 6. Сохраняем индекс в папку output_dir с оригинальным именем
    output_index = os.path.join(output_dir, "80days.txt")
    with open(output_index, 'w', encoding='utf-8') as f:
        json.dump(index_data, f, ensure_ascii=False, indent='\t')
    
    print(f"\n[OK] Индекс сохранён: {output_index}")
    
    # 7. Копируем файл контента в папку output_dir с оригинальным именем
    output_content = os.path.join(output_dir, "80days.inkcontent.txt")
    with open(output_content, 'wb') as f:
        f.write(raw_bytes)
    
    print(f"[OK] Контент скопирован: {output_content} ({len(raw_bytes)} байт)")
    
    return new_ranges


# Запуск
if __name__ == "__main__":
    recalc_and_save("80days.inkcontent.txt", "80days.txt", "ru")

Сгенерировал скрипт для подсчёт символов

Извлечь файлы 80days.inkcontent.txt 80days.txt через UnityEX  и извлечётся в 80 Days_Data\Unity_Assets_Files\resources\

Потом запустить скрипт к примеру python Check_files.py где расположены эти файлы в папке resources\ после подсчёта создаст папку ru и в ней уже подсчитаны все суммы

Я пишу скрипты для символов которые есть в файле или в файлах потом собираю по группам к примеру 32-127,140 и на основе оригинального размера шрифта создаю SDF шрифт в Unity используя параметры извлечённые через UABEA c MonoBehaviour создав новый потом через UEBEA замещаю имя и все GUID 

Изменено пользователем Tericonio

Поделиться сообщением


Ссылка на сообщение

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

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

Изменено пользователем clarkkent

Поделиться сообщением


Ссылка на сообщение

@clarkkent

Тут только весь SDF менять как mono так и texture, нужно либо поискать схожий шрифт и сравнить умляуты между собой по высоте чтобы были одинаковы, тогда не будут скакать 

Если структура файла не нарушена то должно всё быть в порядке

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: aNNiPAk
       
       
      UnReal World RPG
      Жанр: RPG (Rogue/Action)
      Разработчик: Sami Maaranen и Erkka Lehmus
      Платформа: PK, Mac OS X, Linux
      Дата выхода: 1990
      Официальный сайт игры: http://www.unrealworld.fi

      Рогалик. 20 лет разработки.
      Суровая Финляндия позднего железного века.
      Выживание.
      Травки-ягоды, охота, рыбалка, каннибализм.
       


      А теперь о переводе: перевод будет вестись на https://www.transifex.com/urwrus/unrealworld-rpg/, также есть специальная группа вк https://vk.com/urwrus, где вы можете задать интересующий вас вопрос, не только о переводе, но и о прохождении русифицированной игры. Чтобы перевод не забросился, предлагайте помощь.

      При помощи одного хорошего человека(insolor'a), найден способ вытащить весть текст из .exe файла, а потом засунуть его обратно. А также есть приятная новость: поиск по библиотеке на кириллице теперь стал возможен благодаря патчу файла .exe. Большущее спасибо за шрифт DZH'у, а также ребятам, которые своим напоминанием заставляют не бросить проект, а двигаться дальше.
       
       
      Ссылка на GitHub, там же актуальная версия библиотеки, реализующей перехват игровых функций: https://github.com/aNNiPAk/urw-translate-hook
      Тестовая версия, играть можно, но все еще трудно:  https://yadi.sk/d/eEqoed-wbEhgWw

      Прогресс перевода: ~76% (Требует обновления)

  • Продвигаемые темы

  • Последние сообщения

    • Давайте, буду верить в вас, что вы сможете) Игра более живой начала ощущаться благодаря переводу интерфейса, создалась забавная иллюзия, что это действительно аниме-мморпг) Без русика я многие вещи игнорировал (только диалоги ставил экранным переводчиком, а остальное я словно упускал из вида), а щас, будто, игра позволяет раскрыться по новому, и дает вдохнуть новую жизнь в игру) Другие игры по САО я даже не хотел начинать, не пройдя эту классику.. тем более, игра то сама по себе неплохая.
    • для полноты надо 3 онимуху пройти 
    • Сравнил качественные проекты с этой подделкой. Давай теперь оправдывать халтурную работу блуберов. Явно видно, что из идеи быстро собрали кривую игру с кушнейшими перестрелками без импакта. Но ты продолжай верить, что игра хорошая. Не забываем о копипастных модельках на уровнях, там практически нет разных локаций, только парочку. Левел дизайн очень скуден. Менеджмент инвентаря издевка и раздувание бэкстрекинга до терминала.
    • На текущей стим версии работает
    • Я не то чтобы совсем пожалел, но, да, это определенно не та книга, на которую хотелось бы потратить столько времени. Более-менее разнообразно начало, пока Сун Укун учился и бунтарствовал. А вот само путешествие топчется на месте. Монах и ко куда-то бредут, встречают злобного демона, Укун с сотоварищами пытается его завалить и почти побеждает (или бьётся на равных). Потом крадут монаха с намерением его съесть или женить и Сун Укун, не справившись самостоятельно, бежит за помощью к небожителям. Чуть-чуть меняются вводные, но основа одна. 
    • Так очевидно же что у тебя не так. 5090 у тебя нет, вот и корень проблемы.
    • Здравствуйте! Хочу сообщить о зависании панели задач Windows 11 при работе с UnityText_2 и об изменении, которое устранило проблему у меня. Прошу по возможности включить исправление в официальную версию программы. Описание проблемы:
      При выполнении Export в UnityText_2 зависала панель задач Windows. Часы переставали обновляться, значки не реагировали на наведение мыши, а значки закрытых программ оставались на панели задач. Перезапуск Проводника временно помогал, но при последующих операциях экспорта проблема повторялась. Установка обновлений Windows и восстановительная переустановка через Центр обновления Windows проблему не решили. Моя конфигурация: Windows 11 25H2, сборка 26200.9550. UnityText_2.exe: версия в фиксированной структуре сведений о файле — 2.1.6841.19286, в строковом поле версии — 2.1.0.0. Изменение, которое помогло:
      В обработчике прогресса был пропущен участок, который на каждом шаге обновляет значение прогресса на панели задач Windows через TTaskbar. Обновление индикатора внутри окна программы и вызов обработки сообщений сохранены. Код чтения DAT, записи CSV/BIN и импорта не изменялся. Вызовы изменения состояния панели задач в начале и конце операции также сохранены. Я повторил тот же экспорт на своём компьютере с изменённой копией программы — зависание панели задач исчезло. Технические подробности для разработчика:
      В исследованном EXE обработчик прогресса расположен по адресу 0x0072186C. Участок обновления прогресса панели задач 0x0072188B—0x007218AF был пропущен переходом на 0x007218B0. Изменение, применённое только к этому EXE: Смещение в файле: 0x00320C8B Исходные байты: 8B BB Новые байты: EB 23 SHA-256 исходного EXE: b382024b7721fa906950ef164d0e79dc7bcd7757b6e319c604a63ffc69f7d037 Эти адреса и замену байтов нельзя напрямую применять к другим сборкам. Можно ли добавить в исходный код настройку отключения отображения прогресса на панели задач? Другой вариант — ограничить частоту обновлений или отправлять их только при изменении отображаемого процента. На моём компьютере проверен именно вариант с пропуском повторяющихся обновлений прогресса панели задач; ограничение частоты я отдельно не проверял. Я использую программу для локализации игр. Было бы очень полезно получить это исправление в официальной версии. Спасибо!
    •  Прошел я эту вашу Онимушу, ну что тут сказать, игра отличная. говоря о боевой системе я бы ее назвал секеро для стримеров и журналистов,)) из за более широких и прощающих окон для парирования из за чего достаточно изучив приемы боссов и их парирование и увороты от атак становятся не такими сложными как в том же Секеро. Боевка по большей части работает от защиты так как вся ее эффективность и красота в основном происходит в мини кат сценах после удачных защитных противодействий атакам врага, что ее и отличает от таких игр как серия Ниндзя гайден или Нио где весь смак боевки происходит в реальном времени и зависит от умений игрока выполнять сложные атаки. К счастью защитных приемов в Онимуше достаточно много чтобы бои чувствовались разнообразно и в меру комплексными чему идут в помощь еще несколько активируемых спец умений, а так же разнообразное наличие врагов с их уникальными особенностями. Еще понравилось взаимодействие персонажа и противников с различными обьектами окружающей среды. А вот прокачка в игре очень простая и не интересная как и система лута в целом и сделана скорее просто для галочки.)как и собственно для галочки и растягивания времени сделаны побочные квесты, есть конечно среди них и более менее интересные, но большинство это тупо квесты присущие Корейским ммо иди убей групу мобов(которых мы и так бьем десятками бегая по городку) найди сундучки, найди и погладь песиков.)Что же касается основного сюжета он написан и поставлен великолепно, отличные персонажи, смешные, неожиданные и драматичные моменты все это есть и сделано на хорошем уровне. Игре бы поставил 8,5 Онимуш из 10  
    • Короче. Что относительно Linux-версии. Нужно переписать uninstall 3 штуки, чтобы получить sh. Это несложно. Но вот компилировать их нужно только под определенной ОС, т.е. Linux. Для тестов работоспособности также нужен Linux. Также нейронка говорит о том, что есть вероятность недостатка прав для папки steamapp на Linux — что тоже не проверить. В целом большую часть патчера я переписал под Linux — остается только uninstall, ярлык для него (если это вообще для Linux  актуально) и тест на работоспособность с попытками сделать рабочий вариант. Остается только устанавливать Linux — он у меня скачен и залит на флешку, но когда я этим займусь загадка.
    • ( я вижу что 25 год ) Скорее всего, да, так как по факту я её уже перевёл, проблема в шрифтах и их отображении, плюс полдня убил из-за того, что просто не мог зашифровать назад игровой архив.игра его просто не читала  нужно шифровать не кодом игры а кодом разработчика иначе никак, при том самое смешное игра читеает шифровку кодом игры а паковать надо кодом разсраба первый раз такой бредвижу, заметил случайно
  • Изменения статусов

    • axe66  »  SerGEAnt

      здравствуйте. можете добавить на сайт раздел для игры She’s Leaving и русификатор к нему? и как и куда вам скинуть фото и сам русификатор?
      [h2] Версия: 1.0.1 (от 22.05.2026)
      Совместимость: для сборки 20909321 [/h2]
       Информация:
      Машинный перевод моделью gemma2:9b-instruct с несколькими этапами автоматической перепроверки (модель "самопроверялась") и финальными ручными правками.
      Это не финальная версия — по мере нахождения ошибок перевода будут выходить обновления.
      Известные нюансы:
      * Возможны неточности и ошибки в переводе.
      * Некоторые элементы интерфейса остались без перевода.
       Установка:
      1. Запустить Russifier.exe
      2. Нажать "Выбрать папку"
      3. Выбрать папку с игрой и нажать ОК
      4. Нажать "Установить"
      5. Дождаться завершения установки и закрыть программу.
      После установки запустите игру и наслаждайтесь!
      Если заметили ошибки или некорректные формулировки — оставляйте комментарии, будем исправлять!
       
      Автор: Serjik Sokolov История изменений:   Версия 1.0.1 от 22.05.2026 - Установщик теперь автоматически определяет корневую папку игры, даже если случайно выбрана вложенная папка.   Версия 1.0.0 от 03.12.2025 - Релиз
      · 1 ответ
    • Perfect End Strange  »  SerGEAnt

      Привет, озвучку для Silent Hill 4: The Room выпустил энтузиаст под ником Perfect End Strange, а вы написали совсем другую студию, пожалуйста, исправьте эту оплошность
      · 0 ответов
    • Jimmi Hopkins  »  SerGEAnt

      я его уже открыл в свободный доступ, чтобы не потерялось среди новинок
      · 0 ответов
    • NekoNya  »  Onzi

      https://www.dropbox.com/scl/fi/4xncxr2tqy77vz4644q08/text_RU_FINAL.json?rlkey=xckxss3jkql4gjmc1ah6qjb5e&st=k5ql651f&dl=0 
       
      Вот, то что вышло. Извинюсь, что зря говорил, что помогу (
      · 2 ответа
    • serfly  »  SerGEAnt

      Доброго времени! Недавно столкнулся с проблемой автоперевода XUnity AutoTranslator BeplnEx iL2cc. Пару последних лет часто пользовался, теперь консольные команды виснут на стадии загрузки библиотек, хотя они есть там изначально. На GitHub есть подобные вопросы, но ни одного рабочего ответа я не нашел. А Вы что можете посоветовать?
      · 0 ответов
  • Лучшие авторы


×