Перейти к содержанию

Text.dll 2025 (мой неоффициальный апдейт на современный лад)


Рекомендуемые сообщения

19 часов назад, ksteel сказал:

постом выше прикрепил свой mcp в архиве, если надо.

upd прошу прощения, ввёл в заблуждение, 8го сентября скачивал MCP патч по данной ссылке. От туда же скачивал MGE XE https://www.nexusmods.com/morrowind/mods/26348?tab=files

про этот с нексуса знаю, а на скринах у вас и правда Фулрест репак, не знал что там бэта версия с переведенным описанием, но она старее чем на нексусе.

Ссылка на комментарий
Поделиться на другие сайты

19 часов назад, ksteel сказал:

MCP если я ничего не путаю, как раз-таки с Fullrest репака, а нейросети вот инструкция https://docs.google.com/document/d/13JVzJQ54jxppOsg8dlxnoQOhkzPOWb8SfKl3mtlZ34Q/edit?tab=t.0,
а вот гитхаб автора https://github.com/drzdo/immersive_morrowind_llm_ai.
(з.ы. Это не моя страница и лично автора я не знаю, автором мода НЕ являюсь, даже не общался с ним) там есть ссылки и на гитхаб и на ютуб с плейлистом, очень комичные моменты у него присутствуют. Интегрирую — это я конечно громко сказал (автор мода уже их интегрировал) внесу ясность - я занимаюсь рефакторингом этого мода. (кстати именно для него я и перекомпелировал text.dll, чтобы было удобнее общаться с АИ НПС в обычном диалоговом окне с ЛЮБЫМ НПС)

Если он это один сделал, то он очень талантливый человек (по моему мнению), даже слишком талантливый х). Идея класс, но реализация (для меня), спорная.

Там (в оригинале) доступны 3 нейросети на выбор - Gemini flash, Mistral, и ещё что-то. Любая нейронка на Open Ai. Можно даже запустить через LLM Studio локально на пк (но для этого нужен компудахтер мощностью сравнительный с компудахтером NASA для управления всеми спутниками Земли, потому я отказался от локальной реализации этого мода).

Так вот, я добавил ещё deepseek-chat. (В планах вообще ещё добавить yandex gpt и Giga chat. Для пользователей из РФ их проще оплачивать). Там ничего сложного — просто поменять строчки в confyg.yml


