avatar_Profesor08

MU Online FAQ: Шрифты, Разрешения, Текстуры

Автор Profesor08, 2011 Нояб. 28, 19:23

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] mu onlineтекстурышрифтыfaqразрешения

Profesor08

Вообщем так. Сделал поддержку клиента широких экранов (widescreen). Кстати отлично смотрится MU в разрешении 1680х1050. Но столкнулся с подводным камнем - размер шрифтов. Он ничтожно маленький. Разобрать с лупой не удастся. Вот собственно скриншот:
Спойлер
## здесь был скриншот ##
[свернуть]

Нужно с этим как-то разбираться. Надеюсь на помощь.

======================================
======================================

Также решил порыться, и попробовать расширить лимит текстур, ориентируясь на сам гайд, тот что на РЗ от гибрида.
С поиском всего сложностей не возникло. Но столкнулся с непоняткой. Вообщем там есть момент, когда в Hex Dump надо выделить некоторое количество памяти под массив. Далее правый клик -> find references. Далее в появившемся окне, если установлен плагин(из гайда), снова правый клик -> Copy to Bin file. Но этого там нет. Может я туплю и не там ищу? Или что-то не так понял. Вообщем снова надеюсь на помощь тех, кто подобное проделывал.

P.S. Уж очень хочется до конца разобраться на счет всего этого.

Mr.Kernighan


user_MU

Ты бы ссылку на статью дал, или на скриншот. Что то я не могу такого упомнить. Может бинарная копия? Но это не одно и то же... и что у тебя должно выйти после Copy to Bin file ?

Profesor08

А как же. Вот наслаждайся.


Цитата: user_MU от 2011 Нояб. 28, 18:43  Ты бы ссылку на статью дал, или на скриншот. Что то я не могу такого упомнить. Может бинарная копия? Но это не одно и то же... и что у тебя должно выйти после Copy to Bin file ?



Вот скрины момента.
Спойлер
раз.
## здесь был скриншот ##
два.
## здесь был скриншот ##
[свернуть]

Плагин References.dll подключен. Возможно я что-то не так сделал или не там ищу.

Mr.Kernighan

#4
Вообщем вот, для начала реальный "пруф" что это реально возможно сделать, вощпе я афтечаю.

Скриншот:


А вот те код, думаешь я буду все за тебя делать? Хер те, докажи что ты "тру" мафака...

00406B5E  |.  51 PUSH ECX ; /FaceName
00406B5F  |.  6A 00 PUSH 0 ; |PitchAndFamily = DEFAULT_PITCH|FF_DONTCARE
00406B61  |.  6A 03 PUSH 3 ; |Quality = 3.
00406B63  |.  6A 00 PUSH 0 ; |ClipPrecision = CLIP_DEFAULT_PRECIS
00406B65  |.  6A 00 PUSH 0 ; |OutputPrecision = OUT_DEFAULT_PRECIS
00406B67  |.  8B15 CC2E8C00 MOV EDX,DWORD PTR DS:[8C2ECC] ; |
00406B6D  |.  52 PUSH EDX ; |CharSet => 128.
00406B6E  |.  6A 00 PUSH 0 ; |StrikeOut = FALSE
00406B70  |.  6A 00 PUSH 0 ; |Underline = FALSE
00406B72  |.  6A 00 PUSH 0 ; |Italic = FALSE
00406B74  |.  68 BC020000   PUSH 2BC ; |Weight = FW_BOLD
00406B79  |.  6A 00 PUSH 0 ; |Orientation = 0
00406B7B  |.  6A 00 PUSH 0 ; |Escapement = 0
00406B7D  |.  6A 00 PUSH 0 ; |Width = 0
00406B7F  8B45 E8   MOV EAX,DWORD PTR SS:[EBP-18]
00406B82  |.  50 PUSH EAX ; |Height
00406B83  |.  FF15 98908800 CALL DWORD PTR DS:[<&GDI32.CreateFontA>]; CreateFontA

00406B7F  8B45 E8   MOV EAX,DWORD PTR SS:[EBP-18]
00406B82  |.  50 PUSH EAX ; |Height
TO это
Забыл добавить: Я дэляль так:
Xor Eax, Eax
Push Eax
Ну, толкал в stack нуль, что будет при других значения я не знаю.

Виш первый аргумент, heigh, регистр base pointer передает значение какой-нить локальной переменной регистру EAX. Вот это те и нужно мафака.
И вот еще я нарыл "пруф" от msdn, почитай про первый аргумент.
https://msdn.microsoft.com/en-us/library/dd...9(v=vs.85).aspx
nHeight [in]

ЦитироватьThe height, in logical units, of the font's character cell or character. The character height value (also known as the em height) is the character cell height value minus the internal-leading value. The font mapper interprets the value specified in nHeight in the following manner.
Value   Meaning
> 0
The font mapper transforms this value into device units and matches it against the cell height of the available fonts.
0
The font mapper uses a default height value when it searches for a match.
< 0
The font mapper transforms this value into device units and matches its absolute value against the character height of the available fonts.
Если не знаешь английский, уж извини. Даже Killbrum его знает.
Кстати, забыл напомнить, таких вызовов там много, поэтому пройдись по всем вызовам и попробуй поиграться со значениями. [-1, 0, 1]. А еще мож даже и меньше и больше поставить, ну только если Kill добро даст. Шутчу, на самом деле можешь поставить и другие значения, потому что я смотрел регистру EAX передается FFFFFFF5 :) ну Kill меня поймет потому что Kill реальный чел, а для вас смертные людишки это -11.
А вообще вот как найти этот код что я привел выше, Правый клик -> Search for -> Раз ты на чекане тогда IN CUR LA MODULE.
Я не гарантирую если это поможет, ну поиграться я думаю можно. Там кстати еще и аргумент Width есть ;)

Credits
Killbrum (За слово пруф)

Отпишись, интересно что получится.

Profesor08

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

Mr.Kernighan



Да, не весь текст поменял свои размеры.
Warp Command как видно на скрине и еще несколько моментов там есть.
Я смогу посмотреть как винду переустановлю.

Profesor08

#7
Вообщем разобрался. Спасибо что дал пинка в нужную сторону.
Вообщем краткая инструкция.
1) Открываем майн в ольке
2) Тыкаем Ctrl + N
3) О открывшемся окне ищем CreateFontA
4) Выделяем и жмем Enter
5) В появившемся окне мы видем вызовы этой функции. Это то что нам нужно.
Первый вызов хз за что отвечает.
Второй отвечает за шрифт, который отображается при игре. Тоесть названия вещей, чат, имена, надписи и тд.
Третий за текст сообщений от сервера, что по середине экрана появляются.
Четвертый хз.
Пятый за текст там где логин и выбор персонажей.
6) Нам нужны Второй и третий вызовы.
Выделяем его -> Enter
7) Прокручиваем чутов вверх и видем параметры.
(третий вызов прям под вторым чуть ниже)
Спойлер
## здесь был скриншот ##
[свернуть]
Делаем вот так
Спойлер
## здесь был скриншот ##
[свернуть]
P.S. Не зря убил кучу времени.

Но остается еще проблема с меню телепортов.
Вот:
Спойлер
## здесь был скриншот ##
[свернуть]

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

Похожие темы (5)