NoX World - форум об игре NoX

 
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  
Сейчас онлайн стрима нет!
Сейчас на сервере никого нет!

Обязательно все ознакомьтесь с новыми Правилами Портала!

Актуальные новости:
IP сервера изменён! Новый IP: 45.144.64.229. Сервер также доступен через Westwood Online (XWIS, игру через сервер)


Важные темы:
Как играть по сети? Понятное руководство!
Правила Сервера NoxWorld.
Как помочь форуму финансово?

Автор Тема: Разбор шрифтов от Garett'a  (Прочитано 28705 раз)

0 Пользователей и 1 Гость смотрят эту тему.

Dio

  • Глобальный модератор
  • Старожил
  • **
  • Карма: 99
  • Оффлайн Оффлайн
  • Сообщений: 1274
  • Некромансеры "живы"!
  • Awards Орден 'За заслуги перед форумом I степени' Активным участникам сходок - 2013 За разгадку главного секрета Nox За набор курсоров для Windows За релиз ЮниМода Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

Spoiler (click to show/hide)



Справка.
Для тех, кому не нравятся существующие шрифты в игре.


В Nox-е используется предположительно три файла шрифтов large.fnt, number.fnt и small.fnt.
Будет рассмотрено как получить и изменить (если необходимо) изображения символов. На примере самого маленького файла.


Содержание файла number.fnt в шестнадцатиричном виде или в виде набора байт с их значениями (по две цифры на байт).


00000000: 0A 00 02 00 06 00 01 00  00 00 00 00 30 00 39 00
00000010: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00000020: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00000030: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00000040: 00 00 00 00 00 00 00 00  0D 00 00 00 05 70 00 D8
00000050: 00 D8 00 D8 00 D8 00 70  00 03 60 00 E0 00 60 00
00000060: 60 00 60 00 60 00 05 70  00 D8 00 18 00 70 00 C0
00000070: 00 F8 00 05 70 00 D8 00  30 00 18 00 D8 00 70 00
00000080: 05 30 00 70 00 70 00 F0  00 F8 00 30 00 05 F8 00
00000090: C0 00 F0 00 18 00 D8 00  70 00 05 70 00 C0 00 F0
000000A0: 00 D8 00 D8 00 70 00 05  F8 00 18 00 30 00 60 00
000000B0: 60 00 60 00 05 70 00 D8  00 70 00 D8 00 D8 00 70
000000C0: 00 05 70 00 D8 00 D8 00  78 00 18 00 70 00


Предположительно в этом файле должны содержаться изображения цифр (арабских). Всего их 10 штук: "0","1","2","3","4","5","6","7","8","9".
Визуальный анализ позволяет выделить в файле две части, разделенные строками нулей.


Первая часть:
00000000: 0A 00 02 00 06 00 01 00  00 00 00 00 30 00 39 00
00000010: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00000020: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00000030: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
00000040: 00 00 00 00 00 00 00 00  0D 00 00 00


Вторая часть:
00000040:                                      05 70 00 D8
00000050: 00 D8 00 D8 00 D8 00 70  00 03 60 00 E0 00 60 00
00000060: 60 00 60 00 60 00 05 70  00 D8 00 18 00 70 00 C0
00000070: 00 F8 00 05 70 00 D8 00  30 00 18 00 D8 00 70 00
00000080: 05 30 00 70 00 70 00 F0  00 F8 00 30 00 05 F8 00
00000090: C0 00 F0 00 18 00 D8 00  70 00 05 70 00 C0 00 F0
000000A0: 00 D8 00 D8 00 70 00 05  F8 00 18 00 30 00 60 00
000000B0: 60 00 60 00 05 70 00 D8  00 70 00 D8 00 D8 00 70
000000C0: 00 05 70 00 D8 00 D8 00  78 00 18 00 70 00


Первая чать не интересна (одни нули), во второй, вероятно как раз содержится информаци о изображениях символов.
Всего символов 10 штук. Смотрим вторую часть и считаем количества различных значений байтов. В теории, для каждого символа должна быть отдельное изображение, эти картинки должны быть как-то отделены друг от друга. Вероятнее всего этим разделителем является байт со значением "05" - их ровно 9 штук и распределены равномерно (за исключение одного, первого, но если взять еще одно значение разделителя "03" - все начинает сходиться).


Соответственно перестроим вторую часть, перенося строки по байту "05" ("03"):
05 70 00 D8 00 D8 00 D8 00 D8 00 70 00
03 60 00 E0 00 60 00 60 00 60 00 60 00
05 70 00 D8 00 18 00 70 00 C0 00 F8 00
05 70 00 D8 00 30 00 18 00 D8 00 70 00
05 30 00 70 00 70 00 F0 00 F8 00 30 00
05 F8 00 C0 00 F0 00 18 00 D8 00 70 00
05 70 00 C0 00 F0 00 D8 00 D8 00 70 00
05 F8 00 18 00 30 00 60 00 60 00 60 00
05 70 00 D8 00 70 00 D8 00 D8 00 70 00
05 70 00 D8 00 D8 00 78 00 18 00 70 00


Теперь, как перевести эти строки в изображения. Сначала вынесем из каждой строки первый байт ("05" и "03") на отдельную строку, а всю остальную часть разделим на короткие строки по два байта. Далее нужно перевести все в двоичный вид.


