Достижения

Видеоигра Planet of Lana использует **систему достижений**. Всего их 25; все, кроме двух, засекречены.

## Сюжетные (11)

Все эти достижения проходятся по сюжету, и каждый, кто прошёл игру, получит их все.

Глюк переводчика: в английском под словом *chef* понимают любого повара, в русском — шеф-повара, специалиста по ресторанной еде. Иногда шеф-поваром в шутку называют ответственного за кухню (администратор в студенческом общежитии видел кепку «Шеф-повар»), но для первобытного общества это анахронизм.

## Поиск секретов (11)

Десять одинаковых достижений, см. **Святилища**.

Это **не** глюк переводчика: в английском *A trace **from** the past* и *A trace **of** the past*. И в шведском аналогично.
## Разное (3)

Всё просто — нужно погладить Муи. Игра сама подсказывает эту механику, и вы с лёгкостью получите достижение.

Метод взлома ниже.

## Взлом достижения «Без изъяна»

* Пройдите игру
* Найдите сохранёнку в каталоге `c:\Users\[МоёИмя]\AppData\LocalLow\Wishfully\Planet of Lana`
	+ Этот каталог действует для всех Windows-магазинов, кроме Microsoft. В магазине Microsoft и Steam для Linux каталоги другие.
* **Сделайте резервную копию** (мало ли что)
* Откройте файл шестнадцатеричным редактором (HxD или подобным)
* Убедитесь, что по адресам **1D3**/**1D4** (строка 1D0, четвёртая/пятая позиция — компьютеры нумеруют объекты с нуля) хотя бы один ненулевой байт — а по адресам 1D5 и 1D6 нули (вряд ли вы умирали 65 тысяч раз). А по адресу 1E1 находится текст `PoL.Gameplay.GameplayLocation`. Если всё в порядке — ваш адрес 1D3.
	+ А если нет (мало ли что) — попробуйте найти текст `PoL.Gameplay.GameplayLocation` и отойти на 14=0E16 байтов назад (то есть на 1 строку вверх и на 2 байта вперёд).
	+ По крайней мере на проверенной версии игры 1.1.0.0 в «чистой» сохранёнке (начал игру и вышел) и в пройденной (на рисунке видно, что умирал 86=5616 раз) адрес совпадает.
	+ Кто никогда не работал с шестнадцатеричным редактором — слева адресá. В средней и правой колонке *одно и то же*, только в середине в шестнадцатеричной системе, а справа в текстовом виде.
* По этому самому адресу (может, 1D3, а может, и нет) поставьте **00 00**.
* Откройте игру снова и загрузитесь с этой сохранёнки
	+ Если показывает, что сохранёнки нет,— взлом, к сожалению, не удался… Planet of Lana использует сложный формат сохранения и постоянно следит за корректностью формата (подобные сложные форматы — известный источник уязвимостей), и если с ним что‑то не то — считает, что сохранёнки нет. Вот ради этого и нужно делать резервную копию.
* Остаётся подойти к Ило, и достижение на месте!

## Примечания

1. ↑ Если быть буквоедом: форматы объектной сериализации через рефлексию. Другими словами, чтобы превратить данные в цепочку байтов (=сериализация) и записать её на диск, система забирается в стандартные структуры данных (=объекты), узнаёт, из каких полей они состоят (=рефлексия), и записывает в файл названия полей, их типы и значения, и программисту не нужно писать специальный код для записи и считывания конкретного объекта. А совместимость при небольших изменениях (добавилось/исчезло поле) обеспечивается автоматически. Недостатки этого подхода — громоздкий нечеловекочитаемый формат, возможные уязвимости (сфабриковав цепочку данных, можно создать «всемогущий» или уязвимый объект), и привязка к языку и реализации (даже замена одной структуры данных на другую меняет формат). Потому такие методы с большой осторожностью используют в стандартных форматах файлов и сетевых протоколах — но для игровой сохранёнки это не вопрос.