[<!--:)-->]

Форма входа
E-mail:
Пароль:

Меню сайта

Categories
Советы модификаторам Gravity Defied [13]
В разделе размещены статьи, помогающие новичкам создать неплохой мод

Главная » Статьи » Советы модификаторам Gravity Defied

Структура файла levels.mrg
Думаю, кому-нить пригодится.

Итак, поехали. Для начала для тех, кто в танке, уясню:
int = 4 байта
short = 2 байта
byte = 1 байт
Итак. Грубо говоря, файл можно разделить на 2 части: заголовок и сам файл.

1. Заголовок. Заголовок, в свою очередь, можно поделить на 3 части: заголовок легкого, заголовок среднего, заголовок сложного уровней.

Структура заголовка (схематично): [int кол-во уровней на easy] { [int номер_байта][название уровня][byte нулевой байт] ... } [int кол-во уровней на medium] { [int номер_байта][название уровня][byte нулевой байт] ... } [int кол-во уровней на hard] { [int номер_байта][название уровня][byte нулевой байт] ... }

Это и есть "3 части" заголовка.

Рассмотрим их поподробнее.
Сначала идет int - количество уровней (на опр. уровне сложности).
Потом идет запись (объединяю в контейнер): { int - номер байта (номер байта в файле, считая с нуля, где записан сам уровень.), название уровня, byte - закрывающий нулевой байт }. Эта запись повторяется столько раз, сколько уровней на данном уровне сложности - адрес начала для каждого трека.
Потом аналогично для medium и для hard.

2. Сами треки
Эту часть файла тоже можно условно разделить на 2 части: информация о треке и сам трек.

Как раз начало этой, адрес, где эта запись начинается в файле (номер байта) мы читаем в заголовке файла. То есть если в mrg файле 30 уровней (10/10/10), то таких "записей уровня" будет 30 - они просто идут друг за другом, ничем не разделяются.

"Информация" в файле записана следующим образом:
[byte - 0x33 - с этого байта начинаются все треки][int - положение старта по оси X][int - положение старта по оси Y (положение не флажка, а мотыка)][int - положение финиша по оси X][int - положение финиша по оси Y (в принципе ни от чего не зависит, постоянно 0)][short - количество точек][int - первая точка по оси X][int - первая точка по оси Y] Сам трек записывается как последовательность байтов { [byte - точка по оси X][byte точка по оси Y] }: [byte - точка по оси X][byte точка по оси Y][byte - точка по оси X][byte точка по оси Y]...[byte - точка по оси X][byte точка по оси Y].
2 байта - X и Y = 1 точка. (количество точек, как я уже сказал, записано в "заголовке", "информации" уровня).

------------------------------------------------------------------------------
Обсудить статью на форуме: http://www.dingoedition.ru/forum/23-274-1

Источник: http://gdmod.ru/articles.php?show=mrg


Всего комментариев: 8
8 Андрей   (26.12.2009 22:50)
приведите примеры)))
плиз tongue

7 Андрей   (26.12.2009 21:53)
скачал winhex, открыл файл.mrg
а дальше что??
какието цифры))
объясните нубику плиз tongue

6 Darkgrava   (25.12.2009 20:26)
Ну это я и так знал. Но программа может быть Swing Winhex. А редактировать же еще надо и b.class, чтобы установить мотика параметры!!!

5 Shevron   (25.12.2009 18:29)
1) ... levels.mrg! Неожиданно, да? biggrin
2) Прочитай статью и поймёшь. Любой версией. Полное название: winhex

4 Darkgrava   (25.12.2009 16:00)
2 Вопроса. 1) Какие файлы надо изменять и 2) Где и на что. А какой версией Winhex пользоваться и как его полное название.

3 Shevron   (15.06.2009 01:24)
Омг, нужно просто вскрыть винкексом smile

2 hx   (14.06.2009 13:12)
Знание ассемблера НЕ ТРЕБУЕТСЯ, зато требуется знание j2me.

1 mabrax   (01.03.2009 19:53)
а можно ли добавить ли 4-й уровень сложности и 5-й байк??
Ответ: Можно, но для побайтного редактирования файла levels.mrg требуется WinHex

Имя *:
Email:
Код *:

Полная версия сайта
GDTop