eterlib/input.cpp ---open void CInputKeyboard::ResetKeyboard() find #ifdef KEYBOARD_LOADING_FIX ms_bKeyboardEnabled = false; #endif add if (FAILED(hr)) { hr = ms_lpKeyboard->Acquire(); //if (hr == DIERR_OTHERAPPHASPRIO || hr == DIERR_NOTACQUIRED); return; } find if (FAILED(hr)) { #ifdef KEYBOARD_LOADING_FIX if (ms_bKeyboardEnabled == true) #endif { hr = ms_lpKeyboard->Acquire(); } //if (hr == DIERR_OTHERAPPHASPRIO || hr == DIERR_NOTACQUIRED); return; } change #ifdef KEYBOARD_LOADING_FIX void CInputKeyboard::ToggleUsedKeyboard(bool enable) { if (!ms_lpKeyboard) return; ms_bKeyboardEnabled = enable; bool isCheck; if (ms_bKeyboardEnabled) isCheck = true; else isCheck = false; HRESULT hr = ms_lpKeyboard->GetDeviceState(sizeof(ms_diks), &ms_diks); if (FAILED(hr)) { if (ms_bKeyboardEnabled) { hr = ms_lpKeyboard->Acquire(); isCheck = false; } else { hr = ms_lpKeyboard->Unacquire(); isCheck = true; } } if (ms_bKeyboardEnabled && isCheck) ms_lpKeyboard->Acquire(); else ms_lpKeyboard->Unacquire(); } #endif list end of add eterlib/input.h ---open void KeyUp(int iIndex); find and after add #ifdef KEYBOARD_LOADING_FIX void ToggleUsedKeyboard(bool enable); #endif static char ms_diks[256]; find and after add #ifdef KEYBOARD_LOADING_FIX bool ms_bKeyboardEnabled; #endif #define KEYBOARD_LOADING_FIX localeinc.h add eterlib/pythonapplicationmodule.cpp ---open void initapp() find and before add #ifdef KEYBOARD_LOADING_FIX PyObject* appSetKeyboardUsed(PyObject* poSelf, PyObject* poArgs) { bool bFlag = false; if (!PyTuple_GetBoolean(poArgs, 0, &bFlag)) return Py_BuildException(); CPythonApplication::Instance().ToggleUsedKeyboard(bFlag); return Py_BuildNone(); } #endif { NULL, NULL, NULL }, find and before add #ifdef KEYBOARD_LOADING_FIX { "SetKeyboardUsed", appSetKeyboardUsed, METH_VARARGS }, #endif #ifdef KEYBOARD_LOADING_FIX PyModule_AddIntConstant(poModule, "KEYBOARD_LOADING_FIX", 1); #else PyModule_AddIntConstant(poModule, "KEYBOARD_LOADING_FIX", 0); #endif list end of add python - game.py player.SetGameWindow(self) find and add after if app.KEYBOARD_LOADING_FIX: app.SetKeyboardUsed(True) python - introcreate.py net.SetPhaseWindow(net.PHASE_WINDOW_CREATE, self) find and add after if app.KEYBOARD_LOADING_FIX: app.SetKeyboardUsed(True) python - introempire.py net.SetPhaseWindow(net.PHASE_WINDOW_EMPIRE, self) if app.KEYBOARD_LOADING_FIX: app.SetKeyboardUsed(True) find and add after python - introloading.py net.SetPhaseWindow(net.PHASE_WINDOW_LOAD, self) find and add after if app.KEYBOARD_LOADING_FIX: if not stream.id == "sanjix9": app.SetKeyboardUsed(False) python - intrologin.py net.SetPhaseWindow(net.PHASE_WINDOW_LOGIN, self) find and add after if app.KEYBOARD_LOADING_FIX: app.SetKeyboardUsed(True) python - introselect.py net.SetPhaseWindow(net.PHASE_WINDOW_SELECT, self) find and add after if app.KEYBOARD_LOADING_FIX: app.SetKeyboardUsed(True)