Меню сайта


Категории раздела

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

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

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

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

Заголовок

Заголовок состоит из 3-х частей: заголовок легкого, заголовок среднего, заголовок сложного уровней.

Структура заголовка (повторяется 3 раза - для каждого уровня сложности):

Код
int count - кoл-во уровней


Далее идет блок, который повторяется count раз:
Код
int address - адрес начала трека, номер байта (значение этого байта - 0x33)
string name - название трека   
byte 0x00 - закрывающий нулевой байт


Треки

Эту часть файла тоже можно условно разделить на 2 части: информация о треке и точки трека.
Адрес начала этой части - int address из заголовки.
Код
byte 0x33
signed int* start_x - положение старта (игрока) по оси X
signed int* start_y - положение старта (игрока) по оси Y
signed int* finish_x - положение финиша по оси X
signed int* finish_y - положение финиша по оси Y (в принципе ни от чего не зависит, постоянно 0)
short points - количество точек (включая первую точку, которая 2 int)
signed int - первая точка по оси X (координата)
signed int - первая точка по оси Y (координата)


Далее идет запись трека (точек), последовательность байтов. Одна точка - два байта (x и y). Эта запись повторяется points-1 раз:
Код
signed byte x
signed byte y


Оба байта - со знаком. Их значение - это смещение относительно предыдущей точки.
Если byte x равен -1, то byte y не читается, а читаются 2 int-а:
Код
signed int x
signed int y

Если значение signed int y больше 127, оно игнорируется и принимается за ноль.

Далее - без изменений, как раньше, byte x и byte y.

Порядок байт - от старшего к младшему (big-endian).

int-ы, помеченные звездочками, записаны по-особому. Их нужно читать так:
Код
(i >> 16) << 3


6 июня 2011, автор z-kzn-z
------------------------------------------------------------------------------
Обсудить статью на форуме: http://www.dinedi.ru/forum/23-274-1
Категория: Советы модификаторам Gravity Defied | Добавил: Admin (19.01.2009) | Автор: z-kzn-z E
Просмотров: 7815 | Комментарии: 13
Всего комментариев: 131 2 »
-1
13  
Пользуйтесь лучше редактором!!!!!!!!!!!!!!
Ответ: Статья предназначена для продвинутых пользователей

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

1
11  
Почему значения старта и финиша равны таким непонятным значениям?

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

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

0
8  
приведите примеры)))
плиз tongue

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

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

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

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

0
2  
Знание ассемблера НЕ ТРЕБУЕТСЯ, зато требуется знание j2me.

0
3  
Омг, нужно просто вскрыть винкексом smile

1-10 11-11
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Приветствуем, Гость


Гость, предлагаем тебе авторизироваться:



Статистика

Яндекс.Метрика
Всего на сайте: 1
Гостей: 1
Пользователей: 0

Сегодня нас посетили:

Друзья сайта



© Dinedi.RU, 2007-2017 || Хостинг от uCoz