Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Разве не проще переименовать файл AuthLogin746.dll, например, в Interface.dll или entry.dll ? Затем нужно просто переместить его в папку с игрой, и она сама подгрузит его. Не потребуется ничего экспортировать.
В NWindow.dll я не обнаружил NpcDialogWnD, хотя там есть окно для логина и другие скрытые элементы интерфейса. Но NpcDialog, о котором идёт речь, нет. Можно редактировать внутреннее содержимое этого окна и изменять NPCHtmlViewer, но это не сильно поможет.
Наследоваться можно от любого класса, даже от Object, но тогда в твоем классе будут доступны только статические функции. Обычно же используется интерфейс UICommonAPI.
Насколько я понимаю, компонент Tab не имеет фокуса. Если открыть окно статуса впервые и кликнуть по любой вкладке, окно клана исчезнет. Это говорит о том, что при инициализации вкладок должно произойти какое-то событие.
Как предполагают выше, что проблема связана с неправильным сохранением или...
Если в коде оставить только скрытие (HideWindow), то после перезахода игроком окно клана не будет появляться.
Вот полный рабочий вариант, который также необходимо добавить в файл MainWnd.uc
function OnShow() {
if (class'UIAPI_TABCTRL'.static.GetTopIndex("MainWnd.MainTabCtrl") == 3) {...
Если речь идёт о том, что клан перекрывает другие элементы, то можно попробовать добавить в MainWnd код, который будет скрывать окно клана.
MainWnd.uc
/* Выполняется при загрузки окна*/
function OnShow() {
class'UIAPI_WINDOW'.static.HideWindow("ClanWnd");
}
Я настроил всё так же, как у тебя, нажал на сочетание клавиш ALT + H, интерфейс скрылся еще раз появился как и должно быть. Возможно, я просто не совсем понял, что ты хотел сделать?
В Visual Studio 2022 выберите язык C++ и создайте файл с расширением *.dll. Затем просто скопируйте и вставьте код, который я предоставил, и соберите проект в режиме x86.
После этого можешь использовать «CFF Explorer» или «Extreme Injector» для внедрения dll в процесс игры во время её работы...
На первой странице
https://mmo-dev.info/threads/%D0%9A%D1%80%D0%B5%D0%BF%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-emitor-%D0%BD%D0%B0%D0%B4-%D0%BD%D0%B8%D0%BA%D0%BE%D0%BC.30524/post-230868
Я тоже так делал, но, по-моему, эти команды отправляются через чат, а за это можно получить бан чата в игре)
Если у тебя на сервере уже есть эта команда bypass -h user_cfg lang en поищи ее в исходниках и посмотри как она работает, после отошли на сервер правильный bypass.
Здесь есть более...
В файле RequestBypassToServer.java необходимо указать серверу, что делать с этим пакетом. У меня есть только исходный Мебиуса , я думаю, что логика работы везде одинакова.
RequestBypassToServer.java
private static final String[] _possibleNonHtmlCommands = {
"_bbs",
"bbs",
"_mail"...
На сервере в файле RequestBypassToServer.java рспарсь строки set_Language ru и set_Language en и меняй язык по условию. Думаю, что кто-то более опытный в работе с серверной частью сможет лучше ответить на этот вопрос.
Дополню:
Чтобы это работало, даже если вы выбрали язык в окне входа в игру, нужно добавить следующий код:
При входе в игру загрузится окно ShortcutWnd, после чего выполнится запрос RequestBypassToServer со сменой языка.
ShortcutWnd.uc
function OnShow(){ //Или OnLoad();
LanguageToServer();
}...
На данном сайте используются файлы cookie, чтобы персонализировать содержимое и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.