CanoptekScarab (обс. | вклад) м (r2.7.2) (робот добавил: fr:Format de carte Classique) |
м (Interwiki) |
||
(не показано 10 промежуточных версий 8 участников) | |||
Строка 1: | Строка 1: | ||
− | '''Классический формат карт''' — формат хранения файлов [[Игровой мир|игрового мира]], который используется во всех версиях [[Classic]]. Для сжатия файлов используется утилита [http://ru.wikipedia.org/wiki/Gzip gzip]. Файлы карты |
+ | '''Классический формат карт''' — формат хранения файлов [[Игровой мир|игрового мира]], который используется во всех версиях [[Classic]]. Для сжатия файлов используется утилита [http://ru.wikipedia.org/wiki/Gzip gzip]. Файлы карты содержат краткое заглавие, в котором содержатся объекты для Java-сериализации. В одиночной игре, этим файлам присваивается расширение "''.mine''". Уровни, которые используются сервером режима [[Творчество]] и версии Classic называются "''server_level.dat''". Эти файлы поддаются [http://ru.wikipedia.org/wiki/Бэкап резервному копированию], что даёт возможность сохранять различные временные варианты файлов карты, чтобы потом, например, в случае массового [[Грифер|гриферства]], была возможность восстановления одного из старых вариантов. Также эти файлы хранения карт можно редактировать при помощи [[Редакторы карт|редакторов уровней]]. |
Поскольку формат этих карт зависит от метода сериализации данных с помощью Java, наиболее легким способом оперирования с ними является работа через сам Classic сервер, <span class="plainlinks">[http://minecraft.net/servers.jsp minecraft-server.jar]</span>. [[Классы|Сэмпл кода]] показывает как построить редактор уровней, основой для которого будет служить ''minecraft-server.jar''. |
Поскольку формат этих карт зависит от метода сериализации данных с помощью Java, наиболее легким способом оперирования с ними является работа через сам Classic сервер, <span class="plainlinks">[http://minecraft.net/servers.jsp minecraft-server.jar]</span>. [[Классы|Сэмпл кода]] показывает как построить редактор уровней, основой для которого будет служить ''minecraft-server.jar''. |
||
Строка 32: | Строка 32: | ||
Наиболее интересной частью уровня является наполнение его [[Блоки|блоками]]. Каждый байт в этом массиве данных определяет [[Нумерация данных|тип блока]], и его размещение в игровом мире. Для первого, как правило, есть два варианта доступа к массиву данных: |
Наиболее интересной частью уровня является наполнение его [[Блоки|блоками]]. Каждый байт в этом массиве данных определяет [[Нумерация данных|тип блока]], и его размещение в игровом мире. Для первого, как правило, есть два варианта доступа к массиву данных: |
||
− | Вы можете десериализировать ''.dat'' файл непосредственно в экземпляр файла уровня для работы внутри среды Java, что даст доступ к таким же файлам уровня, которые использует сервер игры. Это позволит Вам устанавливать блоки, размеры, точку возрождения и другие параметры карты непосредственно влияя на файлы её сохранения. Предварительная декомпрессия не требуется, потому |
+ | Вы можете десериализировать ''.dat'' файл непосредственно в экземпляр файла уровня для работы внутри среды Java, что даст доступ к таким же файлам уровня, которые использует сервер игры. Это позволит Вам устанавливать блоки, размеры, точку возрождения и другие параметры карты непосредственно влияя на файлы её сохранения. Предварительная декомпрессия не требуется, потому что Java сжимает и разжимает файлы формата gzip в реальном времени. Чтобы загрузить Ваш файл с данными обратно в class уровня, нужно интегрировать специальное "разрешение" в файл class уровня. Его включает в себя файл ''minecraft-server.jar''. Для примера, можно просмотреть страницу [[классы]]. |
Другой метод основан на чтении и модификации файлов карты методом подключения к сырому массиву данных в них. Для этого вам придется разжать эти файлы, внести в них изменения, и сжать обратно. Так как Вы редактируете сырой код, вам потребуется держать первые 344 (14Е в HEX) байтов нетронутыми. Кроме того, с помощью этого способа можно изменять координаты точки спауна, если Вы знаете, где искать: есть 3 целочисленных значения начиная с позиции 284, и изменение следующих 12 байтов (3 целочисленных значения) приведет к смене места размещения точки возрождения. |
Другой метод основан на чтении и модификации файлов карты методом подключения к сырому массиву данных в них. Для этого вам придется разжать эти файлы, внести в них изменения, и сжать обратно. Так как Вы редактируете сырой код, вам потребуется держать первые 344 (14Е в HEX) байтов нетронутыми. Кроме того, с помощью этого способа можно изменять координаты точки спауна, если Вы знаете, где искать: есть 3 целочисленных значения начиная с позиции 284, и изменение следующих 12 байтов (3 целочисленных значения) приведет к смене места размещения точки возрождения. |
||
Строка 40: | Строка 40: | ||
== См. также == |
== См. также == |
||
* [[Для разработчиков]] |
* [[Для разработчиков]] |
||
− | * [[Alpha формат |
+ | * [[Alpha (формат карты)]] |
− | * |
+ | * Beta формат карт |
− | * |
+ | * Файлы схем |
+ | {{Java Edition}} |
||
⚫ | |||
+ | {{Minecraft}} |
||
⚫ | |||
+ | |||
+ | [[Категория:Техническое]] |
||
+ | |||
⚫ | |||
⚫ | |||
[[fr:Format de carte Classique]] |
[[fr:Format de carte Classique]] |
||
+ | [[nl:Classic level formaat]] |
||
+ | [[zh:Classic世界格式]] |
Текущая версия от 13:36, 23 августа 2020
Классический формат карт — формат хранения файлов игрового мира, который используется во всех версиях Classic. Для сжатия файлов используется утилита gzip. Файлы карты содержат краткое заглавие, в котором содержатся объекты для Java-сериализации. В одиночной игре, этим файлам присваивается расширение ".mine". Уровни, которые используются сервером режима Творчество и версии Classic называются "server_level.dat". Эти файлы поддаются резервному копированию, что даёт возможность сохранять различные временные варианты файлов карты, чтобы потом, например, в случае массового гриферства, была возможность восстановления одного из старых вариантов. Также эти файлы хранения карт можно редактировать при помощи редакторов уровней.
Поскольку формат этих карт зависит от метода сериализации данных с помощью Java, наиболее легким способом оперирования с ними является работа через сам Classic сервер, minecraft-server.jar. Сэмпл кода показывает как построить редактор уровней, основой для которого будет служить minecraft-server.jar.
Формат файлов
В несжатом варианте, форматы файлов следующие:
Позиция | размер (в байтах) | Название | Описание |
---|---|---|---|
0 | 4 | Magic ID | «magic ID» постоянное число, целью которого является определение формата файла Minecraft. Текущее значение 0x271bb788. |
4 | 1 | Номер версии | Номер версии представляет формат карт, который используется для сохранения уровня. Текущее значение составляет 2. |
5 | Переменная | Сериализированный Java Class файл com.mojang.minecraft.level.Level | Больше информации про сериализацию формата карт с помощью Java Вы можете прочитать здесь, однако, наиболее легким способом редактирования файлов карты является использование class-файлов, которые официально поддерживаются minecraft-server.jar файлом. |
Доступ к массиву данных
Наиболее интересной частью уровня является наполнение его блоками. Каждый байт в этом массиве данных определяет тип блока, и его размещение в игровом мире. Для первого, как правило, есть два варианта доступа к массиву данных:
Вы можете десериализировать .dat файл непосредственно в экземпляр файла уровня для работы внутри среды Java, что даст доступ к таким же файлам уровня, которые использует сервер игры. Это позволит Вам устанавливать блоки, размеры, точку возрождения и другие параметры карты непосредственно влияя на файлы её сохранения. Предварительная декомпрессия не требуется, потому что Java сжимает и разжимает файлы формата gzip в реальном времени. Чтобы загрузить Ваш файл с данными обратно в class уровня, нужно интегрировать специальное "разрешение" в файл class уровня. Его включает в себя файл minecraft-server.jar. Для примера, можно просмотреть страницу классы.
Другой метод основан на чтении и модификации файлов карты методом подключения к сырому массиву данных в них. Для этого вам придется разжать эти файлы, внести в них изменения, и сжать обратно. Так как Вы редактируете сырой код, вам потребуется держать первые 344 (14Е в HEX) байтов нетронутыми. Кроме того, с помощью этого способа можно изменять координаты точки спауна, если Вы знаете, где искать: есть 3 целочисленных значения начиная с позиции 284, и изменение следующих 12 байтов (3 целочисленных значения) приведет к смене места размещения точки возрождения.
(Примечание: данный метод может изменятся в зависимости от изменений в программной среде Java)
См. также
- Для разработчиков
- Alpha (формат карты)
- Beta формат карт
- Файлы схем