- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 606
- Реакции
- 16
Решил поковырять кишки 7 Days to Die, чтобы по фасту включить дебаг-меню и креатив. Нашел нужные строки в Assembly-CSharp.dll, но столкнулся с классической проблемой Unity-игр при декомпиляции.
Стэк проблемы
По древним мануалам (которые уже изрядно подтухли, но адреса вроде те же) лезу в менеджер и вижу такую картину:
Где спотыкаюсь?
Траблшутинг
Пробовал подкидывать все либы из папки Managed в зависимости, но ошибки компиляции никуда не деваются. Есть подозрение, что проще патчить через Harmony или вообще юзать BepInEx, чем пытаться засунуть изменения в статику.
Кто в последнее время ковырял 7DtD, подскажите — там защиту на целостность DLL не вешали? Или есть какой-то более чистый способ зафорсить DebugMenuEnabled без этого геморроя с компиляцией в dnSpy?
Интересно, как сейчас обходят такие приколы с декомпиляцией в тяжелых методах без переписывания половины класса.
Стэк проблемы
По древним мануалам (которые уже изрядно подтухли, но адреса вроде те же) лезу в менеджер и вижу такую картину:
Код:
gameManager.isEditMode = GameModeEditWorld.TypeName.Equals(GamePrefs.GetString(EnumGamePrefs.GameMode));
GamePrefs.Set(EnumGamePrefs.DebugStopEnemiesMoving, gameManager.IsEditMode());
GamePrefs.Set(EnumGamePrefs.DebugMenuEnabled, 1.isEditMode || GameUtils.IsPlaytesting());
GamePrefs.Set(EnumGamePrefs.CreativeMenuEnabled, 1.isEditMode || GameUtils.IsPlaytesting());
Где спотыкаюсь?
- Если лезу править напрямую через IL-инструкции, то после сейва и замены DLL игра выдает ошибку при запуске (noad скрин: Пожалуйста, авторизуйтесь для просмотра ссылки.).
- Если пытаюсь юзать "Edit Method" в dnSpy, чтобы поправить всё на C#, компилятор взрывается сотнями ошибок. Причем ругается на строки, которые я даже пальцем не трогал — типичная беда с референсами и зависимостями в dnSpy.
Траблшутинг
Пробовал подкидывать все либы из папки Managed в зависимости, но ошибки компиляции никуда не деваются. Есть подозрение, что проще патчить через Harmony или вообще юзать BepInEx, чем пытаться засунуть изменения в статику.
Кто в последнее время ковырял 7DtD, подскажите — там защиту на целостность DLL не вешали? Или есть какой-то более чистый способ зафорсить DebugMenuEnabled без этого геморроя с компиляцией в dnSpy?
Интересно, как сейчас обходят такие приколы с декомпиляцией в тяжелых методах без переписывания половины класса.