ksteel Опубликовано Суббота в 23:28 Жалоба Поделиться Опубликовано Суббота в 23:28 (изменено) Всем привет. Решил я тут поиграть в старый добрый Морровинд, установить Фуллрест репак, интегрировать нейросеть в него и т.д. (ну вы понимаете игры Тес без моддинга в наше время никуда, а возможностей сейчас куча). И вот что я заметил, старый добрый https://www.fullrest.ru/files/russian_text_input#6235 text.dll имел ряд недостатков(по моему мнению😞) 1. Переключение раскладки на ScrollLock. Не очень удобно, особенно если вы пользуетесь и консолью в игре, и создаете зелья/заклинания. Постоянно переключаться через СкроллЛок не очень удобно, он находится далековато (а у пользователей ноутбуков он вообще через Fn работает). Что я сделал? Я переназначил клавишу переключения раскладки на LAlt путем смены значения с DIK_Scroll на DIK_LAlt: 2. Наличие слепого пятна в переводе клавиш с английского на русский (расскажу максимально подробно, насколько я смогу, тапками не кидайтесь): при использовании английской раскладки, если вы нажимали клавишу "/?.," (клавиша между буквой "ю" и правым Shift) то печатались символы "/ и ?" (? - с зажатой клавишей Shift), при переключении раскладки на русскую ПО ЛОГИКЕ должны были печататься знаки препинания ". и ," ( , (запятая) с нажатой клавишей Shift). НО этого не происходило, и печатались стандартные английские "/ и ?". Это происходило потому что в "таблице перевода, назначении клавиш" стояла пустота (0х00) вместо правильных значений. Я же внёс значения для этих клавиш ( 0х2Е для "." и 0х2С для ",") и как бы "перевёл" их для движка игры: 3. При использовании MCP патча (Morrowind Code Patch) у оригинального Morrowind.exe менялся цифровой отпечаток. Из-за чего старенький text.dll не понимал что это за новый такой Morrowind.exe и выдавал ошибку "Unknow Morrowind.exe". Потому что он знал только оригинальный Морровинд с его цифровым отпечатком, либо Морровинд+Трибунал, либо Морровинд+Трибунал+Бладмун. И для каждой версии он задавал координаты в оперативной памяти (очень сложно объяснять это на пальцах). Проще говоря если была непонятная версия — неверные координаты ломали память игры и соответственно ничего не работало (хотя ошибка Unknow Morrowind.exe и не давала этого сделать). Что сделал я - я добавил настройку в Angel.ini, которая выглядит следующим образом: Теперь при установке этого Text.dll (с прилагаемым к нему Angel.ini), сначала надо выставить ту версию игры, которую используете ВЫ. Если этого не сделать (запустить версию с бладмуном, а в строке будет MT), то вам выдаст ошибку, потому что я ввёл безопасную валидацию (Я БЕРЕГУ ТВОЙ МОРРОВИНД! ТЫ ЕГО НЕ ДОЛЖЕН(НА) СЛОМАТЬ!😞) Я думаю, итак, понятно что после слов Version="СЮДА НАДО ВПИСАТЬ СВОЮ ВЕРСИЮ, УБРАВ КАВЫЧКИ КАК НА СКРИНШОТЕ". Я почти уверен, что 99% игроков играют в версию МТВ, так что ничего менять не нужно в Angel.ini, эта настройка стоит там по умолчанию. А если вы всё же играете без какого-либо дополнения, я бы хотел у вас спросить следующее: "....кто вы?" Также этот text.dll должен быть (по крайней мере мои локальные тесты показали, что это так) универсальным и подходить к любой версии Morrowind.exe. Главное соблюдайте соответствие в строке Version= (M/MT/MB/MTB) и всё у вас будет хорошо. И да, с этим text.dll вам не нужно будет скачивать или искать оригинальный образ диска (потому он и тяжелее (241 кб) немного (~ на 70 кб), в отличие от старенького text.dll (~170 кб)). 02/10/2025 UPD: Обновил Text.dll, а именно: 1. Главное дополнение — теперь, клавишу можно переназначить через Angel.ini! Для этого в Angel.ini был добавлен следующий блок: Вопрос: "Как добавить свою клавишу и можно ли это сделать вообще?" Ответ: да, добавить можно: Идёте на https://learn.microsoft.com/en-us/previous-versions/windows/desktop/bb321074(v=vs.85), где ищете нужную вам клавишу. Меняете значение в строке ToggleLayout = (ставите сюда значение клавиши без скобок) Играете. Как было реализовано? "Создал память" для клавиши, внеся строку: Заставил читать Angel.ini внеся в "void InitMWKeyboard" следующую строку: Заменил фиксированную клавишу на переменную из "памяти": Добавил "пульт управления" в Angel.ini: 2. Небольшие фиксы слепых пятен: верхний ряд цифр (клавиша 2) при русской раскладке, при сочетании клавиш Shift+2 теперь правильно переводится в символ " " " (верхние двойные кавычки), Shift+2 в английской раскладке всё также даёт "@" (собака). верхний ряд цифр (клавиша 4) при русской раскладке, при сочетании клавиш Shift+4 теперь правильно переводится в символ " ; " (точка с запятой), Shift+4 в английской раскладке всё также даёт " $ " (доллар). верхний ряд цифр (клавиша 6) при русской раскладке, при сочетании клавиш Shift+6 теперь правильно переводится в символ " : " (двоеточие), Shift+6 в английской раскладке всё также даёт " ^ " (не помню как называется символ 😄) верхний ряд цифр (клавиша 7) при русской раскладке, при сочетании клавиш Shift+7 теперь правильно переводится в символ " ? " (знак вопроса), Shift+7 в английской раскладке даёт " & " (амперсанд). НЕ БЫЛО ПОФИКШЕНО: верхний ряд цифр (клавиша 3) при русской раскладке, при сочетании клавиш Shift+3 должна переводится в символ " № ", но вместо него она упорно писала цифру 1. Сначала я добавил этот символ № в алфавит DialogueEngine.cpp - игра всё ещё писала цифру 1. Потом я удалил из Алфавита Большой твердый знак "Ъ", влепил на его место символ "№". Игра стала писать пустое место или "пробел". Я предполагаю, что это из-за шрифта (даже нового), не стал заморачиваться и вернулся к тому, что и англ и русская раскладка при Shift+3 пишут символ "#". Если уж писать символ "№", то можно это сделать и английской N просто не так красиво =( . Также прилагаю таблицу "обновленных" данных в таблице (с уже изменёнными): Всем спасибо за внимание, в особенности пользователю Angel Death за труд: из далёкого 2005 года. Исходники text.dll взяты с ГитХаб https://github.com/angeld29/morr_text_dll Text.dll angel.ini Изменено 1 час назад пользователем ksteel апдейт основного файла text.dll, фикс оформления темы. Ссылка на комментарий Поделиться на другие сайты Поделиться
Dagot_Prolaps Опубликовано Воскресенье в 08:13 Жалоба Поделиться Опубликовано Воскресенье в 08:13 Ого, русский морр без виртуального диска, революция свершилась! Кстати, ProcessPriority=1 за что отвечает? Всю жизнь было 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
ksteel Опубликовано Воскресенье в 09:30 Автор Жалоба Поделиться Опубликовано Воскресенье в 09:30 1 час назад, Dagot_Prolaps сказал: Ого, русский морр без виртуального диска, революция свершилась! Кстати, ProcessPriority=1 за что отвечает? Всю жизнь было 0 Насколько я понял, text.dll не просто какой-то руссификатор. Это целый комплексный патч, на уровне памяти игры(фиксит бездоспешный бой и т.д. и т.п). Но также он расширяет консоль, вносит в неё команды новые по типу: o .help: Показывает список всех этих новых команд. o .version: Показывает точную версию .dll файла. o .priority: Позволяет на лету менять приоритет процесса Морровинда в Windows (Normal, High, Realtime). (Скорее всего эта команда и связано со строкой ProcessPriority=1. Смею предположить, что в 2004-2005 годах были всё ещё проблемы со "сворачиванием игры" по альт-таб, потому эту функцию впихнули. Если нет, то для чего менять приоритет процесса игры через консоль - я пока не могу понять). o .fps max: Позволяет установить лимит максимального FPS в игре. o .dump: Мощная отладочная команда для разработчиков, позволяющая "заглядывать" в память игры. Ссылка на комментарий Поделиться на другие сайты Поделиться
Kronis Опубликовано Воскресенье в 10:23 Жалоба Поделиться Опубликовано Воскресенье в 10:23 Здравствуйте еще бы средство от вылетов так как не играю больше из за этого в оригинальный morrowind пришлось перейти на OpenMW Ссылка на комментарий Поделиться на другие сайты Поделиться
olol Опубликовано Воскресенье в 11:05 Жалоба Поделиться Опубликовано Воскресенье в 11:05 ProcessPriority=0 Когда-то ранее было обсуждение оного... Вроде для повышения ускорения загрузки, но на слабых ноутах от этого звук отрубался. Так что ну его в баню, не стоит ставить более нуля. Ссылка на комментарий Поделиться на другие сайты Поделиться
ksteel Опубликовано Воскресенье в 11:27 Автор Жалоба Поделиться Опубликовано Воскресенье в 11:27 1 час назад, Kronis сказал: Здравствуйте еще бы средство от вылетов так как не играю больше из за этого в оригинальный morrowind пришлось перейти на OpenMW Вы просите "одно лекарство" от всех болезней 😃 Увы такого не существует. Движок старенький, на костылях работает. Советую играть в фуллрест репак, он более-менее стабильный. Этот файл text.dll, он оперирует с памятью игры. Но увы я не знаю какой блок памяти за что отвечает. Проще говоря - это очень мощный инструмент, но технологий для его использования "на полную катушку" у меня нет. Ссылка на комментарий Поделиться на другие сайты Поделиться
Марк К. Марцелл Опубликовано Понедельник в 07:44 Жалоба Поделиться Опубликовано Понедельник в 07:44 Ого! Интересно. В 9/28/2025 в 2:28 AM, ksteel сказал: клавишу переключения раскладки на LAlt путем смены значения с DIK_Scroll на DIK_LAlt: Чревато конфликтами с некоторыми MWSE-Lua модами, задействующими левый Альт. Ссылка на комментарий Поделиться на другие сайты Поделиться
ksteel Опубликовано Понедельник в 14:18 Автор Жалоба Поделиться Опубликовано Понедельник в 14:18 (изменено) 6 часов назад, Марк К. Марцелл сказал: Ого! Интересно. Чревато конфликтами с некоторыми MWSE-Lua модами, задействующими левый Альт. Да, вы правы. Я об этом тоже думал, но, как правило, если в Lua моде есть какой-то хот-кей, то, скорее всего, его можно через мсм переназначить? Это явно проще чем заново перекомпилировать text.dll 😃даже если нет хот-кея, то можно его сделать для этого мода 😃 Изменено Понедельник в 14:19 пользователем ksteel Ссылка на комментарий Поделиться на другие сайты Поделиться
Марк К. Марцелл Опубликовано Понедельник в 17:49 Жалоба Поделиться Опубликовано Понедельник в 17:49 3 часа назад, ksteel сказал: если в Lua моде есть какой-то хот-кей, то, скорее всего, его можно через мсм переназначить? Если разработчик заложил такую опцию. Что бывает не всегда. 3 часа назад, ksteel сказал: даже если нет хот-кея, то можно его сделать для этого мода В принципе, да. Мне, например, проще подправить луа-мод, чем перекомпилить ДЛЛ. Ну а тому, кто просто решил поиграть в Морру и нашёл в интернете инфу, что язык переключается по СкроллЛок, одинаково сложно будет и то, и другое. Ссылка на комментарий Поделиться на другие сайты Поделиться
Siberian Crab Опубликовано Вторник в 08:13 Жалоба Поделиться Опубликовано Вторник в 08:13 В 28.09.2025 в 11:13 AM, Dagot_Prolaps сказал: Ого, русский морр без виртуального диска, революция свершилась! Вичановкий Толки Моррошинд это давно делал Ссылка на комментарий Поделиться на другие сайты Поделиться
Siberian Crab Опубликовано Вторник в 08:15 Жалоба Поделиться Опубликовано Вторник в 08:15 17 часов назад, ksteel сказал: Да, вы правы. Я об этом тоже думал, но, как правило, если в Lua моде есть какой-то хот-кей, то, скорее всего, его можно через мсм переназначить? Это явно проще чем заново перекомпилировать text.dll 😃даже если нет хот-кея, то можно его сделать для этого мода 😃 Имхо оптимальным тут был бы вынос хоткея в инишник, если это возможно Ссылка на комментарий Поделиться на другие сайты Поделиться
ksteel Опубликовано 23 часа назад Автор Жалоба Поделиться Опубликовано 23 часа назад В 30.09.2025 в 1:15 PM, Siberian Crab сказал: Имхо оптимальным тут был бы вынос хоткея в инишник, если это возможно Что-то я не подумал об этом совсем 😃 сегодня как освобожусь - попробую это сделать Ссылка на комментарий Поделиться на другие сайты Поделиться
ksteel Опубликовано 1 час назад Автор Жалоба Поделиться Опубликовано 1 час назад В 30.09.2025 в 1:15 PM, Siberian Crab сказал: Имхо оптимальным тут был бы вынос хоткея в инишник, если это возможно сделал обновление, спасибо за идею 😃 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти