Привет.
Тема - возврат кнопок для включения "SystemMsgWnd" для игровых клиентов "классик/ессенс".
Клиент сам по себе их скрывает для версии "Не мейн" (можете найти их, если в VERSION_CHECK (PROTOCOL_VERSION ?) выслать данные для мейна), на уровне UGX
// В теме идет о речь восстановлении кнопок в меню
// Для восстанования работы самого окна (над окном чата) - требуется исходникк интерфейса, в нем 4 условия, которые проверят клиент на "
GetIsLiveServer
" каким-то таким образом:
C-подобный:
// End:0x1D7
if(getInstanceUIData().GetIsLiveServer())
{
GetINIBool("global", "SystemMsgWnd", m_bUseSystemMsgWnd, "chatfilter.ini");
// End:0x1C5
if(bool(m_bUseSystemMsgWnd))
{
m_hSystemMsgWnd.ShowWindow();
}
else
{
m_hSystemMsgWnd.HideWindow();
}
}
else
{
m_hSystemMsgWnd.HideWindow();
}
Что нам понадобится:
- Любой редактор ДАТ файлов;
-
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками
Вход или
Регистрация
(тут есть кнопка "релизы", через неё скачать билд);
-
https://mmo-dev.info/threads/l2tool-with-ugx-gfx.22571/
Для начала, найдет клиент, в котором будут восстанавливаться кнопки.
01. Открываем редактор ДАТ файлов - и открываем в нем файлик "FlashConfig.dat";
02. Ищем
optionWnd
, в моем случае полная строка выглядит вот так =
flash_begin window=[optionWnd] file=[ui9] flash_end
;
03. Идем в папочку
SysTexture
и находим там файлик, который называется так же, как и значение
file=[ui9]
. В моем случае - это опять же
ui9.ugx
;
04. Копируем файлик куда-то (ибо если что-то поламаем - лучше, чтобы была резервная копия);
05. Снимаем крипт с
.ugx
любым удобным для вас способом (
Lineage2Ver121
на нем). Если удобного способа нет, воспользуйтесь -
https://mmo-dev.info/threads/mxendec.25099/ ;
06. Открываем последнюю програмку -
l2tool с ugx replacer-ом
;
07. Каким-то чудом находим свой файлик в открывшемся окне и открываем его;
08. В выпадающем списке ищем "
*название-файла*.OptionWnd.gfx
";
09. Нажимаем "
Export
"
10. Открываем jpexs (вторая ссылка);
11. В jpexs нажимаем кнопочку "Open", после чего выбираем "
Files of Type: Binary Search - all files
";
12. Открываем експоритрованный файл и получаем много предупреждений - можем смело их игнорировать;
13. Смотрим - видим много непонятных подпапочек, вот в этих подпапочка, в разделе "
scripts
", нам нужно отыскать "
optionWnd.form
";
14. Внутри смотрим на скрипт под названием "
OptionWndFormChattingCommon
";
15. Ищем по файлу
isClassicServer
. У меня они находятся в 2х функция - "
SetOptionComponents
" и "
onSelectCheckBox
";
16. Дальше нажимаем на "
Edit ActionScript
" после чего удаляем эти 2 условия. То-есть было так:
C-подобный:
internal function SetOptionComponents() : void
{
if(L2UISystem.isClassicServer())
{
this.group1.visible = false;
this.group2.y = this.group1.y;
}
this.title02 = this.group1.title02;
C-подобный:
protected function onSelectCheckBox(param1:Event) : void
{
OptionWndChatFilter.OptionWndFormChattingForm.OnlyUseSystemMsgWndBox.visible = this.checkBox_OnlyUseSystemMsgWnd.selected && !L2UISystem.isClassicServer();
}
А стало так:
C-подобный:
internal function SetOptionComponents() : void
{
if(false)
{
this.group1.visible = false;
this.group2.y = this.group1.y;
}
this.title02 = this.group1.title02;
C:
protected function onSelectCheckBox(param1:Event) : void
{
OptionWndChatFilter.OptionWndFormChattingForm.OnlyUseSystemMsgWndBox.visible = this.checkBox_OnlyUseSystemMsgWnd.selected;
}
17. Сохраняем изменения (в коде), и нажимаем на "
Save
" (для файла);
18. Открываем последнюю програмку -
l2tool с ugx replacer-ом
;
19. В выпадающем списке ищем "
*название-файла*.OptionWnd.gfx
";
20. В "
File
" - указываем путь к нашему експоритрованному и сохранненному файлику;
21. Тыкаем
replace
;
22. Закидываем в игру и смотрим на результат, в виде появившегося в окне "
Настройки
" -> "
Настройки Чата
"