05
70 00 -> 01110000 00000000
D8 00 -> 11011000 00000000
D8 00 -> 11011000 00000000
D8 00 -> 11011000 00000000
D8 00 -> 11011000 00000000
70 00 -> 01110000 00000000
03
60 00 -> 01100000 00000000
E0 00 -> 11100000 00000000
60 00 -> 01100000 00000000
60 00 -> 01100000 00000000
60 00 -> 01100000 00000000
60 00 -> 01100000 00000000
05
70 00 -> 01110000 00000000
D8 00 -> 11011000 00000000
18 00 -> 00011000 00000000
70 00 -> 01110000 00000000
C0 00 -> 11000000 00000000
F8 00 -> 11111000 00000000
05
70 00 -> 01110000 00000000
D8 00 -> 11011000 00000000
30 00 -> 00110000 00000000
18 00 -> 00011000 00000000
D8 00 -> 11011000 00000000
70 00 -> 01110000 00000000
05
30 00 -> 00110000 00000000
70 00 -> 01110000 00000000
70 00 -> 01110000 00000000
F0 00 -> 11110000 00000000
F8 00 -> 11111000 00000000
30 00 -> 00110000 00000000
05
F8 00 -> 11111000 00000000
C0 00 -> 11000000 00000000
F0 00 -> 11110000 00000000
18 00 -> 00011000 00000000
D8 00 -> 11011000 00000000
70 00 -> 01110000 00000000
05
70 00 -> 01110000 00000000
C0 00 -> 11000000 00000000
F0 00 -> 11110000 00000000
D8 00 -> 11011000 00000000
D8 00 -> 11011000 00000000
70 00 -> 01110000 00000000
05
F8 00 -> 11111000 00000000
18 00 -> 00011000 00000000
30 00 -> 00110000 00000000
60 00 -> 01100000 00000000
60 00 -> 01100000 00000000
60 00 -> 01100000 00000000
05
70 00 -> 01110000 00000000
D8 00 -> 11011000 00000000
70 00 -> 01110000 00000000
D8 00 -> 11011000 00000000
D8 00 -> 11011000 00000000
70 00 -> 01110000 00000000
05
70 00 -> 01110000 00000000
D8 00 -> 11011000 00000000
D8 00 -> 11011000 00000000
78 00 -> 01111000 00000000
18 00 -> 00011000 00000000
70 00 -> 01110000 00000000


Становится понятно, что означают байты "05" и "03" - это относительная ширина изображения символа.
Соответственно, измение значения некоторых байт, можно изменить отображение этих символов в самой игре. Но где конкретно используются именно цифры из файла number.fnt, я не проверял.
Остальные файлы шрифтов default.fnt, large.fnt и small.fnt анализируются подобным образом (default.fnt по умолчанию совпадает со small.fnt).




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

Garett (c)

Perfect: предыстория.
« Последнее редактирование: 31/08/2012 19:26:21 от Perfect »
Записан
Пользуйтесь UniMod-ом.

Lаrboss

  • Старожил
  • *****
  • Карма: 109
  • Оффлайн Оффлайн
  • Сообщений: 910
  • Абстрагирую
  • Awards Знак 'Властелин Сил Природы' За редактор шрифтов - 2013 Медаль 'За программу Nox Server Notificator' За программу Nox Binder Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

Отличная работа, молодец. Остается только программу написать для редактирования фонтов.
Записан
Отец читеров

Perfect

  • Map Editor PRO
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 1148
  • Слушай маму и drum&bass
  • Awards За поддержку форума - 2013 Лучший дизайн 5 конкурса карт Рука форума 2012 3 конкурс карт - лучшая карта 3 конкурс карт - приз Evengard-а за самую большую карту Медаль 'За фантазию и упорство в создании карт - 2011' Медаль 'Победитель II конкурса карт' Лучшая карта
    • Просмотр профиля
    • nÖrange soundcloud
    • Awards

Предоставьте это мне, пожалуйста)))
Записан

Evengard

  • SysAdmin
  • Администратор
  • Старожил
  • ***
  • Карма: 186
  • Оффлайн Оффлайн
  • Сообщений: 2728
  • Director
  • Awards Столп форума 2012 Активным участникам сходок - 2013 За сервер Орден 'За заслуги перед форумом I степени'
    • Просмотр профиля
    • Awards

Всеж я б сначала разобрал заголовок.
Записан
Не упоминай администраторов всуе...
С уважением, TriOptimum Corporation

PS: Покаяние - Признание своей вины в чем-либо, обычно с просьбой о прощении

Perfect

  • Map Editor PRO
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 1148
  • Слушай маму и drum&bass
  • Awards За поддержку форума - 2013 Лучший дизайн 5 конкурса карт Рука форума 2012 3 конкурс карт - лучшая карта 3 конкурс карт - приз Evengard-а за самую большую карту Медаль 'За фантазию и упорство в создании карт - 2011' Медаль 'Победитель II конкурса карт' Лучшая карта
    • Просмотр профиля
    • nÖrange soundcloud
    • Awards

Ну это можно и потом допилить. Сначала надо начать придумывать алгоритм нахождения нужных фрагментов, а потом и их изменения.
Записан

Perfect

  • Map Editor PRO
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 1148
  • Слушай маму и drum&bass
  • Awards За поддержку форума - 2013 Лучший дизайн 5 конкурса карт Рука форума 2012 3 конкурс карт - лучшая карта 3 конкурс карт - приз Evengard-а за самую большую карту Медаль 'За фантазию и упорство в создании карт - 2011' Медаль 'Победитель II конкурса карт' Лучшая карта
    • Просмотр профиля
    • nÖrange soundcloud
    • Awards

Вот, собственно, как должен выглядеть number.fnt в четырёхкратном увеличении.
Записан

Evengard

  • SysAdmin
  • Администратор
  • Старожил
  • ***
  • Карма: 186
  • Оффлайн Оффлайн
  • Сообщений: 2728
  • Director
  • Awards Столп форума 2012 Активным участникам сходок - 2013 За сервер Орден 'За заслуги перед форумом I степени'
    • Просмотр профиля
    • Awards

Ну это можно и потом допилить. Сначала надо начать придумывать алгоритм нахождения нужных фрагментов, а потом и их изменения.

Как раз, я уверен, в заголовке указаны размеры нужных фрагментов. Ну, например у large.fnt 15 строк и 24 столбца, тогда как у small.fnt - 9 строк и 16 столбцов. Я уверен, эта информация закодирована где-то в заголовке.

А на тему расположения "где какой знак" я почти уверен, что берётся тупо ASCII таблица и по ней последовательно все символы и забиты.
Записан
Не упоминай администраторов всуе...
С уважением, TriOptimum Corporation

PS: Покаяние - Признание своей вины в чем-либо, обычно с просьбой о прощении

Perfect

  • Map Editor PRO
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 1148
  • Слушай маму и drum&bass
  • Awards За поддержку форума - 2013 Лучший дизайн 5 конкурса карт Рука форума 2012 3 конкурс карт - лучшая карта 3 конкурс карт - приз Evengard-а за самую большую карту Медаль 'За фантазию и упорство в создании карт - 2011' Медаль 'Победитель II конкурса карт' Лучшая карта
    • Просмотр профиля
    • nÖrange soundcloud
    • Awards

Могу предположить, что 0A в самом начале number.fnt - количество символов.
Записан

Evengard

  • SysAdmin
  • Администратор
  • Старожил
  • ***
  • Карма: 186
  • Оффлайн Оффлайн
  • Сообщений: 2728
  • Director
  • Awards Столп форума 2012 Активным участникам сходок - 2013 За сервер Орден 'За заслуги перед форумом I степени'
    • Просмотр профиля
    • Awards

Честно говоря, по-моему Ноксу number.fnt особо и не нужен - он прекрасно существует и без него. Так что по хорошему надо бы разобрать всё то же самое в small.fnt и large.fnt
Записан
Не упоминай администраторов всуе...
С уважением, TriOptimum Corporation

PS: Покаяние - Признание своей вины в чем-либо, обычно с просьбой о прощении

Perfect

  • Map Editor PRO
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 1148
  • Слушай маму и drum&bass
  • Awards За поддержку форума - 2013 Лучший дизайн 5 конкурса карт Рука форума 2012 3 конкурс карт - лучшая карта 3 конкурс карт - приз Evengard-а за самую большую карту Медаль 'За фантазию и упорство в создании карт - 2011' Медаль 'Победитель II конкурса карт' Лучшая карта
    • Просмотр профиля
    • nÖrange soundcloud
    • Awards

Garett уже показал как разбирать) последующий разбор не составит труда. У меня возникли некоторые трудности в реализации самой идеи...
Записан

Perfect

  • Map Editor PRO
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 1148
  • Слушай маму и drum&bass
  • Awards За поддержку форума - 2013 Лучший дизайн 5 конкурса карт Рука форума 2012 3 конкурс карт - лучшая карта 3 конкурс карт - приз Evengard-а за самую большую карту Медаль 'За фантазию и упорство в создании карт - 2011' Медаль 'Победитель II конкурса карт' Лучшая карта
    • Просмотр профиля
    • nÖrange soundcloud
    • Awards

Пришёл к выводу, что small и default идентичны. Более того, в чате и консоли используется default.fnt.
Записан

Evengard

  • SysAdmin
  • Администратор
  • Старожил
  • ***
  • Карма: 186
  • Оффлайн Оффлайн
  • Сообщений: 2728
  • Director
  • Awards Столп форума 2012 Активным участникам сходок - 2013 За сервер Орден 'За заслуги перед форумом I степени'
    • Просмотр профиля
    • Awards

А первое сообщение топика читал внимательно?
Написано же.
Цитировать
default.fnt по умолчанию совпадает со small.fnt
Записан
Не упоминай администраторов всуе...
С уважением, TriOptimum Corporation

PS: Покаяние - Признание своей вины в чем-либо, обычно с просьбой о прощении

Perfect

  • Map Editor PRO
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 1148
  • Слушай маму и drum&bass
  • Awards За поддержку форума - 2013 Лучший дизайн 5 конкурса карт Рука форума 2012 3 конкурс карт - лучшая карта 3 конкурс карт - приз Evengard-а за самую большую карту Медаль 'За фантазию и упорство в создании карт - 2011' Медаль 'Победитель II конкурса карт' Лучшая карта
    • Просмотр профиля
    • nÖrange soundcloud
    • Awards

