Автор: Виэль Эзис

Симы и регулярные выражения

Пока текст не пишется, решила поиграть в симов. Опять получилась игра в траблшутинг и кастом контент перековыринг. Это не лечится.
С одним из последних обновлений (а вторые симы на ориджине, представьте себе, ещё апдейтятся!) прилетел то ли баг, то ли фикс, из-за которого причёски из кастомной категории автозаменяются на такие же из стандартной категории (разумеется, при наличии аналогов). Что получается: я выбираю в зеркале ярко-рыжие волосы для симки, а они становятся светло-рыжими в игре. Трагедия. Жизнь кончена, счастья нет.
Доступа к исходникам, конечно, тоже нет, но есть SimPE. Очевидное решение - скрытый текстпоменять идентификаторы цвета волос с кастомных на подходящие стандартные, благо там всё просто - всего-то в шести (плюс-минус) местах заменить строку, и всё отлично работает. Правда, непонятно, какой файл каким волосам в игре соответствует, а файлов несколько сотен, никак не отсортированных по цветам.
Но не сдаваться же вот так сразу.
Основную часть удалось отсортировать по названиям, оставшиеся - по цвету текстур, которые показываются в Clean Installer. Дальше я сначала подумала написать парсер (формат .package хоть и не xml, но многие строки там хранятся в открытом виде, их можно просто заменять, не нарушая целостности формата), но потом решила пойти более интересным путём и углубилась в синтаксис регулярных выражений в Notepad++, который, если кто не в курсе, позволяет открывать что угодно и выполнять замену строк по всем файлам в папке.
Итоговая конструкция выглядит вот так:
осторожно, страшненькие символы

Пришлось вставить картинкой, блогхаус такие штуки не умеет отображать корректно текстом.

Суть её в том, чтобы найти название параметра, после него считать идентификатор и убедиться, что это не один из пяти стандартных (перечисление которых и занимает основную часть вышеприведённой конструкции). Потом ещё лишнюю часть найденного отпилить, потому что замена почему-то не копирует спецсимволы.
На этом месте было бы приятно отметить победу, но увы. Часть СС не имела прописанных в явном виде идентификаторов (полагаю, в силу криворукости создателей СС), и пару десятков файлов пришлось-таки править вручную в SimPE. Но это уже мелочи, основная часть файлов была обработана через автозамену.
Ну, ещё под конец я проапдейтила симов на ноуте (так-то в основном я играю на десктопе), в результате они перестали запускаться, и я успела попортить восстановлением настройки игры, прежде чем обнаружила, что всего-то и нужно было удалить пару файлов кэша в папке игры... В общем, это отдельная история.
Но это было увлекательно
2

Комментарии


Лучшее   Правила сайта   Вход   Регистрация   Восстановление пароля

Материалы сайта предназначены для лиц старше 16 лет (16+)