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

Gratuitous Space Battles

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

черт ... зачем столько сложностей разработчики наделали, захочешь покарячиться и не сможешь ...

+ насколько я понимаю есть еще проблема в том, что переделать буквы это одно но вот их отображение если честно я не совсем понимаю механизм конвертации текстового файла точнее отдельных его значений в текст взятый из графического файла и есть еще вариант что файлов там два типа с одинаковыми названиями, но разным расширением типа: zekton16.dds.dat и zekton16.dds - в них никакой конвертации не нужно?

прошу меня простить за может быть элементарные вопросы

но я человек с улицы, грубо говоря, в этом вопросе :)

или вообще методом "научного-пальцового" тыка заменять буквы? :)

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

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


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

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

мб там все просто и кто нить поможет.

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


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

Отпишусь.

Я нихрена не понял в этом формате. Да и координат маловато.

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


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

Всё элементарно. В DAT файлах вообще не координаты, а ширина символа в пикселях+1 пиксель на "межбуквенное" расстояние. Ну чтобы буквы не сливались. Размеры ширины символов идут последовательно по порядку со сдвигом в 4 байта. В принципе если перерисовать шрифт полностью, удалить "лишние" знаки препинания и другие доп. символы, составить таблицу соответствия, то русификатор может получится. Но всё равно без программиста тут не обойтись.

И чуть не забыл, шрифт рассчитан на 100 символов.

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

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


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

а если перерисовать символы как на клавиатуре - соответствия не выйдет? (как я писал выше) хотя насколько я понимаю - там как то есть сноски на порядок букв в шрифте или нет?

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

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

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


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

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

Естественно там нет русских букв.

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

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


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

а вариант сделать так что бы он опирался на другой шрифт?

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


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

Привязки значений к буквам в DAT нет.

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

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

Можно заменить как на клаве, только ты лишишься знаков препинания. Скорее тут лучше сделать заглавными русский алфавит, ну и кой-где сэкономить. Использовать 3(три) за З, 0(ноль) за О, ну и заменить пару неизвестных/ненужных символов на русские. Те что пустые сейчас и знак Евро или что там. А так же отказатся от "Ё" и "Й". А английский алфавит оставить в маленьких, на всякий пожарный.

Резуюмируя: не только нет русских, но и не рассчитано в данный момент на них. Обычно в наличии есть наборы значений для всех 255 символов, а тут пока только для ста.

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


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

в общем в данный момент если и получится - то только как "на коленке" - понятно - попробую на досуге пострадать вечерком - может чего и выйдет :)

всем спасибо большое за помощь - если будут еще варианты пишите пожалуйста

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


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

Товарищ Den Em.

1. Повторение мать учения))). Я писал о структуре DAT файлов на несколько постов выше. Даже формулу привязки написал.

2. И запас символов вполне позволяет русифицировать игру. Если перерисовать все английские буквы и использовать резерв. Не нужно так извращаться - Использовать 3(три) за З, 0(ноль) за О, ну и заменить пару неизвестных/ненужных символов на русские. Те что пустые сейчас и знак Евро или что там. А так же отказатся от "Ё" и "Й".

3. Скорее всего маленький английский алфавит тоже используется. К примеру в Ласт Ремнанте вообще 3 текстуры шрифтов.

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

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


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

мммм

если я перерисую - все равно понадобиться привязка??

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


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

Смотря что ты понимаешь под привязкой. Нужно будет прописать ширину каждой буквы. Формулу вычисления смотри выше.

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


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

Himick

Вообще то я уже говорил уже о несколько другом, а не о том, что высчитать ширину нужно перевести 4 байтовое значение из шестнадцатиричной + 1. Ты это назвал "формулой"? И не нужно строить из себя гения, я тоже подумал, что в шрифте только ширина. Меня смущало то, что сложив предыдущие ширины невозможно получить конец следующего символа (Да, я стереотипно подумал.). Это невозможно потому, что для всех букв выделены участки одинакой площади и нужна только ширина. Иначе можно было бы и вообще без dat сделать моноширинный шрифт.

3. Скорее всего маленький английский алфавит тоже используется. К примеру в Ласт Ремнанте вообще 3 текстуры шрифтов.
А я говорил что он не используется? Я сказал что лучше его не трогать по возможности. И да, я тоже видел многотекстурные шрифты и кое-что знаю. Читай внимательно.

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


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