А ещё я прочитал это:

В Nox-е используется предположительно три файла шрифтов large.fnt, number.fnt и small.fnt.
Записан

Evengard

  • SysAdmin
  • Администратор
  • Старожил
  • ***
  • Карма: 186
  • Оффлайн Оффлайн
  • Сообщений: 2728
  • Director
  • Awards Столп форума 2012 Активным участникам сходок - 2013 За сервер Орден 'За заслуги перед форумом I степени'
    • Просмотр профиля
    • Awards

default он тож грузит, смотрел.
Записан
Не упоминай администраторов всуе...
С уважением, TriOptimum Corporation

PS: Покаяние - Признание своей вины в чем-либо, обычно с просьбой о прощении

Garett

  • Langrisser
  • Гильдия The Pinnacle
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 667
  • Awards Сложность исполнения 5 конкурса карт Лучшая карта 5 конкурса карт Лучший геймплей 5 конкурса карт Выбор администрации 5 конкурса карт Мастер нестандартных карт - 2013 Столп форума 2012 За написание статей Методист 2012
    • Просмотр профиля
    • Garett#9853
    • Awards

Частичный разбор заголовка.
Семантика некоторых значений, определенных в начале файлов default.fnt и large.fnt (small.fnt по содержимому совпадает с default.fnt).

Содержание файла default.fnt:
0000: 74 4E 6F 46 01 00 00 00
0008: 09 00 00 00 02 00 00 00
0010: 09 00 00 00 01 00 00 00
0018: 13 00 00 00 00 00 00 00
0020: 20 00 FF 00 03 00 00 00
0028: 00 00 00 00 00 00 00 00
0030: 00 00 00 00 00 00 00 01
0038: 80 00 80 00 80 00 80 00
0040: 80 00 00 00 80 00 00 00
0048: 00 00 03 ..

Для удобства представления, разделение на строки (кратность по 4 байта не обоснована ничем):
74 4E 6F 46 01 00 00 00 09 00 00 00
02 00 00 00 09 00 00 00
01 00 00 00
13 00 00 00
00 00 00 00
20 00 FF 00
03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01 80 00 80 00 80 00 80 00 80 00 00 00 80 00 00 00 00 00
03 ..

Седьмая строка (первая длинная) и ниже - изображения символов.
Разбор выделенных.

02 00 00 00 09 00 00 00
02 00 00 00 - обозначает количество байт, отведенное для ширины каждого символа. Один бит эквивалентен одной точке по ширине. Т.е. значение "02" предполагает, ширина изображения символа не более 16 точек. Как разобрано выше, ширина (в точках) конкретного символа, отображаемого в игре, задается значением байта, размещенного непосредственно перед самим изображением.
09 00 00 00 - обозначает максимальную высоту символа в точках. Значение "09" предполагает, что высота изображения символа не более 9 точек.

Все символы в файле default.fnt должны быть умещены и закодированы в картинке 9х16 точек. Все неиспользуемые байты оставляются нулевыми, но они обязательно должны быть.

13 00 00 00
13 00 00 00 - обозначает общее количество байт, выделяемых для предствавления изображения одного символа. В него входит байт относительной длины символа "+" все байты самого изображения.

20 00 FF 00
20 00 - изображение какого по порядку символа (видимо, таблицы ASCII) будет первым. Выше можно видеть, что первый символ в файле - это " ", а второй "!", таблица ASCII подтверждает значение "20" - пробел, "21" - восклицательный знак.
FF 00 - номер завершающего символа (предположение, без проверки).

Значения остальных байт мной пока не разобраны.

Содержание файла large.fnt:
0000: 74 4E 6F 46 01 00 00 00
0008: 13 00 00 00 03 00 00 00
0010: 0F 00 00 00 01 00 00 00
0018: 2E 00 00 00 00 00 00 00
0020: 1F 00 FF 00 04 00 00 00
0028: 00 00 00 00 00 00 F0 00
0030: 00 90 00 00 90 00 00 90
0038: 00 00 90 00 00 90 00 00
0040: 90 00 00 90 00 00 F0 00
0048: 00 00 00 00 00 00 00 00
0050: 00 00 04 ..

Для удобства представления, разделение на строки:
74 4E 6F 46 01 00 00 00 13 00 00 00
03 00 00 00 0F 00 00 00
01 00 00 00
2E 00 00 00
00 00 00 00
1F 00 FF 00
04 00 00 00 00 00 00 00 00 00 F0 00 00 90 00 00 90 00 00 90 00 00 90 00 00 90 00 00 90 00 00 90 00 00 F0 00 00 00 00 00 00 00 00 00 00 00
04 ..

Далее разбирать не буду, должно быть и так понятно.
Записан
Маленький потерявшийся волшебничишка.

Dio

  • Глобальный модератор
  • Старожил
  • **
  • Карма: 99
  • Оффлайн Оффлайн
  • Сообщений: 1274
  • Некромансеры "живы"!
  • Awards Орден 'За заслуги перед форумом I степени' Активным участникам сходок - 2013 За разгадку главного секрета Nox За набор курсоров для Windows За релиз ЮниМода Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

