[<!--:)-->]

Форма входа
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.dinedi.ru/forum/23-274-1

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


Всего комментариев: 141 2 »
14 Deenis   (20.04.2011 21:56)
Пользуйтесь лучше редактором!!!!!!!!!!!!!!
Ответ: Статья предназначена для продвинутых пользователей

13 Евгений Сергеевич   (09.01.2011 20:41)
> Почему не зависит не от чего положение финиша на оси y?
представляй себе финиш вертикальной прямой. у нее нет ни начала ни конца
> [byte - точка по оси X][byte точка по оси Y]. Чет не оч понял, это относительно предыдущей точки?
да
> А как вообще это было узнано?
мы первопроходцы, разобрали
> Почему значения старта и финиша равны таким непонятным значениям?
не понял, каким таким непонятным? все понятно

12 Жека   (08.01.2011 01:47)
Почему значения старта и финиша равны таким непонятным значениям?

11 Жека   (07.01.2011 03:27)
1) Почему не зависит не от чего положение финиша на оси y?
2) [byte - точка по оси X][byte точка по оси Y]. Чет не оч понял, это относительно предыдущей точки?

10 Жека   (07.01.2011 03:19)
Спасибо огромное, сам начал изучать файл по исходникам (дисассемблер), догадался только про имена треков)
А как вообще это было узнано?
Ответ: Чисто опытным путём

9 ReDDeViL   (08.12.2010 13:13)
где воопще скачать скажитти плиз
help
Ответ: Что скачать? Гравити тут: http://www.dinedi.ru/load/1

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

1-10 11-14
Имя *:
Email:
Код *:

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