Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Игровой клиент (https://forum.zone-game.info/forumdisplay.php?f=54)
-   -   Редактируем interface.u (Hex вариант) (https://forum.zone-game.info/showthread.php?t=40430)

Shayne 05.04.2016 22:48

Редактируем interface.u (Hex вариант)
 
Раз уж пошла такая пьянка с большим интересном к редактированию интерфейса решил поговорить о насилии редактировании interface.u. На вбросы уровня гуру в этом направлении не претендую, но думаю пара-тройка людей оценит.

Итак, инструментарий:
- UTPT
- l2decrypt (либо кому-чем удобно декомпилить клиентские файлы)
- Хекс редактор. Я использую 010 Editor

В качестве примера запилим следующую штуку*:
https://pp.vk.me/c630225/v630225278/...6b7nZdfJXM.jpg
*Сделано в качестве примера, многого ожидать не стоит:)

Открыв в UT Package Tool interface.u, ищем нужный участок кода (для просмотра выбираем нужный класс \ функцию -> ПКМ -> Decompile). В примере один из вариантов - это


Код:

if ( bShowHPBar && (GetGameStateName() != "SPECIALCAMERASTATE") )
  {
    barHP.ShowWindow();
  } else {
    barHP.HideWindow();
  }

Цель: заменить barHP.HideWindow() на barHP.ShowWindow().
Так независимо от кода выше будет отображаться HP, для всех целей в таргете.
Для этого нужно найти barHP.HideWindow() в байт коде. Тут поможет смещение:

https://pp.vk.me/c630225/v630225278/...qE_bVJXL5s.jpg

Как включить отображение смещений в коде:
Свернуть ↑Развернуть ↓

Переходим к байт коду, для этого в UTPT жмем ПКМ по HandleTargetUpdate и выбираем Analize Raw Object


В появившемся окне жмем Format -> Auto format, в результате получаем следующий вид:


Далее - Jump -> To Object Offcet и вставляем смещение нужной строки (у нас это 0x00000755)


Получаем:
img:
Свернуть ↑Развернуть ↓

Т.е. barHP.HideWindow() соответствует 19 01 47 33 06 00 00 1C 96 16 в байт-коде.
Такую же процедуру проворачиваем и с barHP.ShowWindow(). Ему соответствует 19 01 47 33 06 00 00 1C A1 16.

Теперь собственно к редактированию:
Анпакаем interface.u. Я это делаю банальным перестаскиванием interface.u на l2decrypt.exe в проводнике, в результате чего появляется interface.u.clear, с ним и будем работать. Можно прогнать l2endec'ом, или еще чем...
Анпакнутый u открываем в хекс-редакторе и ищем строку с необходимым байт-кодом (Ctr + F -> 19 01 47 33 06 00 00 1C 96 16).



Может так статься, что таких же строк будет найдено больше одной, тогда то и понадобиться "глобальное смещение".
Тут правда у меня вылез ньанс - когда смещение предлагаемое UTPT не совсем совпадает с реальным смещением для строки в хекс редакторе, так что остается следить на глаз:Olen':



Заменяем 19 01 47 33 06 00 00 1C 96 16 на 19 01 47 33 06 00 00 1C A1 16 ( по сути один байт)



сохраняем, упаковываем (опять же любым доступным способом), готово.



Почему 010 Editor?:
Свернуть ↑Развернуть ↓


Может кто подкинет варианты упрощения процедуры, а то и вовсе другие варианты, был бы рад:)

Emperor 06.04.2016 00:11

Re: Редактируем interface.u (Hex вариант)
 
Вопрос из разряда "просто интересно": А бар живой? Или не отображает действительность на хп игроков?

Zubastic 06.04.2016 00:15

Re: Редактируем interface.u (Hex вариант)
 
Отображает
Вброшу:
http://risovach.ru/upload/2016/04/me...4077_orig_.png

Shayne 06.04.2016 00:26

Re: Редактируем interface.u (Hex вариант)
 
Цитата:

Сообщение от Emperor (Сообщение 409592)
Вопрос из разряда "просто интересно": А бар живой? Или не отображает действительность на хп игроков?

В этом варианте отображает на момент взятия в таргет, дальше не меняется.

Zubastic 06.04.2016 01:23

Re: Редактируем interface.u (Hex вариант)
 
Цитата:

Сообщение от Shayne (Сообщение 409595)
В этом варианте отображает на момент взятия в таргет, дальше не меняется.

Не до конца доломали просто :)

Shayne 06.04.2016 09:57

Re: Редактируем interface.u (Hex вариант)
 
Не в том месте. Да и полоску двигать нужно, но это уже следующая история:D

ChiF 06.04.2016 13:48

Re: Редактируем interface.u (Hex вариант)
 
ну гайд, профа вместо статуса, был бы более актуален)

Emperor 06.04.2016 15:22

Re: Редактируем interface.u (Hex вариант)
 
Цитата:

Сообщение от ChiF (Сообщение 409612)
ну гайд, профа вместо статуса, был бы более актуален)

http://memesvault.com/wp-content/upl...acepalm-05.png

Shayne 06.04.2016 16:57

Re: Редактируем interface.u (Hex вариант)
 
Цитата:

Сообщение от ChiF (Сообщение 409612)
ну гайд, профа вместо статуса, был бы более актуален)

Давай файлом скину да и всё, зачем эти гайды?)

fabuLous 09.04.2016 13:47

Re: Редактируем interface.u (Hex вариант)
 
Цитата:

Сообщение от Shayne (Сообщение 409627)
Давай файлом скину да и всё, зачем эти гайды?)

он сам всё хочет
чтоб сделать такой же патч как в шаре
но сделал то сам :redlol:


Текущее время: 16:03. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot