.osr - это формат файла, содержащий информацию о реплее osu!. Для его запуска карта, указанная в файле, должна находиться в папке "Songs".
Название | Размер | Описание |
---|---|---|
Byte | 1 | 8-битное значение |
Short | 2 | 2-байтовое значение с прямым порядком байтов |
Integer | 4 | 4-байтовое значение с прямым порядком байтов |
Long | 8 | 8-байтовое значение с прямым порядком байтов |
ULEB128 | Любой | Целое число переменной длины ULEB128 |
String | Любой | Состоит их трех частей: Первая часть имеет тип Byte и равна 0x00 (указывает, что следующие две части отсутствуют) или 0x0b (указывает, что следующие две части присутствуют). Если это 0x0b, тогда во второй части будет ULEB128, представляющий длину третьей части в байтах, а затем сама строка, закодированная в UTF-8 |
Байтовые смещения не включены в эту таблицу из-за значений переменной длины.
Тип данных | Описание |
---|---|
Byte | Игровой режим реплея (0 = osu!, 1 = osu!taiko, 2 = osu!catch, 3 = osu!mania) |
Integer | Версия игры на момент создания повтора (например, 20131216) |
String | MD5-хэш карты |
String | Ник игрока |
String | MD5-хэш реплея (определяется его некоторыми свойствами) |
Short | Число попаданий в "300" |
Short | Число попаданий в "100" в osu!, "150" в osu!taiko, "100" в osu!catch, "100" в osu!mania |
Short | Число попаданий в "50" в osu!, "50" в osu!mania, или маленьких фруктов в osu!catch |
Short | Число идеальных комбо (Geki) в osu! или "MAX" в osu!mania |
Short | Число неидеальных комбо (Katu) в osu! или "200" в osu!mania |
Short | Число промахов |
Integer | Суммарное число полученных очков |
Short | Самое большое набранное комбо |
Byte | Идеальное комбо (1 = без промахов, слайдербрейков и пропущенных концов слайдеров) |
Integer | Используемые моды (см. таблицу значений) |
String | Уровень здоровья: разделенные запятыми пары u/v, где u — это время в миллисекундах в песне, а v — значение с плавающей запятой от 0 до 1, равное количеству здоровья в данный момент времени (0 = полоска здоровья пуста, 1 = полоска здоровья заполнена) |
Long | Отметка времени (Windows ticks) |
Integer | Длина сжатых данных реплея (в байтах) |
Byte Array | Сжатые данные реплея |
Long | Онлайн-идентификатор результата |
Double | Дополнительная информация о модах. Присутствует только при включенном моде Target Practice |
Дополнительная информация о модах:
Мод | Описание |
---|---|
Target Practice | Суммарная точность всех попаданий. Разделите её на количество целей на карте, чтобы получить точность, отображаемую в игре |
Остальные данные содержат информацию о движении мыши и нажатиях клавиш в виде потока LZMA.
При распаковке текст содержит данные, разделенные запятыми. Каждая часть обозначает действие, представленное 4 числами в виде: w | x | y | z
.
Число | Тип данных | Описание |
---|---|---|
w | Long | Время в миллисекундах с момента предыдущего действия |
x | Float | Координата Х курсора в диапазоне 0 - 512 |
y | Float | Координата Y курсора в диапазоне 0 - 384 |
z | Integer | Битовая сумма нажатых кнопок мыши и клавиш (M1 = 1, M2 = 2, K1 = 4, K2 = 8, дым = 16). K1 всегда используется с M1, а K2 — с M2: 1 + 4 = 5; 2 + 8 = 10 |
В реплеях, записанных в версии osu! 20130319
и позднее, 32-битное случайное целое число (seed), используемое в результате, будет закодировано в дополнительный кадр реплея в конце потока LZMA в формате -12345|0|0|seed
.
Указаны согласно osu! API.
Мод | Значение (битовый сдвиг) | Примечание |
---|---|---|
None | 0 | |
NoFail | 1 (0) | |
Easy | 2 (1) | |
TouchDevice | 4 (2) | Заменяет неиспользуемый мод NoVideo |
Hidden | 8 (3) | |
HardRock | 16 (4) | |
SuddenDeath | 32 (5) | |
DoubleTime | 64 (6) | |
Relax | 128 (7) | |
HalfTime | 256 (8) | |
Nightcore | 512 (9) | Всегда используется вместе с DT: 512 + 64 = 576 |
Flashlight | 1024 (10) | |
Autoplay | 2048 (11) | |
SpunOut | 4096 (12) | |
Relax2 | 8192 (13) | Autopilot |
Perfect | 16384 (14) | |
Key4 | 32768 (15) | |
Key5 | 65536 (16) | |
Key6 | 131072 (17) | |
Key7 | 262144 (18) | |
Key8 | 524288 (19) | |
keyMod | 1015808 | k4+k5+k6+k7+k8 |
FadeIn | 1048576 (20) | |
Random | 2097152 (21) | |
LastMod | 4194304 (22) | Cinema |
TargetPractice | 8388608 (23) | Только в ветке обновлений cuttingedge |
Key9 | 16777216 (24) | |
Coop | 33554432 (25) | |
Key1 | 67108864 (26) | |
Key3 | 134217728 (27) | |
Key2 | 268435456 (28) | |
ScoreV2 | 536870912 (29) | |
Mirror | 1073741824 (30) |