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

Вскрытие дескриптора BMFont

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

Приветствую всех.

Ребята, вопрос следующий, есть всем известный генератор шрифтов BMFont,  при создании/генерации шрифта, создается атлас, и дескриптор, дескриптор можно сохранять в трех форматах, text, xml, и binary, если кто знает, есть ли возможность, перевести в какой то другой формат, чем то открыть, binary дескриптор, в читаемый вид?, очень нужно.

Заранее благодарен за ответ и помощь.

 

Изменено пользователем 1Zloy1
редактирование

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


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

@1Zloy1, даже если бы она была с GUI, это ничего бы не изменило, ведь я описал работу с ней через параметры, что ничем не отличается от работы с консольным приложением.

::Преобразование в текстовый формат
"D:\BFFC.exe" "D:\font.fnt" -txt "D:\font.txt"
::Преобразование в XML формат
"D:\BFFC.exe" "D:\font.fnt" -xml "D:\font.xml"
::Преобразование в бинарный формат
"D:\BFFC.exe" "D:\font.fnt" -bin "D:\font.bin"

 

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


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

а как им пользоваться?, объясните если не трудно.

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


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

@1Zloy1, ну в ней же написано как (если запустить без параметров) :wink:

BFFC.exe input_font_path -txt|-xml|-bin output_font_path

Все элементарно, первым параметром указываешь путь к исходному файлу, вторым в какой тип конвертировать (-txt, -xml или -bin), ну и последним путь к новому файлу.

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


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

она у меня не запускается, кликаешь на ехе, моргает окно cmd (1-2 сек) и все.

 

P/S: прогу через консоль нужно запускать?

Изменено пользователем 1Zloy1
редактирование

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


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

@1Zloy1, ты серьезно сейчас? :sarcastic: Это консольное приложение, если не знаешь как с ними работать, то советую для начала изучить азы работы с командной строкой, прежде чем браться за “вскрытие игровых ресурсов”, без обид :wink:

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


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

я же не знал что она консольная :blush:  , подскажи если не трудно, путь до файла в место  input_font_path  указывать или где?, напиши пример пожалуйста.

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


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

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

спасибо тебе большое за помощь, открыл.

Еще есть вопросик, а если дескриптор похож на BMFont, но не не этим генератором сделан, и не знаю каким, как можно узнать/прочитать его, не подскажешь?

Могу скинуть сам дескриптор если нужно, на посмотреть :)

Изменено пользователем 1Zloy1
редактирование

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


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

@1Zloy1 Ты какую игру потрошишь? Просто у меня абсолютно такие же проблемы и за три дня я нифига не нашел решений. А тут попался ваш диалог..

шрифт нарисовать, как оказалось, не проблема. А вот этот  долбаный “дескриптор”.. То, что я подсовываю игре, она ни в какую не хочет воспринимать. В общем, парни, вы не прерывайте беседу) Вдруг, да что-то прояснится

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


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

у тебя дескриптор с каким расширением идет?, игру я не знаю какая, просто попросили посмотреть, знаю что атлас вроде bmp.

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


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

скинь куда нибудь на ФО шрифты, картинки и дескрипторы, что то знакомое, но вспомнить так не могу.

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

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


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

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

еще как вариант, можно заменить все шрифты стандартом, изменяя у него названия, картинки и дескриптора, а, и расширение сменить, на bin вместо font, и посмотреть появится ли текст, так как там еще и ttf есть, нужно еще скрипты игровые копать, может там есть, прописаны шрифты,где и какой используется, и там переписать на те что с кириллицей идут.

P/S: генератор скорее всего самописный, и если народ молчит про конвертер сторонних  генераторов, то скорее всего нужно искать кодера, платить денажку, и он напишет  конвертер  :)

Изменено пользователем 1Zloy1
редактирование

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

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

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

      Экосистема менеджеров (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 | Реклама на сайте.

×