Еще помогу товарищем которые собираются делать программы для редактирования шрифтов)
Расскажу как Nox разбирает шрифты на примере large.fnt и number.fnt

Он подгружает файл шрифтов и грузит первые 0x1c байт.
 
74 4E 6F 46
01 00 00 00
13 00 00 00
03 00 00 00
10 00 00 00
01 00 00 00
31 00 00 00

тут у нас 7 dword-ов (7 по 4 байт)
Другое дело что записаны они не в привычном нам виде. Переделаем. В итоге получим вот что (при разборе number.fnt мы получим другой результат)

1. 0x466F4E74
2. 01
3. 0x13
4. 03
5. 0x10
6. 01
7. 0x31

Далее Nox работает с этими числами.
Сперва он смотрит на первый байт. Число 0x466F4E74 указывает игре что этот файл надо разбирать следующим методом (он так разбирает default.fnt large.fnt и так далее, его нет например в number.fnt)
Не буду сильно внедряться в структуры его данных, так навряд ли вам это как то поможет.
Дальше он берет 6-ой dword умножает его на 8 (4 ворда) и читает это кол-во байт. У нас получится что он прочитает так

1А 00 00
2А 00 00
3А 1F 00
4А FF 00

Далее игра смотри было ли ли что в 6-ом dword-е, и если не было то пропускает первые 2 word-a и считывает 3А-йе и 4А-ое. Вычитает из 4А-ого 3А-е и к полученному результату прибавляет единицу (в данном случае получится 0xE1). Это я так понимаю кол-во символов в файле.

Потом Nox умножает это значение (в нашем случае 0xE1) на 7-ой dword и полученное кол-во байт считывает из файла. Это уже сами буквы, ничего не буду добавлять по ним.
Если кстати подсчитать то 0x1c + 8 + 0xE1*0x31 = 11061 байт, а это и есть размер файла.

Итого (значение всех параметров)

1. Зашифрованное слово, если его там нет то нокс будет думать что это number.fnt
2. Не используется
3. Считывается, но не используется
4. некий шаг в байтах при считывании симбола. В итоге влияет на размер букв (1 маленькие, 2 средние, и 3 большие). Если прибавить к этому значению единицу, то оно должно быть кратным максимальной высоте симболов
5. Максимальная высота симболов
6. Кол-во списков букв. То есть списки букв как в large.fnt 1F - FF, по идее можно было пропустить пару симболов и сделать там 2 списка и записать 00 00 1F 2F 00 00 34 FF. Мы бы пропустили пару симболов между 2F и 34
7. Кол-во байт которое занимает 1 буква.

1А. Отступ по таблице вперед с номера 3А (влияет ессно на графическое отображение)
2А. Не знаю если честно, но лучше не трогайте
3А. Первый номер симбола по таблице
4А. Последний номер по таблице

Таблицу я имею ввиду ACSII


Чуть иная загрузка у number.fnt

Nox грузит первые 0x4c байт
Это весь заголовок, он статичен. Сразу расскажу о том какие типы данных и что делают

1. word Не юзается
2. word Шаг в байтах при считывании
3. word Максимальная высота
4. word кол-во списков
5. word Отступ по таблице вперед
6. word Не знаю если честно, но лучше не трогайте
7. word Первый номер симбола по таблице
8. word Последний номер по таблице
9-36 (word) повторяется что и 5-8. Та же самая функция
37. dword Размер одного симбола

Тут место для списков уже забито с 5 по 36 word.
Записан
Пользуйтесь UniMod-ом.

Lаrboss

  • Старожил
  • *****
  • Карма: 109
  • Оффлайн Оффлайн
  • Сообщений: 910
  • Абстрагирую
  • Awards Знак 'Властелин Сил Природы' За редактор шрифтов - 2013 Медаль 'За программу Nox Server Notificator' За программу Nox Binder Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

Кто уже взялся за написание программы для редактирования шрифтов?
Записан
Отец читеров

Evengard

  • SysAdmin
  • Администратор
  • Старожил
  • ***
  • Карма: 186
  • Оффлайн Оффлайн
  • Сообщений: 2728
  • Director
  • Awards Столп форума 2012 Активным участникам сходок - 2013 За сервер Орден 'За заслуги перед форумом I степени'
    • Просмотр профиля
    • Awards

Перфект собирался, не?
Записан
Не упоминай администраторов всуе...
С уважением, TriOptimum Corporation

PS: Покаяние - Признание своей вины в чем-либо, обычно с просьбой о прощении

Perfect

  • Map Editor PRO
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 1148
  • Слушай маму и drum&bass
  • Awards За поддержку форума - 2013 Лучший дизайн 5 конкурса карт Рука форума 2012 3 конкурс карт - лучшая карта 3 конкурс карт - приз Evengard-а за самую большую карту Медаль 'За фантазию и упорство в создании карт - 2011' Медаль 'Победитель II конкурса карт' Лучшая карта
    • Просмотр профиля
    • nÖrange soundcloud
    • Awards

Именно. Сейчас работаю с воплощением в реальность самой "рисовалки", потом не составит труда прописать нужные функции.
Записан