Да, я назвал это "Формулой". Потому что по определению Формула-комбинация математических знаков, выражающая какое-либо предложение. Всё гениальное просто. На текстуру шрифта надо было смотреть внимательно. Ничего не бросилось в глаза? Символы строго друг под другом стоят. И где ты вообще встречал моноширинный шрифт в играх?

>А я говорил что он не используется? Я сказал что лучше его не трогать по возможности.

Почему не трогать? Это тупо текстура и что-то системное она затронуть не может.

И последнее. Прикольный новый термин придумал "многотекстурные шрифты".

P.S. И это я ещё не строил из себя гения.

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: SerGEAnt
      Disney Villains: Cursed Cafe

      Метки: Казуальная игра, Point & Click, Интерактивная литература, 2D, Фэнтези Платформы: PC SW Разработчик: Bloom Digital Media Издатель: Disney Дата выхода: 27 марта 2025 года Отзывы Steam: 31 отзывов, 74% положительных
    • Автор: dimasushin
      Ищем русификатор

  • Сейчас популярно

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

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

    • Да, как я и предполагал, за исключением дополнения в виде наблюдателя времени друзей.

      Экосистема менеджеров (Tampermonkey, Greasemonkey, Violentmonkey и др.), а также сред выполнения скриптов, встроенных в другие расширения (как в AdGuard), довольно разнообразна. Да, все они служат одной цели, но их внутренние реализации могут существенно отличаться. В основе их работы лежит концепция песочницы - изолированной среды, которая создается из соображений безопасности, чтобы пользовательский скрипт не мог бесконтрольно хозяйничать на странице, например, похищая личные данные. Но строгость этой песочницы и набор инструментов, которые предоставляются скрипту для общения с внешним миром, сильно варьируются. Хотя все они стремятся следовать общему стандарту Greasemonkey API, их реализации отличаются. Tampermonkey, на сегодняшний день, является наиболее функционально полным и стабильным менеджером, который реализует даже самые специфические, но ставшие стандартом де-факто в сообществе, возможности API, такие как unsafeWindow и гибкое управление кросс-доменными запросами. Другие менеджеры зачастую являются форками (ответвлениями) более старых версий или независимыми разработками, которые догоняют “золотой стандарт” по функциональности с разной скоростью. Иногда это приводит к тому, что в них отсутствуют определённые функции.

      Например, некоторое время назад была проблема с работой другого моего скрипта в OrangeMonkey (который использовал наш главадмин SerGEAnt). Она была связана с тем, как расширение обрабатывало разрешения на кросс-доменные запросы и взаимодействие с веб-редактором CKEDITOR, который используется на многих форумах на движке Invasion Board. Скрипту требовался доступ к API редактора, но OrangeMonkey не предоставлял необходимого моста для выхода из “песочницы”, что приводило к ошибке. В то же время в Tampermonkey этой проблемы уже не было, так как его разработчики реализовали более продвинутые механизмы взаимодействия с контекстом страницы. Это классический пример рассинхронизации в разработке, где одно расширение уже адаптировалось под новые веб-технологии, а другое - ещё нет. AdGuard, конечно, довольно мощнейший инструмент для блокировки контента и защита приватности, но выполнение пользовательских скриптов является его вторичной, хоть и очень полезной, функцией. Поэтому вполне объяснимо, что его песочница может быть более строгой, а среда выполнения не предоставляет некоторые узкоспециализированные, но критически важные для сложных скриптов API, такие как unsafeWindow. Это не столько недостаток, сколько фундаментальное различие в философии разработки: приоритет отдается максимальной безопасности, иногда в ущерб расширенной функциональности пользовательских скриптов. Теперь давайте пройдёмся по результатам. Это как раз то, о чём я писал в предыдущем сообщении. Во время разработки скрипт все еще мог получить список игр из window, но где-то с полторы недели назад Valve немного изменила свой фронтенд. Они всё активнее используют современные фреймворки, которые строят страницу динамически, а данные хранят внутри своей инкапсулированной экосистемы (состояние компонентов). Раньше переменные могли просто объявляться в глобальной области видимости, теперь же они "живут" внутри фреймворка, и доступ к ним снаружи затруднен. В какой-то момент массив с ID игр из списка желаемого (g_rgWishlistData), который раньше был легко доступен, стал инициализироваться таким образом, что его можно прочитать только через прямой доступ к JavaScript-контексту самой страницы. Именно для этого понадобился unsafeWindow. Он как ключ, который позволяет скрипту, работающему в изолированной песочнице, дотянуться до переменных на основной странице. Костыль (var unsafeWindow = window;) - это хороший фикс для предотвращения падения скрипта от ReferenceError, но он лишь создаёт псевдоним для window песочницы, в которой g_rgWishlistData по-прежнему не существует. AdGuard не предоставляет этот ключ, поэтому скрипт не может найти ID и сообщает об ошибке. Здесь причина схожа, но связана не столько с доступом к переменным, сколько с изоляцией сессии аутентификации. Ваше тестирование подтверждает, что среда AdGuard, скорее всего, выполняет скрипты в настолько изолированном контексте, что они не имеют полного доступа к вашей браузерной сессии на сайтах Steam. Для работы этих модулей необходима авторизация. Её отсутствие или изоляция приводят к неработоспособности: Наблюдатель: Его основная задача - отслеживать изменения в вашем списке желаемого и библиотеке. Для этого скрипт обращается к эндпоинту Steam /dynamicstore/userdata/:
      https://store.steampowered.com/dynamicstore/userdata/
      Когда вы авторизованы, сервер Steam отдает специальный JSON-файл, содержащий ID ваших игр из rgWishlist, rgOwnedApps и т.д. (в этом JSON также содержатся ваши настройки персонализации магазина, но нет и не может быть логина, хэша пароля, платёжной информации или токенов аутентификации). Скрипт использует эти ID, чтобы затем сделать отдельные, публичные запросы к API Steam и получить информацию по каждой конкретной игре. Когда скрипт через GM_xmlhttpRequest делает запрос к /userdata/, этот запрос должен содержать ваши аутентификационные данные. Если среда выполнения (AdGuard) не передает их, для сервера Steam этот запрос выглядит как анонимный, и он возвращает пустой ответ. Таким образом, у модуля просто нет исходных данных для работы - он не знает, за какими играми ему нужно следить, и его панель остается пустой. Время друзей: Механизм абсолютно такой же. Чтобы показать, сколько времени ваши друзья провели в игре, скрипт должен сначала узнать, кто ваши друзья. Эта информация находится на персонализированной странице сообщества Steam (friendsthatplay), например:
      https://steamcommunity.com/my/friendsthatplay/1245620
      она генерируется сервером динамически, специально для вашего аккаунта. Для анонимного пользователя или для скрипта, работающего в изолированной сессии без доступа к актуальным данным, такой страницы не существует - Steam просто не вернет нужные данные. Соответственно, без доступа к этой странице скрипт не может извлечь имена друзей и их наигранные часы и делает логичный вывод - “друзья не играли”. Фильтр “Только ваши DLC”: Этот фильтр в каталоге поиска полностью зависит от вашей личной библиотеки. Его механизм прост: при отображении каждого товара скрипт проверяет, является ли он дополнением (DLC). Если да, он определяет ID основной игры (parent_appid) и ищет его в вашем списке rgOwnedApps, полученном из того же /userdata/. Если вы не авторизованы или сессия недоступна, список rgOwnedApps пуст, и фильтр просто не сможет найти ни одного подходящего DLC. Помощники подарков (Gift Helpers): И на странице игры, и в списке желаемого, для корректной работы им необходима точка отсчета - цена и валюта в вашем регионе. Эту информацию Steam предоставляет пользователю через переменные g_strCountryCode и g_rgWalletInfo. Без них скрипт не может запросить локальную цену и выполнить правильную конвертацию для сравнения с ценой друга. Тем не менее, как вы и заметили, помощник на странице игры у вас сработал. Это связано с наличием в этом модуле специального костыля: если скрипт не может определить данные текущего пользователя, он по умолчанию использует данные для российского региона в качестве базовых. Это позволяет функции работать, но сравнение цен может быть неточным, если вы на самом деле находитесь в другом регионе. Для помощника в списке желаемого этот костыль уже не помогает, так как тот модуль при попытке получить ID игр со страницы. Вот как-то так.
    • *радостно думает — ведь Сам попросил… , достает набор томов Русского Языка и основ правописания*  — p.s. Знаки препинания, обоснованные правилами, не всегда могут передать ход мысли. Поэтому наличие лишних (,) иногда (,) в “общательно-форумных” целях (,) можно считать некоторым Самовыражением. Но вот отсутствие...)
    • Обновил русификатор - теперь русские шрифты основаны на оригинальных, и выглядят намного лучше.
    • Всем ку! Скиньте перевод пожалуйста!
    • Ты енто, тогось, не путай просторечие устаревшее “деревенское” словарное специально говорное с ихними тамошными твоейными ошибками по незнанию, чай культурный человек, городской же ж должен быть, а то ты чавой-то ентого опять ты напутал. Знаешь же ж, что мы тут все из дерЁвни, агась, при том ещё ж и не столичной дерЁвни, а чукчи, не иначе, агась. P.S. весь мозг сломал, пока печатал, понадобилось две чайки кофе и грибы.
    • https://github.com/darthalex2014/Look-Outside-Rus/releases/download/1.0.5p/Look.Outside.Rus.v1.0.5p_FIX.7z
      Fix:
      - Починил перевод плагинов (теперь нет вопросов вместо слов)
      - В новых строках посеял ":" в 1 строке, из-за этого перевод съехал - исправил.
      - Сделал варп строк еще больше.
    • Если есть возможность, то почему бы и нет.
    • Если за что берёшься, то доводишь до идеала? )  Красавчик.
    • @0wn3df1x Протестировал, что работает/не работает Немного обманул в прошлом сообщении, что прямо все работало в прошлой версии. По сути то, что не работает сейчас, не работало и в прошлой, только добавились краши.
    • Новая версия — 2.1 [20250620] Исправил пару орфографических ошибок в тексте. Исправил и улучшил пунктуацию. Улучшил текст в некоторых местах. Автоматический установщик https://disk.yandex.ru/d/J4EwEZ5ByxWDAQ https://drive.google.com/file/d/1fZdoeMvyBcMiQ4_iYgu4d3ja_JtkiU9V/view https://files.vc/d/dl?hash=d826e5f6afbe2e6456798834c5979f82 Архив для установки вручную https://disk.yandex.ru/d/OmadX8Tt7EnMZA https://drive.google.com/file/d/1rRnrQlqRlV2D8ls2QPruRPfODQC-_Yok/view https://files.vc/d/dl?hash=c4818eca2de056b8616be1c27b73010c
  • Изменения статусов

    • Дмитрий Соснов  »  Tirniel

      Привет! ты разбираешься в компьютерном железе, сможешь помочь с советом по апгрейду старого компа?
      · 1 ответ
    • SHAMAH

      Куда вход на сайт убрали и ЗАЧЕМ? Хотел файл скачать, там только медленная загрузка и “зарегистрируйтесь”. Все. Пришлось вручную страницу входа прописывать.
      · 0 ответов
    • Nosferatu  »  behar

      Добрый вечер.
      Подскажите пожалуйста, у вас не осталось случайно исходников для фикса на широкоформатные мониторы для игры Vampire The Masquerade Redemption?
      Если да, то не могли бы вы ими поделиться, а если нет, то прошу прощенья что побеспокоил.
      Заранее спасибо.
      · 0 ответов
    • AlcoKolyic  »  makc_ar

      Здраствуйте! Извините, а можно попросить ссылку на место где можно взять перевод (патч или образ игры с переводом) El Shaddai: Ascension of the Metatron для ps3, пожалуйста? А то в теме к этой игре у меня не получилось найти работающие ссылки… Первая ведет в группу в которой удалены большинство постов, а пост с этой игрой ведет на сайт https://psnext.ru который сейчас не имеет отношения к видеоиграм. 
      · 0 ответов
    • oleg72  »  Boor

      https://www.skidrowcodex.net/fate-reawakened-goldberg/
      · 0 ответов
  • Лучшие авторы


Zone of Games © 2003–2025 | Реклама на сайте.

×