Как включить цветные подсказки

GHub Platform · Гайд · 0 ответов · 5 просмотров

Меня часто раздражало отсутствие возможности увидеть выбранный мной цвет. Иногда я тратил недели на одно изображение, потому что искал последние недостающие пиксели определенного цвета. Это может быть просто из-за того, как я играю: я стараюсь полностью заполнить один цвет за раз, но мне кажется, что это более интересно для меня, и я чувствую, что возможность видеть пиксели выбранного вами цвета просто делает все лучше и уменьшает необходимость поиска, особенно на тех изображениях, которые по сути представляют собой просто пиксельные фотографии и поэтому повсюду есть случайные пиксели. Впервые мне пришла в голову идея взломать игру, потому что в последнее время я делаю свои собственные игры. Я думал о том, как было бы так легко реализовать эту функцию, если бы я мог просто получить доступ к сценариям игры, поэтому я поискал в Интернете и нашел способ декомпилировать сценарии C# в файлах игры и отредактировать код. Мне успешно удалось реализовать эту функцию, и пока она работает отлично. Я решил составить это руководство на случай, если кто-нибудь еще захочет добавить эту функцию. Для этого руководства требуется dnSpy, но я расскажу, как его получить. Coloring Pixels создана с использованием игрового движка Unity, который мне удобен, поскольку у меня есть опыт программирования с его использованием. Скрипты в Unity пишутся на C# и в финальной сборке компилируются в файлы .dll. Чтобы изменить код игры, вам сначала необходимо декомпилировать скрипты и отредактировать их. Мы сделаем это с помощью декомпилятора dnSpy. Загрузка dnSpy Сначала зайдите на этот сайт [github.com], и вы увидите что-то вроде этого: Загрузите любую сборку, подходящую для вашей ОС. Для таких пользователей Windows 11, как я, вам потребуется загрузить файл dnSpy-net-win64 [github.com]. Когда файлы загрузятся, щелкните правой кнопкой мыши ZIP-файл и нажмите кнопку «Извлечь все» следующим образом: Извлеките файлы и откройте папку. Когда вы откроете папку, вы должны увидеть приложение под названием dnSpy.exe, подобное тому, которое выделено синим цветом ниже, запустите его. Теперь у вас должен быть открыт dnSpy. Это должно выглядеть примерно так: Теперь нам просто нужно найти файлы Coloring Pixels и открыть их. Поиск файлов цветных пикселей Сначала в dnSpy выберите «Файл» > «Открыть» или нажмите Ctrl+O. Затем перейдите в эту папку: C:\Program Files (x86)\Steam\steamapps\common\Coloring Pixels\ColoringPixels_Data\Managed. Вы можете увидеть, как туда добраться, на изображении ниже: Как только вы окажетесь здесь, найдите файл с именем «Assembly-CSharp.dll». Этот файл содержит все скрипты для игры. Нажмите «Открыть», чтобы импортировать его в dnSpy. Отсюда перейдите в Assembly-CSharp > Assembly-CSharp.dll > — как показано на изображении ниже. В этом файле находится скрипт игры, который мы будем редактировать. Сначала найдите класс ClickTest и перейдите к методу UpdateGrayscale(), как показано на изображении ниже. Эта функция изначально использовалась для того, чтобы все уже заполненные пиксели отображались в оттенках серого для всех цветов, кроме выбранного в данный момент, при каждом переключении, но поскольку она вызывается всякий раз, когда вы переключаете цвета, и ее функциональность очень похожа на то, что мы хотим, мы можем легко переназначить ее. Щелкните правой кнопкой мыши в любом месте редактора, и вы получите возможность выбрать «Редактировать метод (C#)...» или вы можете просто нажать Ctrl+Shift+E, и должно появиться окно, позволяющее редактировать метод. Затем просто удалите весь уже существующий код, скопируйте и вставьте весь код ниже в окно. использование системы; использование UnityEngine; использование UnityEngine.Tilemaps; использование UnityEngine.UI; // Токен: 0x02000015 RID: 21 public parts class ClickTest : MonoBehaviour { // Токен: 0x06000054 RID: 84 public void UpdateGrayscale() { for (int i = 0; i < this.xMax; i++) { for (int j = 0; j < this.yMax; j++) { if (this.savedGridValues[i, j] == -1) { Цвет цвета; if (this.selectedColourID == this.mainGridValues[i, j]) {color = Color.grey; } Еще {цвет = Color.white; } Позиция Vector3Int = новый Vector3Int (i, j, 0); this.tilemap.SetTileFlags(position, TileFlags.None); this.tilemap.SetColor(позиция, цвет); } if (this.savedGridValues[i, j] > 0 && this.crossLevel.grayscale) { Color color2 = this.crossLevel.colours[this.savedGridValues[i, j] - 1]; if (this.selectedColourID != this.savedGridValues[i, j]) { color2 = color2.CheckGrayScale(this.crossLevel); } color2.r = this.Clamp(color2.r, 0.2f, 1f); color2.g = this.Clamp(color2.g, 0.2f, 1f); color2.b = this.Clamp(color2.b, 0.2f, 1f); if (this.crossLevel.highContrast >= 2 && this.savedGridValues[i, j] != this.mainGridValues[i, j]) { color2 = Color.white; } Vector3Int позиция2 = новый Vector3Int (i, j, 0); this.tilemap.SetTileFlags(position2, TileFlags.None); this.tilemap.SetColor(position2, color2); } } } } } Нажмите «Компилировать», чтобы завершить редактирование, а затем выберите «Файл» > «Сохранить все...» или нажмите Ctrl+Shift+S и нажмите «ОК», чтобы сохранить работу. Если вы этого не сделаете, это не сработает (очевидно). Это позволит выделить каждый пиксель выбранного цвета, если он не окрашен неправильно. Если вместо этого вы хотите сделать так, чтобы каждый пиксель подсвечивался независимо от того, правильно ли он окрашен, вставьте код сюда [pastebin.com] вместо кода выше. Мне сообщили, что этот код отключает функцию высокой контрастности. Если вы хотите использовать функцию высокой контрастности, вот [pastebin.com] — альтернативный код, предоставленный Ноем. Поздравляем, вы теперь хакер! Если вы сейчас откроете игру, вы увидите, что все пиксели выбранного вами цвета, которые не были заполнены, окрашены в серый цвет, как показано ниже: Если вы хотите отменить это, то это будет исправлено, просто удалив и переустановив игру, но если вы не хотите этого делать, вы можете просто сохранить резервную копию метода, который вы заменили, и если вы хотите вернуться обратно, просто используйте dnSpy, чтобы вернуть методы в исходное состояние. Надеюсь, вам понравится! Изменить: похоже, что при каждом обновлении игры отредактированный код сбрасывается. Это не такая уж большая проблема, поскольку игра обновляется примерно раз в месяц, а изменить код обратно так же просто, как просто скопировать и опубликовать приведенный выше код. Это не идеально, но это небольшая цена. Насколько я знаю, это не удастся исправить, если разработчики не внесут этот код в основную сборку игры. --- Источник: https://steamcommunity.com/sharedfiles/filedetails/?id=3225815494

Источник

GHub Platform · автор02.08.2026, 19:00:27

Меня часто раздражало отсутствие возможности увидеть выбранный мной цвет. Иногда я тратил недели на одно изображение, потому что искал последние недостающие пиксели определенного цвета. Это может быть просто из-за того, как я играю: я стараюсь полностью заполнить один цвет за раз…

Войдите, чтобы писать в группе