Lаrboss

  • Старожил
  • *****
  • Карма: 109
  • Оффлайн Оффлайн
  • Сообщений: 910
  • Абстрагирую
  • Awards Знак 'Властелин Сил Природы' За редактор шрифтов - 2013 Медаль 'За программу Nox Server Notificator' За программу Nox Binder Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

Как успехи Перфект:?
Записан
Отец читеров

Perfect

  • Map Editor PRO
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 1148
  • Слушай маму и drum&bass
  • Awards За поддержку форума - 2013 Лучший дизайн 5 конкурса карт Рука форума 2012 3 конкурс карт - лучшая карта 3 конкурс карт - приз Evengard-а за самую большую карту Медаль 'За фантазию и упорство в создании карт - 2011' Медаль 'Победитель II конкурса карт' Лучшая карта
    • Просмотр профиля
    • nÖrange soundcloud
    • Awards

Я в Греции, епт! Приостановил разработку. Текущая стадия - удобный GUI.
Записан

Lаrboss

  • Старожил
  • *****
  • Карма: 109
  • Оффлайн Оффлайн
  • Сообщений: 910
  • Абстрагирую
  • Awards Знак 'Властелин Сил Природы' За редактор шрифтов - 2013 Медаль 'За программу Nox Server Notificator' За программу Nox Binder Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

С гуи начинаешь разработку...
Записан
Отец читеров

Perfect

  • Map Editor PRO
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 1148
  • Слушай маму и drum&bass
  • Awards За поддержку форума - 2013 Лучший дизайн 5 конкурса карт Рука форума 2012 3 конкурс карт - лучшая карта 3 конкурс карт - приз Evengard-а за самую большую карту Медаль 'За фантазию и упорство в создании карт - 2011' Медаль 'Победитель II конкурса карт' Лучшая карта
    • Просмотр профиля
    • nÖrange soundcloud
    • Awards

Без критики, пожалуйста. Нечего ещё критиковать.
Записан

Lаrboss

  • Старожил
  • *****
  • Карма: 109
  • Оффлайн Оффлайн
  • Сообщений: 910
  • Абстрагирую
  • Awards Знак 'Властелин Сил Природы' За редактор шрифтов - 2013 Медаль 'За программу Nox Server Notificator' За программу Nox Binder Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

У кого используется стандартный large.fnt, прошу поделитесь им со мной.
Записан
Отец читеров

Lаrboss

  • Старожил
  • *****
  • Карма: 109
  • Оффлайн Оффлайн
  • Сообщений: 910
  • Абстрагирую
  • Awards Знак 'Властелин Сил Природы' За редактор шрифтов - 2013 Медаль 'За программу Nox Server Notificator' За программу Nox Binder Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

Кто-нить разбирал первый-два символа из large.fnt? Если таковые есть - поделитесь информацией.

Перфект, как успехи?

Ничего не обещаю, но параллельно Перфекту начал разработку редактора, не уверен реализую ли.
Записан
Отец читеров

2530

  • Гильдия The Pinnacle
  • Старожил
  • *
  • Карма: 79
  • Оффлайн Оффлайн
  • Сообщений: 665
  • Не вижу смысла в Nox 2
  • Awards Победитель конкурса "Угадай Автора Карты" 2015
    • Просмотр профиля
    • Awards

Perfect успешно разрабатывает редактор. Скоро приступит к кодированию информации.
P.S>Я много чего знаю о текущем прогрессе, так как с Basic'ом ему помогаю я :)
Записан
Карма рассчитана на индикацию среднего отношения к участнику, а не степень важности человека. Не гонитесь за ней.
Все мои видео и Twitch стримы

Perfect

  • Map Editor PRO
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 1148
  • Слушай маму и drum&bass
  • Awards За поддержку форума - 2013 Лучший дизайн 5 конкурса карт Рука форума 2012 3 конкурс карт - лучшая карта 3 конкурс карт - приз Evengard-а за самую большую карту Медаль 'За фантазию и упорство в создании карт - 2011' Медаль 'Победитель II конкурса карт' Лучшая карта
    • Просмотр профиля
    • nÖrange soundcloud
    • Awards

Да, разработка идёт своим чередом. Причём, весьма успешно, как отметил Герман.
Записан

Perfect

  • Map Editor PRO
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 1148
  • Слушай маму и drum&bass
  • Awards За поддержку форума - 2013 Лучший дизайн 5 конкурса карт Рука форума 2012 3 конкурс карт - лучшая карта 3 конкурс карт - приз Evengard-а за самую большую карту Медаль 'За фантазию и упорство в создании карт - 2011' Медаль 'Победитель II конкурса карт' Лучшая карта
    • Просмотр профиля
    • nÖrange soundcloud
    • Awards

Если разбирать шрифт таким образом, получается днище невероятное. Хоть и красивое. Или это у меня руки из днища растут?
Записан

TheSim

  • Клан "NoX Craft"
  • Постоялец
  • *
  • Карма: 31
  • Оффлайн Оффлайн
  • Сообщений: 287
  • Awards Активным участникам сходок - 2013 За релиз ЮниМода Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

А зачем вообще растровый шрифт руками рисовать?
Возьмите какой-нить http://en.wikipedia.org/wiki/FreeType движок
Затем какой нить из прикольных бесплатных шрифтов растеризовать и вперед!
Записан

