Смена языка через interface 152 protocol

Qurit

Знаменитый
Пользователь
Сообщения
11
Розыгрыши
0
Репутация
0
Реакции
0
Баллы
1 223
Пытаюсь реализовать смену языка на этапе логина на 152 protocol (Salvation), но при нажатии на кнопку клиент подвисает и критует.
Знатоки, подскажите, пожалуйста, в каком направлении копать? По каким причинам это может происходить?

Код:
           case "enLang":
            SetOptionBool("Control","IsNative",False);
            break;
           case "ruLang":
            SetOptionBool("Control","IsNative",True);
            break;
Код:
History: FL2ArtifactEnchantSettingDataManager::Serialize <- FL2GameData::LoadBinScriptAtOnce <+ Bin: 148 Text: 97 Time: 2023.8.3 16:11:37 SHA1:8D9B51B80DE1C9831BEC667AD0C8EEF6C5EDB697 <- FL2GameData::ArtifactEnchantSettingDataLoad <- FL2GameData::LoadAllScript <- NCOptionManager::SetOptionBoolToGlobal <- NCOptionManager::SetOptionBool <- UUIScript::execSetOptionBool <- UObject::ProcessEvent <+ (LogInMenu Transient.LogInMenu, Function Interface.LogInMenu.OnCallUCFunction, 0x15062F00, 0x0019A698, 24, 36) <- GlobalGFxDelegate::CallUCFunction <- Advance <- GFxFlashObj::AdvanceAndRender <+ Flash Name: ContainerHUD Tick Count: 914 <- GFxUIManager::RenderFlash <- GFxFlashWnd::OnPaint <- NCVirtualWndMain::DrawChildWindow <- NCVirtualWndMain::DrawChildWindow <- WM_PAINT <- NCVirtualWndMain::DispatchWndMsg <- NConsoleWnd::ConsolePostRender <- UGameEngine::PostDraw <- ConsolePostRender <- Draw <- UGameEngine::Draw <+ GRenDev = fd8d0000 <- UWindowsViewport::Repaint <- UWindowsClient::Tick <- ClientTick <- UGameEngine::Tick <- UpdateWorld <- CMainLoop::UpdateTheWorld <- MainLoop

Exception:
Code [EXCEPTION_READ_VIOLATION  DataAddress:0x00000010]
Address [0x2015BF4D]
SegCs [0x0023]

Engine.dll [0x20000000] Offset [0x0015BF4D]
 
Надо сразу закрывать клиент. Без закрытия будет крит.
 
Нужно чтобы текст был одинаковый по параметрам в dat файлах и еще шрифты должны быть желательно или будет краш при смене языка.
Посмотрите как реализован мультиязычный патч на любые хроники, там в локализации указаны пути до шрифтов и прочего.

Помню на interlude был патч с иконкой смены языка прям в форме ввода логина и пароля, там принцип такой же как у переключателя в настройках.
 
Нужно чтобы текст был одинаковый по параметрам в dat файлах и еще шрифты должны быть желательно или будет краш при смене языка.
Посмотрите как реализован мультиязычный патч на любые хроники, там в локализации указаны пути до шрифтов и прочего.
Localization.ini я уже подправил, при смене IsNative в Option.ini в ручную и запуске с этими настройками, критов нет, а вот при смене настроек с запущенным клиентом критует.
 
м.б подргузки нет ? т.е ты пытаешься вкючить то что не подгружено при запуске
 
честно не шарю, просто высказал предположения с логической точки зрения, еще как вариант ты пытаешься перезаписать данные в поток владельцем которого не являешься ,либо код ссылается на несуществующий адрес\данные
В Localization.ini текстурки тоже разные под язык прописываются. А датки разве надо где то прописывать дополнительно? Никогда о таком не слышал.
 
Назад
Сверху Снизу