Естественно все  АИ требуют api ключи от нейросетей (ну Gemini flash можно использовать 15 минут в день и то по ограниченному количеству токенов, или найти какой-либо ещё один "бесплатный ключ" в чём-то ограниченный). В этом плане deep seek (опять по моему скромному мнению) явно выигрывает - дешево (даже очень) и сердито. Умный быстрый, контекст понимает, за ЛОР шарит, хахамбы и кеки не выдает (если самому в промт не вписать.


В будущем (не знаю насколько далёком) хочу перенести этот мод вообще на OpenMW (в данный момент ознакамливаюсь с документацией) Lua скрипты новее, движок открытый, костылей никаких не надо, я надеюсь. (по типу используемой заглушки от автора оригинала мода для UI Extensions (что кстати очень гениально было и тонко на мой взгляд).

Что мною было сделано на данный момент:

  1. проведен тотальный анализ всех файлов — кто за что отвечает, зачем нужен, какие взаимосвязи, тестово убрал их Промтов: "мат и всякую не лорную бредятину — какие-то частушки, матерные частушки, современные слова по типу "прикольно" и т.д.
  2. изменил полностью npc_personality_generator.py, теперь он собирает архетип личности не по типу:
  •      "ты родился в Балморе вчера, ты орк, который ненавидит легкие доспехи и любит вонючих грязекрабов, ты бьешь всех кто с тобой не согласен. И ещё ты называешь главного героя Н'Вахом. И плевать что ты орк.",
  •        а нормально: - Пол/Раса/Знак/Класс/Фракция/Ранг  учитываются даже АРХЕТИПЫ личностей (сангвиник, холерик, меланхолик флегматик, их помеси).

Получается при генерации что: - не все данмеры местные (кстати тут включена функция исключения по типу Камонны Тонг, Шестого дома, некоторые ранги в некоторых фракциях и т.д.), не все каджиты наркоманы и любят лунный сахар, не все орки тупые, не все норды грязные варвары любящие рыгать и пердеть, не все босмеры Фаргот и так далее. 

  1. занялся сейчас npc_spаwn_list.py - хочу сделать из маленькой ограниченной книги "того что может давать тебе нпс" на целые лорные библиотеки (Construction Set мне в помощь).
  2. ну и другие изменения (их очень много, например чтобы нпс при разговоре не подходили в плотную к тому с кем разговаривают, да это добавляет своего рода иммерсивности......но...вы помните того погонщика Силт Страйдера из Гнисиса, который вечно проваливал под мостик и умирал? Либо Лодочников, которые вечно тонули из-за того что они смещались с места? Вот то-то и оно 😃 . Чтобы НПС не пялились все на тебя, словно ты в западном вестерне весь такой чужак, зашёл в местную таверну с револьвером на перевес (кстати, из-за этой функции на тебя смотрят даже убитые НПС (трупы крутятся 😄).

Работы очень много, особенно очень много захламлённых файлов, которые отнимают 70 (если не 85)% всего времени:
 

Аналогия: Директор сидит в кабинете. 

ПО ИДЕЕ директор должен просто собирать информацию, принимать отчёты от всех менеджеров (которые прибегают к директору в кабинет, кладут отчёт на стол и убегают во свояси, в свою рабочую дочернюю папку обратно). После этого директор ставит резолюцию "ВСЕ ПРОВЕРЕНО, ДОКУМЕНТЫ ГОТОВЫ"и отправляет структурированный понятный отчёт дальше (куда-то там в головной офис допустим).

ЧТО МЫ ИМЕЕМ НА ДАННЫЙ МОМЕНТ 

Этот бедолага директор, не то что собирает эти отчёты — ОН САМ ЛИЧНО носится по всему заводу, крутит гайки, меняет колёса у тракторов и ещё и в столовой кушать готовит для работников завода :D. Естественно миллиард функций и блоков кода вписано в бедные раздутые жирные файлы. А ведь можно сделать элегантнее и красивЕе.

И таких вот горе-дерикторов (файлов) целая Python часть мода (Lua часть маленькая, всего 19 файлов):
🌳 Структура мода Morrowind AI:
=========================================
📁 docs/                                                                                           Так что когда будет форк — не скажу точно. (там уже есть один на бесплатные разщговоры нпс голосом но   
📁 immersive_morrowind_db/                                                          по моему мнению, как кто-то выразился на ютубе и, я его мнение целиком поддерживаю, для меня
📁 immersive_morrowind_llm_logs/                                                 Морровинд - это больше буковки в тексте и чтение, чем общение голосом и отеты голосом нпс.
📁 src/
📄 .env (21 B)                                                            (з.ы. я сам играл в мод совсем немного - но увлёкся настолько, что аж погрузился в разработку и тестирование, но рассказать
📄 Текстовый документ.txt (498 B)                           и убедить Селлуса Гравиуса (именно его первого, потому что он главный по званию !!! по биографии!!), по приказу Селлуса
⚙️ config.example.yml (1,40 KB)                                -  Ганциеля Дуара, и ещё пару легионеров о том, что в  пещере Аддумасартус контрабандисты рабов держат было весело.
⚙️ config.yml (2,76 KB)                                             Притом что Гравиус остался снаружи, а легионеры со мной внутрь пошли, после чего меня оттуда выгнали (если бы я не
📄 LICENSE (34,32 KB)                                              ушёл они бы выписали мне шрафт) т.к. я ГРАЖДАНСКИЙ и не состою в легионе, был первого уровня в рваном тряпье и т.д.
📖 README.md (30,03 KB                                        А Гравиус категорически не хотел меня пускать внутрь как гражданское лицо, сказал ждать, что легионеры сами справятся 😄
📊 rpgaiserver.log (894 B)
📄 rpgaiserver.log.1 (884 B)                                     А я то блин понимаю, что пока меня там нету - ячейка мертва, там ничего не происходит, это не Тес 5 Скурим.
📄 rpgaiserver.log.2 (883 B)                                     Так и простоял прау минут, после чего зашёл алегионеры что стояли у входа давай меня выгонять из пещеры, мол капитан
📄 rpgaiserver.log.3 (791 B)                                     Гравиус сказал бла бла бла. Весело вобщем, эмоций полный вагон))
  📄 Screenshot_1.jpg (989,73 KB)
  📄 Screenshot_2.jpg (1,06 MB)
  📄 Screenshot_3.jpg (300,41 KB)
  📁 mwse_mod/
  📁 server/
    📁 MWSE/
      📁 mods/
        📁 UI Expansion/
        📁 zdo_immersive_morrowind_ai/
          🌙 MenuDialog.lua (184 B)
          📁 common/
          📁 i18n/
          📁 service/
          📁 ui/
          🌙 config.lua (515 B)
          🌙 main.lua (7,78 KB)
          🌙 mcm.lua (2,60 KB)
          📦 mcm.rar (921 B)
            🌙 actor_stats.lua (4,09 KB)
            🌙 diagnostic_injector.lua (3,23 KB)
            🌙 eventbus.lua (6,95 KB)
            🌙 util.lua (5,48 KB)
            🌙 eng.lua (237 B)
            🌙 rus.lua (290 B)
            🌙 actor_say_service.lua (507 B)
            🌙 env_service.lua (1,58 KB)
            🌙 npc_service.lua (31,87 KB)
            🌙 player_service.lua (11,66 KB)
            🌙 stt_service.lua (1,86 KB)
            🌙 animate_label.lua (2,30 KB)
            🌙 dialog.lua (13,03 KB)
            🌙 hud.lua (6,16 KB)
            📦 hud.rar (1,69 KB)
    📁 app/
    📁 database/
    📁 eventbus/
    📁 game/
    📁 llm/
    📁 stt/
    📁 tts/
    📁 util/
    🐍 main.py (72 B)
    📄 requirements.txt (216 B)
      🐍 app_config.py (3,99 KB)
      🐍 app.py (4,38 KB)
      🐍 database.py (2,46 KB)
      📁 backend/
      📁 data/
      📁 event_data/
      🐍 bus.py (3,46 KB)
      🐍 event_consumer.py (320 B)
      🐍 event_producer.py (174 B)
      🐍 event.py (591 B)
      🐍 rpc.py (4,47 KB)
        🐍 abstract.py (387 B)
        🐍 mwse_tcp.py (3,11 KB)
        🐍 actor_ref.py (342 B)
        🐍 actor_stats.py (1,16 KB)
        🐍 cell.py (319 B)
        🐍 crime.py (334 B)
        🐍 dialog_data.py (488 B)
        🐍 env_data.py (1,63 KB)
        🐍 id_with_name.py (88 B)
        🐍 nakedness.py (122 B)
        🐍 npc_data.py (2,07 KB)
        🐍 npc_response_reaction_data.py (252 B)
        🐍 player_data_fast.py (360 B)
        🐍 player_data.py (884 B)
        🐍 position.py (312 B)
        🐍 topic_data.py (105 B)
        🐍 event_data_from_game.py (4,94 KB)
        🐍 event_data_from_server.py (4,14 KB)
        🐍 event_data_rpc.py (3,08 KB)
      📁 data/
      📁 i18n/
      📁 service/
      🐍 game_master.py (22,21 KB)
      🐍 game_setup.py (5,85 KB)
        🐍 npc_behavior.py (180 B)
        🐍 npc_personality.py (131 B)
        🐍 npc.py (481 B)
        🐍 player_ref_looked_at.py (309 B)
        🐍 player.py (265 B)
        🐍 story_item.py (5,16 KB)
        🐍 story.py (337 B)
        🐍 time.py (1,98 KB)
        🐍 i18n.py (2,56 KB)
        📁 event_producers/
        📁 npc_services/
        📁 player_services/
        📁 providers/
        📁 scene/
        📁 story_item/
        📁 util/
          🐍 event_producer_from_story.py (11,24 KB)
          🐍 npc_behavior_service.py (8,88 KB)
          🐍 npc_database.py (3,99 KB)
          🐍 npc_intention_analyzer.py (18,99 KB)
          🐍 npc_llm_message_history_builder.py (2,43 KB)
          🐍 npc_llm_pick_actor_service.py (34,62 KB)
          🐍 npc_llm_response_producer.py (5,18 KB)
          🐍 npc_llm_system_instructions_builder.py (61,00 KB)
          🐍 npc_personal_story_service.py (2,20 KB)
          🐍 npc_personality_generator.py (53,75 KB)
          🐍 npc_service.py (6,18 KB)
          🐍 npc_spawn_list.py (3,34 KB)
          🐍 npc_speaker_service.py (14,25 KB)
          🐍 local_player_speaking_listener.py (2,24 KB)
          🐍 player_database.py (2,20 KB)
          🐍 player_intention_analyzer.py (6,20 KB)
          🐍 player_personal_story_service.py (3,85 KB)
          🐍 player_provider.py (1,35 KB)
          🐍 cell_name_provider.py (1,37 KB)
          🐍 dialog_provider.py (2,58 KB)
          🐍 dropped_items_provider.py (1,48 KB)
          🐍 env_provider.py (897 B)
          🐍 scene_instructions.py (4,19 KB)
          🐍 npc_story_item_helper.py (3,83 KB)
          🐍 story_item_to_history.py (10,09 KB)
          🐍 format_date.py (878 B)
          🐍 map_value_in_range.py (322 B)
          🐍 prompt_builder.py (2,25 KB)
          🐍 text_sanitizer.py (1,58 KB)
      📁 backend/
      🐍 llm_logger.py (5,11 KB)
      🐍 message.py (162 B)
      🐍 session.py (1,89 KB)
      🐍 system.py (2,73 KB)
        🐍 abstract.py (409 B)
        🐍 anthropic.py (2,61 KB)
        🐍 dummy.py (285 B)
        🐍 google.py (2,04 KB)
        🐍 mistral.py (2,64 KB)
        🐍 openai.py (2,62 KB)
      📁 backend/
      🐍 input.py (1,95 KB)
      🐍 system.py (5,39 KB)
        🐍 abstract.py (351 B)
        🐍 dummy.py (185 B)
        🐍 msspeech.py (3,00 KB)
        🐍 vosk.py (5,29 KB)
        🐍 whisper.py (3,93 KB)
      📁 backend/
      🐍 file_list_rotation.py (764 B)
      🐍 request.py (121 B)
      🐍 response.py (117 B)
      🐍 system.py (4,79 KB)
      🐍 voice.py (539 B)
        🐍 abstract.py (393 B)
        🐍 dummy.py (242 B)
        🐍 elevenlabs.py (6,49 KB)
      🐍 colored_lines.py (163 B)
      🐍 counter.py (216 B)
      🐍 diagnostic_injector.py (3,53 KB)
      🐍 distance.py (291 B)
      🐍 fs.py (345 B)
      🐍 gen_id.py (357 B)
      🐍 logger.py (3,57 KB)
      🐍 now_ms.py (71 B)



А если не читаете "многобуков", то короткая ремарка: человек открыл (по крайне мере для меня) дверь в АИ + Морровинд - создал "базу для этого", а я вошёл в комнату, где начал наводить свой порядок 😃 

ясно ,видел этот проект, но как минимум из за сложностей с нейросетями в рф, не заострял внимание. если дипсик прикрутите то уже интереснее.

Ссылка на комментарий
Поделиться на другие сайты

В 02.10.2025 в 2:54 PM, ksteel сказал:

сделал обновление, спасибо за идею 😃

Не за что. Еще бы репозиторий залить на Гит для будущих поколений

Изменено пользователем Siberian Crab
Ссылка на комментарий
Поделиться на другие сайты

В 28.09.2025 в 3:28 AM, ksteel сказал:

Исходники text.dll взяты с ГитХаб https://github.com/angeld29/morr_text_dll

я тут заглянул одним глазом в исходники, там в файле versions.txt указан версия 3.0
в файле morr_text_dll.rc тоже версия файла 3.0 указана.
а исходники точно от последней версии?
на фулресте https://www.fullrest.ru/files/russian_text_input#6235 или в GFM лежит версия v3.01
судя по описанию "Исправлено отсутсвие сообщений при повышении уровня" в ней довольно важное исправление было.
Я конечно допускаю что когда 3.01 делали могли в проекте не поправить, но файл versions.txt то на фулресте поправлен, а на гитхабе старый сомнительно.
Выбор клавиши конечно хорошо, но терять исправление не хочется.

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, Pirate443 сказал:

я тут заглянул одним глазом в исходники, там в файле versions.txt указан версия 3.0
в файле morr_text_dll.rc тоже версия файла 3.0 указана.
а исходники точно от последней версии?
на фулресте https://www.fullrest.ru/files/russian_text_input#6235 или в GFM лежит версия v3.01
судя по описанию "Исправлено отсутсвие сообщений при повышении уровня" в ней довольно важное исправление было.
Я конечно допускаю что когда 3.01 делали могли в проекте не поправить, но файл versions.txt то на фулресте поправлен, а на гитхабе старый сомнительно.
Выбор клавиши конечно хорошо, но терять исправление не хочется.

  1. исходники взяты с гитхаба, соответственно исходники от версии 3.0.
  2. Исходники версии 3.0.1 я не находил (к сожалению), если мне их предоставят, либо просто скажут куда что дописать, то я обязательно внесу это в своё дополнение, из этой темы, либо автор исправления про "таблички" может внести свои изменения в мои и перекомпилировать text.dll заново.
  3. По поводу этих табличек: "Исправлено отсутствие сообщений при повышении уровня" - это вот эти таблички по типу "вы так долго и упорно трудились и вот вы наконец пришли к этой цели. (Цитата не дословная, просто видел в каком-то файле игры эти строки давным давно. Вроде как в файле журнала (в который заносятся все записи про разные квесты, в игре.) Не помню где я его находил)
  4. По поводу GFM не совсем понял...GFM это же esp файл? Насколько я знаю, в ту же сборку в Fullrest Repack он уже встроен по умолчанию

Если я где-то ошибся, то поправьте меня. Я буквально как пару недель занимался text.dll. За темами на форуме (GFM и другие) не особо следил.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...