Evengard

  • SysAdmin
  • Администратор
  • Старожил
  • ***
  • Карма: 186
  • Оффлайн Оффлайн
  • Сообщений: 2728
  • Director
  • Awards Столп форума 2012 Активным участникам сходок - 2013 За сервер Орден 'За заслуги перед форумом I степени'
    • Просмотр профиля
    • Awards

Сим дело говорит. Только я хотел движок непосредственно к Ноксу прикрутить.
Записан
Не упоминай администраторов всуе...
С уважением, TriOptimum Corporation

PS: Покаяние - Признание своей вины в чем-либо, обычно с просьбой о прощении

Dio

  • Глобальный модератор
  • Старожил
  • **
  • Карма: 99
  • Оффлайн Оффлайн
  • Сообщений: 1274
  • Некромансеры "живы"!
  • Awards Орден 'За заслуги перед форумом I степени' Активным участникам сходок - 2013 За разгадку главного секрета Nox За набор курсоров для Windows За релиз ЮниМода Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

объясните убогому, что это?
Мб проще тогда просто в ноксе сделать поддержку шрифтов? (а мб и совсем не проще)
Записан
Пользуйтесь UniMod-ом.

Lаrboss

  • Старожил
  • *****
  • Карма: 109
  • Оффлайн Оффлайн
  • Сообщений: 910
  • Абстрагирую
  • Awards Знак 'Властелин Сил Природы' За редактор шрифтов - 2013 Медаль 'За программу Nox Server Notificator' За программу Nox Binder Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

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

Evengard

  • SysAdmin
  • Администратор
  • Старожил
  • ***
  • Карма: 186
  • Оффлайн Оффлайн
  • Сообщений: 2728
  • Director
  • Awards Столп форума 2012 Активным участникам сходок - 2013 За сервер Орден 'За заслуги перед форумом I степени'
    • Просмотр профиля
    • Awards

объясните убогому, что это?
Мб проще тогда просто в ноксе сделать поддержку шрифтов? (а мб и совсем не проще)

О том я и говорю
Записан
Не упоминай администраторов всуе...
С уважением, TriOptimum Corporation

PS: Покаяние - Признание своей вины в чем-либо, обычно с просьбой о прощении

Perfect

  • Map Editor PRO
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 1148
  • Слушай маму и drum&bass
  • Awards За поддержку форума - 2013 Лучший дизайн 5 конкурса карт Рука форума 2012 3 конкурс карт - лучшая карта 3 конкурс карт - приз Evengard-а за самую большую карту Медаль 'За фантазию и упорство в создании карт - 2011' Медаль 'Победитель II конкурса карт' Лучшая карта
    • Просмотр профиля
    • nÖrange soundcloud
    • Awards

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

К слову о движке... Рисовалка работает, сохранение изменений есть, всё достаточно удобно (почти как в том же mspaint.exe). После проделанной работы я не вижу смысла всё переносить на "полуфабрикат".
Записан

Dio

  • Глобальный модератор
  • Старожил
  • **
  • Карма: 99
  • Оффлайн Оффлайн
  • Сообщений: 1274
  • Некромансеры "живы"!
  • Awards Орден 'За заслуги перед форумом I степени' Активным участникам сходок - 2013 За разгадку главного секрета Nox За набор курсоров для Windows За релиз ЮниМода Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

Хз, вероятно ты просто где то ошибся. UniMod-ом займусь на каникулах (времени нет, теперь по честному).
Там уж посмотрю как рисуются шрифты в Nox-e и насколько реально сделать такую поддержку. Хотя если не надо будет переводить вектор в растр, то не думаю что очень сложно. Просто сделать такую фишку, что мы будем брать шрифт из этой штуки, трансформировать его в ноксформат и все.
Записан
Пользуйтесь UniMod-ом.

Lаrboss

  • Старожил
  • *****
  • Карма: 109
  • Оффлайн Оффлайн
  • Сообщений: 910
  • Абстрагирую
  • Awards Знак 'Властелин Сил Природы' За редактор шрифтов - 2013 Медаль 'За программу Nox Server Notificator' За программу Nox Binder Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

Пока так. Может кто-то что-то предложит по визуализации или функционалу.
Spoiler: Скрин (click to show/hide)

Кроме редактирования добавил функции импорта/экспорта символа. Единственное условие - размер символов должен совпадать.

Вообщем, coming soon...
Записан
Отец читеров

Perfect

  • Map Editor PRO
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 1148
  • Слушай маму и drum&bass
  • Awards За поддержку форума - 2013 Лучший дизайн 5 конкурса карт Рука форума 2012 3 конкурс карт - лучшая карта 3 конкурс карт - приз Evengard-а за самую большую карту Медаль 'За фантазию и упорство в создании карт - 2011' Медаль 'Победитель II конкурса карт' Лучшая карта
    • Просмотр профиля
    • nÖrange soundcloud
    • Awards

Проект был приостановлен, но вновь ожил. Скрин текущей версии моего редактора шрифтов прилагаю.

Spoiler (click to show/hide)
Записан

Lаrboss

  • Старожил
  • *****
  • Карма: 109
  • Оффлайн Оффлайн
  • Сообщений: 910
  • Абстрагирую
  • Awards Знак 'Властелин Сил Природы' За редактор шрифтов - 2013 Медаль 'За программу Nox Server Notificator' За программу Nox Binder Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

