Butcher Hero: Как редактировать сейв и исправить сломанные таймеры
S3M4RiL
0:00 / 0:00
Butcher Hero: Как редактировать сейв и исправить сломанные таймеры
5 771 просмотр · 2 дн. назад
S3M4RiL
909 подписчиков
5 771 просмотр · 2 дн. назад
⚠️ Внимание: этот способ работает в версии 2.0.4, но уже не работает в версии 2.1.
После перевода времени в Butcher Hero перестали появляться геоды, восстанавливаться билеты или сбрасываться ежедневные награды? В этом видео покажу, как исправить даты, которые игра записала в ваш сейв.
Заодно вы научитесь открывать и редактировать файл сохранения Butcher Hero: конвертировать game_data.bin в JSON, находить нужные значения и собирать файл обратно. Опыт программирования не нужен — объясняю всё пошагово.
⚠️ Важно: разработчики уже начали выпускать обновление, исправляющее эту проблему. Сначала обновите игру и проверьте таймеры. Если всё работает, редактировать ничего не нужно. Инструкция пригодится тем, кто остался на старой версии или до сих пор сталкивается с проблемой.
ПЕРЕД НАЧАЛОМ
• Принудительно остановите игру в настройках телефона.
• Сохраните отдельную резервную копию оригинального сейва.
• Убедитесь, что на телефоне установлены правильные дата и время.
В ЭТОМ ВИДЕО
• Исправление таймеров билетов, геод и ежедневных наград.
• Перенос сейва с телефона на компьютер и обратно.
• Использование Python и MessagePack для конвертации файла.
• Работа с датами в форматах Unix timestamp, .NET ticks и обычном читаемом формате.
КОМАНДЫ
1. Проверьте версию Python:
py --version
2. Установите MessagePack:
py -m pip install msgpack
Откройте папку с сейвом в Проводнике, введите cmd в адресной строке и нажмите Enter. Следующие команды выполняйте в открывшемся окне.
3. Конвертируйте game_data.bin в game_data.json:
py -c "import msgpack,json,pathlib; p=pathlib.Path('game_data.bin'); d=msgpack.unpackb(p.read_bytes(),raw=False,strict_map_key=False); pathlib.Path('game_data.json').write_text(json.dumps(d,ensure_ascii=False,indent=2,default=lambda x:{'__msgpack_timestamp__':x.to_bytes().hex()}),encoding='utf-8')"
4. После редактирования и сохранения JSON-файла конвертируйте его обратно в BIN:
py -c "import msgpack,json,pathlib; d=json.loads(pathlib.Path('game_data.json').read_text(encoding='utf-8-sig'),object_hook=lambda x:msgpack.Timestamp.from_bytes(bytes.fromhex(x['__msgpack_timestamp__'])) if set(x)=={'__msgpack_timestamp__'} else x); pathlib.Path('game_data_edited.bin').write_bytes(msgpack.packb(d,use_bin_type=True))"
Эта команда создаст файл game_data_edited.bin. Переименуйте его в game_data.bin перед копированием обратно на телефон. Во время замены файла игра должна оставаться принудительно остановленной.
ФОРМАТЫ ДАТ И НУЖНЫЕ ПОЛЯ
Unix timestamps — секунды
Конвертер: https://www.unixtimestamp.com/
• last_tickets_restore_timestamp
• daily_chest_cooldown_timestamp
.NET ticks
Конвертер: https://tickstodatetime.wassupy.com/
• last_geode_timestamp
• last_stones_reset_day
Даты в читаемом формате — конвертер не нужен
• next_free_claim_reset
• free_chest_claim_reset
В последних двух полях измените дату прямо в тексте, сохраняя существующий формат.