Цитировать
6. Кол-во списков букв. То есть списки букв как в large.fnt 1F - FF, по идее можно было пропустить пару симболов и сделать там 2 списка и записать 00 00 1F 2F 00 00 34 FF. Мы бы пропустили пару симболов между 2F и 34
Сколько списков символов может быть?
Записан
Отец читеров

Lаrboss

  • Старожил
  • *****
  • Карма: 109
  • Оффлайн Оффлайн
  • Сообщений: 910
  • Абстрагирую
  • Awards Знак 'Властелин Сил Природы' За редактор шрифтов - 2013 Медаль 'За программу Nox Server Notificator' За программу Nox Binder Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

Скажите, кто может знать?
Записан
Отец читеров

Perfect

  • Map Editor PRO
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 1148
  • Слушай маму и drum&bass
  • Awards За поддержку форума - 2013 Лучший дизайн 5 конкурса карт Рука форума 2012 3 конкурс карт - лучшая карта 3 конкурс карт - приз Evengard-а за самую большую карту Медаль 'За фантазию и упорство в создании карт - 2011' Медаль 'Победитель II конкурса карт' Лучшая карта
    • Просмотр профиля
    • nÖrange soundcloud
    • Awards

По идее, 00-FF, это логично.
Записан

Lаrboss

  • Старожил
  • *****
  • Карма: 109
  • Оффлайн Оффлайн
  • Сообщений: 910
  • Абстрагирую
  • Awards Знак 'Властелин Сил Природы' За редактор шрифтов - 2013 Медаль 'За программу Nox Server Notificator' За программу Nox Binder Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

По идее, 00-FF, это логично.
Но ведь, количество списков будет n+1, n - кол-во пропускаемых символов...
Записан
Отец читеров

Dio

  • Глобальный модератор
  • Старожил
  • **
  • Карма: 99
  • Оффлайн Оффлайн
  • Сообщений: 1274
  • Некромансеры "живы"!
  • Awards Орден 'За заслуги перед форумом I степени' Активным участникам сходок - 2013 За разгадку главного секрета Nox За набор курсоров для Windows За релиз ЮниМода Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

255 списков максимум. 1 байт говорит, сколько списков. Нисколько их быть не может => 256 - 1 = 255. Или не понял вопроса.
Записан
Пользуйтесь UniMod-ом.

Perfect

  • Map Editor PRO
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 1148
  • Слушай маму и drum&bass
  • Awards За поддержку форума - 2013 Лучший дизайн 5 конкурса карт Рука форума 2012 3 конкурс карт - лучшая карта 3 конкурс карт - приз Evengard-а за самую большую карту Медаль 'За фантазию и упорство в создании карт - 2011' Медаль 'Победитель II конкурса карт' Лучшая карта
    • Просмотр профиля
    • nÖrange soundcloud
    • Awards

А да, можно ли разбивать на списки, не пропуская символы?
Записан

Dio

  • Глобальный модератор
  • Старожил
  • **
  • Карма: 99
  • Оффлайн Оффлайн
  • Сообщений: 1274
  • Некромансеры "живы"!
  • Awards Орден 'За заслуги перед форумом I степени' Активным участникам сходок - 2013 За разгадку главного секрета Nox За набор курсоров для Windows За релиз ЮниМода Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

да, вероятно, можно даже наслаивать списки друг на друга, скорее всего верхний список и перезапишет символы.
Записан
Пользуйтесь UniMod-ом.

Lаrboss

  • Старожил
  • *****
  • Карма: 109
  • Оффлайн Оффлайн
  • Сообщений: 910
  • Абстрагирую
  • Awards Знак 'Властелин Сил Природы' За редактор шрифтов - 2013 Медаль 'За программу Nox Server Notificator' За программу Nox Binder Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

Что хранится в значении по адресу 0x24(красным выделено)? Файл с 2-мя списками.
Записан
Отец читеров

Garett

  • Langrisser
  • Гильдия The Pinnacle
  • Старожил
  • *
  • Карма: 125
  • Оффлайн Оффлайн
  • Сообщений: 667
  • Awards Сложность исполнения 5 конкурса карт Лучшая карта 5 конкурса карт Лучший геймплей 5 конкурса карт Выбор администрации 5 конкурса карт Мастер нестандартных карт - 2013 Столп форума 2012 За написание статей Методист 2012
    • Просмотр профиля
    • Garett#9853
    • Awards

...
1А. Отступ по таблице вперед с номера 3А (влияет ессно на графическое отображение)
2А. Не знаю если честно, но лучше не трогайте
3А. Первый номер симбола по таблице
4А. Последний номер по таблице

...
Записан
Маленький потерявшийся волшебничишка.

Lаrboss

  • Старожил
  • *****
  • Карма: 109
  • Оффлайн Оффлайн
  • Сообщений: 910
  • Абстрагирую
  • Awards Знак 'Властелин Сил Природы' За редактор шрифтов - 2013 Медаль 'За программу Nox Server Notificator' За программу Nox Binder Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards

Хотел, правда, спросить не что хранится, а как он вычисляется. Но да ладно, уже посчитал.
Записан
Отец читеров
Расширенный поиск  
 

Страница сгенерирована за 0.169 секунд. Запросов: 23.